@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.js CHANGED
@@ -76210,7 +76210,7 @@ function ProjectDetailParallaxScroll(props) {
76210
76210
  }
76211
76211
  function BannerPromoCta({
76212
76212
  message,
76213
- discount = "Up to 50% off",
76213
+ discount,
76214
76214
  separator,
76215
76215
  actions,
76216
76216
  actionsSlot,
@@ -76222,11 +76222,18 @@ function BannerPromoCta({
76222
76222
  discountClassName,
76223
76223
  actionsClassName
76224
76224
  }) {
76225
- const renderActions = () => {
76225
+ const actionsContent = useMemo(() => {
76226
76226
  if (actionsSlot) return actionsSlot;
76227
76227
  if (!actions || actions.length === 0) return null;
76228
76228
  return actions.map((action, index) => {
76229
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76229
+ const {
76230
+ label,
76231
+ icon: actionIcon,
76232
+ iconAfter,
76233
+ children,
76234
+ className: actionClassName,
76235
+ ...pressableProps
76236
+ } = action;
76230
76237
  return /* @__PURE__ */ jsx(
76231
76238
  Pressable,
76232
76239
  {
@@ -76241,20 +76248,28 @@ function BannerPromoCta({
76241
76248
  index
76242
76249
  );
76243
76250
  });
76244
- };
76245
- const renderSeparator = () => {
76251
+ }, [actions, actionsSlot]);
76252
+ const separatorContent = useMemo(() => {
76246
76253
  if (separator) return separator;
76247
76254
  return /* @__PURE__ */ jsx("span", { className: cn("hidden sm:inline", separatorClassName), children: "\xB7" });
76248
- };
76255
+ }, [separator, separatorClassName]);
76256
+ const messageContent = useMemo(() => {
76257
+ if (!message) return null;
76258
+ return typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsx("span", { className: messageClassName, children: message });
76259
+ }, [message, messageClassName]);
76260
+ const discountContent = useMemo(() => {
76261
+ if (!discount) return null;
76262
+ return /* @__PURE__ */ jsx("span", { className: discountClassName, children: discount });
76263
+ }, [discount, discountClassName]);
76249
76264
  return /* @__PURE__ */ jsx(
76250
76265
  "div",
76251
76266
  {
76252
76267
  className: cn("w-full bg-primary text-primary-foreground", className),
76253
76268
  children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-center text-sm", contentClassName), children: [
76254
- message && (typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsx("span", { className: messageClassName, children: message })),
76255
- renderSeparator(),
76256
- discount && (typeof discount === "string" ? /* @__PURE__ */ jsx("span", { className: discountClassName, children: discount }) : /* @__PURE__ */ jsx("span", { className: discountClassName, children: discount })),
76257
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: renderActions() })
76269
+ messageContent,
76270
+ messageContent && discountContent && separatorContent,
76271
+ discountContent,
76272
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: actionsContent })
76258
76273
  ] }) })
76259
76274
  }
76260
76275
  );
@@ -76274,17 +76289,16 @@ function BannerCountdownSale({
76274
76289
  timeUnitClassName,
76275
76290
  separatorClassName
76276
76291
  }) {
76277
- const defaultEndTime = useMemo(
76278
- () => new Date(Date.now() + 24 * 60 * 60 * 1e3),
76279
- []
76280
- );
76281
- const targetTime = endTime ?? defaultEndTime;
76292
+ const targetTime = endTime;
76282
76293
  const [timeLeft, setTimeLeft] = useState({
76283
76294
  hours: 0,
76284
76295
  minutes: 0,
76285
76296
  seconds: 0
76286
76297
  });
76287
76298
  useEffect(() => {
76299
+ if (!targetTime) {
76300
+ return;
76301
+ }
76288
76302
  const calculateTimeLeft = () => {
76289
76303
  const now = (/* @__PURE__ */ new Date()).getTime();
76290
76304
  const target = targetTime.getTime();
@@ -76304,10 +76318,11 @@ function BannerCountdownSale({
76304
76318
  }, 1e3);
76305
76319
  return () => clearInterval(timer);
76306
76320
  }, [targetTime]);
76307
- const pad = (n) => n.toString().padStart(2, "0");
76308
- const renderDefaultTimer = () => {
76321
+ const pad = useCallback((n) => n.toString().padStart(2, "0"), []);
76322
+ const timerContent = useMemo(() => {
76309
76323
  if (timerSlot) return timerSlot;
76310
76324
  if (renderTimer) return renderTimer(timeLeft);
76325
+ if (!targetTime) return null;
76311
76326
  return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-1 font-mono text-lg font-bold", timerClassName), children: [
76312
76327
  /* @__PURE__ */ jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.hours) }),
76313
76328
  /* @__PURE__ */ jsx("span", { className: separatorClassName, children: ":" }),
@@ -76315,20 +76330,28 @@ function BannerCountdownSale({
76315
76330
  /* @__PURE__ */ jsx("span", { className: separatorClassName, children: ":" }),
76316
76331
  /* @__PURE__ */ jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.seconds) })
76317
76332
  ] });
76318
- };
76333
+ }, [timerSlot, renderTimer, timeLeft, timerClassName, timeUnitClassName, separatorClassName, pad, targetTime]);
76334
+ const messageContent = useMemo(() => {
76335
+ if (!message) return null;
76336
+ return typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsx("div", { className: messageClassName, children: message });
76337
+ }, [message, messageClassName]);
76338
+ const descriptionContent = useMemo(() => {
76339
+ if (!description) return null;
76340
+ return typeof description === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
76341
+ }, [description, descriptionClassName]);
76319
76342
  return /* @__PURE__ */ jsx("div", { className: cn("w-full bg-destructive text-white", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-sm", contentClassName), children: [
76320
- message && (typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsx("div", { className: messageClassName, children: message })),
76321
- renderDefaultTimer(),
76322
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
76343
+ messageContent,
76344
+ timerContent,
76345
+ descriptionContent
76323
76346
  ] }) }) });
76324
76347
  }
76325
76348
  function BannerDeliveryCountdown({
76326
76349
  icon,
76327
- iconName = "lucide/gift",
76328
- deliveryDate = "Dec 24",
76350
+ iconName,
76351
+ deliveryDate,
76329
76352
  cutoffTime,
76330
- prefixText = "Order within",
76331
- middleText = "for delivery by",
76353
+ prefixText,
76354
+ middleText,
76332
76355
  timerSlot,
76333
76356
  renderTimer,
76334
76357
  className,
@@ -76339,17 +76362,16 @@ function BannerDeliveryCountdown({
76339
76362
  timerClassName,
76340
76363
  deliveryDateClassName
76341
76364
  }) {
76342
- const defaultCutoffTime = useMemo(
76343
- () => new Date(Date.now() + 4 * 60 * 60 * 1e3),
76344
- []
76345
- );
76346
- const targetTime = cutoffTime ?? defaultCutoffTime;
76365
+ const targetTime = cutoffTime;
76347
76366
  const [timeLeft, setTimeLeft] = useState({
76348
76367
  hours: 0,
76349
76368
  minutes: 0,
76350
76369
  seconds: 0
76351
76370
  });
76352
76371
  useEffect(() => {
76372
+ if (!targetTime) {
76373
+ return;
76374
+ }
76353
76375
  const calculateTimeLeft = () => {
76354
76376
  const now = (/* @__PURE__ */ new Date()).getTime();
76355
76377
  const target = targetTime.getTime();
@@ -76369,14 +76391,16 @@ function BannerDeliveryCountdown({
76369
76391
  }, 1e3);
76370
76392
  return () => clearInterval(timer);
76371
76393
  }, [targetTime]);
76372
- const pad = (n) => n.toString().padStart(2, "0");
76373
- const renderIcon = () => {
76394
+ const pad = useCallback((n) => n.toString().padStart(2, "0"), []);
76395
+ const iconContent = useMemo(() => {
76374
76396
  if (icon) return icon;
76397
+ if (!iconName) return null;
76375
76398
  return /* @__PURE__ */ jsx(DynamicIcon, { name: iconName, size: 16, className: iconClassName });
76376
- };
76377
- const renderDefaultTimer = () => {
76399
+ }, [icon, iconName, iconClassName]);
76400
+ const timerContent = useMemo(() => {
76378
76401
  if (timerSlot) return timerSlot;
76379
76402
  if (renderTimer) return renderTimer(timeLeft);
76403
+ if (!targetTime) return null;
76380
76404
  return /* @__PURE__ */ jsxs("span", { className: cn("font-mono font-bold", timerClassName), children: [
76381
76405
  pad(timeLeft.hours),
76382
76406
  ":",
@@ -76384,29 +76408,33 @@ function BannerDeliveryCountdown({
76384
76408
  ":",
76385
76409
  pad(timeLeft.seconds)
76386
76410
  ] });
76387
- };
76411
+ }, [timerSlot, renderTimer, timeLeft, timerClassName, pad, targetTime]);
76412
+ const deliveryDateContent = useMemo(() => {
76413
+ if (!deliveryDate) return null;
76414
+ return typeof deliveryDate === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsx("span", { className: deliveryDateClassName, children: deliveryDate });
76415
+ }, [deliveryDate, deliveryDateClassName]);
76416
+ const messageParts = useMemo(() => {
76417
+ return [prefixText, timerContent, middleText, deliveryDateContent].filter(
76418
+ (part) => part !== null && part !== void 0
76419
+ );
76420
+ }, [prefixText, timerContent, middleText, deliveryDateContent]);
76388
76421
  return /* @__PURE__ */ jsx("div", { className: cn("w-full bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
76389
- renderIcon(),
76390
- /* @__PURE__ */ jsxs("span", { children: [
76391
- prefixText,
76392
- " ",
76393
- renderDefaultTimer(),
76394
- " ",
76395
- middleText,
76396
- " ",
76397
- deliveryDate && (typeof deliveryDate === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsx("span", { className: deliveryDateClassName, children: deliveryDate }))
76398
- ] })
76422
+ iconContent,
76423
+ messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
76424
+ index > 0 ? " " : null,
76425
+ part
76426
+ ] }, index)) })
76399
76427
  ] }) }) }) });
76400
76428
  }
