@opensite/ui 1.3.2 → 1.3.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 (167) hide show
  1. package/dist/footer-accordion-social.cjs +1344 -0
  2. package/dist/footer-accordion-social.d.cts +154 -0
  3. package/dist/footer-accordion-social.d.ts +154 -0
  4. package/dist/footer-accordion-social.js +1322 -0
  5. package/dist/footer-info-cards-accordion.cjs +1427 -0
  6. package/dist/footer-info-cards-accordion.d.cts +278 -0
  7. package/dist/footer-info-cards-accordion.d.ts +278 -0
  8. package/dist/footer-info-cards-accordion.js +1404 -0
  9. package/dist/footer-newsletter-contact.cjs +1281 -0
  10. package/dist/footer-newsletter-contact.d.cts +163 -0
  11. package/dist/footer-newsletter-contact.d.ts +163 -0
  12. package/dist/footer-newsletter-contact.js +1259 -0
  13. package/dist/footer-split-image-accordion.cjs +1395 -0
  14. package/dist/footer-split-image-accordion.d.cts +236 -0
  15. package/dist/footer-split-image-accordion.d.ts +236 -0
  16. package/dist/footer-split-image-accordion.js +1372 -0
  17. package/dist/list-achievements-showcase.cjs +1141 -0
  18. package/dist/list-achievements-showcase.d.cts +131 -0
  19. package/dist/list-achievements-showcase.d.ts +131 -0
  20. package/dist/list-achievements-showcase.js +1119 -0
  21. package/dist/list-career-timeline.cjs +531 -0
  22. package/dist/list-career-timeline.d.cts +153 -0
  23. package/dist/list-career-timeline.d.ts +153 -0
  24. package/dist/list-career-timeline.js +509 -0
  25. package/dist/list-feature-comparison.cjs +1211 -0
  26. package/dist/list-feature-comparison.d.cts +189 -0
  27. package/dist/list-feature-comparison.d.ts +189 -0
  28. package/dist/list-feature-comparison.js +1190 -0
  29. package/dist/list-metrics-dashboard.cjs +1402 -0
  30. package/dist/list-metrics-dashboard.d.cts +191 -0
  31. package/dist/list-metrics-dashboard.d.ts +191 -0
  32. package/dist/list-metrics-dashboard.js +1379 -0
  33. package/dist/list-service-category-table.cjs +762 -0
  34. package/dist/list-service-category-table.d.cts +135 -0
  35. package/dist/list-service-category-table.d.ts +135 -0
  36. package/dist/list-service-category-table.js +741 -0
  37. package/dist/offer-modal-membership-image.cjs +1361 -0
  38. package/dist/offer-modal-membership-image.d.cts +194 -0
  39. package/dist/offer-modal-membership-image.d.ts +194 -0
  40. package/dist/offer-modal-membership-image.js +1339 -0
  41. package/dist/offer-modal-newsletter-discount.cjs +1296 -0
  42. package/dist/offer-modal-newsletter-discount.d.cts +164 -0
  43. package/dist/offer-modal-newsletter-discount.d.ts +164 -0
  44. package/dist/offer-modal-newsletter-discount.js +1274 -0
  45. package/dist/offer-modal-sheet-newsletter.cjs +1360 -0
  46. package/dist/offer-modal-sheet-newsletter.d.cts +221 -0
  47. package/dist/offer-modal-sheet-newsletter.d.ts +221 -0
  48. package/dist/offer-modal-sheet-newsletter.js +1337 -0
  49. package/dist/pricing-addons-cards.cjs +1143 -0
  50. package/dist/pricing-addons-cards.d.cts +203 -0
  51. package/dist/pricing-addons-cards.d.ts +203 -0
  52. package/dist/pricing-addons-cards.js +1122 -0
  53. package/dist/pricing-addons-featured.cjs +1224 -0
  54. package/dist/pricing-addons-featured.d.cts +271 -0
  55. package/dist/pricing-addons-featured.d.ts +271 -0
  56. package/dist/pricing-addons-featured.js +1203 -0
  57. package/dist/pricing-collapsible-plans.cjs +1315 -0
  58. package/dist/pricing-collapsible-plans.d.cts +258 -0
  59. package/dist/pricing-collapsible-plans.d.ts +258 -0
  60. package/dist/pricing-collapsible-plans.js +1294 -0
  61. package/dist/pricing-columns-toggle.cjs +1234 -0
  62. package/dist/pricing-columns-toggle.d.cts +251 -0
  63. package/dist/pricing-columns-toggle.d.ts +251 -0
  64. package/dist/pricing-columns-toggle.js +1212 -0
  65. package/dist/pricing-comparison-headers.cjs +1235 -0
  66. package/dist/pricing-comparison-headers.d.cts +245 -0
  67. package/dist/pricing-comparison-headers.d.ts +245 -0
  68. package/dist/pricing-comparison-headers.js +1213 -0
  69. package/dist/pricing-comparison-table.cjs +1374 -0
  70. package/dist/pricing-comparison-table.d.cts +280 -0
  71. package/dist/pricing-comparison-table.d.ts +280 -0
  72. package/dist/pricing-comparison-table.js +1352 -0
  73. package/dist/pricing-discount-card.cjs +1217 -0
  74. package/dist/pricing-discount-card.d.cts +195 -0
  75. package/dist/pricing-discount-card.d.ts +195 -0
  76. package/dist/pricing-discount-card.js +1195 -0
  77. package/dist/pricing-enterprise-contact.cjs +1094 -0
  78. package/dist/pricing-enterprise-contact.d.cts +170 -0
  79. package/dist/pricing-enterprise-contact.d.ts +170 -0
  80. package/dist/pricing-enterprise-contact.js +1073 -0
  81. package/dist/pricing-feature-matrix.cjs +1197 -0
  82. package/dist/pricing-feature-matrix.d.cts +56 -0
  83. package/dist/pricing-feature-matrix.d.ts +56 -0
  84. package/dist/pricing-feature-matrix.js +1174 -0
  85. package/dist/pricing-four-tier-toggle.cjs +1320 -0
  86. package/dist/pricing-four-tier-toggle.d.cts +266 -0
  87. package/dist/pricing-four-tier-toggle.d.ts +266 -0
  88. package/dist/pricing-four-tier-toggle.js +1297 -0
  89. package/dist/pricing-full-comparison.cjs +1301 -0
  90. package/dist/pricing-full-comparison.d.cts +265 -0
  91. package/dist/pricing-full-comparison.d.ts +265 -0
  92. package/dist/pricing-full-comparison.js +1279 -0
  93. package/dist/pricing-gradient-cards.cjs +1248 -0
  94. package/dist/pricing-gradient-cards.d.cts +258 -0
  95. package/dist/pricing-gradient-cards.d.ts +258 -0
  96. package/dist/pricing-gradient-cards.js +1226 -0
  97. package/dist/pricing-icon-headers.cjs +1163 -0
  98. package/dist/pricing-icon-headers.d.cts +218 -0
  99. package/dist/pricing-icon-headers.d.ts +218 -0
  100. package/dist/pricing-icon-headers.js +1142 -0
  101. package/dist/pricing-minimal-cards.cjs +1146 -0
  102. package/dist/pricing-minimal-cards.d.cts +210 -0
  103. package/dist/pricing-minimal-cards.d.ts +210 -0
  104. package/dist/pricing-minimal-cards.js +1125 -0
  105. package/dist/pricing-packages-radio.cjs +1203 -0
  106. package/dist/pricing-packages-radio.d.cts +243 -0
  107. package/dist/pricing-packages-radio.d.ts +243 -0
  108. package/dist/pricing-packages-radio.js +1182 -0
  109. package/dist/pricing-popular-highlight.cjs +1293 -0
  110. package/dist/pricing-popular-highlight.d.cts +255 -0
  111. package/dist/pricing-popular-highlight.d.ts +255 -0
  112. package/dist/pricing-popular-highlight.js +1271 -0
  113. package/dist/pricing-radio-toggle.cjs +1277 -0
  114. package/dist/pricing-radio-toggle.d.cts +251 -0
  115. package/dist/pricing-radio-toggle.d.ts +251 -0
  116. package/dist/pricing-radio-toggle.js +1255 -0
  117. package/dist/pricing-responsive-table.cjs +1229 -0
  118. package/dist/pricing-responsive-table.d.cts +55 -0
  119. package/dist/pricing-responsive-table.d.ts +55 -0
  120. package/dist/pricing-responsive-table.js +1206 -0
  121. package/dist/pricing-services-cards.cjs +1209 -0
  122. package/dist/pricing-services-cards.d.cts +230 -0
  123. package/dist/pricing-services-cards.d.ts +230 -0
  124. package/dist/pricing-services-cards.js +1188 -0
  125. package/dist/pricing-simple-card.cjs +1102 -0
  126. package/dist/pricing-simple-card.d.cts +174 -0
  127. package/dist/pricing-simple-card.d.ts +174 -0
  128. package/dist/pricing-simple-card.js +1081 -0
  129. package/dist/pricing-single-card.cjs +1174 -0
  130. package/dist/pricing-single-card.d.cts +201 -0
  131. package/dist/pricing-single-card.d.ts +201 -0
  132. package/dist/pricing-single-card.js +1152 -0
  133. package/dist/pricing-split-layout.cjs +1001 -0
  134. package/dist/pricing-split-layout.d.cts +44 -0
  135. package/dist/pricing-split-layout.d.ts +44 -0
  136. package/dist/pricing-split-layout.js +980 -0
  137. package/dist/pricing-spotlight-card.cjs +1157 -0
  138. package/dist/pricing-spotlight-card.d.cts +201 -0
  139. package/dist/pricing-spotlight-card.d.ts +201 -0
  140. package/dist/pricing-spotlight-card.js +1136 -0
  141. package/dist/pricing-switch-cards.cjs +1274 -0
  142. package/dist/pricing-switch-cards.d.cts +254 -0
  143. package/dist/pricing-switch-cards.d.ts +254 -0
  144. package/dist/pricing-switch-cards.js +1252 -0
  145. package/dist/pricing-tabs-toggle.cjs +1314 -0
  146. package/dist/pricing-tabs-toggle.d.cts +274 -0
  147. package/dist/pricing-tabs-toggle.d.ts +274 -0
  148. package/dist/pricing-tabs-toggle.js +1291 -0
  149. package/dist/pricing-tier-grid.cjs +1190 -0
  150. package/dist/pricing-tier-grid.d.cts +224 -0
  151. package/dist/pricing-tier-grid.d.ts +224 -0
  152. package/dist/pricing-tier-grid.js +1169 -0
  153. package/dist/pricing-toggle-cards.cjs +1330 -0
  154. package/dist/pricing-toggle-cards.d.cts +267 -0
  155. package/dist/pricing-toggle-cards.d.ts +267 -0
  156. package/dist/pricing-toggle-cards.js +1307 -0
  157. package/dist/pricing-toggle-period.cjs +1251 -0
  158. package/dist/pricing-toggle-period.d.cts +265 -0
  159. package/dist/pricing-toggle-period.d.ts +265 -0
  160. package/dist/pricing-toggle-period.js +1230 -0
  161. package/dist/pricing-two-column-basic.cjs +1243 -0
  162. package/dist/pricing-two-column-basic.d.cts +244 -0
  163. package/dist/pricing-two-column-basic.d.ts +244 -0
  164. package/dist/pricing-two-column-basic.js +1222 -0
  165. package/dist/registry.cjs +109 -85
  166. package/dist/registry.js +931 -907
  167. package/package.json +1 -1
