@momo-webplatform/mobase-next 1.0.1

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 (316) hide show
  1. package/README.md +136 -0
  2. package/dist/chunk-7LRQ2WLZ.mjs +1 -0
  3. package/dist/components/blocks/BlogSection/BlogSection.d.mts +17 -0
  4. package/dist/components/blocks/BlogSection/BlogSection.mjs +1 -0
  5. package/dist/components/blocks/BlogSection/BlogSectionTemplate.d.mts +15 -0
  6. package/dist/components/blocks/BlogSection/BlogSectionTemplate.mjs +1 -0
  7. package/dist/components/blocks/BlogSection/index.d.mts +14 -0
  8. package/dist/components/blocks/BlogSection/index.mjs +1 -0
  9. package/dist/components/blocks/BlogSection/templates/BlogSectionTemplateOne.d.mts +17 -0
  10. package/dist/components/blocks/BlogSection/templates/BlogSectionTemplateOne.mjs +1 -0
  11. package/dist/components/blocks/BlogSection/templates/BlogSectionTemplateTwo.d.mts +17 -0
  12. package/dist/components/blocks/BlogSection/templates/BlogSectionTemplateTwo.mjs +1 -0
  13. package/dist/components/blocks/BlogSection/utils.d.mts +49 -0
  14. package/dist/components/blocks/BlogSection/utils.mjs +0 -0
  15. package/dist/components/blocks/CTASection/CTASection.d.mts +17 -0
  16. package/dist/components/blocks/CTASection/CTASection.mjs +1 -0
  17. package/dist/components/blocks/CTASection/CTASectionTemplate.d.mts +18 -0
  18. package/dist/components/blocks/CTASection/CTASectionTemplate.mjs +1 -0
  19. package/dist/components/blocks/CTASection/index.d.mts +14 -0
  20. package/dist/components/blocks/CTASection/index.mjs +1 -0
  21. package/dist/components/blocks/CTASection/utils.d.mts +60 -0
  22. package/dist/components/blocks/CTASection/utils.mjs +0 -0
  23. package/dist/components/blocks/FAQSection/FAQSection.d.mts +17 -0
  24. package/dist/components/blocks/FAQSection/FAQSection.mjs +1 -0
  25. package/dist/components/blocks/FAQSection/FAQTemplate.d.mts +18 -0
  26. package/dist/components/blocks/FAQSection/FAQTemplate.mjs +1 -0
  27. package/dist/components/blocks/FAQSection/index.d.mts +14 -0
  28. package/dist/components/blocks/FAQSection/index.mjs +1 -0
  29. package/dist/components/blocks/FAQSection/utils.d.mts +36 -0
  30. package/dist/components/blocks/FAQSection/utils.mjs +0 -0
  31. package/dist/components/blocks/FeatureSection/FeatureSection.d.mts +17 -0
  32. package/dist/components/blocks/FeatureSection/FeatureSection.mjs +1 -0
  33. package/dist/components/blocks/FeatureSection/FeatureTemlates.d.mts +29 -0
  34. package/dist/components/blocks/FeatureSection/FeatureTemlates.mjs +1 -0
  35. package/dist/components/blocks/FeatureSection/index.d.mts +14 -0
  36. package/dist/components/blocks/FeatureSection/index.mjs +1 -0
  37. package/dist/components/blocks/FeatureSection/utils.d.mts +77 -0
  38. package/dist/components/blocks/FeatureSection/utils.mjs +0 -0
  39. package/dist/components/blocks/GiftListSection/GiftListSection.d.mts +17 -0
  40. package/dist/components/blocks/GiftListSection/GiftListSection.mjs +1 -0
  41. package/dist/components/blocks/GiftListSection/GiftListSectionTemplate.d.mts +17 -0
  42. package/dist/components/blocks/GiftListSection/GiftListSectionTemplate.mjs +1 -0
  43. package/dist/components/blocks/GiftListSection/index.d.mts +14 -0
  44. package/dist/components/blocks/GiftListSection/index.mjs +1 -0
  45. package/dist/components/blocks/GiftListSection/utils.d.mts +81 -0
  46. package/dist/components/blocks/GiftListSection/utils.mjs +0 -0
  47. package/dist/components/blocks/HeroSection/HeroSection.d.mts +18 -0
  48. package/dist/components/blocks/HeroSection/HeroSection.mjs +1 -0
  49. package/dist/components/blocks/HeroSection/HeroSectionFeatures.d.mts +31 -0
  50. package/dist/components/blocks/HeroSection/HeroSectionFeatures.mjs +1 -0
  51. package/dist/components/blocks/HeroSection/HeroSectionMedia.d.mts +17 -0
  52. package/dist/components/blocks/HeroSection/HeroSectionMedia.mjs +1 -0
  53. package/dist/components/blocks/HeroSection/HeroSectionStats.d.mts +19 -0
  54. package/dist/components/blocks/HeroSection/HeroSectionStats.mjs +1 -0
  55. package/dist/components/blocks/HeroSection/HeroSectionTemplate.d.mts +19 -0
  56. package/dist/components/blocks/HeroSection/HeroSectionTemplate.mjs +1 -0
  57. package/dist/components/blocks/HeroSection/index.d.mts +14 -0
  58. package/dist/components/blocks/HeroSection/index.mjs +1 -0
  59. package/dist/components/blocks/HeroSection/utils.d.mts +84 -0
  60. package/dist/components/blocks/HeroSection/utils.mjs +1 -0
  61. package/dist/components/blocks/HowItWorksSection/HowItWorksSection.d.mts +17 -0
  62. package/dist/components/blocks/HowItWorksSection/HowItWorksSection.mjs +1 -0
  63. package/dist/components/blocks/HowItWorksSection/HowItWorksSectionTemplate.d.mts +19 -0
  64. package/dist/components/blocks/HowItWorksSection/HowItWorksSectionTemplate.mjs +1 -0
  65. package/dist/components/blocks/HowItWorksSection/index.d.mts +14 -0
  66. package/dist/components/blocks/HowItWorksSection/index.mjs +1 -0
  67. package/dist/components/blocks/HowItWorksSection/utils.d.mts +47 -0
  68. package/dist/components/blocks/HowItWorksSection/utils.mjs +0 -0
  69. package/dist/components/blocks/MetricsSection/MetricsSection.d.mts +17 -0
  70. package/dist/components/blocks/MetricsSection/MetricsSection.mjs +1 -0
  71. package/dist/components/blocks/MetricsSection/MetricsSectionTemplate.d.mts +15 -0
  72. package/dist/components/blocks/MetricsSection/MetricsSectionTemplate.mjs +1 -0
  73. package/dist/components/blocks/MetricsSection/index.d.mts +14 -0
  74. package/dist/components/blocks/MetricsSection/index.mjs +1 -0
  75. package/dist/components/blocks/MetricsSection/template/MetricsSectionTemplateOne.d.mts +17 -0
  76. package/dist/components/blocks/MetricsSection/template/MetricsSectionTemplateOne.mjs +1 -0
  77. package/dist/components/blocks/MetricsSection/template/MetricsSectionTemplateTwo.d.mts +17 -0
  78. package/dist/components/blocks/MetricsSection/template/MetricsSectionTemplateTwo.mjs +1 -0
  79. package/dist/components/blocks/MetricsSection/utils.d.mts +38 -0
  80. package/dist/components/blocks/MetricsSection/utils.mjs +0 -0
  81. package/dist/components/blocks/NewsSection/NewsSection.d.mts +17 -0
  82. package/dist/components/blocks/NewsSection/NewsSection.mjs +1 -0
  83. package/dist/components/blocks/NewsSection/NewsSectionTemplate.d.mts +17 -0
  84. package/dist/components/blocks/NewsSection/NewsSectionTemplate.mjs +1 -0
  85. package/dist/components/blocks/NewsSection/index.d.mts +14 -0
  86. package/dist/components/blocks/NewsSection/index.mjs +1 -0
  87. package/dist/components/blocks/NewsSection/utils.d.mts +64 -0
  88. package/dist/components/blocks/NewsSection/utils.mjs +0 -0
  89. package/dist/components/blocks/SocialProofSection/SocialProofSection.d.mts +17 -0
  90. package/dist/components/blocks/SocialProofSection/SocialProofSection.mjs +1 -0
  91. package/dist/components/blocks/SocialProofSection/SocialProofTemplates.d.mts +17 -0
  92. package/dist/components/blocks/SocialProofSection/SocialProofTemplates.mjs +1 -0
  93. package/dist/components/blocks/SocialProofSection/index.d.mts +14 -0
  94. package/dist/components/blocks/SocialProofSection/index.mjs +1 -0
  95. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate1.d.mts +17 -0
  96. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate1.mjs +1 -0
  97. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate2.d.mts +17 -0
  98. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate2.mjs +1 -0
  99. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate3.d.mts +17 -0
  100. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate3.mjs +1 -0
  101. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate4.d.mts +17 -0
  102. package/dist/components/blocks/SocialProofSection/templates/SocialProofTemplate4.mjs +18 -0
  103. package/dist/components/blocks/SocialProofSection/utils.d.mts +31 -0
  104. package/dist/components/blocks/SocialProofSection/utils.mjs +0 -0
  105. package/dist/components/blocks/TestimonialSection/TestimonialSection.d.mts +17 -0
  106. package/dist/components/blocks/TestimonialSection/TestimonialSection.mjs +1 -0
  107. package/dist/components/blocks/TestimonialSection/index.d.mts +14 -0
  108. package/dist/components/blocks/TestimonialSection/index.mjs +1 -0
  109. package/dist/components/blocks/TestimonialSection/shared.d.mts +29 -0
  110. package/dist/components/blocks/TestimonialSection/shared.mjs +1 -0
  111. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateOne.d.mts +17 -0
  112. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateOne.mjs +1 -0
  113. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateThree.d.mts +17 -0
  114. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateThree.mjs +1 -0
  115. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateTwo.d.mts +17 -0
  116. package/dist/components/blocks/TestimonialSection/templates/TestimonialTemplateTwo.mjs +5 -0
  117. package/dist/components/blocks/TestimonialSection/utils.d.mts +37 -0
  118. package/dist/components/blocks/TestimonialSection/utils.mjs +1 -0
  119. package/dist/components/blocks/action-button/action-button.d.mts +15 -0
  120. package/dist/components/blocks/action-button/action-button.mjs +1 -0
  121. package/dist/components/blocks/action-button/index.d.mts +12 -0
  122. package/dist/components/blocks/action-button/index.mjs +1 -0
  123. package/dist/components/blocks/action-button/utils.d.mts +40 -0
  124. package/dist/components/blocks/action-button/utils.mjs +1 -0
  125. package/dist/components/blocks/common-blocks/common-blocks.d.mts +18 -0
  126. package/dist/components/blocks/common-blocks/common-blocks.mjs +1 -0
  127. package/dist/components/blocks/common-blocks/index.d.mts +13 -0
  128. package/dist/components/blocks/common-blocks/index.mjs +1 -0
  129. package/dist/components/blocks/common-blocks/utils.d.mts +90 -0
  130. package/dist/components/blocks/common-blocks/utils.mjs +0 -0
  131. package/dist/components/blocks/dialog-qr/DialogQr.d.mts +42 -0
  132. package/dist/components/blocks/dialog-qr/DialogQr.mjs +70 -0
  133. package/dist/components/blocks/dialog-qr/index.d.mts +8 -0
  134. package/dist/components/blocks/dialog-qr/index.mjs +1 -0
  135. package/dist/components/blocks/footer/defaults.d.mts +39 -0
  136. package/dist/components/blocks/footer/defaults.mjs +1 -0
  137. package/dist/components/blocks/footer/footer-content.d.mts +6 -0
  138. package/dist/components/blocks/footer/footer-content.mjs +5 -0
  139. package/dist/components/blocks/footer/footer.d.mts +6 -0
  140. package/dist/components/blocks/footer/footer.mjs +1 -0
  141. package/dist/components/blocks/footer/index.d.mts +5 -0
  142. package/dist/components/blocks/footer/index.mjs +1 -0
  143. package/dist/components/blocks/footer/types.d.mts +27 -0
  144. package/dist/components/blocks/footer/types.mjs +0 -0
  145. package/dist/components/blocks/header-navigation/header-navigation.d.mts +7 -0
  146. package/dist/components/blocks/header-navigation/header-navigation.mjs +5 -0
  147. package/dist/components/blocks/header-navigation/index.d.mts +4 -0
  148. package/dist/components/blocks/header-navigation/index.mjs +1 -0
  149. package/dist/components/blocks/header-navigation/list-item-mobile.d.mts +14 -0
  150. package/dist/components/blocks/header-navigation/list-item-mobile.mjs +1 -0
  151. package/dist/components/blocks/header-navigation/list-item.d.mts +14 -0
  152. package/dist/components/blocks/header-navigation/list-item.mjs +1 -0
  153. package/dist/components/blocks/header-navigation/mobile-menu.d.mts +11 -0
  154. package/dist/components/blocks/header-navigation/mobile-menu.mjs +1 -0
  155. package/dist/components/blocks/header-navigation/nav-items-mobile.d.mts +10 -0
  156. package/dist/components/blocks/header-navigation/nav-items-mobile.mjs +1 -0
  157. package/dist/components/blocks/header-navigation/nav-items.d.mts +11 -0
  158. package/dist/components/blocks/header-navigation/nav-items.mjs +1 -0
  159. package/dist/components/blocks/header-navigation/types.d.mts +44 -0
  160. package/dist/components/blocks/header-navigation/types.mjs +0 -0
  161. package/dist/components/blocks/heading-group/HeadingGroup.d.mts +97 -0
  162. package/dist/components/blocks/heading-group/HeadingGroup.mjs +1 -0
  163. package/dist/components/blocks/heading-group/index.d.mts +3 -0
  164. package/dist/components/blocks/heading-group/index.mjs +1 -0
  165. package/dist/components/mobase/accordion.d.mts +9 -0
  166. package/dist/components/mobase/accordion.mjs +1 -0
  167. package/dist/components/mobase/alert-dialog.d.mts +24 -0
  168. package/dist/components/mobase/alert-dialog.mjs +1 -0
  169. package/dist/components/mobase/alert.d.mts +14 -0
  170. package/dist/components/mobase/alert.mjs +1 -0
  171. package/dist/components/mobase/aspect-ratio.d.mts +8 -0
  172. package/dist/components/mobase/aspect-ratio.mjs +1 -0
  173. package/dist/components/mobase/autocomplete.d.mts +34 -0
  174. package/dist/components/mobase/autocomplete.mjs +1 -0
  175. package/dist/components/mobase/avatar.d.mts +14 -0
  176. package/dist/components/mobase/avatar.mjs +1 -0
  177. package/dist/components/mobase/badge.d.mts +15 -0
  178. package/dist/components/mobase/badge.mjs +1 -0
  179. package/dist/components/mobase/breadcrumb.d.mts +13 -0
  180. package/dist/components/mobase/breadcrumb.mjs +1 -0
  181. package/dist/components/mobase/button-group.d.mts +16 -0
  182. package/dist/components/mobase/button-group.mjs +1 -0
  183. package/dist/components/mobase/button.d.mts +22 -0
  184. package/dist/components/mobase/button.mjs +1 -0
  185. package/dist/components/mobase/calendar.d.mts +16 -0
  186. package/dist/components/mobase/calendar.mjs +1 -0
  187. package/dist/components/mobase/card.d.mts +14 -0
  188. package/dist/components/mobase/card.mjs +1 -0
  189. package/dist/components/mobase/carousel.d.mts +37 -0
  190. package/dist/components/mobase/carousel.mjs +1 -0
  191. package/dist/components/mobase/checkbox.d.mts +7 -0
  192. package/dist/components/mobase/checkbox.mjs +1 -0
  193. package/dist/components/mobase/close-button.d.mts +17 -0
  194. package/dist/components/mobase/close-button.mjs +1 -0
  195. package/dist/components/mobase/combobox.d.mts +29 -0
  196. package/dist/components/mobase/combobox.mjs +1 -0
  197. package/dist/components/mobase/command.d.mts +31 -0
  198. package/dist/components/mobase/command.mjs +1 -0
  199. package/dist/components/mobase/date-picker.d.mts +46 -0
  200. package/dist/components/mobase/date-picker.mjs +1 -0
  201. package/dist/components/mobase/dialog.d.mts +41 -0
  202. package/dist/components/mobase/dialog.mjs +1 -0
  203. package/dist/components/mobase/drawer.d.mts +46 -0
  204. package/dist/components/mobase/drawer.mjs +1 -0
  205. package/dist/components/mobase/dropdown-menu.d.mts +33 -0
  206. package/dist/components/mobase/dropdown-menu.mjs +1 -0
  207. package/dist/components/mobase/empty.d.mts +20 -0
  208. package/dist/components/mobase/empty.mjs +1 -0
  209. package/dist/components/mobase/field.d.mts +30 -0
  210. package/dist/components/mobase/field.mjs +1 -0
  211. package/dist/components/mobase/form.d.mts +7 -0
  212. package/dist/components/mobase/form.mjs +1 -0
  213. package/dist/components/mobase/hitbox.d.mts +19 -0
  214. package/dist/components/mobase/hitbox.mjs +1 -0
  215. package/dist/components/mobase/horizontal-scroll.d.mts +24 -0
  216. package/dist/components/mobase/horizontal-scroll.mjs +1 -0
  217. package/dist/components/mobase/infinite-slider.d.mts +19 -0
  218. package/dist/components/mobase/infinite-slider.mjs +1 -0
  219. package/dist/components/mobase/input-group.d.mts +27 -0
  220. package/dist/components/mobase/input-group.mjs +1 -0
  221. package/dist/components/mobase/input-search.d.mts +8 -0
  222. package/dist/components/mobase/input-search.mjs +1 -0
  223. package/dist/components/mobase/input.d.mts +34 -0
  224. package/dist/components/mobase/input.mjs +1 -0
  225. package/dist/components/mobase/item.d.mts +27 -0
  226. package/dist/components/mobase/item.mjs +1 -0
  227. package/dist/components/mobase/kbd.d.mts +6 -0
  228. package/dist/components/mobase/kbd.mjs +1 -0
  229. package/dist/components/mobase/label.d.mts +6 -0
  230. package/dist/components/mobase/label.mjs +1 -0
  231. package/dist/components/mobase/logo.d.mts +26 -0
  232. package/dist/components/mobase/logo.mjs +1 -0
  233. package/dist/components/mobase/logos-carousel.d.mts +15 -0
  234. package/dist/components/mobase/logos-carousel.mjs +27 -0
  235. package/dist/components/mobase/marquee.d.mts +16 -0
  236. package/dist/components/mobase/marquee.mjs +1 -0
  237. package/dist/components/mobase/native-select.d.mts +11 -0
  238. package/dist/components/mobase/native-select.mjs +1 -0
  239. package/dist/components/mobase/navigation-menu.d.mts +15 -0
  240. package/dist/components/mobase/navigation-menu.mjs +1 -0
  241. package/dist/components/mobase/pagination.d.mts +23 -0
  242. package/dist/components/mobase/pagination.mjs +1 -0
  243. package/dist/components/mobase/popover.d.mts +12 -0
  244. package/dist/components/mobase/popover.mjs +1 -0
  245. package/dist/components/mobase/progress.d.mts +10 -0
  246. package/dist/components/mobase/progress.mjs +1 -0
  247. package/dist/components/mobase/radio-group.d.mts +10 -0
  248. package/dist/components/mobase/radio-group.mjs +1 -0
  249. package/dist/components/mobase/scroll-area.d.mts +11 -0
  250. package/dist/components/mobase/scroll-area.mjs +1 -0
  251. package/dist/components/mobase/select.d.mts +21 -0
  252. package/dist/components/mobase/select.mjs +1 -0
  253. package/dist/components/mobase/separator.d.mts +6 -0
  254. package/dist/components/mobase/separator.mjs +1 -0
  255. package/dist/components/mobase/skeleton.d.mts +5 -0
  256. package/dist/components/mobase/skeleton.mjs +1 -0
  257. package/dist/components/mobase/slider.d.mts +6 -0
  258. package/dist/components/mobase/slider.mjs +1 -0
  259. package/dist/components/mobase/sliding-number.d.mts +10 -0
  260. package/dist/components/mobase/sliding-number.mjs +1 -0
  261. package/dist/components/mobase/spinner.d.mts +12 -0
  262. package/dist/components/mobase/spinner.mjs +1 -0
  263. package/dist/components/mobase/switch.d.mts +8 -0
  264. package/dist/components/mobase/switch.mjs +1 -0
  265. package/dist/components/mobase/table.d.mts +13 -0
  266. package/dist/components/mobase/table.mjs +1 -0
  267. package/dist/components/mobase/tabs.d.mts +14 -0
  268. package/dist/components/mobase/tabs.mjs +1 -0
  269. package/dist/components/mobase/text-effect.d.mts +30 -0
  270. package/dist/components/mobase/text-effect.mjs +2 -0
  271. package/dist/components/mobase/textarea.d.mts +10 -0
  272. package/dist/components/mobase/textarea.mjs +1 -0
  273. package/dist/components/mobase/toast.d.mts +14 -0
  274. package/dist/components/mobase/toast.mjs +1 -0
  275. package/dist/components/mobase/tooltip.d.mts +9 -0
  276. package/dist/components/mobase/tooltip.mjs +1 -0
  277. package/dist/hooks/use-click-outside.d.mts +6 -0
  278. package/dist/hooks/use-click-outside.mjs +1 -0
  279. package/dist/hooks/use-copy-to-clipboard.d.mts +9 -0
  280. package/dist/hooks/use-copy-to-clipboard.mjs +1 -0
  281. package/dist/hooks/use-event-callback.d.mts +19 -0
  282. package/dist/hooks/use-event-callback.mjs +1 -0
  283. package/dist/hooks/use-event-listener.d.mts +8 -0
  284. package/dist/hooks/use-event-listener.mjs +1 -0
  285. package/dist/hooks/use-is-client.d.mts +3 -0
  286. package/dist/hooks/use-is-client.mjs +1 -0
  287. package/dist/hooks/use-is-momo-app.d.mts +3 -0
  288. package/dist/hooks/use-is-momo-app.mjs +1 -0
  289. package/dist/hooks/use-is-touch-device.d.mts +7 -0
  290. package/dist/hooks/use-is-touch-device.mjs +1 -0
  291. package/dist/hooks/use-isomorphic-layout-effect.d.mts +5 -0
  292. package/dist/hooks/use-isomorphic-layout-effect.mjs +1 -0
  293. package/dist/hooks/use-local-storage.d.mts +5 -0
  294. package/dist/hooks/use-local-storage.mjs +1 -0
  295. package/dist/hooks/use-mobile.d.mts +3 -0
  296. package/dist/hooks/use-mobile.mjs +1 -0
  297. package/dist/hooks/use-window-size.d.mts +11 -0
  298. package/dist/hooks/use-window-size.mjs +1 -0
  299. package/dist/index.d.mts +137 -0
  300. package/dist/index.mjs +1 -0
  301. package/dist/lib/legacy-button-variant.d.mts +13 -0
  302. package/dist/lib/legacy-button-variant.mjs +1 -0
  303. package/dist/lib/media-ratio.d.mts +6 -0
  304. package/dist/lib/media-ratio.mjs +1 -0
  305. package/dist/lib/plain-text-from-html.d.mts +6 -0
  306. package/dist/lib/plain-text-from-html.mjs +1 -0
  307. package/dist/lib/qr-image-url.d.mts +13 -0
  308. package/dist/lib/qr-image-url.mjs +1 -0
  309. package/dist/lib/scroll-to-selector.d.mts +9 -0
  310. package/dist/lib/scroll-to-selector.mjs +1 -0
  311. package/dist/lib/testimonial-avatar.d.mts +6 -0
  312. package/dist/lib/testimonial-avatar.mjs +1 -0
  313. package/dist/lib/utils.d.mts +5 -0
  314. package/dist/lib/utils.mjs +1 -0
  315. package/package.json +68 -0
  316. package/src/styles/globals.css +456 -0