76401
76429
  function BannerAnnouncementDismissible({
76402
76430
  icon,
76403
- iconName = "mynaui/boat",
76431
+ iconName,
76404
76432
  message,
76405
76433
  actions,
76406
76434
  actionsSlot,
76407
76435
  onDismiss,
76408
76436
  dismissIcon,
76409
- dismissAriaLabel = "Dismiss banner",
76437
+ dismissAriaLabel,
76410
76438
  className,
76411
76439
  containerClassName,
76412
76440
  contentClassName,
@@ -76416,15 +76444,23 @@ function BannerAnnouncementDismissible({
76416
76444
  dismissButtonClassName
76417
76445
  }) {
76418
76446
  const [isVisible, setIsVisible] = useState(true);
76419
- const handleDismiss = () => {
76447
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76448
+ const handleDismiss = useCallback(() => {
76420
76449
  setIsVisible(false);
76421
76450
  onDismiss?.();
76422
- };
76423
- const renderActions = () => {
76451
+ }, [onDismiss]);
76452
+ const actionsContent = useMemo(() => {
76424
76453
  if (actionsSlot) return actionsSlot;
76425
76454
  if (!actions || actions.length === 0) return null;
76426
76455
  return actions.map((action, index) => {
76427
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76456
+ const {
76457
+ label,
76458
+ icon: actionIcon,
76459
+ iconAfter,
76460
+ children,
76461
+ className: actionClassName,
76462
+ ...pressableProps
76463
+ } = action;
76428
76464
  return /* @__PURE__ */ jsx(
76429
76465
  Pressable,
76430
76466
  {
@@ -76440,23 +76476,35 @@ function BannerAnnouncementDismissible({
76440
76476
  index
76441
76477
  );
76442
76478
  });
76443
- };
76444
- const renderIcon = () => {
76479
+ }, [actions, actionsSlot]);
76480
+ const iconContent = useMemo(() => {
76445
76481
  if (icon) return icon;
76446
- return /* @__PURE__ */ jsx(DynamicIcon, { name: iconName, size: 20, className: cn("shrink-0", iconClassName) });
76447
- };
76448
- const renderDismissIcon = () => {
76482
+ if (!iconName) return null;
76483
+ return /* @__PURE__ */ jsx(
76484
+ DynamicIcon,
76485
+ {
76486
+ name: iconName,
76487
+ size: 20,
76488
+ className: cn("shrink-0", iconClassName)
76489
+ }
76490
+ );
76491
+ }, [icon, iconName, iconClassName]);
76492
+ const dismissIconContent = useMemo(() => {
76449
76493
  if (dismissIcon) return dismissIcon;
76450
76494
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76451
- };
76495
+ }, [dismissIcon]);
76496
+ const messageContent = useMemo(() => {
76497
+ if (!message) return null;
76498
+ return typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsx("div", { className: messageClassName, children: message });
76499
+ }, [message, messageClassName]);
76452
76500
  if (!isVisible) {
76453
76501
  return null;
76454
76502
  }
76455
76503
  return /* @__PURE__ */ jsx("div", { className: cn("bg-background border-b", className), children: /* @__PURE__ */ jsxs("div", { className: cn("max-w-7xl mx-auto px-4 py-3 flex items-center justify-between gap-2", containerClassName), children: [
76456
76504
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-4", contentClassName), children: [
76457
- renderIcon(),
76458
- message && (typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsx("div", { className: messageClassName, children: message })),
76459
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() })
76505
+ iconContent,
76506
+ messageContent,
76507
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent })
76460
76508
  ] }),
76461
76509
  /* @__PURE__ */ jsxs(
76462
76510
  Pressable,
@@ -76467,8 +76515,8 @@ function BannerAnnouncementDismissible({
76467
76515
  asButton: true,
76468
76516
  className: cn("size-8", dismissButtonClassName),
76469
76517
  children: [
76470
- renderDismissIcon(),
76471
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
76518
+ dismissIconContent,
76519
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
76472
76520
  ]
76473
76521
  }
76474
76522
  )
@@ -76476,14 +76524,14 @@ function BannerAnnouncementDismissible({
76476
76524
  }
76477
76525
  function BannerPrivacyNotice({
76478
76526
  icon,
76479
- iconName = "mynaui/shield",
76527
+ iconName,
76480
76528
  title,
76481
76529
  description,
76482
76530
  actions,
76483
76531
  actionsSlot,
76484
76532
  onDismiss,
76485
76533
  dismissIcon,
76486
- dismissAriaLabel = "Dismiss banner",
76534
+ dismissAriaLabel,
76487
76535
  className,
76488
76536
  containerClassName,
76489
76537
  contentClassName,
@@ -76494,12 +76542,14 @@ function BannerPrivacyNotice({
76494
76542
  dismissButtonClassName
76495
76543
  }) {
76496
76544
  const [isVisible, setIsVisible] = useState(true);
76497
- const handleDismiss = () => {
76545
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76546
+ const handleDismiss = useCallback(() => {
76498
76547
  setIsVisible(false);
76499
76548
  onDismiss?.();
76500
- };
76501
- const renderIcon = () => {
76549
+ }, [onDismiss]);
76550
+ const iconContent = useMemo(() => {
76502
76551
  if (icon) return icon;
76552
+ if (!iconName) return null;
76503
76553
  return /* @__PURE__ */ jsx(
76504
76554
  DynamicIcon,
76505
76555
  {
@@ -76508,12 +76558,19 @@ function BannerPrivacyNotice({
76508
76558
  className: cn("mt-0.5 shrink-0", iconClassName)
76509
76559
  }
76510
76560
  );
76511
- };
76512
- const renderActions = () => {
76561
+ }, [icon, iconName, iconClassName]);
76562
+ const actionsContent = useMemo(() => {
76513
76563
  if (actionsSlot) return actionsSlot;
76514
76564
  if (!actions || actions.length === 0) return null;
76515
76565
  return actions.map((action, index) => {
76516
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76566
+ const {
76567
+ label,
76568
+ icon: actionIcon,
76569
+ iconAfter,
76570
+ children,
76571
+ className: actionClassName,
76572
+ ...pressableProps
76573
+ } = action;
76517
76574
  return /* @__PURE__ */ jsx(
76518
76575
  Pressable,
76519
76576
  {
@@ -76528,11 +76585,19 @@ function BannerPrivacyNotice({
76528
76585
  index
76529
76586
  );
76530
76587
  });
76531
- };
76532
- const renderDismissIcon = () => {
76588
+ }, [actions, actionsSlot]);
76589
+ const dismissIconContent = useMemo(() => {
76533
76590
  if (dismissIcon) return dismissIcon;
76534
76591
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76535
- };
76592
+ }, [dismissIcon]);
76593
+ const titleContent = useMemo(() => {
76594
+ if (!title) return null;
76595
+ return typeof title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title });
76596
+ }, [title, titleClassName]);
76597
+ const descriptionContent = useMemo(() => {
76598
+ if (!description) return null;
76599
+ return typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description });
76600
+ }, [description, descriptionClassName]);
76536
76601
  if (!isVisible) {
76537
76602
  return null;
76538
76603
  }
@@ -76545,11 +76610,11 @@ function BannerPrivacyNotice({
76545
76610
  ),
76546
76611
  children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76547
76612
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-4", contentClassName), children: [
76548
- renderIcon(),
76613
+ iconContent,
76549
76614
  /* @__PURE__ */ jsxs("div", { children: [
76550
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
76551
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description })),
76552
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() })
76615
+ titleContent,
76616
+ descriptionContent,
76617
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent })
76553
76618
  ] })
76554
76619
  ] }),
76555
76620
  /* @__PURE__ */ jsxs(
@@ -76561,8 +76626,8 @@ function BannerPrivacyNotice({
76561
76626
  asButton: true,
76562
76627
  className: cn("size-8", dismissButtonClassName),
76563
76628
  children: [
76564
- renderDismissIcon(),
76565
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
76629
+ dismissIconContent,
76630
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
76566
76631
  ]
76567
76632
  }
76568
76633
  )
@@ -76572,14 +76637,14 @@ function BannerPrivacyNotice({
76572
76637
  }
76573
76638
  function BannerSurveyIncentive({
76574
76639
  icon,
76575
- iconName = "mynaui/shopping-bag",
76640
+ iconName,
76576
76641
  title,
76577
76642
  description,
76578
76643
  actions,
76579
76644
  actionsSlot,
76580
76645
  onDismiss,
76581
76646
  dismissIcon,
76582
- dismissAriaLabel = "Dismiss banner",
76647
+ dismissAriaLabel,
76583
76648
  className,
76584
76649
  containerClassName,
76585
76650
  contentClassName,
@@ -76591,12 +76656,14 @@ function BannerSurveyIncentive({
76591
76656
  dismissButtonClassName
76592
76657
  }) {
76593
76658
  const [isVisible, setIsVisible] = useState(true);
76594
- const handleDismiss = () => {
76659
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76660
+ const handleDismiss = useCallback(() => {
76595
76661
  setIsVisible(false);
76596
76662
  onDismiss?.();
76597
- };
76598
- const renderIcon = () => {
76663
+ }, [onDismiss]);
76664
+ const iconContent = useMemo(() => {
76599
76665
  if (icon) return icon;
76666
+ if (!iconName) return null;
76600
76667
  return /* @__PURE__ */ jsx(
76601
76668
  DynamicIcon,
76602
76669
  {
@@ -76605,12 +76672,19 @@ function BannerSurveyIncentive({
76605
76672
  className: cn("shrink-0 hidden md:block", iconClassName)
76606
76673
  }
76607
76674
  );
76608
- };
76609
- const renderActions = () => {
76675
+ }, [icon, iconName, iconClassName]);
76676
+ const actionsContent = useMemo(() => {
76610
76677
  if (actionsSlot) return actionsSlot;
76611
76678
  if (!actions || actions.length === 0) return null;
76612
76679
  return actions.map((action, index) => {
76613
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76680
+ const {
76681
+ label,
76682
+ icon: actionIcon,
76683
+ iconAfter,
76684
+ children,
76685
+ className: actionClassName,
76686
+ ...pressableProps
76687
+ } = action;
76614
76688
  return /* @__PURE__ */ jsx(
76615
76689
  Pressable,
76616
76690
  {
@@ -76626,24 +76700,32 @@ function BannerSurveyIncentive({
76626
76700
  index
76627
76701
  );
76628
76702
  });
76629
- };
76630
- const renderDismissIcon = () => {
76703
+ }, [actions, actionsSlot]);
76704
+ const dismissIconContent = useMemo(() => {
76631
76705
  if (dismissIcon) return dismissIcon;
76632
76706
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76633
- };
76707
+ }, [dismissIcon]);
76708
+ const titleContent = useMemo(() => {
76709
+ if (!title) return null;
76710
+ return typeof title === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsx("span", { className: titleClassName, children: title });
76711
+ }, [title, titleClassName]);
76712
+ const descriptionContent = useMemo(() => {
76713
+ if (!description) return null;
76714
+ return typeof description === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("span", { className: descriptionClassName, children: description });
76715
+ }, [description, descriptionClassName]);
76634
76716
  if (!isVisible) {
76635
76717
  return null;
76636
76718
  }
76637
76719
  return /* @__PURE__ */ jsx("div", { className: cn("bg-background border-b text-sm", className), children: /* @__PURE__ */ jsxs("div", { className: cn("flex md:items-center justify-between max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76638
76720
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", contentClassName), children: [
76639
- renderIcon(),
76721
+ iconContent,
76640
76722
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col md:flex-row gap-1", textClassName), children: [
76641
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsx("span", { className: titleClassName, children: title })),
76642
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("span", { className: descriptionClassName, children: description }))
76723
+ titleContent,
76724
+ descriptionContent
76643
76725
  ] })
76644
76726
  ] }),
76645
76727
  /* @__PURE__ */ jsxs("div", { className: cn("flex gap-2", actionsClassName), children: [
76646
- renderActions(),
76728
+ actionsContent,
76647
76729
  /* @__PURE__ */ jsxs(
76648
76730
  Pressable,
76649
76731
  {
@@ -76653,8 +76735,8 @@ function BannerSurveyIncentive({
76653
76735
  asButton: true,
76654
76736
  className: cn("size-8", dismissButtonClassName),
76655
76737
  children: [
76656
- renderDismissIcon(),
76657
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
76738
+ dismissIconContent,
76739
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
76658
76740
  ]
76659
76741
  }
76660
76742
  )
@@ -76663,13 +76745,13 @@ function BannerSurveyIncentive({
76663
76745
  }
76664
76746
  function BannerSocialFollow({
76665
76747
  icon,
76666
- iconName = "mynaui/users",
76748
+ iconName,
76667
76749
  message,
76668
76750
  actions,
76669
76751
  actionsSlot,
76670
76752
  onDismiss,
76671
76753
  dismissIcon,
76672
- dismissAriaLabel = "Dismiss banner",
76754
+ dismissAriaLabel,
76673
76755
  className,
76674
76756
  containerClassName,
76675
76757
  iconClassName,
@@ -76678,19 +76760,35 @@ function BannerSocialFollow({
76678
76760
  dismissButtonClassName
76679
76761
  }) {
76680
76762
  const [isVisible, setIsVisible] = useState(true);
76681
- const handleDismiss = () => {
76763
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76764
+ const handleDismiss = useCallback(() => {
76682
76765
  setIsVisible(false);
76683
76766
  onDismiss?.();
76684
- };
76685
- const renderIcon = () => {
76767
+ }, [onDismiss]);
76768
+ const iconContent = useMemo(() => {
76686
76769
  if (icon) return icon;
76687
- return /* @__PURE__ */ jsx(DynamicIcon, { name: iconName, size: 20, className: cn("shrink-0", iconClassName) });
76688
- };
76689
- const renderActions = () => {
76770
+ if (!iconName) return null;
76771
+ return /* @__PURE__ */ jsx(
76772
+ DynamicIcon,
76773
+ {
76774
+ name: iconName,
76775
+ size: 20,
76776
+ className: cn("shrink-0", iconClassName)
76777
+ }
76778
+ );
76779
+ }, [icon, iconName, iconClassName]);
76780
+ const actionsContent = useMemo(() => {
76690
76781
  if (actionsSlot) return actionsSlot;
76691
76782
  if (!actions || actions.length === 0) return null;
76692
76783
  return actions.map((action, index) => {
76693
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76784
+ const {
76785
+ label,
76786
+ icon: actionIcon,
76787
+ iconAfter,
76788
+ children,
76789
+ className: actionClassName,
76790
+ ...pressableProps
76791
+ } = action;
76694
76792
  return /* @__PURE__ */ jsx(
76695
76793
  Pressable,
76696
76794
  {
@@ -76706,11 +76804,15 @@ function BannerSocialFollow({
76706
76804
  index
76707
76805
  );
76708
76806
  });
76709
- };
76710
- const renderDismissIcon = () => {
76807
+ }, [actions, actionsSlot]);
76808
+ const dismissIconContent = useMemo(() => {
76711
76809
  if (dismissIcon) return dismissIcon;
76712
76810
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76713
- };
76811
+ }, [dismissIcon]);
76812
+ const messageContent = useMemo(() => {
76813
+ if (!message) return null;
76814
+ return typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsx("span", { className: messageClassName, children: message });
76815
+ }, [message, messageClassName]);
76714
76816
  if (!isVisible) {
76715
76817
  return null;
76716
76818
  }
@@ -76722,9 +76824,9 @@ function BannerSocialFollow({
76722
76824
  className
76723
76825
  ),
76724
76826
  children: /* @__PURE__ */ 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: [
76725
- renderIcon(),
76726
- message && (typeof message === "string" ? /* @__PURE__ */ jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsx("span", { className: messageClassName, children: message })),
76727
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: renderActions() }),
76827
+ iconContent,
76828
+ messageContent,
76829
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: actionsContent }),
76728
76830
  /* @__PURE__ */ jsxs(
76729
76831
  Pressable,
76730
76832
  {
@@ -76734,8 +76836,8 @@ function BannerSocialFollow({
76734
76836
  asButton: true,
76735
76837
  className: cn("size-8", dismissButtonClassName),
76736
76838
  children: [
76737
- renderDismissIcon(),
76738
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
76839
+ dismissIconContent,
76840
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
76739
76841
  ]
76740
76842
  }
76741
76843
  )
@@ -76745,14 +76847,14 @@ function BannerSocialFollow({
76745
76847
  }
76746
76848
  function BannerGdprRights({
76747
76849
  icon,
76748
- iconName = "mynaui/globe",
76850
+ iconName,
76749
76851
  title,
76750
76852
  description,
76751
76853
  actions,
76752
76854
  actionsSlot,
76753
76855
  onDismiss,
76754
76856
  dismissIcon,
76755
- dismissAriaLabel = "Dismiss banner",
76857
+ dismissAriaLabel,
76756
76858
  className,
76757
76859
  containerClassName,
76758
76860
  contentClassName,
@@ -76763,12 +76865,14 @@ function BannerGdprRights({
76763
76865
  dismissButtonClassName
76764
76866
  }) {
76765
76867
  const [isVisible, setIsVisible] = useState(true);
76766
- const handleDismiss = () => {
76868
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
76869
+ const handleDismiss = useCallback(() => {
76767
76870
  setIsVisible(false);
76768
76871
  onDismiss?.();
76769
- };
76770
- const renderIcon = () => {
76872
+ }, [onDismiss]);
76873
+ const iconContent = useMemo(() => {
76771
76874
  if (icon) return icon;
76875
+ if (!iconName) return null;
76772
76876
  return /* @__PURE__ */ jsx(
76773
76877
  DynamicIcon,
76774
76878
  {
@@ -76777,12 +76881,19 @@ function BannerGdprRights({
76777
76881
  className: cn("text-muted-foreground mt-0.5 shrink-0", iconClassName)
76778
76882
  }
76779
76883
  );
76780
- };
76781
- const renderActions = () => {
76884
+ }, [icon, iconName, iconClassName]);
76885
+ const actionsContent = useMemo(() => {
76782
76886
  if (actionsSlot) return actionsSlot;
76783
76887
  if (!actions || actions.length === 0) return null;
76784
76888
  return actions.map((action, index) => {
76785
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76889
+ const {
76890
+ label,
76891
+ icon: actionIcon,
76892
+ iconAfter,
76893
+ children,
76894
+ className: actionClassName,
76895
+ ...pressableProps
76896
+ } = action;
76786
76897
  return /* @__PURE__ */ jsx(
76787
76898
  Pressable,
76788
76899
  {
@@ -76797,11 +76908,22 @@ function BannerGdprRights({
76797
76908
  index
76798
76909
  );
76799
76910
  });
76800
- };
76801
- const renderDismissIcon = () => {
76911
+ }, [actions, actionsSlot]);
76912
+ const dismissIconContent = useMemo(() => {
76802
76913
  if (dismissIcon) return dismissIcon;
76803
76914
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76804
- };
76915
+ }, [dismissIcon]);
76916
+ const titleContent = useMemo(() => {
76917
+ if (!title) return null;
76918
+ return typeof title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title });
76919
+ }, [title, titleClassName]);
76920
+ const descriptionContent = useMemo(() => {
76921
+ if (!description && !actionsContent) return null;
76922
+ return /* @__PURE__ */ jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
76923
+ description,
76924
+ actionsContent && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: actionsContent })
76925
+ ] });
76926
+ }, [description, actionsContent, descriptionClassName, actionsClassName]);
76805
76927
  if (!isVisible) {
76806
76928
  return null;
76807
76929
  }
@@ -76814,13 +76936,10 @@ function BannerGdprRights({
76814
76936
  ),
76815
76937
  children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
76816
76938
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-3", contentClassName), children: [
76817
- renderIcon(),
76939
+ iconContent,
76818
76940
  /* @__PURE__ */ jsxs("div", { children: [
76819
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
76820
- /* @__PURE__ */ jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
76821
- description,
76822
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("span", { className: actionsClassName, children: renderActions() })
76823
- ] })
76941
+ titleContent,
76942
+ descriptionContent
76824
76943
  ] })
76825
76944
  ] }),
76826
76945
  /* @__PURE__ */ jsxs(
@@ -76832,8 +76951,8 @@ function BannerGdprRights({
76832
76951
  asButton: true,
76833
76952
  className: cn("size-8", dismissButtonClassName),
76834
76953
  children: [
76835
- renderDismissIcon(),
76836
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
76954
+ dismissIconContent,
76955
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
76837
76956
  ]
76838
76957
  }
76839
76958
  )
@@ -76842,8 +76961,8 @@ function BannerGdprRights({
76842
76961
  );
76843
76962
  }
76844
76963
  function BannerEventPromo({
76845
- eventName = "GeneriCon 2024",
76846
- eventDetails = "Join us in Denver from June 7 - 9 to see what's coming next.",
76964
+ eventName,
76965
+ eventDetails,
76847
76966
  separator,
76848
76967
  actions,
76849
76968
  actionsSlot,
@@ -76856,11 +76975,18 @@ function BannerEventPromo({
76856
76975
  eventDetailsClassName,
76857
76976
  actionsClassName
76858
76977
  }) {
76859
- const renderActions = () => {
76978
+ const actionsContent = useMemo(() => {
76860
76979
  if (actionsSlot) return actionsSlot;
76861
76980
  if (!actions || actions.length === 0) return null;
76862
76981
  return actions.map((action, index) => {
76863
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
76982
+ const {
76983
+ label,
76984
+ icon: actionIcon,
76985
+ iconAfter,
76986
+ children,
76987
+ className: actionClassName,
76988
+ ...pressableProps
76989
+ } = action;
76864
76990
  return /* @__PURE__ */ jsx(
76865
76991
  Pressable,
76866
76992
  {
@@ -76876,8 +77002,8 @@ function BannerEventPromo({
76876
77002
  index
76877
77003
  );
76878
77004
  });
76879
- };
76880
- const renderSeparator = () => {
77005
+ }, [actions, actionsSlot]);
77006
+ const separatorContent = useMemo(() => {
76881
77007
  if (separator) return separator;
76882
77008
  return /* @__PURE__ */ jsx(
76883
77009
  "svg",
@@ -76888,28 +77014,36 @@ function BannerEventPromo({
76888
77014
  children: /* @__PURE__ */ jsx("circle", { cx: 1, cy: 1, r: 1 })
76889
77015
  }
76890
77016
  );
76891
- };
77017
+ }, [separator, separatorClassName]);
77018
+ const eventNameContent = useMemo(() => {
77019
+ if (!eventName) return null;
77020
+ return typeof eventName === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsx("span", { className: eventNameClassName, children: eventName });
77021
+ }, [eventName, eventNameClassName]);
77022
+ const eventDetailsContent = useMemo(() => {
77023
+ if (!eventDetails) return null;
77024
+ return /* @__PURE__ */ jsx("span", { className: eventDetailsClassName, children: eventDetails });
77025
+ }, [eventDetails, eventDetailsClassName]);
76892
77026
  return /* @__PURE__ */ jsx("div", { className: cn("bg-primary text-primary-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container mx-auto px-4 md:px-6 2xl:max-w-[1400px]", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-between gap-x-6 p-4", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap justify-between w-full items-center gap-x-4 gap-y-2", textClassName), children: [
76893
77027
  /* @__PURE__ */ jsxs("p", { className: "text-sm leading-6", children: [
76894
- eventName && (typeof eventName === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsx("span", { className: eventNameClassName, children: eventName })),
76895
- renderSeparator(),
76896
- eventDetails && (typeof eventDetails === "string" ? /* @__PURE__ */ jsx("span", { className: eventDetailsClassName, children: eventDetails }) : /* @__PURE__ */ jsx("span", { className: eventDetailsClassName, children: eventDetails }))
77028
+ eventNameContent,
77029
+ eventNameContent && eventDetailsContent && separatorContent,
77030
+ eventDetailsContent
76897
77031
  ] }),
76898
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() })
77032
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent })
76899
77033
  ] }) }) }) });
76900
77034
  }
76901
77035
  function BannerFloatingOffer({
76902
- offerTitle = "Limited time offer",
76903
- offerDescription = "Get 50% off for your first month",
77036
+ offerTitle,
77037
+ offerDescription,
76904
77038
  separator,
76905
77039
  actions,
76906
77040
  actionsSlot,
76907
77041
  open,
76908
- defaultOpen = true,
77042
+ defaultOpen,
76909
77043
  onOpenChange,
76910
- dismissible = false,
77044
+ dismissible,
76911
77045
  dismissIcon,
76912
- dismissAriaLabel = "Dismiss banner",
77046
+ dismissAriaLabel,
76913
77047
  className,
76914
77048
  containerClassName,
76915
77049
  textClassName,
@@ -76920,24 +77054,34 @@ function BannerFloatingOffer({
76920
77054
  dismissButtonClassName
76921
77055
  }) {
76922
77056
  const isControlled = open !== void 0;
76923
- const [internalOpen, setInternalOpen] = useState(defaultOpen);
77057
+ const initialOpen = defaultOpen ?? true;
77058
+ const [internalOpen, setInternalOpen] = useState(initialOpen);
76924
77059
  const isVisible = isControlled ? open : internalOpen;
77060
+ const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
77061
+ const isDismissible = dismissible ?? false;
76925
77062
  useEffect(() => {
76926
77063
  if (!isControlled && defaultOpen !== internalOpen) {
76927
- setInternalOpen(defaultOpen);
77064
+ setInternalOpen(initialOpen);
76928
77065
  }
76929
- }, [defaultOpen, isControlled, internalOpen]);
76930
- const handleDismiss = () => {
77066
+ }, [defaultOpen, initialOpen, isControlled, internalOpen]);
77067
+ const handleDismiss = useCallback(() => {
76931
77068
  if (!isControlled) {
76932
77069
  setInternalOpen(false);
76933
77070
  }
76934
77071
  onOpenChange?.(false);
76935
- };
76936
- const renderActions = () => {
77072
+ }, [isControlled, onOpenChange]);
77073
+ const actionsContent = useMemo(() => {
76937
77074
  if (actionsSlot) return actionsSlot;
76938
77075
  if (!actions || actions.length === 0) return null;
76939
77076
  return actions.map((action, index) => {
76940
- const { label, icon: actionIcon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
77077
+ const {
77078
+ label,
77079
+ icon: actionIcon,
77080
+ iconAfter,
77081
+ children,
77082
+ className: actionClassName,
77083
+ ...pressableProps
77084
+ } = action;
76941
77085
  return /* @__PURE__ */ jsx(
76942
77086
  Pressable,
76943
77087
  {
@@ -76953,8 +77097,8 @@ function BannerFloatingOffer({
76953
77097
  index
76954
77098
  );
76955
77099
  });
76956
- };
76957
- const renderSeparator = () => {
77100
+ }, [actions, actionsSlot]);
77101
+ const separatorContent = useMemo(() => {
76958
77102
  if (separator) return separator;
76959
77103
  return /* @__PURE__ */ jsx(
76960
77104
  "svg",
@@ -76965,11 +77109,19 @@ function BannerFloatingOffer({
76965
77109
  children: /* @__PURE__ */ jsx("circle", { cx: 1, cy: 1, r: 1 })
76966
77110
  }
76967
77111
  );
76968
- };
76969
- const renderDismissIcon = () => {
77112
+ }, [separator, separatorClassName]);
77113
+ const dismissIconContent = useMemo(() => {
76970
77114
  if (dismissIcon) return dismissIcon;
76971
77115
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
76972
- };
77116
+ }, [dismissIcon]);
77117
+ const offerTitleContent = useMemo(() => {
77118
+ if (!offerTitle) return null;
77119
+ return typeof offerTitle === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsx("span", { className: offerTitleClassName, children: offerTitle });
77120
+ }, [offerTitle, offerTitleClassName]);
77121
+ const offerDescriptionContent = useMemo(() => {
77122
+ if (!offerDescription) return null;
77123
+ return /* @__PURE__ */ jsx("span", { className: offerDescriptionClassName, children: offerDescription });
77124
+ }, [offerDescription, offerDescriptionClassName]);
76973
77125
  if (!isVisible) {
76974
77126
  return null;
76975
77127
  }
@@ -76982,13 +77134,13 @@ function BannerFloatingOffer({
76982
77134
  ),
76983
77135
  children: /* @__PURE__ */ 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: [
76984
77136
  /* @__PURE__ */ jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", textClassName), children: [
76985
- offerTitle && (typeof offerTitle === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsx("span", { className: offerTitleClassName, children: offerTitle })),
76986
- renderSeparator(),
76987
- offerDescription && (typeof offerDescription === "string" ? /* @__PURE__ */ jsx("span", { className: offerDescriptionClassName, children: offerDescription }) : /* @__PURE__ */ jsx("span", { className: offerDescriptionClassName, children: offerDescription }))
77137
+ offerTitleContent,
77138
+ offerTitleContent && offerDescriptionContent && separatorContent,
77139
+ offerDescriptionContent
76988
77140
  ] }),
76989
77141
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", actionsClassName), children: [
76990
- renderActions(),
76991
- dismissible && /* @__PURE__ */ jsxs(
77142
+ actionsContent,
77143
+ isDismissible && /* @__PURE__ */ jsxs(
76992
77144
  Pressable,
76993
77145
  {
76994
77146
  onClick: handleDismiss,
@@ -76997,8 +77149,8 @@ function BannerFloatingOffer({
76997
77149
  asButton: true,
76998
77150
  className: cn("size-8 text-primary-foreground hover:text-primary-foreground/80", dismissButtonClassName),
76999
77151
  children: [
77000
- renderDismissIcon(),
77001
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissAriaLabel })
77152
+ dismissIconContent,
77153
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
77002
77154
  ]
77003
77155
  }
77004
77156
  )
@@ -83987,8 +84139,8 @@ function StatsSimpleGrid({
83987
84139
  statsSlot,
83988
84140
  actions,
83989
84141
  actionsSlot,
83990
- background = "muted",
83991
- spacing = "lg",
84142
+ background,
84143
+ spacing,
83992
84144
  pattern,
83993
84145
  patternOpacity,
83994
84146
  patternClassName,
@@ -84006,7 +84158,14 @@ function StatsSimpleGrid({
84006
84158
  if (actionsSlot) return actionsSlot;
84007
84159
  if (!actions || actions.length === 0) return null;
84008
84160
  return actions.map((action, index) => {
84009
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
84161
+ const {
84162
+ label,
84163
+ icon,
84164
+ iconAfter,
84165
+ children,
84166
+ className: actionClassName,
84167
+ ...pressableProps
84168
+ } = action;
84010
84169
  return /* @__PURE__ */ jsx(
84011
84170
  Pressable,
84012
84171
  {
@@ -84027,10 +84186,34 @@ function StatsSimpleGrid({
84027
84186
  if (statsSlot) return statsSlot;
84028
84187
  if (!stats || stats.length === 0) return null;
84029
84188
  return stats.map((stat, index) => /* @__PURE__ */ jsxs("div", { className: cn("w-full", statItemClassName), children: [
84030
- stat.value && /* @__PURE__ */ jsx("div", { className: cn("mb-2 text-4xl font-semibold sm:text-4xl lg:text-5xl", statValueClassName), children: stat.value }),
84031
- stat.label && /* @__PURE__ */ jsx("div", { className: cn("text-base leading-6 text-muted-foreground lg:text-lg", statLabelClassName), children: stat.label })
84189
+ stat.value && /* @__PURE__ */ jsx(
84190
+ "div",
84191
+ {
84192
+ className: cn(
84193
+ "mb-2 text-4xl font-semibold sm:text-4xl lg:text-5xl",
84194
+ statValueClassName
84195
+ ),
84196
+ children: stat.value
84197
+ }
84198
+ ),
84199
+ stat.label && /* @__PURE__ */ jsx(
84200
+ "div",
84201
+ {
84202
+ className: cn(
84203
+ "text-base leading-6 text-muted-foreground lg:text-lg",
84204
+ statLabelClassName
84205
+ ),
84206
+ children: stat.label
84207
+ }
84208
+ )
84032
84209
  ] }, index));
84033
- }, [statsSlot, stats, statItemClassName, statValueClassName, statLabelClassName]);
84210
+ }, [
84211
+ statsSlot,
84212
+ stats,
84213
+ statItemClassName,
84214
+ statValueClassName,
84215
+ statLabelClassName
84216
+ ]);
84034
84217
  const hasHeaderContent = !!(heading || actionsSlot || actions && actions.length > 0);
84035
84218
  const hasStatsContent = !!(statsSlot || stats && stats.length > 0);
84036
84219
  return /* @__PURE__ */ jsx(
@@ -84042,13 +84225,49 @@ function StatsSimpleGrid({
84042
84225
  patternOpacity,
84043
84226
  patternClassName,
84044
84227
  className,
84045
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-start text-left", containerClassName), children: [
84046
- hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 w-full md:mb-16", contentClassName), children: [
84047
- heading && (typeof heading === "string" ? /* @__PURE__ */ 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__ */ jsx("div", { className: headingClassName, children: heading })),
84048
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-start gap-2 sm:flex-row", actionsClassName), children: actionsContent })
84049
- ] }),
84050
- hasStatsContent && /* @__PURE__ */ 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 })
84051
- ] })
84228
+ children: /* @__PURE__ */ jsxs(
84229
+ "div",
84230
+ {
84231
+ className: cn(
84232
+ "flex flex-col items-start text-left",
84233
+ containerClassName
84234
+ ),
84235
+ children: [
84236
+ hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 w-full md:mb-16", contentClassName), children: [
84237
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
84238
+ "h2",
84239
+ {
84240
+ className: cn(
84241
+ "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",
84242
+ headingClassName
84243
+ ),
84244
+ children: heading
84245
+ }
84246
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84247
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx(
84248
+ "div",
84249
+ {
84250
+ className: cn(
84251
+ "flex flex-col justify-start gap-2 sm:flex-row",
84252
+ actionsClassName
84253
+ ),
84254
+ children: actionsContent
84255
+ }
84256
+ )
84257
+ ] }),
84258
+ hasStatsContent && /* @__PURE__ */ jsx(
84259
+ "div",
84260
+ {
84261
+ className: cn(
84262
+ "grid w-full grid-cols-2 gap-12 sm:w-fit sm:grid-cols-4 lg:gap-16",
84263
+ statsClassName
84264
+ ),
84265
+ children: statsContent
84266
+ }
84267
+ )
84268
+ ]
84269
+ }
84270
+ )
84052
84271
  }
84053
84272
  );
84054
84273
  }
@@ -84057,8 +84276,8 @@ function StatsIconCards({
84057
84276
  description,
84058
84277
  stats,
84059
84278
  statsSlot,
84060
- background = "white",
84061
- spacing = "lg",
84279
+ background,
84280
+ spacing,
84062
84281
  pattern,
84063
84282
  patternOpacity,
84064
84283
  patternClassName,
@@ -84074,28 +84293,46 @@ function StatsIconCards({
84074
84293
  statGrowthClassName,
84075
84294
  statIconClassName
84076
84295
  }) {
84077
- const renderIcon = useCallback((stat) => {
84078
- if (stat.iconSlot) return stat.iconSlot;
84079
- if (!stat.icon) return null;
84080
- return /* @__PURE__ */ jsx("div", { className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-primary/10", statIconClassName), children: /* @__PURE__ */ jsx(
84081
- DynamicIcon,
84082
- {
84083
- name: stat.icon,
84084
- size: 24,
84085
- className: "text-primary"
84086
- }
84087
- ) });
84088
- }, [statIconClassName]);
84296
+ const renderIcon = useCallback(
84297
+ (stat) => {
84298
+ if (stat.iconSlot) return stat.iconSlot;
84299
+ if (!stat.icon) return null;
84300
+ return /* @__PURE__ */ jsx(
84301
+ "div",
84302
+ {
84303
+ className: cn(
84304
+ "flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
84305
+ statIconClassName
84306
+ ),
84307
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
84308
+ }
84309
+ );
84310
+ },
84311
+ [statIconClassName]
84312
+ );
84089
84313
  const statsContent = useMemo(() => {
84090
84314
  if (statsSlot) return statsSlot;
84091
84315
  if (!stats || stats.length === 0) return null;
84092
84316
  return stats.map((stat, index) => /* @__PURE__ */ jsx(
84093
84317
  "div",
84094
84318
  {
84095
- className: cn("relative overflow-hidden rounded-xl border bg-background p-6", stat.className, statCardClassName),
84319
+ className: cn(
84320
+ "relative overflow-hidden rounded-xl border bg-background p-6",
84321
+ stat.className,
84322
+ statCardClassName
84323
+ ),
84096
84324
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
84097
84325
  /* @__PURE__ */ jsxs("div", { children: [
84098
- stat.label && /* @__PURE__ */ jsx("p", { className: cn("font-medium text-muted-foreground", statLabelClassName), children: stat.label }),
84326
+ stat.label && /* @__PURE__ */ jsx(
84327
+ "p",
84328
+ {
84329
+ className: cn(
84330
+ "font-medium text-muted-foreground",
84331
+ statLabelClassName
84332
+ ),
84333
+ children: stat.label
84334
+ }
84335
+ ),
84099
84336
  stat.value && /* @__PURE__ */ jsx("h3", { className: cn("mt-4 text-4xl font-bold", statValueClassName), children: stat.value }),
84100
84337
  stat.growth && /* @__PURE__ */ jsxs(
84101
84338
  "p",
@@ -84124,7 +84361,15 @@ function StatsIconCards({
84124
84361
  },
84125
84362
  index
84126
84363
  ));
84127
- }, [statsSlot, stats, statCardClassName, statLabelClassName, statValueClassName, statGrowthClassName, renderIcon]);
84364
+ }, [
84365
+ statsSlot,
84366
+ stats,
84367
+ statCardClassName,
84368
+ statLabelClassName,
84369
+ statValueClassName,
84370
+ statGrowthClassName,
84371
+ renderIcon
84372
+ ]);
84128
84373
  const hasHeaderContent = !!(heading || description);
84129
84374
  return /* @__PURE__ */ jsx(
84130
84375
  Section,
@@ -84137,10 +84382,37 @@ function StatsIconCards({
84137
84382
  className,
84138
84383
  children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
84139
84384
  hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-10 text-center", contentClassName), children: [
84140
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84141
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-3 text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-3", descriptionClassName), children: description }))
84385
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
84386
+ "h2",
84387
+ {
84388
+ className: cn(
84389
+ "text-3xl font-bold md:text-4xl",
84390
+ headingClassName
84391
+ ),
84392
+ children: heading
84393
+ }
84394
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84395
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
84396
+ "p",
84397
+ {
84398
+ className: cn(
84399
+ "mt-3 text-muted-foreground",
84400
+ descriptionClassName
84401
+ ),
84402
+ children: description
84403
+ }
84404
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mt-3", descriptionClassName), children: description }))
84142
84405
  ] }),
84143
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: statsContent })
84406
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx(
84407
+ "div",
84408
+ {
84409
+ className: cn(
84410
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
84411
+ statsClassName
84412
+ ),
84413
+ children: statsContent
84414
+ }
84415
+ )
84144
84416
  ] })
84145
84417
  }
84146
84418
  );
@@ -84153,8 +84425,8 @@ function StatsTimelineTabs({
84153
84425
  periods,
84154
84426
  tabsSlot,
84155
84427
  defaultPeriod,
84156
- background = "white",
84157
- spacing = "lg",
84428
+ background,
84429
+ spacing,
84158
84430
  pattern,
84159
84431
  patternOpacity,
84160
84432
  patternClassName,
@@ -84178,68 +84450,100 @@ function StatsTimelineTabs({
84178
84450
  const tabsContent = useMemo(() => {
84179
84451
  if (tabsSlot) return tabsSlot;
84180
84452
  if (!periods || periods.length === 0) return null;
84181
- return /* @__PURE__ */ jsxs(Tabs, { defaultValue: effectiveDefaultPeriod, className: cn("mt-8 w-full", tabsClassName), children: [
84182
- /* @__PURE__ */ jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsx(TabsList, { className: tabsListClassName, children: periods.map((period) => /* @__PURE__ */ jsx(TabsTrigger, { value: period.id, children: period.label }, period.id)) }) }),
84183
- periods.map((period) => /* @__PURE__ */ jsx(TabsContent, { value: period.id, className: cn("mt-4", period.className), children: /* @__PURE__ */ jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-4", statsGridClassName), children: period.stats.map((stat, index) => {
84184
- const isPositive = stat.trend === "up" && !stat.inversePositive || stat.trend === "down" && stat.inversePositive;
84185
- return /* @__PURE__ */ jsxs(
84186
- "div",
84187
- {
84188
- className: cn(
84189
- "rounded-lg border bg-card p-6 transition-shadow hover:shadow-md",
84190
- stat.className,
84191
- statCardClassName
84192
- ),
84193
- children: [
84194
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
84195
- stat.label && /* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children: stat.label }),
84196
- /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
84197
- /* @__PURE__ */ jsx(
84198
- DynamicIcon,
84199
- {
84200
- name: "lucide/clock",
84201
- size: 16,
84202
- className: "mr-1 text-muted-foreground"
84203
- }
84453
+ return /* @__PURE__ */ jsxs(
84454
+ Tabs,
84455
+ {
84456
+ defaultValue: effectiveDefaultPeriod,
84457
+ className: cn("mt-8 w-full", tabsClassName),
84458
+ children: [
84459
+ /* @__PURE__ */ jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsx(TabsList, { className: tabsListClassName, children: periods.map((period) => /* @__PURE__ */ jsx(TabsTrigger, { value: period.id, children: period.label }, period.id)) }) }),
84460
+ periods.map((period) => /* @__PURE__ */ jsx(
84461
+ TabsContent,
84462
+ {
84463
+ value: period.id,
84464
+ className: cn("mt-4", period.className),
84465
+ children: /* @__PURE__ */ jsx(
84466
+ "div",
84467
+ {
84468
+ className: cn(
84469
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-4",
84470
+ statsGridClassName
84204
84471
  ),
84205
- /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: period.label })
84206
- ] })
84207
- ] }),
84208
- stat.value && /* @__PURE__ */ jsx("h3", { className: "mt-4 text-3xl font-bold", children: stat.value }),
84209
- /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center", children: [
84210
- /* @__PURE__ */ jsxs(
84211
- "div",
84212
- {
84213
- className: cn(
84214
- "flex items-center rounded-full px-2 py-1 text-xs font-medium",
84215
- 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"
84216
- ),
84217
- children: [
84218
- /* @__PURE__ */ jsx(
84219
- DynamicIcon,
84220
- {
84221
- name: stat.trend === "up" ? "lucide/arrow-up-right" : "lucide/arrow-down-right",
84222
- size: 12,
84223
- className: "mr-1"
84224
- }
84225
- ),
84226
- Math.abs(stat.change),
84227
- "%"
84228
- ]
84229
- }
84230
- ),
84231
- stat.previousLabel && /* @__PURE__ */ jsxs("p", { className: "ml-2 text-sm text-muted-foreground", children: [
84232
- "vs ",
84233
- stat.previousLabel
84234
- ] })
84235
- ] })
84236
- ]
84237
- },
84238
- index
84239
- );
84240
- }) }) }, period.id))
84241
- ] });
84242
- }, [tabsSlot, periods, effectiveDefaultPeriod, tabsClassName, tabsListClassName, statsGridClassName, statCardClassName]);
84472
+ children: period.stats.map((stat, index) => {
84473
+ const isPositive = stat.trend === "up" && !stat.inversePositive || stat.trend === "down" && stat.inversePositive;
84474
+ return /* @__PURE__ */ jsxs(
84475
+ "div",
84476
+ {
84477
+ className: cn(
84478
+ "rounded-lg border bg-card p-6 transition-shadow hover:shadow-md",
84479
+ stat.className,
84480
+ statCardClassName
84481
+ ),
84482
+ children: [
84483
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
84484
+ stat.label && /* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children: stat.label }),
84485
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
84486
+ /* @__PURE__ */ jsx(
84487
+ DynamicIcon,
84488
+ {
84489
+ name: "lucide/clock",
84490
+ size: 16,
84491
+ className: "mr-1 text-muted-foreground"
84492
+ }
84493
+ ),
84494
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: period.label })
84495
+ ] })
84496
+ ] }),
84497
+ stat.value && /* @__PURE__ */ jsx("h3", { className: "mt-4 text-3xl font-bold", children: stat.value }),
84498
+ /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center", children: [
84499
+ /* @__PURE__ */ jsxs(
84500
+ "div",
84501
+ {
84502
+ className: cn(
84503
+ "flex items-center rounded-full px-2 py-1 text-xs font-medium",
84504
+ 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"
84505
+ ),
84506
+ children: [
84507
+ /* @__PURE__ */ jsx(
84508
+ DynamicIcon,
84509
+ {
84510
+ name: stat.trend === "up" ? "lucide/arrow-up-right" : "lucide/arrow-down-right",
84511
+ size: 12,
84512
+ className: "mr-1"
84513
+ }
84514
+ ),
84515
+ Math.abs(stat.change),
84516
+ "%"
84517
+ ]
84518
+ }
84519
+ ),
84520
+ stat.previousLabel && /* @__PURE__ */ jsxs("p", { className: "ml-2 text-sm text-muted-foreground", children: [
84521
+ "vs ",
84522
+ stat.previousLabel
84523
+ ] })
84524
+ ] })
84525
+ ]
84526
+ },
84527
+ index
84528
+ );
84529
+ })
84530
+ }
84531
+ )
84532
+ },
84533
+ period.id
84534
+ ))
84535
+ ]
84536
+ }
84537
+ );
84538
+ }, [
84539
+ tabsSlot,
84540
+ periods,
84541
+ effectiveDefaultPeriod,
84542
+ tabsClassName,
84543
+ tabsListClassName,
84544
+ statsGridClassName,
84545
+ statCardClassName
84546
+ ]);
84243
84547
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84244
84548
  const hasTabsContent = !!(tabsSlot || periods && periods.length > 0);