@@ -0,0 +1,164 @@
1
+ import * as React from 'react';
2
+ import { P as PageSpeedFormConfig } from './forms-BCcwNFhk.cjs';
3
+ import { f as SectionBackground } from './community-initiatives-Bz_A5vLU.cjs';
4
+ import 'react/jsx-runtime';
5
+ import './blocks-Cohq4eio.cjs';
6
+ import 'class-variance-authority';
7
+ import './button-variants-lRElsmTc.cjs';
8
+ import 'class-variance-authority/types';
9
+
10
+ interface OfferModalNewsletterDiscountProps {
11
+ /**
12
+ * Main title content for the offer
13
+ */
14
+ title?: React.ReactNode;
15
+ /**
16
+ * Placeholder text for the email input
17
+ */
18
+ emailPlaceholder?: string;
19
+ /**
20
+ * Text/content for the subscribe button
21
+ */
22
+ buttonText?: React.ReactNode;
23
+ /**
24
+ * Text/content for the close button
25
+ */
26
+ closeButtonText?: React.ReactNode;
27
+ /**
28
+ * Custom slot for the close button (overrides default close button)
29
+ */
30
+ closeButtonSlot?: React.ReactNode;
31
+ /**
32
+ * Custom slot for the form (overrides default form)
33
+ */
34
+ formSlot?: React.ReactNode;
35
+ /**
36
+ * Custom slot for the header area (overrides title)
37
+ */
38
+ headerSlot?: React.ReactNode;
39
+ /**
40
+ * Whether the dialog is open (controlled mode)
41
+ */
42
+ open?: boolean;
43
+ /**
44
+ * Callback when the dialog open state changes
45
+ */
46
+ onOpenChange?: (open: boolean) => void;
47
+ /**
48
+ * Whether the dialog is open by default (uncontrolled mode)
49
+ */
50
+ defaultOpen?: boolean;
51
+ /**
52
+ * Whether clicking outside closes the dialog
53
+ */
54
+ closeOnOutsideClick?: boolean;
55
+ /**
56
+ * Optional custom submission handler for maximum flexibility.
57
+ *
58
+ * Use this when you need complete control over the submission logic,
59
+ * such as custom API calls, analytics tracking, or multi-step workflows.
60
+ *
61
+ * Can be used alone or in combination with `formConfig` for hybrid approaches.
62
+ *
63
+ * @example
64
+ * onSubmit={async (email) => {
65
+ * await fetch("/api/subscribe", {
66
+ * method: "POST",
67
+ * body: JSON.stringify({ email, discount: "35OFF" })
68
+ * });
69
+ * }}
70
+ */
71
+ onSubmit?: (email: string) => void | Promise<void>;
72
+ /**
73
+ * Optional form submission configuration.
74
+ *
75
+ * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
76
+ * and the form will submit to it in JSON format.
77
+ *
78
+ * @example
79
+ * // Works with any API
80
+ * formConfig={{ endpoint: "https://api.mysite.com/subscribe", format: "json" }}
81
+ *
82
+ * @example
83
+ * // With custom headers (e.g., authentication)
84
+ * formConfig={{
85
+ * endpoint: "/api/newsletter",
86
+ * headers: { "Authorization": "Bearer token123" }
87
+ * }}
88
+ *
89
+ * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
90
+ * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
91
+ * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
92
+ *
93
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
94
+ */
95
+ formConfig?: PageSpeedFormConfig;
96
+ /**
97
+ * Optional success callback invoked after successful submission.
98
+ *
99
+ * Called after `formConfig` submission and/or `onSubmit` completes successfully.
100
+ * Use for showing success messages, redirecting, analytics tracking, etc.
101
+ */
102
+ onSuccess?: (data: unknown) => void;
103
+ /**
104
+ * Optional error callback invoked if submission fails.
105
+ *
106
+ * Receives the error object for custom error handling, logging, or user notifications.
107
+ */
108
+ onError?: (error: Error) => void;
109
+ /**
110
+ * Additional CSS classes for the dialog content wrapper
111
+ */
112
+ className?: string;
113
+ /**
114
+ * Additional CSS classes for the content area
115
+ */
116
+ contentClassName?: string;
117
+ /**
118
+ * Additional CSS classes for the header
119
+ */
120
+ headerClassName?: string;
121
+ /**
122
+ * Additional CSS classes for the title
123
+ */
124
+ titleClassName?: string;
125
+ /**
126
+ * Additional CSS classes for the form
127
+ */
128
+ formClassName?: string;
129
+ /**
130
+ * Additional CSS classes for the email input
131
+ */
132
+ inputClassName?: string;
133
+ /**
134
+ * Additional CSS classes for the submit button
135
+ */
136
+ submitClassName?: string;
137
+ /**
138
+ * Additional CSS classes for the close button
139
+ */
140
+ closeClassName?: string;
141
+ /**
142
+ * Background style variant for the section
143
+ * @default "default"
144
+ */
145
+ background?: SectionBackground;
146
+ }
147
+ /**
148
+ * OfferModalNewsletterDiscount - A compact newsletter signup modal positioned at the bottom-right
149
+ * of the screen. Features a clean design with a close button, compelling headline, email input,
150
+ * and subscribe CTA. Perfect for e-commerce sites offering first-purchase discounts or newsletter
151
+ * signup incentives.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <OfferModalNewsletterDiscount
156
+ * title="Join our newsletter and enjoy 35% off your first order"
157
+ * buttonText="Subscribe"
158
+ * onSubmit={(email) => console.log('Subscribed:', email)}
159
+ * />
160
+ * ```
161
+ */
162
+ declare function OfferModalNewsletterDiscount({ title, emailPlaceholder, buttonText, closeButtonText, closeButtonSlot, formSlot, headerSlot, open, onOpenChange, defaultOpen, closeOnOutsideClick, onSubmit, formConfig, onSuccess, onError, className, contentClassName, headerClassName, titleClassName, formClassName, inputClassName, submitClassName, closeClassName, background, }: OfferModalNewsletterDiscountProps): React.JSX.Element;
163
+
164
+ export { OfferModalNewsletterDiscount, type OfferModalNewsletterDiscountProps };
@@ -0,0 +1,164 @@
1
+ import * as React from 'react';
2
+ import { P as PageSpeedFormConfig } from './forms-BCcwNFhk.js';
3
+ import { f as SectionBackground } from './community-initiatives-Bi_ClKrO.js';
4
+ import 'react/jsx-runtime';
5
+ import './blocks-k17uluAz.js';
6
+ import 'class-variance-authority';
7
+ import './button-variants-lRElsmTc.js';
8
+ import 'class-variance-authority/types';
9
+
10
+ interface OfferModalNewsletterDiscountProps {
11
+ /**
12
+ * Main title content for the offer
13
+ */
14
+ title?: React.ReactNode;
15
+ /**
16
+ * Placeholder text for the email input
17
+ */
18
+ emailPlaceholder?: string;
19
+ /**
20
+ * Text/content for the subscribe button
21
+ */
22
+ buttonText?: React.ReactNode;
23
+ /**
24
+ * Text/content for the close button
25
+ */
26
+ closeButtonText?: React.ReactNode;
27
+ /**
28
+ * Custom slot for the close button (overrides default close button)
29
+ */
30
+ closeButtonSlot?: React.ReactNode;
31
+ /**
32
+ * Custom slot for the form (overrides default form)
33
+ */
34
+ formSlot?: React.ReactNode;
35
+ /**
36
+ * Custom slot for the header area (overrides title)
37
+ */
38
+ headerSlot?: React.ReactNode;
39
+ /**
40
+ * Whether the dialog is open (controlled mode)
41
+ */
42
+ open?: boolean;
43
+ /**
44
+ * Callback when the dialog open state changes
45
+ */
46
+ onOpenChange?: (open: boolean) => void;
47
+ /**
48
+ * Whether the dialog is open by default (uncontrolled mode)
49
+ */
50
+ defaultOpen?: boolean;
51
+ /**
52
+ * Whether clicking outside closes the dialog
53
+ */
54
+ closeOnOutsideClick?: boolean;
55
+ /**
56
+ * Optional custom submission handler for maximum flexibility.
57
+ *
58
+ * Use this when you need complete control over the submission logic,
59
+ * such as custom API calls, analytics tracking, or multi-step workflows.
60
+ *
61
+ * Can be used alone or in combination with `formConfig` for hybrid approaches.
62
+ *
63
+ * @example
64
+ * onSubmit={async (email) => {
65
+ * await fetch("/api/subscribe", {
66
+ * method: "POST",
67
+ * body: JSON.stringify({ email, discount: "35OFF" })
68
+ * });
69
+ * }}
70
+ */
71
+ onSubmit?: (email: string) => void | Promise<void>;
72
+ /**
73
+ * Optional form submission configuration.
74
+ *
75
+ * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
76
+ * and the form will submit to it in JSON format.
77
+ *
78
+ * @example
79
+ * // Works with any API
80
+ * formConfig={{ endpoint: "https://api.mysite.com/subscribe", format: "json" }}
81
+ *
82
+ * @example
83
+ * // With custom headers (e.g., authentication)
84
+ * formConfig={{
85
+ * endpoint: "/api/newsletter",
86
+ * headers: { "Authorization": "Bearer token123" }
87
+ * }}
88
+ *
89
+ * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
90
+ * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
91
+ * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
92
+ *
93
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
94
+ */
95
+ formConfig?: PageSpeedFormConfig;
96
+ /**
97
+ * Optional success callback invoked after successful submission.
98
+ *
99
+ * Called after `formConfig` submission and/or `onSubmit` completes successfully.
100
+ * Use for showing success messages, redirecting, analytics tracking, etc.
101
+ */
102
+ onSuccess?: (data: unknown) => void;
103
+ /**
104
+ * Optional error callback invoked if submission fails.
105
+ *
106
+ * Receives the error object for custom error handling, logging, or user notifications.
107
+ */
108
+ onError?: (error: Error) => void;
109
+ /**
110
+ * Additional CSS classes for the dialog content wrapper
111
+ */
112
+ className?: string;
113
+ /**
114
+ * Additional CSS classes for the content area
115
+ */
116
+ contentClassName?: string;
117
+ /**
118
+ * Additional CSS classes for the header
119
+ */
120
+ headerClassName?: string;
121
+ /**
122
+ * Additional CSS classes for the title
123
+ */
124
+ titleClassName?: string;
125
+ /**
126
+ * Additional CSS classes for the form
127
+ */
128
+ formClassName?: string;
129
+ /**
130
+ * Additional CSS classes for the email input
131
+ */
132
+ inputClassName?: string;
133
+ /**
134
+ * Additional CSS classes for the submit button
135
+ */
136
+ submitClassName?: string;
137
+ /**
138
+ * Additional CSS classes for the close button
139
+ */
140
+ closeClassName?: string;
141
+ /**
142
+ * Background style variant for the section
143
+ * @default "default"
144
+ */
145
+ background?: SectionBackground;
146
+ }
147
+ /**
148
+ * OfferModalNewsletterDiscount - A compact newsletter signup modal positioned at the bottom-right
149
+ * of the screen. Features a clean design with a close button, compelling headline, email input,
150
+ * and subscribe CTA. Perfect for e-commerce sites offering first-purchase discounts or newsletter
151
+ * signup incentives.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <OfferModalNewsletterDiscount
156
+ * title="Join our newsletter and enjoy 35% off your first order"
157
+ * buttonText="Subscribe"
158
+ * onSubmit={(email) => console.log('Subscribed:', email)}
159
+ * />
160
+ * ```
161
+ */
162
+ declare function OfferModalNewsletterDiscount({ title, emailPlaceholder, buttonText, closeButtonText, closeButtonSlot, formSlot, headerSlot, open, onOpenChange, defaultOpen, closeOnOutsideClick, onSubmit, formConfig, onSuccess, onError, className, contentClassName, headerClassName, titleClassName, formClassName, inputClassName, submitClassName, closeClassName, background, }: OfferModalNewsletterDiscountProps): React.JSX.Element;
163
+
164
+ export { OfferModalNewsletterDiscount, type OfferModalNewsletterDiscountProps };