@opensite/ui 0.5.2 → 0.5.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 (895) hide show
  1. package/dist/about-company-profile.d.cts +2 -2
  2. package/dist/about-company-profile.d.ts +2 -2
  3. package/dist/about-developer-profile.d.cts +2 -2
  4. package/dist/about-developer-profile.d.ts +2 -2
  5. package/dist/about-developer-story.d.cts +2 -2
  6. package/dist/about-developer-story.d.ts +2 -2
  7. package/dist/about-interactive-tabs.d.cts +2 -2
  8. package/dist/about-interactive-tabs.d.ts +2 -2
  9. package/dist/about-location-info-hero.d.cts +2 -2
  10. package/dist/about-location-info-hero.d.ts +2 -2
  11. package/dist/about-minimal-story.d.cts +2 -2
  12. package/dist/about-minimal-story.d.ts +2 -2
  13. package/dist/about-mission-dual-image.d.cts +2 -2
  14. package/dist/about-mission-dual-image.d.ts +2 -2
  15. package/dist/about-mission-features.d.cts +2 -2
  16. package/dist/about-mission-features.d.ts +2 -2
  17. package/dist/about-network-spotlight.d.cts +2 -2
  18. package/dist/about-network-spotlight.d.ts +2 -2
  19. package/dist/about-startup-team.d.cts +2 -2
  20. package/dist/about-startup-team.d.ts +2 -2
  21. package/dist/about-stats-showcase.d.cts +2 -2
  22. package/dist/about-stats-showcase.d.ts +2 -2
  23. package/dist/about-stats-sidebar.d.cts +2 -2
  24. package/dist/about-stats-sidebar.d.ts +2 -2
  25. package/dist/about-story-expertise.d.cts +2 -2
  26. package/dist/about-story-expertise.d.ts +2 -2
  27. package/dist/about-story-gallery.d.cts +2 -2
  28. package/dist/about-story-gallery.d.ts +2 -2
  29. package/dist/about-story-hero.d.cts +2 -2
  30. package/dist/about-story-hero.d.ts +2 -2
  31. package/dist/about-streamline-team.d.cts +2 -2
  32. package/dist/about-streamline-team.d.ts +2 -2
  33. package/dist/about-vision-gallery.d.cts +2 -2
  34. package/dist/about-vision-gallery.d.ts +2 -2
  35. package/dist/alternating-blocks.d.cts +2 -2
  36. package/dist/alternating-blocks.d.ts +2 -2
  37. package/dist/animated-dialog.d.cts +2 -2
  38. package/dist/animated-dialog.d.ts +2 -2
  39. package/dist/article-breadcrumb-social.d.cts +2 -2
  40. package/dist/article-breadcrumb-social.d.ts +2 -2
  41. package/dist/article-chapters-author.d.cts +2 -2
  42. package/dist/article-chapters-author.d.ts +2 -2
  43. package/dist/article-compact-toc.d.cts +2 -2
  44. package/dist/article-compact-toc.d.ts +2 -2
  45. package/dist/article-hero-prose.d.cts +2 -2
  46. package/dist/article-hero-prose.d.ts +2 -2
  47. package/dist/article-sidebar-sticky.d.cts +2 -2
  48. package/dist/article-sidebar-sticky.d.ts +2 -2
  49. package/dist/article-split-animated.d.cts +2 -2
  50. package/dist/article-split-animated.d.ts +2 -2
  51. package/dist/article-toc-sidebar.d.cts +2 -2
  52. package/dist/article-toc-sidebar.d.ts +2 -2
  53. package/dist/auto-scroll-carousel.d.cts +2 -2
  54. package/dist/auto-scroll-carousel.d.ts +2 -2
  55. package/dist/badge.d.cts +1 -1
  56. package/dist/badge.d.ts +1 -1
  57. package/dist/banner-announcement-dismissible.cjs +37 -17
  58. package/dist/banner-announcement-dismissible.d.cts +2 -4
  59. package/dist/banner-announcement-dismissible.d.ts +2 -4
  60. package/dist/banner-announcement-dismissible.js +38 -18
  61. package/dist/banner-countdown-sale.cjs +19 -11
  62. package/dist/banner-countdown-sale.d.cts +0 -1
  63. package/dist/banner-countdown-sale.d.ts +0 -1
  64. package/dist/banner-countdown-sale.js +21 -13
  65. package/dist/banner-delivery-countdown.cjs +29 -24
  66. package/dist/banner-delivery-countdown.d.cts +0 -2
  67. package/dist/banner-delivery-countdown.d.ts +0 -2
  68. package/dist/banner-delivery-countdown.js +30 -25
  69. package/dist/banner-event-promo.cjs +28 -13
  70. package/dist/banner-event-promo.d.cts +2 -2
  71. package/dist/banner-event-promo.d.ts +2 -2
  72. package/dist/banner-event-promo.js +29 -13
  73. package/dist/banner-floating-offer.cjs +42 -24
  74. package/dist/banner-floating-offer.d.cts +2 -5
  75. package/dist/banner-floating-offer.d.ts +2 -5
  76. package/dist/banner-floating-offer.js +43 -25
  77. package/dist/banner-gdpr-rights.cjs +36 -19
  78. package/dist/banner-gdpr-rights.d.cts +5 -7
  79. package/dist/banner-gdpr-rights.d.ts +5 -7
  80. package/dist/banner-gdpr-rights.js +37 -20
  81. package/dist/banner-privacy-notice.cjs +34 -17
  82. package/dist/banner-privacy-notice.d.cts +2 -4
  83. package/dist/banner-privacy-notice.d.ts +2 -4
  84. package/dist/banner-privacy-notice.js +35 -18
  85. package/dist/banner-promo-cta.cjs +27 -12
  86. package/dist/banner-promo-cta.d.cts +2 -2
  87. package/dist/banner-promo-cta.d.ts +2 -2
  88. package/dist/banner-promo-cta.js +28 -12
  89. package/dist/banner-social-follow.cjs +37 -17
  90. package/dist/banner-social-follow.d.cts +2 -4
  91. package/dist/banner-social-follow.d.ts +2 -4
  92. package/dist/banner-social-follow.js +38 -18
  93. package/dist/banner-survey-incentive.cjs +34 -17
  94. package/dist/banner-survey-incentive.d.cts +2 -4
  95. package/dist/banner-survey-incentive.d.ts +2 -4
  96. package/dist/banner-survey-incentive.js +35 -18
  97. package/dist/{blocks-Cohq4eio.d.cts → blocks-DP3Vofl4.d.cts} +1 -1
  98. package/dist/{blocks-k17uluAz.d.ts → blocks-XLPGq8A5.d.ts} +1 -1
  99. package/dist/blog-cards-read-time.d.cts +2 -2
  100. package/dist/blog-cards-read-time.d.ts +2 -2
  101. package/dist/blog-cards-tagline-cta.d.cts +2 -2
  102. package/dist/blog-cards-tagline-cta.d.ts +2 -2
  103. package/dist/blog-category-overlay.d.cts +2 -2
  104. package/dist/blog-category-overlay.d.ts +2 -2
  105. package/dist/blog-featured-popular.d.cts +2 -2
  106. package/dist/blog-featured-popular.d.ts +2 -2
  107. package/dist/blog-filtered-results.d.cts +2 -2
  108. package/dist/blog-filtered-results.d.ts +2 -2
  109. package/dist/blog-grid-author-cards.d.cts +2 -2
  110. package/dist/blog-grid-author-cards.d.ts +2 -2
  111. package/dist/blog-grid-nine-posts.d.cts +2 -2
  112. package/dist/blog-grid-nine-posts.d.ts +2 -2
  113. package/dist/blog-horizontal-cards.d.cts +2 -2
  114. package/dist/blog-horizontal-cards.d.ts +2 -2
  115. package/dist/blog-horizontal-timeline.d.cts +2 -2
  116. package/dist/blog-horizontal-timeline.d.ts +2 -2
  117. package/dist/blog-masonry-featured.d.cts +2 -2
  118. package/dist/blog-masonry-featured.d.ts +2 -2
  119. package/dist/blog-related-articles.d.cts +2 -2
  120. package/dist/blog-related-articles.d.ts +2 -2
  121. package/dist/blog-tech-insights.d.cts +2 -2
  122. package/dist/blog-tech-insights.d.ts +2 -2
  123. package/dist/blur-vignette-grid.d.cts +2 -2
  124. package/dist/blur-vignette-grid.d.ts +2 -2
  125. package/dist/{button-variants-lRElsmTc.d.cts → button-variants-CdNtNOuP.d.cts} +1 -1
  126. package/dist/{button-variants-lRElsmTc.d.ts → button-variants-CdNtNOuP.d.ts} +1 -1
  127. package/dist/button.d.cts +1 -1
  128. package/dist/button.d.ts +1 -1
  129. package/dist/carousel-badge-cards.d.cts +2 -2
  130. package/dist/carousel-badge-cards.d.ts +2 -2
  131. package/dist/carousel-demo-link.d.cts +2 -2
  132. package/dist/carousel-demo-link.d.ts +2 -2
  133. package/dist/carousel-gradient-overlay.d.cts +2 -2
  134. package/dist/carousel-gradient-overlay.d.ts +2 -2
  135. package/dist/carousel-gradient-text.d.cts +2 -2
  136. package/dist/carousel-gradient-text.d.ts +2 -2
  137. package/dist/carousel-icon-sidebar.d.cts +2 -2
  138. package/dist/carousel-icon-sidebar.d.ts +2 -2
  139. package/dist/carousel-icon-tabs.d.cts +2 -2
  140. package/dist/carousel-icon-tabs.d.ts +2 -2
  141. package/dist/carousel-scale-focus.d.cts +2 -2
  142. package/dist/carousel-scale-focus.d.ts +2 -2
  143. package/dist/carousel-sidebar-resources.d.cts +2 -2
  144. package/dist/carousel-sidebar-resources.d.ts +2 -2
  145. package/dist/carousel-tabs-content.d.cts +2 -2
  146. package/dist/carousel-tabs-content.d.ts +2 -2
  147. package/dist/case-studies-featured-border.d.cts +2 -2
  148. package/dist/case-studies-featured-border.d.ts +2 -2
  149. package/dist/case-studies-image-grid.d.cts +2 -2
  150. package/dist/case-studies-image-grid.d.ts +2 -2
  151. package/dist/case-studies-stats-card.d.cts +2 -2
  152. package/dist/case-studies-stats-card.d.ts +2 -2
  153. package/dist/case-studies-testimonial-stats.d.cts +2 -2
  154. package/dist/case-studies-testimonial-stats.d.ts +2 -2
  155. package/dist/case-study-prose-sidebar.d.cts +2 -2
  156. package/dist/case-study-prose-sidebar.d.ts +2 -2
  157. package/dist/case-study-stats-metrics.d.cts +2 -2
  158. package/dist/case-study-stats-metrics.d.ts +2 -2
  159. package/dist/case-study-toc-social-sidebar.d.cts +2 -2
  160. package/dist/case-study-toc-social-sidebar.d.ts +2 -2
  161. package/dist/comparison-ai-models.d.cts +2 -2
  162. package/dist/comparison-ai-models.d.ts +2 -2
  163. package/dist/comparison-feature-cards.d.cts +2 -2
  164. package/dist/comparison-feature-cards.d.ts +2 -2
  165. package/dist/comparison-image-cards.d.cts +2 -2
  166. package/dist/comparison-image-cards.d.ts +2 -2
  167. package/dist/comparison-metrics-rows.d.cts +2 -2
  168. package/dist/comparison-metrics-rows.d.ts +2 -2
  169. package/dist/comparison-table-two-column.d.cts +2 -2
  170. package/dist/comparison-table-two-column.d.ts +2 -2
  171. package/dist/components.d.cts +2 -2
  172. package/dist/components.d.ts +2 -2
  173. package/dist/contact-callback.d.cts +2 -2
  174. package/dist/contact-callback.d.ts +2 -2
  175. package/dist/contact-card.d.cts +2 -2
  176. package/dist/contact-card.d.ts +2 -2
  177. package/dist/contact-careers.d.cts +2 -2
  178. package/dist/contact-careers.d.ts +2 -2
  179. package/dist/contact-catering.d.cts +2 -2
  180. package/dist/contact-catering.d.ts +2 -2
  181. package/dist/contact-consultation.d.cts +2 -2
  182. package/dist/contact-consultation.d.ts +2 -2
  183. package/dist/contact-dark.d.cts +2 -2
  184. package/dist/contact-dark.d.ts +2 -2
  185. package/dist/contact-demo.d.cts +2 -2
  186. package/dist/contact-demo.d.ts +2 -2
  187. package/dist/contact-emergency.d.cts +2 -2
  188. package/dist/contact-emergency.d.ts +2 -2
  189. package/dist/contact-event.d.cts +2 -2
  190. package/dist/contact-event.d.ts +2 -2
  191. package/dist/contact-faq.d.cts +2 -2
  192. package/dist/contact-faq.d.ts +2 -2
  193. package/dist/contact-feedback.d.cts +2 -2
  194. package/dist/contact-feedback.d.ts +2 -2
  195. package/dist/contact-fitness.d.cts +2 -2
  196. package/dist/contact-fitness.d.ts +2 -2
  197. package/dist/contact-floating-banner.d.cts +2 -2
  198. package/dist/contact-floating-banner.d.ts +2 -2
  199. package/dist/contact-guest.d.cts +2 -2
  200. package/dist/contact-guest.d.ts +2 -2
  201. package/dist/contact-help-center.d.cts +2 -2
  202. package/dist/contact-help-center.d.ts +2 -2
  203. package/dist/contact-image.d.cts +2 -2
  204. package/dist/contact-image.d.ts +2 -2
  205. package/dist/contact-insurance.d.cts +2 -2
  206. package/dist/contact-insurance.d.ts +2 -2
  207. package/dist/contact-interview.d.cts +2 -2
  208. package/dist/contact-interview.d.ts +2 -2
  209. package/dist/contact-locations.d.cts +2 -2
  210. package/dist/contact-locations.d.ts +2 -2
  211. package/dist/contact-maintenance.d.cts +2 -2
  212. package/dist/contact-maintenance.d.ts +2 -2
  213. package/dist/contact-map.d.cts +2 -2
  214. package/dist/contact-map.d.ts +2 -2
  215. package/dist/contact-minimal.d.cts +2 -2
  216. package/dist/contact-minimal.d.ts +2 -2
  217. package/dist/contact-moving.d.cts +2 -2
  218. package/dist/contact-moving.d.ts +2 -2
  219. package/dist/contact-multistep.d.cts +2 -2
  220. package/dist/contact-multistep.d.ts +2 -2
  221. package/dist/contact-partnership.d.cts +2 -2
  222. package/dist/contact-partnership.d.ts +2 -2
  223. package/dist/contact-photography.d.cts +2 -2
  224. package/dist/contact-photography.d.ts +2 -2
  225. package/dist/contact-press.d.cts +2 -2
  226. package/dist/contact-press.d.ts +2 -2
  227. package/dist/contact-quote.d.cts +2 -2
  228. package/dist/contact-quote.d.ts +2 -2
  229. package/dist/contact-referral.d.cts +2 -2
  230. package/dist/contact-referral.d.ts +2 -2
  231. package/dist/contact-report.d.cts +2 -2
  232. package/dist/contact-report.d.ts +2 -2
  233. package/dist/contact-reservation.d.cts +2 -2
  234. package/dist/contact-reservation.d.ts +2 -2
  235. package/dist/contact-retreat.d.cts +2 -2
  236. package/dist/contact-retreat.d.ts +2 -2
  237. package/dist/contact-rsvp.d.cts +2 -2
  238. package/dist/contact-rsvp.d.ts +2 -2
  239. package/dist/contact-sales.d.cts +2 -2
  240. package/dist/contact-sales.d.ts +2 -2
  241. package/dist/contact-schedule.d.cts +2 -2
  242. package/dist/contact-schedule.d.ts +2 -2
  243. package/dist/contact-sponsorship.d.cts +2 -2
  244. package/dist/contact-sponsorship.d.ts +2 -2
  245. package/dist/contact-support.d.cts +2 -2
  246. package/dist/contact-support.d.ts +2 -2
  247. package/dist/contact-tenant.d.cts +2 -2
  248. package/dist/contact-tenant.d.ts +2 -2
  249. package/dist/contact-vendor.d.cts +2 -2
  250. package/dist/contact-vendor.d.ts +2 -2
  251. package/dist/contact-volunteer.d.cts +2 -2
  252. package/dist/contact-volunteer.d.ts +2 -2
  253. package/dist/contact-warranty.d.cts +2 -2
  254. package/dist/contact-warranty.d.ts +2 -2
  255. package/dist/contact-wedding.d.cts +2 -2
  256. package/dist/contact-wedding.d.ts +2 -2
  257. package/dist/container.d.cts +2 -2
  258. package/dist/container.d.ts +2 -2
  259. package/dist/cta-accent-background.d.cts +2 -2
  260. package/dist/cta-accent-background.d.ts +2 -2
  261. package/dist/cta-app-download-newsletter.d.cts +2 -2
  262. package/dist/cta-app-download-newsletter.d.ts +2 -2
  263. package/dist/cta-background-icon-badge.d.cts +2 -2
  264. package/dist/cta-background-icon-badge.d.ts +2 -2
  265. package/dist/cta-case-study-testimonial.d.cts +2 -2
  266. package/dist/cta-case-study-testimonial.d.ts +2 -2
  267. package/dist/cta-documentation-links.d.cts +2 -2
  268. package/dist/cta-documentation-links.d.ts +2 -2
  269. package/dist/cta-enterprise-dark-features.d.cts +2 -2
  270. package/dist/cta-enterprise-dark-features.d.ts +2 -2
  271. package/dist/cta-enterprise-split.d.cts +2 -2
  272. package/dist/cta-enterprise-split.d.ts +2 -2
  273. package/dist/cta-feature-cards-grid.d.cts +2 -2
  274. package/dist/cta-feature-cards-grid.d.ts +2 -2
  275. package/dist/cta-feature-checklist.d.cts +2 -2
  276. package/dist/cta-feature-checklist.d.ts +2 -2
  277. package/dist/cta-feature-list.d.cts +2 -2
  278. package/dist/cta-feature-list.d.ts +2 -2
  279. package/dist/cta-fullwidth-background.d.cts +2 -2
  280. package/dist/cta-fullwidth-background.d.ts +2 -2
  281. package/dist/cta-gradient-logos-floating.d.cts +2 -2
  282. package/dist/cta-gradient-logos-floating.d.ts +2 -2
  283. package/dist/cta-gradient-stats-hero.d.cts +2 -2
  284. package/dist/cta-gradient-stats-hero.d.ts +2 -2
  285. package/dist/cta-hero-feature-cards.d.cts +2 -2
  286. package/dist/cta-hero-feature-cards.d.ts +2 -2
  287. package/dist/cta-image-overlay-arrow.d.cts +2 -2
  288. package/dist/cta-image-overlay-arrow.d.ts +2 -2
  289. package/dist/cta-image-overlay-centered.d.cts +2 -2
  290. package/dist/cta-image-overlay-centered.d.ts +2 -2
  291. package/dist/cta-minimal-separator.d.cts +2 -2
  292. package/dist/cta-minimal-separator.d.ts +2 -2
  293. package/dist/cta-newsletter-features.d.cts +2 -2
  294. package/dist/cta-newsletter-features.d.ts +2 -2
  295. package/dist/cta-pattern-background.d.cts +2 -2
  296. package/dist/cta-pattern-background.d.ts +2 -2
  297. package/dist/cta-platform-demo.d.cts +2 -2
  298. package/dist/cta-platform-demo.d.ts +2 -2
  299. package/dist/cta-simple-centered.d.cts +2 -2
  300. package/dist/cta-simple-centered.d.ts +2 -2
  301. package/dist/cta-split-gradient-image.d.cts +2 -2
  302. package/dist/cta-split-gradient-image.d.ts +2 -2
  303. package/dist/cta-split-image-logos.d.cts +2 -2
  304. package/dist/cta-split-image-logos.d.ts +2 -2
  305. package/dist/cta-split-image.d.cts +2 -2
  306. package/dist/cta-split-image.d.ts +2 -2
  307. package/dist/cta-stacked-cards.d.cts +2 -2
  308. package/dist/cta-stacked-cards.d.ts +2 -2
  309. package/dist/cta-video-background-hero.d.cts +2 -2
  310. package/dist/cta-video-background-hero.d.ts +2 -2
  311. package/dist/cta-workflow-tabs.d.cts +2 -2
  312. package/dist/cta-workflow-tabs.d.ts +2 -2
  313. package/dist/expandable-case-study-cards.d.cts +2 -2
  314. package/dist/expandable-case-study-cards.d.ts +2 -2
  315. package/dist/faq-badge-support.d.cts +2 -2
  316. package/dist/faq-badge-support.d.ts +2 -2
  317. package/dist/faq-bordered-badge.d.cts +2 -2
  318. package/dist/faq-bordered-badge.d.ts +2 -2
  319. package/dist/faq-card-categories.d.cts +2 -2
  320. package/dist/faq-card-categories.d.ts +2 -2
  321. package/dist/faq-categorized-sections.d.cts +2 -2
  322. package/dist/faq-categorized-sections.d.ts +2 -2
  323. package/dist/faq-centered-accordion.d.cts +2 -2
  324. package/dist/faq-centered-accordion.d.ts +2 -2
  325. package/dist/faq-gradient-categories.d.cts +2 -2
  326. package/dist/faq-gradient-categories.d.ts +2 -2
  327. package/dist/faq-icon-benefits.d.cts +2 -2
  328. package/dist/faq-icon-benefits.d.ts +2 -2
  329. package/dist/faq-muted-cards.d.cts +2 -2
  330. package/dist/faq-muted-cards.d.ts +2 -2
  331. package/dist/faq-numbered-grid.d.cts +2 -2
  332. package/dist/faq-numbered-grid.d.ts +2 -2
  333. package/dist/faq-numbered-list.d.cts +2 -2
  334. package/dist/faq-numbered-list.d.ts +2 -2
  335. package/dist/faq-profile-sidebar.d.cts +2 -2
  336. package/dist/faq-profile-sidebar.d.ts +2 -2
  337. package/dist/faq-rounded-cards.d.cts +2 -2
  338. package/dist/faq-rounded-cards.d.ts +2 -2
  339. package/dist/faq-sidebar-navigation.d.cts +2 -2
  340. package/dist/faq-sidebar-navigation.d.ts +2 -2
  341. package/dist/faq-simple-accordion.d.cts +2 -2
  342. package/dist/faq-simple-accordion.d.ts +2 -2
  343. package/dist/faq-split-help.d.cts +2 -2
  344. package/dist/faq-split-help.d.ts +2 -2
  345. package/dist/faq-static-list.d.cts +2 -2
  346. package/dist/faq-static-list.d.ts +2 -2
  347. package/dist/feature-accordion-image.d.cts +2 -2
  348. package/dist/feature-accordion-image.d.ts +2 -2
  349. package/dist/feature-badge-grid-six.d.cts +2 -2
  350. package/dist/feature-badge-grid-six.d.ts +2 -2
  351. package/dist/feature-bento-image-grid.d.cts +2 -2
  352. package/dist/feature-bento-image-grid.d.ts +2 -2
  353. package/dist/feature-bento-utilities.d.cts +2 -2
  354. package/dist/feature-bento-utilities.d.ts +2 -2
  355. package/dist/feature-card-grid-linked.d.cts +2 -2
  356. package/dist/feature-card-grid-linked.d.ts +2 -2
  357. package/dist/feature-category-image-cards.d.cts +2 -2
  358. package/dist/feature-category-image-cards.d.ts +2 -2
  359. package/dist/feature-checklist-image.d.cts +2 -2
  360. package/dist/feature-checklist-image.d.ts +2 -2
  361. package/dist/feature-checklist-three-column.d.cts +2 -2
  362. package/dist/feature-checklist-three-column.d.ts +2 -2
  363. package/dist/feature-icon-grid-accent.d.cts +2 -2
  364. package/dist/feature-icon-grid-accent.d.ts +2 -2
  365. package/dist/feature-icon-tabs-content.d.cts +2 -2
  366. package/dist/feature-icon-tabs-content.d.ts +2 -2
  367. package/dist/feature-image-cards-three-column.d.cts +2 -2
  368. package/dist/feature-image-cards-three-column.d.ts +2 -2
  369. package/dist/feature-image-overlay-badge.d.cts +2 -2
  370. package/dist/feature-image-overlay-badge.d.ts +2 -2
  371. package/dist/feature-integration-cards.d.cts +2 -2
  372. package/dist/feature-integration-cards.d.ts +2 -2
  373. package/dist/feature-numbered-cards.d.cts +2 -2
  374. package/dist/feature-numbered-cards.d.ts +2 -2
  375. package/dist/feature-showcase.d.cts +2 -2
  376. package/dist/feature-showcase.d.ts +2 -2
  377. package/dist/feature-split-image-reverse.d.cts +2 -2
  378. package/dist/feature-split-image-reverse.d.ts +2 -2
  379. package/dist/feature-split-image.d.cts +2 -2
  380. package/dist/feature-split-image.d.ts +2 -2
  381. package/dist/feature-stats-highlight.d.cts +2 -2
  382. package/dist/feature-stats-highlight.d.ts +2 -2
  383. package/dist/feature-tabbed-content-image.d.cts +2 -2
  384. package/dist/feature-tabbed-content-image.d.ts +2 -2
  385. package/dist/feature-utility-cards-grid.d.cts +2 -2
  386. package/dist/feature-utility-cards-grid.d.ts +2 -2
  387. package/dist/footer-animated-social.d.cts +2 -2
  388. package/dist/footer-animated-social.d.ts +2 -2
  389. package/dist/footer-background-card.d.cts +2 -2
  390. package/dist/footer-background-card.d.ts +2 -2
  391. package/dist/footer-brand-description.d.cts +2 -2
  392. package/dist/footer-brand-description.d.ts +2 -2
  393. package/dist/footer-brand-links-contact.d.cts +2 -2
  394. package/dist/footer-brand-links-contact.d.ts +2 -2
  395. package/dist/footer-contact-card.d.cts +2 -2
  396. package/dist/footer-contact-card.d.ts +2 -2
  397. package/dist/footer-cta-banner.d.cts +2 -2
  398. package/dist/footer-cta-banner.d.ts +2 -2
  399. package/dist/footer-cta-social.d.cts +2 -2
  400. package/dist/footer-cta-social.d.ts +2 -2
  401. package/dist/footer-nav-social.d.cts +2 -2
  402. package/dist/footer-nav-social.d.ts +2 -2
  403. package/dist/footer-newsletter-minimal.d.cts +2 -2
  404. package/dist/footer-newsletter-minimal.d.ts +2 -2
  405. package/dist/footer-simple-centered.d.cts +2 -2
  406. package/dist/footer-simple-centered.d.ts +2 -2
  407. package/dist/footer-social-newsletter.d.cts +2 -2
  408. package/dist/footer-social-newsletter.d.ts +2 -2
  409. package/dist/hero-ad-campaign-expert.d.cts +2 -2
  410. package/dist/hero-ad-campaign-expert.d.ts +2 -2
  411. package/dist/hero-adaptable-product-grid.d.cts +2 -2
  412. package/dist/hero-adaptable-product-grid.d.ts +2 -2
  413. package/dist/hero-agency-animated-images.d.cts +2 -2
  414. package/dist/hero-agency-animated-images.d.ts +2 -2
  415. package/dist/hero-ai-powered-carousel.d.cts +2 -2
  416. package/dist/hero-ai-powered-carousel.d.ts +2 -2
  417. package/dist/hero-announcement-badge.d.cts +2 -2
  418. package/dist/hero-announcement-badge.d.ts +2 -2
  419. package/dist/hero-architecture-fullscreen.d.cts +2 -2
  420. package/dist/hero-architecture-fullscreen.d.ts +2 -2
  421. package/dist/hero-badge-image-split.d.cts +2 -2
  422. package/dist/hero-badge-image-split.d.ts +2 -2
  423. package/dist/hero-badge-shadow-overlay.d.cts +2 -2
  424. package/dist/hero-badge-shadow-overlay.d.ts +2 -2
  425. package/dist/hero-billing-platform-logos.d.cts +2 -2
  426. package/dist/hero-billing-platform-logos.d.ts +2 -2
  427. package/dist/hero-business-carousel-dots.d.cts +2 -2
  428. package/dist/hero-business-carousel-dots.d.ts +2 -2
  429. package/dist/hero-business-operations-mosaic.d.cts +2 -2
  430. package/dist/hero-business-operations-mosaic.d.ts +2 -2
  431. package/dist/hero-centered-gradient-cta.d.cts +2 -2
  432. package/dist/hero-centered-gradient-cta.d.ts +2 -2
  433. package/dist/hero-centered-image-grid.d.cts +2 -2
  434. package/dist/hero-centered-image-grid.d.ts +2 -2
  435. package/dist/hero-centered-screenshot.d.cts +2 -2
  436. package/dist/hero-centered-screenshot.d.ts +2 -2
  437. package/dist/hero-coming-soon-countdown.d.cts +2 -2
  438. package/dist/hero-coming-soon-countdown.d.ts +2 -2
  439. package/dist/hero-community-survey-cta.d.cts +2 -2
  440. package/dist/hero-community-survey-cta.d.ts +2 -2
  441. package/dist/hero-conversation-intelligence.d.cts +2 -2
  442. package/dist/hero-conversation-intelligence.d.ts +2 -2
  443. package/dist/hero-conversion-video-play.d.cts +2 -2
  444. package/dist/hero-conversion-video-play.d.ts +2 -2
  445. package/dist/hero-creative-studio-stacked.d.cts +2 -2
  446. package/dist/hero-creative-studio-stacked.d.ts +2 -2
  447. package/dist/hero-crm-streamlined.d.cts +2 -2
  448. package/dist/hero-crm-streamlined.d.ts +2 -2
  449. package/dist/hero-customer-support-layered.d.cts +2 -2
  450. package/dist/hero-customer-support-layered.d.ts +2 -2
  451. package/dist/hero-dashed-border-features.d.cts +2 -2
  452. package/dist/hero-dashed-border-features.d.ts +2 -2
  453. package/dist/hero-design-carousel-portfolio.d.cts +2 -2
  454. package/dist/hero-design-carousel-portfolio.d.ts +2 -2
  455. package/dist/hero-design-showcase-logos.d.cts +2 -2
  456. package/dist/hero-design-showcase-logos.d.ts +2 -2
  457. package/dist/hero-design-system-3d.d.cts +2 -2
  458. package/dist/hero-design-system-3d.d.ts +2 -2
  459. package/dist/hero-developer-tools-code.d.cts +2 -2
  460. package/dist/hero-developer-tools-code.d.ts +2 -2
  461. package/dist/hero-digital-agency-fullscreen.d.cts +2 -2
  462. package/dist/hero-digital-agency-fullscreen.d.ts +2 -2
  463. package/dist/hero-ecommerce-product-showcase.d.cts +2 -2
  464. package/dist/hero-ecommerce-product-showcase.d.ts +2 -2
  465. package/dist/hero-enterprise-security.d.cts +2 -2
  466. package/dist/hero-enterprise-security.d.ts +2 -2
  467. package/dist/hero-event-registration.d.cts +2 -2
  468. package/dist/hero-event-registration.d.ts +2 -2
  469. package/dist/hero-feature-cards-grid.d.cts +2 -2
  470. package/dist/hero-feature-cards-grid.d.ts +2 -2
  471. package/dist/hero-floating-images.d.cts +2 -2
  472. package/dist/hero-floating-images.d.ts +2 -2
  473. package/dist/hero-fullscreen-background-image.d.cts +2 -2
  474. package/dist/hero-fullscreen-background-image.d.ts +2 -2
  475. package/dist/hero-fullscreen-logo-cta.d.cts +2 -2
  476. package/dist/hero-fullscreen-logo-cta.d.ts +2 -2
  477. package/dist/hero-gradient-avatars-rating.d.cts +2 -2
  478. package/dist/hero-gradient-avatars-rating.d.ts +2 -2
  479. package/dist/hero-gradient-client-focused.d.cts +2 -2
  480. package/dist/hero-gradient-client-focused.d.ts +2 -2
  481. package/dist/hero-grid-pattern-efficiency.d.cts +2 -2
  482. package/dist/hero-grid-pattern-efficiency.d.ts +2 -2
  483. package/dist/hero-grid-pattern-solutions.d.cts +2 -2
  484. package/dist/hero-grid-pattern-solutions.d.ts +2 -2
  485. package/dist/hero-hiring-animated-text.d.cts +2 -2
  486. package/dist/hero-hiring-animated-text.d.ts +2 -2
  487. package/dist/hero-image-left-content.d.cts +2 -2
  488. package/dist/hero-image-left-content.d.ts +2 -2
  489. package/dist/hero-image-slider.d.cts +2 -2
  490. package/dist/hero-image-slider.d.ts +2 -2
  491. package/dist/hero-innovation-image-grid.d.cts +2 -2
  492. package/dist/hero-innovation-image-grid.d.ts +2 -2
  493. package/dist/hero-logo-centered-screenshot.d.cts +2 -2
  494. package/dist/hero-logo-centered-screenshot.d.ts +2 -2
  495. package/dist/hero-marketplace-scattered-images.d.cts +2 -2
  496. package/dist/hero-marketplace-scattered-images.d.ts +2 -2
  497. package/dist/hero-mental-health-team.d.cts +2 -2
  498. package/dist/hero-mental-health-team.d.ts +2 -2
  499. package/dist/hero-mentorship-video-split.d.cts +2 -2
  500. package/dist/hero-mentorship-video-split.d.ts +2 -2
  501. package/dist/hero-minimal-centered-dark.d.cts +2 -2
  502. package/dist/hero-minimal-centered-dark.d.ts +2 -2
  503. package/dist/hero-mobile-app-download.d.cts +2 -2
  504. package/dist/hero-mobile-app-download.d.ts +2 -2
  505. package/dist/hero-newsletter-minimal.d.cts +2 -2
  506. package/dist/hero-newsletter-minimal.d.ts +2 -2
  507. package/dist/hero-pattern-badge-logos.d.cts +2 -2
  508. package/dist/hero-pattern-badge-logos.d.ts +2 -2
  509. package/dist/hero-pattern-logo-tech-stack.d.cts +2 -2
  510. package/dist/hero-pattern-logo-tech-stack.d.ts +2 -2
  511. package/dist/hero-platform-features-grid.d.cts +2 -2
  512. package/dist/hero-platform-features-grid.d.ts +2 -2
  513. package/dist/hero-portfolio-creative.d.cts +2 -2
  514. package/dist/hero-portfolio-creative.d.ts +2 -2
  515. package/dist/hero-premium-split-avatars.d.cts +2 -2
  516. package/dist/hero-premium-split-avatars.d.ts +2 -2
  517. package/dist/hero-presentation-platform-video.d.cts +2 -2
  518. package/dist/hero-presentation-platform-video.d.ts +2 -2
  519. package/dist/hero-pricing-comparison.d.cts +2 -2
  520. package/dist/hero-pricing-comparison.d.ts +2 -2
  521. package/dist/hero-product-showcase-floating.d.cts +2 -2
  522. package/dist/hero-product-showcase-floating.d.ts +2 -2
  523. package/dist/hero-productivity-launcher-video.d.cts +2 -2
  524. package/dist/hero-productivity-launcher-video.d.ts +2 -2
  525. package/dist/hero-saas-dashboard-preview.d.cts +2 -2
  526. package/dist/hero-saas-dashboard-preview.d.ts +2 -2
  527. package/dist/hero-shared-inbox-layered.d.cts +2 -2
  528. package/dist/hero-shared-inbox-layered.d.ts +2 -2
  529. package/dist/hero-simple-centered-image.d.cts +2 -2
  530. package/dist/hero-simple-centered-image.d.ts +2 -2
  531. package/dist/hero-software-growth-video-dialog.d.cts +2 -2
  532. package/dist/hero-software-growth-video-dialog.d.ts +2 -2
  533. package/dist/hero-spiral-pattern-cards.d.cts +2 -2
  534. package/dist/hero-spiral-pattern-cards.d.ts +2 -2
  535. package/dist/hero-split-geometric-shapes.d.cts +2 -2
  536. package/dist/hero-split-geometric-shapes.d.ts +2 -2
  537. package/dist/hero-split-icon-cards.d.cts +2 -2
  538. package/dist/hero-split-icon-cards.d.ts +2 -2
  539. package/dist/hero-split-image-newsletter.d.cts +2 -2
  540. package/dist/hero-split-image-newsletter.d.ts +2 -2
  541. package/dist/hero-split-spiral-shapes.d.cts +2 -2
  542. package/dist/hero-split-spiral-shapes.d.ts +2 -2
  543. package/dist/hero-startup-launch-cta.d.cts +2 -2
  544. package/dist/hero-startup-launch-cta.d.ts +2 -2
  545. package/dist/hero-stats-social-proof.d.cts +2 -2
  546. package/dist/hero-stats-social-proof.d.ts +2 -2
  547. package/dist/hero-task-timer-animated.d.cts +2 -2
  548. package/dist/hero-task-timer-animated.d.ts +2 -2
  549. package/dist/hero-tech-carousel.d.cts +2 -2
  550. package/dist/hero-tech-carousel.d.ts +2 -2
  551. package/dist/hero-therapy-testimonial-grid.d.cts +2 -2
  552. package/dist/hero-therapy-testimonial-grid.d.ts +2 -2
  553. package/dist/hero-ui-library-showcase.d.cts +2 -2
  554. package/dist/hero-ui-library-showcase.d.ts +2 -2
  555. package/dist/hero-video-background-dark.d.cts +2 -2
  556. package/dist/hero-video-background-dark.d.ts +2 -2
  557. package/dist/hero-video-dialog-gradient.d.cts +2 -2
  558. package/dist/hero-video-dialog-gradient.d.ts +2 -2
  559. package/dist/hero-video-overlay-stars.d.cts +2 -2
  560. package/dist/hero-video-overlay-stars.d.ts +2 -2
  561. package/dist/hero-welcome-asymmetric-images.d.cts +2 -2
  562. package/dist/hero-welcome-asymmetric-images.d.ts +2 -2
  563. package/dist/image-slider.d.cts +2 -2
  564. package/dist/image-slider.d.ts +2 -2
  565. package/dist/index.d.cts +2 -2
  566. package/dist/index.d.ts +2 -2
  567. package/dist/industries-badge-list-bordered.d.cts +2 -2
  568. package/dist/industries-badge-list-bordered.d.ts +2 -2
  569. package/dist/industries-expandable-showcase.d.cts +2 -2
  570. package/dist/industries-expandable-showcase.d.ts +2 -2
  571. package/dist/industries-hover-reveal-grid.d.cts +2 -2
  572. package/dist/industries-hover-reveal-grid.d.ts +2 -2
  573. package/dist/industries-timeline-table.d.cts +2 -2
  574. package/dist/industries-timeline-table.d.ts +2 -2
  575. package/dist/interior-carousel.d.cts +2 -2
  576. package/dist/interior-carousel.d.ts +2 -2
  577. package/dist/link-page-bento-layout.d.cts +2 -2
  578. package/dist/link-page-bento-layout.d.ts +2 -2
  579. package/dist/link-page-grid-cards.d.cts +2 -2
  580. package/dist/link-page-grid-cards.d.ts +2 -2
  581. package/dist/link-page-minimal-profile.d.cts +2 -2
  582. package/dist/link-page-minimal-profile.d.ts +2 -2
  583. package/dist/link-page-newsletter-social.d.cts +2 -2
  584. package/dist/link-page-newsletter-social.d.ts +2 -2
  585. package/dist/link-tree-block.d.cts +2 -2
  586. package/dist/link-tree-block.d.ts +2 -2
  587. package/dist/list-searchable-grid.d.cts +2 -2
  588. package/dist/list-searchable-grid.d.ts +2 -2
  589. package/dist/logos-carousel-heading.d.cts +2 -2
  590. package/dist/logos-carousel-heading.d.ts +2 -2
  591. package/dist/logos-centered-simple.d.cts +2 -2
  592. package/dist/logos-centered-simple.d.ts +2 -2
  593. package/dist/logos-certifications-grid.d.cts +2 -2
  594. package/dist/logos-certifications-grid.d.ts +2 -2
  595. package/dist/logos-double-carousel-pattern.d.cts +2 -2
  596. package/dist/logos-double-carousel-pattern.d.ts +2 -2
  597. package/dist/logos-inline-tagline.d.cts +2 -2
  598. package/dist/logos-inline-tagline.d.ts +2 -2
  599. package/dist/logos-marquee-muted.d.cts +2 -2
  600. package/dist/logos-marquee-muted.d.ts +2 -2
  601. package/dist/logos-minimal-carousel.d.cts +2 -2
  602. package/dist/logos-minimal-carousel.d.ts +2 -2
  603. package/dist/logos-numbered-carousel.d.cts +2 -2
  604. package/dist/logos-numbered-carousel.d.ts +2 -2
  605. package/dist/logos-partner-grid-sidebar.d.cts +2 -2
  606. package/dist/logos-partner-grid-sidebar.d.ts +2 -2
  607. package/dist/logos-partner-network.d.cts +2 -2
  608. package/dist/logos-partner-network.d.ts +2 -2
  609. package/dist/logos-two-row-grid.d.cts +2 -2
  610. package/dist/logos-two-row-grid.d.ts +2 -2
  611. package/dist/masonry-motion-grid.d.cts +2 -2
  612. package/dist/masonry-motion-grid.d.ts +2 -2
  613. package/dist/media-hover-ctas.d.cts +2 -2
  614. package/dist/media-hover-ctas.d.ts +2 -2
  615. package/dist/navbar-animated-preview.d.cts +2 -2
  616. package/dist/navbar-animated-preview.d.ts +2 -2
  617. package/dist/navbar-centered-menu.d.cts +2 -2
  618. package/dist/navbar-centered-menu.d.ts +2 -2
  619. package/dist/navbar-dark-icons.d.cts +2 -2
  620. package/dist/navbar-dark-icons.d.ts +2 -2
  621. package/dist/navbar-dropdown-menu.d.cts +2 -2
  622. package/dist/navbar-dropdown-menu.d.ts +2 -2
  623. package/dist/navbar-education-platform.d.cts +2 -2
  624. package/dist/navbar-education-platform.d.ts +2 -2
  625. package/dist/navbar-enterprise-mega.d.cts +2 -2
  626. package/dist/navbar-enterprise-mega.d.ts +2 -2
  627. package/dist/navbar-feature-grid.d.cts +2 -2
  628. package/dist/navbar-feature-grid.d.ts +2 -2
  629. package/dist/navbar-floating-pill.d.cts +2 -2
  630. package/dist/navbar-floating-pill.d.ts +2 -2
  631. package/dist/navbar-fullscreen-menu.d.cts +2 -2
  632. package/dist/navbar-fullscreen-menu.d.ts +2 -2
  633. package/dist/navbar-icon-links.d.cts +2 -2
  634. package/dist/navbar-icon-links.d.ts +2 -2
  635. package/dist/navbar-image-preview.d.cts +2 -2
  636. package/dist/navbar-image-preview.d.ts +2 -2
  637. package/dist/navbar-mega-menu.d.cts +2 -2
  638. package/dist/navbar-mega-menu.d.ts +2 -2
  639. package/dist/navbar-multi-column-groups.d.cts +2 -2
  640. package/dist/navbar-multi-column-groups.d.ts +2 -2
  641. package/dist/navbar-platform-resources.d.cts +2 -2
  642. package/dist/navbar-platform-resources.d.ts +2 -2
  643. package/dist/navbar-search-focused.d.cts +2 -2
  644. package/dist/navbar-search-focused.d.ts +2 -2
  645. package/dist/navbar-sidebar-mobile.d.cts +2 -2
  646. package/dist/navbar-sidebar-mobile.d.ts +2 -2
  647. package/dist/navbar-simple-links.d.cts +2 -2
  648. package/dist/navbar-simple-links.d.ts +2 -2
  649. package/dist/navbar-split-cta.d.cts +2 -2
  650. package/dist/navbar-split-cta.d.ts +2 -2
  651. package/dist/navbar-sticky-compact.d.cts +2 -2
  652. package/dist/navbar-sticky-compact.d.ts +2 -2
  653. package/dist/navbar-tabbed-sections.d.cts +2 -2
  654. package/dist/navbar-tabbed-sections.d.ts +2 -2
  655. package/dist/navbar-transparent-overlay.d.cts +2 -2
  656. package/dist/navbar-transparent-overlay.d.ts +2 -2
  657. package/dist/page-hero-banner.d.cts +2 -2
  658. package/dist/page-hero-banner.d.ts +2 -2
  659. package/dist/pressable.d.cts +1 -1
  660. package/dist/pressable.d.ts +1 -1
  661. package/dist/process-expandable-timeline.d.cts +2 -2
  662. package/dist/process-expandable-timeline.d.ts +2 -2
  663. package/dist/process-hover-cards.d.cts +2 -2
  664. package/dist/process-hover-cards.d.ts +2 -2
  665. package/dist/process-icon-timeline.d.cts +2 -2
  666. package/dist/process-icon-timeline.d.ts +2 -2
  667. package/dist/process-mission-principles.d.cts +2 -2
  668. package/dist/process-mission-principles.d.ts +2 -2
  669. package/dist/process-numbered-services.d.cts +2 -2
  670. package/dist/process-numbered-services.d.ts +2 -2
  671. package/dist/process-roadmap-timeline.d.cts +2 -2
  672. package/dist/process-roadmap-timeline.d.ts +2 -2
  673. package/dist/process-scroll-image.d.cts +2 -2
  674. package/dist/process-scroll-image.d.ts +2 -2
  675. package/dist/process-steps-grid.d.cts +2 -2
  676. package/dist/process-steps-grid.d.ts +2 -2
  677. package/dist/process-sticky-steps.d.cts +2 -2
  678. package/dist/process-sticky-steps.d.ts +2 -2
  679. package/dist/project-alternating-motion.d.cts +2 -2
  680. package/dist/project-alternating-motion.d.ts +2 -2
  681. package/dist/project-background-reveal.d.cts +2 -2
  682. package/dist/project-background-reveal.d.ts +2 -2
  683. package/dist/project-card-overlay.d.cts +2 -2
  684. package/dist/project-card-overlay.d.ts +2 -2
  685. package/dist/project-carousel-cinematic.d.cts +2 -2
  686. package/dist/project-carousel-cinematic.d.ts +2 -2
  687. package/dist/project-carousel-detail-cards.d.cts +2 -2
  688. package/dist/project-carousel-detail-cards.d.ts +2 -2
  689. package/dist/project-carousel-minimal.d.cts +2 -2
  690. package/dist/project-carousel-minimal.d.ts +2 -2
  691. package/dist/project-detail-architecture-carousel.d.cts +2 -2
  692. package/dist/project-detail-architecture-carousel.d.ts +2 -2
  693. package/dist/project-experience-quote.d.cts +2 -2
  694. package/dist/project-experience-quote.d.ts +2 -2
  695. package/dist/project-featured-carousel.d.cts +2 -2
  696. package/dist/project-featured-carousel.d.ts +2 -2
  697. package/dist/project-filterable-gallery.d.cts +2 -2
  698. package/dist/project-filterable-gallery.d.ts +2 -2
  699. package/dist/project-filterable-three-column.d.cts +2 -2
  700. package/dist/project-filterable-three-column.d.ts +2 -2
  701. package/dist/project-grid-gallery.d.cts +2 -2
  702. package/dist/project-grid-gallery.d.ts +2 -2
  703. package/dist/project-grid-motion.d.cts +2 -2
  704. package/dist/project-grid-motion.d.ts +2 -2
  705. package/dist/project-horizontal-cards.d.cts +2 -2
  706. package/dist/project-horizontal-cards.d.ts +2 -2
  707. package/dist/project-hover-reveal-grid.d.cts +2 -2
  708. package/dist/project-hover-reveal-grid.d.ts +2 -2
  709. package/dist/project-interactive-hover-reveal.d.cts +2 -2
  710. package/dist/project-interactive-hover-reveal.d.ts +2 -2
  711. package/dist/project-masonry-columns.d.cts +2 -2
  712. package/dist/project-masonry-columns.d.ts +2 -2
  713. package/dist/project-nature-mosaic.d.cts +2 -2
  714. package/dist/project-nature-mosaic.d.ts +2 -2
  715. package/dist/project-scroll-reveal.d.cts +2 -2
  716. package/dist/project-scroll-reveal.d.ts +2 -2
  717. package/dist/project-showcase-alternating.d.cts +2 -2
  718. package/dist/project-showcase-alternating.d.ts +2 -2
  719. package/dist/project-sticky-scroll.d.cts +2 -2
  720. package/dist/project-sticky-scroll.d.ts +2 -2
  721. package/dist/project-studio-hover-preview.d.cts +2 -2
  722. package/dist/project-studio-hover-preview.d.ts +2 -2
  723. package/dist/project-table-list.d.cts +2 -2
  724. package/dist/project-table-list.d.ts +2 -2
  725. package/dist/project-video-carousel.d.cts +2 -2
  726. package/dist/project-video-carousel.d.ts +2 -2
  727. package/dist/project-video-hover-bento.d.cts +2 -2
  728. package/dist/project-video-hover-bento.d.ts +2 -2
  729. package/dist/project-video-hover-grid.d.cts +2 -2
  730. package/dist/project-video-hover-grid.d.ts +2 -2
  731. package/dist/project-video-hover-rounded.d.cts +2 -2
  732. package/dist/project-video-hover-rounded.d.ts +2 -2
  733. package/dist/project-video-hover-stack.d.cts +2 -2
  734. package/dist/project-video-hover-stack.d.ts +2 -2
  735. package/dist/project-video-hover-two-by-two.d.cts +2 -2
  736. package/dist/project-video-hover-two-by-two.d.ts +2 -2
  737. package/dist/project-work-showcase.d.cts +2 -2
  738. package/dist/project-work-showcase.d.ts +2 -2
  739. package/dist/registry.cjs +1084 -447
  740. package/dist/registry.js +1084 -447
  741. package/dist/resource-detail-whitepaper-sidebar.d.cts +2 -2
  742. package/dist/resource-detail-whitepaper-sidebar.d.ts +2 -2
  743. package/dist/resource-list-course-cards.d.cts +2 -2
  744. package/dist/resource-list-course-cards.d.ts +2 -2
  745. package/dist/resource-list-featured-articles.d.cts +2 -2
  746. package/dist/resource-list-featured-articles.d.ts +2 -2
  747. package/dist/resource-list-featured-grid.d.cts +2 -2
  748. package/dist/resource-list-featured-grid.d.ts +2 -2
  749. package/dist/resource-list-hero-filter.d.cts +2 -2
  750. package/dist/resource-list-hero-filter.d.ts +2 -2
  751. package/dist/resource-list-news-updates.d.cts +2 -2
  752. package/dist/resource-list-news-updates.d.ts +2 -2
  753. package/dist/reviews-images-helpful.d.cts +2 -2
  754. package/dist/reviews-images-helpful.d.ts +2 -2
  755. package/dist/reviews-list-verified.d.cts +2 -2
  756. package/dist/reviews-list-verified.d.ts +2 -2
  757. package/dist/section.d.cts +2 -2
  758. package/dist/section.d.ts +2 -2
  759. package/dist/service-detail-centered-expertise.d.cts +2 -2
  760. package/dist/service-detail-centered-expertise.d.ts +2 -2
  761. package/dist/service-detail-compact-cards.d.cts +2 -2
  762. package/dist/service-detail-compact-cards.d.ts +2 -2
  763. package/dist/service-detail-image-hero.d.cts +2 -2
  764. package/dist/service-detail-image-hero.d.ts +2 -2
  765. package/dist/service-detail-prose-minimal.d.cts +2 -2
  766. package/dist/service-detail-prose-minimal.d.ts +2 -2
  767. package/dist/service-detail-sidebar-related.d.cts +2 -2
  768. package/dist/service-detail-sidebar-related.d.ts +2 -2
  769. package/dist/service-detail-sidebar-stats.d.cts +2 -2
  770. package/dist/service-detail-sidebar-stats.d.ts +2 -2
  771. package/dist/service-detail-stats-hero.d.cts +2 -2
  772. package/dist/service-detail-stats-hero.d.ts +2 -2
  773. package/dist/service-hover-carousel.d.cts +2 -2
  774. package/dist/service-hover-carousel.d.ts +2 -2
  775. package/dist/services-list-feature-spotlight.d.cts +2 -2
  776. package/dist/services-list-feature-spotlight.d.ts +2 -2
  777. package/dist/stats-animated-counter.cjs +83 -20
  778. package/dist/stats-animated-counter.d.cts +2 -2
  779. package/dist/stats-animated-counter.d.ts +2 -2
  780. package/dist/stats-animated-counter.js +83 -20
  781. package/dist/stats-bar-comparison.cjs +92 -32
  782. package/dist/stats-bar-comparison.d.cts +2 -2
  783. package/dist/stats-bar-comparison.d.ts +2 -2
  784. package/dist/stats-bar-comparison.js +92 -32
  785. package/dist/stats-card-group.cjs +51 -38
  786. package/dist/stats-card-group.d.cts +2 -2
  787. package/dist/stats-card-group.d.ts +2 -2
  788. package/dist/stats-card-group.js +51 -38
  789. package/dist/stats-circular-progress.cjs +110 -31
  790. package/dist/stats-circular-progress.d.cts +2 -2
  791. package/dist/stats-circular-progress.d.ts +2 -2
  792. package/dist/stats-circular-progress.js +110 -31
  793. package/dist/stats-growth-timeline.cjs +59 -23
  794. package/dist/stats-growth-timeline.d.cts +2 -2
  795. package/dist/stats-growth-timeline.d.ts +2 -2
  796. package/dist/stats-growth-timeline.js +59 -23
  797. package/dist/stats-icon-cards.cjs +73 -20
  798. package/dist/stats-icon-cards.d.cts +2 -2
  799. package/dist/stats-icon-cards.d.ts +2 -2
  800. package/dist/stats-icon-cards.js +73 -20
  801. package/dist/stats-impact-grid.d.cts +2 -2
  802. package/dist/stats-impact-grid.d.ts +2 -2
  803. package/dist/stats-milestone-sidebar.d.cts +2 -2
  804. package/dist/stats-milestone-sidebar.d.ts +2 -2
  805. package/dist/stats-number-ticker.d.cts +2 -2
  806. package/dist/stats-number-ticker.d.ts +2 -2
  807. package/dist/stats-primary-secondary.cjs +84 -18
  808. package/dist/stats-primary-secondary.d.cts +2 -2
  809. package/dist/stats-primary-secondary.d.ts +2 -2
  810. package/dist/stats-primary-secondary.js +84 -18
  811. package/dist/stats-simple-grid.cjs +80 -13
  812. package/dist/stats-simple-grid.d.cts +2 -2
  813. package/dist/stats-simple-grid.d.ts +2 -2
  814. package/dist/stats-simple-grid.js +80 -13
  815. package/dist/stats-timeline-tabs.cjs +121 -65
  816. package/dist/stats-timeline-tabs.d.cts +2 -2
  817. package/dist/stats-timeline-tabs.d.ts +2 -2
  818. package/dist/stats-timeline-tabs.js +121 -65
  819. package/dist/team-media-showcase.d.cts +2 -2
  820. package/dist/team-media-showcase.d.ts +2 -2
  821. package/dist/testimonial-carousel-cards.d.cts +2 -2
  822. package/dist/testimonial-carousel-cards.d.ts +2 -2
  823. package/dist/testimonials-animated-split.d.cts +2 -2
  824. package/dist/testimonials-animated-split.d.ts +2 -2
  825. package/dist/testimonials-bento-grid.d.cts +2 -2
  826. package/dist/testimonials-bento-grid.d.ts +2 -2
  827. package/dist/testimonials-carousel-image.d.cts +2 -2
  828. package/dist/testimonials-carousel-image.d.ts +2 -2
  829. package/dist/testimonials-centered-avatars.d.cts +2 -2
  830. package/dist/testimonials-centered-avatars.d.ts +2 -2
  831. package/dist/testimonials-company-logo.d.cts +2 -2
  832. package/dist/testimonials-company-logo.d.ts +2 -2
  833. package/dist/testimonials-grid-add-review.d.cts +2 -2
  834. package/dist/testimonials-grid-add-review.d.ts +2 -2
  835. package/dist/testimonials-large-quote.d.cts +2 -2
  836. package/dist/testimonials-large-quote.d.ts +2 -2
  837. package/dist/testimonials-logo-cards.d.cts +2 -2
  838. package/dist/testimonials-logo-cards.d.ts +2 -2
  839. package/dist/testimonials-marquee.d.cts +2 -2
  840. package/dist/testimonials-marquee.d.ts +2 -2
  841. package/dist/testimonials-masonry-grid.d.cts +2 -2
  842. package/dist/testimonials-masonry-grid.d.ts +2 -2
  843. package/dist/testimonials-mini-dividers.d.cts +2 -2
  844. package/dist/testimonials-mini-dividers.d.ts +2 -2
  845. package/dist/testimonials-minimal-numbered.d.cts +2 -2
  846. package/dist/testimonials-minimal-numbered.d.ts +2 -2
  847. package/dist/testimonials-parallax-number.d.cts +2 -2
  848. package/dist/testimonials-parallax-number.d.ts +2 -2
  849. package/dist/testimonials-quote-carousel.d.cts +2 -2
  850. package/dist/testimonials-quote-carousel.d.ts +2 -2
  851. package/dist/testimonials-scrolling-columns.d.cts +2 -2
  852. package/dist/testimonials-scrolling-columns.d.ts +2 -2
  853. package/dist/testimonials-simple-grid.d.cts +2 -2
  854. package/dist/testimonials-simple-grid.d.ts +2 -2
  855. package/dist/testimonials-slider-minimal.d.cts +2 -2
  856. package/dist/testimonials-slider-minimal.d.ts +2 -2
  857. package/dist/testimonials-split-image.d.cts +2 -2
  858. package/dist/testimonials-split-image.d.ts +2 -2
  859. package/dist/testimonials-stats-header.d.cts +2 -2
  860. package/dist/testimonials-stats-header.d.ts +2 -2
  861. package/dist/testimonials-twitter-cards.d.cts +2 -2
  862. package/dist/testimonials-twitter-cards.d.ts +2 -2
  863. package/dist/testimonials-wall-compact.d.cts +2 -2
  864. package/dist/testimonials-wall-compact.d.ts +2 -2
  865. package/dist/timeline-ai-workflow-cards.d.cts +2 -2
  866. package/dist/timeline-ai-workflow-cards.d.ts +2 -2
  867. package/dist/timeline-alternating-diagonal.d.cts +2 -2
  868. package/dist/timeline-alternating-diagonal.d.ts +2 -2
  869. package/dist/timeline-changelog-badges.d.cts +2 -2
  870. package/dist/timeline-changelog-badges.d.ts +2 -2
  871. package/dist/timeline-history-prose.d.cts +2 -2
  872. package/dist/timeline-history-prose.d.ts +2 -2
  873. package/dist/timeline-horizontal-icons.d.cts +2 -2
  874. package/dist/timeline-horizontal-icons.d.ts +2 -2
  875. package/dist/timeline-horizontal-phases.d.cts +2 -2
  876. package/dist/timeline-horizontal-phases.d.ts +2 -2
  877. package/dist/timeline-product-launch.d.cts +2 -2
  878. package/dist/timeline-product-launch.d.ts +2 -2
  879. package/dist/timeline-productivity-list.d.cts +2 -2
  880. package/dist/timeline-productivity-list.d.ts +2 -2
  881. package/dist/timeline-scroll-highlight.d.cts +2 -2
  882. package/dist/timeline-scroll-highlight.d.ts +2 -2
  883. package/dist/timeline-scroll-sticky-image.d.cts +2 -2
  884. package/dist/timeline-scroll-sticky-image.d.ts +2 -2
  885. package/dist/timeline-stepper-animated.d.cts +2 -2
  886. package/dist/timeline-stepper-animated.d.ts +2 -2
  887. package/dist/timeline-tabbed-phases.d.cts +2 -2
  888. package/dist/timeline-tabbed-phases.d.ts +2 -2
  889. package/dist/timeline-two-column-featured.d.cts +2 -2
  890. package/dist/timeline-two-column-featured.d.ts +2 -2
  891. package/dist/timeline-vertical-icon-dashed.d.cts +2 -2
  892. package/dist/timeline-vertical-icon-dashed.d.ts +2 -2
  893. package/dist/types.d.cts +2 -2
  894. package/dist/types.d.ts +2 -2
  895. package/package.json +1 -1