84245
84549
  return /* @__PURE__ */ jsx(
@@ -84254,8 +84558,32 @@ function StatsTimelineTabs({
84254
84558
  children: /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-6", children: [
84255
84559
  hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("space-y-2 text-center", headerClassName), children: [
84256
84560
  badgeContent,
84257
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84258
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
84561
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
84562
+ "h2",
84563
+ {
84564
+ className: cn(
84565
+ "text-3xl font-bold md:text-4xl",
84566
+ headingClassName
84567
+ ),
84568
+ children: heading
84569
+ }
84570
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84571
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
84572
+ "p",
84573
+ {
84574
+ className: cn(
84575
+ "mx-auto max-w-2xl text-muted-foreground",
84576
+ descriptionClassName
84577
+ ),
84578
+ children: description
84579
+ }
84580
+ ) : /* @__PURE__ */ jsx(
84581
+ "div",
84582
+ {
84583
+ className: cn("mx-auto max-w-2xl", descriptionClassName),
84584
+ children: description
84585
+ }
84586
+ ))
84259
84587
  ] }),
84260
84588
  hasTabsContent && tabsContent
84261
84589
  ] }) })
@@ -84270,8 +84598,8 @@ function StatsPrimarySecondary({
84270
84598
  primarySlot,
84271
84599
  secondaryStats,
84272
84600
  secondaryStatsSlot,
84273
- background = "white",
84274
- spacing = "lg",
84601
+ background,
84602
+ spacing,
84275
84603
  pattern,
84276
84604
  patternOpacity,
84277
84605
  patternClassName,
@@ -84288,30 +84616,77 @@ function StatsPrimarySecondary({
84288
84616
  const renderPrimaryBadge = useCallback(() => {
84289
84617
  if (primaryBadgeSlot) return primaryBadgeSlot;
84290
84618
  if (!primaryBadge) return null;
84291
- return /* @__PURE__ */ jsxs(Badge, { variant: "secondary", className: cn("ml-2 gap-1", primaryBadgeClassName), children: [
84292
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/badge-check", size: 16, className: "shrink-0" }),
84293
- primaryBadge
84294
- ] });
84619
+ return /* @__PURE__ */ jsxs(
84620
+ Badge,
84621
+ {
84622
+ variant: "secondary",
84623
+ className: cn("ml-2 gap-1", primaryBadgeClassName),
84624
+ children: [
84625
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/badge-check", size: 16, className: "shrink-0" }),
84626
+ primaryBadge
84627
+ ]
84628
+ }
84629
+ );
84295
84630
  }, [primaryBadgeSlot, primaryBadge, primaryBadgeClassName]);
84296
84631
  const primaryContent = useMemo(() => {
84297
84632
  if (primarySlot) return primarySlot;
84298
84633
  if (!primaryValue) return null;
84299
84634
  return /* @__PURE__ */ jsx("div", { className: cn("lg:col-span-4", primaryClassName), children: /* @__PURE__ */ jsxs("div", { className: "lg:pe-6 xl:pe-12", children: [
84300
- /* @__PURE__ */ jsxs("p", { className: cn("text-6xl font-bold leading-10", primaryValueClassName), children: [
84301
- primaryValue,
84302
- renderPrimaryBadge()
84303
- ] }),
84304
- primaryDescription && (typeof primaryDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-muted-foreground sm:mt-3", primaryDescriptionClassName), children: primaryDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mt-2 sm:mt-3", primaryDescriptionClassName), children: primaryDescription }))
84635
+ /* @__PURE__ */ jsxs(
84636
+ "p",
84637
+ {
84638
+ className: cn(
84639
+ "text-6xl font-bold leading-10",
84640
+ primaryValueClassName
84641
+ ),
84642
+ children: [
84643
+ primaryValue,
84644
+ renderPrimaryBadge()
84645
+ ]
84646
+ }
84647
+ ),
84648
+ primaryDescription && (typeof primaryDescription === "string" ? /* @__PURE__ */ jsx(
84649
+ "p",
84650
+ {
84651
+ className: cn(
84652
+ "mt-2 text-muted-foreground sm:mt-3",
84653
+ primaryDescriptionClassName
84654
+ ),
84655
+ children: primaryDescription
84656
+ }
84657
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mt-2 sm:mt-3", primaryDescriptionClassName), children: primaryDescription }))
84305
84658
  ] }) });
84306
- }, [primarySlot, primaryValue, primaryClassName, primaryValueClassName, primaryDescription, primaryDescriptionClassName, renderPrimaryBadge]);
84659
+ }, [
84660
+ primarySlot,
84661
+ primaryValue,
84662
+ primaryClassName,
84663
+ primaryValueClassName,
84664
+ primaryDescription,
84665
+ primaryDescriptionClassName,
84666
+ renderPrimaryBadge
84667
+ ]);
84307
84668
  const secondaryStatsContent = useMemo(() => {
84308
84669
  if (secondaryStatsSlot) return secondaryStatsSlot;
84309
84670
  if (!secondaryStats || secondaryStats.length === 0) return null;
84310
84671
  return secondaryStats.map((stat, index) => /* @__PURE__ */ jsxs("div", { className: stat.className, children: [
84311
84672
  stat.value && /* @__PURE__ */ jsx("p", { className: cn("text-3xl font-semibold", secondaryValueClassName), children: stat.value }),
84312
- stat.label && /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-muted-foreground", secondaryLabelClassName), children: stat.label })
84673
+ stat.label && /* @__PURE__ */ jsx(
84674
+ "p",
84675
+ {
84676
+ className: cn(
84677
+ "mt-1 text-muted-foreground",
84678
+ secondaryLabelClassName
84679
+ ),
84680
+ children: stat.label
84681
+ }
84682
+ )
84313
84683
  ] }, index));
84314
- }, [secondaryStatsSlot, secondaryStats, secondaryValueClassName, secondaryLabelClassName]);
84684
+ }, [
84685
+ secondaryStatsSlot,
84686
+ secondaryStats,
84687
+ secondaryValueClassName,
84688
+ secondaryLabelClassName
84689
+ ]);
84315
84690
  const hasPrimaryContent = !!(primarySlot || primaryValue);
