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,87 @@
|
|
|
1
|
+
export const quaTangQuocHoiData = {
|
|
2
|
+
mainTitle: "TOÀ NHÀ QUỐC HỘI VIỆT NAM",
|
|
3
|
+
introduction:
|
|
4
|
+
"Toạ lạc tại trung tâm chính trị Ba Đình, toà nhà Quốc hội không chỉ là trụ sở làm việc của Quốc hội Việt Nam - biểu tượng quyền lực nhà nước, nơi quyết định những vấn đề quan trọng liên quan trực tiếp đến tương lai của đất nước, mà còn là điểm đến giàu giá trị văn hoá, khơi dậy niềm tự hào dân tộc trong lòng mỗi người dân Việt Nam. Toà nhà không chỉ là nơi diễn ra các kì họp quan trọng mà còn là công trình văn hoá sở hữu thiết kế độc đáo giao thoa giữa nét kiến trúc truyền thống và phong cách hiện đại, cùng với hầm trưng bày các di tích khảo cổ quý báu của thời kì Thăng Long.",
|
|
5
|
+
|
|
6
|
+
history: {
|
|
7
|
+
title: "Lược sử hình thành",
|
|
8
|
+
content:
|
|
9
|
+
"Toà nhà Quốc hội ngày nay được xây dựng trên nền Hội trường Ba Đình cũ vào ngày 12/10/2009 và chính thức khánh thành và đi vào hoạt động từ ngày 20/10/2014. Việc xây dựng trên mảnh đất giàu truyền thống lịch sử này thể hiện sự kế thừa, tôn trọng quá khứ, làm tiền đề cho sự phát triển của hệ thống quyền lực cao nhất cả nước. Đồng thời, công trình còn mang đậm tư tưởng Hồ Chí Minh, với quan điểm quyền lực thuộc về nhân dân",
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
architecture: {
|
|
13
|
+
title: "KIẾN TRÚC & THIẾT KẾ",
|
|
14
|
+
bánhChưngBánhGiày: {
|
|
15
|
+
title: "Bánh chưng, bánh giày",
|
|
16
|
+
content:
|
|
17
|
+
"Bánh chưng, bánh giày là biểu tượng của **Trời tròn, Đất vuông**, với hình tròn tượng trưng cho người cha (Mặt Trời) và hình vuông tượng trưng cho người mẹ (Đất). Đây là quan niệm cổ truyền về mối liên hệ giữa con người với vũ trụ, giữa thế giới vật chất và tinh thần.",
|
|
18
|
+
},
|
|
19
|
+
hìnhKhối: {
|
|
20
|
+
title: "Hình khối",
|
|
21
|
+
content:
|
|
22
|
+
"Toà nhà được thiết kế với khối vuông vững chãi, tượng trưng cho sức mạnh và sự ổn định của chính quyền nhân dân. Phần mái vòm tròn ở trên đỉnh toà nhà gợi nhớ đến trống đồng - biểu tượng của văn hoá cổ đại Việt Nam và quyền lực, sự thống nhất dân tộc.",
|
|
23
|
+
},
|
|
24
|
+
mặtTiền: {
|
|
25
|
+
title: "Mặt tiền",
|
|
26
|
+
content:
|
|
27
|
+
"Mặt tiền được phủ bằng các tấm kính màu vàng, lấy cảm hứng từ hoa văn lá cờ tổ quốc và tranh dân gian **Tứ quý** (Tùng, Cúc, Trúc, Mai), tượng trưng cho bốn mùa và những phẩm chất tốt đẹp của con người. Hệ thống che nắng bằng đá tạo cảm giác vừa hiện đại vừa thân quen, gợi nhớ đến chiếu tre trong văn hoá làng quê Việt Nam.",
|
|
28
|
+
},
|
|
29
|
+
vậtLiệu: {
|
|
30
|
+
title: "Vật liệu",
|
|
31
|
+
content:
|
|
32
|
+
"Sử dụng các vật liệu nội thất cao cấp và truyền thống như gỗ lim, gỗ hương và đá ốp lát địa phương, thể hiện tinh thần tự lực tự cường và tôn vinh nguồn tài nguyên bản địa. Hệ thống che nắng bằng đá tạo cảm giác vừa hiện đại vừa thân quen, gợi nhớ đến chiếu tre trong văn hoá làng quê Việt Nam.",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
functionalRooms: {
|
|
37
|
+
title: "Các phòng chức năng của nhà Quốc hội Việt Nam",
|
|
38
|
+
rooms: [
|
|
39
|
+
{
|
|
40
|
+
name: "PHÒNG HỌP DIÊN HỒNG",
|
|
41
|
+
description:
|
|
42
|
+
"là phòng họp chính của Nhà Quốc hội, nơi tổ chức các phiên họp toàn thể để bàn thảo và quyết định các vấn đề lớn của đất nước. Tên gọi Diên Hồng lấy cảm hứng từ hội nghị dân chủ đầu tiên trong lịch sử Việt Nam vào cuối năm 1284, khi Thượng hoàng Trần Thánh Tông họp bàn với các bô lão cả nước quyết định phương án đánh quân Nguyên - Mông. Phòng họp có 2 tầng với thiết kế hình vòng cung. Tầng một gồm 575 ghế (tự động xếp hàng thẳng tắp, có thể tự lùi 15cm cũng như xoay 360 độ mà ko hề gây ra bất cứ tiếng động nào, và khi thả tay, ghế sẽ tự động trở về vị trí cũ) dành cho đại biểu Quốc hội. Tầng hai có 393 ghế cho khách mời và đại biểu dự thính. Bên trong được trang bị hệ thống công nghệ hiện đại, tiên tiến như: thiết bị điểm danh, biểu quyết điện tử, màn hình lớn để phục vụ theo dõi và phát sóng trực tiếp. Đặc biệt, hệ thống chiếu sáng phía trên trần phòng có hàng nghìn bóng đèn công suất lớn, tạo không gian sáng sủa và trang trọng.",
|
|
43
|
+
imageCaption: "(Hình ảnh: Phòng họp Diên Hồng)",
|
|
44
|
+
image: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-8.webp",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "PHÒNG HỌP TÂN TRÀO",
|
|
48
|
+
description:
|
|
49
|
+
"nằm ở tầng 2 của toà nhà Quốc hội, là nơi diễn ra các phiên họp của Uỷ ban Thường vụ Quốc hội và là cơ quan thực hiện các nhiệm vụ quan trọng diễn ra trong khoảng thời gian Quốc hội không họp. Không gian bên trong được bài trí bằng các ghế ngồi hình ô van. Phòng được thiết kế hiện đại, mang dáng dấp của kiến trúc Châu Âu nhưng được cải tiến hài hoà cùng với nhu cầu văn hoá người Viêt.",
|
|
50
|
+
imageCaption: "(Hình ảnh: Phòng họp Tân Trào)",
|
|
51
|
+
image: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-9.webp",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "PHÒNG THĂNG LONG",
|
|
55
|
+
description:
|
|
56
|
+
"nằm tại Sảnh trung tâm tầng 1 của nhà Quốc hội. là phòng họp đa năng lớn nhất, phù hợp cho các sự kiện trọng đại như hội nghị hoặc tiệc, với sức chứa lên đến 800 đại biểu. Hơn thế, phòng còn được trang bị hệ thống phân chia linh hoạt, cho phép tách thành 2, 3 phòng nhỏ để đáp ứng nhu cầu tổ chức các sự kiện khác nhau.",
|
|
57
|
+
imageCaption: "(Hình ảnh: Phòng Thăng Long)",
|
|
58
|
+
image: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-10.webp",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "PHÒNG HỌP ĐOÀN ĐẠI BIỂU QUỐC HỘI ",
|
|
62
|
+
description:
|
|
63
|
+
"là nơi các đại biểu thảo luận trước những nội dung thuộc kỳ họp, trước khi đưa ra quyết định tại phiên họp toàn thể. Khu vực phòng họp này được bố trí linh hoạt tại tầng 1, tầng 2 và tầng 4 của tòa nhà. Thiết kế phòng mang tính linh động cao, có hệ thống ngăn di động (đóng mở khi cần thiết), tạo thành không gian phù hợp cho các cuộc họp Đại biểu Quốc hội.",
|
|
64
|
+
imageCaption: "(Hình ảnh: Phòng Thăng Long)",
|
|
65
|
+
image: "",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
exhibition: {
|
|
69
|
+
description:
|
|
70
|
+
"Ngoài ra, trong toà nhà Quốc hội còn có: Trung tâm Báo chí (nơi tổ chức các buổi họp báo trước và sau mỗi kỳ họp), Bảo tàng Quốc hội (Phòng Truyền thống Quốc hội, nơi trưng bày hình ảnh và hiện vật tái hiện hành trình hình thành và phát triển của Quốc hội Việt Nam từ năm 1946 đến nay), Thư viện Quốc hội, Phòng trưng bày di vật khảo cổ dưới lòng đất tái hiện sống động lịch sử kinh thành Thăng Long xưa",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
images: {
|
|
75
|
+
mainImage: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-1.webp",
|
|
76
|
+
exterior: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-2.webp",
|
|
77
|
+
exteriorLarge: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-3.webp",
|
|
78
|
+
architecturalModel: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-4.webp",
|
|
79
|
+
auditorium: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-5.webp",
|
|
80
|
+
cityscape: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-6.webp",
|
|
81
|
+
cityscape2: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-7.webp",
|
|
82
|
+
terracottaArtifacts1: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-12.webp",
|
|
83
|
+
terracottaArtifacts: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-14.webp",
|
|
84
|
+
exhibitionHall: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-15.webp",
|
|
85
|
+
wallRelief: "https://storage.nomion.io/Qua-tang-quoc-hoi/screen2-1-13.webp",
|
|
86
|
+
},
|
|
87
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState, ReactNode } from "react";
|
|
2
|
+
import { Language, LanguageData, LanguageContextType } from "../types";
|
|
3
|
+
import enData from "../locale/en.json";
|
|
4
|
+
|
|
5
|
+
const LanguageContext = createContext<LanguageContextType | undefined>(undefined);
|
|
6
|
+
|
|
7
|
+
interface LanguageProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const LanguageProvider: React.FC<LanguageProviderProps> = ({ children }) => {
|
|
12
|
+
const [language, setLanguage] = useState<Language>("en");
|
|
13
|
+
const [languageData, setLanguageData] = useState<LanguageData>(enData as unknown as LanguageData);
|
|
14
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
15
|
+
|
|
16
|
+
// Load language data from JSON files
|
|
17
|
+
const loadLanguageData = async (lang: Language) => {
|
|
18
|
+
setIsLoading(true);
|
|
19
|
+
try {
|
|
20
|
+
const data = await import(`../locale/${lang}.json`);
|
|
21
|
+
setLanguageData(data.default);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error(`Failed to load language data for ${lang}:`, error);
|
|
24
|
+
// Fallback to English if loading fails
|
|
25
|
+
if (lang !== "en") {
|
|
26
|
+
try {
|
|
27
|
+
const fallbackData = await import("../locale/en.json");
|
|
28
|
+
setLanguageData(fallbackData.default as unknown as LanguageData);
|
|
29
|
+
} catch (fallbackError) {
|
|
30
|
+
console.error("Failed to load fallback language data:", fallbackError);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} finally {
|
|
34
|
+
setIsLoading(false);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Switch language
|
|
39
|
+
const switchLanguage = (newLang: Language) => {
|
|
40
|
+
setLanguage(newLang);
|
|
41
|
+
loadLanguageData(newLang);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// Get translation by key
|
|
45
|
+
const t = (key: string): any => {
|
|
46
|
+
if (!languageData) return key;
|
|
47
|
+
|
|
48
|
+
const keys = key.split(".");
|
|
49
|
+
let value: any = languageData;
|
|
50
|
+
|
|
51
|
+
for (const k of keys) {
|
|
52
|
+
if (value && typeof value === "object" && k in value) {
|
|
53
|
+
value = value[k];
|
|
54
|
+
} else {
|
|
55
|
+
return key; // Return key if translation not found
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return value;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const contextValue: LanguageContextType = {
|
|
63
|
+
language,
|
|
64
|
+
setLanguage,
|
|
65
|
+
languageData,
|
|
66
|
+
setLanguageData,
|
|
67
|
+
isLoading,
|
|
68
|
+
switchLanguage,
|
|
69
|
+
t,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
return <LanguageContext.Provider value={contextValue}>{children}</LanguageContext.Provider>;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const useLanguageContext = (): LanguageContextType => {
|
|
76
|
+
const context = useContext(LanguageContext);
|
|
77
|
+
if (context === undefined) {
|
|
78
|
+
throw new Error("useLanguageContext must be used within a LanguageProvider");
|
|
79
|
+
}
|
|
80
|
+
return context;
|
|
81
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useLanguageContext } from "../context/LanguageContext";
|
|
2
|
+
|
|
3
|
+
export const useLanguage = () => {
|
|
4
|
+
const context = useLanguageContext();
|
|
5
|
+
|
|
6
|
+
return {
|
|
7
|
+
language: context.language,
|
|
8
|
+
switchLanguage: context.switchLanguage,
|
|
9
|
+
t: context.t,
|
|
10
|
+
languageData: context.languageData,
|
|
11
|
+
isLoading: context.isLoading,
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"name": "Hon. Le Thu Ha",
|
|
4
|
+
"candidacy": "With compliments of\nHon. Le Thu Ha\nVice Chairwoman,\nOffice of the\nNational Assembly\nSocialist Republic of\nViet Nam",
|
|
5
|
+
"readMoreButton": "Read more"
|
|
6
|
+
},
|
|
7
|
+
"about": {
|
|
8
|
+
"title": "About",
|
|
9
|
+
"subtitle": "The Honorable",
|
|
10
|
+
"name":"LE THU HA",
|
|
11
|
+
"description": "Hon. Le Thu Ha, born on 26 November 1968 in Hà Nội, Viet Nam, is a senior parliamentary administrator and two-term legislator with more than three decades of experience in parliamentary administration, inter-parliamentary diplomacy, and legislative leadership. She is committed to strengthening the independence, efficiency, and professionalism of parliamentary secretariats worldwide."
|
|
12
|
+
},
|
|
13
|
+
"education": {
|
|
14
|
+
"title": "Education",
|
|
15
|
+
"description": "Hon. Ha holds a Master of Public Policy from the National University of Singapore (1998) and a Bachelor of Science from Vietnam National University, Hanoi (1990). She has also completed executive and professional development programmes in the United States, Japan, Canada, Russia, and Singapore, further broadening her perspectives on governance and international cooperation."
|
|
16
|
+
},
|
|
17
|
+
"career": {
|
|
18
|
+
"title": "Career",
|
|
19
|
+
"startYear": "1990",
|
|
20
|
+
"organization": "National Assembly of Viet Nam",
|
|
21
|
+
"description": "Beginning her parliamentary service in",
|
|
22
|
+
"text-2": ", Hon. Ha has dedicated her career to advancing the effectiveness and international engagement of the",
|
|
23
|
+
"currentRole": "She currently serves as Vice Chair of the Office of the National Assembly (since March 2025), where she oversees the strategic coordination of legislative, oversight, and international relations activities, ensuring professionalism, transparency, and effective support to the National Assembly and its members. From 2022 to 2025, she was Vice Chair of the Foreign Affairs Committee, directing parliamentary diplomacy and overseeing foreign policy and international agreements. She was elected Member of the National Assembly for both the 14th (2016–2021) and 15th (2021–2026) legislatures, contributing administrative insight to law-making, oversight, and constituency work. Earlier, she served as Director of the Foreign Affairs Department of the Office of the National Assembly, and as Deputy Consul General of Viet Nam in San Francisco, United States, where she strengthened bilateral and parliamentary ties and expanded Viet Nam’s network of international partners.",
|
|
24
|
+
"previousRoles1": "Throughout her career, Hon. Ha has been deeply engaged in multilateral parliamentary diplomacy. She played a pivotal role as Deputy Secretary-General of the National Organizing Committee for the 132nd Inter-Parliamentary Union (IPU) Assembly held in Hà Nội in 2015, working closely with the IPU",
|
|
25
|
+
"previousRoles2": "Secretariat to deliver a landmark gathering of over 160 national parliaments and leading to the adoption of the “Hà Nội Declaration,” which affirmed the central role of parliaments in implementing the 2030 Agenda for Sustainable Development. She has directed and hosted numerous regional IPU meetings and thematic conferences in Viet Nam, further elevating the country’s parliamentary profile and strengthening links with parliamentary secretariats worldwide.",
|
|
26
|
+
"previousRoles3": "is a regular participant and speaker at major inter-parliamentary forums",
|
|
27
|
+
"she": "She",
|
|
28
|
+
"ipu":"IPU AIPA APPF"
|
|
29
|
+
},
|
|
30
|
+
"internationalEngagement": {
|
|
31
|
+
"title": "International Engagement",
|
|
32
|
+
"description": "Hon. Ha is a regular participant and speaker at major inter-parliamentary forums including the IPU, the ASEAN Inter-Parliamentary Assembly (AIPA), and the Asia-Pacific Parliamentary Forum (APPF). In these arenas, she has consistently championed gender equality and the political participation of women, advancing objectives closely aligned with the mission of the ASGP.\n\nFluent in English and Russian, with a working knowledge of French, Hon. Ha brings strategic leadership, multilateral diplomacy, and organizational management skills to every role she undertakes. She joined the Association of Secretaries General of Parliaments in 2025 and remains firmly committed to advancing its mission of strengthening parliamentary institutions and fostering international best practices."
|
|
33
|
+
},
|
|
34
|
+
"common": {
|
|
35
|
+
"language": "Language",
|
|
36
|
+
"english": "English",
|
|
37
|
+
"french": "French"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"name": "Mme. Le Thu Ha",
|
|
4
|
+
"candidacy": "Avec les\ncompliments de\nMme Le Thu Ha\nVice-présidente du\nBureau de\nl'Assemblée\nnationale du\nVietnam",
|
|
5
|
+
"readMoreButton": "En savoir plus"
|
|
6
|
+
},
|
|
7
|
+
"about": {
|
|
8
|
+
"title": "À propos",
|
|
9
|
+
"subtitle": "L'honorable Mme",
|
|
10
|
+
"name": "LE THU HA",
|
|
11
|
+
"description": "Mme Le Thu Ha, née le 26 novembre 1968 à Hanoï (Vietnam), est fonctionnaire de longue date travaillant dans l’administration parlementaire et députée élue pour deux législatures, disposant plus de trente ans d’expérience dans l’administration parlementaire, la diplomatie interparlementaire et le leadership législatif. Elle s’est engagée tout au long de sa carrière à renforcer l’indépendance, l’efficacité et le professionnalisme des secrétariats parlementaires à travers le monde."
|
|
12
|
+
},
|
|
13
|
+
"education": {
|
|
14
|
+
"title": "Formation",
|
|
15
|
+
"description": "Mme Ha est titulaire d’un Master en politiques publiques de l’Université nationale de Singapour (1998) et d’une Licence ès sciences de l’Université nationale du Vietnam à Hanoï (1990). Elle a également suivi plusieurs programmes de formation des cadres et de perfectionnement professionnel aux États-Unis, au Japon, au Canada, en Russie et à Singapour, enrichissant ainsi sa vision sur la gouvernance et la coopération internationale."
|
|
16
|
+
},
|
|
17
|
+
"career": {
|
|
18
|
+
"title": "Carrière",
|
|
19
|
+
"startYear": "1990",
|
|
20
|
+
"organization": "l’Assemblée nationale du Vietnam",
|
|
21
|
+
"description": "Ayant apporté ses services au Parlement dès",
|
|
22
|
+
"text-2": ", Mme Hà a consacré sa carrière au renforcement de l’efficacité et de l’engagement de ",
|
|
23
|
+
"currentRole": "Elle occupe actuellement le poste de vice-présidente du Bureau de l’Assemblée nationale (depuis mars 2025), où elle assure la coordination stratégique des activités relatives à la législation, la supervision et les relations internationales, en veillant au professionnalisme, à la transparence et en devenant un appui efficace à l’Assemblée nationale. De 2022 à 2025, elle a exercé les fonctions de vice-présidente de la commission des Relations extérieures, guidant la diplomatie parlementaire et supervisant les questions relatives à la politique étrangère et aux accords internationaux. Élue députée aux 14ᵉ (2016–2021) et 15ᵉ (2021–2026) législatures, elle a apporté son expertise administrative aux travaux législatifs, au contrôle parlementaire et au travail de circonscription. Auparavant, elle a été directrice des Relations extérieures du Bureau de l’Assemblée nationale, puis consul général adjoint du Vietnam à San Francisco (États-Unis), où elle a œuvré au renforcement des relations bilatérales et parlementaires ainsi qu’à l’élargissement du réseau de partenaires internationaux du Vietnam.",
|
|
24
|
+
"previousRoles1": "Tout au long de sa carrière, Mme Ha est fortement engagée dans la diplomatie parlementaire multilatérale. Elle a joué un rôle central en tant que Secrétaire générale adjointe du Comité national d’organisation de la 132ᵉ Assemblée de l’Union interparlementaire (UIP), tenue à Hanoï en 2015",
|
|
25
|
+
"previousRoles2": "Travaillant en étroite collaboration avec le Secrétariat de l’UIP, elle a contribué à faire de cet événement un sommet majeur réunissant les parlements venant de plus de 160 pays différents, aboutissant à l’adoption de la « Déclaration de Hanoï », qui a affirmé le rôle essentiel des parlements dans la mise en œuvre du Programme de développement durable à l’horizon 2030. Mme Hà a dirigé et accueilli de nombreuses réunions régionales de l’UIP et conférences thématiques au Vietnam, contribuant à rehausser le profil parlementaire du pays et à renforcer les liens entre les secrétariats parlementaires du monde entier.",
|
|
26
|
+
"previousRoles3": "participe régulièrement, en tant qu’intervenante, aux grands forums interparlementaires",
|
|
27
|
+
"she": "Elle",
|
|
28
|
+
"ipu": "UIP AIPA APPF"
|
|
29
|
+
},
|
|
30
|
+
"internationalEngagement": {
|
|
31
|
+
"title": "Engagement international",
|
|
32
|
+
"description": "Elle participe régulièrement, en tant qu’intervenante, aux grands forums interparlementaires tels que l’Union interparlementaire (UIP), l’Assemblée interparlementaire de l’ASEAN (AIPA) et le Forum parlementaire Asie-Pacifique (APPF). Au sein de ces institutions, elle s’est constamment fait la promotrice de l’égalité hommes-femmes et de la participation des femmes dans le milieu politique, des objectifs qui s’alignent avec la mission de l’ASGP.\n\n Maîtrisant couramment l’anglais et le russe, et disposant d’une bonne connaissance de la langue française, Mme Hà met ses compétences en leadership stratégique, en diplomatie multilatérale et en gestion organisationnelle au service de chacune de ses fonctions. Membre de l’Association des Secrétaires généraux des Parlements depuis 2025, elle demeure pleinement engagée à œuvrer sa mission:renforcer les institutions parlementaires et promouvoir les meilleures pratiques internationales."
|
|
33
|
+
},
|
|
34
|
+
"common": {
|
|
35
|
+
"language": "Langue",
|
|
36
|
+
"english": "Anglais",
|
|
37
|
+
"french": "Français"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type Language = "en" | "fr";
|
|
2
|
+
|
|
3
|
+
export interface LanguageData {
|
|
4
|
+
header: {
|
|
5
|
+
name: string;
|
|
6
|
+
candidacy: string;
|
|
7
|
+
currentRole: string;
|
|
8
|
+
readMoreButton: string;
|
|
9
|
+
};
|
|
10
|
+
about: {
|
|
11
|
+
title: string;
|
|
12
|
+
subtitle: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
education: {
|
|
16
|
+
title: string;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
career: {
|
|
20
|
+
title: string;
|
|
21
|
+
startYear: string;
|
|
22
|
+
organization: string;
|
|
23
|
+
description: string;
|
|
24
|
+
currentRole: string;
|
|
25
|
+
previousRoles: string[];
|
|
26
|
+
};
|
|
27
|
+
diplomacy: {
|
|
28
|
+
title: string;
|
|
29
|
+
ipuRole: string;
|
|
30
|
+
regionalMeetings: string;
|
|
31
|
+
};
|
|
32
|
+
internationalEngagement: {
|
|
33
|
+
title: string;
|
|
34
|
+
description: string;
|
|
35
|
+
forums: string[];
|
|
36
|
+
};
|
|
37
|
+
skills: {
|
|
38
|
+
title: string;
|
|
39
|
+
languages: string;
|
|
40
|
+
skills: string;
|
|
41
|
+
asgpCommitment: string;
|
|
42
|
+
};
|
|
43
|
+
common: {
|
|
44
|
+
language: string;
|
|
45
|
+
english: string;
|
|
46
|
+
french: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface LanguageContextType {
|
|
51
|
+
language: Language;
|
|
52
|
+
setLanguage: (language: Language) => void;
|
|
53
|
+
languageData: LanguageData | null;
|
|
54
|
+
setLanguageData: (data: LanguageData | null) => void;
|
|
55
|
+
isLoading: boolean;
|
|
56
|
+
switchLanguage: (newLang: Language) => void;
|
|
57
|
+
t: (key: string) => string;
|
|
58
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { FadeInMotionV2 } from "../../../FadeInMotion";
|
|
2
|
+
import BackgroundImage from "../../moleculars/BackgroundImage";
|
|
3
|
+
import { QuizSectionData } from ".";
|
|
4
|
+
import { generateRandomNumber, parse } from "@phygitallabs/helpers";
|
|
5
|
+
import { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
sectionData: QuizSectionData;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const ViewAnswer = (props: Props) => {
|
|
12
|
+
const { sectionData } = props;
|
|
13
|
+
const { backgrounds, messages, msg_images } = sectionData;
|
|
14
|
+
const bgLength = backgrounds?.value?.length;
|
|
15
|
+
const msgLength = messages?.value?.length;
|
|
16
|
+
const msgImgLength = msg_images?.value?.length;
|
|
17
|
+
const background = backgrounds?.value?.[generateRandomNumber(bgLength - 1)];
|
|
18
|
+
const msg = messages?.value?.[generateRandomNumber(msgLength - 1)];
|
|
19
|
+
const audioUrl = msg?.audio?.url;
|
|
20
|
+
const msg_img = msg_images?.value?.[generateRandomNumber(msgImgLength - 1)];
|
|
21
|
+
const msgImgUrl = msg_img?.url;
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<>
|
|
25
|
+
{audioUrl && <audio src={audioUrl} autoPlay loop />}
|
|
26
|
+
<FadeInMotionV2
|
|
27
|
+
className="flex w-full justify-center z-40 items-center"
|
|
28
|
+
isVisible={true}
|
|
29
|
+
duration={1}
|
|
30
|
+
delay={0.25}>
|
|
31
|
+
<BackgroundImage field={{ value: background }} />
|
|
32
|
+
{!msgImgUrl && (
|
|
33
|
+
<div className="to-transparent absolute bottom-0 left-0 z-10 h-full w-full bg-gradient-to-b from-white" />
|
|
34
|
+
)}
|
|
35
|
+
<FadeInMotionV2
|
|
36
|
+
className="flex w-full justify-center z-40 items-center absolute top-1/3 px-5 -translate-y-1/4 gap-20"
|
|
37
|
+
isVisible={true}
|
|
38
|
+
duration={1}
|
|
39
|
+
delay={0.5}>
|
|
40
|
+
{msgImgUrl && <Image width="auto" height="40svh" src={msgImgUrl} />}
|
|
41
|
+
<div>{parse(msg?.image?.htmlContent)}</div>
|
|
42
|
+
</FadeInMotionV2>
|
|
43
|
+
</FadeInMotionV2>
|
|
44
|
+
</>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default ViewAnswer;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { FadeInMotionV2 } from "../../../FadeInMotion";
|
|
2
|
+
import BaseButton from "../../atomics/BaseButton";
|
|
3
|
+
import BackgroundImage from "../../moleculars/BackgroundImage";
|
|
4
|
+
import { QuizSectionData } from ".";
|
|
5
|
+
import { parse } from "@phygitallabs/helpers";
|
|
6
|
+
import { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';
|
|
7
|
+
|
|
8
|
+
interface Props {
|
|
9
|
+
setIsViewAnswer: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
+
sectionData: QuizSectionData;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const ViewQuestion = (props: Props) => {
|
|
14
|
+
const { sectionData, setIsViewAnswer } = props;
|
|
15
|
+
const { question, cta_title, background_question, image } = sectionData;
|
|
16
|
+
const imgUrl = image?.value?.url;
|
|
17
|
+
const handleClick = () => setIsViewAnswer((pre) => !pre);
|
|
18
|
+
const isCtaTitleValid = typeof cta_title?.value === "string";
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<FadeInMotionV2
|
|
22
|
+
className="flex w-full justify-center z-40 items-center"
|
|
23
|
+
isVisible={true}
|
|
24
|
+
duration={1}
|
|
25
|
+
delay={0.25}
|
|
26
|
+
>
|
|
27
|
+
<BackgroundImage field={background_question} />
|
|
28
|
+
<FadeInMotionV2
|
|
29
|
+
className="flex w-full justify-center z-40 items-center px-5"
|
|
30
|
+
isVisible={true}
|
|
31
|
+
duration={1}
|
|
32
|
+
delay={0.5}
|
|
33
|
+
>
|
|
34
|
+
{imgUrl && <Image width="auto" height="40svh" src={imgUrl} />}
|
|
35
|
+
|
|
36
|
+
{parse(question?.value?.htmlContent)}
|
|
37
|
+
<BaseButton
|
|
38
|
+
onClick={handleClick}
|
|
39
|
+
className="bg-[#292929] uppercase text-white w-fit"
|
|
40
|
+
>
|
|
41
|
+
{isCtaTitleValid ? cta_title?.value : ""}
|
|
42
|
+
</BaseButton>
|
|
43
|
+
</FadeInMotionV2>
|
|
44
|
+
</FadeInMotionV2>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default ViewQuestion;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BaseSectionProps } from "../../../../models/base-section";
|
|
2
|
+
import SectionFullScreen from "../../../SectionFullScreen";
|
|
3
|
+
import { Field } from "../../types/base";
|
|
4
|
+
import { LexicalType, Media } from "../../../../models/general";
|
|
5
|
+
import ViewQuestion from "./ViewQuestion";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import ViewAnswer from "./ViewAnswer";
|
|
8
|
+
|
|
9
|
+
export interface MsgAudio {
|
|
10
|
+
image: LexicalType;
|
|
11
|
+
audio: Media;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface QuizSectionData {
|
|
15
|
+
question: Field<LexicalType>;
|
|
16
|
+
cta_title: Field<string>;
|
|
17
|
+
background_question: Field<Media>;
|
|
18
|
+
messages: Field<MsgAudio[]>;
|
|
19
|
+
msg_images: Field<Media[]>;
|
|
20
|
+
backgrounds: Field<Media[]>;
|
|
21
|
+
image: Field<Media>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface Props extends BaseSectionProps {
|
|
25
|
+
sectionData: QuizSectionData;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const QuizSection = (props: Props) => {
|
|
29
|
+
const { id, sectionData } = props;
|
|
30
|
+
const [isViewAnswer, setIsViewAnswer] = useState(false);
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<SectionFullScreen
|
|
34
|
+
className="flex flex-col items-center justify-center text-center gap-2 relative"
|
|
35
|
+
name={id}>
|
|
36
|
+
{isViewAnswer ? (
|
|
37
|
+
<ViewAnswer sectionData={sectionData} />
|
|
38
|
+
) : (
|
|
39
|
+
<ViewQuestion
|
|
40
|
+
setIsViewAnswer={setIsViewAnswer}
|
|
41
|
+
sectionData={sectionData}
|
|
42
|
+
/>
|
|
43
|
+
)}
|
|
44
|
+
</SectionFullScreen>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default QuizSection;
|
package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection1/TetCoverSection1.tsx
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseSectionProps } from "../../../../models/base-section";
|
|
2
|
+
import SectionFullScreen from "../../../SectionFullScreen";
|
|
3
|
+
import { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';
|
|
4
|
+
import type { Field } from "../../types/base";
|
|
5
|
+
|
|
6
|
+
interface TetCoverSection1Data {
|
|
7
|
+
background: Field<number>;
|
|
8
|
+
title: Field<string>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface TetCoverSection1Props extends BaseSectionProps {}
|
|
12
|
+
|
|
13
|
+
function TetCoverSection1({ sectionData, id }: TetCoverSection1Props) {
|
|
14
|
+
const data = sectionData as TetCoverSection1Data;
|
|
15
|
+
const { background, title } = data || {};
|
|
16
|
+
const titleValue = title?.value;
|
|
17
|
+
const backgroundValue = background?.value || 1;
|
|
18
|
+
const backgroundImage = `https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tet2025-cover-${backgroundValue}.png`;
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<SectionFullScreen className="max-h-full" name={id}>
|
|
22
|
+
<div className="flex flex-col items-center justify-center h-full relative">
|
|
23
|
+
<Image src={backgroundImage} alt="tet-2025" className="object-cover" />
|
|
24
|
+
{titleValue && (
|
|
25
|
+
<div className="absolute w-full top-0 left-0 z-10 h-[150px] flex items-center justify-center px-4 pt-8">
|
|
26
|
+
<p className="text-4xl line-clamp-3 font-bold text-black text-center">
|
|
27
|
+
{titleValue}
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
)}
|
|
31
|
+
</div>
|
|
32
|
+
</SectionFullScreen>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default TetCoverSection1;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./TetCoverSection1";
|
package/src/components/LandingPage/common/ui-kit/organisms/TetCoverSection2/TetCoverSection2.tsx
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseSectionProps } from "../../../../models/base-section";
|
|
2
|
+
import SectionFullScreen from "../../../SectionFullScreen";
|
|
3
|
+
import { ImageNomion as Image } from '@phygitallabs/core-ui/components/image-nomion';
|
|
4
|
+
import type { Field } from "../../types/base";
|
|
5
|
+
|
|
6
|
+
interface TetCoverSection2Data {
|
|
7
|
+
background: Field<number>;
|
|
8
|
+
title: Field<string>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface TetCoverSection2Props extends BaseSectionProps {}
|
|
12
|
+
|
|
13
|
+
function TetCoverSection2({ sectionData, id }: TetCoverSection2Props) {
|
|
14
|
+
const data = sectionData as TetCoverSection2Data;
|
|
15
|
+
const { title } = data;
|
|
16
|
+
const titleValue = title?.value || "Mừng năm 2025";
|
|
17
|
+
const backgroundImage = `https://s3-sgn10.fptcloud.com/phygix-assets/nomion/static/tet-2025/tet2025-cover-5.png`;
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<SectionFullScreen className="max-h-full" name={id}>
|
|
21
|
+
<div className="flex flex-col items-center justify-center h-full relative">
|
|
22
|
+
<Image src={backgroundImage} alt="tet-2025" className="object-cover" />
|
|
23
|
+
<div className="absolute w-full top-[60px] left-0 z-10 h-[150px] flex items-center justify-center px-4 pt-8">
|
|
24
|
+
<p className="text-4xl line-clamp-3 font-medium text-[#B52E10] text-center">
|
|
25
|
+
{titleValue}
|
|
26
|
+
</p>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</SectionFullScreen>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default TetCoverSection2;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./TetCoverSection2";
|