package/dist/registry.cjs CHANGED
@@ -76250,7 +76250,7 @@ function ProjectDetailParallaxScroll(props) {
76250
76250
  }
76251
76251
  function BannerPromoCta({
76252
76252
  message,
76253
- discount = "Up to 50% off",
76253
+ discount,
76254
76254
  separator,
76255
76255
  actions,
76256
76256
  actionsSlot,
@@ -76262,11 +76262,18 @@ function BannerPromoCta({
76262
76262
  discountClassName,
76263
76263
  actionsClassName
76264
76264
  }) {
76265
- const renderActions = () => {
76265
+ const actionsContent = React13.useMemo(() => {
76266
76266
  if (actionsSlot) return actionsSlot;
76267
76267
  if (!actions || actions.length === 0) return null;
76268
76268
  return actions.map((action, index) => {
76269
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76269
+ const {
76270
+ label,
76271
+ icon: actionIcon,
76272
+ iconAfter,
76273
+ children,
76274
+ className: actionClassName,
76275
+ ...pressableProps
76276
+ } = action;
76270
76277
  return /* @__PURE__ */ jsxRuntime.jsx(
76271
76278
  Pressable,
76272
76279
  {
@@ -76281,20 +76288,28 @@ function BannerPromoCta({
76281
76288
  index
76282
76289
  );
76283
76290
  });
76284
- };
76285
- const renderSeparator = () => {
76291
+ }, [actions, actionsSlot]);
76292
+ const separatorContent = React13.useMemo(() => {
76286
76293
  if (separator) return separator;
76287
76294
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("hidden sm:inline", separatorClassName), children: "\xB7" });
76288
- };
76295
+ }, [separator, separatorClassName]);
76296
+ const messageContent = React13.useMemo(() => {
76297
+ if (!message) return null;
76298
+ return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
76299
+ }, [message, messageClassName]);
76300
+ const discountContent = React13.useMemo(() => {
76301
+ if (!discount) return null;
76302
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: discountClassName, children: discount });
76303
+ }, [discount, discountClassName]);
76289
76304
  return /* @__PURE__ */ jsxRuntime.jsx(
76290
76305
  "div",
76291
76306
  {
76292
76307
  className: cn("w-full bg-primary text-primary-foreground", className),
76293
76308
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-center text-sm", contentClassName), children: [
76294
- message && (typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message })),
76295
- renderSeparator(),
76296
- discount && (typeof discount === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: discountClassName, children: discount }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: discountClassName, children: discount })),
76297
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: renderActions() })
76309
+ messageContent,
76310
+ messageContent && discountContent && separatorContent,
76311
+ discountContent,
76312
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent })
76298
76313
  ] }) })