84316
84691
  const hasSecondaryContent = !!(secondaryStatsSlot || secondaryStats && secondaryStats.length > 0);
84317
84692
  return /* @__PURE__ */ jsx(
@@ -84323,10 +84698,29 @@ function StatsPrimarySecondary({
84323
84698
  patternOpacity,
84324
84699
  patternClassName,
84325
84700
  className,
84326
- children: /* @__PURE__ */ jsxs("div", { className: cn("grid items-center gap-6 lg:grid-cols-12 lg:gap-12", containerClassName), children: [
84327
- hasPrimaryContent && primaryContent,
84328
- hasSecondaryContent && /* @__PURE__ */ 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__ */ jsx("div", { className: "grid grid-cols-2 gap-6 sm:gap-8 md:grid-cols-4 lg:grid-cols-3", children: secondaryStatsContent }) })
84329
- ] })
84701
+ children: /* @__PURE__ */ jsxs(
84702
+ "div",
84703
+ {
84704
+ className: cn(
84705
+ "grid items-center gap-6 lg:grid-cols-12 lg:gap-12",
84706
+ containerClassName
84707
+ ),
84708
+ children: [
84709
+ hasPrimaryContent && primaryContent,
84710
+ hasSecondaryContent && /* @__PURE__ */ jsx(
84711
+ "div",
84712
+ {
84713
+ className: cn(
84714
+ "relative lg:before:absolute lg:before:-start-12 lg:before:top-0 lg:before:h-full lg:before:w-px lg:before:bg-border",
84715
+ hasPrimaryContent ? "lg:col-span-8" : "lg:col-span-12",
84716
+ secondaryClassName
84717
+ ),
84718
+ children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-6 sm:gap-8 md:grid-cols-4 lg:grid-cols-3", children: secondaryStatsContent })
84719
+ }
84720
+ )
84721
+ ]
84722
+ }
84723
+ )
84330
84724
  }
