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.
- package/.eslintrc.js +3 -0
- package/.storybook/main.ts +34 -0
- package/.storybook/preview.tsx +23 -0
- package/BUNDLE_ANALYSIS.md +111 -0
- package/CODE_SPLITTING_SUMMARY.md +278 -0
- package/ENTRY_POINTS.md +77 -0
- package/ENTRY_POINTS_REFERENCE.md +479 -0
- package/FINAL_ANALYSIS.md +296 -0
- package/QUICK_START.md +78 -0
- package/analyze-bundle.js +46 -0
- package/assets/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/assets/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/assets/fonts/amstirdam/SVN-Amstirdam.otf +0 -0
- package/assets/fonts/androgyne/SVN-Androgyne.woff +0 -0
- package/assets/fonts/androgyne/SVN-Androgyne.woff2 +0 -0
- package/assets/fonts/antiqua/SVN-BookAntiqua.woff +0 -0
- package/assets/fonts/antiqua/SVN-BookAntiqua.woff2 +0 -0
- package/assets/fonts/desire/SVN-Desire.otf +0 -0
- package/assets/fonts/elle-gabor/Elle Gabor Std Black.otf +0 -0
- package/assets/fonts/elle-gabor/Elle Gabor Std DemiBold.otf +0 -0
- package/assets/fonts/elle-gabor/Elle Gabor Std Text.otf +0 -0
- package/assets/fonts/elle-gabor/Elle Gabor Std Ultra Light.otf +0 -0
- package/assets/fonts/elle-gabor/Elle-Gabor-Std-Bold.otf +0 -0
- package/assets/fonts/elle-gabor/Elle-Gabor-Std-Book.otf +0 -0
- package/assets/fonts/elle-gabor/Elle-Gabor-Std-Light.otf +0 -0
- package/assets/fonts/elle-gabor/Elle-Gabor-Std-Medium.otf +0 -0
- package/assets/fonts/god-word/god-word-bold.ttf +0 -0
- package/assets/fonts/god-word/god-word-regular.ttf +0 -0
- package/assets/fonts/lost-type/LostType2023-Regular.otf +0 -0
- package/assets/fonts/neurial-grotesk/NeurialGrotesk-Medium.otf +0 -0
- package/assets/fonts/qua-tang-quoc-hoi/SFUAGBuchStencilBQMedium.ttf +0 -0
- package/assets/fonts/qua-tang-quoc-hoi/SVN-Sunflora.otf +0 -0
- package/assets/fonts/stix/STIXTwoText-Bold.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-BoldItalic.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-Italic.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-Medium.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-MediumItalic.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-Regular.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-SemiBold.ttf +0 -0
- package/assets/fonts/stix/STIXTwoText-SemiBoldItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Black.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-BlackItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Bold.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-BoldItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-ExtraBold.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-ExtraBoldItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-ExtraLight.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-ExtraLightItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Italic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Light.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-LightItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Medium.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-MediumItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Regular.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-SemiBold.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-SemiBoldItalic.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-Thin.ttf +0 -0
- package/assets/fonts/svn-poppins/SVN-Poppins-ThinItalic.ttf +0 -0
- package/assets/fonts/zapfino/Zapfino.ttf +0 -0
- package/assets/images/index.ts +2 -0
- package/assets/images/nomion-logo.png +0 -0
- package/bun.lock +2062 -0
- package/check-deps.sh +45 -0
- package/create-entry-points.sh +22 -0
- package/device.min.css +2531 -0
- package/dist/advance-profile-section.cjs +2 -0
- package/dist/advance-profile-section.cjs.map +1 -0
- package/dist/advance-profile-section.d.mts +28 -0
- package/dist/advance-profile-section.d.ts +28 -0
- package/dist/advance-profile-section.js +2 -0
- package/dist/advance-profile-section.js.map +1 -0
- package/dist/author-section.cjs +2 -0
- package/dist/author-section.cjs.map +1 -0
- package/dist/author-section.d.mts +9 -0
- package/dist/author-section.d.ts +9 -0
- package/dist/author-section.js +2 -0
- package/dist/author-section.js.map +1 -0
- package/dist/b-e-d-i-page-section.cjs +2 -0
- package/dist/b-e-d-i-page-section.cjs.map +1 -0
- package/dist/b-e-d-i-page-section.d.mts +55 -0
- package/dist/b-e-d-i-page-section.d.ts +55 -0
- package/dist/b-e-d-i-page-section.js +2 -0
- package/dist/b-e-d-i-page-section.js.map +1 -0
- package/dist/bao-ngay-nay2025-section.cjs +2 -0
- package/dist/bao-ngay-nay2025-section.cjs.map +1 -0
- package/dist/bao-ngay-nay2025-section.d.mts +13 -0
- package/dist/bao-ngay-nay2025-section.d.ts +13 -0
- package/dist/bao-ngay-nay2025-section.js +2 -0
- package/dist/bao-ngay-nay2025-section.js.map +1 -0
- package/dist/base-D6OB46M7.d.mts +23 -0
- package/dist/base-D6OB46M7.d.ts +23 -0
- package/dist/base-section-DdIGFWTn.d.mts +25 -0
- package/dist/base-section-DdIGFWTn.d.ts +25 -0
- package/dist/biz-card-profile-section.cjs +2 -0
- package/dist/biz-card-profile-section.cjs.map +1 -0
- package/dist/biz-card-profile-section.d.mts +37 -0
- package/dist/biz-card-profile-section.d.ts +37 -0
- package/dist/biz-card-profile-section.js +2 -0
- package/dist/biz-card-profile-section.js.map +1 -0
- package/dist/book-section.cjs +2 -0
- package/dist/book-section.cjs.map +1 -0
- package/dist/book-section.d.mts +17 -0
- package/dist/book-section.d.ts +17 -0
- package/dist/book-section.js +2 -0
- package/dist/book-section.js.map +1 -0
- package/dist/business-card-section.cjs +2 -0
- package/dist/business-card-section.cjs.map +1 -0
- package/dist/business-card-section.d.mts +37 -0
- package/dist/business-card-section.d.ts +37 -0
- package/dist/business-card-section.js +2 -0
- package/dist/business-card-section.js.map +1 -0
- package/dist/christmas.cjs +2 -0
- package/dist/christmas.cjs.map +1 -0
- package/dist/christmas.d.mts +25 -0
- package/dist/christmas.d.ts +25 -0
- package/dist/christmas.js +2 -0
- package/dist/christmas.js.map +1 -0
- package/dist/chunk-2EZHNKDS.cjs +2 -0
- package/dist/chunk-2EZHNKDS.cjs.map +1 -0
- package/dist/chunk-2L3LGNFN.cjs +2 -0
- package/dist/chunk-2L3LGNFN.cjs.map +1 -0
- package/dist/chunk-2TKQPATQ.cjs +3 -0
- package/dist/chunk-2TKQPATQ.cjs.map +1 -0
- package/dist/chunk-2XCURCSR.cjs +8 -0
- package/dist/chunk-2XCURCSR.cjs.map +1 -0
- package/dist/chunk-377J5LJP.cjs +3 -0
- package/dist/chunk-377J5LJP.cjs.map +1 -0
- package/dist/chunk-3EWEFTZ4.cjs +2 -0
- package/dist/chunk-3EWEFTZ4.cjs.map +1 -0
- package/dist/chunk-3OU3D63D.cjs +2 -0
- package/dist/chunk-3OU3D63D.cjs.map +1 -0
- package/dist/chunk-3SFEP42J.js +3 -0
- package/dist/chunk-3SFEP42J.js.map +1 -0
- package/dist/chunk-42RM4QBR.cjs +3 -0
- package/dist/chunk-42RM4QBR.cjs.map +1 -0
- package/dist/chunk-44NYQB5Q.js +2 -0
- package/dist/chunk-44NYQB5Q.js.map +1 -0
- package/dist/chunk-4J5VH5LJ.cjs +3 -0
- package/dist/chunk-4J5VH5LJ.cjs.map +1 -0
- package/dist/chunk-5I4Z5UH2.cjs +2 -0
- package/dist/chunk-5I4Z5UH2.cjs.map +1 -0
- package/dist/chunk-5OFDFIKR.cjs +3 -0
- package/dist/chunk-5OFDFIKR.cjs.map +1 -0
- package/dist/chunk-5PR2CYMI.js +2 -0
- package/dist/chunk-5PR2CYMI.js.map +1 -0
- package/dist/chunk-5UIHDRL5.cjs +2 -0
- package/dist/chunk-5UIHDRL5.cjs.map +1 -0
- package/dist/chunk-5WVMNLF5.js +3 -0
- package/dist/chunk-5WVMNLF5.js.map +1 -0
- package/dist/chunk-66FJHKLA.js +3 -0
- package/dist/chunk-66FJHKLA.js.map +1 -0
- package/dist/chunk-6GUVMAUD.js +2 -0
- package/dist/chunk-6GUVMAUD.js.map +1 -0
- package/dist/chunk-6RCHKEAL.js +2 -0
- package/dist/chunk-6RCHKEAL.js.map +1 -0
- package/dist/chunk-7CMIOVOL.cjs +2 -0
- package/dist/chunk-7CMIOVOL.cjs.map +1 -0
- package/dist/chunk-7DETO5IF.js +2 -0
- package/dist/chunk-7DETO5IF.js.map +1 -0
- package/dist/chunk-7YECUWTF.cjs +2 -0
- package/dist/chunk-7YECUWTF.cjs.map +1 -0
- package/dist/chunk-A5KHH4N5.js +3 -0
- package/dist/chunk-A5KHH4N5.js.map +1 -0
- package/dist/chunk-A5WNELZD.js +3 -0
- package/dist/chunk-A5WNELZD.js.map +1 -0
- package/dist/chunk-AH7SOHCK.js +2 -0
- package/dist/chunk-AH7SOHCK.js.map +1 -0
- package/dist/chunk-B75CXWTP.js +10 -0
- package/dist/chunk-B75CXWTP.js.map +1 -0
- package/dist/chunk-BBZUUQZE.cjs +3 -0
- package/dist/chunk-BBZUUQZE.cjs.map +1 -0
- package/dist/chunk-BF5N2G3I.js +3 -0
- package/dist/chunk-BF5N2G3I.js.map +1 -0
- package/dist/chunk-BJATVKHY.cjs +2 -0
- package/dist/chunk-BJATVKHY.cjs.map +1 -0
- package/dist/chunk-BMQTMYRT.cjs +2 -0
- package/dist/chunk-BMQTMYRT.cjs.map +1 -0
- package/dist/chunk-BQATTZR6.js +3 -0
- package/dist/chunk-BQATTZR6.js.map +1 -0
- package/dist/chunk-C64QCBR2.js +3 -0
- package/dist/chunk-C64QCBR2.js.map +1 -0
- package/dist/chunk-C6LFO5DZ.js +2 -0
- package/dist/chunk-C6LFO5DZ.js.map +1 -0
- package/dist/chunk-CD4LRHKJ.js +2 -0
- package/dist/chunk-CD4LRHKJ.js.map +1 -0
- package/dist/chunk-CUQI3YUM.js +3 -0
- package/dist/chunk-CUQI3YUM.js.map +1 -0
- package/dist/chunk-CZW7BABY.js +2 -0
- package/dist/chunk-CZW7BABY.js.map +1 -0
- package/dist/chunk-D4GX3EGZ.js +4 -0
- package/dist/chunk-D4GX3EGZ.js.map +1 -0
- package/dist/chunk-DG5W33AY.js +3 -0
- package/dist/chunk-DG5W33AY.js.map +1 -0
- package/dist/chunk-DJ66MNKV.cjs +2 -0
- package/dist/chunk-DJ66MNKV.cjs.map +1 -0
- package/dist/chunk-DPN6OBT5.cjs +2 -0
- package/dist/chunk-DPN6OBT5.cjs.map +1 -0
- package/dist/chunk-EFOR7V7D.js +8 -0
- package/dist/chunk-EFOR7V7D.js.map +1 -0
- package/dist/chunk-EOINGUY5.js +3 -0
- package/dist/chunk-EOINGUY5.js.map +1 -0
- package/dist/chunk-EPIKMYCU.js +2 -0
- package/dist/chunk-EPIKMYCU.js.map +1 -0
- package/dist/chunk-FLCPH2Y3.js +7 -0
- package/dist/chunk-FLCPH2Y3.js.map +1 -0
- package/dist/chunk-FQMDEZOD.js +3 -0
- package/dist/chunk-FQMDEZOD.js.map +1 -0
- package/dist/chunk-FUCAOFJM.cjs +3 -0
- package/dist/chunk-FUCAOFJM.cjs.map +1 -0
- package/dist/chunk-GEGMACK2.cjs +2 -0
- package/dist/chunk-GEGMACK2.cjs.map +1 -0
- package/dist/chunk-GILDGRSK.cjs +2 -0
- package/dist/chunk-GILDGRSK.cjs.map +1 -0
- package/dist/chunk-GPBY3OXV.js +2 -0
- package/dist/chunk-GPBY3OXV.js.map +1 -0
- package/dist/chunk-GQMPLRHE.cjs +2 -0
- package/dist/chunk-GQMPLRHE.cjs.map +1 -0
- package/dist/chunk-GXUG743T.cjs +2 -0
- package/dist/chunk-GXUG743T.cjs.map +1 -0
- package/dist/chunk-HH3WELAD.cjs +4 -0
- package/dist/chunk-HH3WELAD.cjs.map +1 -0
- package/dist/chunk-HHRFK2PR.cjs +3 -0
- package/dist/chunk-HHRFK2PR.cjs.map +1 -0
- package/dist/chunk-HK3P6AFX.js +3 -0
- package/dist/chunk-HK3P6AFX.js.map +1 -0
- package/dist/chunk-HMIZ2FLM.js +2 -0
- package/dist/chunk-HMIZ2FLM.js.map +1 -0
- package/dist/chunk-HSTGLQCX.js +2 -0
- package/dist/chunk-HSTGLQCX.js.map +1 -0
- package/dist/chunk-I2XSW7Z5.cjs +5 -0
- package/dist/chunk-I2XSW7Z5.cjs.map +1 -0
- package/dist/chunk-IB3F3GQH.cjs +2 -0
- package/dist/chunk-IB3F3GQH.cjs.map +1 -0
- package/dist/chunk-IDBQZSEH.cjs +3 -0
- package/dist/chunk-IDBQZSEH.cjs.map +1 -0
- package/dist/chunk-INJYCBBJ.js +2 -0
- package/dist/chunk-INJYCBBJ.js.map +1 -0
- package/dist/chunk-IRFLFNL5.js +2 -0
- package/dist/chunk-IRFLFNL5.js.map +1 -0
- package/dist/chunk-IUV4VDAV.js +2 -0
- package/dist/chunk-IUV4VDAV.js.map +1 -0
- package/dist/chunk-IXYHCDGV.cjs +2 -0
- package/dist/chunk-IXYHCDGV.cjs.map +1 -0
- package/dist/chunk-JARFLL3F.cjs +2 -0
- package/dist/chunk-JARFLL3F.cjs.map +1 -0
- package/dist/chunk-JCWSBSWV.cjs +3 -0
- package/dist/chunk-JCWSBSWV.cjs.map +1 -0
- package/dist/chunk-JEH6Z3MR.cjs +2 -0
- package/dist/chunk-JEH6Z3MR.cjs.map +1 -0
- package/dist/chunk-JFOVEN3B.cjs +3 -0
- package/dist/chunk-JFOVEN3B.cjs.map +1 -0
- package/dist/chunk-JYXWSTI2.cjs +3 -0
- package/dist/chunk-JYXWSTI2.cjs.map +1 -0
- package/dist/chunk-K6MORX7I.cjs +3 -0
- package/dist/chunk-K6MORX7I.cjs.map +1 -0
- package/dist/chunk-K7T7NPVY.cjs +3 -0
- package/dist/chunk-K7T7NPVY.cjs.map +1 -0
- package/dist/chunk-KTJSSK5R.cjs +3 -0
- package/dist/chunk-KTJSSK5R.cjs.map +1 -0
- package/dist/chunk-KZLVWPZ4.cjs +2 -0
- package/dist/chunk-KZLVWPZ4.cjs.map +1 -0
- package/dist/chunk-LBKGAOAD.cjs +3 -0
- package/dist/chunk-LBKGAOAD.cjs.map +1 -0
- package/dist/chunk-LFC2ZCOA.js +2 -0
- package/dist/chunk-LFC2ZCOA.js.map +1 -0
- package/dist/chunk-LR3HOWU3.cjs +7 -0
- package/dist/chunk-LR3HOWU3.cjs.map +1 -0
- package/dist/chunk-LSVSIJSZ.js +2 -0
- package/dist/chunk-LSVSIJSZ.js.map +1 -0
- package/dist/chunk-LSWFX7YA.js +2 -0
- package/dist/chunk-LSWFX7YA.js.map +1 -0
- package/dist/chunk-LTTNSKMY.js +3 -0
- package/dist/chunk-LTTNSKMY.js.map +1 -0
- package/dist/chunk-MQDQYKWH.cjs +2 -0
- package/dist/chunk-MQDQYKWH.cjs.map +1 -0
- package/dist/chunk-MYTJTOT2.cjs +3 -0
- package/dist/chunk-MYTJTOT2.cjs.map +1 -0
- package/dist/chunk-N33THJV6.js +2 -0
- package/dist/chunk-N33THJV6.js.map +1 -0
- package/dist/chunk-NAYWFNN3.cjs +3 -0
- package/dist/chunk-NAYWFNN3.cjs.map +1 -0
- package/dist/chunk-NLTKS2AW.cjs +2 -0
- package/dist/chunk-NLTKS2AW.cjs.map +1 -0
- package/dist/chunk-NPQYWNWJ.js +5 -0
- package/dist/chunk-NPQYWNWJ.js.map +1 -0
- package/dist/chunk-NQDWD4YU.cjs +3 -0
- package/dist/chunk-NQDWD4YU.cjs.map +1 -0
- package/dist/chunk-NQROZGX3.cjs +3 -0
- package/dist/chunk-NQROZGX3.cjs.map +1 -0
- package/dist/chunk-OBCY7C52.js +2 -0
- package/dist/chunk-OBCY7C52.js.map +1 -0
- package/dist/chunk-OHGVKGNE.cjs +3 -0
- package/dist/chunk-OHGVKGNE.cjs.map +1 -0
- package/dist/chunk-OT3WFOIC.js +3 -0
- package/dist/chunk-OT3WFOIC.js.map +1 -0
- package/dist/chunk-OY6BHM7Z.js +2 -0
- package/dist/chunk-OY6BHM7Z.js.map +1 -0
- package/dist/chunk-P7JCQIFW.cjs +3 -0
- package/dist/chunk-P7JCQIFW.cjs.map +1 -0
- package/dist/chunk-PANRCNY2.cjs +2 -0
- package/dist/chunk-PANRCNY2.cjs.map +1 -0
- package/dist/chunk-Q5QYWRL2.cjs +10 -0
- package/dist/chunk-Q5QYWRL2.cjs.map +1 -0
- package/dist/chunk-Q7U6JI5R.js +3 -0
- package/dist/chunk-Q7U6JI5R.js.map +1 -0
- package/dist/chunk-QCNAJEOX.js +2 -0
- package/dist/chunk-QCNAJEOX.js.map +1 -0
- package/dist/chunk-QNKG2DPA.cjs +2 -0
- package/dist/chunk-QNKG2DPA.cjs.map +1 -0
- package/dist/chunk-QPCPKW5R.cjs +2 -0
- package/dist/chunk-QPCPKW5R.cjs.map +1 -0
- package/dist/chunk-QYYK7LNR.cjs +2 -0
- package/dist/chunk-QYYK7LNR.cjs.map +1 -0
- package/dist/chunk-R3JFYIT4.js +3 -0
- package/dist/chunk-R3JFYIT4.js.map +1 -0
- package/dist/chunk-SDQQRSTP.cjs +2 -0
- package/dist/chunk-SDQQRSTP.cjs.map +1 -0
- package/dist/chunk-SDUI3BD3.js +3 -0
- package/dist/chunk-SDUI3BD3.js.map +1 -0
- package/dist/chunk-SM3TAJ4O.js +3 -0
- package/dist/chunk-SM3TAJ4O.js.map +1 -0
- package/dist/chunk-T6LF37LZ.cjs +2 -0
- package/dist/chunk-T6LF37LZ.cjs.map +1 -0
- package/dist/chunk-T7UFQMPU.cjs +2 -0
- package/dist/chunk-T7UFQMPU.cjs.map +1 -0
- package/dist/chunk-TRSOXPTQ.js +2 -0
- package/dist/chunk-TRSOXPTQ.js.map +1 -0
- package/dist/chunk-U463DIED.cjs +2 -0
- package/dist/chunk-U463DIED.cjs.map +1 -0
- package/dist/chunk-U7XVI2DM.js +2 -0
- package/dist/chunk-U7XVI2DM.js.map +1 -0
- package/dist/chunk-UD7H25BH.js +5 -0
- package/dist/chunk-UD7H25BH.js.map +1 -0
- package/dist/chunk-UIPKSEN4.js +2 -0
- package/dist/chunk-UIPKSEN4.js.map +1 -0
- package/dist/chunk-UOUTX4UQ.js +2 -0
- package/dist/chunk-UOUTX4UQ.js.map +1 -0
- package/dist/chunk-UW52DKV3.js +3 -0
- package/dist/chunk-UW52DKV3.js.map +1 -0
- package/dist/chunk-VAQT7RDM.js +3 -0
- package/dist/chunk-VAQT7RDM.js.map +1 -0
- package/dist/chunk-VITZI5ZU.js +3 -0
- package/dist/chunk-VITZI5ZU.js.map +1 -0
- package/dist/chunk-VMS6VUOL.js +2 -0
- package/dist/chunk-VMS6VUOL.js.map +1 -0
- package/dist/chunk-WGTOLA3Y.js +2 -0
- package/dist/chunk-WGTOLA3Y.js.map +1 -0
- package/dist/chunk-WI4TNNNO.js +3 -0
- package/dist/chunk-WI4TNNNO.js.map +1 -0
- package/dist/chunk-WK65I7SX.js +2 -0
- package/dist/chunk-WK65I7SX.js.map +1 -0
- package/dist/chunk-WNZ75AHP.js +2 -0
- package/dist/chunk-WNZ75AHP.js.map +1 -0
- package/dist/chunk-WVNRAFBY.js +2 -0
- package/dist/chunk-WVNRAFBY.js.map +1 -0
- package/dist/chunk-X4IWMGAB.js +2 -0
- package/dist/chunk-X4IWMGAB.js.map +1 -0
- package/dist/chunk-X7RB2GVW.cjs +3 -0
- package/dist/chunk-X7RB2GVW.cjs.map +1 -0
- package/dist/chunk-XD4GVLVZ.cjs +2 -0
- package/dist/chunk-XD4GVLVZ.cjs.map +1 -0
- package/dist/chunk-XFF6JIWQ.cjs +2 -0
- package/dist/chunk-XFF6JIWQ.cjs.map +1 -0
- package/dist/chunk-XLPIZNJE.js +2 -0
- package/dist/chunk-XLPIZNJE.js.map +1 -0
- package/dist/chunk-YFLTXRKM.js +3 -0
- package/dist/chunk-YFLTXRKM.js.map +1 -0
- package/dist/chunk-YLW7AQNY.cjs +3 -0
- package/dist/chunk-YLW7AQNY.cjs.map +1 -0
- package/dist/chunk-YN2B2CVU.cjs +5 -0
- package/dist/chunk-YN2B2CVU.cjs.map +1 -0
- package/dist/chunk-YNK4LVRZ.cjs +3 -0
- package/dist/chunk-YNK4LVRZ.cjs.map +1 -0
- package/dist/chunk-YXSYDX6L.js +3 -0
- package/dist/chunk-YXSYDX6L.js.map +1 -0
- package/dist/chunk-YYJKIDZ2.js +3 -0
- package/dist/chunk-YYJKIDZ2.js.map +1 -0
- package/dist/chunk-ZCYVKA4Y.cjs +3 -0
- package/dist/chunk-ZCYVKA4Y.cjs.map +1 -0
- package/dist/chunk-ZFZ3ADIT.js +3 -0
- package/dist/chunk-ZFZ3ADIT.js.map +1 -0
- package/dist/chunk-ZQPA2IN5.cjs +3 -0
- package/dist/chunk-ZQPA2IN5.cjs.map +1 -0
- package/dist/chunk-ZZHLRB6H.cjs +2 -0
- package/dist/chunk-ZZHLRB6H.cjs.map +1 -0
- package/dist/contact-section.cjs +2 -0
- package/dist/contact-section.cjs.map +1 -0
- package/dist/contact-section.d.mts +25 -0
- package/dist/contact-section.d.ts +25 -0
- package/dist/contact-section.js +2 -0
- package/dist/contact-section.js.map +1 -0
- package/dist/cover-setion.cjs +2 -0
- package/dist/cover-setion.cjs.map +1 -0
- package/dist/cover-setion.d.mts +8 -0
- package/dist/cover-setion.d.ts +8 -0
- package/dist/cover-setion.js +2 -0
- package/dist/cover-setion.js.map +1 -0
- package/dist/en-QWOTEXHG.js +2 -0
- package/dist/en-QWOTEXHG.js.map +1 -0
- package/dist/en-TXSQPBHO.cjs +2 -0
- package/dist/en-TXSQPBHO.cjs.map +1 -0
- package/dist/fr-2MITF4HO.cjs +11 -0
- package/dist/fr-2MITF4HO.cjs.map +1 -0
- package/dist/fr-KA7CH2XX.js +11 -0
- package/dist/fr-KA7CH2XX.js.map +1 -0
- package/dist/general-BjKe3K-e.d.mts +60 -0
- package/dist/general-BjKe3K-e.d.ts +60 -0
- package/dist/gift-avatar-section.cjs +2 -0
- package/dist/gift-avatar-section.cjs.map +1 -0
- package/dist/gift-avatar-section.d.mts +20 -0
- package/dist/gift-avatar-section.d.ts +20 -0
- package/dist/gift-avatar-section.js +2 -0
- package/dist/gift-avatar-section.js.map +1 -0
- package/dist/header-section.cjs +2 -0
- package/dist/header-section.cjs.map +1 -0
- package/dist/header-section.d.mts +8 -0
- package/dist/header-section.d.ts +8 -0
- package/dist/header-section.js +2 -0
- package/dist/header-section.js.map +1 -0
- package/dist/hesman-cert-section.cjs +2 -0
- package/dist/hesman-cert-section.cjs.map +1 -0
- package/dist/hesman-cert-section.d.mts +11 -0
- package/dist/hesman-cert-section.d.ts +11 -0
- package/dist/hesman-cert-section.js +2 -0
- package/dist/hesman-cert-section.js.map +1 -0
- package/dist/hesman-greeting-section.cjs +2 -0
- package/dist/hesman-greeting-section.cjs.map +1 -0
- package/dist/hesman-greeting-section.d.mts +20 -0
- package/dist/hesman-greeting-section.d.ts +20 -0
- package/dist/hesman-greeting-section.js +2 -0
- package/dist/hesman-greeting-section.js.map +1 -0
- package/dist/hesman-metaverse-section.cjs +2 -0
- package/dist/hesman-metaverse-section.cjs.map +1 -0
- package/dist/hesman-metaverse-section.d.mts +22 -0
- package/dist/hesman-metaverse-section.d.ts +22 -0
- package/dist/hesman-metaverse-section.js +2 -0
- package/dist/hesman-metaverse-section.js.map +1 -0
- package/dist/hesman-puzzle-section.cjs +2 -0
- package/dist/hesman-puzzle-section.cjs.map +1 -0
- package/dist/hesman-puzzle-section.d.mts +10 -0
- package/dist/hesman-puzzle-section.d.ts +10 -0
- package/dist/hesman-puzzle-section.js +2 -0
- package/dist/hesman-puzzle-section.js.map +1 -0
- package/dist/hesman-thankyou-section.cjs +2 -0
- package/dist/hesman-thankyou-section.cjs.map +1 -0
- package/dist/hesman-thankyou-section.d.mts +20 -0
- package/dist/hesman-thankyou-section.d.ts +20 -0
- package/dist/hesman-thankyou-section.js +2 -0
- package/dist/hesman-thankyou-section.js.map +1 -0
- package/dist/hesman-video-section.cjs +2 -0
- package/dist/hesman-video-section.cjs.map +1 -0
- package/dist/hesman-video-section.d.mts +15 -0
- package/dist/hesman-video-section.d.ts +15 -0
- package/dist/hesman-video-section.js +2 -0
- package/dist/hesman-video-section.js.map +1 -0
- package/dist/home-section.cjs +2 -0
- package/dist/home-section.cjs.map +1 -0
- package/dist/home-section.d.mts +51 -0
- package/dist/home-section.d.ts +51 -0
- package/dist/home-section.js +2 -0
- package/dist/home-section.js.map +1 -0
- package/dist/horizontal-book-image-section.cjs +2 -0
- package/dist/horizontal-book-image-section.cjs.map +1 -0
- package/dist/horizontal-book-image-section.d.mts +8 -0
- package/dist/horizontal-book-image-section.d.ts +8 -0
- package/dist/horizontal-book-image-section.js +2 -0
- package/dist/horizontal-book-image-section.js.map +1 -0
- package/dist/horizontal-image-list-section.cjs +2 -0
- package/dist/horizontal-image-list-section.cjs.map +1 -0
- package/dist/horizontal-image-list-section.d.mts +8 -0
- package/dist/horizontal-image-list-section.d.ts +8 -0
- package/dist/horizontal-image-list-section.js +2 -0
- package/dist/horizontal-image-list-section.js.map +1 -0
- package/dist/image-padding-section.cjs +2 -0
- package/dist/image-padding-section.cjs.map +1 -0
- package/dist/image-padding-section.d.mts +8 -0
- package/dist/image-padding-section.d.ts +8 -0
- package/dist/image-padding-section.js +2 -0
- package/dist/image-padding-section.js.map +1 -0
- package/dist/image-text-array-section.cjs +2 -0
- package/dist/image-text-array-section.cjs.map +1 -0
- package/dist/image-text-array-section.d.mts +21 -0
- package/dist/image-text-array-section.d.ts +21 -0
- package/dist/image-text-array-section.js +2 -0
- package/dist/image-text-array-section.js.map +1 -0
- package/dist/image-text-section.cjs +2 -0
- package/dist/image-text-section.cjs.map +1 -0
- package/dist/image-text-section.d.mts +9 -0
- package/dist/image-text-section.d.ts +9 -0
- package/dist/image-text-section.js +2 -0
- package/dist/image-text-section.js.map +1 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +162 -0
- package/dist/index.d.ts +162 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/khaocoky.cjs +2 -0
- package/dist/khaocoky.cjs.map +1 -0
- package/dist/khaocoky.d.mts +24 -0
- package/dist/khaocoky.d.ts +24 -0
- package/dist/khaocoky.js +2 -0
- package/dist/khaocoky.js.map +1 -0
- package/dist/khaocokyv2.cjs +2 -0
- package/dist/khaocokyv2.cjs.map +1 -0
- package/dist/khaocokyv2.d.mts +24 -0
- package/dist/khaocokyv2.d.ts +24 -0
- package/dist/khaocokyv2.js +2 -0
- package/dist/khaocokyv2.js.map +1 -0
- package/dist/letter-section.cjs +2 -0
- package/dist/letter-section.cjs.map +1 -0
- package/dist/letter-section.d.mts +13 -0
- package/dist/letter-section.d.ts +13 -0
- package/dist/letter-section.js +2 -0
- package/dist/letter-section.js.map +1 -0
- package/dist/lexical-letter-section.cjs +2 -0
- package/dist/lexical-letter-section.cjs.map +1 -0
- package/dist/lexical-letter-section.d.mts +13 -0
- package/dist/lexical-letter-section.d.ts +13 -0
- package/dist/lexical-letter-section.js +2 -0
- package/dist/lexical-letter-section.js.map +1 -0
- package/dist/metaverse-section.cjs +2 -0
- package/dist/metaverse-section.cjs.map +1 -0
- package/dist/metaverse-section.d.mts +5 -0
- package/dist/metaverse-section.d.ts +5 -0
- package/dist/metaverse-section.js +2 -0
- package/dist/metaverse-section.js.map +1 -0
- package/dist/navigation-section.cjs +2 -0
- package/dist/navigation-section.cjs.map +1 -0
- package/dist/navigation-section.d.mts +10 -0
- package/dist/navigation-section.d.ts +10 -0
- package/dist/navigation-section.js +2 -0
- package/dist/navigation-section.js.map +1 -0
- package/dist/nguyen-kim-lucky-voucher.cjs +2 -0
- package/dist/nguyen-kim-lucky-voucher.cjs.map +1 -0
- package/dist/nguyen-kim-lucky-voucher.d.mts +8 -0
- package/dist/nguyen-kim-lucky-voucher.d.ts +8 -0
- package/dist/nguyen-kim-lucky-voucher.js +2 -0
- package/dist/nguyen-kim-lucky-voucher.js.map +1 -0
- package/dist/pet-profile-section.cjs +2 -0
- package/dist/pet-profile-section.cjs.map +1 -0
- package/dist/pet-profile-section.d.mts +26 -0
- package/dist/pet-profile-section.d.ts +26 -0
- package/dist/pet-profile-section.js +2 -0
- package/dist/pet-profile-section.js.map +1 -0
- package/dist/profile-section.cjs +2 -0
- package/dist/profile-section.cjs.map +1 -0
- package/dist/profile-section.d.mts +29 -0
- package/dist/profile-section.d.ts +29 -0
- package/dist/profile-section.js +2 -0
- package/dist/profile-section.js.map +1 -0
- package/dist/qua-tang-quoc-hoi.cjs +2 -0
- package/dist/qua-tang-quoc-hoi.cjs.map +1 -0
- package/dist/qua-tang-quoc-hoi.d.mts +18 -0
- package/dist/qua-tang-quoc-hoi.d.ts +18 -0
- package/dist/qua-tang-quoc-hoi.js +2 -0
- package/dist/qua-tang-quoc-hoi.js.map +1 -0
- package/dist/quiz-section.cjs +2 -0
- package/dist/quiz-section.cjs.map +1 -0
- package/dist/quiz-section.d.mts +24 -0
- package/dist/quiz-section.d.ts +24 -0
- package/dist/quiz-section.js +2 -0
- package/dist/quiz-section.js.map +1 -0
- package/dist/section-full-screen.cjs +2 -0
- package/dist/section-full-screen.cjs.map +1 -0
- package/dist/section-full-screen.d.mts +14 -0
- package/dist/section-full-screen.d.ts +14 -0
- package/dist/section-full-screen.js +2 -0
- package/dist/section-full-screen.js.map +1 -0
- package/dist/tet-cover-section1.cjs +2 -0
- package/dist/tet-cover-section1.cjs.map +1 -0
- package/dist/tet-cover-section1.d.mts +8 -0
- package/dist/tet-cover-section1.d.ts +8 -0
- package/dist/tet-cover-section1.js +2 -0
- package/dist/tet-cover-section1.js.map +1 -0
- package/dist/tet-cover-section2.cjs +2 -0
- package/dist/tet-cover-section2.cjs.map +1 -0
- package/dist/tet-cover-section2.d.mts +8 -0
- package/dist/tet-cover-section2.d.ts +8 -0
- package/dist/tet-cover-section2.js +2 -0
- package/dist/tet-cover-section2.js.map +1 -0
- package/dist/tet-lucky-money-section.cjs +2 -0
- package/dist/tet-lucky-money-section.cjs.map +1 -0
- package/dist/tet-lucky-money-section.d.mts +12 -0
- package/dist/tet-lucky-money-section.d.ts +12 -0
- package/dist/tet-lucky-money-section.js +2 -0
- package/dist/tet-lucky-money-section.js.map +1 -0
- package/dist/tet-lucky-money-section2.cjs +2 -0
- package/dist/tet-lucky-money-section2.cjs.map +1 -0
- package/dist/tet-lucky-money-section2.d.mts +12 -0
- package/dist/tet-lucky-money-section2.d.ts +12 -0
- package/dist/tet-lucky-money-section2.js +2 -0
- package/dist/tet-lucky-money-section2.js.map +1 -0
- package/dist/valentine.cjs +2 -0
- package/dist/valentine.cjs.map +1 -0
- package/dist/valentine.d.mts +29 -0
- package/dist/valentine.d.ts +29 -0
- package/dist/valentine.js +2 -0
- package/dist/valentine.js.map +1 -0
- package/dist/vertical-carousel-section.cjs +2 -0
- package/dist/vertical-carousel-section.cjs.map +1 -0
- package/dist/vertical-carousel-section.d.mts +8 -0
- package/dist/vertical-carousel-section.d.ts +8 -0
- package/dist/vertical-carousel-section.js +2 -0
- package/dist/vertical-carousel-section.js.map +1 -0
- package/dist/video-intro-section.cjs +2 -0
- package/dist/video-intro-section.cjs.map +1 -0
- package/dist/video-intro-section.d.mts +10 -0
- package/dist/video-intro-section.d.ts +10 -0
- package/dist/video-intro-section.js +2 -0
- package/dist/video-intro-section.js.map +1 -0
- package/dist/woman-day.cjs +2 -0
- package/dist/woman-day.cjs.map +1 -0
- package/dist/woman-day.d.mts +17 -0
- package/dist/woman-day.d.ts +17 -0
- package/dist/woman-day.js +2 -0
- package/dist/woman-day.js.map +1 -0
- package/entries/advance-profile-section.ts +1 -0
- package/entries/author-section.ts +1 -0
- package/entries/b-e-d-i-page-section.ts +2 -0
- package/entries/bao-ngay-nay2025-section.ts +1 -0
- package/entries/biz-card-profile-section.ts +1 -0
- package/entries/book-section.ts +1 -0
- package/entries/business-card-section.ts +1 -0
- package/entries/christmas.ts +1 -0
- package/entries/contact-section.ts +1 -0
- package/entries/cover-setion.ts +1 -0
- package/entries/gift-avatar-section.ts +1 -0
- package/entries/header-section.ts +1 -0
- package/entries/hesman-cert-section.ts +1 -0
- package/entries/hesman-greeting-section.ts +1 -0
- package/entries/hesman-metaverse-section.ts +1 -0
- package/entries/hesman-puzzle-section.ts +1 -0
- package/entries/hesman-thankyou-section.ts +1 -0
- package/entries/hesman-video-section.ts +1 -0
- package/entries/home-section.ts +1 -0
- package/entries/horizontal-book-image-section.ts +1 -0
- package/entries/horizontal-image-list-section.ts +1 -0
- package/entries/image-padding-section.ts +1 -0
- package/entries/image-text-array-section.ts +1 -0
- package/entries/image-text-section.ts +1 -0
- package/entries/khaocoky.ts +1 -0
- package/entries/khaocokyv2.ts +1 -0
- package/entries/letter-section.ts +1 -0
- package/entries/lexical-letter-section.ts +1 -0
- package/entries/metaverse-section.ts +1 -0
- package/entries/navigation-section.ts +2 -0
- package/entries/nguyen-kim-lucky-voucher.ts +1 -0
- package/entries/pet-profile-section.ts +1 -0
- package/entries/profile-section.ts +1 -0
- package/entries/qua-tang-quoc-hoi.ts +1 -0
- package/entries/quiz-section.ts +1 -0
- package/entries/section-full-screen.ts +1 -0
- package/entries/tet-cover-section1.ts +1 -0
- package/entries/tet-cover-section2.ts +1 -0
- package/entries/tet-lucky-money-section.ts +1 -0
- package/entries/tet-lucky-money-section2.ts +1 -0
- package/entries/valentine.ts +1 -0
- package/entries/vertical-carousel-section.ts +1 -0
- package/entries/video-intro-section.ts +1 -0
- package/entries/woman-day.ts +1 -0
- package/entry-points.json +47 -0
- package/exports-map.json +179 -0
- package/fonts.css +144 -0
- package/generate-exports.cjs +22 -0
- package/generate-exports.js +23 -0
- package/generate-tsup-entries.js +17 -0
- package/index.css +162 -0
- package/index.ts +23 -0
- package/package.json +306 -0
- package/postcss.config.js +6 -0
- package/regenerate-entries-direct.cjs +60 -0
- package/regenerate-entries.cjs +60 -0
- package/src/components/LandingPage/common/3DModel/ThreeModalTongla.tsx +114 -0
- package/src/components/LandingPage/common/3DModel/ThreeModel.tsx +210 -0
- package/src/components/LandingPage/common/3DModel/index.tsx +90 -0
- package/src/components/LandingPage/common/CarouselCustom/index.tsx +80 -0
- package/src/components/LandingPage/common/FadeInMotion/index.tsx +60 -0
- package/src/components/LandingPage/common/SectionFullScreen/index.tsx +68 -0
- package/src/components/LandingPage/common/Video/index.tsx +90 -0
- package/src/components/LandingPage/common/icons/3DCubeScanIcon.tsx +38 -0
- package/src/components/LandingPage/common/icons/3DFlipIcon.tsx +27 -0
- package/src/components/LandingPage/common/icons/ARExploreIcon.tsx +15 -0
- package/src/components/LandingPage/common/icons/AcreageIcon.tsx +68 -0
- package/src/components/LandingPage/common/icons/ArrowDownIcon.tsx +19 -0
- package/src/components/LandingPage/common/icons/ArrowLeftIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/ArrowRightIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/ArrowUpIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/BurgerIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/CircleDownIcon.tsx +29 -0
- package/src/components/LandingPage/common/icons/ClockIcon.tsx +28 -0
- package/src/components/LandingPage/common/icons/CloseIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/CloseQuotesIcon.tsx +17 -0
- package/src/components/LandingPage/common/icons/CopyIcon.tsx +31 -0
- package/src/components/LandingPage/common/icons/CopyrightByPGLIcon.tsx +80 -0
- package/src/components/LandingPage/common/icons/DoubleArrowDownIcon.tsx +31 -0
- package/src/components/LandingPage/common/icons/EyeIcon.tsx +30 -0
- package/src/components/LandingPage/common/icons/FlipIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/FourthMedalIcon.tsx +287 -0
- package/src/components/LandingPage/common/icons/GoBackIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/GoogleIcon.tsx +41 -0
- package/src/components/LandingPage/common/icons/GrindSize.tsx +321 -0
- package/src/components/LandingPage/common/icons/HeartFillIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/HeightIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/IconAuction.tsx +17 -0
- package/src/components/LandingPage/common/icons/IconCalendar.tsx +16 -0
- package/src/components/LandingPage/common/icons/IconExternalLink.tsx +21 -0
- package/src/components/LandingPage/common/icons/IconMuted.tsx +17 -0
- package/src/components/LandingPage/common/icons/IconReset.tsx +19 -0
- package/src/components/LandingPage/common/icons/IconUmuted.tsx +18 -0
- package/src/components/LandingPage/common/icons/InfoFillIcon.tsx +20 -0
- package/src/components/LandingPage/common/icons/KeyIcon.tsx +24 -0
- package/src/components/LandingPage/common/icons/KyokaiIcon.tsx +53 -0
- package/src/components/LandingPage/common/icons/LanguageIcon.tsx +49 -0
- package/src/components/LandingPage/common/icons/LikeIcon.tsx +29 -0
- package/src/components/LandingPage/common/icons/LogoutIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/MailIcon.tsx +32 -0
- package/src/components/LandingPage/common/icons/OnchainIcon.tsx +97 -0
- package/src/components/LandingPage/common/icons/OpenQuotesIcon.tsx +17 -0
- package/src/components/LandingPage/common/icons/PhoneIcon.tsx +22 -0
- package/src/components/LandingPage/common/icons/PlayIcon.tsx +21 -0
- package/src/components/LandingPage/common/icons/PressureClockIcon.tsx +32 -0
- package/src/components/LandingPage/common/icons/ProfileIcon.tsx +30 -0
- package/src/components/LandingPage/common/icons/ReadingBookIcon.tsx +22 -0
- package/src/components/LandingPage/common/icons/ScaleIcon.tsx +28 -0
- package/src/components/LandingPage/common/icons/SecondMedalIcon.tsx +1137 -0
- package/src/components/LandingPage/common/icons/SignoutIcon.tsx +30 -0
- package/src/components/LandingPage/common/icons/SparkleIcon.tsx +28 -0
- package/src/components/LandingPage/common/icons/TemperatureIcon.tsx +20 -0
- package/src/components/LandingPage/common/icons/ThirdMedalIcon.tsx +620 -0
- package/src/components/LandingPage/common/icons/TickIcon.tsx +20 -0
- package/src/components/LandingPage/common/icons/TickIconBlue.tsx +30 -0
- package/src/components/LandingPage/common/icons/TickIconGreen.tsx +30 -0
- package/src/components/LandingPage/common/icons/TouchIcon.tsx +22 -0
- package/src/components/LandingPage/common/icons/WaterDropIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/WaterIcon.tsx +37 -0
- package/src/components/LandingPage/common/icons/Weight.tsx +36 -0
- package/src/components/LandingPage/common/icons/WinnerMedalIcon.tsx +1185 -0
- package/src/components/LandingPage/common/icons/YieldIcon.tsx +36 -0
- package/src/components/LandingPage/common/icons/ZoomInFillIcon.tsx +20 -0
- package/src/components/LandingPage/common/icons/icons-v2/BurgerIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/icons-v2/LogoNomion.tsx +56 -0
- package/src/components/LandingPage/common/icons/icons-v2/NdachainIcon.tsx +251 -0
- package/src/components/LandingPage/common/icons/icons-v2/OnchainIcon.tsx +97 -0
- package/src/components/LandingPage/common/icons/icons-v2/index.ts +4 -0
- package/src/components/LandingPage/common/icons/index.ts +23 -0
- package/src/components/LandingPage/common/icons/social-icons/FacebookIcon.tsx +24 -0
- package/src/components/LandingPage/common/icons/social-icons/IconMail.tsx +17 -0
- package/src/components/LandingPage/common/icons/social-icons/IconPhone.tsx +21 -0
- package/src/components/LandingPage/common/icons/social-icons/InstagramIcon.tsx +24 -0
- package/src/components/LandingPage/common/icons/social-icons/LinkedinIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/social-icons/LocationIcon.tsx +16 -0
- package/src/components/LandingPage/common/icons/social-icons/TelegramIcon.tsx +23 -0
- package/src/components/LandingPage/common/icons/social-icons/ThreadsIcon.tsx +15 -0
- package/src/components/LandingPage/common/icons/social-icons/TiktokIcon.tsx +16 -0
- package/src/components/LandingPage/common/icons/social-icons/TwitterIcon.tsx +28 -0
- package/src/components/LandingPage/common/icons/social-icons/WebsiteIcon.tsx +0 -0
- package/src/components/LandingPage/common/icons/social-icons/YoutubeIcon.tsx +26 -0
- package/src/components/LandingPage/common/icons/social-icons/index.tsx +19 -0
- package/src/components/LandingPage/common/shadcn-ui-kit/Dialog.tsx +124 -0
- package/src/components/LandingPage/common/shadcn-ui-kit/input.tsx +24 -0
- package/src/components/LandingPage/common/shadcn-ui-kit/select.tsx +160 -0
- package/src/components/LandingPage/common/ui-kit/atomics/ BaseModal.tsx +60 -0
- package/src/components/LandingPage/common/ui-kit/atomics/BaseButton.tsx +25 -0
- package/src/components/LandingPage/common/ui-kit/atomics/BaseIcon.tsx +18 -0
- package/src/components/LandingPage/common/ui-kit/atomics/BaseInput.tsx +58 -0
- package/src/components/LandingPage/common/ui-kit/atomics/CopyClipboard.tsx +64 -0
- package/src/components/LandingPage/common/ui-kit/atomics/HesmanButton.tsx +23 -0
- package/src/components/LandingPage/common/ui-kit/atomics/HesmanGradientText.tsx +22 -0
- package/src/components/LandingPage/common/ui-kit/atomics/Tag.tsx +47 -0
- package/src/components/LandingPage/common/ui-kit/atomics/Typography.tsx +63 -0
- package/src/components/LandingPage/common/ui-kit/atomics/index.tsx +4 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/AudioPlayer.tsx +130 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/AuthorContext.tsx +26 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/AuthorModal.tsx +147 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/AuthorModalDeDo.tsx +91 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/AuthorWithLabel.tsx +23 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/BackgroundImage.tsx +34 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ButtonCommingSoon.tsx +34 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/CollasibleText.tsx +109 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ContactCard.tsx +167 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/DidInfoModal.tsx +73 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ImageWithBackground.tsx +39 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/LexicalParagraph.tsx +15 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ListButton.tsx +51 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ListContactSocial.tsx +103 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/MetaInfo.tsx +76 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/MetaInfoModal.tsx +96 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/NftInfoModal.tsx +102 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/OwnerName.tsx +25 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ReadmoreModal.tsx +38 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/RenderMedia.tsx +48 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/ScrollDownGuide.tsx +34 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/TagName.stories.tsx +33 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/TagName.tsx +33 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/Title.stories.tsx +34 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/Title.tsx +66 -0
- package/src/components/LandingPage/common/ui-kit/moleculars/VideoRef.tsx +66 -0
- package/src/components/LandingPage/common/ui-kit/organisms/AdvanceProfileSection/index.tsx +152 -0
- package/src/components/LandingPage/common/ui-kit/organisms/AuthorSection/index.tsx +156 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDICarouselSection.tsx +115 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIContactSection.tsx +166 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIBentoImageSection.tsx +170 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIIntroSection.tsx +69 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDILetterSection.tsx +71 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BEDIPage1Section.tsx +102 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/BEDIPage1Section/BgLetter.tsx +29 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/constants.ts +35 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BEDIPageSection/index.tsx +171 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/AudioTheme.tsx +30 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/GenerateGreeting.tsx +528 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/HomeSection.tsx +130 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/IntroSection.tsx +105 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/LetterSection.tsx +21 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/NgayNayIcon.tsx +31 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/UploadImage.tsx +67 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/constant.ts +118 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/icons.tsx +153 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BaoNgayNay2025Section/index.tsx +169 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/ContactCard.tsx +166 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/ShareButton.tsx +113 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BizCardProfileSection/index.tsx +395 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BookSection/BookCoverSection.tsx +74 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BookSection/BookSection.tsx +630 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BookSection/NgheLetterSection.tsx +120 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BookSection/index.tsx +5 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BookSection/utils/index.ts +29 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BgRectangle.tsx +19 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BusinessCardAvtCircle.tsx +78 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/BusinessCardAvtFull.tsx +77 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/FragmentContactInfo.tsx +214 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconAddress.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconFacebook.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconInsta.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconLinkedin.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconMail.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconPhone.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconTele.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/icons/IconWeb.tsx +17 -0
- package/src/components/LandingPage/common/ui-kit/organisms/BusinessCardSection/index.tsx +57 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas1GreetingSection.tsx +159 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas1HomeSection.tsx +112 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chirstmas2HomeSection.tsx +113 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Chrismas2GreetingSection.tsx +96 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/Christmas1LetterSection.tsx +63 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Christmas/index.tsx +5 -0
- package/src/components/LandingPage/common/ui-kit/organisms/ContactSection/index.tsx +137 -0
- package/src/components/LandingPage/common/ui-kit/organisms/CoverSetion/index.tsx +62 -0
- package/src/components/LandingPage/common/ui-kit/organisms/GiftAvatarSection/index.tsx +48 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HeaderSection/HeaderAnimation.tsx +27 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HeaderSection/HeaderSection.tsx +61 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanCertSection/index.tsx +97 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanGreetingSection/index.tsx +108 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanMetaverseSection/index.tsx +79 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanPuzzleSection/Puzzle.tsx +203 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanPuzzleSection/index.tsx +129 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanThankyouSection/index.tsx +93 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HesmanVideoSection/index.tsx +80 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeNewspaperSection.tsx +108 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSection.stories.tsx +61 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSection.tsx +261 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSouvenirSection/HomeSouvenirSection.tsx +134 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/HomeSouvenirSection/ImageWithFallback.tsx +30 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HomeSection/index.tsx +3 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HorizontalBookImageSection/HandSwipe.tsx +26 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HorizontalBookImageSection/index.tsx +90 -0
- package/src/components/LandingPage/common/ui-kit/organisms/HorizontalImageListSection/index.tsx +105 -0
- package/src/components/LandingPage/common/ui-kit/organisms/ImagePaddingSection/index.tsx +27 -0
- package/src/components/LandingPage/common/ui-kit/organisms/ImageTextArraySection/index.tsx +43 -0
- package/src/components/LandingPage/common/ui-kit/organisms/ImageTextSection/index.tsx +114 -0
- package/src/components/LandingPage/common/ui-kit/organisms/LetterSection/index.tsx +191 -0
- package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/AudioLexicalLetterSection.tsx +141 -0
- package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/LexicalletterSection.tsx +175 -0
- package/src/components/LandingPage/common/ui-kit/organisms/LexicalLetterSection/index.tsx +2 -0
- package/src/components/LandingPage/common/ui-kit/organisms/MetaverseSection/index.tsx +208 -0
- package/src/components/LandingPage/common/ui-kit/organisms/NavigationSection/ModalWelcomeInput.tsx +85 -0
- package/src/components/LandingPage/common/ui-kit/organisms/NavigationSection/index.tsx +99 -0
- package/src/components/LandingPage/common/ui-kit/organisms/NguyenKimLuckyVoucher/index.tsx +156 -0
- package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetContactSection.tsx +0 -0
- package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetInfoSection.tsx +0 -0
- package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/PetListImage.tsx +0 -0
- package/src/components/LandingPage/common/ui-kit/organisms/PetProfileSection/index.tsx +230 -0
- package/src/components/LandingPage/common/ui-kit/organisms/ProfileSection/index.tsx +324 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme12.tsx +327 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme3.tsx +9 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme4.tsx +9 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/ContentTheme5.tsx +383 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/InforSection.tsx +94 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/QuaTangQuocHoiSection.tsx +524 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/components/LanguageSwitcher.tsx +77 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/constant/data.ts +87 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/context/LanguageContext.tsx +81 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/hook/useLanguage.ts +13 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/index.ts +2 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/locale/en.json +39 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/locale/fr.json +39 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuaTangQuocHoi/types.ts +58 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/ViewAnswer.tsx +48 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/ViewQuestion.tsx +48 -0
- package/src/components/LandingPage/common/ui-kit/organisms/QuizSection/index.tsx +48 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection1/TetCoverSection1.tsx +36 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection1/index.tsx +1 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection2/TetCoverSection2.tsx +33 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection2/index.tsx +1 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckeyMoneySectionAdvance.tsx +197 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/LuckyMoneySection.tsx +164 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection/index.tsx +2 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/LuckyMoneySection2.tsx +162 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/LuckyMoneySection2Advance.tsx +183 -0
- package/src/components/LandingPage/common/ui-kit/organisms/TetLuckyMoneySection2/index.tsx +2 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineGreetingSection.tsx +140 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineHomeSection.tsx +94 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineLetterSection.tsx +45 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopGreetingSection.tsx +141 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopHomeSection.tsx +73 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/ValentineTheFaceShopLetterSection.tsx +38 -0
- package/src/components/LandingPage/common/ui-kit/organisms/Valentine/index.tsx +6 -0
- package/src/components/LandingPage/common/ui-kit/organisms/VerticalCarouselSection/index.tsx +63 -0
- package/src/components/LandingPage/common/ui-kit/organisms/VideoIntroSection/index.tsx +247 -0
- package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanGreetingSection.tsx +140 -0
- package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanHomeSection.tsx +94 -0
- package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/WomanLetterSection.tsx +43 -0
- package/src/components/LandingPage/common/ui-kit/organisms/WomanDay/index.tsx +3 -0
- package/src/components/LandingPage/common/ui-kit/organisms/index.tsx +147 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyCarouselSection.tsx +101 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyCompareSection.tsx +98 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyContactSection.tsx +151 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyHomeSection.tsx +194 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyImageTextSection.tsx +89 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/KhaoCoKyTitle.tsx +51 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocoky/index.tsx +5 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyHome.tsx +169 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyImageText.tsx +105 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyListImageText.tsx +60 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/KhaoCoKyMemories.tsx +3 -0
- package/src/components/LandingPage/common/ui-kit/organisms/khaocokyv2/index.tsx +4 -0
- package/src/components/LandingPage/common/ui-kit/types/base.ts +31 -0
- package/src/components/LandingPage/constants/index.ts +2 -0
- package/src/components/LandingPage/device/index.tsx +30 -0
- package/src/components/LandingPage/hooks/audio/index.tsx +1 -0
- package/src/components/LandingPage/hooks/audio/useMediaContext.tsx +126 -0
- package/src/components/LandingPage/hooks/index.tsx +5 -0
- package/src/components/LandingPage/hooks/useBookMenuContext.tsx +43 -0
- package/src/components/LandingPage/hooks/useFullScreenContext.tsx +86 -0
- package/src/components/LandingPage/hooks/useImageOrientation.tsx +24 -0
- package/src/components/LandingPage/hooks/usePGLModalContext.tsx +46 -0
- package/src/components/LandingPage/models/base-section.ts +16 -0
- package/src/components/LandingPage/models/general.ts +67 -0
- package/src/components/LandingPage/models/theme.ts +8 -0
- package/src/components/LandingPage/utils/helper.ts +225 -0
- package/src/constants/index.ts +1 -0
- package/src/constants/templates/enum.ts +62 -0
- package/src/types/NFT.ts +35 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/web3.ts +75 -0
- package/stories/Button/ButtonV2.stories.ts +25 -0
- package/stories/Button/ButtonV2.tsx +22 -0
- package/stories/Button.stories.ts +52 -0
- package/stories/Button.tsx +48 -0
- package/stories/Configure.mdx +364 -0
- package/stories/Header.stories.ts +33 -0
- package/stories/Header.tsx +67 -0
- package/stories/Page.stories.ts +32 -0
- package/stories/Page.tsx +86 -0
- package/stories/assets/accessibility.png +0 -0
- package/stories/assets/accessibility.svg +5 -0
- package/stories/assets/addon-library.png +0 -0
- package/stories/assets/assets.png +0 -0
- package/stories/assets/avif-test-image.avif +0 -0
- package/stories/assets/context.png +0 -0
- package/stories/assets/discord.svg +15 -0
- package/stories/assets/docs.png +0 -0
- package/stories/assets/figma-plugin.png +0 -0
- package/stories/assets/github.svg +3 -0
- package/stories/assets/share.png +0 -0
- package/stories/assets/styling.png +0 -0
- package/stories/assets/testing.png +0 -0
- package/stories/assets/theming.png +0 -0
- package/stories/assets/tutorials.svg +12 -0
- package/stories/assets/youtube.svg +4 -0
- package/stories/button.css +30 -0
- package/stories/header.css +32 -0
- package/stories/page.css +69 -0
- package/tailwind.config.js +154 -0
- package/tsconfig.json +44 -0
- package/tsconfig.node.json +12 -0
- package/tsup.config.ts +71 -0
- package/turbo/generators/config.ts +31 -0
- package/turbo/generators/templates/component.hbs +14 -0
- package/types/model-viewer.d.ts +16 -0
- package/types.ts +3 -0
|
@@ -0,0 +1,630 @@
|
|
|
1
|
+
import SectionFullScreen from "../../../SectionFullScreen";
|
|
2
|
+
import { BaseSectionProps } from "../../../../models/base-section";
|
|
3
|
+
import { Media } from "../../../../models/general";
|
|
4
|
+
import { FC, useEffect, useState } from "react";
|
|
5
|
+
import { parse } from "@phygitallabs/helpers";
|
|
6
|
+
import draftToHtml from "draftjs-to-html";
|
|
7
|
+
import { debounce } from 'lodash-es';
|
|
8
|
+
import clsx from "clsx";
|
|
9
|
+
// import ModalContinueReading from "@/components/pages/UI/Sections/BookSection/ModalContinueReading";
|
|
10
|
+
import {
|
|
11
|
+
Chapter,
|
|
12
|
+
useFirstPageContext,
|
|
13
|
+
useMenuContext,
|
|
14
|
+
} from "../../../../hooks/useBookMenuContext";
|
|
15
|
+
import { scrollToPage, serializeDocumentFragment } from "./utils";
|
|
16
|
+
// import { useRouter } from "next/router";
|
|
17
|
+
// import { useProductStory } from "@/hooks/useProductStory";
|
|
18
|
+
import { twMerge } from "tailwind-merge";
|
|
19
|
+
import { useFullScreenContext } from "../../../../hooks/useFullScreenContext";
|
|
20
|
+
import { Field, ThemeConfig } from "../../types/base";
|
|
21
|
+
import TitleCustom from "../../moleculars/Title";
|
|
22
|
+
import { Typography } from "../../atomics";
|
|
23
|
+
import BackgroundImage from "../../moleculars/BackgroundImage";
|
|
24
|
+
import { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';
|
|
25
|
+
|
|
26
|
+
interface Cover {
|
|
27
|
+
title: string;
|
|
28
|
+
author: string;
|
|
29
|
+
image: Media;
|
|
30
|
+
caption: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface Content {
|
|
34
|
+
title: string;
|
|
35
|
+
image: Media;
|
|
36
|
+
caption: string;
|
|
37
|
+
content: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface ContentDom extends Content {
|
|
41
|
+
contentInDom: HTMLElement[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface BookSectionData {
|
|
45
|
+
cover: Field;
|
|
46
|
+
content: Field;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface Page {
|
|
50
|
+
id: string;
|
|
51
|
+
chapterTitle?: string;
|
|
52
|
+
kind: "cover" | "chapter" | "menu" | "content";
|
|
53
|
+
content: string | string[] | Cover | React.ReactElement;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const CURRENT_PAGE_KEY = "currentPageV2";
|
|
57
|
+
|
|
58
|
+
export interface BookSectionProps extends BaseSectionProps {
|
|
59
|
+
firstPageIndex: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const renderIntroChapter = (content: Content, configTheme: ThemeConfig) => {
|
|
63
|
+
const renderedContent = (
|
|
64
|
+
<div
|
|
65
|
+
className={clsx(
|
|
66
|
+
"flex h-full flex-col items-center justify-between gap-2",
|
|
67
|
+
!content?.image?.url && "!justify-center"
|
|
68
|
+
)}
|
|
69
|
+
>
|
|
70
|
+
<TitleCustom
|
|
71
|
+
field={{ value: parse(content.title) } as any}
|
|
72
|
+
configTheme={configTheme}
|
|
73
|
+
className="text-center"
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
{content?.image?.url && (
|
|
77
|
+
<>
|
|
78
|
+
<div className="relative flex h-full w-full flex-col items-center justify-center bg-cover">
|
|
79
|
+
<BackgroundImage
|
|
80
|
+
field={
|
|
81
|
+
{
|
|
82
|
+
value: {
|
|
83
|
+
image: content?.image,
|
|
84
|
+
is_overlay: true,
|
|
85
|
+
},
|
|
86
|
+
} as any
|
|
87
|
+
}
|
|
88
|
+
/>
|
|
89
|
+
{content.image?.url && (
|
|
90
|
+
<Image
|
|
91
|
+
className="z-50 max-h-[70svh] w-full object-contain grayscale"
|
|
92
|
+
src={content.image?.url}
|
|
93
|
+
alt=""
|
|
94
|
+
width={"auto"}
|
|
95
|
+
height={"auto"}
|
|
96
|
+
/>
|
|
97
|
+
)}
|
|
98
|
+
</div>
|
|
99
|
+
{content?.caption && (
|
|
100
|
+
<Typography variant="span" className="italic p-2">
|
|
101
|
+
{content?.caption}
|
|
102
|
+
</Typography>
|
|
103
|
+
)}
|
|
104
|
+
</>
|
|
105
|
+
)}
|
|
106
|
+
</div>
|
|
107
|
+
);
|
|
108
|
+
return renderedContent;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const makeImageContent = (dom: HTMLImageElement) => {
|
|
112
|
+
let alt = dom?.alt === "undefined" ? "" : dom.alt;
|
|
113
|
+
return (
|
|
114
|
+
<div className="flex h-full w-full flex-col items-center justify-center overflow-hidden bg-[transparent]">
|
|
115
|
+
<div className="relative flex h-full w-full flex-col justify-center">
|
|
116
|
+
<div className="relative inset-0 flex h-full w-full flex-col items-center justify-center backdrop-blur">
|
|
117
|
+
<Image
|
|
118
|
+
src={dom?.src}
|
|
119
|
+
alt="Culture"
|
|
120
|
+
className="max-h-[400px] w-full object-contain"
|
|
121
|
+
width={"auto"}
|
|
122
|
+
height={"auto"}
|
|
123
|
+
/>
|
|
124
|
+
{alt && (
|
|
125
|
+
<div className=" inset-0 flex w-full items-end bg-[transparent]">
|
|
126
|
+
<div className="flex w-full flex-col items-center justify-center overflow-y-hidden bg-white-alpha-.1 p-2 backdrop-blur-md">
|
|
127
|
+
<p className="text-sm font-light">{alt}</p>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
)}
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
);
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const convertObjectToHtml = (content: Content[]) => {
|
|
138
|
+
return content.map(({ content, ...rest }: any) => {
|
|
139
|
+
const dom = new DOMParser().parseFromString(
|
|
140
|
+
draftToHtml(JSON.parse(content)),
|
|
141
|
+
"text/html"
|
|
142
|
+
);
|
|
143
|
+
const domArr = Array.from(dom.querySelector("body")!.childNodes);
|
|
144
|
+
const domArrWithoutTextNode = domArr.filter((node) => {
|
|
145
|
+
return node.nodeName !== "#text";
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
contentInDom: domArrWithoutTextNode,
|
|
149
|
+
...rest,
|
|
150
|
+
} as ContentDom;
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
const BookSection: FC<BookSectionProps> = ({
|
|
155
|
+
sectionData,
|
|
156
|
+
id,
|
|
157
|
+
configTheme,
|
|
158
|
+
firstPageIndex,
|
|
159
|
+
}) => {
|
|
160
|
+
const { content, cover } = { ...sectionData } as BookSectionData;
|
|
161
|
+
const { firstPage, setFirstPage } = useFirstPageContext()!;
|
|
162
|
+
const { isInViewport } = useFullScreenContext(id);
|
|
163
|
+
|
|
164
|
+
const [pages, setPages] = useState<Page[]>([
|
|
165
|
+
{
|
|
166
|
+
id: "cover",
|
|
167
|
+
kind: "cover",
|
|
168
|
+
content: cover?.value,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "menu",
|
|
172
|
+
kind: "menu",
|
|
173
|
+
content: content?.value?.map(({ title }: { title: string }) => title),
|
|
174
|
+
},
|
|
175
|
+
]);
|
|
176
|
+
const [pageNumber, setPageNumber] = useState(-1);
|
|
177
|
+
// const [isModalOpen, setIsModalOpen] = useState(false);
|
|
178
|
+
// const [previousPage, setPreviousPage] = useState<number | null>(null);
|
|
179
|
+
const { menu, setMenu } = useMenuContext()!;
|
|
180
|
+
const container = document.getElementById("container")!;
|
|
181
|
+
|
|
182
|
+
// const toggleModal = () => setIsModalOpen((pre) => !pre);
|
|
183
|
+
|
|
184
|
+
// const handleOpenModalContinueModal = () => {
|
|
185
|
+
// const previousPageData = localStorage.getItem(CURRENT_PAGE_KEY);
|
|
186
|
+
// if (previousPageData === null) return;
|
|
187
|
+
// const previousPageObject = JSON.parse(previousPageData);
|
|
188
|
+
// const previousPage = previousPageObject[itemId];
|
|
189
|
+
// if (previousPage === undefined || previousPage < 1) return;
|
|
190
|
+
// setPreviousPage(previousPage);
|
|
191
|
+
// if (itemInfo?.extra_info?.owner_name || itemInfo?.extra_info?.context)
|
|
192
|
+
// setIsModalOpen(true);
|
|
193
|
+
// else setIsModalOpen(false);
|
|
194
|
+
// };
|
|
195
|
+
|
|
196
|
+
const handlePagination = () => {
|
|
197
|
+
let sections: Page[] = [];
|
|
198
|
+
const LINE_HEIGHT = 28;
|
|
199
|
+
const PADDING_X = 20 * 2;
|
|
200
|
+
const PADDING_LIST_PARAGRAPH_X = 20 * 2;
|
|
201
|
+
const container = document.getElementById("container")!;
|
|
202
|
+
const formattedContent = convertObjectToHtml(content?.value);
|
|
203
|
+
const baseContainerWidth = container.offsetWidth - PADDING_X;
|
|
204
|
+
const containerHeight = container.offsetHeight;
|
|
205
|
+
const maxLinePerPage = Math.floor(containerHeight / LINE_HEIGHT);
|
|
206
|
+
|
|
207
|
+
let pageContent = "";
|
|
208
|
+
let currentLine = "";
|
|
209
|
+
let currentPage = 0;
|
|
210
|
+
let currentLineNumber = 0;
|
|
211
|
+
let isFirstLineListPara = false;
|
|
212
|
+
|
|
213
|
+
//CANVAS
|
|
214
|
+
const canvas = document.getElementById("canvas") as HTMLCanvasElement;
|
|
215
|
+
const ctx = canvas.getContext("2d")!;
|
|
216
|
+
const style = window.getComputedStyle(container);
|
|
217
|
+
const { fontSize, fontWeight, fontStyle, fontFamily } = style;
|
|
218
|
+
ctx.font = `${fontStyle} ${fontWeight} ${fontSize} ${fontFamily}`;
|
|
219
|
+
|
|
220
|
+
const resetnewPage = () => {
|
|
221
|
+
pageContent = "";
|
|
222
|
+
currentLineNumber = 0;
|
|
223
|
+
currentPage++;
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
const handlePushPageAndReset = (chapterTitle: string) => {
|
|
227
|
+
const htmlDom = new DOMParser().parseFromString(pageContent, "text/html");
|
|
228
|
+
const parentNode = htmlDom.querySelector("body")!;
|
|
229
|
+
const domArr = Array.from(parentNode.childNodes) as HTMLDivElement[];
|
|
230
|
+
const isBlankPage = domArr.every(
|
|
231
|
+
(dom) => dom.firstElementChild?.nodeName === "BR"
|
|
232
|
+
);
|
|
233
|
+
if (isBlankPage) return;
|
|
234
|
+
|
|
235
|
+
let counter = 0;
|
|
236
|
+
const removeFirstBrsInPage = (parent: HTMLBodyElement) => {
|
|
237
|
+
const childNodes = Array.from(parent.childNodes) as HTMLDivElement[];
|
|
238
|
+
for (let i = 0; i < childNodes.length; i++) {
|
|
239
|
+
const childNode = childNodes[i];
|
|
240
|
+
if (
|
|
241
|
+
childNode.firstElementChild?.nodeName === "BR" &&
|
|
242
|
+
!childNode.innerText?.trim()
|
|
243
|
+
) {
|
|
244
|
+
parentNode.removeChild(childNodes[i]);
|
|
245
|
+
counter++;
|
|
246
|
+
} else return;
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
removeFirstBrsInPage(parentNode as any);
|
|
250
|
+
currentLineNumber -= counter;
|
|
251
|
+
const content = (
|
|
252
|
+
<div>{parse(serializeDocumentFragment(parentNode as any))}</div>
|
|
253
|
+
);
|
|
254
|
+
sections.push({
|
|
255
|
+
id: "chapter",
|
|
256
|
+
chapterTitle,
|
|
257
|
+
kind: "content",
|
|
258
|
+
content,
|
|
259
|
+
});
|
|
260
|
+
resetnewPage();
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
const addNewLineToPageContent = ({
|
|
264
|
+
hasSpacing,
|
|
265
|
+
isListParagraph,
|
|
266
|
+
isLastLineInParagraph,
|
|
267
|
+
}: {
|
|
268
|
+
hasSpacing: boolean;
|
|
269
|
+
isListParagraph: boolean;
|
|
270
|
+
isLastLineInParagraph: boolean;
|
|
271
|
+
}) => {
|
|
272
|
+
if (!currentLine.length) return;
|
|
273
|
+
let className = twMerge(
|
|
274
|
+
!isLastLineInParagraph && "text-last-justify",
|
|
275
|
+
isListParagraph && "px-5",
|
|
276
|
+
isListParagraph &&
|
|
277
|
+
isFirstLineListPara &&
|
|
278
|
+
`relative before:content-['●'] before:absolute before:left-0`
|
|
279
|
+
);
|
|
280
|
+
isFirstLineListPara = false;
|
|
281
|
+
pageContent += `<div className="${className}">
|
|
282
|
+
${currentLine}${hasSpacing ? " " : ""}
|
|
283
|
+
</div>`;
|
|
284
|
+
currentLineNumber++;
|
|
285
|
+
};
|
|
286
|
+
const handleParagraphNode = ({
|
|
287
|
+
dom,
|
|
288
|
+
isLastDomParagraph,
|
|
289
|
+
chapterTitle,
|
|
290
|
+
isListParagraph,
|
|
291
|
+
}: {
|
|
292
|
+
dom: HTMLElement;
|
|
293
|
+
isLastDomParagraph: boolean;
|
|
294
|
+
chapterTitle: string;
|
|
295
|
+
isListParagraph: boolean;
|
|
296
|
+
}) => {
|
|
297
|
+
let containerWidth = baseContainerWidth;
|
|
298
|
+
isFirstLineListPara = false;
|
|
299
|
+
if (isListParagraph) {
|
|
300
|
+
containerWidth = baseContainerWidth - PADDING_LIST_PARAGRAPH_X;
|
|
301
|
+
isFirstLineListPara = true;
|
|
302
|
+
}
|
|
303
|
+
const isNextNodeImg = dom.nextElementSibling?.nodeName === "IMG";
|
|
304
|
+
const content = dom.innerText.trim();
|
|
305
|
+
const handleSplitIntoPages = (words: string[]) => {
|
|
306
|
+
for (let j = 0; j < words.length; j++) {
|
|
307
|
+
const isLastWord = () => j === words.length - 1;
|
|
308
|
+
const word = words[j];
|
|
309
|
+
const separator = j === 0 ? "" : " ";
|
|
310
|
+
|
|
311
|
+
const currentLineStillHasSpace =
|
|
312
|
+
ctx.measureText(`${currentLine}${separator}${word}`).width <
|
|
313
|
+
containerWidth;
|
|
314
|
+
|
|
315
|
+
if (currentLineStillHasSpace) {
|
|
316
|
+
currentLine += `${separator}${word}`;
|
|
317
|
+
if (isLastWord() && (isLastDomParagraph || isNextNodeImg)) {
|
|
318
|
+
addNewLineToPageContent({
|
|
319
|
+
hasSpacing: false,
|
|
320
|
+
isListParagraph,
|
|
321
|
+
isLastLineInParagraph: true,
|
|
322
|
+
});
|
|
323
|
+
handlePushPageAndReset(chapterTitle);
|
|
324
|
+
currentLine = "";
|
|
325
|
+
}
|
|
326
|
+
} else {
|
|
327
|
+
addNewLineToPageContent({
|
|
328
|
+
hasSpacing: true,
|
|
329
|
+
isListParagraph,
|
|
330
|
+
isLastLineInParagraph: false,
|
|
331
|
+
});
|
|
332
|
+
currentLine = `${word}`;
|
|
333
|
+
if (isLastWord() && (isLastDomParagraph || isNextNodeImg)) {
|
|
334
|
+
addNewLineToPageContent({
|
|
335
|
+
hasSpacing: false,
|
|
336
|
+
isListParagraph,
|
|
337
|
+
isLastLineInParagraph: true,
|
|
338
|
+
});
|
|
339
|
+
handlePushPageAndReset(chapterTitle);
|
|
340
|
+
currentLine = "";
|
|
341
|
+
} else {
|
|
342
|
+
const isLastLine = currentLineNumber === maxLinePerPage;
|
|
343
|
+
// Check recursive case
|
|
344
|
+
if (isLastLine && !(isLastWord() || isNextNodeImg)) {
|
|
345
|
+
handlePushPageAndReset(chapterTitle);
|
|
346
|
+
currentLine = "";
|
|
347
|
+
handleSplitIntoPages(words.slice(j));
|
|
348
|
+
return;
|
|
349
|
+
} else {
|
|
350
|
+
// Do nothing
|
|
351
|
+
if (!isLastLine && isNextNodeImg) {
|
|
352
|
+
} else if (
|
|
353
|
+
!isLastLine &&
|
|
354
|
+
!(isLastWord() && isLastDomParagraph)
|
|
355
|
+
) {
|
|
356
|
+
} else handlePushPageAndReset(chapterTitle);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
handleSplitIntoPages(content.split(" "));
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
const handleBreakParagraph = (
|
|
366
|
+
chapterTitle: string,
|
|
367
|
+
isListParagraph: boolean
|
|
368
|
+
) => {
|
|
369
|
+
currentLine += "<br/>";
|
|
370
|
+
addNewLineToPageContent({
|
|
371
|
+
hasSpacing: false,
|
|
372
|
+
isListParagraph,
|
|
373
|
+
isLastLineInParagraph: true,
|
|
374
|
+
});
|
|
375
|
+
if (currentLineNumber === maxLinePerPage) {
|
|
376
|
+
handlePushPageAndReset(chapterTitle);
|
|
377
|
+
resetnewPage();
|
|
378
|
+
}
|
|
379
|
+
currentLine = "";
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
const handleImageNode = (dom: HTMLElement, chapterTitle: string) => {
|
|
383
|
+
sections.push({
|
|
384
|
+
id: "chapter",
|
|
385
|
+
chapterTitle: chapterTitle,
|
|
386
|
+
kind: "content",
|
|
387
|
+
content: makeImageContent(dom as HTMLImageElement),
|
|
388
|
+
});
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
for (let i = 0; i < formattedContent.length; i++) {
|
|
392
|
+
const chapterContent = formattedContent[i];
|
|
393
|
+
const chapterTitle = chapterContent.title;
|
|
394
|
+
sections.push({
|
|
395
|
+
id: `chapter-${i + 1}`,
|
|
396
|
+
kind: "chapter",
|
|
397
|
+
content: renderIntroChapter(chapterContent, configTheme as ThemeConfig),
|
|
398
|
+
chapterTitle,
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
const { contentInDom } = chapterContent;
|
|
402
|
+
|
|
403
|
+
const traverseDom = (htmlElements: HTMLElement[]) => {
|
|
404
|
+
let lastPIndex;
|
|
405
|
+
for (let k = htmlElements.length - 1; k >= 0; k--) {
|
|
406
|
+
const dom = htmlElements[k];
|
|
407
|
+
if (dom.nodeName === "P") {
|
|
408
|
+
lastPIndex = k;
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
for (let j = 0; j < htmlElements.length; j++) {
|
|
413
|
+
const dom = htmlElements[j];
|
|
414
|
+
switch (dom.nodeName) {
|
|
415
|
+
case "UL":
|
|
416
|
+
traverseDom(Array.from(dom.children) as HTMLElement[]);
|
|
417
|
+
break;
|
|
418
|
+
case "LI":
|
|
419
|
+
case "P":
|
|
420
|
+
const isListParagraph = dom.nodeName === "LI";
|
|
421
|
+
const isLastDomParagraph = lastPIndex === j;
|
|
422
|
+
handleParagraphNode({
|
|
423
|
+
dom,
|
|
424
|
+
isLastDomParagraph,
|
|
425
|
+
chapterTitle,
|
|
426
|
+
isListParagraph,
|
|
427
|
+
});
|
|
428
|
+
handleBreakParagraph(chapterTitle, isListParagraph);
|
|
429
|
+
break;
|
|
430
|
+
case "IMG":
|
|
431
|
+
handleImageNode(dom, chapterTitle);
|
|
432
|
+
break;
|
|
433
|
+
default:
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
traverseDom(contentInDom);
|
|
439
|
+
}
|
|
440
|
+
const defaultSection: Page[] = [
|
|
441
|
+
{
|
|
442
|
+
id: "cover",
|
|
443
|
+
kind: "cover",
|
|
444
|
+
content: cover?.value,
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
id: "menu",
|
|
448
|
+
kind: "menu",
|
|
449
|
+
content: content?.value?.map(({ title }: { title: string }) => title),
|
|
450
|
+
},
|
|
451
|
+
];
|
|
452
|
+
setPages([...defaultSection, ...sections]);
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
const handlePageScroll = (container: HTMLElement) => {
|
|
456
|
+
let currentPageNumber =
|
|
457
|
+
Math.ceil(container.scrollTop / container.offsetHeight) - 3;
|
|
458
|
+
if (currentPageNumber <= pages.length) {
|
|
459
|
+
setPageNumber(currentPageNumber);
|
|
460
|
+
}
|
|
461
|
+
const lastPageData = localStorage.getItem(CURRENT_PAGE_KEY);
|
|
462
|
+
let pageObject: { [key: string]: number } = {};
|
|
463
|
+
if (!!lastPageData) pageObject = JSON.parse(lastPageData);
|
|
464
|
+
// pageObject[itemId] = currentPageNumber;
|
|
465
|
+
localStorage.setItem(CURRENT_PAGE_KEY, JSON.stringify(pageObject));
|
|
466
|
+
};
|
|
467
|
+
const debounceScroll = (container: HTMLElement) => {
|
|
468
|
+
return debounce(() => handlePageScroll(container), 20);
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
useEffect(() => {
|
|
472
|
+
const handlePaginationTimeOut = () =>
|
|
473
|
+
setTimeout(() => handlePagination(), 1000);
|
|
474
|
+
if (!content?.value || !container) return;
|
|
475
|
+
setFirstPage(firstPageIndex);
|
|
476
|
+
handlePaginationTimeOut();
|
|
477
|
+
const debouncedHandleResize = debounce(handlePaginationTimeOut, 200);
|
|
478
|
+
window.addEventListener("resize", debouncedHandleResize);
|
|
479
|
+
return () => window.removeEventListener("resize", debouncedHandleResize);
|
|
480
|
+
}, [content?.value, container]);
|
|
481
|
+
|
|
482
|
+
useEffect(() => {
|
|
483
|
+
const container = document.getElementById("snap-container")!;
|
|
484
|
+
container.addEventListener("scroll", debounceScroll(container));
|
|
485
|
+
|
|
486
|
+
return () => {
|
|
487
|
+
container.removeEventListener("scroll", debounceScroll(container));
|
|
488
|
+
};
|
|
489
|
+
}, [pages]);
|
|
490
|
+
|
|
491
|
+
useEffect(() => {
|
|
492
|
+
const chapterMenu = pages
|
|
493
|
+
?.map((page, index) => {
|
|
494
|
+
return {
|
|
495
|
+
id: page.id,
|
|
496
|
+
kind: page.kind,
|
|
497
|
+
chapterTitle: page.chapterTitle,
|
|
498
|
+
pageNumber: index,
|
|
499
|
+
};
|
|
500
|
+
})
|
|
501
|
+
.filter((page) => page.kind === "chapter")
|
|
502
|
+
.map((page) => {
|
|
503
|
+
return {
|
|
504
|
+
id: page.id,
|
|
505
|
+
chapterTitle: parse(page.chapterTitle || ""),
|
|
506
|
+
pageNumber: page.pageNumber,
|
|
507
|
+
};
|
|
508
|
+
});
|
|
509
|
+
setMenu(chapterMenu as Chapter[]);
|
|
510
|
+
}, [pages, firstPage]);
|
|
511
|
+
|
|
512
|
+
const renderByPageKind = (page: Page) => {
|
|
513
|
+
switch (page.kind) {
|
|
514
|
+
case "cover":
|
|
515
|
+
const cover = page.content as Cover;
|
|
516
|
+
return (
|
|
517
|
+
<div
|
|
518
|
+
id="cover"
|
|
519
|
+
className="flex h-full flex-col items-center justify-start"
|
|
520
|
+
>
|
|
521
|
+
<div>
|
|
522
|
+
<TitleCustom
|
|
523
|
+
field={{ value: cover?.title }}
|
|
524
|
+
configTheme={configTheme}
|
|
525
|
+
className="whitespace-normal text-center text-2xl"
|
|
526
|
+
/>
|
|
527
|
+
<Typography variant="h6" className="text-center">
|
|
528
|
+
{cover?.author}
|
|
529
|
+
</Typography>
|
|
530
|
+
</div>
|
|
531
|
+
<div className="flex h-1/2 flex-col items-center">
|
|
532
|
+
{cover?.image?.url && (
|
|
533
|
+
<Image
|
|
534
|
+
className="h-full object-contain"
|
|
535
|
+
src={cover?.image?.url}
|
|
536
|
+
alt=""
|
|
537
|
+
/>
|
|
538
|
+
)}
|
|
539
|
+
<p className="w-full bg-white-alpha-.1 p-2 text-center italic">
|
|
540
|
+
{cover?.caption}
|
|
541
|
+
</p>
|
|
542
|
+
</div>
|
|
543
|
+
</div>
|
|
544
|
+
);
|
|
545
|
+
case "menu":
|
|
546
|
+
return (
|
|
547
|
+
<div id="menu" className="h-full space-y-8">
|
|
548
|
+
<TitleCustom
|
|
549
|
+
field={{ value: "Mục lục" }}
|
|
550
|
+
configTheme={configTheme}
|
|
551
|
+
className="text-center"
|
|
552
|
+
/>
|
|
553
|
+
<div className="h-5/6 space-y-5 overflow-scroll text-center text-lg">
|
|
554
|
+
{menu &&
|
|
555
|
+
menu?.map((item) => (
|
|
556
|
+
<p
|
|
557
|
+
key={item.id}
|
|
558
|
+
onClick={() => scrollToPage(item.pageNumber, 2)}
|
|
559
|
+
>
|
|
560
|
+
{item.chapterTitle}
|
|
561
|
+
</p>
|
|
562
|
+
))}
|
|
563
|
+
</div>
|
|
564
|
+
</div>
|
|
565
|
+
);
|
|
566
|
+
case "chapter":
|
|
567
|
+
return (
|
|
568
|
+
<div id={page.id} className="h-full text-justify">
|
|
569
|
+
{page.content as React.ReactElement}
|
|
570
|
+
</div>
|
|
571
|
+
);
|
|
572
|
+
case "content":
|
|
573
|
+
return (
|
|
574
|
+
<div className="h-full text-justify">
|
|
575
|
+
{page.content as React.ReactElement}
|
|
576
|
+
</div>
|
|
577
|
+
);
|
|
578
|
+
default:
|
|
579
|
+
return null;
|
|
580
|
+
}
|
|
581
|
+
};
|
|
582
|
+
return (
|
|
583
|
+
// <div className="relative h-full m-auto font-stix">
|
|
584
|
+
<>
|
|
585
|
+
{/* <ModalContinueReading
|
|
586
|
+
pageNumber={previousPage!}
|
|
587
|
+
isModalOpen={isModalOpen}
|
|
588
|
+
toggleModal={toggleModal}
|
|
589
|
+
otherSectionNumber={firstPage}
|
|
590
|
+
/> */}
|
|
591
|
+
{pages.map((page, index) => {
|
|
592
|
+
// const isChapterTitleRendered =
|
|
593
|
+
// page.chapterTitle && page.kind !== "chapter";
|
|
594
|
+
return (
|
|
595
|
+
<>
|
|
596
|
+
<SectionFullScreen key={index} name={id}>
|
|
597
|
+
<div className="h-full pt-[50px]">
|
|
598
|
+
{/* {isChapterTitleRendered && (
|
|
599
|
+
<div className="px-6 py-3 text-center text-base font-bold uppercase leading-5">
|
|
600
|
+
{page.chapterTitle}
|
|
601
|
+
</div>
|
|
602
|
+
)} */}
|
|
603
|
+
<div
|
|
604
|
+
id="container"
|
|
605
|
+
className="flex h-full w-full flex-col px-5 text-base font-light leading-7"
|
|
606
|
+
style={{
|
|
607
|
+
fontFamily: configTheme?.font_family,
|
|
608
|
+
color: configTheme?.secondary_color,
|
|
609
|
+
}}
|
|
610
|
+
>
|
|
611
|
+
{renderByPageKind(page)}
|
|
612
|
+
</div>
|
|
613
|
+
</div>
|
|
614
|
+
<canvas className="invisible" id="canvas" />
|
|
615
|
+
</SectionFullScreen>
|
|
616
|
+
</>
|
|
617
|
+
);
|
|
618
|
+
})}
|
|
619
|
+
<div
|
|
620
|
+
className={clsx(
|
|
621
|
+
"fixed bottom-2 left-1/2 z-50 flex w-fit -translate-x-1/2 rounded-lg bg-black p-2 text-white",
|
|
622
|
+
(pageNumber <= 0 || !isInViewport) && "hidden"
|
|
623
|
+
)}
|
|
624
|
+
>
|
|
625
|
+
{pageNumber}/{pages.length}
|
|
626
|
+
</div>
|
|
627
|
+
</>
|
|
628
|
+
);
|
|
629
|
+
};
|
|
630
|
+
export default BookSection;
|