76299
76314
  }
76300
76315
  );
@@ -76314,17 +76329,16 @@ function BannerCountdownSale({
76314
76329
  timeUnitClassName,
76315
76330
  separatorClassName
76316
76331
  }) {
76317
- const defaultEndTime = React13.useMemo(
76318
- () => new Date(Date.now() + 24 * 60 * 60 * 1e3),
76319
- []
76320
- );
76321
- const targetTime = endTime ?? defaultEndTime;
76332
+ const targetTime = endTime;
76322
76333
  const [timeLeft, setTimeLeft] = React13.useState({
76323
76334
  hours: 0,
76324
76335
  minutes: 0,
76325
76336
  seconds: 0
76326
76337
  });
76327
76338
  React13.useEffect(() => {
76339
+ if (!targetTime) {
76340
+ return;
76341
+ }
76328
76342
  const calculateTimeLeft = () => {
76329
76343
  const now = (/* @__PURE__ */ new Date()).getTime();
76330
76344
  const target = targetTime.getTime();
@@ -76344,10 +76358,11 @@ function BannerCountdownSale({
76344
76358
  }, 1e3);
76345
76359
  return () => clearInterval(timer);
76346
76360
  }, [targetTime]);
76347
- const pad = (n) => n.toString().padStart(2, "0");
76348
- const renderDefaultTimer = () => {
76361
+ const pad = React13.useCallback((n) => n.toString().padStart(2, "0"), []);
76362
+ const timerContent = React13.useMemo(() => {
76349
76363
  if (timerSlot) return timerSlot;
76350
76364
  if (renderTimer) return renderTimer(timeLeft);
76365
+ if (!targetTime) return null;
76351
76366
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1 font-mono text-lg font-bold", timerClassName), children: [
76352
76367
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.hours) }),
76353
76368
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: separatorClassName, children: ":" }),
@@ -76355,20 +76370,28 @@ function BannerCountdownSale({
76355
76370
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: separatorClassName, children: ":" }),
76356
76371
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.seconds) })
76357
76372
  ] });