84331
84725
  );
84332
84726
  }
@@ -84345,8 +84739,8 @@ function StatsGrowthTimeline({
84345
84739
  futureSlot,
84346
84740
  actions,
84347
84741
  actionsSlot,
84348
- background = "white",
84349
- spacing = "lg",
84742
+ background,
84743
+ spacing,
84350
84744
  pattern,
84351
84745
  patternOpacity,
84352
84746
  patternClassName,
@@ -84369,14 +84763,7 @@ function StatsGrowthTimeline({
84369
84763
  const renderMilestoneIcon = useCallback((milestone) => {
84370
84764
  if (milestone.iconSlot) return milestone.iconSlot;
84371
84765
  if (!milestone.icon) return null;
84372
- return /* @__PURE__ */ jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(
84373
- DynamicIcon,
84374
- {
84375
- name: milestone.icon,
84376
- size: 32,
84377
- className: "text-primary"
84378
- }
84379
- ) });
84766
+ return /* @__PURE__ */ jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: milestone.icon, size: 32, className: "text-primary" }) });
84380
84767
  }, []);
84381
84768
  const milestonesContent = useMemo(() => {
84382
84769
  if (milestonesSlot) return milestonesSlot;
@@ -84411,18 +84798,35 @@ function StatsGrowthTimeline({
84411
84798
  milestone.id
84412
84799
  )) })
