ui-landing-page 6.1.0

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 (991) hide show
  1. package/.eslintrc.js +3 -0
  2. package/.storybook/main.ts +34 -0
  3. package/.storybook/preview.tsx +23 -0
  4. package/BUNDLE_ANALYSIS.md +111 -0
  5. package/CODE_SPLITTING_SUMMARY.md +278 -0
  6. package/ENTRY_POINTS.md +77 -0
  7. package/ENTRY_POINTS_REFERENCE.md +479 -0
  8. package/FINAL_ANALYSIS.md +296 -0
  9. package/QUICK_START.md +78 -0
  10. package/analyze-bundle.js +46 -0
  11. package/assets/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  12. package/assets/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  13. package/assets/fonts/amstirdam/SVN-Amstirdam.otf +0 -0
  14. package/assets/fonts/androgyne/SVN-Androgyne.woff +0 -0
  15. package/assets/fonts/androgyne/SVN-Androgyne.woff2 +0 -0
  16. package/assets/fonts/antiqua/SVN-BookAntiqua.woff +0 -0
  17. package/assets/fonts/antiqua/SVN-BookAntiqua.woff2 +0 -0
  18. package/assets/fonts/desire/SVN-Desire.otf +0 -0
  19. package/assets/fonts/elle-gabor/Elle Gabor Std Black.otf +0 -0
  20. package/assets/fonts/elle-gabor/Elle Gabor Std DemiBold.otf +0 -0
  21. package/assets/fonts/elle-gabor/Elle Gabor Std Text.otf +0 -0
  22. package/assets/fonts/elle-gabor/Elle Gabor Std Ultra Light.otf +0 -0
  23. package/assets/fonts/elle-gabor/Elle-Gabor-Std-Bold.otf +0 -0
  24. package/assets/fonts/elle-gabor/Elle-Gabor-Std-Book.otf +0 -0
  25. package/assets/fonts/elle-gabor/Elle-Gabor-Std-Light.otf +0 -0
  26. package/assets/fonts/elle-gabor/Elle-Gabor-Std-Medium.otf +0 -0
  27. package/assets/fonts/god-word/god-word-bold.ttf +0 -0
  28. package/assets/fonts/god-word/god-word-regular.ttf +0 -0
  29. package/assets/fonts/lost-type/LostType2023-Regular.otf +0 -0
  30. package/assets/fonts/neurial-grotesk/NeurialGrotesk-Medium.otf +0 -0
  31. package/assets/fonts/qua-tang-quoc-hoi/SFUAGBuchStencilBQMedium.ttf +0 -0
  32. package/assets/fonts/qua-tang-quoc-hoi/SVN-Sunflora.otf +0 -0
  33. package/assets/fonts/stix/STIXTwoText-Bold.ttf +0 -0
  34. package/assets/fonts/stix/STIXTwoText-BoldItalic.ttf +0 -0
  35. package/assets/fonts/stix/STIXTwoText-Italic.ttf +0 -0
  36. package/assets/fonts/stix/STIXTwoText-Medium.ttf +0 -0
  37. package/assets/fonts/stix/STIXTwoText-MediumItalic.ttf +0 -0
  38. package/assets/fonts/stix/STIXTwoText-Regular.ttf +0 -0
  39. package/assets/fonts/stix/STIXTwoText-SemiBold.ttf +0 -0
  40. package/assets/fonts/stix/STIXTwoText-SemiBoldItalic.ttf +0 -0
  41. package/assets/fonts/svn-poppins/SVN-Poppins-Black.ttf +0 -0
  42. package/assets/fonts/svn-poppins/SVN-Poppins-BlackItalic.ttf +0 -0
  43. package/assets/fonts/svn-poppins/SVN-Poppins-Bold.ttf +0 -0
  44. package/assets/fonts/svn-poppins/SVN-Poppins-BoldItalic.ttf +0 -0
  45. package/assets/fonts/svn-poppins/SVN-Poppins-ExtraBold.ttf +0 -0
  46. package/assets/fonts/svn-poppins/SVN-Poppins-ExtraBoldItalic.ttf +0 -0
  47. package/assets/fonts/svn-poppins/SVN-Poppins-ExtraLight.ttf +0 -0
  48. package/assets/fonts/svn-poppins/SVN-Poppins-ExtraLightItalic.ttf +0 -0
  49. package/assets/fonts/svn-poppins/SVN-Poppins-Italic.ttf +0 -0
  50. package/assets/fonts/svn-poppins/SVN-Poppins-Light.ttf +0 -0
  51. package/assets/fonts/svn-poppins/SVN-Poppins-LightItalic.ttf +0 -0
  52. package/assets/fonts/svn-poppins/SVN-Poppins-Medium.ttf +0 -0
  53. package/assets/fonts/svn-poppins/SVN-Poppins-MediumItalic.ttf +0 -0
  54. package/assets/fonts/svn-poppins/SVN-Poppins-Regular.ttf +0 -0
  55. package/assets/fonts/svn-poppins/SVN-Poppins-SemiBold.ttf +0 -0
  56. package/assets/fonts/svn-poppins/SVN-Poppins-SemiBoldItalic.ttf +0 -0
  57. package/assets/fonts/svn-poppins/SVN-Poppins-Thin.ttf +0 -0
  58. package/assets/fonts/svn-poppins/SVN-Poppins-ThinItalic.ttf +0 -0
  59. package/assets/fonts/zapfino/Zapfino.ttf +0 -0
  60. package/assets/images/index.ts +2 -0
  61. package/assets/images/nomion-logo.png +0 -0
  62. package/bun.lock +2062 -0
  63. package/check-deps.sh +45 -0
  64. package/create-entry-points.sh +22 -0
  65. package/device.min.css +2531 -0
  66. package/dist/advance-profile-section.cjs +2 -0
  67. package/dist/advance-profile-section.cjs.map +1 -0
  68. package/dist/advance-profile-section.d.mts +28 -0
  69. package/dist/advance-profile-section.d.ts +28 -0
  70. package/dist/advance-profile-section.js +2 -0
  71. package/dist/advance-profile-section.js.map +1 -0
  72. package/dist/author-section.cjs +2 -0
  73. package/dist/author-section.cjs.map +1 -0
  74. package/dist/author-section.d.mts +9 -0
  75. package/dist/author-section.d.ts +9 -0
  76. package/dist/author-section.js +2 -0
  77. package/dist/author-section.js.map +1 -0
  78. package/dist/b-e-d-i-page-section.cjs +2 -0
  79. package/dist/b-e-d-i-page-section.cjs.map +1 -0
  80. package/dist/b-e-d-i-page-section.d.mts +55 -0
  81. package/dist/b-e-d-i-page-section.d.ts +55 -0
  82. package/dist/b-e-d-i-page-section.js +2 -0
  83. package/dist/b-e-d-i-page-section.js.map +1 -0
  84. package/dist/bao-ngay-nay2025-section.cjs +2 -0
  85. package/dist/bao-ngay-nay2025-section.cjs.map +1 -0
  86. package/dist/bao-ngay-nay2025-section.d.mts +13 -0
  87. package/dist/bao-ngay-nay2025-section.d.ts +13 -0
  88. package/dist/bao-ngay-nay2025-section.js +2 -0
  89. package/dist/bao-ngay-nay2025-section.js.map +1 -0
  90. package/dist/base-D6OB46M7.d.mts +23 -0
  91. package/dist/base-D6OB46M7.d.ts +23 -0
  92. package/dist/base-section-DdIGFWTn.d.mts +25 -0
  93. package/dist/base-section-DdIGFWTn.d.ts +25 -0
  94. package/dist/biz-card-profile-section.cjs +2 -0
  95. package/dist/biz-card-profile-section.cjs.map +1 -0
  96. package/dist/biz-card-profile-section.d.mts +37 -0
  97. package/dist/biz-card-profile-section.d.ts +37 -0
  98. package/dist/biz-card-profile-section.js +2 -0
  99. package/dist/biz-card-profile-section.js.map +1 -0
  100. package/dist/book-section.cjs +2 -0
  101. package/dist/book-section.cjs.map +1 -0
  102. package/dist/book-section.d.mts +17 -0
  103. package/dist/book-section.d.ts +17 -0
  104. package/dist/book-section.js +2 -0
  105. package/dist/book-section.js.map +1 -0
  106. package/dist/business-card-section.cjs +2 -0
  107. package/dist/business-card-section.cjs.map +1 -0
  108. package/dist/business-card-section.d.mts +37 -0
  109. package/dist/business-card-section.d.ts +37 -0
  110. package/dist/business-card-section.js +2 -0
  111. package/dist/business-card-section.js.map +1 -0
  112. package/dist/christmas.cjs +2 -0
  113. package/dist/christmas.cjs.map +1 -0
  114. package/dist/christmas.d.mts +25 -0
  115. package/dist/christmas.d.ts +25 -0
  116. package/dist/christmas.js +2 -0
  117. package/dist/christmas.js.map +1 -0
  118. package/dist/chunk-2EZHNKDS.cjs +2 -0
  119. package/dist/chunk-2EZHNKDS.cjs.map +1 -0
  120. package/dist/chunk-2L3LGNFN.cjs +2 -0
  121. package/dist/chunk-2L3LGNFN.cjs.map +1 -0
  122. package/dist/chunk-2TKQPATQ.cjs +3 -0
  123. package/dist/chunk-2TKQPATQ.cjs.map +1 -0
  124. package/dist/chunk-2XCURCSR.cjs +8 -0
  125. package/dist/chunk-2XCURCSR.cjs.map +1 -0
  126. package/dist/chunk-377J5LJP.cjs +3 -0
  127. package/dist/chunk-377J5LJP.cjs.map +1 -0
  128. package/dist/chunk-3EWEFTZ4.cjs +2 -0
  129. package/dist/chunk-3EWEFTZ4.cjs.map +1 -0
  130. package/dist/chunk-3OU3D63D.cjs +2 -0
  131. package/dist/chunk-3OU3D63D.cjs.map +1 -0
  132. package/dist/chunk-3SFEP42J.js +3 -0
  133. package/dist/chunk-3SFEP42J.js.map +1 -0
  134. package/dist/chunk-42RM4QBR.cjs +3 -0
  135. package/dist/chunk-42RM4QBR.cjs.map +1 -0
  136. package/dist/chunk-44NYQB5Q.js +2 -0
  137. package/dist/chunk-44NYQB5Q.js.map +1 -0
  138. package/dist/chunk-4J5VH5LJ.cjs +3 -0
  139. package/dist/chunk-4J5VH5LJ.cjs.map +1 -0
  140. package/dist/chunk-5I4Z5UH2.cjs +2 -0
  141. package/dist/chunk-5I4Z5UH2.cjs.map +1 -0
  142. package/dist/chunk-5OFDFIKR.cjs +3 -0
  143. package/dist/chunk-5OFDFIKR.cjs.map +1 -0
  144. package/dist/chunk-5PR2CYMI.js +2 -0
  145. package/dist/chunk-5PR2CYMI.js.map +1 -0
  146. package/dist/chunk-5UIHDRL5.cjs +2 -0
  147. package/dist/chunk-5UIHDRL5.cjs.map +1 -0
  148. package/dist/chunk-5WVMNLF5.js +3 -0
  149. package/dist/chunk-5WVMNLF5.js.map +1 -0
  150. package/dist/chunk-66FJHKLA.js +3 -0
  151. package/dist/chunk-66FJHKLA.js.map +1 -0
  152. package/dist/chunk-6GUVMAUD.js +2 -0
  153. package/dist/chunk-6GUVMAUD.js.map +1 -0
  154. package/dist/chunk-6RCHKEAL.js +2 -0
  155. package/dist/chunk-6RCHKEAL.js.map +1 -0
  156. package/dist/chunk-7CMIOVOL.cjs +2 -0
  157. package/dist/chunk-7CMIOVOL.cjs.map +1 -0
  158. package/dist/chunk-7DETO5IF.js +2 -0
  159. package/dist/chunk-7DETO5IF.js.map +1 -0
  160. package/dist/chunk-7YECUWTF.cjs +2 -0
  161. package/dist/chunk-7YECUWTF.cjs.map +1 -0
  162. package/dist/chunk-A5KHH4N5.js +3 -0
  163. package/dist/chunk-A5KHH4N5.js.map +1 -0
  164. package/dist/chunk-A5WNELZD.js +3 -0
  165. package/dist/chunk-A5WNELZD.js.map +1 -0
  166. package/dist/chunk-AH7SOHCK.js +2 -0
  167. package/dist/chunk-AH7SOHCK.js.map +1 -0
  168. package/dist/chunk-B75CXWTP.js +10 -0
  169. package/dist/chunk-B75CXWTP.js.map +1 -0
  170. package/dist/chunk-BBZUUQZE.cjs +3 -0
  171. package/dist/chunk-BBZUUQZE.cjs.map +1 -0
  172. package/dist/chunk-BF5N2G3I.js +3 -0
  173. package/dist/chunk-BF5N2G3I.js.map +1 -0
  174. package/dist/chunk-BJATVKHY.cjs +2 -0
  175. package/dist/chunk-BJATVKHY.cjs.map +1 -0
  176. package/dist/chunk-BMQTMYRT.cjs +2 -0
  177. package/dist/chunk-BMQTMYRT.cjs.map +1 -0
  178. package/dist/chunk-BQATTZR6.js +3 -0
  179. package/dist/chunk-BQATTZR6.js.map +1 -0
  180. package/dist/chunk-C64QCBR2.js +3 -0
  181. package/dist/chunk-C64QCBR2.js.map +1 -0
  182. package/dist/chunk-C6LFO5DZ.js +2 -0
  183. package/dist/chunk-C6LFO5DZ.js.map +1 -0
  184. package/dist/chunk-CD4LRHKJ.js +2 -0
  185. package/dist/chunk-CD4LRHKJ.js.map +1 -0
  186. package/dist/chunk-CUQI3YUM.js +3 -0
  187. package/dist/chunk-CUQI3YUM.js.map +1 -0
  188. package/dist/chunk-CZW7BABY.js +2 -0
  189. package/dist/chunk-CZW7BABY.js.map +1 -0
  190. package/dist/chunk-D4GX3EGZ.js +4 -0
  191. package/dist/chunk-D4GX3EGZ.js.map +1 -0
  192. package/dist/chunk-DG5W33AY.js +3 -0
  193. package/dist/chunk-DG5W33AY.js.map +1 -0
  194. package/dist/chunk-DJ66MNKV.cjs +2 -0
  195. package/dist/chunk-DJ66MNKV.cjs.map +1 -0
  196. package/dist/chunk-DPN6OBT5.cjs +2 -0
  197. package/dist/chunk-DPN6OBT5.cjs.map +1 -0
  198. package/dist/chunk-EFOR7V7D.js +8 -0
  199. package/dist/chunk-EFOR7V7D.js.map +1 -0
  200. package/dist/chunk-EOINGUY5.js +3 -0
  201. package/dist/chunk-EOINGUY5.js.map +1 -0
  202. package/dist/chunk-EPIKMYCU.js +2 -0
  203. package/dist/chunk-EPIKMYCU.js.map +1 -0
  204. package/dist/chunk-FLCPH2Y3.js +7 -0
  205. package/dist/chunk-FLCPH2Y3.js.map +1 -0
  206. package/dist/chunk-FQMDEZOD.js +3 -0
  207. package/dist/chunk-FQMDEZOD.js.map +1 -0
  208. package/dist/chunk-FUCAOFJM.cjs +3 -0
  209. package/dist/chunk-FUCAOFJM.cjs.map +1 -0
  210. package/dist/chunk-GEGMACK2.cjs +2 -0
  211. package/dist/chunk-GEGMACK2.cjs.map +1 -0
  212. package/dist/chunk-GILDGRSK.cjs +2 -0
  213. package/dist/chunk-GILDGRSK.cjs.map +1 -0
  214. package/dist/chunk-GPBY3OXV.js +2 -0
  215. package/dist/chunk-GPBY3OXV.js.map +1 -0
  216. package/dist/chunk-GQMPLRHE.cjs +2 -0
  217. package/dist/chunk-GQMPLRHE.cjs.map +1 -0
  218. package/dist/chunk-GXUG743T.cjs +2 -0
  219. package/dist/chunk-GXUG743T.cjs.map +1 -0
  220. package/dist/chunk-HH3WELAD.cjs +4 -0
  221. package/dist/chunk-HH3WELAD.cjs.map +1 -0
  222. package/dist/chunk-HHRFK2PR.cjs +3 -0
  223. package/dist/chunk-HHRFK2PR.cjs.map +1 -0
  224. package/dist/chunk-HK3P6AFX.js +3 -0
  225. package/dist/chunk-HK3P6AFX.js.map +1 -0
  226. package/dist/chunk-HMIZ2FLM.js +2 -0
  227. package/dist/chunk-HMIZ2FLM.js.map +1 -0
  228. package/dist/chunk-HSTGLQCX.js +2 -0
  229. package/dist/chunk-HSTGLQCX.js.map +1 -0
  230. package/dist/chunk-I2XSW7Z5.cjs +5 -0
  231. package/dist/chunk-I2XSW7Z5.cjs.map +1 -0
  232. package/dist/chunk-IB3F3GQH.cjs +2 -0
  233. package/dist/chunk-IB3F3GQH.cjs.map +1 -0
  234. package/dist/chunk-IDBQZSEH.cjs +3 -0
  235. package/dist/chunk-IDBQZSEH.cjs.map +1 -0
  236. package/dist/chunk-INJYCBBJ.js +2 -0
  237. package/dist/chunk-INJYCBBJ.js.map +1 -0
  238. package/dist/chunk-IRFLFNL5.js +2 -0
  239. package/dist/chunk-IRFLFNL5.js.map +1 -0
  240. package/dist/chunk-IUV4VDAV.js +2 -0
  241. package/dist/chunk-IUV4VDAV.js.map +1 -0
  242. package/dist/chunk-IXYHCDGV.cjs +2 -0
  243. package/dist/chunk-IXYHCDGV.cjs.map +1 -0
  244. package/dist/chunk-JARFLL3F.cjs +2 -0
  245. package/dist/chunk-JARFLL3F.cjs.map +1 -0
  246. package/dist/chunk-JCWSBSWV.cjs +3 -0
  247. package/dist/chunk-JCWSBSWV.cjs.map +1 -0
  248. package/dist/chunk-JEH6Z3MR.cjs +2 -0
  249. package/dist/chunk-JEH6Z3MR.cjs.map +1 -0
  250. package/dist/chunk-JFOVEN3B.cjs +3 -0
  251. package/dist/chunk-JFOVEN3B.cjs.map +1 -0
  252. package/dist/chunk-JYXWSTI2.cjs +3 -0
  253. package/dist/chunk-JYXWSTI2.cjs.map +1 -0
  254. package/dist/chunk-K6MORX7I.cjs +3 -0
  255. package/dist/chunk-K6MORX7I.cjs.map +1 -0
  256. package/dist/chunk-K7T7NPVY.cjs +3 -0
  257. package/dist/chunk-K7T7NPVY.cjs.map +1 -0
  258. package/dist/chunk-KTJSSK5R.cjs +3 -0
  259. package/dist/chunk-KTJSSK5R.cjs.map +1 -0
  260. package/dist/chunk-KZLVWPZ4.cjs +2 -0
  261. package/dist/chunk-KZLVWPZ4.cjs.map +1 -0
  262. package/dist/chunk-LBKGAOAD.cjs +3 -0
  263. package/dist/chunk-LBKGAOAD.cjs.map +1 -0
  264. package/dist/chunk-LFC2ZCOA.js +2 -0
  265. package/dist/chunk-LFC2ZCOA.js.map +1 -0
  266. package/dist/chunk-LR3HOWU3.cjs +7 -0
  267. package/dist/chunk-LR3HOWU3.cjs.map +1 -0
  268. package/dist/chunk-LSVSIJSZ.js +2 -0
  269. package/dist/chunk-LSVSIJSZ.js.map +1 -0
  270. package/dist/chunk-LSWFX7YA.js +2 -0
  271. package/dist/chunk-LSWFX7YA.js.map +1 -0
  272. package/dist/chunk-LTTNSKMY.js +3 -0
  273. package/dist/chunk-LTTNSKMY.js.map +1 -0
  274. package/dist/chunk-MQDQYKWH.cjs +2 -0
  275. package/dist/chunk-MQDQYKWH.cjs.map +1 -0
  276. package/dist/chunk-MYTJTOT2.cjs +3 -0
  277. package/dist/chunk-MYTJTOT2.cjs.map +1 -0
  278. package/dist/chunk-N33THJV6.js +2 -0
  279. package/dist/chunk-N33THJV6.js.map +1 -0
  280. package/dist/chunk-NAYWFNN3.cjs +3 -0
  281. package/dist/chunk-NAYWFNN3.cjs.map +1 -0
  282. package/dist/chunk-NLTKS2AW.cjs +2 -0
  283. package/dist/chunk-NLTKS2AW.cjs.map +1 -0
  284. package/dist/chunk-NPQYWNWJ.js +5 -0
  285. package/dist/chunk-NPQYWNWJ.js.map +1 -0
  286. package/dist/chunk-NQDWD4YU.cjs +3 -0
  287. package/dist/chunk-NQDWD4YU.cjs.map +1 -0
  288. package/dist/chunk-NQROZGX3.cjs +3 -0
  289. package/dist/chunk-NQROZGX3.cjs.map +1 -0
  290. package/dist/chunk-OBCY7C52.js +2 -0
  291. package/dist/chunk-OBCY7C52.js.map +1 -0
  292. package/dist/chunk-OHGVKGNE.cjs +3 -0
  293. package/dist/chunk-OHGVKGNE.cjs.map +1 -0
  294. package/dist/chunk-OT3WFOIC.js +3 -0
  295. package/dist/chunk-OT3WFOIC.js.map +1 -0
  296. package/dist/chunk-OY6BHM7Z.js +2 -0
  297. package/dist/chunk-OY6BHM7Z.js.map +1 -0
  298. package/dist/chunk-P7JCQIFW.cjs +3 -0
  299. package/dist/chunk-P7JCQIFW.cjs.map +1 -0
  300. package/dist/chunk-PANRCNY2.cjs +2 -0
  301. package/dist/chunk-PANRCNY2.cjs.map +1 -0
  302. package/dist/chunk-Q5QYWRL2.cjs +10 -0
  303. package/dist/chunk-Q5QYWRL2.cjs.map +1 -0
  304. package/dist/chunk-Q7U6JI5R.js +3 -0
  305. package/dist/chunk-Q7U6JI5R.js.map +1 -0
  306. package/dist/chunk-QCNAJEOX.js +2 -0
  307. package/dist/chunk-QCNAJEOX.js.map +1 -0
  308. package/dist/chunk-QNKG2DPA.cjs +2 -0
  309. package/dist/chunk-QNKG2DPA.cjs.map +1 -0
  310. package/dist/chunk-QPCPKW5R.cjs +2 -0
  311. package/dist/chunk-QPCPKW5R.cjs.map +1 -0
  312. package/dist/chunk-QYYK7LNR.cjs +2 -0
  313. package/dist/chunk-QYYK7LNR.cjs.map +1 -0
  314. package/dist/chunk-R3JFYIT4.js +3 -0
  315. package/dist/chunk-R3JFYIT4.js.map +1 -0
  316. package/dist/chunk-SDQQRSTP.cjs +2 -0
  317. package/dist/chunk-SDQQRSTP.cjs.map +1 -0
  318. package/dist/chunk-SDUI3BD3.js +3 -0
  319. package/dist/chunk-SDUI3BD3.js.map +1 -0
  320. package/dist/chunk-SM3TAJ4O.js +3 -0
  321. package/dist/chunk-SM3TAJ4O.js.map +1 -0
  322. package/dist/chunk-T6LF37LZ.cjs +2 -0
  323. package/dist/chunk-T6LF37LZ.cjs.map +1 -0
  324. package/dist/chunk-T7UFQMPU.cjs +2 -0
  325. package/dist/chunk-T7UFQMPU.cjs.map +1 -0
  326. package/dist/chunk-TRSOXPTQ.js +2 -0
  327. package/dist/chunk-TRSOXPTQ.js.map +1 -0
  328. package/dist/chunk-U463DIED.cjs +2 -0
  329. package/dist/chunk-U463DIED.cjs.map +1 -0
  330. package/dist/chunk-U7XVI2DM.js +2 -0
  331. package/dist/chunk-U7XVI2DM.js.map +1 -0
  332. package/dist/chunk-UD7H25BH.js +5 -0
  333. package/dist/chunk-UD7H25BH.js.map +1 -0
  334. package/dist/chunk-UIPKSEN4.js +2 -0
  335. package/dist/chunk-UIPKSEN4.js.map +1 -0
  336. package/dist/chunk-UOUTX4UQ.js +2 -0
  337. package/dist/chunk-UOUTX4UQ.js.map +1 -0
  338. package/dist/chunk-UW52DKV3.js +3 -0
  339. package/dist/chunk-UW52DKV3.js.map +1 -0
  340. package/dist/chunk-VAQT7RDM.js +3 -0
  341. package/dist/chunk-VAQT7RDM.js.map +1 -0
  342. package/dist/chunk-VITZI5ZU.js +3 -0
  343. package/dist/chunk-VITZI5ZU.js.map +1 -0
  344. package/dist/chunk-VMS6VUOL.js +2 -0
  345. package/dist/chunk-VMS6VUOL.js.map +1 -0
  346. package/dist/chunk-WGTOLA3Y.js +2 -0
  347. package/dist/chunk-WGTOLA3Y.js.map +1 -0
  348. package/dist/chunk-WI4TNNNO.js +3 -0
  349. package/dist/chunk-WI4TNNNO.js.map +1 -0
  350. package/dist/chunk-WK65I7SX.js +2 -0
  351. package/dist/chunk-WK65I7SX.js.map +1 -0
  352. package/dist/chunk-WNZ75AHP.js +2 -0
  353. package/dist/chunk-WNZ75AHP.js.map +1 -0
  354. package/dist/chunk-WVNRAFBY.js +2 -0
  355. package/dist/chunk-WVNRAFBY.js.map +1 -0
  356. package/dist/chunk-X4IWMGAB.js +2 -0
  357. package/dist/chunk-X4IWMGAB.js.map +1 -0
  358. package/dist/chunk-X7RB2GVW.cjs +3 -0
  359. package/dist/chunk-X7RB2GVW.cjs.map +1 -0
  360. package/dist/chunk-XD4GVLVZ.cjs +2 -0
  361. package/dist/chunk-XD4GVLVZ.cjs.map +1 -0
  362. package/dist/chunk-XFF6JIWQ.cjs +2 -0
  363. package/dist/chunk-XFF6JIWQ.cjs.map +1 -0
  364. package/dist/chunk-XLPIZNJE.js +2 -0
  365. package/dist/chunk-XLPIZNJE.js.map +1 -0
  366. package/dist/chunk-YFLTXRKM.js +3 -0
  367. package/dist/chunk-YFLTXRKM.js.map +1 -0
  368. package/dist/chunk-YLW7AQNY.cjs +3 -0
  369. package/dist/chunk-YLW7AQNY.cjs.map +1 -0
  370. package/dist/chunk-YN2B2CVU.cjs +5 -0
  371. package/dist/chunk-YN2B2CVU.cjs.map +1 -0
  372. package/dist/chunk-YNK4LVRZ.cjs +3 -0
  373. package/dist/chunk-YNK4LVRZ.cjs.map +1 -0
  374. package/dist/chunk-YXSYDX6L.js +3 -0
  375. package/dist/chunk-YXSYDX6L.js.map +1 -0
  376. package/dist/chunk-YYJKIDZ2.js +3 -0
  377. package/dist/chunk-YYJKIDZ2.js.map +1 -0
  378. package/dist/chunk-ZCYVKA4Y.cjs +3 -0
  379. package/dist/chunk-ZCYVKA4Y.cjs.map +1 -0
  380. package/dist/chunk-ZFZ3ADIT.js +3 -0
  381. package/dist/chunk-ZFZ3ADIT.js.map +1 -0
  382. package/dist/chunk-ZQPA2IN5.cjs +3 -0
  383. package/dist/chunk-ZQPA2IN5.cjs.map +1 -0
  384. package/dist/chunk-ZZHLRB6H.cjs +2 -0
  385. package/dist/chunk-ZZHLRB6H.cjs.map +1 -0
  386. package/dist/contact-section.cjs +2 -0
  387. package/dist/contact-section.cjs.map +1 -0
  388. package/dist/contact-section.d.mts +25 -0
  389. package/dist/contact-section.d.ts +25 -0
  390. package/dist/contact-section.js +2 -0
  391. package/dist/contact-section.js.map +1 -0
  392. package/dist/cover-setion.cjs +2 -0
  393. package/dist/cover-setion.cjs.map +1 -0
  394. package/dist/cover-setion.d.mts +8 -0
  395. package/dist/cover-setion.d.ts +8 -0
  396. package/dist/cover-setion.js +2 -0
  397. package/dist/cover-setion.js.map +1 -0
  398. package/dist/en-QWOTEXHG.js +2 -0
  399. package/dist/en-QWOTEXHG.js.map +1 -0
  400. package/dist/en-TXSQPBHO.cjs +2 -0
  401. package/dist/en-TXSQPBHO.cjs.map +1 -0
  402. package/dist/fr-2MITF4HO.cjs +11 -0
  403. package/dist/fr-2MITF4HO.cjs.map +1 -0
  404. package/dist/fr-KA7CH2XX.js +11 -0
  405. package/dist/fr-KA7CH2XX.js.map +1 -0
  406. package/dist/general-BjKe3K-e.d.mts +60 -0
  407. package/dist/general-BjKe3K-e.d.ts +60 -0
  408. package/dist/gift-avatar-section.cjs +2 -0
  409. package/dist/gift-avatar-section.cjs.map +1 -0
  410. package/dist/gift-avatar-section.d.mts +20 -0
  411. package/dist/gift-avatar-section.d.ts +20 -0
  412. package/dist/gift-avatar-section.js +2 -0
  413. package/dist/gift-avatar-section.js.map +1 -0
  414. package/dist/header-section.cjs +2 -0
  415. package/dist/header-section.cjs.map +1 -0
  416. package/dist/header-section.d.mts +8 -0
  417. package/dist/header-section.d.ts +8 -0
  418. package/dist/header-section.js +2 -0
  419. package/dist/header-section.js.map +1 -0
  420. package/dist/hesman-cert-section.cjs +2 -0
  421. package/dist/hesman-cert-section.cjs.map +1 -0
  422. package/dist/hesman-cert-section.d.mts +11 -0
  423. package/dist/hesman-cert-section.d.ts +11 -0
  424. package/dist/hesman-cert-section.js +2 -0
  425. package/dist/hesman-cert-section.js.map +1 -0
  426. package/dist/hesman-greeting-section.cjs +2 -0
  427. package/dist/hesman-greeting-section.cjs.map +1 -0
  428. package/dist/hesman-greeting-section.d.mts +20 -0
  429. package/dist/hesman-greeting-section.d.ts +20 -0
  430. package/dist/hesman-greeting-section.js +2 -0
  431. package/dist/hesman-greeting-section.js.map +1 -0
  432. package/dist/hesman-metaverse-section.cjs +2 -0
  433. package/dist/hesman-metaverse-section.cjs.map +1 -0
  434. package/dist/hesman-metaverse-section.d.mts +22 -0
  435. package/dist/hesman-metaverse-section.d.ts +22 -0
  436. package/dist/hesman-metaverse-section.js +2 -0
  437. package/dist/hesman-metaverse-section.js.map +1 -0
  438. package/dist/hesman-puzzle-section.cjs +2 -0
  439. package/dist/hesman-puzzle-section.cjs.map +1 -0
  440. package/dist/hesman-puzzle-section.d.mts +10 -0
  441. package/dist/hesman-puzzle-section.d.ts +10 -0
  442. package/dist/hesman-puzzle-section.js +2 -0
  443. package/dist/hesman-puzzle-section.js.map +1 -0
  444. package/dist/hesman-thankyou-section.cjs +2 -0
  445. package/dist/hesman-thankyou-section.cjs.map +1 -0
  446. package/dist/hesman-thankyou-section.d.mts +20 -0
  447. package/dist/hesman-thankyou-section.d.ts +20 -0
  448. package/dist/hesman-thankyou-section.js +2 -0
  449. package/dist/hesman-thankyou-section.js.map +1 -0
  450. package/dist/hesman-video-section.cjs +2 -0
  451. package/dist/hesman-video-section.cjs.map +1 -0
  452. package/dist/hesman-video-section.d.mts +15 -0
  453. package/dist/hesman-video-section.d.ts +15 -0
  454. package/dist/hesman-video-section.js +2 -0
  455. package/dist/hesman-video-section.js.map +1 -0
  456. package/dist/home-section.cjs +2 -0
  457. package/dist/home-section.cjs.map +1 -0
  458. package/dist/home-section.d.mts +51 -0
  459. package/dist/home-section.d.ts +51 -0
  460. package/dist/home-section.js +2 -0
  461. package/dist/home-section.js.map +1 -0
  462. package/dist/horizontal-book-image-section.cjs +2 -0
  463. package/dist/horizontal-book-image-section.cjs.map +1 -0
  464. package/dist/horizontal-book-image-section.d.mts +8 -0
  465. package/dist/horizontal-book-image-section.d.ts +8 -0
  466. package/dist/horizontal-book-image-section.js +2 -0
  467. package/dist/horizontal-book-image-section.js.map +1 -0
  468. package/dist/horizontal-image-list-section.cjs +2 -0
  469. package/dist/horizontal-image-list-section.cjs.map +1 -0
  470. package/dist/horizontal-image-list-section.d.mts +8 -0
  471. package/dist/horizontal-image-list-section.d.ts +8 -0
  472. package/dist/horizontal-image-list-section.js +2 -0
  473. package/dist/horizontal-image-list-section.js.map +1 -0
  474. package/dist/image-padding-section.cjs +2 -0
  475. package/dist/image-padding-section.cjs.map +1 -0
  476. package/dist/image-padding-section.d.mts +8 -0
  477. package/dist/image-padding-section.d.ts +8 -0
  478. package/dist/image-padding-section.js +2 -0
  479. package/dist/image-padding-section.js.map +1 -0
  480. package/dist/image-text-array-section.cjs +2 -0
  481. package/dist/image-text-array-section.cjs.map +1 -0
  482. package/dist/image-text-array-section.d.mts +21 -0
  483. package/dist/image-text-array-section.d.ts +21 -0
  484. package/dist/image-text-array-section.js +2 -0
  485. package/dist/image-text-array-section.js.map +1 -0
  486. package/dist/image-text-section.cjs +2 -0
  487. package/dist/image-text-section.cjs.map +1 -0
  488. package/dist/image-text-section.d.mts +9 -0
  489. package/dist/image-text-section.d.ts +9 -0
  490. package/dist/image-text-section.js +2 -0
  491. package/dist/image-text-section.js.map +1 -0
  492. package/dist/index.cjs +3 -0
  493. package/dist/index.cjs.map +1 -0
  494. package/dist/index.d.mts +162 -0
  495. package/dist/index.d.ts +162 -0
  496. package/dist/index.js +3 -0
  497. package/dist/index.js.map +1 -0
  498. package/dist/khaocoky.cjs +2 -0
  499. package/dist/khaocoky.cjs.map +1 -0
  500. package/dist/khaocoky.d.mts +24 -0
  501. package/dist/khaocoky.d.ts +24 -0
  502. package/dist/khaocoky.js +2 -0
  503. package/dist/khaocoky.js.map +1 -0
  504. package/dist/khaocokyv2.cjs +2 -0
  505. package/dist/khaocokyv2.cjs.map +1 -0
  506. package/dist/khaocokyv2.d.mts +24 -0
  507. package/dist/khaocokyv2.d.ts +24 -0
  508. package/dist/khaocokyv2.js +2 -0
  509. package/dist/khaocokyv2.js.map +1 -0
  510. package/dist/letter-section.cjs +2 -0
  511. package/dist/letter-section.cjs.map +1 -0
  512. package/dist/letter-section.d.mts +13 -0
  513. package/dist/letter-section.d.ts +13 -0
  514. package/dist/letter-section.js +2 -0
  515. package/dist/letter-section.js.map +1 -0
  516. package/dist/lexical-letter-section.cjs +2 -0
  517. package/dist/lexical-letter-section.cjs.map +1 -0
  518. package/dist/lexical-letter-section.d.mts +13 -0
  519. package/dist/lexical-letter-section.d.ts +13 -0
  520. package/dist/lexical-letter-section.js +2 -0
  521. package/dist/lexical-letter-section.js.map +1 -0
  522. package/dist/metaverse-section.cjs +2 -0
  523. package/dist/metaverse-section.cjs.map +1 -0
  524. package/dist/metaverse-section.d.mts +5 -0
  525. package/dist/metaverse-section.d.ts +5 -0
  526. package/dist/metaverse-section.js +2 -0
  527. package/dist/metaverse-section.js.map +1 -0
  528. package/dist/navigation-section.cjs +2 -0
  529. package/dist/navigation-section.cjs.map +1 -0
  530. package/dist/navigation-section.d.mts +10 -0
  531. package/dist/navigation-section.d.ts +10 -0
  532. package/dist/navigation-section.js +2 -0
  533. package/dist/navigation-section.js.map +1 -0
  534. package/dist/nguyen-kim-lucky-voucher.cjs +2 -0
  535. package/dist/nguyen-kim-lucky-voucher.cjs.map +1 -0
  536. package/dist/nguyen-kim-lucky-voucher.d.mts +8 -0
  537. package/dist/nguyen-kim-lucky-voucher.d.ts +8 -0
  538. package/dist/nguyen-kim-lucky-voucher.js +2 -0
  539. package/dist/nguyen-kim-lucky-voucher.js.map +1 -0
  540. package/dist/pet-profile-section.cjs +2 -0
  541. package/dist/pet-profile-section.cjs.map +1 -0
  542. package/dist/pet-profile-section.d.mts +26 -0
  543. package/dist/pet-profile-section.d.ts +26 -0
  544. package/dist/pet-profile-section.js +2 -0
  545. package/dist/pet-profile-section.js.map +1 -0
  546. package/dist/profile-section.cjs +2 -0
  547. package/dist/profile-section.cjs.map +1 -0
  548. package/dist/profile-section.d.mts +29 -0
  549. package/dist/profile-section.d.ts +29 -0
  550. package/dist/profile-section.js +2 -0
  551. package/dist/profile-section.js.map +1 -0
  552. package/dist/qua-tang-quoc-hoi.cjs +2 -0
  553. package/dist/qua-tang-quoc-hoi.cjs.map +1 -0
  554. package/dist/qua-tang-quoc-hoi.d.mts +18 -0
  555. package/dist/qua-tang-quoc-hoi.d.ts +18 -0
  556. package/dist/qua-tang-quoc-hoi.js +2 -0
  557. package/dist/qua-tang-quoc-hoi.js.map +1 -0
  558. package/dist/quiz-section.cjs +2 -0
  559. package/dist/quiz-section.cjs.map +1 -0
  560. package/dist/quiz-section.d.mts +24 -0
  561. package/dist/quiz-section.d.ts +24 -0
  562. package/dist/quiz-section.js +2 -0
  563. package/dist/quiz-section.js.map +1 -0
  564. package/dist/section-full-screen.cjs +2 -0
  565. package/dist/section-full-screen.cjs.map +1 -0
  566. package/dist/section-full-screen.d.mts +14 -0
  567. package/dist/section-full-screen.d.ts +14 -0
  568. package/dist/section-full-screen.js +2 -0
  569. package/dist/section-full-screen.js.map +1 -0
  570. package/dist/tet-cover-section1.cjs +2 -0
  571. package/dist/tet-cover-section1.cjs.map +1 -0
  572. package/dist/tet-cover-section1.d.mts +8 -0
  573. package/dist/tet-cover-section1.d.ts +8 -0
  574. package/dist/tet-cover-section1.js +2 -0
  575. package/dist/tet-cover-section1.js.map +1 -0
  576. package/dist/tet-cover-section2.cjs +2 -0
  577. package/dist/tet-cover-section2.cjs.map +1 -0
  578. package/dist/tet-cover-section2.d.mts +8 -0
  579. package/dist/tet-cover-section2.d.ts +8 -0
  580. package/dist/tet-cover-section2.js +2 -0
  581. package/dist/tet-cover-section2.js.map +1 -0
  582. package/dist/tet-lucky-money-section.cjs +2 -0
  583. package/dist/tet-lucky-money-section.cjs.map +1 -0
  584. package/dist/tet-lucky-money-section.d.mts +12 -0
  585. package/dist/tet-lucky-money-section.d.ts +12 -0
  586. package/dist/tet-lucky-money-section.js +2 -0
  587. package/dist/tet-lucky-money-section.js.map +1 -0
  588. package/dist/tet-lucky-money-section2.cjs +2 -0
  589. package/dist/tet-lucky-money-section2.cjs.map +1 -0
  590. package/dist/tet-lucky-money-section2.d.mts +12 -0
  591. package/dist/tet-lucky-money-section2.d.ts +12 -0
  592. package/dist/tet-lucky-money-section2.js +2 -0
  593. package/dist/tet-lucky-money-section2.js.map +1 -0
  594. package/dist/valentine.cjs +2 -0
  595. package/dist/valentine.cjs.map +1 -0
  596. package/dist/valentine.d.mts +29 -0
  597. package/dist/valentine.d.ts +29 -0
  598. package/dist/valentine.js +2 -0
  599. package/dist/valentine.js.map +1 -0
  600. package/dist/vertical-carousel-section.cjs +2 -0
  601. package/dist/vertical-carousel-section.cjs.map +1 -0
  602. package/dist/vertical-carousel-section.d.mts +8 -0
  603. package/dist/vertical-carousel-section.d.ts +8 -0
  604. package/dist/vertical-carousel-section.js +2 -0
  605. package/dist/vertical-carousel-section.js.map +1 -0
  606. package/dist/video-intro-section.cjs +2 -0
  607. package/dist/video-intro-section.cjs.map +1 -0
  608. package/dist/video-intro-section.d.mts +10 -0
  609. package/dist/video-intro-section.d.ts +10 -0
  610. package/dist/video-intro-section.js +2 -0
  611. package/dist/video-intro-section.js.map +1 -0
  612. package/dist/woman-day.cjs +2 -0
  613. package/dist/woman-day.cjs.map +1 -0
  614. package/dist/woman-day.d.mts +17 -0
  615. package/dist/woman-day.d.ts +17 -0
  616. package/dist/woman-day.js +2 -0
  617. package/dist/woman-day.js.map +1 -0
  618. package/entries/advance-profile-section.ts +1 -0
  619. package/entries/author-section.ts +1 -0
  620. package/entries/b-e-d-i-page-section.ts +2 -0
  621. package/entries/bao-ngay-nay2025-section.ts +1 -0
  622. package/entries/biz-card-profile-section.ts +1 -0
  623. package/entries/book-section.ts +1 -0
  624. package/entries/business-card-section.ts +1 -0
  625. package/entries/christmas.ts +1 -0
  626. package/entries/contact-section.ts +1 -0
  627. package/entries/cover-setion.ts +1 -0
  628. package/entries/gift-avatar-section.ts +1 -0
  629. package/entries/header-section.ts +1 -0
  630. package/entries/hesman-cert-section.ts +1 -0
  631. package/entries/hesman-greeting-section.ts +1 -0
  632. package/entries/hesman-metaverse-section.ts +1 -0
  633. package/entries/hesman-puzzle-section.ts +1 -0
  634. package/entries/hesman-thankyou-section.ts +1 -0
  635. package/entries/hesman-video-section.ts +1 -0
  636. package/entries/home-section.ts +1 -0
  637. package/entries/horizontal-book-image-section.ts +1 -0
  638. package/entries/horizontal-image-list-section.ts +1 -0
  639. package/entries/image-padding-section.ts +1 -0
  640. package/entries/image-text-array-section.ts +1 -0
  641. package/entries/image-text-section.ts +1 -0
  642. package/entries/khaocoky.ts +1 -0
  643. package/entries/khaocokyv2.ts +1 -0
  644. package/entries/letter-section.ts +1 -0
  645. package/entries/lexical-letter-section.ts +1 -0
  646. package/entries/metaverse-section.ts +1 -0
  647. package/entries/navigation-section.ts +2 -0
  648. package/entries/nguyen-kim-lucky-voucher.ts +1 -0
  649. package/entries/pet-profile-section.ts +1 -0
  650. package/entries/profile-section.ts +1 -0
  651. package/entries/qua-tang-quoc-hoi.ts +1 -0
  652. package/entries/quiz-section.ts +1 -0
  653. package/entries/section-full-screen.ts +1 -0
  654. package/entries/tet-cover-section1.ts +1 -0
  655. package/entries/tet-cover-section2.ts +1 -0
  656. package/entries/tet-lucky-money-section.ts +1 -0
  657. package/entries/tet-lucky-money-section2.ts +1 -0
  658. package/entries/valentine.ts +1 -0
  659. package/entries/vertical-carousel-section.ts +1 -0
  660. package/entries/video-intro-section.ts +1 -0
  661. package/entries/woman-day.ts +1 -0
  662. package/entry-points.json +47 -0
  663. package/exports-map.json +179 -0
  664. package/fonts.css +144 -0
  665. package/generate-exports.cjs +22 -0
  666. package/generate-exports.js +23 -0
  667. package/generate-tsup-entries.js +17 -0
  668. package/index.css +162 -0
  669. package/index.ts +23 -0
  670. package/package.json +306 -0
  671. package/postcss.config.js +6 -0
  672. package/regenerate-entries-direct.cjs +60 -0
  673. package/regenerate-entries.cjs +60 -0
  674. package/src/components/LandingPage/common/3DModel/ThreeModalTongla.tsx +114 -0
  675. package/src/components/LandingPage/common/3DModel/ThreeModel.tsx +210 -0
  676. package/src/components/LandingPage/common/3DModel/index.tsx +90 -0
  677. package/src/components/LandingPage/common/CarouselCustom/index.tsx +80 -0
  678. package/src/components/LandingPage/common/FadeInMotion/index.tsx +60 -0
  679. package/src/components/LandingPage/common/SectionFullScreen/index.tsx +68 -0
  680. package/src/components/LandingPage/common/Video/index.tsx +90 -0
  681. package/src/components/LandingPage/common/icons/3DCubeScanIcon.tsx +38 -0
  682. package/src/components/LandingPage/common/icons/3DFlipIcon.tsx +27 -0
  683. package/src/components/LandingPage/common/icons/ARExploreIcon.tsx +15 -0
  684. package/src/components/LandingPage/common/icons/AcreageIcon.tsx +68 -0
  685. package/src/components/LandingPage/common/icons/ArrowDownIcon.tsx +19 -0
  686. package/src/components/LandingPage/common/icons/ArrowLeftIcon.tsx +21 -0
  687. package/src/components/LandingPage/common/icons/ArrowRightIcon.tsx +21 -0
  688. package/src/components/LandingPage/common/icons/ArrowUpIcon.tsx +21 -0
  689. package/src/components/LandingPage/common/icons/BurgerIcon.tsx +21 -0
  690. package/src/components/LandingPage/common/icons/CircleDownIcon.tsx +29 -0
  691. package/src/components/LandingPage/common/icons/ClockIcon.tsx +28 -0
  692. package/src/components/LandingPage/common/icons/CloseIcon.tsx +23 -0
  693. package/src/components/LandingPage/common/icons/CloseQuotesIcon.tsx +17 -0
  694. package/src/components/LandingPage/common/icons/CopyIcon.tsx +31 -0
  695. package/src/components/LandingPage/common/icons/CopyrightByPGLIcon.tsx +80 -0
  696. package/src/components/LandingPage/common/icons/DoubleArrowDownIcon.tsx +31 -0
  697. package/src/components/LandingPage/common/icons/EyeIcon.tsx +30 -0
  698. package/src/components/LandingPage/common/icons/FlipIcon.tsx +23 -0
  699. package/src/components/LandingPage/common/icons/FourthMedalIcon.tsx +287 -0
  700. package/src/components/LandingPage/common/icons/GoBackIcon.tsx +23 -0
  701. package/src/components/LandingPage/common/icons/GoogleIcon.tsx +41 -0
  702. package/src/components/LandingPage/common/icons/GrindSize.tsx +321 -0
  703. package/src/components/LandingPage/common/icons/HeartFillIcon.tsx +21 -0
  704. package/src/components/LandingPage/common/icons/HeightIcon.tsx +23 -0
  705. package/src/components/LandingPage/common/icons/IconAuction.tsx +17 -0
  706. package/src/components/LandingPage/common/icons/IconCalendar.tsx +16 -0
  707. package/src/components/LandingPage/common/icons/IconExternalLink.tsx +21 -0
  708. package/src/components/LandingPage/common/icons/IconMuted.tsx +17 -0
  709. package/src/components/LandingPage/common/icons/IconReset.tsx +19 -0
  710. package/src/components/LandingPage/common/icons/IconUmuted.tsx +18 -0
  711. package/src/components/LandingPage/common/icons/InfoFillIcon.tsx +20 -0
  712. package/src/components/LandingPage/common/icons/KeyIcon.tsx +24 -0
  713. package/src/components/LandingPage/common/icons/KyokaiIcon.tsx +53 -0
  714. package/src/components/LandingPage/common/icons/LanguageIcon.tsx +49 -0
  715. package/src/components/LandingPage/common/icons/LikeIcon.tsx +29 -0
  716. package/src/components/LandingPage/common/icons/LogoutIcon.tsx +23 -0
  717. package/src/components/LandingPage/common/icons/MailIcon.tsx +32 -0
  718. package/src/components/LandingPage/common/icons/OnchainIcon.tsx +97 -0
  719. package/src/components/LandingPage/common/icons/OpenQuotesIcon.tsx +17 -0
  720. package/src/components/LandingPage/common/icons/PhoneIcon.tsx +22 -0
  721. package/src/components/LandingPage/common/icons/PlayIcon.tsx +21 -0
  722. package/src/components/LandingPage/common/icons/PressureClockIcon.tsx +32 -0
  723. package/src/components/LandingPage/common/icons/ProfileIcon.tsx +30 -0
  724. package/src/components/LandingPage/common/icons/ReadingBookIcon.tsx +22 -0
  725. package/src/components/LandingPage/common/icons/ScaleIcon.tsx +28 -0
  726. package/src/components/LandingPage/common/icons/SecondMedalIcon.tsx +1137 -0
  727. package/src/components/LandingPage/common/icons/SignoutIcon.tsx +30 -0
  728. package/src/components/LandingPage/common/icons/SparkleIcon.tsx +28 -0
  729. package/src/components/LandingPage/common/icons/TemperatureIcon.tsx +20 -0
  730. package/src/components/LandingPage/common/icons/ThirdMedalIcon.tsx +620 -0
  731. package/src/components/LandingPage/common/icons/TickIcon.tsx +20 -0
  732. package/src/components/LandingPage/common/icons/TickIconBlue.tsx +30 -0
  733. package/src/components/LandingPage/common/icons/TickIconGreen.tsx +30 -0
  734. package/src/components/LandingPage/common/icons/TouchIcon.tsx +22 -0
  735. package/src/components/LandingPage/common/icons/WaterDropIcon.tsx +23 -0
  736. package/src/components/LandingPage/common/icons/WaterIcon.tsx +37 -0
  737. package/src/components/LandingPage/common/icons/Weight.tsx +36 -0
  738. package/src/components/LandingPage/common/icons/WinnerMedalIcon.tsx +1185 -0
  739. package/src/components/LandingPage/common/icons/YieldIcon.tsx +36 -0
  740. package/src/components/LandingPage/common/icons/ZoomInFillIcon.tsx +20 -0
  741. package/src/components/LandingPage/common/icons/icons-v2/BurgerIcon.tsx +23 -0
  742. package/src/components/LandingPage/common/icons/icons-v2/LogoNomion.tsx +56 -0
  743. package/src/components/LandingPage/common/icons/icons-v2/NdachainIcon.tsx +251 -0
  744. package/src/components/LandingPage/common/icons/icons-v2/OnchainIcon.tsx +97 -0
  745. package/src/components/LandingPage/common/icons/icons-v2/index.ts +4 -0
  746. package/src/components/LandingPage/common/icons/index.ts +23 -0
  747. package/src/components/LandingPage/common/icons/social-icons/FacebookIcon.tsx +24 -0
  748. package/src/components/LandingPage/common/icons/social-icons/IconMail.tsx +17 -0
  749. package/src/components/LandingPage/common/icons/social-icons/IconPhone.tsx +21 -0
  750. package/src/components/LandingPage/common/icons/social-icons/InstagramIcon.tsx +24 -0
  751. package/src/components/LandingPage/common/icons/social-icons/LinkedinIcon.tsx +23 -0
  752. package/src/components/LandingPage/common/icons/social-icons/LocationIcon.tsx +16 -0
  753. package/src/components/LandingPage/common/icons/social-icons/TelegramIcon.tsx +23 -0
  754. package/src/components/LandingPage/common/icons/social-icons/ThreadsIcon.tsx +15 -0
  755. package/src/components/LandingPage/common/icons/social-icons/TiktokIcon.tsx +16 -0
  756. package/src/components/LandingPage/common/icons/social-icons/TwitterIcon.tsx +28 -0
  757. package/src/components/LandingPage/common/icons/social-icons/WebsiteIcon.tsx +0 -0
  758. package/src/components/LandingPage/common/icons/social-icons/YoutubeIcon.tsx +26 -0
  759. package/src/components/LandingPage/common/icons/social-icons/index.tsx +19 -0
  760. package/src/components/LandingPage/common/shadcn-ui-kit/Dialog.tsx +124 -0
  761. package/src/components/LandingPage/common/shadcn-ui-kit/input.tsx +24 -0
  762. package/src/components/LandingPage/common/shadcn-ui-kit/select.tsx +160 -0
  763. package/src/components/LandingPage/common/ui-kit/atomics/ BaseModal.tsx +60 -0
  764. package/src/components/LandingPage/common/ui-kit/atomics/BaseButton.tsx +25 -0
  765. package/src/components/LandingPage/common/ui-kit/atomics/BaseIcon.tsx +18 -0
  766. package/src/components/LandingPage/common/ui-kit/atomics/BaseInput.tsx +58 -0
  767. package/src/components/LandingPage/common/ui-kit/atomics/CopyClipboard.tsx +64 -0
  768. package/src/components/LandingPage/common/ui-kit/atomics/HesmanButton.tsx +23 -0
  769. package/src/components/LandingPage/common/ui-kit/atomics/HesmanGradientText.tsx +22 -0
  770. package/src/components/LandingPage/common/ui-kit/atomics/Tag.tsx +47 -0
  771. package/src/components/LandingPage/common/ui-kit/atomics/Typography.tsx +63 -0
  772. package/src/components/LandingPage/common/ui-kit/atomics/index.tsx +4 -0
  773. package/src/components/LandingPage/common/ui-kit/moleculars/AudioPlayer.tsx +130 -0
  774. package/src/components/LandingPage/common/ui-kit/moleculars/AuthorContext.tsx +26 -0
  775. package/src/components/LandingPage/common/ui-kit/moleculars/AuthorModal.tsx +147 -0
  776. package/src/components/LandingPage/common/ui-kit/moleculars/AuthorModalDeDo.tsx +91 -0
  777. package/src/components/LandingPage/common/ui-kit/moleculars/AuthorWithLabel.tsx +23 -0
  778. package/src/components/LandingPage/common/ui-kit/moleculars/BackgroundImage.tsx +34 -0
  779. package/src/components/LandingPage/common/ui-kit/moleculars/ButtonCommingSoon.tsx +34 -0
  780. package/src/components/LandingPage/common/ui-kit/moleculars/CollasibleText.tsx +109 -0
  781. package/src/components/LandingPage/common/ui-kit/moleculars/ContactCard.tsx +167 -0
  782. package/src/components/LandingPage/common/ui-kit/moleculars/DidInfoModal.tsx +73 -0
  783. package/src/components/LandingPage/common/ui-kit/moleculars/ImageWithBackground.tsx +39 -0
  784. package/src/components/LandingPage/common/ui-kit/moleculars/LexicalParagraph.tsx +15 -0
  785. package/src/components/LandingPage/common/ui-kit/moleculars/ListButton.tsx +51 -0
  786. package/src/components/LandingPage/common/ui-kit/moleculars/ListContactSocial.tsx +103 -0
  787. package/src/components/LandingPage/common/ui-kit/moleculars/MetaInfo.tsx +76 -0
  788. package/src/components/LandingPage/common/ui-kit/moleculars/MetaInfoModal.tsx +96 -0
  789. package/src/components/LandingPage/common/ui-kit/moleculars/NftInfoModal.tsx +102 -0
  790. package/src/components/LandingPage/common/ui-kit/moleculars/OwnerName.tsx +25 -0
  791. package/src/components/LandingPage/common/ui-kit/moleculars/ReadmoreModal.tsx +38 -0
  792. package/src/components/LandingPage/common/ui-kit/moleculars/RenderMedia.tsx +48 -0
  793. package/src/components/LandingPage/common/ui-kit/moleculars/ScrollDownGuide.tsx +34 -0
  794. package/src/components/LandingPage/common/ui-kit/moleculars/TagName.stories.tsx +33 -0
  795. package/src/components/LandingPage/common/ui-kit/moleculars/TagName.tsx +33 -0
  796. package/src/components/LandingPage/common/ui-kit/moleculars/Title.stories.tsx +34 -0
  797. package/src/components/LandingPage/common/ui-kit/moleculars/Title.tsx +66 -0
  798. package/src/components/LandingPage/common/ui-kit/moleculars/VideoRef.tsx +66 -0
  799. package/src/components/LandingPage/common/ui-kit/organisms/AdvanceProfileSection/index.tsx +152 -0
  800. package/src/components/LandingPage/common/ui-kit/organisms/AuthorSection/index.tsx +156 -0
  801. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDICarouselSection.tsx +115 -0
  802. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIContactSection.tsx +166 -0
  803. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIBentoImageSection.tsx +170 -0
  804. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIIntroSection.tsx +69 -0
  805. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDILetterSection.tsx +71 -0
  806. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIPage1Section.tsx +102 -0
  807. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BgLetter.tsx +29 -0
  808. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/constants.ts +35 -0
  809. package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/index.tsx +171 -0
  810. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/AudioTheme.tsx +30 -0
  811. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/GenerateGreeting.tsx +528 -0
  812. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/HomeSection.tsx +130 -0
  813. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/IntroSection.tsx +105 -0
  814. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/LetterSection.tsx +21 -0
  815. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/NgayNayIcon.tsx +31 -0
  816. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/UploadImage.tsx +67 -0
  817. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/constant.ts +118 -0
  818. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/icons.tsx +153 -0
  819. package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/index.tsx +169 -0
  820. package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/ContactCard.tsx +166 -0
  821. package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/ShareButton.tsx +113 -0
  822. package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/index.tsx +395 -0
  823. package/src/components/LandingPage/common/ui-kit/organisms/BookSection/BookCoverSection.tsx +74 -0
  824. package/src/components/LandingPage/common/ui-kit/organisms/BookSection/BookSection.tsx +630 -0
  825. package/src/components/LandingPage/common/ui-kit/organisms/BookSection/NgheLetterSection.tsx +120 -0
  826. package/src/components/LandingPage/common/ui-kit/organisms/BookSection/index.tsx +5 -0
  827. package/src/components/LandingPage/common/ui-kit/organisms/BookSection/utils/index.ts +29 -0
  828. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BgRectangle.tsx +19 -0
  829. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BusinessCardAvtCircle.tsx +78 -0
  830. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BusinessCardAvtFull.tsx +77 -0
  831. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/FragmentContactInfo.tsx +214 -0
  832. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconAddress.tsx +17 -0
  833. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconFacebook.tsx +17 -0
  834. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconInsta.tsx +17 -0
  835. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconLinkedin.tsx +17 -0
  836. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconMail.tsx +17 -0
  837. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconPhone.tsx +17 -0
  838. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconTele.tsx +17 -0
  839. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconWeb.tsx +17 -0
  840. package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/index.tsx +57 -0
  841. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas1GreetingSection.tsx +159 -0
  842. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas1HomeSection.tsx +112 -0
  843. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas2HomeSection.tsx +113 -0
  844. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chrismas2GreetingSection.tsx +96 -0
  845. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Christmas1LetterSection.tsx +63 -0
  846. package/src/components/LandingPage/common/ui-kit/organisms/Christmas/index.tsx +5 -0
  847. package/src/components/LandingPage/common/ui-kit/organisms/ContactSection/index.tsx +137 -0
  848. package/src/components/LandingPage/common/ui-kit/organisms/CoverSetion/index.tsx +62 -0
  849. package/src/components/LandingPage/common/ui-kit/organisms/GiftAvatarSection/index.tsx +48 -0
  850. package/src/components/LandingPage/common/ui-kit/organisms/HeaderSection/HeaderAnimation.tsx +27 -0
  851. package/src/components/LandingPage/common/ui-kit/organisms/HeaderSection/HeaderSection.tsx +61 -0
  852. package/src/components/LandingPage/common/ui-kit/organisms/HesmanCertSection/index.tsx +97 -0
  853. package/src/components/LandingPage/common/ui-kit/organisms/HesmanGreetingSection/index.tsx +108 -0
  854. package/src/components/LandingPage/common/ui-kit/organisms/HesmanMetaverseSection/index.tsx +79 -0
  855. package/src/components/LandingPage/common/ui-kit/organisms/HesmanPuzzleSection/Puzzle.tsx +203 -0
  856. package/src/components/LandingPage/common/ui-kit/organisms/HesmanPuzzleSection/index.tsx +129 -0
  857. package/src/components/LandingPage/common/ui-kit/organisms/HesmanThankyouSection/index.tsx +93 -0
  858. package/src/components/LandingPage/common/ui-kit/organisms/HesmanVideoSection/index.tsx +80 -0
  859. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeNewspaperSection.tsx +108 -0
  860. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSection.stories.tsx +61 -0
  861. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSection.tsx +261 -0
  862. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSouvenirSection/HomeSouvenirSection.tsx +134 -0
  863. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSouvenirSection/ImageWithFallback.tsx +30 -0
  864. package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/index.tsx +3 -0
  865. package/src/components/LandingPage/common/ui-kit/organisms/HorizontalBookImageSection/HandSwipe.tsx +26 -0
  866. package/src/components/LandingPage/common/ui-kit/organisms/HorizontalBookImageSection/index.tsx +90 -0
  867. package/src/components/LandingPage/common/ui-kit/organisms/HorizontalImageListSection/index.tsx +105 -0
  868. package/src/components/LandingPage/common/ui-kit/organisms/ImagePaddingSection/index.tsx +27 -0
  869. package/src/components/LandingPage/common/ui-kit/organisms/ImageTextArraySection/index.tsx +43 -0
  870. package/src/components/LandingPage/common/ui-kit/organisms/ImageTextSection/index.tsx +114 -0
  871. package/src/components/LandingPage/common/ui-kit/organisms/LetterSection/index.tsx +191 -0
  872. package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/AudioLexicalLetterSection.tsx +141 -0
  873. package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/LexicalletterSection.tsx +175 -0
  874. package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/index.tsx +2 -0
  875. package/src/components/LandingPage/common/ui-kit/organisms/MetaverseSection/index.tsx +208 -0
  876. package/src/components/LandingPage/common/ui-kit/organisms/NavigationSection/ModalWelcomeInput.tsx +85 -0
  877. package/src/components/LandingPage/common/ui-kit/organisms/NavigationSection/index.tsx +99 -0
  878. package/src/components/LandingPage/common/ui-kit/organisms/NguyenKimLuckyVoucher/index.tsx +156 -0
  879. package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetContactSection.tsx +0 -0
  880. package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetInfoSection.tsx +0 -0
  881. package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetListImage.tsx +0 -0
  882. package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/index.tsx +230 -0
  883. package/src/components/LandingPage/common/ui-kit/organisms/ProfileSection/index.tsx +324 -0
  884. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme12.tsx +327 -0
  885. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme3.tsx +9 -0
  886. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme4.tsx +9 -0
  887. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme5.tsx +383 -0
  888. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/InforSection.tsx +94 -0
  889. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/QuaTangQuocHoiSection.tsx +524 -0
  890. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/components/LanguageSwitcher.tsx +77 -0
  891. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/constant/data.ts +87 -0
  892. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/context/LanguageContext.tsx +81 -0
  893. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/hook/useLanguage.ts +13 -0
  894. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/index.ts +2 -0
  895. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/locale/en.json +39 -0
  896. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/locale/fr.json +39 -0
  897. package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/types.ts +58 -0
  898. package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/ViewAnswer.tsx +48 -0
  899. package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/ViewQuestion.tsx +48 -0
  900. package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/index.tsx +48 -0
  901. package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection1/TetCoverSection1.tsx +36 -0
  902. package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection1/index.tsx +1 -0
  903. package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection2/TetCoverSection2.tsx +33 -0
  904. package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection2/index.tsx +1 -0
  905. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckeyMoneySectionAdvance.tsx +197 -0
  906. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckyMoneySection.tsx +164 -0
  907. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/index.tsx +2 -0
  908. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/LuckyMoneySection2.tsx +162 -0
  909. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/LuckyMoneySection2Advance.tsx +183 -0
  910. package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/index.tsx +2 -0
  911. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineGreetingSection.tsx +140 -0
  912. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineHomeSection.tsx +94 -0
  913. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineLetterSection.tsx +45 -0
  914. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopGreetingSection.tsx +141 -0
  915. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopHomeSection.tsx +73 -0
  916. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopLetterSection.tsx +38 -0
  917. package/src/components/LandingPage/common/ui-kit/organisms/Valentine/index.tsx +6 -0
  918. package/src/components/LandingPage/common/ui-kit/organisms/VerticalCarouselSection/index.tsx +63 -0
  919. package/src/components/LandingPage/common/ui-kit/organisms/VideoIntroSection/index.tsx +247 -0
  920. package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanGreetingSection.tsx +140 -0
  921. package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanHomeSection.tsx +94 -0
  922. package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanLetterSection.tsx +43 -0
  923. package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/index.tsx +3 -0
  924. package/src/components/LandingPage/common/ui-kit/organisms/index.tsx +147 -0
  925. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyCarouselSection.tsx +101 -0
  926. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyCompareSection.tsx +98 -0
  927. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyContactSection.tsx +151 -0
  928. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyHomeSection.tsx +194 -0
  929. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyImageTextSection.tsx +89 -0
  930. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyTitle.tsx +51 -0
  931. package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/index.tsx +5 -0
  932. package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyHome.tsx +169 -0
  933. package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyImageText.tsx +105 -0
  934. package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyListImageText.tsx +60 -0
  935. package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyMemories.tsx +3 -0
  936. package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/index.tsx +4 -0
  937. package/src/components/LandingPage/common/ui-kit/types/base.ts +31 -0
  938. package/src/components/LandingPage/constants/index.ts +2 -0
  939. package/src/components/LandingPage/device/index.tsx +30 -0
  940. package/src/components/LandingPage/hooks/audio/index.tsx +1 -0
  941. package/src/components/LandingPage/hooks/audio/useMediaContext.tsx +126 -0
  942. package/src/components/LandingPage/hooks/index.tsx +5 -0
  943. package/src/components/LandingPage/hooks/useBookMenuContext.tsx +43 -0
  944. package/src/components/LandingPage/hooks/useFullScreenContext.tsx +86 -0
  945. package/src/components/LandingPage/hooks/useImageOrientation.tsx +24 -0
  946. package/src/components/LandingPage/hooks/usePGLModalContext.tsx +46 -0
  947. package/src/components/LandingPage/models/base-section.ts +16 -0
  948. package/src/components/LandingPage/models/general.ts +67 -0
  949. package/src/components/LandingPage/models/theme.ts +8 -0
  950. package/src/components/LandingPage/utils/helper.ts +225 -0
  951. package/src/constants/index.ts +1 -0
  952. package/src/constants/templates/enum.ts +62 -0
  953. package/src/types/NFT.ts +35 -0
  954. package/src/utils/index.ts +12 -0
  955. package/src/utils/web3.ts +75 -0
  956. package/stories/Button/ButtonV2.stories.ts +25 -0
  957. package/stories/Button/ButtonV2.tsx +22 -0
  958. package/stories/Button.stories.ts +52 -0
  959. package/stories/Button.tsx +48 -0
  960. package/stories/Configure.mdx +364 -0
  961. package/stories/Header.stories.ts +33 -0
  962. package/stories/Header.tsx +67 -0
  963. package/stories/Page.stories.ts +32 -0
  964. package/stories/Page.tsx +86 -0
  965. package/stories/assets/accessibility.png +0 -0
  966. package/stories/assets/accessibility.svg +5 -0
  967. package/stories/assets/addon-library.png +0 -0
  968. package/stories/assets/assets.png +0 -0
  969. package/stories/assets/avif-test-image.avif +0 -0
  970. package/stories/assets/context.png +0 -0
  971. package/stories/assets/discord.svg +15 -0
  972. package/stories/assets/docs.png +0 -0
  973. package/stories/assets/figma-plugin.png +0 -0
  974. package/stories/assets/github.svg +3 -0
  975. package/stories/assets/share.png +0 -0
  976. package/stories/assets/styling.png +0 -0
  977. package/stories/assets/testing.png +0 -0
  978. package/stories/assets/theming.png +0 -0
  979. package/stories/assets/tutorials.svg +12 -0
  980. package/stories/assets/youtube.svg +4 -0
  981. package/stories/button.css +30 -0
  982. package/stories/header.css +32 -0
  983. package/stories/page.css +69 -0
  984. package/tailwind.config.js +154 -0
  985. package/tsconfig.json +44 -0
  986. package/tsconfig.node.json +12 -0
  987. package/tsup.config.ts +71 -0
  988. package/turbo/generators/config.ts +31 -0
  989. package/turbo/generators/templates/component.hbs +14 -0
  990. package/types/model-viewer.d.ts +16 -0
  991. package/types.ts +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/LexicalletterSection.tsx","../src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/AudioLexicalLetterSection.tsx"],"names":["LexicalLetterSection","props","id","sectionData","background","description","lexicalStateRef","useRef","containerRef","canvasRef","htmlPages","setHtmlPages","useState","handlePagination","LINE_HEIGHT","containerWidth","containerHeight","maxLinePerPage","pages","pageContent","currentLine","currentLineHtml","currentLineNumber","ctx","style","fontSize","fontWeight","fontStyle","fontFamily","addNewLineToPageContent","resetNewPage","handlePushPageAndReset","checkLastLineAndPush","handleLineBreak","lexicalIterator","LexicalStateIterator","currentNode","nextNode","textContent","isBold","words","i","isLastWordOfParagraph","word","htmlWord","separator","renderRestPages","p","index","jsxs","SectionFullScreen_default","jsx","BackgroundImage_default","parse","useEffect","serializedState","debouncedHandleResize","debounce","Fragment","LexicalletterSection_default","AudioLexicalLetterSection","configTheme","translations","audio","primaryColor","audioRef","contentRef","isModalOpen","setIsModalOpen","isOverflowing","setIsOverflowing","audioSrc","isSnapScroll","checkOverflow","scrollHeight","clientHeight","resizeObserver","toggleModal","renderContent","content","getContentFromLexicalValue","BaseModal_default","twMerge","AudioPlayer_default","AudioLexicalLetterSection_default"],"mappings":"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","file":"chunk-C6LFO5DZ.js","sourcesContent":["import { BaseSectionProps } from \"../../../../models/base-section\";\nimport { parse } from \"@phygitallabs/helpers\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Field } from \"../../types/base\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\nimport {\n LexicalStateIterator,\n SerializedEditorState,\n} from '@phygitallabs/core-ui/components/rich-editor';\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { debounce } from 'lodash-es';\n\ninterface Props extends BaseSectionProps {}\ninterface SectionData {\n background: Field;\n description: Field;\n}\n\nconst LexicalLetterSection = (props: Props) => {\n const { id, sectionData } = props;\n const { background, description } = sectionData as SectionData;\n\n const lexicalStateRef = useRef<SerializedEditorState | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [htmlPages, setHtmlPages] = useState<string[]>([]);\n\n const handlePagination = () => {\n if (!containerRef.current || !lexicalStateRef.current || !canvasRef.current)\n return;\n\n const LINE_HEIGHT = 28;\n const containerWidth = containerRef.current.offsetWidth;\n const containerHeight = containerRef.current.offsetHeight;\n const maxLinePerPage = Math.floor(containerHeight / LINE_HEIGHT);\n\n const pages: string[] = [];\n let pageContent = \"\";\n let currentLine = \"\";\n let currentLineHtml = \"\";\n let currentLineNumber = 0;\n\n //CANVAS\n const canvas = canvasRef.current;\n const ctx = canvas.getContext(\"2d\")!;\n const style = window.getComputedStyle(containerRef.current);\n const { fontSize, fontWeight, fontStyle, fontFamily } = style;\n ctx.font = `${fontStyle} ${fontWeight} ${fontSize} ${fontFamily}`;\n\n const addNewLineToPageContent = () => {\n pageContent += currentLineHtml;\n currentLineNumber++;\n };\n\n const resetNewPage = () => {\n pageContent = \"\";\n currentLineNumber = 0;\n };\n\n const handlePushPageAndReset = () => {\n pages.push(pageContent);\n resetNewPage();\n };\n\n const checkLastLineAndPush = () => {\n const isLastLine = currentLineNumber === maxLinePerPage;\n if (isLastLine) {\n handlePushPageAndReset();\n }\n };\n\n const handleLineBreak = () => {\n currentLineHtml += \"<br>\";\n addNewLineToPageContent();\n checkLastLineAndPush();\n currentLine = \"\";\n currentLineHtml = \"\";\n };\n\n const lexicalIterator = new LexicalStateIterator(lexicalStateRef.current);\n while (lexicalIterator.hasNext()) {\n const currentNode = lexicalIterator.next()!;\n const nextNode = lexicalIterator.lookNext();\n const nodeType = currentNode?.type;\n switch (nodeType) {\n case \"paragraph\":\n const children = currentNode.children;\n if (children.length === 0) handleLineBreak();\n break;\n case \"linebreak\":\n handleLineBreak();\n break;\n case \"text\":\n const textContent = currentNode.text as string;\n const isBold = (currentNode.format as unknown as number) === 1;\n const words = textContent.split(\" \");\n for (let i = 0; i < words.length; i++) {\n const isLastWordOfParagraph =\n i === words.length - 1 && nextNode?.type === \"paragraph\";\n let word = words[i];\n let htmlWord = word;\n if (isBold) htmlWord = `<span className=\"font-bold\">${word}</span>`;\n const separator = i === 0 ? \"\" : \" \";\n const currentLineStillHasSpace =\n ctx.measureText(`${currentLine}${separator}${word}`).width <\n containerWidth;\n if (currentLineStillHasSpace) {\n currentLine += `${separator}${word}`;\n currentLineHtml += `${separator}${htmlWord}`;\n if (isLastWordOfParagraph) handleLineBreak();\n } else {\n addNewLineToPageContent();\n checkLastLineAndPush();\n currentLine = ` ${word}`;\n currentLineHtml = ` ${htmlWord}`;\n }\n }\n }\n }\n addNewLineToPageContent();\n handlePushPageAndReset();\n setHtmlPages(pages);\n };\n\n const renderRestPages = () => {\n if (htmlPages.length <= 1) return;\n const pages = htmlPages.slice(1, htmlPages.length);\n const renderedPages = pages.map((p, index) => {\n return (\n <SectionFullScreen key={index} name={`${id}-${index}`}>\n <BackgroundImage field={background} />\n <div className=\"relative z-50 h-full w-full px-5 pt-[60px]\">\n <div className=\"h-full w-full text-justify text-base leading-7\">\n {parse(p)}\n </div>\n </div>\n </SectionFullScreen>\n );\n });\n return renderedPages;\n };\n\n useEffect(() => {\n const serializedState = description?.value?.serializedState;\n if (!serializedState) return;\n lexicalStateRef.current = JSON.parse(serializedState);\n handlePagination();\n }, [description?.value]);\n\n useEffect(() => {\n const debouncedHandleResize = debounce(handlePagination, 200);\n window.addEventListener(\"resize\", debouncedHandleResize);\n return () => window.removeEventListener(\"resize\", debouncedHandleResize);\n }, []);\n\n return (\n <>\n <SectionFullScreen name={id}>\n <BackgroundImage field={background} />\n <div className=\"relative z-40 h-full w-full px-5 pb-4 pt-[60px]\">\n <div\n ref={containerRef}\n className=\"h-full w-full text-justify text-base leading-7\"\n >\n {!!htmlPages[0] && parse(htmlPages[0])}\n </div>\n </div>\n <canvas ref={canvasRef} className=\"invisible\" />\n </SectionFullScreen>\n {renderRestPages()}\n </>\n );\n};\n\nexport default LexicalLetterSection;\n","import { BaseSectionProps } from \"../../../../models/base-section\";\nimport { getContentFromLexicalValue } from \"@phygitallabs/helpers\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Field } from \"../../types/base\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport AudioPlayer from \"../../moleculars/AudioPlayer\";\nimport { Media } from \"../../../../../LandingPage/models/general\";\nimport { twMerge } from \"tailwind-merge\";\nimport BaseModal from \"../../atomics/ BaseModal\";\n\ninterface Props extends BaseSectionProps {\n translations?: any;\n}\ninterface SectionData {\n background: Field;\n description: Field;\n audio: Field<Media>;\n text_color?: Field<string>;\n}\n\nconst AudioLexicalLetterSection = (props: Props) => {\n const { id, sectionData, configTheme, translations } = props;\n const { background, description, audio } = sectionData as SectionData;\n const primaryColor = configTheme?.primary_color;\n const audioRef = useRef<HTMLAudioElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isOverflowing, setIsOverflowing] = useState(false);\n\n const audioSrc = audio?.value?.url;\n const isSnapScroll = configTheme?.scroll_snap ?? true;\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const checkOverflow = () => {\n if (contentRef.current && isSnapScroll) {\n const { scrollHeight, clientHeight } = contentRef.current;\n setIsOverflowing(scrollHeight > clientHeight);\n }\n };\n\n useEffect(() => {\n checkOverflow();\n\n const resizeObserver = new ResizeObserver(checkOverflow);\n if (contentRef.current) {\n resizeObserver.observe(contentRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [description?.value, isSnapScroll]);\n\n const toggleModal = () => {\n setIsModalOpen(!isModalOpen);\n };\n\n const renderContent = () => {\n const content =\n description?.value && getContentFromLexicalValue(description.value);\n\n if (!isSnapScroll) {\n return <div className=\"h-full w-full text-base leading-7\">{content}</div>;\n }\n\n return (\n <div className=\"relative h-full w-full\">\n <div\n ref={contentRef}\n className=\"h-full w-full overflow-hidden text-base leading-7\"\n style={{\n maskImage: isOverflowing\n ? \"linear-gradient(to bottom, black 70%, transparent 100%)\"\n : \"none\",\n WebkitMaskImage: isOverflowing\n ? \"linear-gradient(to bottom, black 70%, transparent 100%)\"\n : \"none\",\n }}\n >\n {content}\n </div>\n\n {isOverflowing && (\n <button\n type=\"button\"\n onClick={toggleModal}\n className=\"absolute bottom-0 right-0 pb-2 text-center text-sm font-medium text-white hover:from-black/90 transition-all\"\n style={{ color: primaryColor }}\n >\n {translations?.readMore || \"Read more\"}\n </button>\n )}\n\n <BaseModal\n isOpen={isModalOpen}\n toggleModal={toggleModal}\n style={{\n overflow: \"scroll\",\n }}\n className=\"max-w-4xl bg-white/20 border-none\"\n closeIconClassName=\"!border-none text-black\"\n hasExitIcon={true}\n >\n <div className=\"max-h-[70vh] overflow-y-auto text-base leading-7 p-4\">\n {content}\n </div>\n </BaseModal>\n </div>\n );\n };\n\n return (\n <>\n <SectionFullScreen\n name={id}\n style={{ color: primaryColor }}\n isSnapScroll={isSnapScroll}\n >\n <BackgroundImage field={background} />\n <div className=\"relative z-40 h-full w-full px-5 pb-4 pt-[60px]\">\n <div\n ref={containerRef}\n className={twMerge(\n \"h-full w-full text-base leading-7\",\n !!audioSrc && \"h-[calc(100%-60px)]\"\n )}\n >\n {renderContent()}\n {!!audioSrc && (\n <AudioPlayer src={audioSrc} audioRef={audioRef} id={id!} />\n )}\n </div>\n </div>\n </SectionFullScreen>\n </>\n );\n};\n\nexport default AudioLexicalLetterSection;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-6GUVMAUD.js';import {a as a$1}from'./chunk-GPBY3OXV.js';import {useState}from'react';import {parse}from'@phygitallabs/helpers';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var f=({field:t,configTheme:l,readMoreText:s})=>{let{value:d}=t,[p,n]=useState(false),o=()=>n(i=>!i);return jsxs(Fragment,{children:[jsx("div",{onClick:o,children:jsx(a,{variant:"p",className:"text-center text-sm underline underline-offset-4",children:s})}),jsx(a$1,{isOpen:p,toggleModal:o,style:{backgroundColor:l?.background_color,overflow:"scroll"},children:jsx("p",{className:"text-neutral-1",children:parse(d||"")})})]})},T=f;export{T as a};//# sourceMappingURL=chunk-CD4LRHKJ.js.map