76358
- };
76373
+ }, [timerSlot, renderTimer, timeLeft, timerClassName, timeUnitClassName, separatorClassName, pad, targetTime]);
76374
+ const messageContent = React13.useMemo(() => {
76375
+ if (!message) return null;
76376
+ return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
76377
+ }, [message, messageClassName]);
76378
+ const descriptionContent = React13.useMemo(() => {
76379
+ if (!description) return null;
76380
+ return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description });
76381
+ }, [description, descriptionClassName]);
76359
76382
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full bg-destructive text-white", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-sm", contentClassName), children: [
76360
- message && (typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message })),
76361
- renderDefaultTimer(),
76362
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
76383
+ messageContent,
76384
+ timerContent,
76385
+ descriptionContent
76363
76386
  ] }) }) });
76364
76387
  }
76365
76388
  function BannerDeliveryCountdown({
76366
76389
  icon,
76367
- iconName = "lucide/gift",
76368
- deliveryDate = "Dec 24",
76390
+ iconName,
76391
+ deliveryDate,
76369
76392
  cutoffTime,
76370
- prefixText = "Order within",
76371
- middleText = "for delivery by",
76393
+ prefixText,
76394
+ middleText,
76372
76395
  timerSlot,
76373
76396
  renderTimer,
76374
76397
  className,
@@ -76379,17 +76402,16 @@ function BannerDeliveryCountdown({
76379
76402
  timerClassName,
76380
76403
  deliveryDateClassName
76381
76404
  }) {
76382
- const defaultCutoffTime = React13.useMemo(
76383
- () => new Date(Date.now() + 4 * 60 * 60 * 1e3),
76384
- []
76385
- );
76386
- const targetTime = cutoffTime ?? defaultCutoffTime;
76405
+ const targetTime = cutoffTime;
76387
76406
  const [timeLeft, setTimeLeft] = React13.useState({
76388
76407
  hours: 0,
76389
76408
  minutes: 0,
76390
76409
  seconds: 0
76391
76410
  });
76392
76411
  React13.useEffect(() => {
76412
+ if (!targetTime) {
76413
+ return;
76414
+ }
76393
76415
  const calculateTimeLeft = () => {
76394
76416
  const now = (/* @__PURE__ */ new Date()).getTime();
76395
76417
  const target = targetTime.getTime();
@@ -76409,14 +76431,16 @@ function BannerDeliveryCountdown({
76409
76431
  }, 1e3);
76410
76432
  return () => clearInterval(timer);
76411
76433
  }, [targetTime]);
76412
- const pad = (n) => n.toString().padStart(2, "0");
76413
- const renderIcon = () => {
76434
+ const pad = React13.useCallback((n) => n.toString().padStart(2, "0"), []);
76435
+ const iconContent = React13.useMemo(() => {
76414
76436
  if (icon) return icon;
76437
+ if (!iconName) return null;
76415
76438
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 16, className: iconClassName });
76416
- };
76417
- const renderDefaultTimer = () => {
76439
+ }, [icon, iconName, iconClassName]);
76440
+ const timerContent = React13.useMemo(() => {
76418
76441
  if (timerSlot) return timerSlot;
76419
76442
  if (renderTimer) return renderTimer(timeLeft);
76443
+ if (!targetTime) return null;
76420
76444
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-mono font-bold", timerClassName), children: [
76421
76445
  pad(timeLeft.hours),
76422
76446
  ":",
@@ -76424,29 +76448,33 @@ function BannerDeliveryCountdown({
76424
76448
  ":",
76425
76449
  pad(timeLeft.seconds)
76426
76450
  ] });
76427
- };
76451
+ }, [timerSlot, renderTimer, timeLeft, timerClassName, pad, targetTime]);
76452
+ const deliveryDateContent = React13.useMemo(() => {
76453
+ if (!deliveryDate) return null;
76454
+ return typeof deliveryDate === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: deliveryDateClassName, children: deliveryDate });
76455
+ }, [deliveryDate, deliveryDateClassName]);
76456
+ const messageParts = React13.useMemo(() => {
76457
+ return [prefixText, timerContent, middleText, deliveryDateContent].filter(
76458
+ (part) => part !== null && part !== void 0
76459
+ );
76460
+ }, [prefixText, timerContent, middleText, deliveryDateContent]);
76428
76461
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
76429
- renderIcon(),
76430
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
76431
- prefixText,
76432
- " ",
76433
- renderDefaultTimer(),
76434
- " ",
76435
- middleText,
76436
- " ",
76437
- deliveryDate && (typeof deliveryDate === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: deliveryDateClassName, children: deliveryDate }))
76438
- ] })
76462
+ iconContent,
76463
+ messageParts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxRuntime.jsxs(React13__namespace.Fragment, { children: [
76464
+ index > 0 ? " " : null,
76465
+ part
76466
+ ] }, index)) })
76439
76467
  ] }) }) }) });
76440
76468
  }
76441
76469
  function BannerAnnouncementDismissible({
76442
76470
  icon,
76443
- iconName = "mynaui/boat",
76471
+ iconName,
76444
76472
  message,
76445
76473
  actions,
76446
76474
  actionsSlot,
76447
76475
  onDismiss,
76448
76476
  dismissIcon,
76449
- dismissAriaLabel = "Dismiss banner",
76477
+ dismissAriaLabel,
76450
76478
  className,
76451
76479
  containerClassName,
76452
76480
  contentClassName,
@@ -76456,15 +76484,23 @@ function BannerAnnouncementDismissible({
76456
76484
  dismissButtonClassName
76457
76485
  }) {
76458
76486
  const [isVisible, setIsVisible] = React13.useState(true);
76459
- const handleDismiss = () => {
76487
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76488
+ const handleDismiss = React13.useCallback(() => {
76460
76489
  setIsVisible(false);
76461
76490
  onDismiss?.();
76462
- };
76463
- const renderActions = () => {
76491
+ }, [onDismiss]);
76492
+ const actionsContent = React13.useMemo(() => {
76464
76493
  if (actionsSlot) return actionsSlot;
76465
76494
  if (!actions || actions.length === 0) return null;
76466
76495
  return actions.map((action, index) => {
76467
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76496
+ const {
76497
+ label,
76498
+ icon: actionIcon,
76499
+ iconAfter,
76500
+ children,
76501
+ className: actionClassName,
76502
+ ...pressableProps
76503
+ } = action;
76468
76504
  return /* @__PURE__ */ jsxRuntime.jsx(
76469
76505
  Pressable,
76470
76506
  {
@@ -76480,23 +76516,35 @@ function BannerAnnouncementDismissible({
76480
76516
  index
76481
76517
  );
76482
76518
  });
76483
- };
76484
- const renderIcon = () => {
76519
+ }, [actions, actionsSlot]);
76520
+ const iconContent = React13.useMemo(() => {
76485
76521
  if (icon) return icon;
76486
- return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 20, className: cn("shrink-0", iconClassName) });
76487
- };
76488
- const renderDismissIcon = () => {
76522
+ if (!iconName) return null;
76523
+ return /* @__PURE__ */ jsxRuntime.jsx(
76524
+ DynamicIcon,
76525
+ {
76526
+ name: iconName,
76527
+ size: 20,
76528
+ className: cn("shrink-0", iconClassName)
76529
+ }
76530
+ );
76531
+ }, [icon, iconName, iconClassName]);
76532
+ const dismissIconContent = React13.useMemo(() => {
76489
76533
  if (dismissIcon) return dismissIcon;
76490
76534
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76491
- };
76535
+ }, [dismissIcon]);
76536
+ const messageContent = React13.useMemo(() => {
76537
+ if (!message) return null;
76538
+ return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
76539
+ }, [message, messageClassName]);
76492
76540
  if (!isVisible) {
76493
76541
  return null;
76494
76542
  }
76495
76543
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-background border-b", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-7xl mx-auto px-4 py-3 flex items-center justify-between gap-2", containerClassName), children: [
76496
76544
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-4", contentClassName), children: [
76497
- renderIcon(),
76498
- message && (typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message })),
76499
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() })
76545
+ iconContent,
76546
+ messageContent,
76547
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
76500
76548
  ] }),
76501
76549
  /* @__PURE__ */ jsxRuntime.jsxs(
76502
76550
  Pressable,
@@ -76507,8 +76555,8 @@ function BannerAnnouncementDismissible({
76507
76555
  asButton: true,
76508
76556
  className: cn("size-8", dismissButtonClassName),
76509
76557
  children: [
76510
- renderDismissIcon(),
76511
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
76558
+ dismissIconContent,
76559
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
76512
76560
  ]
76513
76561
  }
76514
76562
  )
@@ -76516,14 +76564,14 @@ function BannerAnnouncementDismissible({
76516
76564
  }
76517
76565
  function BannerPrivacyNotice({
76518
76566
  icon,
76519
- iconName = "mynaui/shield",
76567
+ iconName,
76520
76568
  title,
76521
76569
  description,
76522
76570
  actions,
76523
76571
  actionsSlot,
76524
76572
  onDismiss,
76525
76573
  dismissIcon,
76526
- dismissAriaLabel = "Dismiss banner",
76574
+ dismissAriaLabel,
76527
76575
  className,
76528
76576
  containerClassName,
76529
76577
  contentClassName,
@@ -76534,12 +76582,14 @@ function BannerPrivacyNotice({
76534
76582
  dismissButtonClassName
76535
76583
  }) {
76536
76584
  const [isVisible, setIsVisible] = React13.useState(true);
76537
- const handleDismiss = () => {
76585
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76586
+ const handleDismiss = React13.useCallback(() => {
76538
76587
  setIsVisible(false);
76539
76588
  onDismiss?.();
76540
- };
76541
- const renderIcon = () => {
76589
+ }, [onDismiss]);
76590
+ const iconContent = React13.useMemo(() => {
76542
76591
  if (icon) return icon;
76592
+ if (!iconName) return null;
76543
76593
  return /* @__PURE__ */ jsxRuntime.jsx(
76544
76594
  DynamicIcon,
76545
76595
  {
@@ -76548,12 +76598,19 @@ function BannerPrivacyNotice({
76548
76598
  className: cn("mt-0.5 shrink-0", iconClassName)
76549
76599
  }
76550
76600
  );
76551
- };
76552
- const renderActions = () => {
76601
+ }, [icon, iconName, iconClassName]);
76602
+ const actionsContent = React13.useMemo(() => {
76553
76603
  if (actionsSlot) return actionsSlot;
76554
76604
  if (!actions || actions.length === 0) return null;
76555
76605
  return actions.map((action, index) => {
76556
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76606
+ const {
76607
+ label,
76608
+ icon: actionIcon,
76609
+ iconAfter,
76610
+ children,
76611
+ className: actionClassName,
76612
+ ...pressableProps
76613
+ } = action;
76557
76614
  return /* @__PURE__ */ jsxRuntime.jsx(
76558
76615
  Pressable,
76559
76616
  {
@@ -76568,11 +76625,19 @@ function BannerPrivacyNotice({
76568
76625
  index
76569
76626
  );
76570
76627
  });
76571
- };
76572
- const renderDismissIcon = () => {
76628
+ }, [actions, actionsSlot]);
76629
+ const dismissIconContent = React13.useMemo(() => {
76573
76630
  if (dismissIcon) return dismissIcon;
76574
76631
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76575
- };
76632
+ }, [dismissIcon]);
76633
+ const titleContent = React13.useMemo(() => {
76634
+ if (!title) return null;
76635
+ return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
76636
+ }, [title, titleClassName]);
76637
+ const descriptionContent = React13.useMemo(() => {
76638
+ if (!description) return null;
76639
+ return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description });
76640
+ }, [description, descriptionClassName]);
76576
76641
  if (!isVisible) {
76577
76642
  return null;
76578
76643
  }
@@ -76585,11 +76650,11 @@ function BannerPrivacyNotice({
76585
76650
  ),
76586
76651
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76587
76652
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-4", contentClassName), children: [
76588
- renderIcon(),
76653
+ iconContent,
76589
76654
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
76590
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
76591
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description })),
76592
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() })
76655
+ titleContent,
76656
+ descriptionContent,
76657
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
76593
76658
  ] })
76594
76659
  ] }),