84413
84800
  ] });
84414
- }, [milestonesSlot, milestones, timelineClassName, milestoneClassName, renderMilestoneIcon]);
84801
+ }, [
84802
+ milestonesSlot,
84803
+ milestones,
84804
+ timelineClassName,
84805
+ milestoneClassName,
84806
+ renderMilestoneIcon
84807
+ ]);
84415
84808
  const currentStatsContent = useMemo(() => {
84416
84809
  if (currentStatsSlot) return currentStatsSlot;
84417
84810
  if (!currentStats || currentStats.length === 0) return null;
84418
- return /* @__PURE__ */ jsxs("div", { className: cn("mt-24 rounded-lg bg-muted p-8", currentStatsClassName), children: [
84419
- currentStatsHeading && (typeof currentStatsHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-6 text-center text-2xl font-bold", children: currentStatsHeading }) : /* @__PURE__ */ jsx("div", { className: "mb-6 text-center", children: currentStatsHeading })),
84420
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-8 md:grid-cols-4", children: currentStats.map((stat, index) => /* @__PURE__ */ jsxs("div", { className: cn("text-center", stat.className), children: [
84421
- /* @__PURE__ */ jsx("div", { className: "mb-2 text-3xl font-bold text-primary md:text-4xl", children: stat.value }),
84422
- stat.label && /* @__PURE__ */ jsx("p", { className: "font-medium text-muted-foreground", children: stat.label })
84423
- ] }, index)) })
84424
- ] });
84425
- }, [currentStatsSlot, currentStats, currentStatsHeading, currentStatsClassName]);
84811
+ return /* @__PURE__ */ jsxs(
84812
+ "div",
84813
+ {
84814
+ className: cn("mt-24 rounded-lg bg-muted p-8", currentStatsClassName),
84815
+ children: [
84816
+ currentStatsHeading && (typeof currentStatsHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-6 text-center text-2xl font-bold", children: currentStatsHeading }) : /* @__PURE__ */ jsx("div", { className: "mb-6 text-center", children: currentStatsHeading })),
84817
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-8 md:grid-cols-4", children: currentStats.map((stat, index) => /* @__PURE__ */ jsxs("div", { className: cn("text-center", stat.className), children: [
84818
+ /* @__PURE__ */ jsx("div", { className: "mb-2 text-3xl font-bold text-primary md:text-4xl", children: stat.value }),
84819
+ stat.label && /* @__PURE__ */ jsx("p", { className: "font-medium text-muted-foreground", children: stat.label })
84820
+ ] }, index)) })
84821
+ ]
84822
+ }
84823
+ );
84824
+ }, [
84825
+ currentStatsSlot,
84826
+ currentStats,
84827
+ currentStatsHeading,
84828
+ currentStatsClassName
84829
+ ]);
84426
84830
  const actionsContent = useMemo(() => {
84427
84831
  if (actionsSlot) return actionsSlot;
84428
84832
  if (!actions || actions.length === 0) return null;
@@ -84443,13 +84847,21 @@ function StatsGrowthTimeline({
84443
84847
  }, [actionsSlot, actions]);
84444
84848
  const futureContent = useMemo(() => {
84445
84849
  if (futureSlot) return futureSlot;
84446
- if (!futureHeading && !futureDescription && (!actions || actions.length === 0)) return null;
84850
+ if (!futureHeading && !futureDescription && (!actions || actions.length === 0))
84851
+ return null;
84447
84852
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-16 text-center", futureClassName), children: [
84448
84853
  futureHeading && (typeof futureHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-4 text-2xl font-bold", children: futureHeading }) : /* @__PURE__ */ jsx("div", { className: "mb-4", children: futureHeading })),
84449
84854
  futureDescription && (typeof futureDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "mx-auto mb-8 max-w-2xl text-muted-foreground", children: futureDescription }) : /* @__PURE__ */ jsx("div", { className: "mx-auto mb-8 max-w-2xl", children: futureDescription })),
84450
84855
  actionsContent
84451
84856
  ] });
84452
- }, [futureSlot, futureHeading, futureDescription, futureClassName, actionsContent, actions]);
84857
+ }, [
84858
+ futureSlot,
84859
+ futureHeading,
84860
+ futureDescription,
84861
+ futureClassName,
84862
+ actionsContent,
84863
+ actions
84864
+ ]);
84453
84865
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84454
84866
  return /* @__PURE__ */ jsx(
84455
84867
  Section,
@@ -84463,8 +84875,26 @@ function StatsGrowthTimeline({
84463
84875
  children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
84464
84876
  hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
84465
84877
  badgeContent,
84466
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
84467
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-3xl text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-3xl", descriptionClassName), children: description }))
84878
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
84879
+ "h2",
84880
+ {
84881
+ className: cn(
84882
+ "mb-4 text-3xl font-bold md:text-5xl",
84883
+ headingClassName
84884
+ ),
84885
+ children: heading
84886
+ }
84887
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
84888
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
84889
+ "p",
84890
+ {
84891
+ className: cn(
84892
+ "mx-auto max-w-3xl text-lg text-muted-foreground",
84893
+ descriptionClassName
84894
+ ),
84895
+ children: description
84896
+ }
84897
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-3xl", descriptionClassName), children: description }))
84468
84898
  ] }),
84469
84899
  milestonesContent,
84470
84900
  currentStatsContent,