2
+ //# sourceMappingURL=chunk-CD4LRHKJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/moleculars/ReadmoreModal.tsx"],"names":["ReadmoreModal","field","configTheme","readMoreText","value","isOpen","setIsOpen","useState","toggleModal","pre","jsxs","Fragment","jsx","Typography_default","BaseModal_default","parse","ReadmoreModal_default"],"mappings":"wMASA,IAAMA,CAAAA,CAAgB,CAAC,CAAE,KAAA,CAAAC,CAAAA,CAAO,WAAA,CAAAC,CAAAA,CAAa,YAAA,CAAAC,CAAa,CAAA,GAAqB,CAC7E,GAAM,CAAE,KAAA,CAAAC,CAAM,CAAA,CAAIH,CAAAA,CACZ,CAACI,CAAAA,CAAQC,CAAS,EAAIC,QAAAA,CAAS,KAAK,EACpCC,CAAAA,CAAc,IAAMF,EAAWG,CAAAA,EAAQ,CAACA,CAAG,CAAA,CACjD,OACEC,IAAAA,CAAAC,SAAA,CACE,QAAA,CAAA,CAAAC,IAAC,KAAA,CAAA,CAAI,OAAA,CAASJ,EACZ,QAAA,CAAAI,GAAAA,CAACC,EAAA,CACC,OAAA,CAAQ,IACR,SAAA,CAAU,kDAAA,CAET,SAAAV,CAAAA,CACH,CAAA,CACF,EACAS,GAAAA,CAACE,GAAAA,CAAA,CACC,MAAA,CAAQT,CAAAA,CACR,WAAA,CAAaG,EACb,KAAA,CAAO,CACL,gBAAiBN,CAAAA,EAAa,gBAAA,CAC9B,SAAU,QACZ,CAAA,CAEA,SAAAU,GAAAA,CAAC,GAAA,CAAA,CAAE,UAAU,gBAAA,CAAkB,QAAA,CAAAG,MAAMX,CAAAA,EAAS,EAAE,EAAE,CAAA,CACpD,CAAA,CAAA,CACF,CAEJ,CAAA,CAEOY,CAAAA,CAAQhB","file":"chunk-CD4LRHKJ.js","sourcesContent":["import { useState } from \"react\";\nimport { BaseModal, Typography } from \"../atomics\";\nimport { BaseFieldType } from \"../types/base\";\nimport { parse } from \"@phygitallabs/helpers\";\n\ntype ReadmoreModal = BaseFieldType & {\n readMoreText: string;\n};\n\nconst ReadmoreModal = ({ field, configTheme, readMoreText }: ReadmoreModal) => {\n const { value } = field;\n const [isOpen, setIsOpen] = useState(false);\n const toggleModal = () => setIsOpen((pre) => !pre);\n return (\n <>\n <div onClick={toggleModal}>\n <Typography\n variant=\"p\"\n className=\"text-center text-sm underline underline-offset-4\"\n >\n {readMoreText}\n </Typography>\n </div>\n <BaseModal\n isOpen={isOpen}\n toggleModal={toggleModal}\n style={{\n backgroundColor: configTheme?.background_color,\n overflow: \"scroll\",\n }}\n >\n <p className=\"text-neutral-1\">{parse(value || \"\")}</p>\n </BaseModal>\n </>\n );\n};\n\nexport default ReadmoreModal;\n"]}
@@ -0,0 +1,3 @@
1
+ import {o}from'./chunk-LSWFX7YA.js';import {g}from'./chunk-UIPKSEN4.js';import {ImageNomion}from'@phygitallabs/core-ui/components/image-nomion';import {getContentFromLexicalValue}from'@phygitallabs/helpers';import {useState,useRef}from'react';import {twMerge}from'tailwind-merge';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function K({sectionData:b,id:d}){let[s,x]=useState(false),[a,v]=useState(0),N=b,{money_rate:_,icon_image:w,title:S,description:k,button_label:F,audio:M}=N||{},i=S?.value,c=k?.value,L=_?.value,E=`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/snake-meme-${w?.value}.png`,V=F?.value,j=M?.value?.url,l=useRef(null),{rate_10:f,rate_20:O,rate_50:R,rate_100:A,rate_200:r,rate_500:D}=L||{rate_10:6,rate_20:5,rate_50:4,rate_100:3,rate_200:2,rate_500:1},T={10:f,20:O,50:R,100:A,200:r,500:D},I=(o=T)=>{let p=Object.values(o).reduce((H,h)=>H+h,0),C=Math.floor(Math.random()*p)+1;return Array.from({length:p},(H,h)=>Object.keys(o)[Math.floor(h/o[Object.keys(o)[h%Object.keys(o).length]])])[C-1]},B=()=>{x(true),l.current&&l.current.play(),setTimeout(()=>{let o=I();v(Number(o));},5e3);};return jsxs(g,{className:"min-h-[100vh] bg-[#243E9F] py-10",name:d,children:[jsx("audio",{src:j,ref:l}),jsxs("div",{className:"flex flex-col items-center justify-start h-full relative pt-10 px-4",children:[!s&&jsxs(Fragment,{children:[i&&jsx("p",{className:"text-4xl font-bold text-[#FEBDE1] mb-6 text-center",children:i}),c&&jsx("p",{className:"text-base text-[#FAEDCD] mb-6",children:getContentFromLexicalValue(c)}),jsx("button",{className:"px-2 py-1 text-black rounded-md bg-white font-bold",onClick:B,type:"button",children:V}),jsx("div",{className:"h-full flex-1 flex justify-end flex-col",children:jsx(ImageNomion,{src:E,alt:"tet-2025",className:"object-contain !w-auto !h-auto m-auto",width:"auto",height:"auto"})})]}),jsx("div",{className:twMerge("w-full h-full items-center justify-center",s&&!a?"flex":"hidden"),children:jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tien-lixi.gif",alt:"tet-2025",width:"auto",height:"auto"})}),jsxs("div",{className:twMerge("w-full h-full items-center justify-center relative",a?"flex":"hidden"),children:[jsx("div",{className:"absolute top-0 left-0 z-10",children:jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/gift-success.gif",alt:"tet-2025",width:"100%",height:"100%"})}),jsx(ImageNomion,{src:`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/${a}k.webp`,alt:"tet-2025",width:"auto",height:"auto"})]})]})]})}var U=K;var ot=["Qu\xE1 \u0111\xE3!","L\u1EA5y may \u0111\u1EA7u n\u0103m nh\xE9!","yeahhh b\u1EA1n nh\u1EADn \u0111\u01B0\u1EE3c:","Anh l\xE0 k\u1EBB may m\u1EAFn, lu\xF4n l\xE0 k\u1EBB may m\u1EAFn"],at="Ch\u1EDD x\xEDu, ch\u1EDD x\xEDu...";function nt({sectionData:b,id:d}){let[s,x]=useState(false),[a,v]=useState(0),N=b,{money_rate:_,icon_image:w,title:S,description:k,button_label:F,cover:M}=N||{},i=S?.value,c=k?.value,L=_?.value,E=`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/snake-meme-${w?.value}.png`,V=F?.value||"TH\u1EEC V\u1EACN MAY",[j,l]=useState(false),f=M?.value,R=`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tet-bg-${f?.background}.gif`,A=f?.title||"L\xCC X\xCC N\xC0O!",r=useRef(null),{rate_10:D,rate_20:T,rate_50:I,rate_100:B,rate_200:o$1,rate_500:p}=L||{rate_10:6,rate_20:5,rate_50:4,rate_100:3,rate_200:2,rate_500:1},C={10:Number(D),20:Number(T),50:Number(I),100:Number(B),200:Number(o$1),500:Number(p)},$=()=>{x(true),r.current&&r.current.play(),setTimeout(()=>{let P=o(C);console.log("randomNumber",P),v(Number(P));},5e3);};return j?jsxs(g,{className:"min-h-[100vh] bg-[#243E9F] py-10",name:d,children:[jsx("audio",{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/xo-so.mp3",ref:r}),jsxs("div",{className:"flex flex-col items-center justify-start h-full relative pt-10 px-4",children:[!s&&jsxs(Fragment,{children:[i&&jsx("p",{className:"text-4xl line-clamp-3 font-bold text-[#FEBDE1] mb-6 text-center",children:i}),c&&jsx("p",{className:"text-base text-[#FAEDCD] mb-6",children:getContentFromLexicalValue(c)}),jsx("button",{className:"px-2 py-1 text-black rounded-md bg-white font-bold",onClick:$,type:"button",children:V}),jsx("div",{className:"h-full flex-1 flex justify-end flex-col",children:jsx(ImageNomion,{src:E,alt:"tet-2025",className:"object-contain !w-auto !h-auto m-auto",width:"auto",height:"auto"})})]}),jsxs("div",{className:twMerge("w-full h-full items-center justify-center flex-col gap-20",s&&!a?"flex":"hidden"),children:[jsx("p",{className:"text-3xl whitespace-nowrap text-center font-bold text-[#FEBDE1]",children:at}),jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tien-lixi.gif",alt:"tet-2025",width:"auto",height:"auto"})]}),jsxs("div",{className:twMerge("w-full h-full items-center justify-center relative",a?"flex":"hidden"),children:[jsx("div",{className:"absolute top-0 left-0 z-10",children:jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/gift-success.gif",alt:"tet-2025",width:"100%",height:"100%"})}),jsxs("div",{className:"w-full h-full flex items-center justify-center flex-col gap-20",children:[jsx("p",{className:"text-3xl text-wrap text-center font-bold text-[#FEBDE1]",children:ot[a%4]}),jsx(ImageNomion,{src:`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/${a}k.webp`,alt:"tet-2025",width:"auto",height:"auto"})]})]})]})]}):jsx(g,{className:"max-h-full",name:d,children:jsxs("div",{className:"flex flex-col items-center justify-center h-full relative",children:[jsx(ImageNomion,{src:R,alt:"tet-2025",className:"object-cover"}),jsx("div",{onClick:()=>l(true),className:"absolute text-[#243E9F] bg-white rounded-lg w-auto top-1/2 text-lg right-8 z-10 flex items-center justify-center px-4 py-1",children:jsx("p",{className:"line-clamp-1 font-medium text-center",children:A})})]})})}var st=nt;
2
+ export{U as a,st as b};//# sourceMappingURL=chunk-CUQI3YUM.js.map
3
+ //# sourceMappingURL=chunk-CUQI3YUM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckyMoneySection.tsx","../src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckeyMoneySectionAdvance.tsx"],"names":["LuckyMoneySection","sectionData","id","showGift","setShowGift","useState","randomNumber","setShowRandomNumber","data","money_rate","icon_image","title","description","button_label","audio","titleValue","descriptionValue","moneyRate","iconImage","buttonLabel","audioValue","audioRef","useRef","rate_10","rate_20","rate_50","rate_100","rate_200","rate_500","moneyRateValue","generateRandomNumber","rate","totalQuantity","acc","curr","_","index","handleShowGift","jsxs","SectionFullScreen_default","jsx","Fragment","getContentFromLexicalValue","Image","twMerge","LuckyMoneySection_default","FINISH_TEXT","WAITING_TEXT","LuckyMoneySectionAdvance","cover","showLuckyMoney","setShowLuckyMoney","coverValue","coverBackground","coverTitle","generateRandomNumberFromWeights","LuckeyMoneySectionAdvance_default"],"mappings":"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","file":"chunk-CUQI3YUM.js","sourcesContent":["import { Media } from \"../../../../models/general\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';\nimport type { Field } from \"../../types/base\";\nimport { getContentFromLexicalValue } from \"@phygitallabs/helpers\";\nimport { useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ninterface LuckyMoneySectionData {\n title: Field<string>;\n description: Field;\n button_label: Field<string>;\n icon_image: Field<Media>;\n money_rate: Field<MoneyRate>;\n audio: Field<Media>;\n}\n\ninterface MoneyRate {\n [key: string]: number;\n}\n\nexport interface LuckyMoneySectionProps extends BaseSectionProps {}\n\nfunction LuckyMoneySection({ sectionData, id }: LuckyMoneySectionProps) {\n const [showGift, setShowGift] = useState(false);\n const [randomNumber, setShowRandomNumber] = useState(0);\n const data = sectionData as LuckyMoneySectionData;\n const { money_rate, icon_image, title, description, button_label, audio } =\n data || {};\n const titleValue = title?.value;\n const descriptionValue = description?.value;\n const moneyRate = money_rate?.value;\n const iconValue = icon_image?.value;\n const iconImage = `https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/snake-meme-${iconValue}.png`;\n const buttonLabel = button_label?.value;\n const audioValue = audio?.value?.url;\n\n // create a ref, and play in handleShowGift\n const audioRef = useRef<HTMLAudioElement>(null);\n const { rate_10, rate_20, rate_50, rate_100, rate_200, rate_500 } =\n moneyRate || {\n rate_10: 6,\n rate_20: 5,\n rate_50: 4,\n rate_100: 3,\n rate_200: 2,\n rate_500: 1,\n };\n\n const moneyRateValue = {\n 10: rate_10,\n 20: rate_20,\n 50: rate_50,\n 100: rate_100,\n 200: rate_200,\n 500: rate_500,\n };\n\n const generateRandomNumber = (rate = moneyRateValue) => {\n const totalQuantity = Object.values(rate).reduce(\n (acc, curr) => acc + curr,\n 0\n );\n const randomNumber = Math.floor(Math.random() * totalQuantity) + 1;\n const array = Array.from({ length: totalQuantity }, (_, index) => {\n return Object.keys(rate)[\n Math.floor(\n index /\n (rate as any)[Object.keys(rate)[index % Object.keys(rate).length]]\n )\n ];\n });\n const key = array[randomNumber - 1];\n return key;\n };\n\n const handleShowGift = () => {\n setShowGift(true);\n if (audioRef.current) {\n audioRef.current.play();\n }\n setTimeout(() => {\n const randomNumber = generateRandomNumber();\n setShowRandomNumber(Number(randomNumber));\n }, 5000);\n };\n\n return (\n <SectionFullScreen className=\"min-h-[100vh] bg-[#243E9F] py-10\" name={id}>\n <audio src={audioValue} ref={audioRef} />\n <div className=\"flex flex-col items-center justify-start h-full relative pt-10 px-4\">\n {!showGift && (\n <>\n {titleValue && (\n <p className=\"text-4xl font-bold text-[#FEBDE1] mb-6 text-center\">\n {titleValue}\n </p>\n )}\n {descriptionValue && (\n <p className=\"text-base text-[#FAEDCD] mb-6\">\n {getContentFromLexicalValue(descriptionValue)}\n </p>\n )}\n <button\n className=\"px-2 py-1 text-black rounded-md bg-white font-bold\"\n onClick={handleShowGift}\n type=\"button\"\n >\n {buttonLabel}\n </button>\n <div className=\"h-full flex-1 flex justify-end flex-col\">\n <Image\n src={iconImage}\n alt=\"tet-2025\"\n className=\"object-contain !w-auto !h-auto m-auto\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n </>\n )}\n <div\n className={twMerge(\n \"w-full h-full items-center justify-center\",\n showGift && !randomNumber ? \"flex\" : \"hidden\"\n )}\n >\n <Image\n src=\"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tien-lixi.gif\"\n alt=\"tet-2025\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n <div\n className={twMerge(\n \"w-full h-full items-center justify-center relative\",\n randomNumber ? \"flex\" : \"hidden\"\n )}\n >\n <div className=\"absolute top-0 left-0 z-10\">\n <Image\n src=\"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/gift-success.gif\"\n alt=\"tet-2025\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n\n <Image\n src={`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/${randomNumber}k.webp`}\n alt=\"tet-2025\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n </div>\n {/* <div className=\"absolute bottom-0 left-0 w-full h-full bg-black\"></div> */}\n </SectionFullScreen>\n );\n}\n\nexport default LuckyMoneySection;\n","import { Media } from \"../../../../models/general\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';\nimport type { Field } from \"../../types/base\";\nimport { getContentFromLexicalValue } from \"@phygitallabs/helpers\";\nimport { useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { generateRandomNumberFromWeights } from \"../../../../utils/helper\";\n\ninterface LuckyMoneySectionAdvanceData {\n title: Field<string>;\n description: Field;\n button_label: Field<string>;\n icon_image: Field<Media>;\n money_rate: Field<MoneyRate>;\n cover: Field<{\n background: string;\n title: string;\n }>;\n}\n\nconst FINISH_TEXT = [\n \"Quá đã!\",\n \"Lấy may đầu năm nhé!\",\n \"yeahhh bạn nhận được:\",\n \"Anh là kẻ may mắn, luôn là kẻ may mắn\",\n];\n\nconst WAITING_TEXT = \"Chờ xíu, chờ xíu...\";\n\ninterface MoneyRate {\n [key: string | number]: number;\n}\n\nexport interface LuckyMoneySectionAdvanceProps extends BaseSectionProps {}\n\nfunction LuckyMoneySectionAdvance({\n sectionData,\n id,\n}: LuckyMoneySectionAdvanceProps) {\n const [showGift, setShowGift] = useState(false);\n const [randomNumber, setShowRandomNumber] = useState(0);\n const data = sectionData as LuckyMoneySectionAdvanceData;\n const { money_rate, icon_image, title, description, button_label, cover } =\n data || {};\n const titleValue = title?.value;\n const descriptionValue = description?.value;\n const moneyRate = money_rate?.value;\n const iconValue = icon_image?.value;\n const iconImage = `https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/snake-meme-${iconValue}.png`;\n const buttonLabel = button_label?.value || \"THỬ VẬN MAY\";\n\n const [showLuckyMoney, setShowLuckyMoney] = useState(false);\n const coverValue = cover?.value;\n const bgValue = coverValue?.background;\n const coverBackground = `https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tet-bg-${bgValue}.gif`;\n const coverTitle = coverValue?.title || \"LÌ XÌ NÀO!\";\n\n // create a ref, and play in handleShowGift\n const audioRef = useRef<HTMLAudioElement>(null);\n const { rate_10, rate_20, rate_50, rate_100, rate_200, rate_500 } =\n moneyRate || {\n rate_10: 6,\n rate_20: 5,\n rate_50: 4,\n rate_100: 3,\n rate_200: 2,\n rate_500: 1,\n };\n\n const moneyRateValue = {\n 10: Number(rate_10),\n 20: Number(rate_20),\n 50: Number(rate_50),\n 100: Number(rate_100),\n 200: Number(rate_200),\n 500: Number(rate_500),\n };\n\n const handleShowGift = () => {\n setShowGift(true);\n if (audioRef.current) {\n audioRef.current.play();\n }\n setTimeout(() => {\n const randomNumber = generateRandomNumberFromWeights(moneyRateValue);\n console.log(\"randomNumber\", randomNumber);\n setShowRandomNumber(Number(randomNumber));\n }, 5000);\n };\n\n if (!showLuckyMoney)\n return (\n <SectionFullScreen className=\"max-h-full\" name={id}>\n <div className=\"flex flex-col items-center justify-center h-full relative\">\n <Image\n src={coverBackground}\n alt=\"tet-2025\"\n className=\"object-cover\"\n />\n <div\n onClick={() => setShowLuckyMoney(true)}\n className=\"absolute text-[#243E9F] bg-white rounded-lg w-auto top-1/2 text-lg right-8 z-10 flex items-center justify-center px-4 py-1\"\n >\n <p className=\"line-clamp-1 font-medium text-center\">{coverTitle}</p>\n </div>\n </div>\n </SectionFullScreen>\n );\n return (\n <SectionFullScreen className=\"min-h-[100vh] bg-[#243E9F] py-10\" name={id}>\n <audio\n src=\"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/xo-so.mp3\"\n ref={audioRef}\n />\n <div className=\"flex flex-col items-center justify-start h-full relative pt-10 px-4\">\n {!showGift && (\n <>\n {titleValue && (\n <p className=\"text-4xl line-clamp-3 font-bold text-[#FEBDE1] mb-6 text-center\">\n {titleValue}\n </p>\n )}\n {descriptionValue && (\n <p className=\"text-base text-[#FAEDCD] mb-6\">\n {getContentFromLexicalValue(descriptionValue)}\n </p>\n )}\n <button\n className=\"px-2 py-1 text-black rounded-md bg-white font-bold\"\n onClick={handleShowGift}\n type=\"button\"\n >\n {buttonLabel}\n </button>\n <div className=\"h-full flex-1 flex justify-end flex-col\">\n <Image\n src={iconImage}\n alt=\"tet-2025\"\n className=\"object-contain !w-auto !h-auto m-auto\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n </>\n )}\n <div\n className={twMerge(\n \"w-full h-full items-center justify-center flex-col gap-20\",\n showGift && !randomNumber ? \"flex\" : \"hidden\"\n )}\n >\n <p className=\"text-3xl whitespace-nowrap text-center font-bold text-[#FEBDE1]\">\n {WAITING_TEXT}\n </p>\n <Image\n src=\"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tien-lixi.gif\"\n alt=\"tet-2025\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n <div\n className={twMerge(\n \"w-full h-full items-center justify-center relative\",\n randomNumber ? \"flex\" : \"hidden\"\n )}\n >\n <div className=\"absolute top-0 left-0 z-10\">\n <Image\n src=\"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/gift-success.gif\"\n alt=\"tet-2025\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n\n <div className=\"w-full h-full flex items-center justify-center flex-col gap-20\">\n <p className=\"text-3xl text-wrap text-center font-bold text-[#FEBDE1]\">\n {FINISH_TEXT[randomNumber % 4]}\n </p>\n <Image\n src={`https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/${randomNumber}k.webp`}\n alt=\"tet-2025\"\n width=\"auto\"\n height=\"auto\"\n />\n </div>\n </div>\n </div>\n {/* <div className=\"absolute bottom-0 left-0 w-full h-full bg-black\"></div> */}\n </SectionFullScreen>\n );\n}\n\nexport default LuckyMoneySectionAdvance;\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-UIPKSEN4.js';import {Pause,Play}from'@phosphor-icons/react';import {useState,useEffect}from'react';import {Slider}from'antd';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var A=({src:s,className:u,audioRef:o,id:a})=>{let{registerMedia:b$1,unregisterMedia:h,play:v,pause:y,getMediaStatus:P}=b(),[d,l]=useState(0),[c,M]=useState(0),m=P(a)==="playing";useEffect(()=>{let e=o?.current;if(!e)return;b$1({id:a,type:"audio",element:e});let r=()=>{M(e.duration);},t=()=>{l(e.currentTime);};return e.addEventListener("loadedmetadata",r),e.addEventListener("timeupdate",t),()=>{e.removeEventListener("loadedmetadata",r),e.removeEventListener("timeupdate",t),h(a);}},[]);let T=()=>{o.current&&(m?y(a):v(a));},w=e=>{let r=o.current;if(!r)return;let t=e;r.currentTime=t,l(t);},i=e=>{let r=Math.floor(e/60),t=Math.floor(e%60),E=t<10?`0${t}`:t.toString();return `${r}:${E}`};return s?jsxs("div",{className:twMerge("audio-player flex items-center gap-2 rounded-lg p-2 mt-2",!!u&&u),children:[jsx("audio",{ref:o,src:s,preload:"metadata"}),jsx("button",{onClick:T,className:"p-2 bg-black rounded-full",type:"button",children:m?jsx(Pause,{color:"white",size:16,weight:"fill"}):jsx(Play,{color:"white",size:16,weight:"fill"})}),jsx(Slider,{min:0,max:c,value:d,onChange:w,className:"flex-1",classNames:{rail:"!bg-[#262626]/20",track:"!bg-[#262626]",handle:""},tooltip:{formatter:e=>`${i(e)}`}}),jsxs("div",{className:"text-sm text-neutral-9",children:[i(d)," / ",i(c)]})]}):null},H=A;export{H as a};//# sourceMappingURL=chunk-CZW7BABY.js.map
2
+ //# sourceMappingURL=chunk-CZW7BABY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/moleculars/AudioPlayer.tsx"],"names":["AudioPlayer","src","className","audioRef","id","registerMedia","unregisterMedia","play","pause","getMediaStatus","useMedia","currentTime","setCurrentTime","useState","duration","setDuration","isPlaying","useEffect","audio","handleLoadedMetadata","handleTimeUpdate","togglePlayPause","handleProgressChange","value","newTime","formatTime","time","minutes","seconds","paddedSeconds","jsxs","twMerge","jsx","Pause","Play","Slider","AudioPlayer_default"],"mappings":"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","file":"chunk-CZW7BABY.js","sourcesContent":["import { Pause, Play } from \"@phosphor-icons/react\";\nimport React, { useEffect, useState } from \"react\";\nimport { Slider } from \"antd\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useMedia } from \"../../../hooks/audio\";\n\ninterface AudioPlayerProps {\n src: string;\n className?: string;\n audioRef: React.RefObject<HTMLAudioElement>;\n id: string;\n}\n\nconst AudioPlayer: React.FC<AudioPlayerProps> = ({\n src,\n className,\n audioRef,\n id,\n}) => {\n const { registerMedia, unregisterMedia, play, pause, getMediaStatus } =\n useMedia();\n const [currentTime, setCurrentTime] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n\n const isPlaying = getMediaStatus(id) === \"playing\";\n\n useEffect(() => {\n const audio = audioRef?.current;\n if (!audio) return;\n\n registerMedia({\n id,\n type: \"audio\",\n element: audio,\n });\n\n const handleLoadedMetadata = () => {\n setDuration(audio.duration);\n };\n\n const handleTimeUpdate = () => {\n setCurrentTime(audio.currentTime);\n };\n\n audio.addEventListener(\"loadedmetadata\", handleLoadedMetadata);\n audio.addEventListener(\"timeupdate\", handleTimeUpdate);\n\n return () => {\n audio.removeEventListener(\"loadedmetadata\", handleLoadedMetadata);\n audio.removeEventListener(\"timeupdate\", handleTimeUpdate);\n unregisterMedia(id);\n };\n }, []);\n\n const togglePlayPause = () => {\n const audio = audioRef.current;\n if (!audio) return;\n\n if (isPlaying) {\n pause(id);\n } else {\n play(id);\n }\n };\n\n const handleProgressChange = (value: number) => {\n const audio = audioRef.current;\n if (!audio) return;\n\n const newTime = value;\n audio.currentTime = newTime;\n setCurrentTime(newTime);\n };\n\n const formatTime = (time: number): string => {\n const minutes = Math.floor(time / 60);\n const seconds = Math.floor(time % 60);\n const paddedSeconds = seconds < 10 ? `0${seconds}` : seconds.toString();\n return `${minutes}:${paddedSeconds}`;\n };\n\n if (!src) return null;\n\n return (\n <div\n className={twMerge(\n \"audio-player flex items-center gap-2 rounded-lg p-2 mt-2\",\n !!className && className\n )}\n >\n <audio ref={audioRef} src={src} preload=\"metadata\" />\n\n <button\n onClick={togglePlayPause}\n className=\"p-2 bg-black rounded-full\"\n type=\"button\"\n >\n {isPlaying ? (\n <Pause color=\"white\" size={16} weight=\"fill\" />\n ) : (\n <Play color=\"white\" size={16} weight=\"fill\" />\n )}\n </button>\n\n <Slider\n min={0}\n max={duration}\n value={currentTime}\n onChange={handleProgressChange}\n className=\"flex-1\"\n classNames={{\n rail: \"!bg-[#262626]/20\",\n track: \"!bg-[#262626]\",\n handle: \"\",\n }}\n tooltip={{\n formatter: (value) => {\n return `${formatTime(value!)}`;\n },\n }}\n />\n\n <div className=\"text-sm text-neutral-9\">\n {formatTime(currentTime)} / {formatTime(duration)}\n </div>\n </div>\n );\n};\n\nexport default AudioPlayer;\n"]}
@@ -0,0 +1,4 @@
1
+ import {a}from'./chunk-WK65I7SX.js';import {a as a$3}from'./chunk-HMIZ2FLM.js';import {a as a$1}from'./chunk-LSVSIJSZ.js';import {a as a$2}from'./chunk-6GUVMAUD.js';import {g,f}from'./chunk-UIPKSEN4.js';import {createContext,useState,useContext,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {parse}from'@phygitallabs/helpers';import $e from'draftjs-to-html';import {debounce}from'lodash-es';import Se from'clsx';import {twMerge}from'tailwind-merge';import {ImageNomion}from'@phygitallabs/core-ui/components/image-nomion';var ee=createContext(null),nt=({children:e})=>{let[r,n]=useState(null),[i,s]=useState(0);return jsx(ee.Provider,{value:{menu:r,setMenu:n,firstPage:i,setFirstPage:s},children:e})},he=()=>{let e=useContext(ee);return e?{menu:e.menu,setMenu:e.setMenu}:null},ve=()=>{let e=useContext(ee);return e?{setFirstPage:e.setFirstPage,firstPage:e.firstPage}:null};var _e=({id:e,sectionData:r,hasAnimation:n=true,configTheme:i})=>{let{title:s,description:p,background:P,author_cover:k,author_cover_prefix:h}=r;return jsxs(g,{name:e,children:[jsx(a,{field:P}),jsx("div",{className:"absolute left-0 top-0 z-50 flex h-full w-full items-end justify-center",children:s?.value&&jsxs(a$1,{duration:n?.5:0,delay:n?.2:0,className:"mb-28 px-4 py-6 bg-black/50 ",children:[k&&h&&jsxs("div",{className:"text-sm uppercase space-x-1",children:[jsx(a$2,{variant:"span",className:"font-light text-neutral",children:h.value}),jsx(a$2,{variant:"span",className:"font-semibold text-neutral-1",children:k.value})]}),jsx(a$3,{className:"text-2xl",field:s,configTheme:i}),p&&jsxs(Fragment,{children:[jsx("div",{className:"h-[1px] w-full rounded-lg border"}),jsx(a$2,{variant:"p",children:p.value})]})]})})]})},je=_e;var xe=(e,r)=>{let n=document.getElementById("snap-container"),i=window.innerHeight,s=i*r+i*(e-1);n.scrollTo({top:s,behavior:"smooth"});},Ne=e=>{let r=new XMLSerializer,n="";return e.childNodes.forEach(function(i){let s=r.serializeToString(i);s=s.replace(/\sxmlns="http:\/\/www\.w3\.org\/1999\/xhtml"/,""),n+=s;}),n};var be="currentPageV2",Oe=(e,r)=>jsxs("div",{className:Se("flex h-full flex-col items-center justify-between gap-2",!e?.image?.url&&"!justify-center"),children:[jsx(a$3,{field:{value:parse(e.title)},configTheme:r,className:"text-center"}),e?.image?.url&&jsxs(Fragment,{children:[jsxs("div",{className:"relative flex h-full w-full flex-col items-center justify-center bg-cover",children:[jsx(a,{field:{value:{image:e?.image,is_overlay:true}}}),e.image?.url&&jsx(ImageNomion,{className:"z-50 max-h-[70svh] w-full object-contain grayscale",src:e.image?.url,alt:"",width:"auto",height:"auto"})]}),e?.caption&&jsx(a$2,{variant:"span",className:"italic p-2",children:e?.caption})]})]}),We=e=>{let r=e?.alt==="undefined"?"":e.alt;return jsx("div",{className:"flex h-full w-full flex-col items-center justify-center overflow-hidden bg-[transparent]",children:jsx("div",{className:"relative flex h-full w-full flex-col justify-center",children:jsxs("div",{className:"relative inset-0 flex h-full w-full flex-col items-center justify-center backdrop-blur",children:[jsx(ImageNomion,{src:e?.src,alt:"Culture",className:"max-h-[400px] w-full object-contain",width:"auto",height:"auto"}),r&&jsx("div",{className:" inset-0 flex w-full items-end bg-[transparent]",children:jsx("div",{className:"flex w-full flex-col items-center justify-center overflow-y-hidden bg-white-alpha-.1 p-2 backdrop-blur-md",children:jsx("p",{className:"text-sm font-light",children:r})})})]})})})},Ve=e=>e.map(({content:r,...n})=>{let i=new DOMParser().parseFromString($e(JSON.parse(r)),"text/html");return {contentInDom:Array.from(i.querySelector("body").childNodes).filter(P=>P.nodeName!=="#text"),...n}}),Ke=({sectionData:e,id:r,configTheme:n,firstPageIndex:i})=>{let{content:s,cover:p}={...e},{firstPage:P,setFirstPage:k}=ve(),{isInViewport:h}=f(r),[x,X]=useState([{id:"cover",kind:"cover",content:p?.value},{id:"menu",kind:"menu",content:s?.value?.map(({title:t})=>t)}]),[A,$]=useState(-1),{menu:H,setMenu:R}=he(),b=document.getElementById("container"),ie=()=>{let t=[],Y=document.getElementById("container"),se=Ve(s?.value),le=Y.offsetWidth-40,ke=Y.offsetHeight,ce=Math.floor(ke/28),Q="",N="",_=0,O=false,me=document.getElementById("canvas").getContext("2d"),Le=window.getComputedStyle(Y),{fontSize:Te,fontWeight:we,fontStyle:Fe,fontFamily:Me}=Le;me.font=`${Fe} ${we} ${Te} ${Me}`;let de=()=>{Q="",_=0;},j=l=>{let c=new DOMParser().parseFromString(Q,"text/html").querySelector("body");if(Array.from(c.childNodes).every(d=>d.firstElementChild?.nodeName==="BR"))return;let g=0;(d=>{let f=Array.from(d.childNodes);for(let y=0;y<f.length;y++){let M=f[y];if(M.firstElementChild?.nodeName==="BR"&&!M.innerText?.trim())c.removeChild(f[y]),g++;else return}})(c),_-=g;let u=jsx("div",{children:parse(Ne(c))});t.push({id:"chapter",chapterTitle:l,kind:"content",content:u}),de();},W=({hasSpacing:l,isListParagraph:m,isLastLineInParagraph:c})=>{if(!N.length)return;let C=twMerge(!c&&"text-last-justify",m&&"px-5",m&&O&&"relative before:content-['\u25CF'] before:absolute before:left-0");O=false,Q+=`<div className="${C}">
2
+ ${N}${l?" ":""}
3
+ </div>`,_++;},Ee=({dom:l,isLastDomParagraph:m,chapterTitle:c,isListParagraph:C})=>{let F=le;O=false,C&&(F=le-40,O=true);let g=l.nextElementSibling?.nodeName==="IMG",z=l.innerText.trim(),u=d=>{for(let f=0;f<d.length;f++){let y=()=>f===d.length-1,M=d[f],ue=f===0?"":" ";if(me.measureText(`${N}${ue}${M}`).width<F)N+=`${ue}${M}`,y()&&(m||g)&&(W({hasSpacing:false,isListParagraph:C,isLastLineInParagraph:true}),j(c),N="");else if(W({hasSpacing:true,isListParagraph:C,isLastLineInParagraph:false}),N=`${M}`,y()&&(m||g))W({hasSpacing:false,isListParagraph:C,isLastLineInParagraph:true}),j(c),N="";else {let Z=_===ce;if(Z&&!(y()||g)){j(c),N="",u(d.slice(f));return}else !Z&&g||!Z&&!(y()&&m)||j(c);}}};u(z.split(" "));},Be=(l,m)=>{N+="<br/>",W({hasSpacing:false,isListParagraph:m,isLastLineInParagraph:true}),_===ce&&(j(l),de()),N="";},De=(l,m)=>{t.push({id:"chapter",chapterTitle:m,kind:"content",content:We(l)});};for(let l=0;l<se.length;l++){let m=se[l],c=m.title;t.push({id:`chapter-${l+1}`,kind:"chapter",content:Oe(m,n),chapterTitle:c});let{contentInDom:C}=m,F=g=>{let z;for(let u=g.length-1;u>=0;u--)if(g[u].nodeName==="P"){z=u;break}for(let u=0;u<g.length;u++){let d=g[u];switch(d.nodeName){case "UL":F(Array.from(d.children));break;case "LI":case "P":let f=d.nodeName==="LI";Ee({dom:d,isLastDomParagraph:z===u,chapterTitle:c,isListParagraph:f}),Be(c,f);break;case "IMG":De(d,c);break;}}};F(C);}let Ae=[{id:"cover",kind:"cover",content:p?.value},{id:"menu",kind:"menu",content:s?.value?.map(({title:l})=>l)}];X([...Ae,...t]);},G=t=>{let o=Math.ceil(t.scrollTop/t.offsetHeight)-3;o<=x.length&&$(o);let S=localStorage.getItem(be),q={};S&&(q=JSON.parse(S)),localStorage.setItem(be,JSON.stringify(q));},w=t=>debounce(()=>G(t),20);useEffect(()=>{let t=()=>setTimeout(()=>ie(),1e3);if(!s?.value||!b)return;k(i),t();let o=debounce(t,200);return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[s?.value,b]),useEffect(()=>{let t=document.getElementById("snap-container");return t.addEventListener("scroll",w(t)),()=>{t.removeEventListener("scroll",w(t));}},[x]),useEffect(()=>{let t=x?.map((o,S)=>({id:o.id,kind:o.kind,chapterTitle:o.chapterTitle,pageNumber:S})).filter(o=>o.kind==="chapter").map(o=>({id:o.id,chapterTitle:parse(o.chapterTitle||""),pageNumber:o.pageNumber}));R(t);},[x,P]);let J=t=>{switch(t.kind){case "cover":let o=t.content;return jsxs("div",{id:"cover",className:"flex h-full flex-col items-center justify-start",children:[jsxs("div",{children:[jsx(a$3,{field:{value:o?.title},configTheme:n,className:"whitespace-normal text-center text-2xl"}),jsx(a$2,{variant:"h6",className:"text-center",children:o?.author})]}),jsxs("div",{className:"flex h-1/2 flex-col items-center",children:[o?.image?.url&&jsx(ImageNomion,{className:"h-full object-contain",src:o?.image?.url,alt:""}),jsx("p",{className:"w-full bg-white-alpha-.1 p-2 text-center italic",children:o?.caption})]})]});case "menu":return jsxs("div",{id:"menu",className:"h-full space-y-8",children:[jsx(a$3,{field:{value:"M\u1EE5c l\u1EE5c"},configTheme:n,className:"text-center"}),jsx("div",{className:"h-5/6 space-y-5 overflow-scroll text-center text-lg",children:H&&H?.map(S=>jsx("p",{onClick:()=>xe(S.pageNumber,2),children:S.chapterTitle},S.id))})]});case "chapter":return jsx("div",{id:t.id,className:"h-full text-justify",children:t.content});case "content":return jsx("div",{className:"h-full text-justify",children:t.content});default:return null}};return jsxs(Fragment,{children:[x.map((t,o)=>jsx(Fragment,{children:jsxs(g,{name:r,children:[jsx("div",{className:"h-full pt-[50px]",children:jsx("div",{id:"container",className:"flex h-full w-full flex-col px-5 text-base font-light leading-7",style:{fontFamily:n?.font_family,color:n?.secondary_color},children:J(t)})}),jsx("canvas",{className:"invisible",id:"canvas"})]},o)})),jsxs("div",{className:Se("fixed bottom-2 left-1/2 z-50 flex w-fit -translate-x-1/2 rounded-lg bg-black p-2 text-white",(A<=0||!h)&&"hidden"),children:[A,"/",x.length]})]})},Ue=Ke;var qe=e=>{if(e===void 0)return [];let r=/\{([^}]+)\}/g,n=e?.match(r),i=[];return n&&(i=(n?.map(p=>p.slice(1,-1))).filter((p,P,k)=>k.indexOf(p)===P)),i},Ce=(e,r)=>{let n=qe(e);return n.length===0||n.forEach(i=>{e=e?.replaceAll(`{${i}}`,r?.[i]??"");}),e},Ye=({id:e,sectionData:r,hasAnimation:n=true})=>{let{background:i,description:s,owner_name:p,honorofics:P,position:k}=r||{},h=s?.value,x=p?.value,X=P?.value,A=k?.value,[$,H]=useState([]);return useEffect(()=>{let R=!!x;if(h&&typeof h=="string"){let b=parse(h);(Array.isArray(b)?b:[b])?.forEach(G=>{let w=typeof G.props?.children=="string"?G.props?.children:"",J=Ce(w,h);if(w?.search("{name}")!==-1){let t=w.split("{name}");t[0]=Ce(t[0],h),R&&(t[0]+=", thu\u1ED9c v\u1EC1:"),H(t);}else H(t=>[...t,J]);});}},[r,h]),jsxs(g,{name:e,children:[jsx("div",{className:"absolute left-0 top-0 z-10 flex h-[100svh] svh-full w-full flex-col items-center justify-center gap-[16px] bg-black-alpha-.8 px-[16px] pb-[32px] sm:gap-[24px]"}),jsx(a,{field:i}),jsxs("div",{className:"absolute left-0 top-[80px] z-10 flex h-[95%] w-full flex-col items-center justify-start gap-[10px] overflow-hidden px-5 sm:gap-[24px]",children:[jsx("p",{className:"text-base leading-5 text-neutral-3",children:$[0]}),!!x&&jsxs(a$1,{duration:n?.5:0,delay:n?.2:0,className:"!gap-2 border-2 border-neutral-8 p-2 text-center",children:[jsx("p",{className:"text-md",children:parse(X)}),jsx("p",{className:"font-lost-type text-lg",children:parse(x)}),!!A&&jsx("p",{className:"text-md",children:parse(A)})]}),$.map((R,b)=>b===0?null:jsx("p",{className:"text-base leading-5 text-neutral-3",children:R},b))]})]})},Qe=Ye;export{nt as a,he as b,ve as c,je as d,Ue as e,Qe as f};//# sourceMappingURL=chunk-D4GX3EGZ.js.map
4
+ //# sourceMappingURL=chunk-D4GX3EGZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/hooks/useBookMenuContext.tsx","../src/components/LandingPage/common/ui-kit/organisms/BookSection/BookCoverSection.tsx","../src/components/LandingPage/common/ui-kit/organisms/BookSection/utils/index.ts","../src/components/LandingPage/common/ui-kit/organisms/BookSection/BookSection.tsx","../src/components/LandingPage/common/ui-kit/organisms/BookSection/NgheLetterSection.tsx"],"names":["BookMenuContext","createContext","BookMenuProvider","children","menu","setMenu","useState","firstPage","setFirstPage","jsx","useMenuContext","value","useContext","useFirstPageContext","BookCoverSection","id","sectionData","hasAnimation","configTheme","title","description","background","authorCover","authorCoverPrefix","jsxs","SectionFullScreen_default","BackgroundImage_default","FadeInMotion","Typography_default","Title_default","Fragment","BookCoverSection_default","scrollToPage","pageNumber","otherSectionNumber","container","clientHeight","currentPagePosition","serializeDocumentFragment","el","serializer","htmlString","node","serializedNode","CURRENT_PAGE_KEY","renderIntroChapter","content","clsx","parse","Image","makeImageContent","dom","alt","convertObjectToHtml","rest","draftToHtml","BookSection","firstPageIndex","cover","isInViewport","useFullScreenContext","pages","setPages","setPageNumber","handlePagination","sections","formattedContent","baseContainerWidth","containerHeight","maxLinePerPage","pageContent","currentLine","currentLineNumber","isFirstLineListPara","ctx","style","fontSize","fontWeight","fontStyle","fontFamily","resetnewPage","handlePushPageAndReset","chapterTitle","parentNode","counter","parent","childNodes","i","childNode","addNewLineToPageContent","hasSpacing","isListParagraph","isLastLineInParagraph","className","twMerge","handleParagraphNode","isLastDomParagraph","containerWidth","isNextNodeImg","handleSplitIntoPages","words","j","isLastWord","word","separator","isLastLine","handleBreakParagraph","handleImageNode","chapterContent","contentInDom","traverseDom","htmlElements","lastPIndex","k","defaultSection","handlePageScroll","currentPageNumber","lastPageData","pageObject","debounceScroll","debounce","useEffect","handlePaginationTimeOut","debouncedHandleResize","chapterMenu","page","index","renderByPageKind","item","BookSection_default","getKeysInDescription","regex","matches","keys","match","array","replaceKeysInDescription","extraInfo","key","NgheLetterSection","owner_name","honorofics","position","descriptionValue","nameValue","honoroficsValue","positionValue","letterContent","setLetterContent","hasOwnerName","rawParsedDescription","parsedChildren","contentAfterReplaceKey","NgheLetterSection_default"],"mappings":"0iBAQA,IAAMA,GAAkBC,aAAAA,CAKd,IAAI,CAAA,CAEDC,EAAAA,CAAmB,CAAC,CAAE,SAAAC,CAAS,CAAA,GAAW,CACrD,GAAM,CAACC,CAAAA,CAAMC,CAAO,CAAA,CAAIC,QAAAA,CAA2B,IAAI,CAAA,CACjD,CAACC,EAAWC,CAAY,CAAA,CAAIF,QAAAA,CAAiB,CAAC,CAAA,CACpD,OACEG,IAACT,EAAAA,CAAgB,QAAA,CAAhB,CACC,KAAA,CAAO,CAAE,IAAA,CAAAI,EAAM,OAAA,CAAAC,CAAAA,CAAS,SAAA,CAAAE,CAAAA,CAAW,YAAA,CAAAC,CAAa,EAC/C,QAAA,CAAAL,CAAAA,CACH,CAEJ,CAAA,CAEaO,EAAAA,CAAiB,IAAM,CAClC,IAAMC,CAAAA,CAAQC,UAAAA,CAAWZ,EAAe,CAAA,CACxC,OAAKW,CAAAA,CACE,CACL,IAAA,CAAMA,CAAAA,CAAM,IAAA,CACZ,OAAA,CAASA,EAAM,OACjB,CAAA,CAJmB,IAKrB,CAAA,CAEaE,EAAAA,CAAsB,IAAM,CACvC,IAAMF,CAAAA,CAAQC,WAAWZ,EAAe,CAAA,CACxC,OAAKW,CAAAA,CACE,CACL,YAAA,CAAcA,CAAAA,CAAM,YAAA,CACpB,SAAA,CAAWA,EAAM,SACnB,CAAA,CAJmB,IAKrB,ECtBA,IAAMG,GAA8C,CAAC,CACnD,GAAAC,CAAAA,CACA,WAAA,CAAAC,EACA,YAAA,CAAAC,CAAAA,CAAe,IAAA,CACf,WAAA,CAAAC,CACF,CAAA,GAAM,CACJ,GAAM,CACJ,KAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CACA,YAAA,CAAcC,CAAAA,CACd,mBAAA,CAAqBC,CACvB,CAAA,CAAIP,EAEJ,OACEQ,IAAAA,CAACC,EAAA,CAAkB,IAAA,CAAMV,EACvB,QAAA,CAAA,CAAAN,GAAAA,CAACiB,CAAAA,CAAA,CAAgB,KAAA,CAAOL,CAAAA,CAAY,EACpCZ,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,wEAAA,CACZ,QAAA,CAAAU,CAAAA,EAAO,OACNK,IAAAA,CAACG,GAAAA,CAAA,CACC,QAAA,CAAWV,CAAAA,CAAmB,EAAA,CAAJ,EAC1B,KAAA,CAAOA,CAAAA,CAAe,GAAM,CAAA,CAC5B,SAAA,CAAU,+BACT,QAAA,CAAA,CAAAK,CAAAA,EAAeC,CAAAA,EACdC,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,8BACb,QAAA,CAAA,CAAAf,GAAAA,CAACmB,GAAAA,CAAA,CAAW,OAAA,CAAQ,MAAA,CAAO,UAAU,yBAAA,CAClC,QAAA,CAAAL,CAAAA,CAAkB,KAAA,CACrB,CAAA,CACAd,GAAAA,CAACmB,IAAA,CACC,OAAA,CAAQ,OACR,SAAA,CAAU,8BAAA,CACT,SAAAN,CAAAA,CAAY,KAAA,CACf,CAAA,CAAA,CACF,CAAA,CAEFb,GAAAA,CAACoB,GAAAA,CAAA,CACC,SAAA,CAAU,UAAA,CACV,KAAA,CAAOV,CAAAA,CACP,WAAA,CAAaD,CAAAA,CACf,EACCE,CAAAA,EACCI,IAAAA,CAAAM,QAAAA,CAAA,CACE,QAAA,CAAA,CAAArB,GAAAA,CAAC,OAAI,SAAA,CAAU,kCAAA,CAAmC,EAClDA,GAAAA,CAACmB,GAAAA,CAAA,CAAW,OAAA,CAAQ,GAAA,CAAK,QAAA,CAAAR,CAAAA,CAAY,KAAA,CAAM,CAAA,CAAA,CAC7C,GAEJ,CAAA,CAEJ,CAAA,CAAA,CACF,CAEJ,CAAA,CAEOW,EAAAA,CAAQjB,GCzER,IAAMkB,EAAAA,CAAe,CAC1BC,CAAAA,CACAC,CAAAA,GACG,CACH,IAAMC,EAAY,QAAA,CAAS,cAAA,CAAe,gBAAgB,CAAA,CACpDC,CAAAA,CAAe,MAAA,CAAO,YACtBC,CAAAA,CACJD,CAAAA,CAAeF,EAAqBE,CAAAA,EAAgBH,CAAAA,CAAa,GACnEE,CAAAA,CAAU,QAAA,CAAS,CACjB,GAAA,CAAKE,CAAAA,CACL,QAAA,CAAU,QACZ,CAAC,EACH,CAAA,CAEaC,EAAAA,CAA6BC,CAAAA,EAAgB,CACxD,IAAMC,CAAAA,CAAa,IAAI,aAAA,CACnBC,CAAAA,CAAa,EAAA,CAEjB,OAAAF,EAAG,UAAA,CAAW,OAAA,CAAQ,SAAUG,CAAAA,CAAM,CACpC,IAAIC,CAAAA,CAAiBH,CAAAA,CAAW,iBAAA,CAAkBE,CAAI,CAAA,CACtDC,CAAAA,CAAiBA,EAAe,OAAA,CAC9B,8CAAA,CACA,EACF,CAAA,CACAF,CAAAA,EAAcE,EAChB,CAAC,CAAA,CAEMF,CACT,CAAA,KC2BMG,EAAAA,CAAmB,eAAA,CAMnBC,EAAAA,CAAqB,CAACC,CAAAA,CAAkB5B,CAAAA,GAE1CM,KAAC,KAAA,CAAA,CACC,SAAA,CAAWuB,EAAAA,CACT,yDAAA,CACA,CAACD,CAAAA,EAAS,OAAO,GAAA,EAAO,iBAC1B,EAEA,QAAA,CAAA,CAAArC,GAAAA,CAACoB,IAAA,CACC,KAAA,CAAO,CAAE,KAAA,CAAOmB,KAAAA,CAAMF,CAAAA,CAAQ,KAAK,CAAE,CAAA,CACrC,WAAA,CAAa5B,CAAAA,CACb,SAAA,CAAU,aAAA,CACZ,EAEC4B,CAAAA,EAAS,KAAA,EAAO,GAAA,EACftB,IAAAA,CAAAM,QAAAA,CAAA,CACE,UAAAN,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,2EAAA,CACb,QAAA,CAAA,CAAAf,IAACiB,CAAAA,CAAA,CACC,KAAA,CACE,CACE,KAAA,CAAO,CACL,MAAOoB,CAAAA,EAAS,KAAA,CAChB,UAAA,CAAY,IACd,CACF,CAAA,CAEJ,EACCA,CAAAA,CAAQ,KAAA,EAAO,GAAA,EACdrC,GAAAA,CAACwC,WAAAA,CAAA,CACC,UAAU,oDAAA,CACV,GAAA,CAAKH,EAAQ,KAAA,EAAO,GAAA,CACpB,IAAI,EAAA,CACJ,KAAA,CAAO,MAAA,CACP,MAAA,CAAQ,MAAA,CACV,CAAA,CAAA,CAEJ,EACCA,CAAAA,EAAS,OAAA,EACRrC,GAAAA,CAACmB,GAAAA,CAAA,CAAW,OAAA,CAAQ,OAAO,SAAA,CAAU,YAAA,CAClC,QAAA,CAAAkB,CAAAA,EAAS,OAAA,CACZ,CAAA,CAAA,CAEJ,GAEJ,CAAA,CAKEI,EAAAA,CAAoBC,GAA0B,CAClD,IAAIC,EAAMD,CAAAA,EAAK,GAAA,GAAQ,WAAA,CAAc,EAAA,CAAKA,CAAAA,CAAI,GAAA,CAC9C,OACE1C,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,0FAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,OAAI,SAAA,CAAU,qDAAA,CACb,QAAA,CAAAe,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,yFACb,QAAA,CAAA,CAAAf,GAAAA,CAACwC,YAAA,CACC,GAAA,CAAKE,GAAK,GAAA,CACV,GAAA,CAAI,SAAA,CACJ,SAAA,CAAU,qCAAA,CACV,KAAA,CAAO,OACP,MAAA,CAAQ,MAAA,CACV,CAAA,CACCC,CAAAA,EACC3C,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,iDAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,2GAAA,CACb,SAAAA,GAAAA,CAAC,GAAA,CAAA,CAAE,UAAU,oBAAA,CAAsB,QAAA,CAAA2C,EAAI,CAAA,CACzC,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAAA,CACF,CAEJ,EAEMC,EAAAA,CAAuBP,CAAAA,EACpBA,CAAAA,CAAQ,GAAA,CAAI,CAAC,CAAE,QAAAA,CAAAA,CAAS,GAAGQ,CAAK,CAAA,GAAW,CAChD,IAAMH,EAAM,IAAI,SAAA,GAAY,eAAA,CAC1BI,EAAAA,CAAY,KAAK,KAAA,CAAMT,CAAO,CAAC,CAAA,CAC/B,WACF,CAAA,CAKA,OAAO,CACL,YAAA,CALa,KAAA,CAAM,IAAA,CAAKK,CAAAA,CAAI,aAAA,CAAc,MAAM,CAAA,CAAG,UAAU,CAAA,CAC1B,MAAA,CAAQT,CAAAA,EACpCA,CAAAA,CAAK,WAAa,OAC1B,CAAA,CAGC,GAAGY,CACL,CACF,CAAC,CAAA,CAGGE,EAAAA,CAAoC,CAAC,CACzC,WAAA,CAAAxC,CAAAA,CACA,GAAAD,CAAAA,CACA,WAAA,CAAAG,CAAAA,CACA,cAAA,CAAAuC,CACF,CAAA,GAAM,CACJ,GAAM,CAAE,OAAA,CAAAX,CAAAA,CAAS,KAAA,CAAAY,CAAM,EAAI,CAAE,GAAG1C,CAAY,CAAA,CACtC,CAAE,UAAAT,CAAAA,CAAW,YAAA,CAAAC,CAAa,CAAA,CAAIK,EAAAA,EAAoB,CAClD,CAAE,YAAA,CAAA8C,CAAa,CAAA,CAAIC,CAAAA,CAAqB7C,CAAE,CAAA,CAE1C,CAAC8C,CAAAA,CAAOC,CAAQ,CAAA,CAAIxD,QAAAA,CAAiB,CACzC,CACE,GAAI,OAAA,CACJ,IAAA,CAAM,QACN,OAAA,CAASoD,CAAAA,EAAO,KAClB,CAAA,CACA,CACE,EAAA,CAAI,MAAA,CACJ,IAAA,CAAM,MAAA,CACN,QAASZ,CAAAA,EAAS,KAAA,EAAO,GAAA,CAAI,CAAC,CAAE,KAAA,CAAA3B,CAAM,CAAA,GAAyBA,CAAK,CACtE,CACF,CAAC,CAAA,CACK,CAACc,CAAAA,CAAY8B,CAAa,EAAIzD,QAAAA,CAAS,EAAE,EAGzC,CAAE,IAAA,CAAAF,CAAAA,CAAM,OAAA,CAAAC,CAAQ,CAAA,CAAIK,IAAe,CACnCyB,CAAAA,CAAY,QAAA,CAAS,cAAA,CAAe,WAAW,CAAA,CAgB/C6B,GAAmB,IAAM,CAC7B,IAAIC,CAAAA,CAAmB,EAAC,CAIlB9B,EAAY,QAAA,CAAS,cAAA,CAAe,WAAW,CAAA,CAC/C+B,EAAAA,CAAmBb,GAAoBP,CAAAA,EAAS,KAAK,CAAA,CACrDqB,EAAAA,CAAqBhC,CAAAA,CAAU,WAAA,CAAc,GAC7CiC,EAAAA,CAAkBjC,CAAAA,CAAU,YAAA,CAC5BkC,EAAAA,CAAiB,IAAA,CAAK,KAAA,CAAMD,GAAkB,EAAW,CAAA,CAE3DE,CAAAA,CAAc,EAAA,CACdC,CAAAA,CAAc,EAAA,CAEdC,CAAAA,CAAoB,EACpBC,CAAAA,CAAsB,KAAA,CAIpBC,GADS,QAAA,CAAS,cAAA,CAAe,QAAQ,CAAA,CAC5B,UAAA,CAAW,IAAI,EAC5BC,EAAAA,CAAQ,MAAA,CAAO,gBAAA,CAAiBxC,CAAS,CAAA,CACzC,CAAE,SAAAyC,EAAAA,CAAU,UAAA,CAAAC,EAAAA,CAAY,SAAA,CAAAC,EAAAA,CAAW,UAAA,CAAAC,EAAW,CAAA,CAAIJ,GACxDD,GAAI,IAAA,CAAO,CAAA,EAAGI,EAAS,CAAA,CAAA,EAAID,EAAU,CAAA,CAAA,EAAID,EAAQ,CAAA,CAAA,EAAIG,EAAU,GAE/D,IAAMC,EAAAA,CAAe,IAAM,CACzBV,CAAAA,CAAc,EAAA,CACdE,EAAoB,EAEtB,CAAA,CAEMS,CAAAA,CAA0BC,CAAAA,EAAyB,CAEvD,IAAMC,CAAAA,CADU,IAAI,WAAU,CAAE,eAAA,CAAgBb,EAAa,WAAW,CAAA,CAC7C,aAAA,CAAc,MAAM,CAAA,CAK/C,GAJe,MAAM,IAAA,CAAKa,CAAAA,CAAW,UAAU,CAAA,CACpB,KAAA,CACxBhC,CAAAA,EAAQA,EAAI,iBAAA,EAAmB,QAAA,GAAa,IAC/C,CAAA,CACiB,OAEjB,IAAIiC,EAAU,CAAA,CAAA,CACgBC,CAAAA,EAA4B,CACxD,IAAMC,CAAAA,CAAa,MAAM,IAAA,CAAKD,CAAAA,CAAO,UAAU,CAAA,CAC/C,IAAA,IAASE,CAAAA,CAAI,EAAGA,CAAAA,CAAID,CAAAA,CAAW,MAAA,CAAQC,CAAAA,EAAAA,CAAK,CAC1C,IAAMC,EAAYF,CAAAA,CAAWC,CAAC,CAAA,CAC9B,GACEC,CAAAA,CAAU,iBAAA,EAAmB,WAAa,IAAA,EAC1C,CAACA,EAAU,SAAA,EAAW,IAAA,GAEtBL,CAAAA,CAAW,WAAA,CAAYG,CAAAA,CAAWC,CAAC,CAAC,CAAA,CACpCH,SACK,MACT,CACF,CAAA,EACqBD,CAAiB,CAAA,CACtCX,CAAAA,EAAqBY,EACrB,IAAMtC,CAAAA,CACJrC,GAAAA,CAAC,KAAA,CAAA,CAAK,QAAA,CAAAuC,KAAAA,CAAMV,GAA0B6C,CAAiB,CAAC,EAAE,CAAA,CAE5DlB,CAAAA,CAAS,KAAK,CACZ,EAAA,CAAI,SAAA,CACJ,YAAA,CAAAiB,CAAAA,CACA,IAAA,CAAM,UACN,OAAA,CAAApC,CACF,CAAC,CAAA,CACDkC,EAAAA,GACF,EAEMS,CAAAA,CAA0B,CAAC,CAC/B,UAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,EACA,qBAAA,CAAAC,CACF,CAAA,GAIM,CACJ,GAAI,CAACrB,EAAY,MAAA,CAAQ,OACzB,IAAIsB,CAAAA,CAAYC,OAAAA,CACd,CAACF,GAAyB,mBAAA,CAC1BD,CAAAA,EAAmB,MAAA,CACnBA,CAAAA,EACAlB,CAAAA,EACA,kEACF,EACAA,CAAAA,CAAsB,KAAA,CACtBH,CAAAA,EAAe,CAAA,gBAAA,EAAmBuB,CAAS,CAAA;AAAA,UAAA,EACrCtB,CAAW,CAAA,EAAGmB,CAAAA,CAAa,GAAA,CAAM,EAAE;AAAA,cAAA,CAAA,CAEzClB,CAAAA,GACF,CAAA,CACMuB,EAAAA,CAAsB,CAAC,CAC3B,GAAA,CAAA5C,CAAAA,CACA,kBAAA,CAAA6C,CAAAA,CACA,YAAA,CAAAd,CAAAA,CACA,eAAA,CAAAS,CACF,IAKM,CACJ,IAAIM,CAAAA,CAAiB9B,EAAAA,CACrBM,CAAAA,CAAsB,KAAA,CAClBkB,CAAAA,GACFM,CAAAA,CAAiB9B,GAAqB,EAAA,CACtCM,CAAAA,CAAsB,IAAA,CAAA,CAExB,IAAMyB,CAAAA,CAAgB/C,CAAAA,CAAI,kBAAA,EAAoB,QAAA,GAAa,MACrDL,CAAAA,CAAUK,CAAAA,CAAI,SAAA,CAAU,IAAA,EAAK,CAC7BgD,CAAAA,CAAwBC,CAAAA,EAAoB,CAChD,QAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAID,CAAAA,CAAM,MAAA,CAAQC,CAAAA,EAAAA,CAAK,CACrC,IAAMC,EAAa,IAAMD,CAAAA,GAAMD,CAAAA,CAAM,MAAA,CAAS,CAAA,CACxCG,CAAAA,CAAOH,CAAAA,CAAMC,CAAC,EACdG,EAAAA,CAAYH,CAAAA,GAAM,CAAA,CAAI,EAAA,CAAK,IAMjC,GAHE3B,EAAAA,CAAI,WAAA,CAAY,CAAA,EAAGH,CAAW,CAAA,EAAGiC,EAAS,CAAA,EAAGD,CAAI,CAAA,CAAE,CAAA,CAAE,KAAA,CACrDN,CAAAA,CAGA1B,GAAe,CAAA,EAAGiC,EAAS,CAAA,EAAGD,CAAI,CAAA,CAAA,CAC9BD,CAAAA,EAAW,GAAMN,CAAAA,EAAsBE,KACzCT,CAAAA,CAAwB,CACtB,UAAA,CAAY,KAAA,CACZ,eAAA,CAAAE,CAAAA,CACA,qBAAA,CAAuB,IACzB,CAAC,CAAA,CACDV,CAAAA,CAAuBC,CAAY,CAAA,CACnCX,CAAAA,CAAc,EAAA,CAAA,CAAA,KAAA,GAGhBkB,CAAAA,CAAwB,CACtB,WAAY,IAAA,CACZ,eAAA,CAAAE,CAAAA,CACA,qBAAA,CAAuB,KACzB,CAAC,CAAA,CACDpB,CAAAA,CAAc,GAAGgC,CAAI,CAAA,CAAA,CACjBD,CAAAA,EAAW,GAAMN,CAAAA,EAAsBE,CAAAA,CAAAA,CACzCT,CAAAA,CAAwB,CACtB,WAAY,KAAA,CACZ,eAAA,CAAAE,CAAAA,CACA,qBAAA,CAAuB,IACzB,CAAC,CAAA,CACDV,CAAAA,CAAuBC,CAAY,CAAA,CACnCX,CAAAA,CAAc,EAAA,CAAA,KACT,CACL,IAAMkC,CAAAA,CAAajC,CAAAA,GAAsBH,EAAAA,CAEzC,GAAIoC,GAAc,EAAEH,CAAAA,EAAW,EAAKJ,CAAAA,CAAAA,CAAgB,CAClDjB,CAAAA,CAAuBC,CAAY,CAAA,CACnCX,EAAc,EAAA,CACd4B,CAAAA,CAAqBC,CAAAA,CAAM,KAAA,CAAMC,CAAC,CAAC,CAAA,CACnC,MACF,MAEM,CAACI,CAAAA,EAAcP,CAAAA,EAEjB,CAACO,CAAAA,EACD,EAAEH,CAAAA,EAAW,EAAKN,IAEbf,CAAAA,CAAuBC,CAAY,EAE9C,CAEJ,CACF,CAAA,CACAiB,CAAAA,CAAqBrD,CAAAA,CAAQ,MAAM,GAAG,CAAC,EACzC,CAAA,CAEM4D,EAAAA,CAAuB,CAC3BxB,CAAAA,CACAS,CAAAA,GACG,CACHpB,CAAAA,EAAe,OAAA,CACfkB,CAAAA,CAAwB,CACtB,UAAA,CAAY,KAAA,CACZ,eAAA,CAAAE,CAAAA,CACA,sBAAuB,IACzB,CAAC,CAAA,CACGnB,CAAAA,GAAsBH,EAAAA,GACxBY,CAAAA,CAAuBC,CAAY,CAAA,CACnCF,IAAa,CAAA,CAEfT,CAAAA,CAAc,GAChB,CAAA,CAEMoC,GAAkB,CAACxD,CAAAA,CAAkB+B,CAAAA,GAAyB,CAClEjB,EAAS,IAAA,CAAK,CACZ,EAAA,CAAI,SAAA,CACJ,YAAA,CAAciB,CAAAA,CACd,IAAA,CAAM,SAAA,CACN,QAAShC,EAAAA,CAAiBC,CAAuB,CACnD,CAAC,EACH,CAAA,CAEA,IAAA,IAASoC,CAAAA,CAAI,EAAGA,CAAAA,CAAIrB,EAAAA,CAAiB,MAAA,CAAQqB,CAAAA,EAAAA,CAAK,CAChD,IAAMqB,CAAAA,CAAiB1C,EAAAA,CAAiBqB,CAAC,CAAA,CACnCL,CAAAA,CAAe0B,CAAAA,CAAe,KAAA,CACpC3C,CAAAA,CAAS,IAAA,CAAK,CACZ,EAAA,CAAI,WAAWsB,CAAAA,CAAI,CAAC,CAAA,CAAA,CACpB,IAAA,CAAM,SAAA,CACN,OAAA,CAAS1C,EAAAA,CAAmB+D,CAAAA,CAAgB1F,CAA0B,CAAA,CACtE,YAAA,CAAAgE,CACF,CAAC,CAAA,CAED,GAAM,CAAE,YAAA,CAAA2B,CAAa,CAAA,CAAID,CAAAA,CAEnBE,CAAAA,CAAeC,CAAAA,EAAgC,CACnD,IAAIC,CAAAA,CACJ,IAAA,IAASC,EAAIF,CAAAA,CAAa,MAAA,CAAS,CAAA,CAAGE,CAAAA,EAAK,EAAGA,CAAAA,EAAAA,CAE5C,GADYF,CAAAA,CAAaE,CAAC,EAClB,QAAA,GAAa,GAAA,CAAK,CACxBD,CAAAA,CAAaC,CAAAA,CACb,KACF,CAEF,IAAA,IAASZ,EAAI,CAAA,CAAGA,CAAAA,CAAIU,CAAAA,CAAa,MAAA,CAAQV,CAAAA,EAAAA,CAAK,CAC5C,IAAMlD,CAAAA,CAAM4D,EAAaV,CAAC,CAAA,CAC1B,OAAQlD,CAAAA,CAAI,QAAA,EACV,KAAK,IAAA,CACH2D,EAAY,KAAA,CAAM,IAAA,CAAK3D,CAAAA,CAAI,QAAQ,CAAkB,CAAA,CACrD,MACF,KAAK,KACL,KAAK,GAAA,CACH,IAAMwC,CAAAA,CAAkBxC,CAAAA,CAAI,QAAA,GAAa,IAAA,CAEzC4C,EAAAA,CAAoB,CAClB,GAAA,CAAA5C,CAAAA,CACA,kBAAA,CAHyB6D,CAAAA,GAAeX,CAAAA,CAIxC,YAAA,CAAAnB,CAAAA,CACA,eAAA,CAAAS,CACF,CAAC,CAAA,CACDe,EAAAA,CAAqBxB,CAAAA,CAAcS,CAAe,CAAA,CAClD,MACF,KAAK,MACHgB,EAAAA,CAAgBxD,CAAAA,CAAK+B,CAAY,CAAA,CACjC,MAGJ,CACF,CACF,EACA4B,CAAAA,CAAYD,CAAY,EAC1B,CACA,IAAMK,EAAAA,CAAyB,CAC7B,CACE,GAAI,OAAA,CACJ,IAAA,CAAM,OAAA,CACN,OAAA,CAASxD,CAAAA,EAAO,KAClB,CAAA,CACA,CACE,GAAI,MAAA,CACJ,IAAA,CAAM,MAAA,CACN,OAAA,CAASZ,CAAAA,EAAS,KAAA,EAAO,GAAA,CAAI,CAAC,CAAE,KAAA,CAAA3B,CAAM,CAAA,GAAyBA,CAAK,CACtE,CACF,CAAA,CACA2C,CAAAA,CAAS,CAAC,GAAGoD,EAAAA,CAAgB,GAAGjD,CAAQ,CAAC,EAC3C,CAAA,CAEMkD,CAAAA,CAAoBhF,GAA2B,CACnD,IAAIiF,CAAAA,CACF,IAAA,CAAK,IAAA,CAAKjF,CAAAA,CAAU,SAAA,CAAYA,CAAAA,CAAU,YAAY,CAAA,CAAI,CAAA,CACxDiF,CAAAA,EAAqBvD,CAAAA,CAAM,MAAA,EAC7BE,CAAAA,CAAcqD,CAAiB,CAAA,CAEjC,IAAMC,CAAAA,CAAe,YAAA,CAAa,OAAA,CAAQzE,EAAgB,EACtD0E,CAAAA,CAAwC,EAAC,CACvCD,CAAAA,GAAcC,EAAa,IAAA,CAAK,KAAA,CAAMD,CAAY,CAAA,CAAA,CAExD,YAAA,CAAa,OAAA,CAAQzE,EAAAA,CAAkB,IAAA,CAAK,UAAU0E,CAAU,CAAC,EACnE,CAAA,CACMC,CAAAA,CAAkBpF,CAAAA,EACfqF,QAAAA,CAAS,IAAML,EAAiBhF,CAAS,CAAA,CAAG,EAAE,CAAA,CAGvDsF,SAAAA,CAAU,IAAM,CACd,IAAMC,EAA0B,IAC9B,UAAA,CAAW,IAAM1D,EAAAA,EAAiB,CAAG,GAAI,CAAA,CAC3C,GAAI,CAAClB,CAAAA,EAAS,KAAA,EAAS,CAACX,CAAAA,CAAW,OACnC3B,CAAAA,CAAaiD,CAAc,CAAA,CAC3BiE,GAAwB,CACxB,IAAMC,CAAAA,CAAwBH,QAAAA,CAASE,CAAAA,CAAyB,GAAG,CAAA,CACnE,OAAA,MAAA,CAAO,iBAAiB,QAAA,CAAUC,CAAqB,CAAA,CAChD,IAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAUA,CAAqB,CACzE,CAAA,CAAG,CAAC7E,CAAAA,EAAS,KAAA,CAAOX,CAAS,CAAC,CAAA,CAE9BsF,SAAAA,CAAU,IAAM,CACd,IAAMtF,CAAAA,CAAY,QAAA,CAAS,cAAA,CAAe,gBAAgB,CAAA,CAC1D,OAAAA,CAAAA,CAAU,iBAAiB,QAAA,CAAUoF,CAAAA,CAAepF,CAAS,CAAC,CAAA,CAEvD,IAAM,CACXA,CAAAA,CAAU,oBAAoB,QAAA,CAAUoF,CAAAA,CAAepF,CAAS,CAAC,EACnE,CACF,CAAA,CAAG,CAAC0B,CAAK,CAAC,CAAA,CAEV4D,SAAAA,CAAU,IAAM,CACd,IAAMG,CAAAA,CAAc/D,CAAAA,EAChB,GAAA,CAAI,CAACgE,CAAAA,CAAMC,CAAAA,IACJ,CACL,EAAA,CAAID,CAAAA,CAAK,EAAA,CACT,IAAA,CAAMA,CAAAA,CAAK,KACX,YAAA,CAAcA,CAAAA,CAAK,YAAA,CACnB,UAAA,CAAYC,CACd,CAAA,CACD,CAAA,CACA,MAAA,CAAQD,GAASA,CAAAA,CAAK,IAAA,GAAS,SAAS,CAAA,CACxC,GAAA,CAAKA,CAAAA,GACG,CACL,EAAA,CAAIA,EAAK,EAAA,CACT,YAAA,CAAc7E,KAAAA,CAAM6E,CAAAA,CAAK,cAAgB,EAAE,CAAA,CAC3C,UAAA,CAAYA,CAAAA,CAAK,UACnB,CAAA,CACD,CAAA,CACHxH,CAAAA,CAAQuH,CAAwB,EAClC,CAAA,CAAG,CAAC/D,CAAAA,CAAOtD,CAAS,CAAC,CAAA,CAErB,IAAMwH,CAAAA,CAAoBF,CAAAA,EAAe,CACvC,OAAQA,CAAAA,CAAK,MACX,KAAK,OAAA,CACH,IAAMnE,CAAAA,CAAQmE,CAAAA,CAAK,OAAA,CACnB,OACErG,KAAC,KAAA,CAAA,CACC,EAAA,CAAG,OAAA,CACH,SAAA,CAAU,iDAAA,CAEV,QAAA,CAAA,CAAAA,IAAAA,CAAC,KAAA,CAAA,CACC,UAAAf,GAAAA,CAACoB,GAAAA,CAAA,CACC,KAAA,CAAO,CAAE,KAAA,CAAO6B,CAAAA,EAAO,KAAM,EAC7B,WAAA,CAAaxC,CAAAA,CACb,SAAA,CAAU,wCAAA,CACZ,CAAA,CACAT,GAAAA,CAACmB,GAAAA,CAAA,CAAW,QAAQ,IAAA,CAAK,SAAA,CAAU,aAAA,CAChC,QAAA,CAAA8B,CAAAA,EAAO,MAAA,CACV,CAAA,CAAA,CACF,CAAA,CACAlC,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCAAA,CACZ,QAAA,CAAA,CAAAkC,GAAO,KAAA,EAAO,GAAA,EACbjD,GAAAA,CAACwC,WAAAA,CAAA,CACC,SAAA,CAAU,uBAAA,CACV,GAAA,CAAKS,CAAAA,EAAO,KAAA,EAAO,GAAA,CACnB,GAAA,CAAI,EAAA,CACN,EAEFjD,GAAAA,CAAC,GAAA,CAAA,CAAE,SAAA,CAAU,iDAAA,CACV,QAAA,CAAAiD,CAAAA,EAAO,OAAA,CACV,CAAA,CAAA,CACF,GACF,CAAA,CAEJ,KAAK,MAAA,CACH,OACElC,IAAAA,CAAC,KAAA,CAAA,CAAI,EAAA,CAAG,MAAA,CAAO,UAAU,kBAAA,CACvB,QAAA,CAAA,CAAAf,GAAAA,CAACoB,GAAAA,CAAA,CACC,KAAA,CAAO,CAAE,KAAA,CAAO,mBAAU,CAAA,CAC1B,WAAA,CAAaX,CAAAA,CACb,SAAA,CAAU,aAAA,CACZ,CAAA,CACAT,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,qDAAA,CACZ,QAAA,CAAAL,CAAAA,EACCA,CAAAA,EAAM,GAAA,CAAK4H,CAAAA,EACTvH,GAAAA,CAAC,GAAA,CAAA,CAEC,QAAS,IAAMuB,EAAAA,CAAagG,CAAAA,CAAK,UAAA,CAAY,CAAC,CAAA,CAE7C,QAAA,CAAAA,CAAAA,CAAK,cAHDA,CAAAA,CAAK,EAIZ,CACD,CAAA,CACL,GACF,CAAA,CAEJ,KAAK,SAAA,CACH,OACEvH,IAAC,KAAA,CAAA,CAAI,EAAA,CAAIoH,CAAAA,CAAK,EAAA,CAAI,SAAA,CAAU,qBAAA,CACzB,QAAA,CAAAA,CAAAA,CAAK,QACR,CAAA,CAEJ,KAAK,SAAA,CACH,OACEpH,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qBAAA,CACZ,SAAAoH,CAAAA,CAAK,OAAA,CACR,CAAA,CAEJ,QACE,OAAO,IACX,CACF,CAAA,CACA,OAEErG,IAAAA,CAAAM,QAAAA,CAAA,CAOG,QAAA,CAAA,CAAA+B,CAAAA,CAAM,GAAA,CAAI,CAACgE,CAAAA,CAAMC,IAIdrH,GAAAA,CAAAqB,QAAAA,CAAA,CACE,QAAA,CAAAN,IAAAA,CAACC,CAAAA,CAAA,CAA8B,IAAA,CAAMV,EACnC,QAAA,CAAA,CAAAN,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kBAAA,CAMb,QAAA,CAAAA,GAAAA,CAAC,KAAA,CAAA,CACC,GAAG,WAAA,CACH,SAAA,CAAU,iEAAA,CACV,KAAA,CAAO,CACL,UAAA,CAAYS,CAAAA,EAAa,WAAA,CACzB,MAAOA,CAAAA,EAAa,eACtB,CAAA,CAEC,QAAA,CAAA6G,EAAiBF,CAAI,CAAA,CACxB,CAAA,CACF,CAAA,CACApH,IAAC,QAAA,CAAA,CAAO,SAAA,CAAU,WAAA,CAAY,EAAA,CAAG,QAAA,CAAS,CAAA,CAAA,CAAA,CAlBpBqH,CAmBxB,CAAA,CACF,CAEH,CAAA,CACDtG,IAAAA,CAAC,KAAA,CAAA,CACC,SAAA,CAAWuB,EAAAA,CACT,6FAAA,CAAA,CACCd,CAAAA,EAAc,CAAA,EAAK,CAAC0B,CAAAA,GAAiB,QACxC,CAAA,CAEC,QAAA,CAAA,CAAA1B,CAAAA,CAAW,GAAA,CAAE4B,CAAAA,CAAM,MAAA,CAAA,CACtB,GACF,CAEJ,CAAA,CACOoE,EAAAA,CAAQzE,GClmBf,IAAM0E,EAAAA,CAAwB9G,CAAAA,EAAkC,CAC9D,GAAIA,CAAAA,GAAgB,MAAA,CAAiB,OAAO,EAAC,CAC7C,IAAM+G,CAAAA,CAAQ,cAAA,CACRC,CAAAA,CAAUhH,CAAAA,EAAa,KAAA,CAAM+G,CAAK,EACpCE,CAAAA,CAAiB,EAAC,CACtB,OAAID,IAEFC,CAAAA,CAAAA,CAD4BD,CAAAA,EAAS,GAAA,CAAKE,CAAAA,EAAUA,EAAM,KAAA,CAAM,CAAA,CAAG,EAAE,CAAC,CAAA,EAC3C,MAAA,CAAO,CAACN,CAAAA,CAAMF,EAAOS,CAAAA,GACvCA,CAAAA,CAAM,OAAA,CAAQP,CAAI,CAAA,GAAMF,CAChC,CAAA,CAAA,CAEIO,CACT,EAEMG,EAAAA,CAA2B,CAACpH,CAAAA,CAAqBqH,CAAAA,GAAmB,CACxE,IAAMJ,CAAAA,CAAOH,EAAAA,CAAqB9G,CAAW,CAAA,CAC7C,OAAIiH,CAAAA,CAAK,MAAA,GAAW,CAAA,EACpBA,CAAAA,CAAK,OAAA,CAASK,CAAAA,EAAQ,CACpBtH,CAAAA,CAAcA,CAAAA,EAAa,UAAA,CAAW,CAAA,CAAA,EAAIsH,CAAG,CAAA,CAAA,CAAA,CAAKD,CAAAA,GAAYC,CAAG,GAAK,EAAE,EAC1E,CAAC,CAAA,CACMtH,CACT,CAAA,CAEMuH,EAAAA,CAAgD,CAAC,CACrD,EAAA,CAAA5H,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CAAe,IACjB,CAAA,GAAM,CACJ,GAAM,CAAE,UAAA,CAAAI,CAAAA,CAAY,YAAAD,CAAAA,CAAa,UAAA,CAAAwH,CAAAA,CAAY,UAAA,CAAAC,EAAY,QAAA,CAAAC,CAAS,CAAA,CAChE9H,CAAAA,EAAgB,EAAC,CAEb+H,CAAAA,CAAmB3H,CAAAA,EAAa,MAChC4H,CAAAA,CAAYJ,CAAAA,EAAY,KAAA,CACxBK,CAAAA,CAAkBJ,CAAAA,EAAY,KAAA,CAC9BK,CAAAA,CAAgBJ,CAAAA,EAAU,MAE1B,CAACK,CAAAA,CAAeC,CAAgB,CAAA,CAAI9I,QAAAA,CAAmB,EAAE,CAAA,CAE/D,OAAAmH,SAAAA,CAAU,IAAM,CACd,IAAM4B,CAAAA,CAAe,CAAC,CAACL,CAAAA,CAEvB,GAAMD,CAAAA,EAAoB,OAAOA,CAAAA,EAAqB,QAAA,CAAU,CAC9D,IAAMO,CAAAA,CAAuBtG,KAAAA,CAAM+F,CAAgB,CAAA,CAAA,CACzB,KAAA,CAAM,OAAA,CAAQO,CAAoB,CAAA,CACvDA,CAAAA,CACA,CAACA,CAAoB,IAEP,OAAA,CAAStB,CAAAA,EAAS,CACnC,IAAMuB,CAAAA,CACJ,OAAOvB,CAAAA,CAAK,KAAA,EAAO,UAAa,QAAA,CAAWA,CAAAA,CAAK,KAAA,EAAO,QAAA,CAAW,GAC9DwB,CAAAA,CAAyBhB,EAAAA,CAC7Be,CAAAA,CACAR,CACF,EACA,GAAIQ,CAAAA,EAAgB,MAAA,CAAO,QAAQ,CAAA,GAAM,EAAA,CAAI,CAC3C,IAAMzG,EAAUyG,CAAAA,CAAe,KAAA,CAAM,QAAQ,CAAA,CAC7CzG,CAAAA,CAAQ,CAAC,CAAA,CAAI0F,EAAAA,CAAyB1F,EAAQ,CAAC,CAAA,CAAGiG,CAAgB,CAAA,CAC9DM,CAAAA,GACFvG,CAAAA,CAAQ,CAAC,CAAA,EAAK,yBAEhBsG,CAAAA,CAAiBtG,CAAO,EAC1B,CAAA,KAAOsG,CAAAA,CAAkBpB,CAAAA,EAAS,CAAC,GAAGA,EAAMwB,CAAsB,CAAC,EACrE,CAAC,EACH,CACF,CAAA,CAAG,CAACxI,EAAa+H,CAAgB,CAAC,CAAA,CAGhCvH,IAAAA,CAACC,CAAAA,CAAA,CAAkB,IAAA,CAAMV,CAAAA,CACvB,UAAAN,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,gKAAA,CAAiK,CAAA,CAChLA,GAAAA,CAACiB,CAAAA,CAAA,CAAgB,MAAOL,CAAAA,CAAY,CAAA,CACpCG,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,uIAAA,CACb,QAAA,CAAA,CAAAf,GAAAA,CAAC,GAAA,CAAA,CAAE,UAAU,oCAAA,CAAsC,QAAA,CAAA0I,CAAAA,CAAc,CAAC,CAAA,CAAE,CAAA,CACnE,CAAC,CAACH,GACDxH,IAAAA,CAACG,GAAAA,CAAA,CACC,QAAA,CAAWV,CAAAA,CAAmB,EAAA,CAAJ,CAAA,CAC1B,KAAA,CAAOA,EAAe,EAAA,CAAM,CAAA,CAC5B,SAAA,CAAU,kDAAA,CAEV,QAAA,CAAA,CAAAR,GAAAA,CAAC,GAAA,CAAA,CAAE,SAAA,CAAU,UAAW,QAAA,CAAAuC,KAAAA,CAAMiG,CAAe,CAAA,CAAE,EAC/CxI,GAAAA,CAAC,GAAA,CAAA,CAAE,SAAA,CAAU,wBAAA,CAA0B,SAAAuC,KAAAA,CAAMgG,CAAS,CAAA,CAAE,CAAA,CACvD,CAAC,CAACE,CAAAA,EACDzI,GAAAA,CAAC,KAAE,SAAA,CAAU,SAAA,CAAW,QAAA,CAAAuC,KAAAA,CAAMkG,CAAa,CAAA,CAAE,CAAA,CAAA,CAEjD,CAAA,CAGDC,EAAc,GAAA,CAAI,CAACnB,CAAAA,CAAMF,CAAAA,GACpBA,CAAAA,GAAU,CAAA,CAAU,IAAA,CAGpBrH,GAAAA,CAAC,KAAc,SAAA,CAAU,oCAAA,CACtB,QAAA,CAAAuH,CAAAA,CAAAA,CADKF,CAER,CAEL,CAAA,CAAA,CACH,CAAA,CAAA,CACF,CAEJ,EAEO2B,EAAAA,CAAQd","file":"chunk-D4GX3EGZ.js","sourcesContent":["import { createContext, useContext, useState } from \"react\";\n\nexport interface Chapter {\n id: string;\n chapterTitle: string | undefined;\n pageNumber: number;\n}\n\nconst BookMenuContext = createContext<{\n menu: Chapter[] | null;\n setMenu: React.Dispatch<React.SetStateAction<Chapter[] | null>>;\n firstPage: number;\n setFirstPage: React.Dispatch<React.SetStateAction<number>>;\n} | null>(null);\n\nexport const BookMenuProvider = ({ children }: any) => {\n const [menu, setMenu] = useState<Chapter[] | null>(null);\n const [firstPage, setFirstPage] = useState<number>(0);\n return (\n <BookMenuContext.Provider\n value={{ menu, setMenu, firstPage, setFirstPage }}>\n {children}\n </BookMenuContext.Provider>\n );\n};\n\nexport const useMenuContext = () => {\n const value = useContext(BookMenuContext);\n if (!value) return null;\n return {\n menu: value.menu,\n setMenu: value.setMenu,\n };\n};\n\nexport const useFirstPageContext = () => {\n const value = useContext(BookMenuContext);\n if (!value) return null;\n return {\n setFirstPage: value.setFirstPage,\n firstPage: value.firstPage,\n };\n};\n","// import LineText from \"@/components/common/LineText\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { FadeInMotion } from \"../../../FadeInMotion\";\nimport { FC } from \"react\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\nimport { Typography } from \"../../atomics\";\nimport TitleCustom from \"../../moleculars/Title\";\nimport { Field } from \"../../types/base\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\n\ninterface BookCoverSectionProps extends BaseSectionProps {}\n\ninterface BookCoverSectionData {\n title: Field;\n description: Field;\n background: Field;\n author_cover: Field;\n author_cover_prefix: Field;\n}\n\nconst BookCoverSection: FC<BookCoverSectionProps> = ({\n id,\n sectionData,\n hasAnimation = true,\n configTheme,\n}) => {\n const {\n title,\n description,\n background,\n author_cover: authorCover,\n author_cover_prefix: authorCoverPrefix,\n } = sectionData as BookCoverSectionData;\n\n return (\n <SectionFullScreen name={id}>\n <BackgroundImage field={background} />\n <div className=\"absolute left-0 top-0 z-50 flex h-full w-full items-end justify-center\">\n {title?.value && (\n <FadeInMotion\n duration={!hasAnimation ? 0 : 0.5}\n delay={hasAnimation ? 0.2 : 0}\n className=\"mb-28 px-4 py-6 bg-black/50 \">\n {authorCover && authorCoverPrefix && (\n <div className=\"text-sm uppercase space-x-1\">\n <Typography variant=\"span\" className=\"font-light text-neutral\">\n {authorCoverPrefix.value}\n </Typography>\n <Typography\n variant=\"span\"\n className=\"font-semibold text-neutral-1\">\n {authorCover.value}\n </Typography>\n </div>\n )}\n <TitleCustom\n className=\"text-2xl\"\n field={title}\n configTheme={configTheme}\n />\n {description && (\n <>\n <div className=\"h-[1px] w-full rounded-lg border\" />\n <Typography variant=\"p\">{description.value}</Typography>\n </>\n )}\n </FadeInMotion>\n )}\n </div>\n </SectionFullScreen>\n );\n};\n\nexport default BookCoverSection;\n","export const scrollToPage = (\n pageNumber: number,\n otherSectionNumber: number\n) => {\n const container = document.getElementById(\"snap-container\")!;\n const clientHeight = window.innerHeight;\n const currentPagePosition =\n clientHeight * otherSectionNumber + clientHeight * (pageNumber - 1);\n container.scrollTo({\n top: currentPagePosition,\n behavior: \"smooth\",\n });\n};\n\nexport const serializeDocumentFragment = (el: Element) => {\n const serializer = new XMLSerializer();\n let htmlString = \"\";\n\n el.childNodes.forEach(function (node) {\n let serializedNode = serializer.serializeToString(node);\n serializedNode = serializedNode.replace(\n /\\sxmlns=\"http:\\/\\/www\\.w3\\.org\\/1999\\/xhtml\"/,\n \"\"\n );\n htmlString += serializedNode;\n });\n\n return htmlString;\n};\n","import SectionFullScreen from \"../../../SectionFullScreen\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\nimport { Media } from \"../../../../models/general\";\nimport { FC, useEffect, useState } from \"react\";\nimport { parse } from \"@phygitallabs/helpers\";\nimport draftToHtml from \"draftjs-to-html\";\nimport { debounce } from 'lodash-es';\nimport clsx from \"clsx\";\n// import ModalContinueReading from \"@/components/pages/UI/Sections/BookSection/ModalContinueReading\";\nimport {\n Chapter,\n useFirstPageContext,\n useMenuContext,\n} from \"../../../../hooks/useBookMenuContext\";\nimport { scrollToPage, serializeDocumentFragment } from \"./utils\";\n// import { useRouter } from \"next/router\";\n// import { useProductStory } from \"@/hooks/useProductStory\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useFullScreenContext } from \"../../../../hooks/useFullScreenContext\";\nimport { Field, ThemeConfig } from \"../../types/base\";\nimport TitleCustom from \"../../moleculars/Title\";\nimport { Typography } from \"../../atomics\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\nimport { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';\n\ninterface Cover {\n title: string;\n author: string;\n image: Media;\n caption: string;\n}\n\nexport interface Content {\n title: string;\n image: Media;\n caption: string;\n content: string;\n}\n\ninterface ContentDom extends Content {\n contentInDom: HTMLElement[];\n}\n\ninterface BookSectionData {\n cover: Field;\n content: Field;\n}\n\ninterface Page {\n id: string;\n chapterTitle?: string;\n kind: \"cover\" | \"chapter\" | \"menu\" | \"content\";\n content: string | string[] | Cover | React.ReactElement;\n}\n\nconst CURRENT_PAGE_KEY = \"currentPageV2\";\n\nexport interface BookSectionProps extends BaseSectionProps {\n firstPageIndex: number;\n}\n\nconst renderIntroChapter = (content: Content, configTheme: ThemeConfig) => {\n const renderedContent = (\n <div\n className={clsx(\n \"flex h-full flex-col items-center justify-between gap-2\",\n !content?.image?.url && \"!justify-center\"\n )}\n >\n <TitleCustom\n field={{ value: parse(content.title) } as any}\n configTheme={configTheme}\n className=\"text-center\"\n />\n\n {content?.image?.url && (\n <>\n <div className=\"relative flex h-full w-full flex-col items-center justify-center bg-cover\">\n <BackgroundImage\n field={\n {\n value: {\n image: content?.image,\n is_overlay: true,\n },\n } as any\n }\n />\n {content.image?.url && (\n <Image\n className=\"z-50 max-h-[70svh] w-full object-contain grayscale\"\n src={content.image?.url}\n alt=\"\"\n width={\"auto\"}\n height={\"auto\"}\n />\n )}\n </div>\n {content?.caption && (\n <Typography variant=\"span\" className=\"italic p-2\">\n {content?.caption}\n </Typography>\n )}\n </>\n )}\n </div>\n );\n return renderedContent;\n};\n\nconst makeImageContent = (dom: HTMLImageElement) => {\n let alt = dom?.alt === \"undefined\" ? \"\" : dom.alt;\n return (\n <div className=\"flex h-full w-full flex-col items-center justify-center overflow-hidden bg-[transparent]\">\n <div className=\"relative flex h-full w-full flex-col justify-center\">\n <div className=\"relative inset-0 flex h-full w-full flex-col items-center justify-center backdrop-blur\">\n <Image\n src={dom?.src}\n alt=\"Culture\"\n className=\"max-h-[400px] w-full object-contain\"\n width={\"auto\"}\n height={\"auto\"}\n />\n {alt && (\n <div className=\" inset-0 flex w-full items-end bg-[transparent]\">\n <div className=\"flex w-full flex-col items-center justify-center overflow-y-hidden bg-white-alpha-.1 p-2 backdrop-blur-md\">\n <p className=\"text-sm font-light\">{alt}</p>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nconst convertObjectToHtml = (content: Content[]) => {\n return content.map(({ content, ...rest }: any) => {\n const dom = new DOMParser().parseFromString(\n draftToHtml(JSON.parse(content)),\n \"text/html\"\n );\n const domArr = Array.from(dom.querySelector(\"body\")!.childNodes);\n const domArrWithoutTextNode = domArr.filter((node) => {\n return node.nodeName !== \"#text\";\n });\n return {\n contentInDom: domArrWithoutTextNode,\n ...rest,\n } as ContentDom;\n });\n};\n\nconst BookSection: FC<BookSectionProps> = ({\n sectionData,\n id,\n configTheme,\n firstPageIndex,\n}) => {\n const { content, cover } = { ...sectionData } as BookSectionData;\n const { firstPage, setFirstPage } = useFirstPageContext()!;\n const { isInViewport } = useFullScreenContext(id);\n\n const [pages, setPages] = useState<Page[]>([\n {\n id: \"cover\",\n kind: \"cover\",\n content: cover?.value,\n },\n {\n id: \"menu\",\n kind: \"menu\",\n content: content?.value?.map(({ title }: { title: string }) => title),\n },\n ]);\n const [pageNumber, setPageNumber] = useState(-1);\n // const [isModalOpen, setIsModalOpen] = useState(false);\n // const [previousPage, setPreviousPage] = useState<number | null>(null);\n const { menu, setMenu } = useMenuContext()!;\n const container = document.getElementById(\"container\")!;\n\n // const toggleModal = () => setIsModalOpen((pre) => !pre);\n\n // const handleOpenModalContinueModal = () => {\n // const previousPageData = localStorage.getItem(CURRENT_PAGE_KEY);\n // if (previousPageData === null) return;\n // const previousPageObject = JSON.parse(previousPageData);\n // const previousPage = previousPageObject[itemId];\n // if (previousPage === undefined || previousPage < 1) return;\n // setPreviousPage(previousPage);\n // if (itemInfo?.extra_info?.owner_name || itemInfo?.extra_info?.context)\n // setIsModalOpen(true);\n // else setIsModalOpen(false);\n // };\n\n const handlePagination = () => {\n let sections: Page[] = [];\n const LINE_HEIGHT = 28;\n const PADDING_X = 20 * 2;\n const PADDING_LIST_PARAGRAPH_X = 20 * 2;\n const container = document.getElementById(\"container\")!;\n const formattedContent = convertObjectToHtml(content?.value);\n const baseContainerWidth = container.offsetWidth - PADDING_X;\n const containerHeight = container.offsetHeight;\n const maxLinePerPage = Math.floor(containerHeight / LINE_HEIGHT);\n\n let pageContent = \"\";\n let currentLine = \"\";\n let currentPage = 0;\n let currentLineNumber = 0;\n let isFirstLineListPara = false;\n\n //CANVAS\n const canvas = document.getElementById(\"canvas\") as HTMLCanvasElement;\n const ctx = canvas.getContext(\"2d\")!;\n const style = window.getComputedStyle(container);\n const { fontSize, fontWeight, fontStyle, fontFamily } = style;\n ctx.font = `${fontStyle} ${fontWeight} ${fontSize} ${fontFamily}`;\n\n const resetnewPage = () => {\n pageContent = \"\";\n currentLineNumber = 0;\n currentPage++;\n };\n\n const handlePushPageAndReset = (chapterTitle: string) => {\n const htmlDom = new DOMParser().parseFromString(pageContent, \"text/html\");\n const parentNode = htmlDom.querySelector(\"body\")!;\n const domArr = Array.from(parentNode.childNodes) as HTMLDivElement[];\n const isBlankPage = domArr.every(\n (dom) => dom.firstElementChild?.nodeName === \"BR\"\n );\n if (isBlankPage) return;\n\n let counter = 0;\n const removeFirstBrsInPage = (parent: HTMLBodyElement) => {\n const childNodes = Array.from(parent.childNodes) as HTMLDivElement[];\n for (let i = 0; i < childNodes.length; i++) {\n const childNode = childNodes[i];\n if (\n childNode.firstElementChild?.nodeName === \"BR\" &&\n !childNode.innerText?.trim()\n ) {\n parentNode.removeChild(childNodes[i]);\n counter++;\n } else return;\n }\n };\n removeFirstBrsInPage(parentNode as any);\n currentLineNumber -= counter;\n const content = (\n <div>{parse(serializeDocumentFragment(parentNode as any))}</div>\n );\n sections.push({\n id: \"chapter\",\n chapterTitle,\n kind: \"content\",\n content,\n });\n resetnewPage();\n };\n\n const addNewLineToPageContent = ({\n hasSpacing,\n isListParagraph,\n isLastLineInParagraph,\n }: {\n hasSpacing: boolean;\n isListParagraph: boolean;\n isLastLineInParagraph: boolean;\n }) => {\n if (!currentLine.length) return;\n let className = twMerge(\n !isLastLineInParagraph && \"text-last-justify\",\n isListParagraph && \"px-5\",\n isListParagraph &&\n isFirstLineListPara &&\n `relative before:content-['●'] before:absolute before:left-0`\n );\n isFirstLineListPara = false;\n pageContent += `<div className=\"${className}\">\n ${currentLine}${hasSpacing ? \" \" : \"\"}\n </div>`;\n currentLineNumber++;\n };\n const handleParagraphNode = ({\n dom,\n isLastDomParagraph,\n chapterTitle,\n isListParagraph,\n }: {\n dom: HTMLElement;\n isLastDomParagraph: boolean;\n chapterTitle: string;\n isListParagraph: boolean;\n }) => {\n let containerWidth = baseContainerWidth;\n isFirstLineListPara = false;\n if (isListParagraph) {\n containerWidth = baseContainerWidth - PADDING_LIST_PARAGRAPH_X;\n isFirstLineListPara = true;\n }\n const isNextNodeImg = dom.nextElementSibling?.nodeName === \"IMG\";\n const content = dom.innerText.trim();\n const handleSplitIntoPages = (words: string[]) => {\n for (let j = 0; j < words.length; j++) {\n const isLastWord = () => j === words.length - 1;\n const word = words[j];\n const separator = j === 0 ? \"\" : \" \";\n\n const currentLineStillHasSpace =\n ctx.measureText(`${currentLine}${separator}${word}`).width <\n containerWidth;\n\n if (currentLineStillHasSpace) {\n currentLine += `${separator}${word}`;\n if (isLastWord() && (isLastDomParagraph || isNextNodeImg)) {\n addNewLineToPageContent({\n hasSpacing: false,\n isListParagraph,\n isLastLineInParagraph: true,\n });\n handlePushPageAndReset(chapterTitle);\n currentLine = \"\";\n }\n } else {\n addNewLineToPageContent({\n hasSpacing: true,\n isListParagraph,\n isLastLineInParagraph: false,\n });\n currentLine = `${word}`;\n if (isLastWord() && (isLastDomParagraph || isNextNodeImg)) {\n addNewLineToPageContent({\n hasSpacing: false,\n isListParagraph,\n isLastLineInParagraph: true,\n });\n handlePushPageAndReset(chapterTitle);\n currentLine = \"\";\n } else {\n const isLastLine = currentLineNumber === maxLinePerPage;\n // Check recursive case\n if (isLastLine && !(isLastWord() || isNextNodeImg)) {\n handlePushPageAndReset(chapterTitle);\n currentLine = \"\";\n handleSplitIntoPages(words.slice(j));\n return;\n } else {\n // Do nothing\n if (!isLastLine && isNextNodeImg) {\n } else if (\n !isLastLine &&\n !(isLastWord() && isLastDomParagraph)\n ) {\n } else handlePushPageAndReset(chapterTitle);\n }\n }\n }\n }\n };\n handleSplitIntoPages(content.split(\" \"));\n };\n\n const handleBreakParagraph = (\n chapterTitle: string,\n isListParagraph: boolean\n ) => {\n currentLine += \"<br/>\";\n addNewLineToPageContent({\n hasSpacing: false,\n isListParagraph,\n isLastLineInParagraph: true,\n });\n if (currentLineNumber === maxLinePerPage) {\n handlePushPageAndReset(chapterTitle);\n resetnewPage();\n }\n currentLine = \"\";\n };\n\n const handleImageNode = (dom: HTMLElement, chapterTitle: string) => {\n sections.push({\n id: \"chapter\",\n chapterTitle: chapterTitle,\n kind: \"content\",\n content: makeImageContent(dom as HTMLImageElement),\n });\n };\n\n for (let i = 0; i < formattedContent.length; i++) {\n const chapterContent = formattedContent[i];\n const chapterTitle = chapterContent.title;\n sections.push({\n id: `chapter-${i + 1}`,\n kind: \"chapter\",\n content: renderIntroChapter(chapterContent, configTheme as ThemeConfig),\n chapterTitle,\n });\n\n const { contentInDom } = chapterContent;\n\n const traverseDom = (htmlElements: HTMLElement[]) => {\n let lastPIndex;\n for (let k = htmlElements.length - 1; k >= 0; k--) {\n const dom = htmlElements[k];\n if (dom.nodeName === \"P\") {\n lastPIndex = k;\n break;\n }\n }\n for (let j = 0; j < htmlElements.length; j++) {\n const dom = htmlElements[j];\n switch (dom.nodeName) {\n case \"UL\":\n traverseDom(Array.from(dom.children) as HTMLElement[]);\n break;\n case \"LI\":\n case \"P\":\n const isListParagraph = dom.nodeName === \"LI\";\n const isLastDomParagraph = lastPIndex === j;\n handleParagraphNode({\n dom,\n isLastDomParagraph,\n chapterTitle,\n isListParagraph,\n });\n handleBreakParagraph(chapterTitle, isListParagraph);\n break;\n case \"IMG\":\n handleImageNode(dom, chapterTitle);\n break;\n default:\n break;\n }\n }\n };\n traverseDom(contentInDom);\n }\n const defaultSection: Page[] = [\n {\n id: \"cover\",\n kind: \"cover\",\n content: cover?.value,\n },\n {\n id: \"menu\",\n kind: \"menu\",\n content: content?.value?.map(({ title }: { title: string }) => title),\n },\n ];\n setPages([...defaultSection, ...sections]);\n };\n\n const handlePageScroll = (container: HTMLElement) => {\n let currentPageNumber =\n Math.ceil(container.scrollTop / container.offsetHeight) - 3;\n if (currentPageNumber <= pages.length) {\n setPageNumber(currentPageNumber);\n }\n const lastPageData = localStorage.getItem(CURRENT_PAGE_KEY);\n let pageObject: { [key: string]: number } = {};\n if (!!lastPageData) pageObject = JSON.parse(lastPageData);\n // pageObject[itemId] = currentPageNumber;\n localStorage.setItem(CURRENT_PAGE_KEY, JSON.stringify(pageObject));\n };\n const debounceScroll = (container: HTMLElement) => {\n return debounce(() => handlePageScroll(container), 20);\n };\n\n useEffect(() => {\n const handlePaginationTimeOut = () =>\n setTimeout(() => handlePagination(), 1000);\n if (!content?.value || !container) return;\n setFirstPage(firstPageIndex);\n handlePaginationTimeOut();\n const debouncedHandleResize = debounce(handlePaginationTimeOut, 200);\n window.addEventListener(\"resize\", debouncedHandleResize);\n return () => window.removeEventListener(\"resize\", debouncedHandleResize);\n }, [content?.value, container]);\n\n useEffect(() => {\n const container = document.getElementById(\"snap-container\")!;\n container.addEventListener(\"scroll\", debounceScroll(container));\n\n return () => {\n container.removeEventListener(\"scroll\", debounceScroll(container));\n };\n }, [pages]);\n\n useEffect(() => {\n const chapterMenu = pages\n ?.map((page, index) => {\n return {\n id: page.id,\n kind: page.kind,\n chapterTitle: page.chapterTitle,\n pageNumber: index,\n };\n })\n .filter((page) => page.kind === \"chapter\")\n .map((page) => {\n return {\n id: page.id,\n chapterTitle: parse(page.chapterTitle || \"\"),\n pageNumber: page.pageNumber,\n };\n });\n setMenu(chapterMenu as Chapter[]);\n }, [pages, firstPage]);\n\n const renderByPageKind = (page: Page) => {\n switch (page.kind) {\n case \"cover\":\n const cover = page.content as Cover;\n return (\n <div\n id=\"cover\"\n className=\"flex h-full flex-col items-center justify-start\"\n >\n <div>\n <TitleCustom\n field={{ value: cover?.title }}\n configTheme={configTheme}\n className=\"whitespace-normal text-center text-2xl\"\n />\n <Typography variant=\"h6\" className=\"text-center\">\n {cover?.author}\n </Typography>\n </div>\n <div className=\"flex h-1/2 flex-col items-center\">\n {cover?.image?.url && (\n <Image\n className=\"h-full object-contain\"\n src={cover?.image?.url}\n alt=\"\"\n />\n )}\n <p className=\"w-full bg-white-alpha-.1 p-2 text-center italic\">\n {cover?.caption}\n </p>\n </div>\n </div>\n );\n case \"menu\":\n return (\n <div id=\"menu\" className=\"h-full space-y-8\">\n <TitleCustom\n field={{ value: \"Mục lục\" }}\n configTheme={configTheme}\n className=\"text-center\"\n />\n <div className=\"h-5/6 space-y-5 overflow-scroll text-center text-lg\">\n {menu &&\n menu?.map((item) => (\n <p\n key={item.id}\n onClick={() => scrollToPage(item.pageNumber, 2)}\n >\n {item.chapterTitle}\n </p>\n ))}\n </div>\n </div>\n );\n case \"chapter\":\n return (\n <div id={page.id} className=\"h-full text-justify\">\n {page.content as React.ReactElement}\n </div>\n );\n case \"content\":\n return (\n <div className=\"h-full text-justify\">\n {page.content as React.ReactElement}\n </div>\n );\n default:\n return null;\n }\n };\n return (\n // <div className=\"relative h-full m-auto font-stix\">\n <>\n {/* <ModalContinueReading\n pageNumber={previousPage!}\n isModalOpen={isModalOpen}\n toggleModal={toggleModal}\n otherSectionNumber={firstPage}\n /> */}\n {pages.map((page, index) => {\n // const isChapterTitleRendered =\n // page.chapterTitle && page.kind !== \"chapter\";\n return (\n <>\n <SectionFullScreen key={index} name={id}>\n <div className=\"h-full pt-[50px]\">\n {/* {isChapterTitleRendered && (\n <div className=\"px-6 py-3 text-center text-base font-bold uppercase leading-5\">\n {page.chapterTitle}\n </div>\n )} */}\n <div\n id=\"container\"\n className=\"flex h-full w-full flex-col px-5 text-base font-light leading-7\"\n style={{\n fontFamily: configTheme?.font_family,\n color: configTheme?.secondary_color,\n }}\n >\n {renderByPageKind(page)}\n </div>\n </div>\n <canvas className=\"invisible\" id=\"canvas\" />\n </SectionFullScreen>\n </>\n );\n })}\n <div\n className={clsx(\n \"fixed bottom-2 left-1/2 z-50 flex w-fit -translate-x-1/2 rounded-lg bg-black p-2 text-white\",\n (pageNumber <= 0 || !isInViewport) && \"hidden\"\n )}\n >\n {pageNumber}/{pages.length}\n </div>\n </>\n );\n};\nexport default BookSection;\n","// @ts-nocheck\nimport { BaseSectionProps } from \"../../../../../LandingPage/models/base-section\";\nimport { Field } from \"../../types/base\";\nimport { parse } from \"@phygitallabs/helpers\";\nimport { FC, useEffect, useState } from \"react\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { FadeInMotion } from \"../../../FadeInMotion\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\n\ninterface NgheLetterSectionProps extends BaseSectionProps {}\n\ninterface NgheLetterSectionData {\n owner_name: Field;\n description: Field;\n background: Field;\n honorofics: Field;\n position: Field;\n}\n\nconst getKeysInDescription = (description: string): string[] => {\n if (description === undefined || \"\") return [];\n const regex = /\\{([^}]+)\\}/g;\n const matches = description?.match(regex);\n let keys: string[] = [];\n if (matches) {\n const keysArrayAfterMatch = matches?.map((match) => match.slice(1, -1));\n keys = keysArrayAfterMatch.filter((item, index, array) => {\n return array.indexOf(item) === index;\n });\n }\n return keys;\n};\n\nconst replaceKeysInDescription = (description: string, extraInfo: any) => {\n const keys = getKeysInDescription(description);\n if (keys.length === 0) return description;\n keys.forEach((key) => {\n description = description?.replaceAll(`{${key}}`, extraInfo?.[key] ?? \"\");\n });\n return description;\n};\n\nconst NgheLetterSection: FC<NgheLetterSectionProps> = ({\n id,\n sectionData,\n hasAnimation = true,\n}) => {\n const { background, description, owner_name, honorofics, position } =\n sectionData || ({} as Partial<NgheLetterSectionData>);\n\n const descriptionValue = description?.value as string;\n const nameValue = owner_name?.value;\n const honoroficsValue = honorofics?.value;\n const positionValue = position?.value;\n\n const [letterContent, setLetterContent] = useState<string[]>([]);\n\n useEffect(() => {\n const hasOwnerName = !!nameValue;\n\n if (!!descriptionValue && typeof descriptionValue === \"string\") {\n const rawParsedDescription = parse(descriptionValue);\n const parsedDescription = Array.isArray(rawParsedDescription)\n ? (rawParsedDescription as React.ReactElement[])\n : ([rawParsedDescription] as React.ReactElement[]);\n\n parsedDescription?.forEach((item) => {\n const parsedChildren =\n typeof item.props?.children === \"string\" ? item.props?.children : \"\";\n const contentAfterReplaceKey = replaceKeysInDescription(\n parsedChildren,\n descriptionValue\n );\n if (parsedChildren?.search(\"{name}\") !== -1) {\n const content = parsedChildren.split(\"{name}\") as string[];\n content[0] = replaceKeysInDescription(content[0], descriptionValue);\n if (hasOwnerName) {\n content[0] += \", thuộc về:\";\n }\n setLetterContent(content);\n } else setLetterContent((item) => [...item, contentAfterReplaceKey]);\n });\n }\n }, [sectionData, descriptionValue]);\n\n return (\n <SectionFullScreen name={id}>\n <div className=\"absolute left-0 top-0 z-10 flex h-[100svh] svh-full w-full flex-col items-center justify-center gap-[16px] bg-black-alpha-.8 px-[16px] pb-[32px] sm:gap-[24px]\"></div>\n <BackgroundImage field={background} />\n <div className=\"absolute left-0 top-[80px] z-10 flex h-[95%] w-full flex-col items-center justify-start gap-[10px] overflow-hidden px-5 sm:gap-[24px]\">\n <p className=\"text-base leading-5 text-neutral-3\">{letterContent[0]}</p>\n {!!nameValue && (\n <FadeInMotion\n duration={!hasAnimation ? 0 : 0.5}\n delay={hasAnimation ? 0.2 : 0}\n className=\"!gap-2 border-2 border-neutral-8 p-2 text-center\"\n >\n <p className=\"text-md\">{parse(honoroficsValue)}</p>\n <p className=\"font-lost-type text-lg\">{parse(nameValue)}</p>\n {!!positionValue && (\n <p className=\"text-md\">{parse(positionValue)}</p>\n )}\n </FadeInMotion>\n )}\n\n {letterContent.map((item, index) => {\n if (index === 0) return null;\n else\n return (\n <p key={index} className=\"text-base leading-5 text-neutral-3\">\n {item}\n </p>\n );\n })}\n </div>\n </SectionFullScreen>\n );\n};\n\nexport default NgheLetterSection;\n"]}
@@ -0,0 +1,3 @@
1
+ import {jsxs,jsx}from'react/jsx-runtime';var n=()=>jsxs("svg",{stroke:"currentColor",fill:"none","stroke-width":"2",viewBox:"0 0 24 24","stroke-linecap":"round","stroke-linejoin":"round",height:"1em",width:"1em",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),jsx("polyline",{points:"15 3 21 3 21 9"}),jsx("line",{x1:"10",x2:"21",y1:"14",y2:"3"})]}),t=n;
2
+ export{t as a};//# sourceMappingURL=chunk-DG5W33AY.js.map
3
+ //# sourceMappingURL=chunk-DG5W33AY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/icons/IconExternalLink.tsx"],"names":["IconExternalLink","jsxs","jsx","IconExternalLink_default"],"mappings":"yCAAA,IAAMA,CAAAA,CAAmB,IAErBC,IAAAA,CAAC,KAAA,CAAA,CACC,MAAA,CAAO,eACP,IAAA,CAAK,MAAA,CACL,cAAA,CAAa,GAAA,CACb,OAAA,CAAQ,WAAA,CACR,iBAAe,OAAA,CACf,iBAAA,CAAgB,OAAA,CAChB,MAAA,CAAO,KAAA,CACP,KAAA,CAAM,MACN,KAAA,CAAM,4BAAA,CAEN,QAAA,CAAA,CAAAC,GAAAA,CAAC,MAAA,CAAA,CAAK,CAAA,CAAE,2DAA2D,CAAA,CACnEA,GAAAA,CAAC,UAAA,CAAA,CAAS,MAAA,CAAO,gBAAA,CAAiB,CAAA,CAClCA,IAAC,MAAA,CAAA,CAAK,EAAA,CAAG,IAAA,CAAK,EAAA,CAAG,IAAA,CAAK,EAAA,CAAG,KAAK,EAAA,CAAG,GAAA,CAAI,CAAA,CAAA,CACvC,CAAA,CAIGC,CAAAA,CAAQH","file":"chunk-DG5W33AY.js","sourcesContent":["const IconExternalLink = () => {\n return (\n <svg\n stroke=\"currentColor\"\n fill=\"none\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>\n <polyline points=\"15 3 21 3 21 9\"></polyline>\n <line x1=\"10\" x2=\"21\" y1=\"14\" y2=\"3\"></line>\n </svg>\n );\n};\n\nexport default IconExternalLink;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkGXUG743T_cjs=require('./chunk-GXUG743T.cjs'),chunkXFF6JIWQ_cjs=require('./chunk-XFF6JIWQ.cjs'),chunkGEGMACK2_cjs=require('./chunk-GEGMACK2.cjs'),chunkDPN6OBT5_cjs=require('./chunk-DPN6OBT5.cjs'),imageNomion=require('@phygitallabs/core-ui/components/image-nomion'),jsxRuntime=require('react/jsx-runtime');var F=({id:s,sectionData:m,configTheme:i,currentIndex:c,ownerName:f})=>{let{title:d={},image:o={},background:u={},centerSubtitle:p={}}=m??{},g=o?.value?.url;return jsxRuntime.jsxs(chunkDPN6OBT5_cjs.g,{name:s,children:[jsxRuntime.jsx(chunkGXUG743T_cjs.a,{field:u}),jsxRuntime.jsxs("div",{className:"absolute left-0 top-0 z-10 flex h-full w-full flex-col items-center justify-center gap-3 bg-cover bg-center px-[16px] pt-[60px] sm:gap-[24px]",children:[jsxRuntime.jsx(chunkXFF6JIWQ_cjs.a,{field:d,lineText:true,configTheme:i}),jsxRuntime.jsxs(chunkGEGMACK2_cjs.a,{delay:.5,className:"max-h-[50%] w-full items-center relative max-w-[400px]",children:[g&&jsxRuntime.jsx(imageNomion.ImageNomion,{src:o?.value.url,alt:"image",className:"h-full w-full object-contain"}),jsxRuntime.jsx("div",{className:"absolute top-[53%] left-[70%] text-black uppercase -translate-x-1/2 ",children:jsxRuntime.jsx(chunkXFF6JIWQ_cjs.a,{className:"text-[12px] font-massimo",field:{value:f}})}),jsxRuntime.jsx("div",{className:"absolute bottom-[16%] left-[48%] text-black uppercase -translate-x-1/2 ",children:jsxRuntime.jsx(chunkXFF6JIWQ_cjs.a,{className:"text-2xl font-massimo text-[#FCB649]",field:{value:c}})})]}),jsxRuntime.jsx(chunkGEGMACK2_cjs.a,{className:"w-full justify-center text-center",delay:.5,children:jsxRuntime.jsx(chunkXFF6JIWQ_cjs.a,{field:p,configTheme:i})}),jsxRuntime.jsx("div",{className:"w-full h-full"})]})]})},I=F;exports.a=I;//# sourceMappingURL=chunk-DJ66MNKV.cjs.map
2
+ //# sourceMappingURL=chunk-DJ66MNKV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/organisms/HesmanCertSection/index.tsx"],"names":["HesmanCertSection","id","sectionData","configTheme","currentIndex","ownerName","title","image","background","centerSubtitle","shouldRenderImage","jsxs","SectionFullScreen_default","jsx","BackgroundImage_default","Title_default","FadeInMotion","Image","HesmanCertSection_default"],"mappings":"sUAyBA,IAAMA,CAAAA,CAAgD,CAAC,CACrD,EAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,EACA,WAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAAC,CACF,CAAA,GAAM,CACJ,GAAM,CACJ,KAAA,CAAAC,CAAAA,CAAQ,EAAC,CACT,MAAAC,CAAAA,CAAQ,EAAC,CAET,UAAA,CAAAC,EAAa,EAAC,CACd,cAAA,CAAAC,CAAAA,CAAiB,EACnB,CAAA,CAAIP,CAAAA,EAAgB,GAGdQ,CAAAA,CAAoBH,CAAAA,EAAO,KAAA,EAAO,GAAA,CACxC,OACEI,eAAAA,CAACC,mBAAAA,CAAA,CAAkB,IAAA,CAAMX,EACvB,QAAA,CAAA,CAAAY,cAAAA,CAACC,mBAAAA,CAAA,CAAgB,MAAON,CAAAA,CAAY,CAAA,CACpCG,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,+IAAA,CACb,QAAA,CAAA,CAAAE,cAAAA,CAACE,mBAAAA,CAAA,CAAY,KAAA,CAAOT,CAAAA,CAAO,SAAQ,IAAA,CAAC,WAAA,CAAaH,EAAa,CAAA,CAE9DQ,eAAAA,CAACK,mBAAAA,CAAA,CACC,MAAO,EAAA,CACP,SAAA,CAAU,wDAAA,CAET,QAAA,CAAA,CAAAN,GACCG,cAAAA,CAACI,uBAAAA,CAAA,CACC,GAAA,CAAKV,GAAO,KAAA,CAAM,GAAA,CAClB,GAAA,CAAI,OAAA,CACJ,UAAU,8BAAA,CACZ,CAAA,CAEFM,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,sEAAA,CACb,QAAA,CAAAA,cAAAA,CAACE,mBAAAA,CAAA,CACC,SAAA,CAAU,0BAAA,CACV,KAAA,CAAO,CAAE,MAAOV,CAAW,CAAA,CAC7B,EACF,CAAA,CACAQ,cAAAA,CAAC,OAAI,SAAA,CAAU,yEAAA,CACb,QAAA,CAAAA,cAAAA,CAACE,oBAAA,CACC,SAAA,CAAU,sCAAA,CACV,KAAA,CAAO,CAAE,KAAA,CAAOX,CAAc,CAAA,CAChC,CAAA,CACF,GACF,CAAA,CACAS,cAAAA,CAACG,mBAAAA,CAAA,CAAa,UAAU,mCAAA,CAAoC,KAAA,CAAO,EAAA,CACjE,QAAA,CAAAH,eAACE,mBAAAA,CAAA,CAAY,KAAA,CAAON,CAAAA,CAAgB,YAAaN,CAAAA,CAAa,CAAA,CAChE,CAAA,CACAU,cAAAA,CAAC,OAAI,SAAA,CAAU,eAAA,CAAgB,GAgBjC,CAAA,CAAA,CACF,CAEJ,EAEOK,CAAAA,CAAQlB","file":"chunk-DJ66MNKV.cjs","sourcesContent":["import SectionFullScreen from \"../../../SectionFullScreen\";\nimport { FadeInMotion } from \"../../../FadeInMotion\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\n\nimport { FC } from \"react\";\nimport { Field } from \"../../types/base\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\nimport TitleCustom from \"../../moleculars/Title\";\nimport { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';\n\ninterface HesmanCertSectionProps extends BaseSectionProps {\n ownerName?: string;\n currentIndex?: string;\n totalProduct?: string;\n}\n\nexport interface HesmanCertSectionData {\n title: Field<string>;\n image: Field<string>;\n text: Field<string>;\n background: Field<string>;\n coverTitle: Field<string>;\n centerSubtitle: Field<string>;\n}\n\nconst HesmanCertSection: FC<HesmanCertSectionProps> = ({\n id,\n sectionData,\n configTheme,\n currentIndex,\n ownerName,\n}) => {\n const {\n title = {},\n image = {},\n // text = {},\n background = {},\n centerSubtitle = {},\n } = sectionData ?? ({} as HesmanCertSectionData);\n // const textContainer = useRef<HTMLDivElement | null>(null);\n // const { isAlreadyLoad } = useImageOrientation(image?.value?.url);\n const shouldRenderImage = image?.value?.url;\n return (\n <SectionFullScreen name={id}>\n <BackgroundImage field={background} />\n <div className=\"absolute left-0 top-0 z-10 flex h-full w-full flex-col items-center justify-center gap-3 bg-cover bg-center px-[16px] pt-[60px] sm:gap-[24px]\">\n <TitleCustom field={title} lineText configTheme={configTheme} />\n\n <FadeInMotion\n delay={0.5}\n className=\"max-h-[50%] w-full items-center relative max-w-[400px]\"\n >\n {shouldRenderImage && (\n <Image\n src={image?.value.url}\n alt=\"image\"\n className=\"h-full w-full object-contain\"\n />\n )}\n <div className=\"absolute top-[53%] left-[70%] text-black uppercase -translate-x-1/2 \">\n <TitleCustom\n className=\"text-[12px] font-massimo\"\n field={{ value: ownerName! }}\n />\n </div>\n <div className=\"absolute bottom-[16%] left-[48%] text-black uppercase -translate-x-1/2 \">\n <TitleCustom\n className=\"text-2xl font-massimo text-[#FCB649]\"\n field={{ value: currentIndex! }}\n />\n </div>\n </FadeInMotion>\n <FadeInMotion className=\"w-full justify-center text-center\" delay={0.5}>\n <TitleCustom field={centerSubtitle} configTheme={configTheme} />\n </FadeInMotion>\n <div className=\"w-full h-full\" />\n {/*<div*/}\n {/* className=\"relative h-full w-full overflow-hidden\"*/}\n {/* ref={textContainer}>*/}\n {/* {isAlreadyLoad && (*/}\n {/* <CollasibleText*/}\n {/* sectionId={id!}*/}\n {/* field={text}*/}\n {/* ref={textContainer}*/}\n {/* configTheme={configTheme}*/}\n {/* expandedComponent={*/}\n {/* <ReadmoreModal field={text} configTheme={configTheme} />*/}\n {/* }*/}\n {/* />*/}\n {/* )}*/}\n {/*</div>*/}\n </div>\n </SectionFullScreen>\n );\n};\n\nexport default HesmanCertSection;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime'),E=require('clsx'),tailwindMerge=require('tailwind-merge');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var E__default=/*#__PURE__*/_interopDefault(E);var x=react.createContext({currentPlayingId:null,registerMedia:()=>{},unregisterMedia:()=>{},play:()=>{},pause:()=>{},getMediaStatus:()=>"paused",resetTime:()=>{},setVolume:()=>{}}),w=({children:o})=>{let[n,i]=react.useState(null),[r,a]=react.useState(new Map),c=e=>{a(t=>{let s=new Map(t);return s.set(e.id,e),s});},d=e=>{a(t=>{let s=new Map(t);return s.delete(e),s});},p=e=>{r.forEach(s=>{s.id!==e&&s.element&&(s.element.pause(),s.status="paused");}),i(e);let t=r.get(e);t&&(t.status="playing",t.element?.play());},u=e=>{if(n===e){let t=r.get(e);t&&(t.element?.pause(),t.status="paused"),i(null);}},m=e=>r.get(e)?.status||"paused",l=e=>{let t=r.get(e);t&&(t.element.currentTime=0);},f=(e,t=50)=>{let s=r.get(e);s&&(s.element.volume=t);};return jsxRuntime.jsx(x.Provider,{value:{currentPlayingId:n,registerMedia:c,unregisterMedia:d,play:p,pause:u,getMediaStatus:m,resetTime:l,setVolume:f},children:o})},I=()=>{let o=react.useContext(x);if(!o)throw new Error("useMedia must be used within a MediaProvider");return o},B=I;var S=react.createContext(void 0),L=o=>{let n=document.getElementById("snap-container"),r=document.getElementById(o)?.offsetTop;n&&n.scrollTo({top:r,behavior:"smooth"});};function J({children:o,currentSectionId:n,style:i,isSnapScroll:r=true}){let[a,c]=react.useState(""),[d,p]=react.useState({height:0,width:0});console.log("isSnapScroll",r),react.useEffect(()=>{L(n);},[n]);let[u,m]=react.useState(false);return jsxRuntime.jsx(S.Provider,{value:{currentSection:a,setCurrentSection:c,currentSize:d,setCurrentSize:p,isSwipeHomePage:u,setIsSwipeHomePage:m},children:jsxRuntime.jsx(w,{children:jsxRuntime.jsx("div",{id:"snap-container",className:E__default.default("info relative m-auto h-full w-full snap-both snap-mandatory flex-col items-center justify-center overflow-x-hidden",!r&&"!snap-none"),style:i,children:o})})})}var K=()=>{let{isSwipeHomePage:o,setIsSwipeHomePage:n}=react.useContext(S);return {isSwipeHomePage:o,setIsSwipeHomePage:n}};function P(o){let{currentSection:n,setCurrentSection:i,currentSize:r,setCurrentSize:a}=react.useContext(S);return {currentSection:n,setCurrentSection:i,currentSize:r,setCurrentSize:a,isInViewport:n===o}}function V(o){let{name:n,children:i,index:r,className:a,isSnapScroll:c=true,...d}=o,p=r!==void 0?`${n}-${r}`:n,u=react.useRef(null),{setCurrentSection:m}=P();return react.useEffect(()=>{let l=u.current,f=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&m(n);});},{threshold:.5});return l&&f.observe(l),()=>{l&&f.unobserve(l);}},[]),jsxRuntime.jsx("section",{id:p,className:tailwindMerge.twMerge("relative m-auto w-full h-full max-w-[600px] snap-none",!!a&&a,c?"snap-center snap-always":"h-auto"),ref:u,...d,children:i})}var j=V;exports.a=w;exports.b=I;exports.c=B;exports.d=J;exports.e=K;exports.f=P;exports.g=j;//# sourceMappingURL=chunk-DPN6OBT5.cjs.map
2
+ //# sourceMappingURL=chunk-DPN6OBT5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/hooks/audio/useMediaContext.tsx","../src/components/LandingPage/hooks/useFullScreenContext.tsx","../src/components/LandingPage/common/SectionFullScreen/index.tsx"],"names":["MediaContext","createContext","MediaProvider","children","currentPlayingId","setCurrentPlayingId","useState","mediaElements","setMediaElements","registerMedia","info","prev","newMap","unregisterMedia","id","play","media","mediaInfo","pause","getMediaStatus","resetTime","setVolume","volume","jsx","useMedia","context","useContext","useAudio","FullScreenContext","handleClickMenu","target","container","top","FullScreen","currentSectionId","style","isSnapScroll","currentSection","setCurrentSection","currentSize","setCurrentSize","useEffect","isSwipeHomePage","setIsSwipeHomePage","clsx","useSwipeHomePage","useFullScreenContext","section","SectionFullScreen","props","name","index","className","rest","sectionRef","useRef","sectionRefCurrent","observer","entries","entry","twMerge","SectionFullScreen_default"],"mappings":"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","file":"chunk-DPN6OBT5.cjs","sourcesContent":["import { createContext, useContext, useState } from \"react\";\n\ninterface MediaInfo {\n id: string;\n type: \"audio\" | \"video\";\n element: HTMLAudioElement | HTMLVideoElement;\n status?: \"playing\" | \"paused\";\n}\n\ninterface MediaContextType {\n currentPlayingId: string | null;\n registerMedia: (info: MediaInfo) => void;\n unregisterMedia: (id: string) => void;\n play: (id: string) => void;\n pause: (id: string) => void;\n getMediaStatus: (id: string) => \"playing\" | \"paused\";\n resetTime: (id: string) => void;\n setVolume: (id: string, volume: number) => void;\n}\n\nconst MediaContext = createContext<MediaContextType>({\n currentPlayingId: null,\n registerMedia: () => {},\n unregisterMedia: () => {},\n play: () => {},\n pause: () => {},\n getMediaStatus: () => \"paused\",\n resetTime: () => {},\n setVolume: () => {},\n});\n\nexport const MediaProvider = ({ children }: { children: React.ReactNode }) => {\n const [currentPlayingId, setCurrentPlayingId] = useState<string | null>(null);\n const [mediaElements, setMediaElements] = useState<Map<string, MediaInfo>>(\n new Map()\n );\n\n const registerMedia = (info: MediaInfo) => {\n setMediaElements((prev) => {\n const newMap = new Map(prev);\n newMap.set(info.id, info);\n return newMap;\n });\n };\n\n const unregisterMedia = (id: string) => {\n setMediaElements((prev) => {\n const newMap = new Map(prev);\n newMap.delete(id);\n return newMap;\n });\n };\n\n const play = (id: string) => {\n mediaElements.forEach((media) => {\n if (media.id !== id && media.element) {\n media.element.pause();\n media.status = \"paused\";\n }\n });\n setCurrentPlayingId(id);\n const mediaInfo = mediaElements.get(id);\n if (mediaInfo) {\n mediaInfo.status = \"playing\";\n mediaInfo.element?.play();\n }\n };\n\n const pause = (id: string) => {\n if (currentPlayingId === id) {\n const mediaInfo = mediaElements.get(id);\n if (mediaInfo) {\n mediaInfo.element?.pause();\n mediaInfo.status = \"paused\";\n }\n setCurrentPlayingId(null);\n }\n };\n\n const getMediaStatus = (id: string) => {\n const mediaInfo = mediaElements.get(id);\n return mediaInfo?.status || \"paused\";\n };\n\n const resetTime = (id: string) => {\n const mediaInfo = mediaElements.get(id);\n if (mediaInfo) {\n mediaInfo.element.currentTime = 0;\n }\n };\n\n const setVolume = (id: string, volume = 50) => {\n const mediaInfo = mediaElements.get(id);\n if (mediaInfo) {\n mediaInfo.element.volume = volume;\n }\n };\n\n return (\n <MediaContext.Provider\n value={{\n currentPlayingId,\n registerMedia,\n unregisterMedia,\n play,\n pause,\n getMediaStatus,\n resetTime,\n setVolume,\n }}\n >\n {children}\n </MediaContext.Provider>\n );\n};\n\nexport const useMedia = () => {\n const context = useContext(MediaContext);\n if (!context) {\n throw new Error(\"useMedia must be used within a MediaProvider\");\n }\n return context;\n};\n\n// For backward compatibility\nexport const useAudio = useMedia;\n","import clsx from \"clsx\";\nimport {\n createContext,\n CSSProperties,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { MediaProvider } from \"./audio\";\n\nconst FullScreenContext = createContext<any>(undefined);\n\nconst handleClickMenu = (target: string) => {\n const container = document.getElementById(\"snap-container\");\n const targetEle = document.getElementById(target)!;\n const top = targetEle?.offsetTop;\n if (container) {\n container.scrollTo({\n top,\n behavior: \"smooth\",\n });\n }\n // e.stopPropagation();\n};\n\nexport function FullScreen({\n children,\n currentSectionId,\n style,\n isSnapScroll = true,\n}: any & CSSProperties) {\n const [currentSection, setCurrentSection] = useState<string>(\"\");\n const [currentSize, setCurrentSize] = useState<any>({\n height: 0,\n width: 0,\n });\n\n console.log(\"isSnapScroll\", isSnapScroll);\n useEffect(() => {\n handleClickMenu(currentSectionId);\n }, [currentSectionId]);\n\n const [isSwipeHomePage, setIsSwipeHomePage] = useState<boolean>(false);\n return (\n <FullScreenContext.Provider\n value={{\n currentSection,\n setCurrentSection,\n currentSize,\n setCurrentSize,\n isSwipeHomePage,\n setIsSwipeHomePage,\n }}\n >\n <MediaProvider>\n <div\n id=\"snap-container\"\n className={clsx(\n \"info relative m-auto h-full w-full snap-both snap-mandatory flex-col items-center justify-center overflow-x-hidden\",\n !isSnapScroll && \"!snap-none\"\n )}\n style={style}\n >\n {children}\n </div>\n </MediaProvider>\n </FullScreenContext.Provider>\n );\n}\n\nexport const useSwipeHomePage = () => {\n const { isSwipeHomePage, setIsSwipeHomePage } = useContext(FullScreenContext);\n return { isSwipeHomePage, setIsSwipeHomePage };\n};\n\nexport function useFullScreenContext(section?: string) {\n const { currentSection, setCurrentSection, currentSize, setCurrentSize } =\n useContext(FullScreenContext);\n return {\n currentSection,\n setCurrentSection,\n currentSize,\n setCurrentSize,\n isInViewport: currentSection === section,\n };\n}\n","import { useFullScreenContext } from \"../../hooks/useFullScreenContext\";\nimport { DetailedHTMLProps, HTMLAttributes, useEffect, useRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ninterface Props\n extends DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> {\n name?: string;\n showScrollGuide?: boolean;\n children: React.ReactNode;\n index?: number;\n className?: string;\n isSnapScroll?: boolean;\n}\n\nfunction SectionFullScreen(props: Props) {\n const {\n name,\n children,\n index,\n className,\n isSnapScroll = true,\n ...rest\n } = props;\n const id = index !== undefined ? `${name}-${index}` : name;\n const sectionRef = useRef<HTMLElement>(null);\n const { setCurrentSection } = useFullScreenContext();\n\n useEffect(() => {\n const sectionRefCurrent = sectionRef.current;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setCurrentSection(name);\n }\n });\n },\n { threshold: 0.5 }\n );\n\n if (sectionRefCurrent) {\n observer.observe(sectionRefCurrent);\n }\n\n return () => {\n if (sectionRefCurrent) {\n observer.unobserve(sectionRefCurrent);\n }\n };\n }, []);\n\n return (\n <section\n id={id}\n className={twMerge(\n \"relative m-auto w-full h-full max-w-[600px] snap-none\",\n !!className && className,\n isSnapScroll ? \"snap-center snap-always\" : \"h-auto\"\n )}\n ref={sectionRef}\n {...rest}\n >\n {children}\n </section>\n );\n}\n\nexport default SectionFullScreen;\n"]}
@@ -0,0 +1,8 @@
1
+ import {a as a$2}from'./chunk-WK65I7SX.js';import {a}from'./chunk-LSVSIJSZ.js';import {a as a$1}from'./chunk-6GUVMAUD.js';import {j}from'./chunk-LSWFX7YA.js';import {g}from'./chunk-UIPKSEN4.js';import C from'clsx';import {useRef,useState,useEffect}from'react';import {parse}from'@phygitallabs/helpers';import w from'react-clamp-lines';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var R=i=>{let l="";return i?.forEach(e=>{if(typeof e=="string"&&(l+=e),e.type==="br"&&(l+=`
2
+ `),e.type==="em"&&(l+=e.props.children),e.type==="strong"){let t=e.props?.children;l+=typeof t=="string"?`<b className="font-semibold">${t}</b>`:t.props?.children;}}),l},I=i=>{let l=parse(i),e="";return Array.isArray(l)?(l.forEach(t=>{if(t.type==="p"){let n=t.props?.children;typeof n=="string"&&(e+=n),n.type==="br"?e+=`
3
+ `:Array.isArray(n)&&(e+=R(n));}if(t.props.children?.type==="em"){let n=t.props.children;e+=n.props.children;}t.props.children?.type==="br"&&(e+=`
4
+ `),t.type==="ol"&&(e+=`
5
+ `,t.props.children.forEach(n=>{e+=`- ${n.props.children}
6
+ `;}));}),e):l.props.children},A=({id:i,sectionData:l})=>{let{background:e={},description:t={}}=l??{},n=useRef(null),[c,T]=useState(0),[f,y]=useState([]),[a$3,v]=useState("");return useEffect(()=>{if(c)return;let p=setInterval(()=>{c||n.current&&(T(n.current?.clientHeight),v(I(t.value)),clearInterval(p));},500);return ()=>clearInterval(p)},[]),useEffect(()=>{if(!c)return;let p=document.getElementById(`clamped-content-${i}-img-text`);if(p?.innerText.endsWith("...")){let o=p?.innerText.lastIndexOf(" ");for(let s=o+1;s<a$3?.length;s++)if(a$3[s]===" "||a$3[s]===`
7
+ `||a$3[s]==="."){o=s+1;break}let x=j(a$3,o);v(x[1]),y(s=>[...s,x[0]]);}else y(o=>[...o,a$3]);},[c,a$3]),jsxs(Fragment,{children:[jsx(g,{name:i,className:C(f.length>0&&"hidden"),children:jsx("div",{className:"absolute left-0 top-0 -z-10 flex h-full w-full flex-col items-center justify-center px-4 pt-14",children:t.value&&jsx("div",{className:"relative h-full w-full overflow-hidden",ref:n,children:jsx(a,{duration:.5,delay:0,className:"h-full !gap-0",children:jsx("div",{className:C("h-full whitespace-pre-line text-[16px] font-light leading-[20px]"),children:!!c&&f.length===0&&jsx(Fragment,{children:I(t.value)?.length>=20?jsx(w,{id:`${i}-img-text`,text:a$3,lines:c/20-2,buttons:false}):jsx(a$1,{variant:"p",children:parse(t.value)})})})})})})}),f?.map((p,o)=>jsxs(g,{name:o===0?i:`${i}-${o}`,children:[jsx(a$2,{field:e}),jsx("div",{className:"absolute left-0 top-0 z-50 flex h-full w-full flex-col items-center justify-center bg-cover bg-center px-[16px] pt-[60px]",children:jsx("div",{className:"relative h-full w-full overflow-hidden",children:jsx(a,{duration:.5,delay:0,className:"h-full !gap-0",children:jsx("div",{className:"h-full whitespace-pre-line px-2",children:jsx(a$1,{variant:"p",className:"leading-[20px]",children:parse(p)})})})})})]},o))]})},O=A;export{O as a};//# sourceMappingURL=chunk-EFOR7V7D.js.map
8
+ //# sourceMappingURL=chunk-EFOR7V7D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/ui-kit/organisms/LetterSection/index.tsx"],"names":["getTheChildrenWithStrings","p","paragraph","c","text","renderText","textHtml","description","parse","d","em","li","LetterSection","id","sectionData","background","textContainer","useRef","textContainerHeight","setTextContainerHeight","useState","letterArray","setLetterArray","currentContentLetter","setCurrentContentLetter","useEffect","interval","readMoreDiv","currentIndexToSplit","i","letters","splitByIndex","prev","jsxs","Fragment","jsx","SectionFullScreen_default","clsx","FadeInMotion","ClampLines","Typography_default","letter","index","BackgroundImage_default","LetterSection_default"],"mappings":"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","file":"chunk-EFOR7V7D.js","sourcesContent":["// @ts-nocheck\n\nimport { FadeInMotion } from \"../../../FadeInMotion\";\nimport SectionFullScreen from \"../../../SectionFullScreen\";\nimport { BaseSectionProps } from \"../../../../models/base-section\";\nimport clsx from \"clsx\";\nimport { FC, useEffect, useRef, useState } from \"react\";\nimport { parse } from \"@phygitallabs/helpers\";\nimport ClampLines from \"react-clamp-lines\";\nimport { splitByIndex } from \"../../../../utils/helper\";\nimport { Field } from \"../../types/base\";\nimport BackgroundImage from \"../../moleculars/BackgroundImage\";\nimport { Typography } from \"../../atomics\";\n\ninterface LetterSectionProps extends BaseSectionProps {}\n\ninterface LetterSection {\n background: Field;\n description: Field;\n}\n\nconst getTheChildrenWithStrings = (p: React.ReactElement[]) => {\n let paragraph = \"\";\n p?.forEach((c: any) => {\n if (typeof c === \"string\") paragraph += c;\n if (c.type === \"br\") paragraph += \"\\n\";\n if (c.type === \"em\") paragraph += c.props.children;\n if (c.type === \"strong\") {\n let text = c.props?.children;\n paragraph +=\n typeof text === \"string\"\n ? `<b className=\"font-semibold\">${text}</b>`\n : text.props?.children;\n }\n });\n return paragraph;\n};\n\nconst renderText = (textHtml: string) => {\n const description = parse(textHtml) as\n | React.ReactElement[]\n | React.ReactElement;\n let paragraph = \"\";\n if (Array.isArray(description)) {\n description.forEach((d) => {\n if (d.type === \"p\") {\n let p = d.props?.children;\n if (typeof p === \"string\") paragraph += p;\n if (p.type === \"br\") paragraph += \"\\n\";\n else if (Array.isArray(p)) paragraph += getTheChildrenWithStrings(p);\n }\n if (d.props.children?.type === \"em\") {\n let em = d.props.children;\n paragraph += em.props.children;\n }\n if (d.props.children?.type === \"br\") paragraph += \"\\n\";\n if (d.type === \"ol\") {\n paragraph += \"\\n\";\n d.props.children.forEach((li: any) => {\n paragraph += `- ${li.props.children}\\n`;\n });\n }\n });\n return paragraph;\n }\n return description.props.children;\n};\n\nconst LetterSection: FC<LetterSectionProps> = ({\n id,\n sectionData,\n // configTheme,\n}) => {\n const { background = {}, description = {} } =\n sectionData ?? ({} as LetterSection);\n const textContainer = useRef<HTMLDivElement | null>(null);\n const [textContainerHeight, setTextContainerHeight] = useState(0);\n const [letterArray, setLetterArray] = useState<string[]>([]);\n const [currentContentLetter, setCurrentContentLetter] = useState(\"\");\n\n useEffect(() => {\n if (!!textContainerHeight) return;\n const interval = setInterval(() => {\n if (!!textContainerHeight) return;\n if (!textContainer.current) return;\n setTextContainerHeight(textContainer.current?.clientHeight);\n setCurrentContentLetter(renderText(description.value));\n clearInterval(interval);\n }, 500);\n return () => clearInterval(interval);\n }, []);\n\n useEffect(() => {\n if (!textContainerHeight) return;\n const readMoreDiv = document.getElementById(\n `clamped-content-${id}-img-text`\n );\n if (readMoreDiv?.innerText.endsWith(\"...\")) {\n let currentIndexToSplit = readMoreDiv?.innerText.lastIndexOf(\" \");\n for (\n let i = currentIndexToSplit + 1;\n i < currentContentLetter?.length;\n i++\n ) {\n if (\n currentContentLetter[i] === \" \" ||\n currentContentLetter[i] === \"\\n\" ||\n currentContentLetter[i] === \".\"\n ) {\n currentIndexToSplit = i + 1;\n break;\n }\n }\n\n const letters = splitByIndex(currentContentLetter, currentIndexToSplit);\n setCurrentContentLetter(letters[1]);\n setLetterArray((prev) => [...prev, letters[0]]);\n } else {\n setLetterArray((prev) => [...prev, currentContentLetter]);\n }\n }, [textContainerHeight, currentContentLetter]);\n\n return (\n <>\n <SectionFullScreen\n name={id}\n className={clsx(letterArray.length > 0 && \"hidden\")}\n >\n <div className=\"absolute left-0 top-0 -z-10 flex h-full w-full flex-col items-center justify-center px-4 pt-14\">\n {description.value && (\n // <div className=\"flex h-full flex-1 flex-col items-center\">\n <div\n className=\"relative h-full w-full overflow-hidden\"\n ref={textContainer}\n >\n <FadeInMotion duration={0.5} delay={0} className=\"h-full !gap-0\">\n <div\n className={clsx(\n \"h-full whitespace-pre-line text-[16px] font-light leading-[20px]\"\n )}\n >\n {!!textContainerHeight && letterArray.length === 0 && (\n <>\n {renderText(description.value!)?.length >= 20 ? (\n <ClampLines\n id={`${id}-img-text`}\n text={currentContentLetter}\n lines={textContainerHeight / 20 - 2}\n buttons={false}\n />\n ) : (\n <Typography variant=\"p\">\n {parse(description.value!)}\n </Typography>\n )}\n </>\n )}\n </div>\n </FadeInMotion>\n </div>\n // </div>\n )}\n </div>\n </SectionFullScreen>\n {letterArray?.map((letter, index) => (\n <SectionFullScreen\n name={index === 0 ? id : `${id}-${index}`}\n key={index}\n >\n <BackgroundImage field={background} />\n <div className=\"absolute left-0 top-0 z-50 flex h-full w-full flex-col items-center justify-center bg-cover bg-center px-[16px] pt-[60px]\">\n <div\n className=\"relative h-full w-full overflow-hidden\"\n // ref={textContainer}\n >\n <FadeInMotion duration={0.5} delay={0} className=\"h-full !gap-0\">\n <div className=\"h-full whitespace-pre-line px-2\">\n <Typography variant=\"p\" className=\"leading-[20px]\">\n {parse(letter!)}\n </Typography>\n </div>\n </FadeInMotion>\n </div>\n </div>\n </SectionFullScreen>\n ))}\n </>\n );\n};\n\nexport default LetterSection;\n"]}
@@ -0,0 +1,3 @@
1
+ import {jsx}from'react/jsx-runtime';var o=({...l})=>jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",fill:"none",viewBox:"0 0 40 40",...l,children:jsx("path",{fill:"#F0F0F0",d:"M8.334 20v-5.934c0-7.366 5.217-10.383 11.6-6.7l5.15 2.967 5.15 2.967c6.383 3.683 6.383 9.716 0 13.4l-5.15 2.966-5.15 2.967c-6.383 3.683-11.6.667-11.6-6.7V20z"})}),h=o;
2
+ export{h as a};//# sourceMappingURL=chunk-EOINGUY5.js.map
3
+ //# sourceMappingURL=chunk-EOINGUY5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/icons/PlayIcon.tsx"],"names":["PlayIcon","rest","jsx","PlayIcon_default"],"mappings":"oCAEA,IAAMA,CAAAA,CAAW,CAAC,CAAE,GAAGC,CAAK,CAAA,GAExBC,GAAAA,CAAC,KAAA,CAAA,CACC,KAAA,CAAM,4BAAA,CACN,MAAM,IAAA,CACN,MAAA,CAAO,IAAA,CACP,IAAA,CAAK,MAAA,CACL,OAAA,CAAQ,WAAA,CACP,GAAGD,EAEJ,QAAA,CAAAC,GAAAA,CAAC,MAAA,CAAA,CACC,IAAA,CAAK,SAAA,CACL,CAAA,CAAE,+JAAA,CACH,CAAA,CACH,EAIGC,CAAAA,CAAQH","file":"chunk-EOINGUY5.js","sourcesContent":["import React from \"react\";\n\nconst PlayIcon = ({ ...rest }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"40\"\n height=\"40\"\n fill=\"none\"\n viewBox=\"0 0 40 40\"\n {...rest}\n >\n <path\n fill=\"#F0F0F0\"\n d=\"M8.334 20v-5.934c0-7.366 5.217-10.383 11.6-6.7l5.15 2.967 5.15 2.967c6.383 3.683 6.383 9.716 0 13.4l-5.15 2.966-5.15 2.967c-6.383 3.683-11.6.667-11.6-6.7V20z\"\n ></path>\n </svg>\n );\n}\n\nexport default PlayIcon;\n"]}
@@ -0,0 +1,2 @@
1
+ import {twMerge}from'tailwind-merge';import {InputMask}from'primereact/inputmask';import {jsxs,jsx}from'react/jsx-runtime';var u=()=>jsx("svg",{viewBox:"64 64 896 896",focusable:"false","data-icon":"calendar",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"})}),l=u;var c="input-mask",v=d=>{let{className:n,type:m,value:p,onChange:t,...o}=d,h=a=>{a.key==="Enter"&&document.querySelector(`#${c}`).blur();};return m==="date"?jsxs("div",{className:"relative w-full",children:[jsx(InputMask,{id:c,className:twMerge("bg-white rounded-md p-2 px-4 text-black placeholder:text-sm text-sm",n),mask:"99/99/9999",placeholder:"dd/mm/yyyy",slotChar:"dd/mm/yyyy",onKeyUp:h,onChange:a=>t&&t(a),...o}),jsx("div",{className:"pointer-events-none absolute text-black right-2 top-1/2 -translate-y-1/2 text-neutral-50",children:jsx(l,{})})]}):jsx("input",{className:twMerge("bg-white rounded-md p-2 px-4 text-black placeholder:text-sm text-sm",n),type:"text",value:p,onChange:t,...o})},H=v;export{H as a};//# sourceMappingURL=chunk-EPIKMYCU.js.map
2
+ //# sourceMappingURL=chunk-EPIKMYCU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LandingPage/common/icons/IconCalendar.tsx","../src/components/LandingPage/common/ui-kit/atomics/BaseInput.tsx"],"names":["IconCalendar","jsx","IconCalendar_default","INPUT_MASK_ID","BaseInput","props","className","type","value","onChange","rest","handleKeyPress","e","jsxs","InputMask","twMerge","BaseInput_default"],"mappings":"2HAAA,IAAMA,CAAAA,CAAe,IAEjBC,IAAC,KAAA,CAAA,CACC,OAAA,CAAQ,eAAA,CACR,SAAA,CAAU,OAAA,CACV,WAAA,CAAU,UAAA,CACV,KAAA,CAAM,MACN,MAAA,CAAO,KAAA,CACP,IAAA,CAAK,cAAA,CACL,aAAA,CAAY,MAAA,CACZ,QAAA,CAAAA,GAAAA,CAAC,QAAK,CAAA,CAAE,8VAAA,CAA+V,CAAA,CACzW,CAAA,CAIGC,CAAAA,CAAQF,CAAAA,CCRf,IAAMG,CAAAA,CAAgB,YAAA,CAEhBC,CAAAA,CAAaC,CAAAA,EAAiB,CAClC,GAAM,CAAE,SAAA,CAAAC,CAAAA,CAAW,IAAA,CAAAC,CAAAA,CAAM,KAAA,CAAAC,CAAAA,CAAO,SAAAC,CAAAA,CAAU,GAAGC,CAAK,CAAA,CAAIL,EAEhDM,CAAAA,CAAkBC,CAAAA,EAA6C,CAC/DA,CAAAA,CAAE,MAAQ,OAAA,EACI,QAAA,CAAS,aAAA,CAAc,CAAA,CAAA,EAAIT,CAAa,CAAA,CAAE,CAAA,CACvD,IAAA,GAEP,CAAA,CAEA,OAAII,CAAAA,GAAS,MAAA,CAETM,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,iBAAA,CACb,UAAAZ,GAAAA,CAACa,SAAAA,CAAA,CACC,EAAA,CAAIX,CAAAA,CACJ,SAAA,CAAWY,OAAAA,CACT,qEAAA,CACAT,CACF,CAAA,CACA,IAAA,CAAK,YAAA,CACL,WAAA,CAAY,YAAA,CACZ,QAAA,CAAS,YAAA,CACT,OAAA,CAASK,EACT,QAAA,CAAWC,CAAAA,EACTH,CAAAA,EAAYA,CAAAA,CAASG,CAA6C,CAAA,CAEnE,GAAGF,CAAAA,CACN,EACAT,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,0FAAA,CACb,QAAA,CAAAA,GAAAA,CAACC,CAAAA,CAAA,EAAa,EAChB,CAAA,CAAA,CACF,CAAA,CAIFD,GAAAA,CAAC,OAAA,CAAA,CACC,SAAA,CAAWc,OAAAA,CACT,qEAAA,CACAT,CACF,EACA,IAAA,CAAK,MAAA,CACL,KAAA,CAAOE,CAAAA,CACP,SAAUC,CAAAA,CACT,GAAGC,CAAAA,CACN,CAEJ,EAEOM,CAAAA,CAAQZ","file":"chunk-EPIKMYCU.js","sourcesContent":["const IconCalendar = () => {\n return (\n <svg\n viewBox=\"64 64 896 896\"\n focusable=\"false\"\n data-icon=\"calendar\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path d=\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\"></path>\n </svg>\n );\n};\n\nexport default IconCalendar;\n","import { twMerge } from \"tailwind-merge\";\nimport { InputMask } from \"primereact/inputmask\";\nimport { ChangeEvent } from \"react\";\nimport IconCalendar from \"../../icons/IconCalendar\";\n\ninterface Props extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst INPUT_MASK_ID = \"input-mask\";\n\nconst BaseInput = (props: Props) => {\n const { className, type, value, onChange, ...rest } = props;\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n const el: any = document.querySelector(`#${INPUT_MASK_ID}`)!;\n el.blur();\n }\n };\n\n if (type === \"date\")\n return (\n <div className=\"relative w-full\">\n <InputMask\n id={INPUT_MASK_ID}\n className={twMerge(\n \"bg-white rounded-md p-2 px-4 text-black placeholder:text-sm text-sm\",\n className\n )}\n mask=\"99/99/9999\"\n placeholder=\"dd/mm/yyyy\"\n slotChar=\"dd/mm/yyyy\"\n onKeyUp={handleKeyPress}\n onChange={(e) =>\n onChange && onChange(e as unknown as ChangeEvent<HTMLInputElement>)\n }\n {...rest}\n />\n <div className=\"pointer-events-none absolute text-black right-2 top-1/2 -translate-y-1/2 text-neutral-50\">\n <IconCalendar />\n </div>\n </div>\n );\n\n return (\n <input\n className={twMerge(\n \"bg-white rounded-md p-2 px-4 text-black placeholder:text-sm text-sm\",\n className\n )}\n type=\"text\"\n value={value}\n onChange={onChange}\n {...rest}\n />\n );\n};\n\nexport default BaseInput;\n"]}
@@ -0,0 +1,7 @@
1
+ import {b,g}from'./chunk-UIPKSEN4.js';import {useRef,useEffect,useState}from'react';import {motion}from'framer-motion';import {ImageNomion}from'@phygitallabs/core-ui/components/image-nomion';import {SpeakerSimpleHigh,SpeakerSimpleSlash}from'@phosphor-icons/react';import {jsxs,jsx}from'react/jsx-runtime';import {getContentFromLexicalValue,cn}from'@phygitallabs/helpers';var j=t=>{let{sectionData:n}=t,e=t.id,i=useRef(null),{registerMedia:o,unregisterMedia:l,play:a,pause:r,getMediaStatus:c}=b(),p=c(e)==="playing",m=n?.audio?.value?.url;useEffect(()=>(i.current&&o({id:e,type:"audio",element:i?.current}),()=>{l(e);}),[]);let v=()=>{a(e);},h=()=>{r(e);},S={initial:{y:0,opacity:0},animate:{y:"-25%",opacity:1}};return jsxs(g,{name:e,className:`relative flex justify-center items-center
2
+ bg-[url('https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/bg-home-default.png')] bg-cover bg-center
3
+ `,children:[jsx("audio",{ref:i,src:m,className:"hidden"}),m&&jsx("div",{className:"fixed z-20 bottom-0 right-0 p-2 text-white cursor-pointer",children:p?jsx(SpeakerSimpleHigh,{size:28,weight:"fill",color:"white",onClick:h}):jsx(SpeakerSimpleSlash,{size:28,weight:"fill",color:"white",onClick:v})}),jsx(motion.div,{transition:{duration:1},variants:S,whileInView:"animate",className:"flex justify-center items-center w-full",children:jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/home-widget-min.webp",alt:"valentine-material",width:"80%",className:"object-contain"})})]})},E=j;function P(t){let{id:n,sectionData:e}=t,{title:i,letter:o}={...e},l=i?.value,a=getContentFromLexicalValue(o?.value);return jsx(g,{name:n,className:"flex justify-center items-center p-5 bg-[#E95E6D] overflow-hidden",children:jsxs("div",{className:"flex flex-col gap-4 items-center text-white/85 px-2",children:[l&&jsx("p",{className:"text-[90px] text-center leading-[80%] font-amstirdam line-clamp-3 max-w-full",children:l}),jsx("div",{className:"text-base line-clamp-[20] max-w-full",children:a}),jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/love-icon-widget.png",alt:"love-icon",width:85})]})})}var V=({index:t,isRounded:n=false,className:e,setActiveWidget:i,activeWidget:o,translateDirection:l="left",imageUrl:a="https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/love-icon-widget.png",description:r="my greatest blessing"})=>jsxs("div",{className:e,onClick:()=>{i(o===t?null:t);},children:[jsx("div",{className:cn("absolute top-0 left-0 w-full shadow-lg shadow-black/25 h-full bg-gradient-valentine z-10 duration-500",n?"rounded-full":"rounded-lg",o===t?l==="left"?"-translate-x-[100%] translate-y-[80%]":"translate-x-[100%] translate-y-[80%]":""),children:jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 w-full h-full flex items-center justify-center p-3 -translate-y-1/2",children:jsx("p",{className:"text-[#AC1F2D] text-sm font-normal w-full text-center line-clamp-4",children:r})})}),jsx("div",{className:cn("absolute z-0 border-2 scale-[95%] top-0 left-0 w-full h-full overflow-hidden",n&&"rounded-full"),children:a&&jsx(ImageNomion,{src:a,alt:"greeting-image",className:"w-full h-full object-cover"})})]});function G(t){let{id:n,sectionData:e}=t,{greeting_1:i,greeting_2:o,greeting_3:l}={...e},a=i?.value,r=o?.value,c=l?.value,p=a?.image?.url,m=a?.description,v=r?.image?.url,h=r?.description,S=c?.image?.url,N=c?.description,[u,f]=useState(null);return jsx(g,{name:n,className:"flex justify-center items-center p-5 bg-[url('https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/bg-greeting-default.png')] bg-cover bg-center bg-no-repeat",children:jsxs("div",{className:"relative w-full h-full",children:[jsx(V,{index:0,activeWidget:u,setActiveWidget:f,className:"absolute h-32 w-32 z-10 top-[15%] left-9",imageUrl:p,description:m}),jsx(V,{index:1,isRounded:true,activeWidget:u,setActiveWidget:f,translateDirection:"right",className:"absolute h-32 w-32 rounded-full z-10 top-[35%] right-9",imageUrl:v,description:h}),jsx(V,{index:3,activeWidget:u,setActiveWidget:f,className:"absolute w-5/6 h-32 rounded-md z-10 left-1/2 -translate-x-1/2 bottom-[13%]",imageUrl:S,description:N})]})})}var $=t=>{let{sectionData:n}=t,e=t.id,i=useRef(null),{registerMedia:o,unregisterMedia:l,play:a,pause:r,getMediaStatus:c}=b(),p=c(e)==="playing",m=n?.audio?.value?.url;return useEffect(()=>(i.current&&o({id:e,type:"audio",element:i?.current}),()=>{l(e);}),[]),jsxs(g,{name:e,className:`relative flex justify-center items-center
4
+ bg-[url('https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/thefaceshop-1.webp')] bg-cover bg-center
5
+ `,children:[jsx("audio",{ref:i,src:m,className:"hidden"}),m&&jsx("div",{className:"fixed z-20 bottom-0 right-0 p-2 text-white cursor-pointer",children:p?jsx(SpeakerSimpleHigh,{size:28,weight:"fill",color:"white",onClick:()=>{r(e);}}):jsx(SpeakerSimpleSlash,{size:28,weight:"fill",color:"white",onClick:()=>{a(e);}})})]})},ee=$;function W(t){let{id:n,sectionData:e}=t,{letter:i}={...e},o=getContentFromLexicalValue(i?.value);return jsx(g,{name:n,className:"flex justify-center items-center p-5 bg-[url('https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/thefaceshop-2.webp')] bg-cover bg-center overflow-hidden",children:jsxs("div",{className:"flex flex-col gap-4 items-center mt-[200px] px-2",children:[jsx("div",{className:"text-base line-clamp-[20] text-[#AC1F2D] h-[calc(100%-200px)] max-w-full ",children:o}),jsx(ImageNomion,{src:"https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/love-icon-widget.png",alt:"love-icon",width:85})]})})}var I=({index:t,isRounded:n=false,className:e,setActiveWidget:i,activeWidget:o,translateDirection:l="left",imageUrl:a="https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/love-icon-widget.png",description:r="my greatest blessing"})=>jsxs("div",{className:e,onClick:()=>{i(o===t?null:t);},children:[jsx("div",{className:cn("absolute top-0 left-0 w-full shadow-lg shadow-black/25 h-full bg-gradient-valentine-2 z-10 duration-500",n?"rounded-full":"rounded-lg",o===t?l==="left"?"-translate-x-[100%] translate-y-[80%]":"translate-x-[100%] translate-y-[80%]":""),children:jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 w-full h-full flex items-center justify-center p-3 -translate-y-1/2",children:jsx("p",{className:"text-[#AC1F2D] text-sm font-normal w-full text-center line-clamp-4",children:r})})}),jsx("div",{className:cn("absolute z-0 border-2 scale-[95%] top-0 left-0 w-full h-full overflow-hidden",n&&"rounded-full"),children:a&&jsx(ImageNomion,{src:a,alt:"greeting-image",className:"w-full h-full object-cover"})})]});function L(t){let{id:n,sectionData:e}=t,{greeting_1:i,greeting_2:o,greeting_3:l}={...e},a=i?.value,r=o?.value,c=l?.value,p=a?.image?.url,m=a?.description,v=r?.image?.url,h=r?.description,S=c?.image?.url,N=c?.description,[u,f]=useState(null);return jsx(g,{name:n,className:"flex justify-center items-center p-5 bg-[url('https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/valentine/thefaceshop-4.webp')] bg-cover bg-center bg-no-repeat",children:jsxs("div",{className:"relative w-full h-full",children:[jsx(I,{index:0,activeWidget:u,setActiveWidget:f,className:"absolute h-32 w-32 z-10 top-[10%] left-8",imageUrl:p,description:m}),jsx(I,{index:1,isRounded:true,activeWidget:u,setActiveWidget:f,translateDirection:"right",className:"absolute h-32 w-32 rounded-full z-10 top-[31%] right-[9%]",imageUrl:v,description:h}),jsx(I,{index:3,activeWidget:u,setActiveWidget:f,className:"absolute w-5/6 h-32 rounded-md z-10 left-1/2 -translate-x-1/2 bottom-[20%]",imageUrl:S,description:N})]})})}
6
+ export{E as a,P as b,G as c,ee as d,W as e,L as f};//# sourceMappingURL=chunk-FLCPH2Y3.js.map
7
+ //# sourceMappingURL=chunk-FLCPH2Y3.js.map