76595
76660
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -76601,8 +76666,8 @@ function BannerPrivacyNotice({
76601
76666
  asButton: true,
76602
76667
  className: cn("size-8", dismissButtonClassName),
76603
76668
  children: [
76604
- renderDismissIcon(),
76605
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
76669
+ dismissIconContent,
76670
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
76606
76671
  ]
76607
76672
  }
76608
76673
  )
@@ -76612,14 +76677,14 @@ function BannerPrivacyNotice({
76612
76677
  }
76613
76678
  function BannerSurveyIncentive({
76614
76679
  icon,
76615
- iconName = "mynaui/shopping-bag",
76680
+ iconName,
76616
76681
  title,
76617
76682
  description,
76618
76683
  actions,
76619
76684
  actionsSlot,
76620
76685
  onDismiss,
76621
76686
  dismissIcon,
76622
- dismissAriaLabel = "Dismiss banner",
76687
+ dismissAriaLabel,
76623
76688
  className,
76624
76689
  containerClassName,
76625
76690
  contentClassName,
@@ -76631,12 +76696,14 @@ function BannerSurveyIncentive({
76631
76696
  dismissButtonClassName
76632
76697
  }) {
76633
76698
  const [isVisible, setIsVisible] = React13.useState(true);
76634
- const handleDismiss = () => {
76699
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76700
+ const handleDismiss = React13.useCallback(() => {
76635
76701
  setIsVisible(false);
76636
76702
  onDismiss?.();
76637
- };
76638
- const renderIcon = () => {
76703
+ }, [onDismiss]);
76704
+ const iconContent = React13.useMemo(() => {
76639
76705
  if (icon) return icon;
76706
+ if (!iconName) return null;
76640
76707
  return /* @__PURE__ */ jsxRuntime.jsx(
76641
76708
  DynamicIcon,
76642
76709
  {
@@ -76645,12 +76712,19 @@ function BannerSurveyIncentive({
76645
76712
  className: cn("shrink-0 hidden md:block", iconClassName)
76646
76713
  }
76647
76714
  );
76648
- };
76649
- const renderActions = () => {
76715
+ }, [icon, iconName, iconClassName]);
76716
+ const actionsContent = React13.useMemo(() => {
76650
76717
  if (actionsSlot) return actionsSlot;
76651
76718
  if (!actions || actions.length === 0) return null;
76652
76719
  return actions.map((action, index) => {
76653
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76720
+ const {
76721
+ label,
76722
+ icon: actionIcon,
76723
+ iconAfter,
76724
+ children,
76725
+ className: actionClassName,
76726
+ ...pressableProps
76727
+ } = action;
76654
76728
  return /* @__PURE__ */ jsxRuntime.jsx(
76655
76729
  Pressable,
76656
76730
  {
@@ -76666,24 +76740,32 @@ function BannerSurveyIncentive({
76666
76740
  index
76667
76741
  );
76668
76742
  });
76669
- };
76670
- const renderDismissIcon = () => {
76743
+ }, [actions, actionsSlot]);
76744
+ const dismissIconContent = React13.useMemo(() => {
76671
76745
  if (dismissIcon) return dismissIcon;
76672
76746
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76673
- };
76747
+ }, [dismissIcon]);
76748
+ const titleContent = React13.useMemo(() => {
76749
+ if (!title) return null;
76750
+ return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: titleClassName, children: title });
76751
+ }, [title, titleClassName]);
76752
+ const descriptionContent = React13.useMemo(() => {
76753
+ if (!description) return null;
76754
+ return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: descriptionClassName, children: description });
76755
+ }, [description, descriptionClassName]);
76674
76756
  if (!isVisible) {
76675
76757
  return null;
76676
76758
  }
76677
76759
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-background border-b text-sm", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex md:items-center justify-between max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76678
76760
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", contentClassName), children: [
76679
- renderIcon(),
76761
+ iconContent,
76680
76762
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col md:flex-row gap-1", textClassName), children: [
76681
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: titleClassName, children: title })),
76682
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: descriptionClassName, children: description }))
76763
+ titleContent,
76764
+ descriptionContent
76683
76765
  ] })
76684
76766
  ] }),
76685
76767
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex gap-2", actionsClassName), children: [
76686
- renderActions(),
76768
+ actionsContent,
76687
76769
  /* @__PURE__ */ jsxRuntime.jsxs(
76688
76770
  Pressable,
76689
76771
  {
@@ -76693,8 +76775,8 @@ function BannerSurveyIncentive({
76693
76775
  asButton: true,
76694
76776
  className: cn("size-8", dismissButtonClassName),
76695
76777
  children: [
76696
- renderDismissIcon(),
76697
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
76778
+ dismissIconContent,
76779
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
76698
76780
  ]
76699
76781
  }
76700
76782
  )
@@ -76703,13 +76785,13 @@ function BannerSurveyIncentive({
76703
76785
  }
76704
76786
  function BannerSocialFollow({
76705
76787
  icon,
76706
- iconName = "mynaui/users",
76788
+ iconName,
76707
76789
  message,
76708
76790
  actions,
76709
76791
  actionsSlot,
76710
76792
  onDismiss,
76711
76793
  dismissIcon,
76712
- dismissAriaLabel = "Dismiss banner",
76794
+ dismissAriaLabel,
76713
76795
  className,
76714
76796
  containerClassName,
76715
76797
  iconClassName,
@@ -76718,19 +76800,35 @@ function BannerSocialFollow({
76718
76800
  dismissButtonClassName
76719
76801
  }) {
76720
76802
  const [isVisible, setIsVisible] = React13.useState(true);
76721
- const handleDismiss = () => {
76803
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76804
+ const handleDismiss = React13.useCallback(() => {
76722
76805
  setIsVisible(false);
76723
76806
  onDismiss?.();
76724
- };
76725
- const renderIcon = () => {
76807
+ }, [onDismiss]);
76808
+ const iconContent = React13.useMemo(() => {
76726
76809
  if (icon) return icon;
76727
- return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 20, className: cn("shrink-0", iconClassName) });
76728
- };
76729
- const renderActions = () => {
76810
+ if (!iconName) return null;
76811
+ return /* @__PURE__ */ jsxRuntime.jsx(
76812
+ DynamicIcon,
76813
+ {
76814
+ name: iconName,
76815
+ size: 20,
76816
+ className: cn("shrink-0", iconClassName)
76817
+ }
76818
+ );
76819
+ }, [icon, iconName, iconClassName]);
76820
+ const actionsContent = React13.useMemo(() => {
76730
76821
  if (actionsSlot) return actionsSlot;
76731
76822
  if (!actions || actions.length === 0) return null;
76732
76823
  return actions.map((action, index) => {
76733
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76824
+ const {
76825
+ label,
76826
+ icon: actionIcon,
76827
+ iconAfter,
76828
+ children,
76829
+ className: actionClassName,
76830
+ ...pressableProps
76831
+ } = action;
76734
76832
  return /* @__PURE__ */ jsxRuntime.jsx(
76735
76833
  Pressable,
76736
76834
  {
@@ -76746,11 +76844,15 @@ function BannerSocialFollow({
76746
76844
  index
76747
76845
  );
76748
76846
  });
76749
- };
76750
- const renderDismissIcon = () => {
76847
+ }, [actions, actionsSlot]);
76848
+ const dismissIconContent = React13.useMemo(() => {
76751
76849
  if (dismissIcon) return dismissIcon;
76752
76850
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76753
- };
76851
+ }, [dismissIcon]);
76852
+ const messageContent = React13.useMemo(() => {
76853
+ if (!message) return null;
76854
+ return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
76855
+ }, [message, messageClassName]);
76754
76856
  if (!isVisible) {
76755
76857
  return null;
76756
76858
  }
@@ -76762,9 +76864,9 @@ function BannerSocialFollow({
76762
76864
  className
76763
76865
  ),
76764
76866
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-7xl mx-auto px-3 py-3 flex items-center justify-center text-left md:text-center gap-2", containerClassName), children: [
76765
- renderIcon(),
76766
- message && (typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message })),
76767
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: renderActions() }),
76867
+ iconContent,
76868
+ messageContent,
76869
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent }),
76768
76870
  /* @__PURE__ */ jsxRuntime.jsxs(
76769
76871
  Pressable,
76770
76872
  {
@@ -76774,8 +76876,8 @@ function BannerSocialFollow({
76774
76876
  asButton: true,
76775
76877
  className: cn("size-8", dismissButtonClassName),
76776
76878
  children: [
76777
- renderDismissIcon(),
76778
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
76879
+ dismissIconContent,
76880
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
76779
76881
  ]
76780
76882
  }
76781
76883
  )
@@ -76785,14 +76887,14 @@ function BannerSocialFollow({
76785
76887
  }
76786
76888
  function BannerGdprRights({
76787
76889
  icon,
76788
- iconName = "mynaui/globe",
76890
+ iconName,
76789
76891
  title,
76790
76892
  description,
76791
76893
  actions,
76792
76894
  actionsSlot,
76793
76895
  onDismiss,
76794
76896
  dismissIcon,
76795
- dismissAriaLabel = "Dismiss banner",
76897
+ dismissAriaLabel,
76796
76898
  className,
76797
76899
  containerClassName,
76798
76900
  contentClassName,
@@ -76803,12 +76905,14 @@ function BannerGdprRights({
76803
76905
  dismissButtonClassName
76804
76906
  }) {
76805
76907
  const [isVisible, setIsVisible] = React13.useState(true);
76806
- const handleDismiss = () => {
76908
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76909
+ const handleDismiss = React13.useCallback(() => {
76807
76910
  setIsVisible(false);
76808
76911
  onDismiss?.();
76809
- };
76810
- const renderIcon = () => {
76912
+ }, [onDismiss]);
76913
+ const iconContent = React13.useMemo(() => {
76811
76914
  if (icon) return icon;
76915
+ if (!iconName) return null;
76812
76916
  return /* @__PURE__ */ jsxRuntime.jsx(
76813
76917
  DynamicIcon,
76814
76918
  {
@@ -76817,12 +76921,19 @@ function BannerGdprRights({
76817
76921
  className: cn("text-muted-foreground mt-0.5 shrink-0", iconClassName)
76818
76922
  }
76819
76923
  );
76820
- };
76821
- const renderActions = () => {
76924
+ }, [icon, iconName, iconClassName]);
76925
+ const actionsContent = React13.useMemo(() => {
76822
76926
  if (actionsSlot) return actionsSlot;
76823
76927
  if (!actions || actions.length === 0) return null;
76824
76928
  return actions.map((action, index) => {
76825
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76929
+ const {
76930
+ label,
76931
+ icon: actionIcon,
76932
+ iconAfter,
76933
+ children,
76934
+ className: actionClassName,
76935
+ ...pressableProps
76936
+ } = action;
76826
76937
  return /* @__PURE__ */ jsxRuntime.jsx(
76827
76938
  Pressable,
76828
76939
  {
@@ -76837,11 +76948,22 @@ function BannerGdprRights({
76837
76948
  index
76838
76949
  );
76839
76950
  });
76840
- };
76841
- const renderDismissIcon = () => {
76951
+ }, [actions, actionsSlot]);
76952
+ const dismissIconContent = React13.useMemo(() => {
76842
76953
  if (dismissIcon) return dismissIcon;
76843
76954
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76844
- };
76955
+ }, [dismissIcon]);
76956
+ const titleContent = React13.useMemo(() => {
76957
+ if (!title) return null;
76958
+ return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
76959
+ }, [title, titleClassName]);
76960
+ const descriptionContent = React13.useMemo(() => {
76961
+ if (!description && !actionsContent) return null;
76962
+ return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
76963
+ description,
76964
+ actionsContent && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent })
76965
+ ] });
76966
+ }, [description, actionsContent, descriptionClassName, actionsClassName]);
76845
76967
  if (!isVisible) {
76846
76968
  return null;
76847
76969
  }
@@ -76854,13 +76976,10 @@ function BannerGdprRights({
76854
76976
  ),
76855
76977
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76856
76978
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-3", contentClassName), children: [
76857
- renderIcon(),
76979
+ iconContent,
76858
76980
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
76859
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
76860
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
76861
- description,
76862
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: renderActions() })
76863
- ] })
76981
+ titleContent,
76982
+ descriptionContent
76864
76983
  ] })
76865
76984
  ] }),
76866
76985
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -76872,8 +76991,8 @@ function BannerGdprRights({
76872
76991
  asButton: true,
76873
76992
  className: cn("size-8", dismissButtonClassName),
76874
76993
  children: [
76875
- renderDismissIcon(),
76876
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
76994
+ dismissIconContent,
76995
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
76877
76996
  ]
76878
76997
  }
76879
76998
  )
@@ -76882,8 +77001,8 @@ function BannerGdprRights({
76882
77001
  );
76883
77002
  }
76884
77003
  function BannerEventPromo({
76885
- eventName = "GeneriCon 2024",
76886
- eventDetails = "Join us in Denver from June 7 - 9 to see what's coming next.",
77004
+ eventName,
77005
+ eventDetails,
76887
77006
  separator,
76888
77007
  actions,
76889
77008
  actionsSlot,
@@ -76896,11 +77015,18 @@ function BannerEventPromo({
76896
77015
  eventDetailsClassName,
76897
77016
  actionsClassName
76898
77017
  }) {
76899
- const renderActions = () => {
77018
+ const actionsContent = React13.useMemo(() => {
76900
77019
  if (actionsSlot) return actionsSlot;
76901
77020
  if (!actions || actions.length === 0) return null;
76902
77021
  return actions.map((action, index) => {
76903
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
77022
+ const {
77023
+ label,
77024
+ icon: actionIcon,
77025
+ iconAfter,
77026
+ children,
77027
+ className: actionClassName,
77028
+ ...pressableProps
77029
+ } = action;
76904
77030
  return /* @__PURE__ */ jsxRuntime.jsx(
76905
77031
  Pressable,
76906
77032
  {
@@ -76916,8 +77042,8 @@ function BannerEventPromo({
76916
77042
  index
76917
77043
  );
76918
77044
  });
76919
- };
76920
- const renderSeparator = () => {
77045
+ }, [actions, actionsSlot]);
77046
+ const separatorContent = React13.useMemo(() => {
76921
77047
  if (separator) return separator;
76922
77048
  return /* @__PURE__ */ jsxRuntime.jsx(
76923
77049
  "svg",
@@ -76928,28 +77054,36 @@ function BannerEventPromo({
76928
77054
  children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
76929
77055
  }
76930
77056
  );
76931
- };
77057
+ }, [separator, separatorClassName]);
77058
+ const eventNameContent = React13.useMemo(() => {
77059
+ if (!eventName) return null;
77060
+ return typeof eventName === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventNameClassName, children: eventName });
77061
+ }, [eventName, eventNameClassName]);
77062
+ const eventDetailsContent = React13.useMemo(() => {
77063
+ if (!eventDetails) return null;
77064
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails });
77065
+ }, [eventDetails, eventDetailsClassName]);
76932
77066
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-primary text-primary-foreground", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-4 md:px-6 2xl:max-w-[1400px]", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-between gap-x-6 p-4", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap justify-between w-full items-center gap-x-4 gap-y-2", textClassName), children: [
76933
77067
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm leading-6", children: [
76934
- eventName && (typeof eventName === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventNameClassName, children: eventName })),
76935
- renderSeparator(),
76936
- eventDetails && (typeof eventDetails === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails }))
77068
+ eventNameContent,
77069
+ eventNameContent && eventDetailsContent && separatorContent,
77070
+ eventDetailsContent
76937
77071
  ] }),
76938
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() })
77072
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
76939
77073
  ] }) }) }) });
76940
77074
  }