@@ -0,0 +1,14 @@
1
+ export { HowItWorksSection } from './HowItWorksSection.mjs';
2
+ export { HowItWorksData, HowItWorksSectionProps } from './utils.mjs';
3
+ import 'react/jsx-runtime';
4
+ import '../common-blocks/utils.mjs';
5
+ import '../action-button/utils.mjs';
6
+ import 'react';
7
+ import '../../mobase/button.mjs';
8
+ import 'class-variance-authority/types';
9
+ import '@base-ui/react/button';
10
+ import 'class-variance-authority';
11
+ import '../dialog-qr/DialogQr.mjs';
12
+ import '../../mobase/dialog.mjs';
13
+ import '@base-ui/react/dialog';
14
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{HowItWorksSection as r}from"./HowItWorksSection";export{r as HowItWorksSection};
@@ -0,0 +1,47 @@
1
+ import { SectionBlockProps, HeadingBlockProps, ButtonsBlockProps } from '../common-blocks/utils.mjs';
2
+ import '../action-button/utils.mjs';
3
+ import 'react';
4
+ import '../../mobase/button.mjs';
5
+ import 'react/jsx-runtime';
6
+ import 'class-variance-authority/types';
7
+ import '@base-ui/react/button';
8
+ import 'class-variance-authority';
9
+ import '../dialog-qr/DialogQr.mjs';
10
+ import '../../mobase/dialog.mjs';
11
+ import '@base-ui/react/dialog';
12
+ import '@base-ui/react/use-render';
13
+
14
+ interface HowItWorksData {
15
+ /**
16
+ * Step icon/image source URL or raw SVG string.
17
+ */
18
+ image?: string | React.ReactElement;
19
+ /**
20
+ * Step title.
21
+ */
22
+ title: string;
23
+ /**
24
+ * Step description.
25
+ */
26
+ description?: string;
27
+ }
28
+ interface HowItWorksSectionProps extends SectionBlockProps {
29
+ /**
30
+ * Template variant.
31
+ */
32
+ template?: 1 | 2 | 3;
33
+ /**
34
+ * Heading content.
35
+ */
36
+ dataHeading?: HeadingBlockProps;
37
+ /**
38
+ * Steps data list.
39
+ */
40
+ dataHowItWorks?: HowItWorksData[];
41
+ /**
42
+ * Optional CTA button group.
43
+ */
44
+ dataButtons?: ButtonsBlockProps;
45
+ }
46
+
47
+ export type { HowItWorksData, HowItWorksSectionProps };
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { MetricsSectionProps } from './utils.mjs';
3
+ import '../common-blocks/utils.mjs';
4
+ import '../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../dialog-qr/DialogQr.mjs';
11
+ import '../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const MetricsSection: ({ idSection, dataHeading, dataMetrics, dataButtons, background, className, template, }: MetricsSectionProps) => react_jsx_runtime.JSX.Element;
16
+
17
+ export { MetricsSection };
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{Fragment as l,jsx as o}from"react/jsx-runtime";import{cn as p}from"../../../lib/utils";import{SectionBlock as d}from"../common-blocks/common-blocks";import{MetricsSectionTemplateOne as c,MetricsSectionTemplateTwo as m}from"./MetricsSectionTemplate";const M=({dataHeading:t,dataMetrics:e,template:n,dataButtons:r})=>{switch(n){case 1:return o(c,{dataMetrics:e,dataButtons:r,dataHeading:t});case 2:return o(m,{dataMetrics:e,dataButtons:r,dataHeading:t});default:return o(c,{dataMetrics:e,dataButtons:r,dataHeading:t})}},S=({dataHeading:t,dataMetrics:e,template:n,dataButtons:r})=>o(l,{children:M({dataHeading:t,dataMetrics:e,template:n,dataButtons:r})}),B=({idSection:t,dataHeading:e,dataMetrics:n=[],dataButtons:r,background:i,className:a,template:s})=>o(d,{className:p(a),background:i,idSection:t,children:o(S,{dataHeading:e,dataMetrics:n,dataButtons:r,template:s})});export{B as MetricsSection};
@@ -0,0 +1,15 @@
1
+ export { MetricsSectionTemplateOne } from './template/MetricsSectionTemplateOne.mjs';
2
+ export { MetricsSectionTemplateTwo } from './template/MetricsSectionTemplateTwo.mjs';
3
+ import 'react/jsx-runtime';
4
+ import './utils.mjs';
5
+ import '../common-blocks/utils.mjs';
6
+ import '../action-button/utils.mjs';
7
+ import 'react';
8
+ import '../../mobase/button.mjs';
9
+ import 'class-variance-authority/types';
10
+ import '@base-ui/react/button';
11
+ import 'class-variance-authority';
12
+ import '../dialog-qr/DialogQr.mjs';
13
+ import '../../mobase/dialog.mjs';
14
+ import '@base-ui/react/dialog';
15
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{MetricsSectionTemplateOne as e}from"./template/MetricsSectionTemplateOne";import{MetricsSectionTemplateTwo as t}from"./template/MetricsSectionTemplateTwo";export{e as MetricsSectionTemplateOne,t as MetricsSectionTemplateTwo};
@@ -0,0 +1,14 @@
1
+ export { MetricsSection } from './MetricsSection.mjs';
2
+ export { MetricsSectionProps } from './utils.mjs';
3
+ import 'react/jsx-runtime';
4
+ import '../common-blocks/utils.mjs';
5
+ import '../action-button/utils.mjs';
6
+ import 'react';
7
+ import '../../mobase/button.mjs';
8
+ import 'class-variance-authority/types';
9
+ import '@base-ui/react/button';
10
+ import 'class-variance-authority';
11
+ import '../dialog-qr/DialogQr.mjs';
12
+ import '../../mobase/dialog.mjs';
13
+ import '@base-ui/react/dialog';
14
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{MetricsSection as o}from"./MetricsSection";export{o as MetricsSection};
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { MetricsSectionProps } from '../utils.mjs';
3
+ import '../../common-blocks/utils.mjs';
4
+ import '../../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const MetricsSectionTemplateOne: ({ dataMetrics, dataButtons, dataHeading, }: MetricsSectionProps) => react_jsx_runtime.JSX.Element;
16
+
17
+ export { MetricsSectionTemplateOne };
@@ -0,0 +1 @@
1
+ import"../../../../chunk-7LRQ2WLZ.mjs";import{jsx as r,jsxs as v}from"react/jsx-runtime";import f from"react";import c from"html-react-parser";import{cn as s}from"../../../../lib/utils";import{ButtonsBlock as e,HeadingBlock as N}from"../../common-blocks/common-blocks";const b=({metric:l})=>{const{metricTitle:o="",metricValue:m="",metricDescription:p=""}=l!=null?l:{};return v("div",{className:"text-center",children:[r("div",{className:"text-primary text-3xl font-bold md:text-4xl",children:c(m!=null?m:"")}),r("div",{className:"text-foreground mt-2 text-sm font-semibold",children:c(o!=null?o:"")}),p&&r("div",{className:"text-muted-foreground mt-2 text-sm",children:c(p!=null?p:"")})]})},R=({dataMetrics:l,dataButtons:o,dataHeading:m})=>v(f.Fragment,{children:[m&&r(N,{tagline:m==null?void 0:m.tagline,title:m==null?void 0:m.title,description:m==null?void 0:m.description,tagHeading:m==null?void 0:m.tagHeading,align:"center",colorScheme:(m==null?void 0:m.colorScheme)||"pink",sizeHeading:m==null?void 0:m.sizeHeading,className:s(m==null?void 0:m.className)}),l&&(l==null?void 0:l.length)>0&&r("div",{className:s("grid grid-cols-1 gap-10 py-4 md:grid-cols-3 md:gap-4 md:py-0",(l==null?void 0:l.length)===2&&"md:grid-cols-4 md:[&>*:first-child]:col-start-2",(l==null?void 0:l.length)===4&&"md:grid-cols-4"),children:l==null?void 0:l.map((p,x)=>r(f.Fragment,{children:r(b,{metric:p})},x))}),o&&r(e,{isFullInMobile:o==null?void 0:o.isFullInMobile,buttons:o==null?void 0:o.buttons,className:s(o==null?void 0:o.className,"mt-8 md:mt-10"),align:"center"})]});export{R as MetricsSectionTemplateOne};
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { MetricsSectionProps } from '../utils.mjs';
3
+ import '../../common-blocks/utils.mjs';
4
+ import '../../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare function MetricsSectionTemplateTwo({ dataMetrics, dataButtons, dataHeading, }: MetricsSectionProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { MetricsSectionTemplateTwo };
@@ -0,0 +1 @@
1
+ import"../../../../chunk-7LRQ2WLZ.mjs";import{Fragment as u,jsx as t,jsxs as s}from"react/jsx-runtime";import c from"react";import n from"html-react-parser";import{cn as r}from"../../../../lib/utils";import{ButtonsBlock as d,HeadingBlock as g}from"../../common-blocks/common-blocks";function p({metric:l}){const{metricTitle:o="",metricValue:e="",metricDescription:i=""}=l!=null?l:{};return s("div",{className:"bg-muted p-4 text-center md:p-8",children:[t("div",{className:"text-foreground text-2xl font-bold md:text-3xl",children:n(e!=null?e:"")}),t("div",{className:"text-muted-foreground mt-2 text-sm font-semibold",children:n(o!=null?o:"")}),i?t("div",{className:"text-muted-foreground mt-2 hidden text-sm md:block",children:n(i!=null?i:"")}):null]})}function b({dataMetrics:l,dataButtons:o,dataHeading:e}){return s(u,{children:[e?t(g,{tagline:e.tagline,title:e.title,description:e.description,tagHeading:e.tagHeading,align:"center",colorScheme:e.colorScheme||"pink",sizeHeading:e.sizeHeading,className:r(e.className)}):null,l&&l.length>0?t("div",{className:r("grid grid-cols-2 gap-px overflow-hidden rounded-lg md:rounded-xl md:py-0 lg:grid-cols-4",l.length===2&&"lg:grid-cols-2",l.length===3&&"lg:grid-cols-3"),children:l.map((i,m)=>t(c.Fragment,{children:t(p,{metric:i})},m))}):null,o?t(d,{isFullInMobile:o.isFullInMobile,buttons:o.buttons,className:r(o.className,"mt-8 md:mt-10"),align:"center"}):null]})}export{b as MetricsSectionTemplateTwo};
@@ -0,0 +1,38 @@
1
+ import { SectionBlockProps, HeadingBlockProps, ButtonsBlockProps } from '../common-blocks/utils.mjs';
2
+ import '../action-button/utils.mjs';
3
+ import 'react';
4
+ import '../../mobase/button.mjs';
5
+ import 'react/jsx-runtime';
6
+ import 'class-variance-authority/types';
7
+ import '@base-ui/react/button';
8
+ import 'class-variance-authority';
9
+ import '../dialog-qr/DialogQr.mjs';
10
+ import '../../mobase/dialog.mjs';
11
+ import '@base-ui/react/dialog';
12
+ import '@base-ui/react/use-render';
13
+
14
+ interface DataMetricsProps {
15
+ metricValue: string;
16
+ metricTitle: string;
17
+ metricDescription?: string;
18
+ }
19
+ interface MetricsSectionProps extends SectionBlockProps {
20
+ /**
21
+ * The template of the metrics section.
22
+ * The template value must be a positive integer greater than 0.
23
+ */
24
+ template?: (number & {
25
+ __type?: "PositiveInteger";
26
+ }) | 1;
27
+ /**
28
+ * The data heading of the metrics section.
29
+ */
30
+ dataHeading: HeadingBlockProps;
31
+ /**
32
+ * The array data metrics of the metrics section.
33
+ */
34
+ dataMetrics: DataMetricsProps[];
35
+ dataButtons?: ButtonsBlockProps;
36
+ }
37
+
38
+ export type { DataMetricsProps, MetricsSectionProps };
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { NewsSectionProps } from './utils.mjs';
3
+ import '../common-blocks/utils.mjs';
4
+ import '../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../dialog-qr/DialogQr.mjs';
11
+ import '../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare function NewsSection({ idSection, dataHeading, dataHorizontalScroll, dataNews, className, background, template, onClickModal, onClickLoadMore, }: NewsSectionProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { NewsSection };
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{Fragment as u,jsx as i}from"react/jsx-runtime";import{cn as p}from"../../../lib/utils";import{SectionBlock as S}from"../common-blocks/common-blocks";import{NewsSectionTemplateOne as c}from"./NewsSectionTemplate";function m({template:a,dataNews:o,dataHeading:e,dataHorizontalScroll:t,onClickModal:n,onClickLoadMore:r}){switch(a){case 1:return i(c,{dataNews:o,dataHeading:e,dataHorizontalScroll:t,onClickModal:n,onClickLoadMore:r});default:return i(c,{dataNews:o,dataHeading:e,dataHorizontalScroll:t,onClickModal:n,onClickLoadMore:r})}}function w({dataHeading:a,dataHorizontalScroll:o,dataNews:e,template:t,onClickModal:n,onClickLoadMore:r}){return i(u,{children:m({dataHeading:a,dataHorizontalScroll:o,dataNews:e,template:t,onClickModal:n,onClickLoadMore:r})})}function N({idSection:a,dataHeading:o,dataHorizontalScroll:e,dataNews:t=[],className:n,background:r,template:l=1,onClickModal:s,onClickLoadMore:d}){return i(S,{className:p(n),background:r,idSection:a,children:i(w,{dataHeading:o,dataHorizontalScroll:e,dataNews:t,template:l,onClickModal:s,onClickLoadMore:d})})}export{N as NewsSection};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { NewsSectionProps } from './utils.mjs';
3
+ import '../common-blocks/utils.mjs';
4
+ import '../action-button/utils.mjs';
5
+ import '../../mobase/button.mjs';
6
+ import 'react/jsx-runtime';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../dialog-qr/DialogQr.mjs';
11
+ import '../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const NewsSectionTemplateOne: React.NamedExoticComponent<NewsSectionProps>;
16
+
17
+ export { NewsSectionTemplateOne };
@@ -0,0 +1 @@
1
+ "use client";import"../../../chunk-7LRQ2WLZ.mjs";import{Fragment as T,jsx as m,jsxs as f}from"react/jsx-runtime";import{memo as p}from"react";import{ArrowDownIcon as B,Loader2Icon as D}from"lucide-react";import E from"html-react-parser";import{cn as x}from"../../../lib/utils";import{Button as L}from"../../mobase/button";import{HorizontalContent as U,HorizontalNext as j,HorizontalPrevious as A,HorizontalScroll as C}from"../../mobase/horizontal-scroll";import{Tabs as R,TabsContent as _,TabsList as q,TabsTrigger as V}from"../../mobase/tabs";import{ActionButton as X}from"../action-button/action-button";import{HeadingBlock as F}from"../common-blocks/common-blocks";const J=({news:l})=>{const i=(o,c)=>{o==null||o.preventDefault(),o==null||o.stopPropagation(),window.open(c,"_blank")};return f(T,{children:[m("div",{className:"relative block aspect-square overflow-hidden rounded-md bg-muted md:aspect-[77/37] md:rounded-none",children:f("picture",{children:[m("source",{media:"(min-width: 640px)",srcSet:l==null?void 0:l.thumbnailDesktop}),m("img",{className:"h-full w-full object-cover",src:l==null?void 0:l.thumbnailMobile,alt:l==null?void 0:l.title})]})}),f("div",{className:"mt-3 flex flex-1 flex-col md:mt-0 md:p-3",children:[m("div",{className:"line-clamp-2 flex-1 text-sm font-medium text-foreground group-hover:text-primary md:line-clamp-none",children:l==null?void 0:l.title}),f("div",{className:"mt-2 flex items-center space-x-1",children:[(l==null?void 0:l.category)&&(l==null?void 0:l.categoryUrl)&&f(T,{children:[m(L,{type:"button",variant:"link",className:"h-auto shrink-0 justify-start whitespace-normal p-0 text-left text-xs font-normal text-primary line-clamp-1",title:l==null?void 0:l.category,onClick:o=>i(o,(l==null?void 0:l.categoryUrl)||""),children:l==null?void 0:l.category}),(l==null?void 0:l.category)&&(l==null?void 0:l.dateTime)&&m("span",{className:"flex-none leading-none",children:"\xB7"})]}),m("div",{className:"flex-none text-xs text-muted-foreground",children:l==null?void 0:l.dateTime})]})]})]})},K=p(function({dataHeading:i,dataHorizontalScroll:o,dataNews:c,onClickModal:h,onClickLoadMore:e}){var a;const{showGradientOverlay:S=!0,gradientOverlayColor:k,className:z}=o||{},P=(t,v,b)=>{t==null||t.preventDefault(),t==null||t.stopPropagation(),h?h(v):window.open(b,"_blank")},y=(t,v)=>{var b,N;return f("div",{children:[m("div",{className:x("-mx-2 flex flex-row flex-wrap gap-y-5",((b=t==null?void 0:t.newsList)==null?void 0:b.length)!==void 0&&t.newsList.length<4?"md:justify-center":""),children:(N=t==null?void 0:t.newsList)==null?void 0:N.map((r,O)=>m("div",{className:"min-w-0 basis-1/2 px-2 lg:basis-1/4",children:m("div",{onClick:g=>P(g,r==null?void 0:r.id,r==null?void 0:r.url),className:x("group flex cursor-pointer flex-col overflow-hidden md:h-full md:rounded-md md:bg-card md:shadow-md",t==null?void 0:t.classNameItem),children:m(J,{news:r})},r==null?void 0:r.id)},O))}),(t==null?void 0:t.isShowBtn)&&m("div",{className:"mt-8 flex w-full items-center justify-center",children:f(X,{action:(t==null?void 0:t.btnUrl)||e&&(()=>e==null?void 0:e(v)),newTab:t==null?void 0:t.isNewTab,variant:"outline",disabled:t==null?void 0:t.isLoading,children:[E(t.btnName||"Xem th\xEAm"),t!=null&&t.isLoading?m(D,{className:"ml-2 size-5 animate-spin","aria-hidden":!0}):e&&!(t!=null&&t.btnUrl)&&m(B,{className:"-mb-1 ml-2 size-5 animate-bounce","aria-hidden":!0})]})})]},(t==null?void 0:t.title)||v)};return f("div",{"data-slot":"news-section-template-1",children:[i&&m(F,{tagline:i==null?void 0:i.tagline,title:i==null?void 0:i.title,description:i==null?void 0:i.description,tagHeading:i==null?void 0:i.tagHeading,align:"center",colorScheme:(i==null?void 0:i.colorScheme)||"pink",sizeHeading:i==null?void 0:i.sizeHeading,className:x(i==null?void 0:i.className)}),(c==null?void 0:c.length)>1?f(R,{defaultValue:(a=c[0])==null?void 0:a.title,children:[f(C,{showGradientOverlay:S,gradientOverlayColor:k,className:z,children:[m(U,{className:"mb-6 text-center",children:m(q,{className:"mx-auto mb-0 inline-flex w-auto items-center overflow-visible",children:c.map((t,v)=>m(V,{value:t.title,children:t.title},t.title+v))})}),m(A,{}),m(j,{})]}),c.map((t,v)=>m(_,{value:t.title,children:y(t,v)},t.title+v))]}):(c==null?void 0:c.length)===1&&c[0]&&y(c[0],0)]})});export{K as NewsSectionTemplateOne};
@@ -0,0 +1,14 @@
1
+ export { NewsSection } from './NewsSection.mjs';
2
+ export { DataHorizontalScrollProps, DataNewsProps, NewsItemProps, NewsSectionProps } from './utils.mjs';
3
+ import 'react/jsx-runtime';
4
+ import '../common-blocks/utils.mjs';
5
+ import '../action-button/utils.mjs';
6
+ import 'react';
7
+ import '../../mobase/button.mjs';
8
+ import 'class-variance-authority/types';
9
+ import '@base-ui/react/button';
10
+ import 'class-variance-authority';
11
+ import '../dialog-qr/DialogQr.mjs';
12
+ import '../../mobase/dialog.mjs';
13
+ import '@base-ui/react/dialog';
14
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{NewsSection as r}from"./NewsSection";export{r as NewsSection};
@@ -0,0 +1,64 @@
1
+ import { SectionBlockProps, HeadingBlockProps } from '../common-blocks/utils.mjs';
2
+ import '../action-button/utils.mjs';
3
+ import 'react';
4
+ import '../../mobase/button.mjs';
5
+ import 'react/jsx-runtime';
6
+ import 'class-variance-authority/types';
7
+ import '@base-ui/react/button';
8
+ import 'class-variance-authority';
9
+ import '../dialog-qr/DialogQr.mjs';
10
+ import '../../mobase/dialog.mjs';
11
+ import '@base-ui/react/dialog';
12
+ import '@base-ui/react/use-render';
13
+
14
+ interface NewsItemProps {
15
+ /** The id of the news item. */
16
+ id: number;
17
+ /** The title of the news item. */
18
+ title: string;
19
+ /** The date time of the news item. */
20
+ dateTime?: string;
21
+ /** Thumbnail for small viewports. */
22
+ thumbnailMobile: string;
23
+ /** Thumbnail for desktop. */
24
+ thumbnailDesktop: string;
25
+ /** The url of the news item. */
26
+ url: string;
27
+ /** The category of the news item. */
28
+ category?: string;
29
+ /** The category url of the news item. */
30
+ categoryUrl?: string;
31
+ }
32
+ interface DataNewsProps {
33
+ /** The title of the news group (tab label). */
34
+ title: string;
35
+ /** The array of news items. */
36
+ newsList: NewsItemProps[];
37
+ /** The class name of the news item. */
38
+ classNameItem?: string;
39
+ /** Show the CTA button. Default false. */
40
+ isShowBtn?: boolean;
41
+ /** The url of the button. */
42
+ btnUrl?: string;
43
+ /** The name of the button. Default "Xem thêm". */
44
+ btnName?: string;
45
+ /** Open the button in a new tab. Default false. */
46
+ isNewTab?: boolean;
47
+ /** Loading state for load-more. Default false. */
48
+ isLoading?: boolean;
49
+ }
50
+ interface DataHorizontalScrollProps {
51
+ showGradientOverlay?: boolean;
52
+ gradientOverlayColor?: string;
53
+ className?: string;
54
+ }
55
+ interface NewsSectionProps extends SectionBlockProps {
56
+ template?: 1;
57
+ dataHeading: HeadingBlockProps;
58
+ dataHorizontalScroll?: DataHorizontalScrollProps;
59
+ dataNews: DataNewsProps[];
60
+ onClickModal?: (id: number) => void;
61
+ onClickLoadMore?: (tabIndex: number) => void;
62
+ }
63
+
64
+ export type { DataHorizontalScrollProps, DataNewsProps, NewsItemProps, NewsSectionProps };
File without changes
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { SocialProofSectionProps } from './utils.mjs';
3
+ import '../common-blocks/utils.mjs';
4
+ import '../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../dialog-qr/DialogQr.mjs';
11
+ import '../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare function SocialProofSection({ template, background, className, idSection, dataHeading, dataBrands, dataButtons, spaceX, isScrollSnap, }: SocialProofSectionProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { SocialProofSection };
@@ -0,0 +1 @@
1
+ import{a as t}from"../../../chunk-7LRQ2WLZ.mjs";import{jsx as r}from"react/jsx-runtime";import{cn as p}from"../../../lib/utils";import{SectionBlock as m}from"../common-blocks/common-blocks";import{SocialProofTemplate1 as s,SocialProofTemplate2 as P,SocialProofTemplate3 as d,SocialProofTemplate4 as u}from"./SocialProofTemplates";function B({template:e,dataHeading:c,dataBrands:i,dataButtons:a,spaceX:n,isScrollSnap:l}){const o={dataHeading:c,dataBrands:i,dataButtons:a,spaceX:n,isScrollSnap:l};switch(e){case 2:return r(P,t({},o));case 3:return r(d,t({},o));case 4:return r(u,t({},o));default:return r(s,t({},o))}}function T({template:e=1,background:c,className:i,idSection:a,dataHeading:n,dataBrands:l=[],dataButtons:o,spaceX:S="20px",isScrollSnap:f}){return r(m,{className:p(e===3&&"overflow-hidden md:overflow-visible",i),idSection:a,background:c,children:r(B,{template:e,dataHeading:n,dataBrands:l,dataButtons:o,spaceX:S,isScrollSnap:f})})}export{T as SocialProofSection};
@@ -0,0 +1,17 @@
1
+ export { SocialProofTemplate1 } from './templates/SocialProofTemplate1.mjs';
2
+ export { SocialProofTemplate2 } from './templates/SocialProofTemplate2.mjs';
3
+ export { SocialProofTemplate3 } from './templates/SocialProofTemplate3.mjs';
4
+ export { SocialProofTemplate4 } from './templates/SocialProofTemplate4.mjs';
5
+ import 'react';
6
+ import 'react/jsx-runtime';
7
+ import './utils.mjs';
8
+ import '../common-blocks/utils.mjs';
9
+ import '../action-button/utils.mjs';
10
+ import '../../mobase/button.mjs';
11
+ import 'class-variance-authority/types';
12
+ import '@base-ui/react/button';
13
+ import 'class-variance-authority';
14
+ import '../dialog-qr/DialogQr.mjs';
15
+ import '../../mobase/dialog.mjs';
16
+ import '@base-ui/react/dialog';
17
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{SocialProofTemplate1 as r}from"./templates/SocialProofTemplate1";import{SocialProofTemplate2 as f}from"./templates/SocialProofTemplate2";import{SocialProofTemplate3 as m}from"./templates/SocialProofTemplate3";import{SocialProofTemplate4 as t}from"./templates/SocialProofTemplate4";export{r as SocialProofTemplate1,f as SocialProofTemplate2,m as SocialProofTemplate3,t as SocialProofTemplate4};
@@ -0,0 +1,14 @@
1
+ export { SocialProofSection } from './SocialProofSection.mjs';
2
+ export { BrandData, SocialProofSectionProps } from './utils.mjs';
3
+ import 'react/jsx-runtime';
4
+ import '../common-blocks/utils.mjs';
5
+ import '../action-button/utils.mjs';
6
+ import 'react';
7
+ import '../../mobase/button.mjs';
8
+ import 'class-variance-authority/types';
9
+ import '@base-ui/react/button';
10
+ import 'class-variance-authority';
11
+ import '../dialog-qr/DialogQr.mjs';
12
+ import '../../mobase/dialog.mjs';
13
+ import '@base-ui/react/dialog';
14
+ import '@base-ui/react/use-render';
@@ -0,0 +1 @@
1
+ import"../../../chunk-7LRQ2WLZ.mjs";import{SocialProofSection as t}from"./SocialProofSection";export{t as SocialProofSection};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { SocialProofSectionProps } from '../utils.mjs';
4
+ import '../../common-blocks/utils.mjs';
5
+ import '../../action-button/utils.mjs';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const SocialProofTemplate1: React.MemoExoticComponent<({ dataHeading, dataBrands, dataButtons, spaceX, isScrollSnap }: SocialProofSectionProps) => react_jsx_runtime.JSX.Element>;
16
+
17
+ export { SocialProofTemplate1 };
@@ -0,0 +1 @@
1
+ "use client";import{a as c,b as x}from"../../../../chunk-7LRQ2WLZ.mjs";import{jsx as o,jsxs as v}from"react/jsx-runtime";import{memo as w}from"react";import{cn as a}from"../../../../lib/utils";import{ButtonsBlock as d,HeadingBlock as y}from"../../common-blocks/common-blocks";const N={"20px":"md:gap-x-5","28px":"md:gap-x-7","36px":"md:gap-x-9","40px":"md:gap-x-10","48px":"md:gap-x-12","56px":"md:gap-x-14","64px":"md:gap-x-16","80px":"md:gap-x-20"},h=w(({dataHeading:l,dataBrands:m,dataButtons:s,spaceX:r,isScrollSnap:p})=>{const f=N[r!=null?r:"20px"];return v("div",{"data-slot":"social-proof-template-1",children:[l?o(y,{tagline:l.tagline,title:l.title,description:l.description,tagHeading:l.tagHeading,align:"center",colorScheme:l.colorScheme||"pink",sizeHeading:l.sizeHeading,className:l.className}):null,m&&m.length>0?o("div",{className:a("list-brands flex flex-row gap-y-6 overflow-x-auto overflow-y-hidden py-2 md:flex-wrap md:justify-center",f,p?"-mx-5 snap-x snap-mandatory flex-nowrap space-x-5 px-5 pb-3 md:mx-0 md:space-x-0 md:px-0":"mx-auto max-w-xs flex-wrap justify-center md:max-w-full"),children:m.map(e=>{var t,i,n;const u=e.url?"a":"div",g=e.url?{href:e.url,title:e.name,target:e.newTab?"_blank":"_self",rel:e.newTab?"noreferrer":void 0}:{};return o("div",{className:a("flex max-h-28 w-auto items-center justify-center md:max-w-36 md:basis-auto md:px-0",p?"shrink-0 basis-1/3 snap-center":"basis-1/2 px-3"),children:o(u,x(c({},g),{className:"group flex h-full w-full items-center justify-center",children:o("img",{src:e.logo,loading:"lazy",alt:(n=e.name)!=null?n:"",className:a("max-h-full max-w-full object-contain",e.url&&"transform transition group-hover:scale-105")})}))},`${(t=e.name)!=null?t:""}-${(i=e.logo)!=null?i:""}`)})}):null,s?o(d,{isFullInMobile:s.isFullInMobile,buttons:s.buttons,className:s.className,align:"center"}):null]})});h.displayName="SocialProofTemplate1";export{h as SocialProofTemplate1};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { SocialProofSectionProps } from '../utils.mjs';
4
+ import '../../common-blocks/utils.mjs';
5
+ import '../../action-button/utils.mjs';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const SocialProofTemplate2: React.MemoExoticComponent<({ dataHeading, dataBrands, dataButtons, isScrollSnap }: SocialProofSectionProps) => react_jsx_runtime.JSX.Element>;
16
+
17
+ export { SocialProofTemplate2 };
@@ -0,0 +1 @@
1
+ "use client";import{a,b as n}from"../../../../chunk-7LRQ2WLZ.mjs";import{jsx as o,jsxs as v}from"react/jsx-runtime";import{memo as x}from"react";import{cn as p}from"../../../../lib/utils";import{ButtonsBlock as d,HeadingBlock as g}from"../../common-blocks/common-blocks";const y=x(({dataHeading:l,dataBrands:s,dataButtons:r,isScrollSnap:i})=>v("div",{"data-slot":"social-proof-template-2",children:[l?o(g,{tagline:l.tagline,title:l.title,description:l.description,tagHeading:l.tagHeading,align:"center",colorScheme:l.colorScheme||"pink",sizeHeading:l.sizeHeading,className:l.className}):null,s&&s.length>0?o("div",{className:p("list-brands flex md:flex-wrap md:justify-center md:gap-y-6",i?"-mx-5 snap-x snap-mandatory flex-nowrap space-x-5 overflow-x-auto overflow-y-hidden px-5 pb-3 md:mx-0 md:space-x-0 md:px-0":"-mx-2.5 flex-wrap gap-y-5 md:-mx-3"),children:s.map(e=>{var t,m,c;const f=e.url?"a":"div",u=e.url?{href:e.url,title:e.name,target:e.newTab?"_blank":"_self",rel:e.newTab?"noreferrer":void 0}:{};return o("div",{className:p("flex items-center justify-center text-center md:basis-1/4 md:px-3",i?"shrink-0 basis-5/12 snap-center":"basis-1/2 px-2.5"),children:o(f,n(a({},u),{className:"flex h-full w-full items-center justify-center rounded-md border border-border bg-card p-3 duration-300 hover:border-primary",children:o("div",{className:"flex w-full items-center justify-center",children:o("img",{src:e.logo,loading:"lazy",alt:(c=e.name)!=null?c:"",className:"h-auto max-h-28 w-auto max-w-full object-contain"})})}))},`${(t=e.name)!=null?t:""}-${(m=e.logo)!=null?m:""}`)})}):null,r?o(d,{isFullInMobile:r.isFullInMobile,buttons:r.buttons,className:r.className,align:"center"}):null]}));y.displayName="SocialProofTemplate2";export{y as SocialProofTemplate2};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { SocialProofSectionProps } from '../utils.mjs';
4
+ import '../../common-blocks/utils.mjs';
5
+ import '../../action-button/utils.mjs';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const SocialProofTemplate3: React.MemoExoticComponent<({ dataHeading, dataBrands, dataButtons }: SocialProofSectionProps) => react_jsx_runtime.JSX.Element>;
16
+
17
+ export { SocialProofTemplate3 };
@@ -0,0 +1 @@
1
+ "use client";import{a,b as p}from"../../../../chunk-7LRQ2WLZ.mjs";import{jsx as o,jsxs as u}from"react/jsx-runtime";import{memo as g}from"react";import{cn as c}from"../../../../lib/utils";import{useIsMobile as N}from"../../../../hooks/use-mobile";import{Carousel as v,CarouselContent as w,CarouselDots as b,CarouselItem as h}from"../../../mobase/carousel";import{ButtonsBlock as y,HeadingBlock as C}from"../../common-blocks/common-blocks";function n(e,l){var r;if(!e)return o("div",{className:c("h-full w-full",l)});const t=e.url?"a":"div";return o("div",{className:c("h-full w-full",l),children:o(t,p(a({},e.url&&{href:e.url,title:e.name,target:e.newTab?"_blank":"_self",rel:e.newTab?"noreferrer":void 0}),{className:c("flex h-full w-full items-center justify-center rounded-md border border-border bg-card p-3",e.url&&"duration-300 hover:border-primary"),children:o("div",{className:"flex h-full w-full items-center justify-center",children:o("img",{src:e.logo,alt:(r=e.name)!=null?r:"",className:"h-auto max-h-full w-auto max-w-full object-contain"})})}))})}const x=g(({dataHeading:e,dataBrands:l,dataButtons:t})=>{const r=N(),f=[],m=[];if(l&&l.length>10){const s=Math.ceil(l.length/2);f.push(...l.slice(0,s)),m.push(...l.slice(s))}return u("div",{"data-slot":"social-proof-template-3",children:[e?o(C,{tagline:e.tagline,title:e.title,description:e.description,tagHeading:e.tagHeading,align:"center",colorScheme:e.colorScheme||"pink",sizeHeading:e.sizeHeading,className:e.className}):null,l&&l.length>0?u(v,{opts:{align:r?"center":"start"},className:"w-full",children:[o(w,{className:"overflow-visible md:overflow-hidden",children:l.length>=12?f.map((s,i)=>u(h,{className:"flex shrink-0 basis-5/12 flex-col items-center justify-between gap-3 pl-3 md:basis-1/4 md:gap-4 md:pl-4 lg:basis-1/6",children:[n(s,"min-h-0 flex-1"),m[i]?n(m[i],"min-h-0 flex-1"):o("div",{className:"min-h-0 flex-1"})]},`${s.logo}-${i}`)):l.map((s,i)=>o(h,{className:"flex basis-5/12 items-center justify-center pl-3 md:basis-1/4 md:pl-4 lg:basis-1/6",children:n(s)},`${s.logo}-${i}`))}),o(b,{className:"mt-5"})]}):null,t?o(y,{isFullInMobile:t.isFullInMobile,buttons:t.buttons,className:t.className,align:"center"}):null]})});x.displayName="SocialProofTemplate3";export{x as SocialProofTemplate3};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { SocialProofSectionProps } from '../utils.mjs';
4
+ import '../../common-blocks/utils.mjs';
5
+ import '../../action-button/utils.mjs';
6
+ import '../../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../../dialog-qr/DialogQr.mjs';
11
+ import '../../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare const SocialProofTemplate4: React.MemoExoticComponent<({ dataHeading, dataBrands, dataButtons }: SocialProofSectionProps) => react_jsx_runtime.JSX.Element>;
16
+
17
+ export { SocialProofTemplate4 };
@@ -0,0 +1,18 @@
1
+ "use client";import{a as c,b as p}from"../../../../chunk-7LRQ2WLZ.mjs";import{Fragment as y,jsx as l,jsxs as k}from"react/jsx-runtime";import{memo as a}from"react";import{cn as n}from"../../../../lib/utils";import{InfiniteSlider as x}from"../../../mobase/infinite-slider";import{ButtonsBlock as g,HeadingBlock as v}from"../../common-blocks/common-blocks";function f(e,i){var t;const o=e!=null&&e.url?"a":"div";return l("div",{className:n("h-full w-full",i),children:l(o,p(c({},(e==null?void 0:e.url)&&{href:e.url,title:e.name,target:e.newTab?"_blank":"_self",rel:e.newTab?"noreferrer":void 0}),{className:n("flex h-full w-full items-center justify-center rounded-md border border-border bg-card p-3",(e==null?void 0:e.url)&&"duration-300 hover:border-primary"),children:l("div",{className:"flex h-full w-full items-center justify-center",children:l("img",{src:e==null?void 0:e.logo,alt:(t=e==null?void 0:e.name)!=null?t:"",className:"h-auto max-h-full w-auto max-w-full object-contain"})})}))})}const h=a(({dataHeading:e,dataBrands:i,dataButtons:o})=>{var r;const t=(r=i==null?void 0:i.length)!=null?r:0,u=t>6;return k("div",{"data-slot":"social-proof-template-4",children:[e?l(v,{tagline:e.tagline,title:e.title,description:e.description,tagHeading:e.tagHeading,align:"center",colorScheme:e.colorScheme||"pink",sizeHeading:e.sizeHeading,className:e.className}):null,t>0?l(y,{children:u?l("div",{className:"mark-horizontal-slider relative overflow-hidden",children:l(x,{direction:"horizontal",speed:70,speedOnHover:.05,gap:20,className:"inline-flex flex-row",children:i==null?void 0:i.map((s,m)=>l("div",{className:"w-32 md:w-40",children:f(s)},`${s.logo}-${m}`))})}):l("div",{className:"list-brands -mx-5 flex snap-x snap-mandatory flex-nowrap space-x-3 overflow-x-auto overflow-y-hidden px-5 pb-3 md:-mx-3 md:flex-wrap md:justify-center md:gap-y-6 md:space-x-0 md:px-0",children:i==null?void 0:i.map((s,m)=>l("div",{className:"flex shrink-0 basis-5/12 snap-center items-center justify-center md:basis-1/4 md:px-3 lg:basis-1/6",children:f(s)},`${s.logo}-${m}`))})}):null,o?l(g,{isFullInMobile:o.isFullInMobile,buttons:o.buttons,className:o.className,align:"center"}):null,l("style",{children:`
2
+ .mark-horizontal-slider {
3
+ mask-image: linear-gradient(
4
+ to right,
5
+ transparent 0px,
6
+ black 32px,
7
+ black calc(100% - 32px),
8
+ transparent 100%
9
+ );
10
+ -webkit-mask-image: linear-gradient(
11
+ to right,
12
+ transparent 0px,
13
+ black 32px,
14
+ black calc(100% - 32px),
15
+ transparent 100%
16
+ );
17
+ }
18
+ `})]})});h.displayName="SocialProofTemplate4";export{h as SocialProofTemplate4};
@@ -0,0 +1,31 @@
1
+ import { SectionBlockProps, HeadingBlockProps, ButtonsBlockProps } from '../common-blocks/utils.mjs';
2
+ import '../action-button/utils.mjs';
3
+ import 'react';
4
+ import '../../mobase/button.mjs';
5
+ import 'react/jsx-runtime';
6
+ import 'class-variance-authority/types';
7
+ import '@base-ui/react/button';
8
+ import 'class-variance-authority';
9
+ import '../dialog-qr/DialogQr.mjs';
10
+ import '../../mobase/dialog.mjs';
11
+ import '@base-ui/react/dialog';
12
+ import '@base-ui/react/use-render';
13
+
14
+ interface BrandData {
15
+ name?: string;
16
+ logo?: string;
17
+ url?: string;
18
+ newTab?: boolean;
19
+ }
20
+ interface SocialProofSectionProps extends SectionBlockProps {
21
+ template?: 1 | 2 | 3 | 4;
22
+ dataHeading?: HeadingBlockProps;
23
+ dataBrands?: BrandData[];
24
+ dataButtons?: ButtonsBlockProps;
25
+ /** Desktop horizontal gap between logos (template 1 only). Mobile uses fixed spacing. */
26
+ spaceX?: "20px" | "28px" | "36px" | "40px" | "48px" | "56px" | "64px" | "80px";
27
+ /** Scroll snap on mobile (template 1 and 2). */
28
+ isScrollSnap?: boolean;
29
+ }
30
+
31
+ export type { BrandData, SocialProofSectionProps };
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { TestimonialSectionProps } from './utils.mjs';
3
+ import '../common-blocks/utils.mjs';
4
+ import '../action-button/utils.mjs';
5
+ import 'react';
6
+ import '../../mobase/button.mjs';
7
+ import 'class-variance-authority/types';
8
+ import '@base-ui/react/button';
9
+ import 'class-variance-authority';
10
+ import '../dialog-qr/DialogQr.mjs';
11
+ import '../../mobase/dialog.mjs';
12
+ import '@base-ui/react/dialog';
13
+ import '@base-ui/react/use-render';
14
+
15
+ declare function TestimonialSection({ template, background, className, idSection, dataHeading, dataTestimonials, dataButtons, }: TestimonialSectionProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { TestimonialSection };
@@ -0,0 +1 @@
1
+ import{a as o}from"../../../chunk-7LRQ2WLZ.mjs";import{jsx as r}from"react/jsx-runtime";import{cn as u}from"../../../lib/utils";import{SectionBlock as T}from"../common-blocks/common-blocks";import{TestimonialTemplateOne as i}from"./templates/TestimonialTemplateOne";import{TestimonialTemplateThree as S}from"./templates/TestimonialTemplateThree";import{TestimonialTemplateTwo as w}from"./templates/TestimonialTemplateTwo";function a(e){switch(e.template){case 1:return r(i,o({},e));case 2:return r(w,o({},e));case 3:return r(S,o({},e));default:return r(i,o({},e))}}function h({template:e=1,background:m,className:c,idSection:l,dataHeading:f,dataTestimonials:n,dataButtons:p}){var t;return r(T,{className:u(e===1&&((t=n==null?void 0:n.length)!=null?t:0)>3?"[&>.wrapper]:max-w-full [&>.wrapper]:md:px-0":"",e===3?"overflow-hidden":"",c),idSection:l,background:m,children:a({template:e,dataHeading:f,dataTestimonials:n,dataButtons:p})})}export{h as TestimonialSection};