@@ -84767,8 +85197,8 @@ function StatsCircularProgress({
84767
85197
  categories,
84768
85198
  categoriesSlot,
84769
85199
  defaultCategory,
84770
- background = "white",
84771
- spacing = "lg",
85200
+ background,
85201
+ spacing,
84772
85202
  pattern,
84773
85203
  patternOpacity,
84774
85204
  patternClassName,
@@ -84804,40 +85234,95 @@ function StatsCircularProgress({
84804
85234
  className: "w-full rounded-md border bg-background px-3 py-2",
84805
85235
  children: categories.map((cat) => /* @__PURE__ */ jsx("option", { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, `select-${cat.id}`))
84806
85236
  }
84807
- ) }),
84808
- /* @__PURE__ */ jsxs(Tabs, { value: category, onValueChange: setCategory, className: cn("w-full", tabsClassName), children: [
84809
- /* @__PURE__ */ jsx("div", { className: "mb-12 hidden justify-center md:flex", children: /* @__PURE__ */ jsx(TabsList, { children: categories.map((cat) => /* @__PURE__ */ jsx(TabsTrigger, { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, cat.id)) }) }),
84810
- categories.map((cat) => /* @__PURE__ */ jsx(TabsContent, { value: cat.id, className: cat.className, children: /* @__PURE__ */ jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: cat.stats.map((stat, index) => /* @__PURE__ */ jsxs(
84811
- "div",
84812
- {
84813
- className: cn("flex flex-col items-center justify-center rounded-xl border bg-card p-6", stat.className, statCardClassName),
84814
- children: [
84815
- /* @__PURE__ */ jsxs("div", { className: "relative mb-4 flex items-center justify-center", children: [
84816
- /* @__PURE__ */ jsx(CircularProgressIndicator, { value: stat.value, size: 120 }),
84817
- /* @__PURE__ */ jsx("div", { className: "absolute flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxs(
84818
- "span",
85237
+ ) }),
85238
+ /* @__PURE__ */ jsxs(
85239
+ Tabs,
85240
+ {
85241
+ value: category,
85242
+ onValueChange: setCategory,
85243
+ className: cn("w-full", tabsClassName),
85244
+ children: [
85245
+ /* @__PURE__ */ jsx("div", { className: "mb-12 hidden justify-center md:flex", children: /* @__PURE__ */ jsx(TabsList, { children: categories.map((cat) => /* @__PURE__ */ jsx(TabsTrigger, { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, cat.id)) }) }),
85246
+ categories.map((cat) => /* @__PURE__ */ jsx(TabsContent, { value: cat.id, className: cat.className, children: /* @__PURE__ */ jsx(
85247
+ "div",
85248
+ {
85249
+ className: cn(
85250
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
85251
+ statsClassName
85252
+ ),
85253
+ children: cat.stats.map((stat, index) => /* @__PURE__ */ jsxs(
85254
+ "div",
84819
85255
  {
84820
85256
  className: cn(
84821
- "text-2xl font-bold md:text-3xl",
84822
- getColorClass(stat.value),
84823
- statValueClassName
85257
+ "flex flex-col items-center justify-center rounded-xl border bg-card p-6",
85258
+ stat.className,
85259
+ statCardClassName
84824
85260
  ),
84825
85261
  children: [
84826
- stat.value,
84827
- stat.suffix
85262
+ /* @__PURE__ */ jsxs("div", { className: "relative mb-4 flex items-center justify-center", children: [
85263
+ /* @__PURE__ */ jsx(
85264
+ CircularProgressIndicator,
85265
+ {
85266
+ value: stat.value,
85267
+ size: 120
85268
+ }
85269
+ ),
85270
+ /* @__PURE__ */ jsx("div", { className: "absolute flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxs(
85271
+ "span",
85272
+ {
85273
+ className: cn(
85274
+ "text-2xl font-bold md:text-3xl",
85275
+ getColorClass(stat.value),
85276
+ statValueClassName
85277
+ ),
85278
+ children: [
85279
+ stat.value,
85280
+ stat.suffix
85281
+ ]
85282
+ }
85283
+ ) })
85284
+ ] }),
85285
+ stat.label && /* @__PURE__ */ jsx(
85286
+ "h3",
85287
+ {
85288
+ className: cn(
85289
+ "text-center text-lg font-semibold md:text-xl",
85290
+ statLabelClassName
85291
+ ),
85292
+ children: stat.label
85293
+ }
85294
+ ),
85295
+ stat.info && /* @__PURE__ */ jsx(
85296
+ "p",
85297
+ {
85298
+ className: cn(
85299
+ "mt-1 text-center text-xs text-muted-foreground md:text-sm",
85300
+ statInfoClassName
85301
+ ),
85302
+ children: stat.info
85303
+ }
85304
+ )
84828
85305
  ]
84829
- }
84830
- ) })
84831
- ] }),
84832
- stat.label && /* @__PURE__ */ jsx("h3", { className: cn("text-center text-lg font-semibold md:text-xl", statLabelClassName), children: stat.label }),
84833
- stat.info && /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-center text-xs text-muted-foreground md:text-sm", statInfoClassName), children: stat.info })
84834
- ]
84835
- },
84836
- index
84837
- )) }) }, cat.id))
84838
- ] })
85306
+ },
85307
+ index
85308
+ ))
85309
+ }
85310
+ ) }, cat.id))
85311
+ ]
85312
+ }
85313
+ )
84839
85314
  ] });
84840
- }, [categoriesSlot, categories, category, tabsClassName, statsClassName, statCardClassName, statValueClassName, statLabelClassName, statInfoClassName]);
85315
+ }, [
85316
+ categoriesSlot,
85317
+ categories,
85318
+ category,
85319
+ tabsClassName,
85320
+ statsClassName,
85321
+ statCardClassName,
85322
+ statValueClassName,
85323
+ statLabelClassName,
85324
+ statInfoClassName
85325
+ ]);
84841
85326
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
84842
85327
  return /* @__PURE__ */ jsx(
84843
85328
  Section,
@@ -84851,8 +85336,32 @@ function StatsCircularProgress({
84851
85336
  children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: [
84852
85337
  hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
84853
85338
  badgeContent,
84854
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
84855
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-3 max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto mt-3 max-w-2xl", descriptionClassName), children: description }))
85339
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
85340
+ "h2",
85341
+ {
85342
+ className: cn(
85343
+ "text-3xl font-bold md:text-4xl",
85344
+ headingClassName
85345
+ ),
85346
+ children: heading
85347
+ }
85348
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
85349
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
85350
+ "p",
85351
+ {
85352
+ className: cn(
85353
+ "mx-auto mt-3 max-w-2xl text-muted-foreground",
85354
+ descriptionClassName
85355
+ ),
85356
+ children: description
85357
+ }
85358
+ ) : /* @__PURE__ */ jsx(
85359
+ "div",
85360
+ {
85361
+ className: cn("mx-auto mt-3 max-w-2xl", descriptionClassName),
85362
+ children: description
85363
+ }
85364
+ ))
84856
85365
  ] }),
84857
85366
  categoriesContent
84858
85367
  ] })
@@ -84864,8 +85373,8 @@ function StatsCardGroup({
84864
85373
  statsSlot,
84865
85374
  avatars,
84866
85375
  avatarsSlot,
84867
- background = "white",
84868
- spacing = "lg",
85376
+ background,
85377
+ spacing,
84869
85378
  pattern,
84870
85379
  patternOpacity,
84871
85380
  patternClassName,
@@ -84879,44 +85388,50 @@ function StatsCardGroup({
84879
85388
  avatarsClassName,
84880
85389
  optixFlowConfig
84881
85390
  }) {
84882
- const renderIcon = useCallback((stat) => {
84883
- if (stat.iconSlot) return stat.iconSlot;
84884
- if (!stat.icon) return null;
84885
- return /* @__PURE__ */ jsx(
84886
- "div",
84887
- {
84888
- className: cn(
84889
- "mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
84890
- statIconClassName
84891
- ),
84892
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
84893
- }
84894
- );
84895
- }, [statIconClassName]);
84896
- const renderAvatars = useCallback((stat) => {
84897
- if (!stat.showAvatars) return null;
84898
- if (avatarsSlot) return avatarsSlot;
84899
- if (!avatars || avatars.length === 0) return null;
84900
- return /* @__PURE__ */ jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
84901
- avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsx(
84902
- Img,
85391
+ const renderIcon = useCallback(
85392
+ (stat) => {
85393
+ if (stat.iconSlot) return stat.iconSlot;
85394
+ if (!stat.icon) return null;
85395
+ return /* @__PURE__ */ jsx(
85396
+ "div",
84903
85397
  {
84904
- src: avatar.src,
84905
- alt: avatar.alt,
84906
85398
  className: cn(
84907
- "h-8 w-8 rounded-full border-2 border-background object-cover",
84908
- avatar.className
85399
+ "mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
85400
+ statIconClassName
84909
85401
  ),
84910
- optixFlowConfig
84911
- },
84912
- avatarIndex
84913
- )),
84914
- avatars.length > 4 && /* @__PURE__ */ 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: [
84915
- "+",
84916
- avatars.length - 4
84917
- ] })
84918
- ] });
84919
- }, [avatarsSlot, avatars, avatarsClassName, optixFlowConfig]);
85402
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
85403
+ }
85404
+ );
85405
+ },
85406
+ [statIconClassName]
85407
+ );
85408
+ const renderAvatars = useCallback(
85409
+ (stat) => {
85410
+ if (!stat.showAvatars) return null;
85411
+ if (avatarsSlot) return avatarsSlot;
85412
+ if (!avatars || avatars.length === 0) return null;
85413
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
85414
+ avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsx(
85415
+ Img,
85416
+ {
85417
+ src: avatar.src,
85418
+ alt: avatar.alt,
85419
+ className: cn(
85420
+ "h-8 w-8 rounded-full border-2 border-background object-cover",
85421
+ avatar.className
85422
+ ),
85423
+ optixFlowConfig
85424
+ },
85425
+ avatarIndex
85426
+ )),
85427
+ avatars.length > 4 && /* @__PURE__ */ 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: [
85428
+ "+",
85429
+ avatars.length - 4
85430
+ ] })
85431
+ ] });
85432
+ },
85433
+ [avatarsSlot, avatars, avatarsClassName, optixFlowConfig]
85434
+ );
84920
85435
  const statsContent = useMemo(() => {
84921
85436
  if (statsSlot) return statsSlot;
84922
85437
  if (!stats || stats.length === 0) return null;
@@ -84946,7 +85461,14 @@ function StatsCardGroup({
84946
85461
  },
84947
85462
  index
84948
85463
  ));
84949
- }, [statsSlot, stats, statValueClassName, statLabelClassName, renderIcon, renderAvatars]);
85464
+ }, [
85465
+ statsSlot,
85466
+ stats,
85467
+ statValueClassName,
85468
+ statLabelClassName,
85469
+ renderIcon,
85470
+ renderAvatars
85471
+ ]);
84950
85472
  return /* @__PURE__ */ jsx(
84951
85473
  Section,
84952
85474
  {
@@ -84996,17 +85518,38 @@ function AnimatedStatItem({
84996
85518
  const iconContent = useMemo(() => {
84997
85519
  if (stat.iconSlot) return stat.iconSlot;
84998
85520
  if (!stat.icon) return null;
84999
- return /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10", iconClassName), children: /* @__PURE__ */ jsx(DynamicIcon, { name: stat.icon, size: 28, className: "text-primary" }) });
85521
+ return /* @__PURE__ */ jsx(
85522
+ "div",
85523
+ {
85524
+ className: cn(
85525
+ "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10",
85526
+ iconClassName
85527
+ ),
85528
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: stat.icon, size: 28, className: "text-primary" })
85529
+ }
85530
+ );
85000
85531
  }, [stat.iconSlot, stat.icon, iconClassName]);
85001
- return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center text-center", stat.className), children: [
85002
- iconContent,
85003
- /* @__PURE__ */ jsxs("div", { className: cn("mb-2 text-4xl font-bold md:text-5xl", valueClassName), children: [
85004
- stat.prefix,
85005
- count,
85006
- stat.suffix
85007
- ] }),
85008
- stat.label && /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground", labelClassName), children: stat.label })
85009
- ] });
85532
+ return /* @__PURE__ */ jsxs(
85533
+ "div",
85534
+ {
85535
+ className: cn("flex flex-col items-center text-center", stat.className),
85536
+ children: [
85537
+ iconContent,
85538
+ /* @__PURE__ */ jsxs(
85539
+ "div",
85540
+ {
85541
+ className: cn("mb-2 text-4xl font-bold md:text-5xl", valueClassName),
85542
+ children: [
85543
+ stat.prefix,
85544
+ count,
85545
+ stat.suffix
85546
+ ]
85547
+ }
85548
+ ),
85549
+ stat.label && /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground", labelClassName), children: stat.label })
85550
+ ]
85551
+ }
85552
+ );
85010
85553
  }