76941
77075
  function BannerFloatingOffer({
76942
- offerTitle = "Limited time offer",
76943
- offerDescription = "Get 50% off for your first month",
77076
+ offerTitle,
77077
+ offerDescription,
76944
77078
  separator,
76945
77079
  actions,
76946
77080
  actionsSlot,
76947
77081
  open,
76948
- defaultOpen = true,
77082
+ defaultOpen,
76949
77083
  onOpenChange,
76950
- dismissible = false,
77084
+ dismissible,
76951
77085
  dismissIcon,
76952
- dismissAriaLabel = "Dismiss banner",
77086
+ dismissAriaLabel,
76953
77087
  className,
76954
77088
  containerClassName,
76955
77089
  textClassName,
@@ -76960,24 +77094,34 @@ function BannerFloatingOffer({
76960
77094
  dismissButtonClassName
76961
77095
  }) {
76962
77096
  const isControlled = open !== void 0;
76963
- const [internalOpen, setInternalOpen] = React13.useState(defaultOpen);
77097
+ const initialOpen = defaultOpen ?? true;
77098
+ const [internalOpen, setInternalOpen] = React13.useState(initialOpen);
76964
77099
  const isVisible = isControlled ? open : internalOpen;
77100
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
77101
+ const isDismissible = dismissible ?? false;
76965
77102
  React13.useEffect(() => {
76966
77103
  if (!isControlled && defaultOpen !== internalOpen) {
76967
- setInternalOpen(defaultOpen);
77104
+ setInternalOpen(initialOpen);
76968
77105
  }
76969
- }, [defaultOpen, isControlled, internalOpen]);
76970
- const handleDismiss = () => {
77106
+ }, [defaultOpen, initialOpen, isControlled, internalOpen]);
77107
+ const handleDismiss = React13.useCallback(() => {
76971
77108
  if (!isControlled) {
76972
77109
  setInternalOpen(false);
76973
77110
  }
76974
77111
  onOpenChange?.(false);
76975
- };
76976
- const renderActions = () => {
77112
+ }, [isControlled, onOpenChange]);
77113
+ const actionsContent = React13.useMemo(() => {
76977
77114
  if (actionsSlot) return actionsSlot;
76978
77115
  if (!actions || actions.length === 0) return null;
76979
77116
  return actions.map((action, index) => {
76980
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
77117
+ const {
77118
+ label,
77119
+ icon: actionIcon,
77120
+ iconAfter,
77121
+ children,
77122
+ className: actionClassName,
77123
+ ...pressableProps
77124
+ } = action;
76981
77125
  return /* @__PURE__ */ jsxRuntime.jsx(
76982
77126
  Pressable,
76983
77127
  {
@@ -76993,8 +77137,8 @@ function BannerFloatingOffer({
76993
77137
  index
76994
77138
  );
76995
77139
  });
76996
- };
76997
- const renderSeparator = () => {
77140
+ }, [actions, actionsSlot]);
77141
+ const separatorContent = React13.useMemo(() => {
76998
77142
  if (separator) return separator;
76999
77143
  return /* @__PURE__ */ jsxRuntime.jsx(
77000
77144
  "svg",
@@ -77005,11 +77149,19 @@ function BannerFloatingOffer({
77005
77149
  children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
77006
77150
  }
77007
77151
  );
77008
- };
77009
- const renderDismissIcon = () => {
77152
+ }, [separator, separatorClassName]);
77153
+ const dismissIconContent = React13.useMemo(() => {
77010
77154
  if (dismissIcon) return dismissIcon;
77011
77155
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
77012
- };
77156
+ }, [dismissIcon]);
77157
+ const offerTitleContent = React13.useMemo(() => {
77158
+ if (!offerTitle) return null;
77159
+ return typeof offerTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerTitleClassName, children: offerTitle });
77160
+ }, [offerTitle, offerTitleClassName]);
77161
+ const offerDescriptionContent = React13.useMemo(() => {
77162
+ if (!offerDescription) return null;
77163
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription });
77164
+ }, [offerDescription, offerDescriptionClassName]);
77013
77165
  if (!isVisible) {
77014
77166
  return null;
77015
77167
  }
@@ -77022,13 +77174,13 @@ function BannerFloatingOffer({
77022
77174
  ),
77023
77175
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("pointer-events-auto flex items-center justify-between gap-x-6 bg-primary px-6 py-2.5 sm:rounded-xl sm:py-3 sm:pl-4 sm:pr-3.5", containerClassName), children: [
77024
77176
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", textClassName), children: [
77025
- offerTitle && (typeof offerTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerTitleClassName, children: offerTitle })),
77026
- renderSeparator(),
77027
- offerDescription && (typeof offerDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription }))
77177
+ offerTitleContent,
77178
+ offerTitleContent && offerDescriptionContent && separatorContent,
77179
+ offerDescriptionContent
77028
77180
  ] }),
77029
77181
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", actionsClassName), children: [
77030
- renderActions(),
77031
- dismissible && /* @__PURE__ */ jsxRuntime.jsxs(
77182
+ actionsContent,
77183
+ isDismissible && /* @__PURE__ */ jsxRuntime.jsxs(
77032
77184
  Pressable,
77033
77185
  {
77034
77186
  onClick: handleDismiss,
@@ -77037,8 +77189,8 @@ function BannerFloatingOffer({
77037
77189
  asButton: true,
77038
77190
  className: cn("size-8 text-primary-foreground hover:text-primary-foreground/80", dismissButtonClassName),
77039
77191
  children: [
77040
- renderDismissIcon(),
77041
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissAriaLabel })
77192
+ dismissIconContent,
77193
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
77042
77194
  ]
77043
77195
  }
77044
77196
  )
@@ -84027,8 +84179,8 @@ function StatsSimpleGrid({
84027
84179
  statsSlot,
84028
84180
  actions,
84029
84181
  actionsSlot,
84030
- background = "muted",
84031
- spacing = "lg",
84182
+ background,
84183
+ spacing,
84032
84184
  pattern,
84033
84185
  patternOpacity,
84034
84186
  patternClassName,
@@ -84046,7 +84198,14 @@ function StatsSimpleGrid({
84046
84198
  if (actionsSlot) return actionsSlot;
84047
84199
  if (!actions || actions.length === 0) return null;
84048
84200
  return actions.map((action, index) => {
84049
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
84201
+ const {
84202
+ label,
84203
+ icon,
84204
+ iconAfter,
84205
+ children,
84206
+ className: actionClassName,
84207
+ ...pressableProps
84208
+ } = action;
84050
84209
  return /* @__PURE__ */ jsxRuntime.jsx(
84051
84210
  Pressable,
84052
84211
  {
@@ -84067,10 +84226,34 @@ function StatsSimpleGrid({
84067
84226
  if (statsSlot) return statsSlot;
84068
84227
  if (!stats || stats.length === 0) return null;
84069
84228
  return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("w-full", statItemClassName), children: [
84070
- stat.value && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-2 text-4xl font-semibold sm:text-4xl lg:text-5xl", statValueClassName), children: stat.value }),
84071
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-base leading-6 text-muted-foreground lg:text-lg", statLabelClassName), children: stat.label })
84229
+ stat.value && /* @__PURE__ */ jsxRuntime.jsx(
84230
+ "div",
84231
+ {
84232
+ className: cn(
84233
+ "mb-2 text-4xl font-semibold sm:text-4xl lg:text-5xl",
84234
+ statValueClassName
84235
+ ),
84236
+ children: stat.value
84237
+ }
84238
+ ),
84239
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx(
84240
+ "div",
84241
+ {
84242
+ className: cn(
84243
+ "text-base leading-6 text-muted-foreground lg:text-lg",
84244
+ statLabelClassName
84245
+ ),
84246
+ children: stat.label
84247
+ }
84248
+ )
84072
84249
  ] }, index));
84073
- }, [statsSlot, stats, statItemClassName, statValueClassName, statLabelClassName]);
84250
+ }, [
84251
+ statsSlot,
84252
+ stats,
84253
+ statItemClassName,
84254
+ statValueClassName,
84255
+ statLabelClassName
84256
+ ]);
84074
84257
  const hasHeaderContent = !!(heading || actionsSlot || actions && actions.length > 0);
84075
84258
  const hasStatsContent = !!(statsSlot || stats && stats.length > 0);
84076
84259
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -84082,13 +84265,49 @@ function StatsSimpleGrid({
84082
84265
  patternOpacity,
84083
84266
  patternClassName,
84084
84267
  className,
84085
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-start text-left", containerClassName), children: [
84086
- hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 w-full md:mb-16", contentClassName), children: [
84087
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-8 w-full max-w-[24rem] text-3xl font-bold text-pretty sm:text-4xl md:max-w-[30rem] lg:max-w-[37rem] lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84088
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-start gap-2 sm:flex-row", actionsClassName), children: actionsContent })
84089
- ] }),
84090
- hasStatsContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid w-full grid-cols-2 gap-12 sm:w-fit sm:grid-cols-4 lg:gap-16", statsClassName), children: statsContent })
84091
- ] })
84268
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
84269
+ "div",
84270
+ {
84271
+ className: cn(
84272
+ "flex flex-col items-start text-left",
84273
+ containerClassName
84274
+ ),
84275
+ children: [
84276
+ hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 w-full md:mb-16", contentClassName), children: [
84277
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84278
+ "h2",
84279
+ {
84280
+ className: cn(
84281
+ "mb-8 w-full max-w-[24rem] text-3xl font-bold text-pretty sm:text-4xl md:max-w-[30rem] lg:max-w-[37rem] lg:text-5xl",
84282
+ headingClassName
84283
+ ),
84284
+ children: heading
84285
+ }
84286
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84287
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
84288
+ "div",
84289
+ {
84290
+ className: cn(
84291
+ "flex flex-col justify-start gap-2 sm:flex-row",
84292
+ actionsClassName
84293
+ ),
84294
+ children: actionsContent
84295
+ }
84296
+ )
84297
+ ] }),
84298
+ hasStatsContent && /* @__PURE__ */ jsxRuntime.jsx(
84299
+ "div",
84300
+ {
84301
+ className: cn(
84302
+ "grid w-full grid-cols-2 gap-12 sm:w-fit sm:grid-cols-4 lg:gap-16",
84303
+ statsClassName
84304
+ ),
84305
+ children: statsContent
84306
+ }
84307
+ )
84308
+ ]
84309
+ }
84310
+ )
84092
84311
  }
84093
84312
  );
84094
84313
  }
@@ -84097,8 +84316,8 @@ function StatsIconCards({
84097
84316
  description,
84098
84317
  stats,
84099
84318
  statsSlot,
84100
- background = "white",
84101
- spacing = "lg",
84319
+ background,
84320
+ spacing,
84102
84321
  pattern,
84103
84322
  patternOpacity,
84104
84323
  patternClassName,
@@ -84114,28 +84333,46 @@ function StatsIconCards({
84114
84333
  statGrowthClassName,
84115
84334
  statIconClassName
84116
84335
  }) {
84117
- const renderIcon = React13.useCallback((stat) => {
84118
- if (stat.iconSlot) return stat.iconSlot;
84119
- if (!stat.icon) return null;
84120
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-primary/10", statIconClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
84121
- DynamicIcon,
84122
- {
84123
- name: stat.icon,
84124
- size: 24,
84125
- className: "text-primary"
84126
- }
84127
- ) });
84128
- }, [statIconClassName]);
84336
+ const renderIcon = React13.useCallback(
84337
+ (stat) => {
84338
+ if (stat.iconSlot) return stat.iconSlot;
84339
+ if (!stat.icon) return null;
84340
+ return /* @__PURE__ */ jsxRuntime.jsx(
84341
+ "div",
84342
+ {
84343
+ className: cn(
84344
+ "flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
84345
+ statIconClassName
84346
+ ),
84347
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
84348
+ }
84349
+ );
84350
+ },
84351
+ [statIconClassName]
84352
+ );
84129
84353
  const statsContent = React13.useMemo(() => {
84130
84354
  if (statsSlot) return statsSlot;
84131
84355
  if (!stats || stats.length === 0) return null;
84132
84356
  return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
84133
84357
  "div",
84134
84358
  {
84135
- className: cn("relative overflow-hidden rounded-xl border bg-background p-6", stat.className, statCardClassName),
84359
+ className: cn(
84360
+ "relative overflow-hidden rounded-xl border bg-background p-6",
84361
+ stat.className,
84362
+ statCardClassName
84363
+ ),
84136
84364
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
84137
84365
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
84138
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("font-medium text-muted-foreground", statLabelClassName), children: stat.label }),
84366
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx(
84367
+ "p",
84368
+ {
84369
+ className: cn(
84370
+ "font-medium text-muted-foreground",
84371
+ statLabelClassName
84372
+ ),
84373
+ children: stat.label
84374
+ }
84375
+ ),
84139
84376
  stat.value && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mt-4 text-4xl font-bold", statValueClassName), children: stat.value }),
84140
84377
  stat.growth && /* @__PURE__ */ jsxRuntime.jsxs(
84141
84378
  "p",
@@ -84164,7 +84401,15 @@ function StatsIconCards({
84164
84401
  },
84165
84402
  index
84166
84403
  ));
84167
- }, [statsSlot, stats, statCardClassName, statLabelClassName, statValueClassName, statGrowthClassName, renderIcon]);
84404
+ }, [
84405
+ statsSlot,
84406
+ stats,
84407
+ statCardClassName,
84408
+ statLabelClassName,
84409
+ statValueClassName,
84410
+ statGrowthClassName,
84411
+ renderIcon
84412
+ ]);
84168
84413
  const hasHeaderContent = !!(heading || description);
84169
84414
  return /* @__PURE__ */ jsxRuntime.jsx(
84170
84415
  Section,
@@ -84177,10 +84422,37 @@ function StatsIconCards({
84177
84422
  className,
84178
84423
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
84179
84424
  hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-10 text-center", contentClassName), children: [
84180
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84181
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-3 text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-3", descriptionClassName), children: description }))
84425
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84426
+ "h2",
84427
+ {
84428
+ className: cn(
84429
+ "text-3xl font-bold md:text-4xl",
84430
+ headingClassName
84431
+ ),
84432
+ children: heading
84433
+ }
84434
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84435
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84436
+ "p",
84437
+ {
84438
+ className: cn(
84439
+ "mt-3 text-muted-foreground",
84440
+ descriptionClassName
84441
+ ),
84442
+ children: description
84443
+ }
84444
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-3", descriptionClassName), children: description }))
84182
84445
  ] }),
84183
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: statsContent })
84446
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
84447
+ "div",
84448
+ {
84449
+ className: cn(
84450
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
84451
+ statsClassName
84452
+ ),
84453
+ children: statsContent
84454
+ }
84455
+ )
84184
84456
  ] })
84185
84457
  }
84186
84458
  );
@@ -84193,8 +84465,8 @@ function StatsTimelineTabs({
84193
84465
  periods,
84194
84466
  tabsSlot,
84195
84467
  defaultPeriod,
84196
- background = "white",
84197
- spacing = "lg",
84468
+ background,
84469
+ spacing,
84198
84470
  pattern,
84199
84471
  patternOpacity,
84200
84472
  patternClassName,
@@ -84218,68 +84490,100 @@ function StatsTimelineTabs({
84218
84490
  const tabsContent = React13.useMemo(() => {
84219
84491
  if (tabsSlot) return tabsSlot;
84220
84492
  if (!periods || periods.length === 0) return null;
84221
- return /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { defaultValue: effectiveDefaultPeriod, className: cn("mt-8 w-full", tabsClassName), children: [
84222
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: tabsListClassName, children: periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: period.id, children: period.label }, period.id)) }) }),
84223
- periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value: period.id, className: cn("mt-4", period.className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-4", statsGridClassName), children: period.stats.map((stat, index) => {
84224
- const isPositive = stat.trend === "up" && !stat.inversePositive || stat.trend === "down" && stat.inversePositive;
84225
- return /* @__PURE__ */ jsxRuntime.jsxs(
84226
- "div",
84227
- {
84228
- className: cn(
84229
- "rounded-lg border bg-card p-6 transition-shadow hover:shadow-md",
84230
- stat.className,
84231
- statCardClassName
84232
- ),
84233
- children: [
84234
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
84235
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-medium", children: stat.label }),
84236
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
84237
- /* @__PURE__ */ jsxRuntime.jsx(
84238
- DynamicIcon,
84239
- {
84240
- name: "lucide/clock",
84241
- size: 16,
84242
- className: "mr-1 text-muted-foreground"
84243
- }
84493
+ return /* @__PURE__ */ jsxRuntime.jsxs(
84494
+ Tabs,
84495
+ {
84496
+ defaultValue: effectiveDefaultPeriod,
84497
+ className: cn("mt-8 w-full", tabsClassName),
84498
+ children: [
84499
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: tabsListClassName, children: periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: period.id, children: period.label }, period.id)) }) }),
84500
+ periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(
84501
+ TabsContent,
84502
+ {
84503
+ value: period.id,
84504
+ className: cn("mt-4", period.className),
84505
+ children: /* @__PURE__ */ jsxRuntime.jsx(
84506
+ "div",
84507
+ {
84508
+ className: cn(
84509
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-4",
84510
+ statsGridClassName
84244
84511
  ),
84245
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: period.label })
84246
- ] })
84247
- ] }),
84248
- stat.value && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-4 text-3xl font-bold", children: stat.value }),
84249
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center", children: [
84250
- /* @__PURE__ */ jsxRuntime.jsxs(
84251
- "div",
84252
- {
84253
- className: cn(
84254
- "flex items-center rounded-full px-2 py-1 text-xs font-medium",
84255
- isPositive ? "bg-emerald-50 text-emerald-600 dark:bg-emerald-950 dark:text-emerald-400" : "bg-rose-50 text-rose-600 dark:bg-rose-950 dark:text-rose-400"
84256
- ),
84257
- children: [
84258
- /* @__PURE__ */ jsxRuntime.jsx(
84259
- DynamicIcon,
84260
- {
84261
- name: stat.trend === "up" ? "lucide/arrow-up-right" : "lucide/arrow-down-right",
84262
- size: 12,
84263
- className: "mr-1"
84264
- }
84265
- ),
84266
- Math.abs(stat.change),
84267
- "%"
84268
- ]
84269
- }
84270
- ),
84271
- stat.previousLabel && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "ml-2 text-sm text-muted-foreground", children: [
84272
- "vs ",
84273
- stat.previousLabel
84274
- ] })
84275
- ] })
84276
- ]
84277
- },
84278
- index
84279
- );
84280
- }) }) }, period.id))
84281
- ] });
84282
- }, [tabsSlot, periods, effectiveDefaultPeriod, tabsClassName, tabsListClassName, statsGridClassName, statCardClassName]);
84512
+ children: period.stats.map((stat, index) => {
84513
+ const isPositive = stat.trend === "up" && !stat.inversePositive || stat.trend === "down" && stat.inversePositive;
84514
+ return /* @__PURE__ */ jsxRuntime.jsxs(
84515
+ "div",
84516
+ {
84517
+ className: cn(
84518
+ "rounded-lg border bg-card p-6 transition-shadow hover:shadow-md",
84519
+ stat.className,
84520
+ statCardClassName
84521
+ ),
84522
+ children: [
84523
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
84524
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-medium", children: stat.label }),
84525
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
84526
+ /* @__PURE__ */ jsxRuntime.jsx(
84527
+ DynamicIcon,
84528
+ {
84529
+ name: "lucide/clock",
84530
+ size: 16,
84531
+ className: "mr-1 text-muted-foreground"
84532
+ }
84533
+ ),
84534
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: period.label })
84535
+ ] })
84536
+ ] }),
84537
+ stat.value && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-4 text-3xl font-bold", children: stat.value }),
84538
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center", children: [
84539
+ /* @__PURE__ */ jsxRuntime.jsxs(
84540
+ "div",
84541
+ {
84542
+ className: cn(
84543
+ "flex items-center rounded-full px-2 py-1 text-xs font-medium",
84544
+ isPositive ? "bg-emerald-50 text-emerald-600 dark:bg-emerald-950 dark:text-emerald-400" : "bg-rose-50 text-rose-600 dark:bg-rose-950 dark:text-rose-400"
84545
+ ),
84546
+ children: [
84547
+ /* @__PURE__ */ jsxRuntime.jsx(
84548
+ DynamicIcon,
84549
+ {
84550
+ name: stat.trend === "up" ? "lucide/arrow-up-right" : "lucide/arrow-down-right",
84551
+ size: 12,
84552
+ className: "mr-1"
84553
+ }
84554
+ ),
84555
+ Math.abs(stat.change),
84556
+ "%"
84557
+ ]
84558
+ }
84559
+ ),
84560
+ stat.previousLabel && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "ml-2 text-sm text-muted-foreground", children: [
84561
+ "vs ",
84562
+ stat.previousLabel
84563
+ ] })
84564
+ ] })
84565
+ ]
84566
+ },
84567
+ index
84568
+ );
84569
+ })
84570
+ }
84571
+ )
84572
+ },
84573
+ period.id
84574
+ ))
84575
+ ]
84576
+ }
84577
+ );
84578
+ }, [
84579
+ tabsSlot,
84580
+ periods,
84581
+ effectiveDefaultPeriod,
84582
+ tabsClassName,
84583
+ tabsListClassName,
84584
+ statsGridClassName,
84585
+ statCardClassName
84586
+ ]);
84283
84587
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84284
84588
  const hasTabsContent = !!(tabsSlot || periods && periods.length > 0);
84285
84589
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -84294,8 +84598,32 @@ function StatsTimelineTabs({
84294
84598
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6", children: [
84295
84599
  hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-2 text-center", headerClassName), children: [
84296
84600
  badgeContent,
84297
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84298
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
84601
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84602
+ "h2",
84603
+ {
84604
+ className: cn(
84605
+ "text-3xl font-bold md:text-4xl",
84606
+ headingClassName
84607
+ ),
84608
+ children: heading
84609
+ }
84610
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84611
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84612
+ "p",
84613
+ {
84614
+ className: cn(
84615
+ "mx-auto max-w-2xl text-muted-foreground",
84616
+ descriptionClassName
84617
+ ),
84618
+ children: description
84619
+ }
84620
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
84621
+ "div",
84622
+ {
84623
+ className: cn("mx-auto max-w-2xl", descriptionClassName),
84624
+ children: description
84625
+ }
84626
+ ))
84299
84627
  ] }),
84300
84628
  hasTabsContent && tabsContent
84301
84629
  ] }) })
@@ -84310,8 +84638,8 @@ function StatsPrimarySecondary({
84310
84638
  primarySlot,
84311
84639
  secondaryStats,
84312
84640
  secondaryStatsSlot,
84313
- background = "white",
84314
- spacing = "lg",
84641
+ background,
84642
+ spacing,
84315
84643
  pattern,
84316
84644
  patternOpacity,
84317
84645
  patternClassName,
@@ -84328,30 +84656,77 @@ function StatsPrimarySecondary({
84328
84656
  const renderPrimaryBadge = React13.useCallback(() => {
84329
84657
  if (primaryBadgeSlot) return primaryBadgeSlot;
84330
84658
  if (!primaryBadge) return null;
84331
- return /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "secondary", className: cn("ml-2 gap-1", primaryBadgeClassName), children: [
84332
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/badge-check", size: 16, className: "shrink-0" }),
84333
- primaryBadge
84334
- ] });
84659
+ return /* @__PURE__ */ jsxRuntime.jsxs(
84660
+ Badge,
84661
+ {
84662
+ variant: "secondary",
84663
+ className: cn("ml-2 gap-1", primaryBadgeClassName),
84664
+ children: [
84665
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/badge-check", size: 16, className: "shrink-0" }),
84666
+ primaryBadge
84667
+ ]
84668
+ }
84669
+ );
84335
84670
  }, [primaryBadgeSlot, primaryBadge, primaryBadgeClassName]);
84336
84671
  const primaryContent = React13.useMemo(() => {
84337
84672
  if (primarySlot) return primarySlot;
84338
84673
  if (!primaryValue) return null;
84339
84674
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("lg:col-span-4", primaryClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:pe-6 xl:pe-12", children: [
84340
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-6xl font-bold leading-10", primaryValueClassName), children: [
84341
- primaryValue,
84342
- renderPrimaryBadge()
84343
- ] }),
84344
- primaryDescription && (typeof primaryDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-muted-foreground sm:mt-3", primaryDescriptionClassName), children: primaryDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-2 sm:mt-3", primaryDescriptionClassName), children: primaryDescription }))
84675
+ /* @__PURE__ */ jsxRuntime.jsxs(
84676
+ "p",
84677
+ {
84678
+ className: cn(
84679
+ "text-6xl font-bold leading-10",
84680
+ primaryValueClassName
84681
+ ),
84682
+ children: [
84683
+ primaryValue,
84684
+ renderPrimaryBadge()
84685
+ ]
84686
+ }
84687
+ ),
84688
+ primaryDescription && (typeof primaryDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84689
+ "p",
84690
+ {
84691
+ className: cn(
84692
+ "mt-2 text-muted-foreground sm:mt-3",
84693
+ primaryDescriptionClassName
84694
+ ),
84695
+ children: primaryDescription
84696
+ }
84697
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-2 sm:mt-3", primaryDescriptionClassName), children: primaryDescription }))
84345
84698
  ] }) });
84346
- }, [primarySlot, primaryValue, primaryClassName, primaryValueClassName, primaryDescription, primaryDescriptionClassName, renderPrimaryBadge]);
84699
+ }, [
84700
+ primarySlot,
84701
+ primaryValue,
84702
+ primaryClassName,
84703
+ primaryValueClassName,
84704
+ primaryDescription,
84705
+ primaryDescriptionClassName,
84706
+ renderPrimaryBadge
84707
+ ]);
84347
84708
  const secondaryStatsContent = React13.useMemo(() => {
84348
84709
  if (secondaryStatsSlot) return secondaryStatsSlot;
84349
84710
  if (!secondaryStats || secondaryStats.length === 0) return null;
84350
84711
  return secondaryStats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: stat.className, children: [
84351
84712
  stat.value && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-3xl font-semibold", secondaryValueClassName), children: stat.value }),
84352
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-1 text-muted-foreground", secondaryLabelClassName), children: stat.label })
84713
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx(
84714
+ "p",
84715
+ {
84716
+ className: cn(
84717
+ "mt-1 text-muted-foreground",
84718
+ secondaryLabelClassName
84719
+ ),
84720
+ children: stat.label
84721
+ }
84722
+ )
84353
84723
  ] }, index));
84354
- }, [secondaryStatsSlot, secondaryStats, secondaryValueClassName, secondaryLabelClassName]);
84724
+ }, [
84725
+ secondaryStatsSlot,
84726
+ secondaryStats,
84727
+ secondaryValueClassName,
84728
+ secondaryLabelClassName
84729
+ ]);
84355
84730
  const hasPrimaryContent = !!(primarySlot || primaryValue);
84356
84731
  const hasSecondaryContent = !!(secondaryStatsSlot || secondaryStats && secondaryStats.length > 0);
84357
84732
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -84363,10 +84738,29 @@ function StatsPrimarySecondary({
84363
84738
  patternOpacity,
84364
84739
  patternClassName,
84365
84740
  className,
84366
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid items-center gap-6 lg:grid-cols-12 lg:gap-12", containerClassName), children: [
84367
- hasPrimaryContent && primaryContent,
84368
- hasSecondaryContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative lg:before:absolute lg:before:-start-12 lg:before:top-0 lg:before:h-full lg:before:w-px lg:before:bg-border", hasPrimaryContent ? "lg:col-span-8" : "lg:col-span-12", secondaryClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-6 sm:gap-8 md:grid-cols-4 lg:grid-cols-3", children: secondaryStatsContent }) })
84369
- ] })
84741
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
84742
+ "div",
84743
+ {
84744
+ className: cn(
84745
+ "grid items-center gap-6 lg:grid-cols-12 lg:gap-12",
84746
+ containerClassName
84747
+ ),
84748
+ children: [
84749
+ hasPrimaryContent && primaryContent,
84750
+ hasSecondaryContent && /* @__PURE__ */ jsxRuntime.jsx(
84751
+ "div",
84752
+ {
84753
+ className: cn(
84754
+ "relative lg:before:absolute lg:before:-start-12 lg:before:top-0 lg:before:h-full lg:before:w-px lg:before:bg-border",
84755
+ hasPrimaryContent ? "lg:col-span-8" : "lg:col-span-12",
84756
+ secondaryClassName
84757
+ ),
84758
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-6 sm:gap-8 md:grid-cols-4 lg:grid-cols-3", children: secondaryStatsContent })
84759
+ }
84760
+ )
84761
+ ]
84762
+ }
84763
+ )
84370
84764
  }
84371
84765
  );
84372
84766
  }
@@ -84385,8 +84779,8 @@ function StatsGrowthTimeline({
84385
84779
  futureSlot,
84386
84780
  actions,
84387
84781
  actionsSlot,
84388
- background = "white",
84389
- spacing = "lg",
84782
+ background,
84783
+ spacing,
84390
84784
  pattern,
84391
84785
  patternOpacity,
84392
84786
  patternClassName,
@@ -84409,14 +84803,7 @@ function StatsGrowthTimeline({
84409
84803
  const renderMilestoneIcon = React13.useCallback((milestone) => {
84410
84804
  if (milestone.iconSlot) return milestone.iconSlot;
84411
84805
  if (!milestone.icon) return null;
84412
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(
84413
- DynamicIcon,
84414
- {
84415
- name: milestone.icon,
84416
- size: 32,
84417
- className: "text-primary"
84418
- }
84419
- ) });
84806
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: milestone.icon, size: 32, className: "text-primary" }) });
84420
84807
  }, []);
84421
84808
  const milestonesContent = React13.useMemo(() => {
84422
84809
  if (milestonesSlot) return milestonesSlot;
@@ -84451,18 +84838,35 @@ function StatsGrowthTimeline({
84451
84838
  milestone.id
84452
84839
  )) })
84453
84840
  ] });
84454
- }, [milestonesSlot, milestones, timelineClassName, milestoneClassName, renderMilestoneIcon]);
84841
+ }, [
84842
+ milestonesSlot,
84843
+ milestones,
84844
+ timelineClassName,
84845
+ milestoneClassName,
84846
+ renderMilestoneIcon
84847
+ ]);
84455
84848
  const currentStatsContent = React13.useMemo(() => {
84456
84849
  if (currentStatsSlot) return currentStatsSlot;
84457
84850
  if (!currentStats || currentStats.length === 0) return null;
84458
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-24 rounded-lg bg-muted p-8", currentStatsClassName), children: [
84459
- currentStatsHeading && (typeof currentStatsHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-6 text-center text-2xl font-bold", children: currentStatsHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 text-center", children: currentStatsHeading })),
84460
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-8 md:grid-cols-4", children: currentStats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", stat.className), children: [
84461
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-3xl font-bold text-primary md:text-4xl", children: stat.value }),
84462
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-muted-foreground", children: stat.label })
84463
- ] }, index)) })
84464
- ] });
84465
- }, [currentStatsSlot, currentStats, currentStatsHeading, currentStatsClassName]);
84851
+ return /* @__PURE__ */ jsxRuntime.jsxs(
84852
+ "div",
84853
+ {
84854
+ className: cn("mt-24 rounded-lg bg-muted p-8", currentStatsClassName),
84855
+ children: [
84856
+ currentStatsHeading && (typeof currentStatsHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-6 text-center text-2xl font-bold", children: currentStatsHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 text-center", children: currentStatsHeading })),
84857
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-8 md:grid-cols-4", children: currentStats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", stat.className), children: [
84858
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-3xl font-bold text-primary md:text-4xl", children: stat.value }),
84859
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-muted-foreground", children: stat.label })
84860
+ ] }, index)) })
84861
+ ]
84862
+ }
84863
+ );
84864
+ }, [
84865
+ currentStatsSlot,
84866
+ currentStats,
84867
+ currentStatsHeading,
84868
+ currentStatsClassName
84869
+ ]);
84466
84870
  const actionsContent = React13.useMemo(() => {
84467
84871
  if (actionsSlot) return actionsSlot;
84468
84872
  if (!actions || actions.length === 0) return null;
@@ -84483,13 +84887,21 @@ function StatsGrowthTimeline({
84483
84887
  }, [actionsSlot, actions]);
84484
84888
  const futureContent = React13.useMemo(() => {
84485
84889
  if (futureSlot) return futureSlot;
84486
- if (!futureHeading && !futureDescription && (!actions || actions.length === 0)) return null;
84890
+ if (!futureHeading && !futureDescription && (!actions || actions.length === 0))
84891
+ return null;
84487
84892
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-16 text-center", futureClassName), children: [
84488
84893
  futureHeading && (typeof futureHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-2xl font-bold", children: futureHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: futureHeading })),
84489
84894
  futureDescription && (typeof futureDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mb-8 max-w-2xl text-muted-foreground", children: futureDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-8 max-w-2xl", children: futureDescription })),
84490
84895
  actionsContent
84491
84896
  ] });
84492
- }, [futureSlot, futureHeading, futureDescription, futureClassName, actionsContent, actions]);
84897
+ }, [
84898
+ futureSlot,
84899
+ futureHeading,
84900
+ futureDescription,
84901
+ futureClassName,
84902
+ actionsContent,
84903
+ actions
84904
+ ]);
84493
84905
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84494
84906
  return /* @__PURE__ */ jsxRuntime.jsx(
84495
84907
  Section,
@@ -84503,8 +84915,26 @@ function StatsGrowthTimeline({
84503
84915
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
84504
84916
  hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
84505
84917
  badgeContent,
84506
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
84507
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-3xl text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-3xl", descriptionClassName), children: description }))
84918
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84919
+ "h2",
84920
+ {
84921
+ className: cn(
84922
+ "mb-4 text-3xl font-bold md:text-5xl",
84923
+ headingClassName
84924
+ ),
84925
+ children: heading
84926
+ }
84927
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
84928
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
84929
+ "p",
84930
+ {
84931
+ className: cn(
84932
+ "mx-auto max-w-3xl text-lg text-muted-foreground",
84933
+ descriptionClassName
84934
+ ),
84935
+ children: description
84936
+ }
84937
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-3xl", descriptionClassName), children: description }))
84508
84938
  ] }),
84509
84939
  milestonesContent,
84510
84940
  currentStatsContent,
@@ -84807,8 +85237,8 @@ function StatsCircularProgress({
84807
85237
  categories,
84808
85238
  categoriesSlot,
84809
85239
  defaultCategory,
84810
- background = "white",
84811
- spacing = "lg",
85240
+ background,
85241
+ spacing,
84812
85242
  pattern,
84813
85243
  patternOpacity,
84814
85244
  patternClassName,
@@ -84844,40 +85274,95 @@ function StatsCircularProgress({
84844
85274
  className: "w-full rounded-md border bg-background px-3 py-2",
84845
85275
  children: categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, `select-${cat.id}`))
84846
85276
  }
84847
- ) }),
84848
- /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { value: category, onValueChange: setCategory, className: cn("w-full", tabsClassName), children: [
84849
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-12 hidden justify-center md:flex", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { children: categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, cat.id)) }) }),
84850
- categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value: cat.id, className: cat.className, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: cat.stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs(
84851
- "div",
84852
- {
84853
- className: cn("flex flex-col items-center justify-center rounded-xl border bg-card p-6", stat.className, statCardClassName),
84854
- children: [
84855
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mb-4 flex items-center justify-center", children: [
84856
- /* @__PURE__ */ jsxRuntime.jsx(CircularProgressIndicator, { value: stat.value, size: 120 }),
84857
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
84858
- "span",
85277
+ ) }),
85278
+ /* @__PURE__ */ jsxRuntime.jsxs(
85279
+ Tabs,
85280
+ {
85281
+ value: category,
85282
+ onValueChange: setCategory,
85283
+ className: cn("w-full", tabsClassName),
85284
+ children: [
85285
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-12 hidden justify-center md:flex", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { children: categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, cat.id)) }) }),
85286
+ categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value: cat.id, className: cat.className, children: /* @__PURE__ */ jsxRuntime.jsx(
85287
+ "div",
85288
+ {
85289
+ className: cn(
85290
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
85291
+ statsClassName
85292
+ ),
85293
+ children: cat.stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs(
85294
+ "div",
84859
85295
  {
84860
85296
  className: cn(
84861
- "text-2xl font-bold md:text-3xl",
84862
- getColorClass(stat.value),
84863
- statValueClassName
85297
+ "flex flex-col items-center justify-center rounded-xl border bg-card p-6",
85298
+ stat.className,
85299
+ statCardClassName
84864
85300
  ),
84865
85301
  children: [
84866
- stat.value,
84867
- stat.suffix
85302
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mb-4 flex items-center justify-center", children: [
85303
+ /* @__PURE__ */ jsxRuntime.jsx(
85304
+ CircularProgressIndicator,
85305
+ {
85306
+ value: stat.value,
85307
+ size: 120
85308
+ }
85309
+ ),
85310
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
85311
+ "span",
85312
+ {
85313
+ className: cn(
85314
+ "text-2xl font-bold md:text-3xl",
85315
+ getColorClass(stat.value),
85316
+ statValueClassName
85317
+ ),
85318
+ children: [
85319
+ stat.value,
85320
+ stat.suffix
85321
+ ]
85322
+ }
85323
+ ) })
85324
+ ] }),
85325
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx(
85326
+ "h3",
85327
+ {
85328
+ className: cn(
85329
+ "text-center text-lg font-semibold md:text-xl",
85330
+ statLabelClassName
85331
+ ),
85332
+ children: stat.label
85333
+ }
85334
+ ),
85335
+ stat.info && /* @__PURE__ */ jsxRuntime.jsx(
85336
+ "p",
85337
+ {
85338
+ className: cn(
85339
+ "mt-1 text-center text-xs text-muted-foreground md:text-sm",
85340
+ statInfoClassName
85341
+ ),
85342
+ children: stat.info
85343
+ }
85344
+ )
84868
85345
  ]
84869
- }
84870
- ) })
84871
- ] }),
84872
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-center text-lg font-semibold md:text-xl", statLabelClassName), children: stat.label }),
84873
- stat.info && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-1 text-center text-xs text-muted-foreground md:text-sm", statInfoClassName), children: stat.info })
84874
- ]
84875
- },
84876
- index
84877
- )) }) }, cat.id))
84878
- ] })
85346
+ },
85347
+ index
85348
+ ))
85349
+ }
85350
+ ) }, cat.id))
85351
+ ]
85352
+ }
85353
+ )
84879
85354
  ] });
84880
- }, [categoriesSlot, categories, category, tabsClassName, statsClassName, statCardClassName, statValueClassName, statLabelClassName, statInfoClassName]);
85355
+ }, [
85356
+ categoriesSlot,
85357
+ categories,
85358
+ category,
85359
+ tabsClassName,
85360
+ statsClassName,
85361
+ statCardClassName,
85362
+ statValueClassName,
85363
+ statLabelClassName,
85364
+ statInfoClassName
85365
+ ]);
84881
85366
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84882
85367
  return /* @__PURE__ */ jsxRuntime.jsx(
84883
85368
  Section,
@@ -84891,8 +85376,32 @@ function StatsCircularProgress({
84891
85376
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: [
84892
85377
  hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
84893
85378
  badgeContent,
84894
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
84895
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mt-3 max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mt-3 max-w-2xl", descriptionClassName), children: description }))
85379
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
85380
+ "h2",
85381
+ {
85382
+ className: cn(
85383
+ "text-3xl font-bold md:text-4xl",
85384
+ headingClassName
85385
+ ),
85386
+ children: heading
85387
+ }
85388
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
85389
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
85390
+ "p",
85391
+ {
85392
+ className: cn(
85393
+ "mx-auto mt-3 max-w-2xl text-muted-foreground",
85394
+ descriptionClassName
85395
+ ),
85396
+ children: description
85397
+ }
85398
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
85399
+ "div",
85400
+ {
85401
+ className: cn("mx-auto mt-3 max-w-2xl", descriptionClassName),
85402
+ children: description
85403
+ }
85404
+ ))
84896
85405
  ] }),