85011
85554
  function StatsAnimatedCounter({
85012
85555
  heading,
@@ -85014,8 +85557,8 @@ function StatsAnimatedCounter({
85014
85557
  stats,
85015
85558
  statsSlot,
85016
85559
  animationDuration = 2e3,
85017
- background = "white",
85018
- spacing = "lg",
85560
+ background,
85561
+ spacing,
85019
85562
  pattern,
85020
85563
  patternOpacity,
85021
85564
  patternClassName,
@@ -85062,7 +85605,15 @@ function StatsAnimatedCounter({
85062
85605
  },
85063
85606
  index
85064
85607
  ));
85065
- }, [statsSlot, stats, animationDuration, isVisible, statValueClassName, statLabelClassName, statIconClassName]);
85608
+ }, [
85609
+ statsSlot,
85610
+ stats,
85611
+ animationDuration,
85612
+ isVisible,
85613
+ statValueClassName,
85614
+ statLabelClassName,
85615
+ statIconClassName
85616
+ ]);
85066
85617
  return /* @__PURE__ */ jsx(
85067
85618
  Section,
85068
85619
  {
@@ -85072,13 +85623,47 @@ function StatsAnimatedCounter({
85072
85623
  patternOpacity,
85073
85624
  patternClassName,
85074
85625
  className,
85075
- children: /* @__PURE__ */ jsxs("div", { ref: sectionRef, className: cn("mx-auto max-w-5xl", containerClassName), children: [
85076
- hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", contentClassName), children: [
85077
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85078
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85079
- ] }),
85080
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("grid gap-8 sm:grid-cols-2 lg:grid-cols-4", statsClassName), children: statsContent })
85081
- ] })
85626
+ children: /* @__PURE__ */ jsxs(
85627
+ "div",
85628
+ {
85629
+ ref: sectionRef,
85630
+ className: cn("mx-auto max-w-5xl", containerClassName),
85631
+ children: [
85632
+ hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", contentClassName), children: [
85633
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
85634
+ "h2",
85635
+ {
85636
+ className: cn(
85637
+ "mb-4 text-3xl font-bold md:text-4xl",
85638
+ headingClassName
85639
+ ),
85640
+ children: heading
85641
+ }
85642
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85643
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
85644
+ "p",
85645
+ {
85646
+ className: cn(
85647
+ "mx-auto max-w-2xl text-muted-foreground",
85648
+ descriptionClassName
85649
+ ),
85650
+ children: description
85651
+ }
85652
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85653
+ ] }),
85654
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx(
85655
+ "div",
85656
+ {
85657
+ className: cn(
85658
+ "grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
85659
+ statsClassName
85660
+ ),
85661
+ children: statsContent
85662
+ }
85663
+ )
85664
+ ]
85665
+ }
85666
+ )
85082
85667
  }
85083
85668
  );
85084
85669
  }
@@ -85345,8 +85930,8 @@ function StatsBarComparison({
85345
85930
  comparisons,
85346
85931
  comparisonsSlot,
85347
85932
  animate = true,
85348
- background = "white",
85349
- spacing = "lg",
85933
+ background,
85934
+ spacing,
85350
85935
  pattern,
85351
85936
  patternOpacity,
85352
85937
  patternClassName,
@@ -85389,29 +85974,64 @@ function StatsBarComparison({
85389
85974
  const comparisonsContent = useMemo(() => {
85390
85975
  if (comparisonsSlot) return comparisonsSlot;
85391
85976
  if (!comparisons || comparisons.length === 0) return null;
85392
- return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxs("div", { className: cn("rounded-xl border bg-card p-6", group.className, groupCardClassName), children: [
85393
- group.title && (typeof group.title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-6 text-lg font-semibold", groupTitleClassName), children: group.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
85394
- /* @__PURE__ */ jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxs("div", { className: bar.className, children: [
85395
- /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
85396
- /* @__PURE__ */ jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
85397
- /* @__PURE__ */ jsx("span", { className: cn("text-sm font-bold", barValueClassName), children: bar.displayValue })
85398
- ] }),
85399
- /* @__PURE__ */ jsx("div", { className: cn("h-3 w-full overflow-hidden rounded-full bg-muted", barTrackClassName), children: /* @__PURE__ */ jsx(
85400
- "div",
85401
- {
85402
- className: cn(
85403
- "h-full rounded-full transition-all duration-1000 ease-out",
85404
- bar.color || "bg-primary"
85405
- ),
85406
- style: {
85407
- width: isVisible ? `${bar.value}%` : "0%",
85408
- transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
85977
+ return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxs(
85978
+ "div",
85979
+ {
85980
+ className: cn(
85981
+ "rounded-xl border bg-card p-6",
85982
+ group.className,
85983
+ groupCardClassName
85984
+ ),
85985
+ children: [
85986
+ group.title && (typeof group.title === "string" ? /* @__PURE__ */ jsx(
85987
+ "h3",
85988
+ {
85989
+ className: cn("mb-6 text-lg font-semibold", groupTitleClassName),
85990
+ children: group.title
85409
85991
  }
85410
- }
85411
- ) })
85412
- ] }, barIndex)) })
85413
- ] }, groupIndex));
85414
- }, [comparisonsSlot, comparisons, isVisible, groupCardClassName, groupTitleClassName, barLabelClassName, barValueClassName, barTrackClassName]);
85992
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
85993
+ /* @__PURE__ */ jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxs("div", { className: bar.className, children: [
85994
+ /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
85995
+ /* @__PURE__ */ jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
85996
+ /* @__PURE__ */ jsx("span", { className: cn("text-sm font-bold", barValueClassName), children: bar.displayValue })
85997
+ ] }),
85998
+ /* @__PURE__ */ jsx(
85999
+ "div",
86000
+ {
86001
+ className: cn(
86002
+ "h-3 w-full overflow-hidden rounded-full bg-muted",
86003
+ barTrackClassName
86004
+ ),
86005
+ children: /* @__PURE__ */ jsx(
86006
+ "div",
86007
+ {
86008
+ className: cn(
86009
+ "h-full rounded-full transition-all duration-1000 ease-out",
86010
+ bar.color || "bg-primary"
86011
+ ),
86012
+ style: {
86013
+ width: isVisible ? `${bar.value}%` : "0%",
86014
+ transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
86015
+ }
86016
+ }
86017
+ )
86018
+ }
86019
+ )
86020
+ ] }, barIndex)) })
86021
+ ]
86022
+ },
86023
+ groupIndex
86024
+ ));
86025
+ }, [
86026
+ comparisonsSlot,
86027
+ comparisons,
86028
+ isVisible,
86029
+ groupCardClassName,
86030
+ groupTitleClassName,
86031
+ barLabelClassName,
86032
+ barValueClassName,
86033
+ barTrackClassName
86034
+ ]);
85415
86035
  const hasHeaderContent = !!(badge || badgeSlot || heading || description);
85416
86036
  return /* @__PURE__ */ jsx(
85417
86037
  Section,
@@ -85422,14 +86042,39 @@ function StatsBarComparison({
85422
86042
  patternOpacity,
85423
86043
  patternClassName,
85424
86044
  className,
85425
- children: /* @__PURE__ */ jsxs("div", { ref: sectionRef, className: cn("mx-auto max-w-4xl", containerClassName), children: [
85426
- hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
85427
- badgeContent,
85428
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
85429
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
85430
- ] }),
85431
- (comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
85432
- ] })
86045
+ children: /* @__PURE__ */ jsxs(
86046
+ "div",
86047
+ {
86048
+ ref: sectionRef,
86049
+ className: cn("mx-auto max-w-4xl", containerClassName),
86050
+ children: [
86051
+ hasHeaderContent && /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
86052
+ badgeContent,
86053
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
86054
+ "h2",
86055
+ {
86056
+ className: cn(
86057
+ "mb-4 text-3xl font-bold md:text-4xl",
86058
+ headingClassName
86059
+ ),
86060
+ children: heading
86061
+ }
86062
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
86063
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
86064
+ "p",
86065
+ {
86066
+ className: cn(
86067
+ "mx-auto max-w-2xl text-muted-foreground",
86068
+ descriptionClassName
86069
+ ),
86070
+ children: description
86071
+ }
86072
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
86073
+ ] }),
86074
+ (comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
86075
+ ]
86076
+ }
86077
+ )
85433
86078
  }
85434
86079
  );
85435
86080
  }
@@ -102448,8 +103093,7 @@ var BLOCK_REGISTRY = {
102448
103093
  exampleUsage: `<BannerPromoCta
102449
103094
  message="Summer Sale"
102450
103095
  discount="Up to 70% off"
102451
- link="/sale"
102452
- linkText="Shop Now"
103096
+ actions={[{ label: "Shop Now", href: "/sale" }]}
102453
103097
  />`.trim()
102454
103098
  },
102455
103099
  "banner-countdown-sale": {
@@ -102518,10 +103162,9 @@ var BLOCK_REGISTRY = {
102518
103162
  component: BannerAnnouncementDismissible,
102519
103163
  props: "BannerAnnouncementDismissibleProps",
102520
103164
  exampleUsage: `<BannerAnnouncementDismissible
102521
- icon="mynaui/rocket"
103165
+ iconName="mynaui/rocket"
102522
103166
  message="New feature: AI-powered analytics is now live!"
102523
- buttonText="Try It Now"
102524
- buttonLink="/features/analytics"
103167
+ actions={[{ label: "Try It Now", href: "/features/analytics", variant: "secondary", size: "sm" }]}
102525
103168
  onDismiss={() => console.log('Banner dismissed')}
102526
103169
  />`.trim()
102527
103170
  },
@@ -102546,8 +103189,7 @@ var BLOCK_REGISTRY = {
102546
103189
  exampleUsage: `<BannerPrivacyNotice
102547
103190
  title="Privacy Policy Updated"
102548
103191
  description="We've made changes to how we handle your data."
102549
- linkText="Read More"
102550
- linkUrl="/privacy"
103192
+ actions={[{ label: "Read More", href: "/privacy", variant: "link" }]}
102551
103193
  onDismiss={() => console.log('Dismissed')}
102552
103194
  />`.trim()
102553
103195
  },
@@ -102571,8 +103213,7 @@ var BLOCK_REGISTRY = {
102571
103213
  exampleUsage: `<BannerSurveyIncentive
102572
103214
  title="Share your feedback!"
102573
103215
  description="Complete our quick survey and receive a 15% discount code."
102574
- buttonText="Start Survey"
102575
- buttonLink="/survey"
103216
+ actions={[{ label: "Start Survey", href: "/survey", size: "sm" }]}
102576
103217
  onDismiss={() => console.log('Dismissed')}
102577
103218
  />`.trim()
102578
103219
  },
@@ -102595,15 +103236,14 @@ var BLOCK_REGISTRY = {
102595
103236
  props: "BannerSocialFollowProps",
102596
103237
  exampleUsage: `<BannerSocialFollow
102597
103238
  message="Join our community of 50,000+ developers!"
102598
- buttonText="Follow Now"
102599
- buttonLink="https://twitter.com/example"
103239
+ actions={[{ label: "Follow Now", href: "https://twitter.com/example", variant: "secondary", size: "sm" }]}
102600
103240
  onDismiss={() => console.log('Dismissed')}
102601
103241
  />`.trim()
102602
103242
  },
102603
103243
  "banner-gdpr-rights": {
102604
103244
  id: "banner-gdpr-rights",
102605
103245
  name: "Banner GDPR Rights",
102606
- 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.",
103246
+ 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.",
102607
103247
  semanticTags: [
102608
103248
  "banner",
102609
103249
  "gdpr",
@@ -102622,8 +103262,7 @@ var BLOCK_REGISTRY = {
102622
103262
  exampleUsage: `<BannerGdprRights
102623
103263
  title="Your Privacy Rights"
102624
103264
  description="You can request access to or deletion of your personal data at any time."
102625
- linkText="Manage Data"
102626
- linkUrl="/privacy/manage"
103265
+ actions={[{ label: "Manage Data", href: "/privacy/manage", variant: "link" }]}
102627
103266
  onDismiss={() => console.log('Dismissed')}
102628
103267
  />`.trim()
102629
103268
  },
@@ -102647,8 +103286,7 @@ var BLOCK_REGISTRY = {
102647
103286
  exampleUsage: `<BannerEventPromo
102648
103287
  eventName="TechSummit 2024"
102649
103288
  eventDetails="Join us in San Francisco from Sept 15 - 17 for the biggest tech event of the year."
102650
- buttonText="Get Tickets"
102651
- buttonLink="/events/techsummit"
103289
+ actions={[{ label: "Get Tickets", href: "/events/techsummit", variant: "ghost", size: "sm" }]}
102652
103290
  />`.trim()
102653
103291
  },
102654
103292
  "banner-floating-offer": {
@@ -102673,10 +103311,9 @@ var BLOCK_REGISTRY = {
102673
103311
  exampleUsage: `<BannerFloatingOffer
102674
103312
  offerTitle="Black Friday Special"
102675
103313
  offerDescription="Save 60% on annual plans - ends tonight!"
102676
- buttonText="Claim Offer"
102677
- buttonLink="/pricing"
103314
+ actions={[{ label: "Claim Offer", href: "/pricing", variant: "secondary", size: "sm" }]}
102678
103315
  dismissible={true}
102679
- onDismiss={() => console.log('Dismissed')}
103316
+ onOpenChange={(open) => console.log('Visibility:', open)}
102680
103317
  />`.trim()
102681
103318
  },
102682
103319
  // Industries blocks