84897
85406
  categoriesContent
84898
85407
  ] })
@@ -84904,8 +85413,8 @@ function StatsCardGroup({
84904
85413
  statsSlot,
84905
85414
  avatars,
84906
85415
  avatarsSlot,
84907
- background = "white",
84908
- spacing = "lg",
85416
+ background,
85417
+ spacing,
84909
85418
  pattern,
84910
85419
  patternOpacity,
84911
85420
  patternClassName,
@@ -84919,44 +85428,50 @@ function StatsCardGroup({
84919
85428
  avatarsClassName,
84920
85429
  optixFlowConfig
84921
85430
  }) {
84922
- const renderIcon = React13.useCallback((stat) => {
84923
- if (stat.iconSlot) return stat.iconSlot;
84924
- if (!stat.icon) return null;
84925
- return /* @__PURE__ */ jsxRuntime.jsx(
84926
- "div",
84927
- {
84928
- className: cn(
84929
- "mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
84930
- statIconClassName
84931
- ),
84932
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
84933
- }
84934
- );
84935
- }, [statIconClassName]);
84936
- const renderAvatars = React13.useCallback((stat) => {
84937
- if (!stat.showAvatars) return null;
84938
- if (avatarsSlot) return avatarsSlot;
84939
- if (!avatars || avatars.length === 0) return null;
84940
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
84941
- avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsxRuntime.jsx(
84942
- img.Img,
85431
+ const renderIcon = React13.useCallback(
85432
+ (stat) => {
85433
+ if (stat.iconSlot) return stat.iconSlot;
85434
+ if (!stat.icon) return null;
85435
+ return /* @__PURE__ */ jsxRuntime.jsx(
85436
+ "div",
84943
85437
  {
84944
- src: avatar.src,
84945
- alt: avatar.alt,
84946
85438
  className: cn(
84947
- "h-8 w-8 rounded-full border-2 border-background object-cover",
84948
- avatar.className
85439
+ "mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
85440
+ statIconClassName
84949
85441
  ),
84950
- optixFlowConfig
84951
- },
84952
- avatarIndex
84953
- )),
84954
- avatars.length > 4 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-background bg-muted text-xs font-medium", children: [
84955
- "+",
84956
- avatars.length - 4
84957
- ] })
84958
- ] });
84959
- }, [avatarsSlot, avatars, avatarsClassName, optixFlowConfig]);
85442
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
85443
+ }
85444
+ );
85445
+ },
85446
+ [statIconClassName]
85447
+ );
85448
+ const renderAvatars = React13.useCallback(
85449
+ (stat) => {
85450
+ if (!stat.showAvatars) return null;
85451
+ if (avatarsSlot) return avatarsSlot;
85452
+ if (!avatars || avatars.length === 0) return null;
85453
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
85454
+ avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsxRuntime.jsx(
85455
+ img.Img,
85456
+ {
85457
+ src: avatar.src,
85458
+ alt: avatar.alt,
85459
+ className: cn(
85460
+ "h-8 w-8 rounded-full border-2 border-background object-cover",
85461
+ avatar.className
85462
+ ),
85463
+ optixFlowConfig
85464
+ },
85465
+ avatarIndex
85466
+ )),
85467
+ avatars.length > 4 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-background bg-muted text-xs font-medium", children: [
85468
+ "+",
85469
+ avatars.length - 4
85470
+ ] })
85471
+ ] });
85472
+ },
85473
+ [avatarsSlot, avatars, avatarsClassName, optixFlowConfig]
85474
+ );
84960
85475
  const statsContent = React13.useMemo(() => {
84961
85476
  if (statsSlot) return statsSlot;
84962
85477
  if (!stats || stats.length === 0) return null;
@@ -84986,7 +85501,14 @@ function StatsCardGroup({
84986
85501
  },
84987
85502
  index
84988
85503
  ));
84989
- }, [statsSlot, stats, statValueClassName, statLabelClassName, renderIcon, renderAvatars]);
85504
+ }, [
85505
+ statsSlot,
85506
+ stats,
85507
+ statValueClassName,
85508
+ statLabelClassName,
85509
+ renderIcon,
85510
+ renderAvatars
85511
+ ]);
84990
85512
  return /* @__PURE__ */ jsxRuntime.jsx(
84991
85513
  Section,
84992
85514
  {
@@ -85036,17 +85558,38 @@ function AnimatedStatItem({
85036
85558
  const iconContent = React13.useMemo(() => {
85037
85559
  if (stat.iconSlot) return stat.iconSlot;
85038
85560
  if (!stat.icon) return null;
85039
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10", iconClassName), children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 28, className: "text-primary" }) });
85561
+ return /* @__PURE__ */ jsxRuntime.jsx(
85562
+ "div",
85563
+ {
85564
+ className: cn(
85565
+ "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10",
85566
+ iconClassName
85567
+ ),
85568
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 28, className: "text-primary" })
85569
+ }
85570
+ );
85040
85571
  }, [stat.iconSlot, stat.icon, iconClassName]);
85041
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center text-center", stat.className), children: [
85042
- iconContent,
85043
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-2 text-4xl font-bold md:text-5xl", valueClassName), children: [
85044
- stat.prefix,
85045
- count,
85046
- stat.suffix
85047
- ] }),
85048
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground", labelClassName), children: stat.label })
85049
- ] });
85572
+ return /* @__PURE__ */ jsxRuntime.jsxs(
85573
+ "div",
85574
+ {
85575
+ className: cn("flex flex-col items-center text-center", stat.className),
85576
+ children: [
85577
+ iconContent,
85578
+ /* @__PURE__ */ jsxRuntime.jsxs(
85579
+ "div",
85580
+ {
85581
+ className: cn("mb-2 text-4xl font-bold md:text-5xl", valueClassName),
85582
+ children: [
85583
+ stat.prefix,
85584
+ count,
85585
+ stat.suffix
85586
+ ]
85587
+ }
85588
+ ),
85589
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground", labelClassName), children: stat.label })
85590
+ ]
85591
+ }
85592
+ );
85050
85593
  }
85051
85594
  function StatsAnimatedCounter({
85052
85595
  heading,
@@ -85054,8 +85597,8 @@ function StatsAnimatedCounter({
85054
85597
  stats,
85055
85598
  statsSlot,
85056
85599
  animationDuration = 2e3,
85057
- background = "white",
85058
- spacing = "lg",
85600
+ background,
85601
+ spacing,
85059
85602
  pattern,
85060
85603
  patternOpacity,
85061
85604
  patternClassName,
@@ -85102,7 +85645,15 @@ function StatsAnimatedCounter({
85102
85645
  },
85103
85646
  index
85104
85647
  ));
85105
- }, [statsSlot, stats, animationDuration, isVisible, statValueClassName, statLabelClassName, statIconClassName]);
85648
+ }, [
85649
+ statsSlot,
85650
+ stats,
85651
+ animationDuration,
85652
+ isVisible,
85653
+ statValueClassName,
85654
+ statLabelClassName,
85655
+ statIconClassName
85656
+ ]);
85106
85657
  return /* @__PURE__ */ jsxRuntime.jsx(
85107
85658
  Section,
85108
85659
  {
@@ -85112,13 +85663,47 @@ function StatsAnimatedCounter({
85112
85663
  patternOpacity,
85113
85664
  patternClassName,
85114
85665
  className,
85115
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: sectionRef, className: cn("mx-auto max-w-5xl", containerClassName), children: [
85116
- hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", contentClassName), children: [
85117
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85118
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85119
- ] }),
85120
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: statsContent })
85121
- ] })
85666
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
85667
+ "div",
85668
+ {
85669
+ ref: sectionRef,
85670
+ className: cn("mx-auto max-w-5xl", containerClassName),
85671
+ children: [
85672
+ hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", contentClassName), children: [
85673
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
85674
+ "h2",
85675
+ {
85676
+ className: cn(
85677
+ "mb-4 text-3xl font-bold md:text-4xl",
85678
+ headingClassName
85679
+ ),
85680
+ children: heading
85681
+ }
85682
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85683
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
85684
+ "p",
85685
+ {
85686
+ className: cn(
85687
+ "mx-auto max-w-2xl text-muted-foreground",
85688
+ descriptionClassName
85689
+ ),
85690
+ children: description
85691
+ }
85692
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85693
+ ] }),
85694
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
85695
+ "div",
85696
+ {
85697
+ className: cn(
85698
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
85699
+ statsClassName
85700
+ ),
85701
+ children: statsContent
85702
+ }
85703
+ )
85704
+ ]
85705
+ }
85706
+ )
85122
85707
  }
85123
85708
  );
85124
85709
  }
@@ -85385,8 +85970,8 @@ function StatsBarComparison({
85385
85970
  comparisons,
85386
85971
  comparisonsSlot,
85387
85972
  animate = true,
85388
- background = "white",
85389
- spacing = "lg",
85973
+ background,
85974
+ spacing,
85390
85975
  pattern,
85391
85976
  patternOpacity,
85392
85977
  patternClassName,
@@ -85429,29 +86014,64 @@ function StatsBarComparison({
85429
86014
  const comparisonsContent = React13.useMemo(() => {
85430
86015
  if (comparisonsSlot) return comparisonsSlot;
85431
86016
  if (!comparisons || comparisons.length === 0) return null;
85432
- return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-xl border bg-card p-6", group.className, groupCardClassName), children: [
85433
- group.title && (typeof group.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-6 text-lg font-semibold", groupTitleClassName), children: group.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
85434
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: bar.className, children: [
85435
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
85436
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
85437
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-bold", barValueClassName), children: bar.displayValue })
85438
- ] }),
85439
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-3 w-full overflow-hidden rounded-full bg-muted", barTrackClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
85440
- "div",
85441
- {
85442
- className: cn(
85443
- "h-full rounded-full transition-all duration-1000 ease-out",
85444
- bar.color || "bg-primary"
85445
- ),
85446
- style: {
85447
- width: isVisible ? `${bar.value}%` : "0%",
85448
- transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
86017
+ return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
86018
+ "div",
86019
+ {
86020
+ className: cn(
86021
+ "rounded-xl border bg-card p-6",
86022
+ group.className,
86023
+ groupCardClassName
86024
+ ),
86025
+ children: [
86026
+ group.title && (typeof group.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
86027
+ "h3",
86028
+ {
86029
+ className: cn("mb-6 text-lg font-semibold", groupTitleClassName),
86030
+ children: group.title
85449
86031
  }
85450
- }
85451
- ) })
85452
- ] }, barIndex)) })
85453
- ] }, groupIndex));
85454
- }, [comparisonsSlot, comparisons, isVisible, groupCardClassName, groupTitleClassName, barLabelClassName, barValueClassName, barTrackClassName]);
86032
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
86033
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: bar.className, children: [
86034
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
86035
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
86036
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-bold", barValueClassName), children: bar.displayValue })
86037
+ ] }),
86038
+ /* @__PURE__ */ jsxRuntime.jsx(
86039
+ "div",
86040
+ {
86041
+ className: cn(
86042
+ "h-3 w-full overflow-hidden rounded-full bg-muted",
86043
+ barTrackClassName
86044
+ ),
86045
+ children: /* @__PURE__ */ jsxRuntime.jsx(
86046
+ "div",
86047
+ {
86048
+ className: cn(
86049
+ "h-full rounded-full transition-all duration-1000 ease-out",
86050
+ bar.color || "bg-primary"
86051
+ ),
86052
+ style: {
86053
+ width: isVisible ? `${bar.value}%` : "0%",
86054
+ transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
86055
+ }
86056
+ }
86057
+ )
86058
+ }
86059
+ )
86060
+ ] }, barIndex)) })
86061
+ ]
86062
+ },
86063
+ groupIndex
86064
+ ));
86065
+ }, [
86066
+ comparisonsSlot,
86067
+ comparisons,
86068
+ isVisible,
86069
+ groupCardClassName,
86070
+ groupTitleClassName,
86071
+ barLabelClassName,
86072
+ barValueClassName,
86073
+ barTrackClassName
86074
+ ]);
85455
86075
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
85456
86076
  return /* @__PURE__ */ jsxRuntime.jsx(
85457
86077
  Section,
@@ -85462,14 +86082,39 @@ function StatsBarComparison({
85462
86082
  patternOpacity,
85463
86083
  patternClassName,
85464
86084
  className,
85465
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: sectionRef, className: cn("mx-auto max-w-4xl", containerClassName), children: [
85466
- hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
85467
- badgeContent,
85468
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85469
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85470
- ] }),
85471
- (comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
85472
- ] })
86085
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
86086
+ "div",
86087
+ {
86088
+ ref: sectionRef,
86089
+ className: cn("mx-auto max-w-4xl", containerClassName),
86090
+ children: [
86091
+ hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
86092
+ badgeContent,
86093
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
86094
+ "h2",
86095
+ {
86096
+ className: cn(
86097
+ "mb-4 text-3xl font-bold md:text-4xl",
86098
+ headingClassName
86099
+ ),
86100
+ children: heading
86101
+ }
86102
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
86103
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
86104
+ "p",
86105
+ {
86106
+ className: cn(
86107
+ "mx-auto max-w-2xl text-muted-foreground",
86108
+ descriptionClassName
86109
+ ),
86110
+ children: description
86111
+ }
86112
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
86113
+ ] }),
86114
+ (comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
86115
+ ]
86116
+ }
86117
+ )
85473
86118
  }
85474
86119
  );
85475
86120
  }
@@ -102488,8 +103133,7 @@ var BLOCK_REGISTRY = {
102488
103133
  exampleUsage: `<BannerPromoCta
102489
103134
  message="Summer Sale"
102490
103135
  discount="Up to 70% off"
102491
- link="/sale"
102492
- linkText="Shop Now"
103136
+ actions={[{ label: "Shop Now", href: "/sale" }]}
102493
103137
  />`.trim()
102494
103138
  },
102495
103139
  "banner-countdown-sale": {
@@ -102558,10 +103202,9 @@ var BLOCK_REGISTRY = {
102558
103202
  component: BannerAnnouncementDismissible,
102559
103203
  props: "BannerAnnouncementDismissibleProps",
102560
103204
  exampleUsage: `<BannerAnnouncementDismissible
102561
- icon="mynaui/rocket"
103205
+ iconName="mynaui/rocket"
102562
103206
  message="New feature: AI-powered analytics is now live!"
102563
- buttonText="Try It Now"
102564
- buttonLink="/features/analytics"
103207
+ actions={[{ label: "Try It Now", href: "/features/analytics", variant: "secondary", size: "sm" }]}
102565
103208
  onDismiss={() => console.log('Banner dismissed')}
102566
103209
  />`.trim()
102567
103210
  },
@@ -102586,8 +103229,7 @@ var BLOCK_REGISTRY = {
102586
103229
  exampleUsage: `<BannerPrivacyNotice
102587
103230
  title="Privacy Policy Updated"
102588
103231
  description="We've made changes to how we handle your data."
102589
- linkText="Read More"
102590
- linkUrl="/privacy"
103232
+ actions={[{ label: "Read More", href: "/privacy", variant: "link" }]}
102591
103233
  onDismiss={() => console.log('Dismissed')}
102592
103234
  />`.trim()
102593
103235
  },
@@ -102611,8 +103253,7 @@ var BLOCK_REGISTRY = {
102611
103253
  exampleUsage: `<BannerSurveyIncentive
102612
103254
  title="Share your feedback!"
102613
103255
  description="Complete our quick survey and receive a 15% discount code."
102614
- buttonText="Start Survey"
102615
- buttonLink="/survey"
103256
+ actions={[{ label: "Start Survey", href: "/survey", size: "sm" }]}
102616
103257
  onDismiss={() => console.log('Dismissed')}
102617
103258
  />`.trim()
102618
103259
  },
@@ -102635,15 +103276,14 @@ var BLOCK_REGISTRY = {
102635
103276
  props: "BannerSocialFollowProps",
102636
103277
  exampleUsage: `<BannerSocialFollow
102637
103278
  message="Join our community of 50,000+ developers!"
102638
- buttonText="Follow Now"
102639
- buttonLink="https://twitter.com/example"
103279
+ actions={[{ label: "Follow Now", href: "https://twitter.com/example", variant: "secondary", size: "sm" }]}
102640
103280
  onDismiss={() => console.log('Dismissed')}
102641
103281
  />`.trim()
102642
103282
  },
102643
103283
  "banner-gdpr-rights": {
102644
103284
  id: "banner-gdpr-rights",
102645
103285
  name: "Banner GDPR Rights",
102646
- description: "A bottom-positioned GDPR privacy rights notice with globe icon, title, description, and manage data link. Features a fixed bottom position with border-top styling. Includes a dismiss button to close the banner. Ideal for GDPR compliance, data privacy notices, and user rights information.",
103286
+ description: "A bottom-positioned privacy rights notice with icon, title, description, and manage data link. Features a fixed bottom position with border-top styling. Includes a dismiss button to close the banner. Ideal for privacy notices, data policy updates, and user rights information.",
102647
103287
  semanticTags: [
102648
103288
  "banner",
102649
103289
  "gdpr",
@@ -102662,8 +103302,7 @@ var BLOCK_REGISTRY = {
102662
103302
  exampleUsage: `<BannerGdprRights
102663
103303
  title="Your Privacy Rights"
102664
103304
  description="You can request access to or deletion of your personal data at any time."
102665
- linkText="Manage Data"
102666
- linkUrl="/privacy/manage"
103305
+ actions={[{ label: "Manage Data", href: "/privacy/manage", variant: "link" }]}
102667
103306
  onDismiss={() => console.log('Dismissed')}
102668
103307
  />`.trim()
102669
103308
  },
@@ -102687,8 +103326,7 @@ var BLOCK_REGISTRY = {
102687
103326
  exampleUsage: `<BannerEventPromo
102688
103327
  eventName="TechSummit 2024"
102689
103328
  eventDetails="Join us in San Francisco from Sept 15 - 17 for the biggest tech event of the year."
102690
- buttonText="Get Tickets"
102691
- buttonLink="/events/techsummit"
103329
+ actions={[{ label: "Get Tickets", href: "/events/techsummit", variant: "ghost", size: "sm" }]}
102692
103330
  />`.trim()
102693
103331
  },
102694
103332
  "banner-floating-offer": {
@@ -102713,10 +103351,9 @@ var BLOCK_REGISTRY = {
102713
103351
  exampleUsage: `<BannerFloatingOffer
102714
103352
  offerTitle="Black Friday Special"
102715
103353
  offerDescription="Save 60% on annual plans - ends tonight!"
102716
- buttonText="Claim Offer"
102717
- buttonLink="/pricing"
103354
+ actions={[{ label: "Claim Offer", href: "/pricing", variant: "secondary", size: "sm" }]}
102718
103355
  dismissible={true}
102719
- onDismiss={() => console.log('Dismissed')}
103356
+ onOpenChange={(open) => console.log('Visibility:', open)}
102720
103357
  />`.trim()
102721
103358
  },
102722
103359
  // Industries blocks