@e-burgos/tucu-ui 2.0.11 → 2.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/CHANGELOG.md +141 -0
- package/README.md +43 -1374
- package/__tests__/__mocks__/lucide-react.d.ts +129 -0
- package/__tests__/setup.d.ts +0 -0
- package/components/layouts/macos-layout/index.d.ts +5 -3
- package/components/layouts/macos-layout/macos-sonoma-navbar-layout.d.ts +14 -0
- package/components/layouts/macos-layout/macos-tahoe-navbar-layout.d.ts +14 -0
- package/components/layouts/menus/horizontal-nav-menu.d.ts +3 -1
- package/demo/pages/index.d.ts +1 -0
- package/demo/pages/mcp/MCPServerPage.d.ts +2 -0
- package/demo/pages/mcp/mcp-sections/ClientConfigSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/DeploymentSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/InstallationSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/OverviewSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/PromptsSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/ResourcesSection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/SecuritySection.d.ts +3 -0
- package/demo/pages/mcp/mcp-sections/ToolsSection.d.ts +3 -0
- package/documentation/{APIReferenceSection-D-0yFcGB.js → APIReferenceSection-BsqCggUK.js} +1 -1
- package/documentation/{APIReferenceSection-atXRbZ3K.js → APIReferenceSection-CSai-lHk.js} +1 -1
- package/documentation/{ActiveLinkSection-DzIK-w3U.js → ActiveLinkSection-DjsyYB8v.js} +1 -1
- package/documentation/{ActiveLinkSection-DfDLkxts.js → ActiveLinkSection-jIa61vwi.js} +1 -1
- package/documentation/{AdvancedColorSystemSection-Bf729JeV.js → AdvancedColorSystemSection-DY5kFbFf.js} +1 -1
- package/documentation/{AdvancedColorSystemSection-BhT4nZB1.js → AdvancedColorSystemSection-Kp4a4OHT.js} +1 -1
- package/documentation/{AdvancedFeaturesSection-BFMW48vw.js → AdvancedFeaturesSection-BgH778bm.js} +1 -1
- package/documentation/{AdvancedFeaturesSection-ChbswzIX.js → AdvancedFeaturesSection-BlEO1uKj.js} +1 -1
- package/documentation/{AdvancedFeaturesSection-BKGD3z9z.js → AdvancedFeaturesSection-CJs5ZQn0.js} +1 -1
- package/documentation/{AdvancedFeaturesSection-Dz1_1lrC.js → AdvancedFeaturesSection-wDbzj31n.js} +1 -1
- package/documentation/{AlertSection-PCql-dTz.js → AlertSection-B1i-mqCZ.js} +1 -1
- package/documentation/{AlertSection-cU2Ed_fE.js → AlertSection-BspGAW1M.js} +1 -1
- package/documentation/{AnchorLinkSection-DA-Q9PB2.js → AnchorLinkSection-C1wIGhap.js} +1 -1
- package/documentation/{AnchorLinkSection-Cs8t_LkK.js → AnchorLinkSection-CRdEDT5s.js} +1 -1
- package/documentation/{ArchitecturalPatternsComparisonSection-Ckw-hj50.js → ArchitecturalPatternsComparisonSection-Sf-bvy33.js} +1 -1
- package/documentation/{ArchitecturalPatternsComparisonSection-l5Wrr7He.js → ArchitecturalPatternsComparisonSection-zuutXOaz.js} +1 -1
- package/documentation/{ArchitectureOverviewSection-BXXzg8Af.js → ArchitectureOverviewSection--m4et2xQ.js} +1 -1
- package/documentation/{ArchitectureOverviewSection-2GHOBuT3.js → ArchitectureOverviewSection-BNTkZ9pG.js} +1 -1
- package/documentation/{AreaChartSection-DHp2cGnI.js → AreaChartSection-BcQihBWN.js} +1 -1
- package/documentation/{AreaChartSection-B1G50vNb.js → AreaChartSection-Cl61OJhw.js} +1 -1
- package/documentation/{AuthorCardSection-DKWXsN5r.js → AuthorCardSection-BhVNCAg2.js} +1 -1
- package/documentation/{AuthorCardSection-DD1rPOTi.js → AuthorCardSection-CLommrNn.js} +1 -1
- package/documentation/{AvatarSection-D6q5cCro.js → AvatarSection-B_K97AUc.js} +1 -1
- package/documentation/{AvatarSection-CEy3tSFZ.js → AvatarSection-ghx2Hdtx.js} +1 -1
- package/documentation/BackgroundsSection-BvORWpfY.js +6 -0
- package/documentation/{BackgroundsSection-ml2K7sVT.js → BackgroundsSection-Cgjhw6BR.js} +12 -14
- package/documentation/{BadgeSection-D87SEfxH.js → BadgeSection-BKL7OzXP.js} +1 -1
- package/documentation/{BadgeSection-Nan3Lkev.js → BadgeSection-Ck4SCu_x.js} +1 -1
- package/documentation/{BarChartSection-kjXT_9gz.js → BarChartSection-BOyuN-eY.js} +1 -1
- package/documentation/{BarChartSection-CDVExS5W.js → BarChartSection-b03WjDmh.js} +1 -1
- package/documentation/{BasicTableSection-6_00z3Ow.js → BasicTableSection-CRHzSccH.js} +1 -1
- package/documentation/{BasicTableSection-BZZ4LZPr.js → BasicTableSection-CTkVC_ZF.js} +1 -1
- package/documentation/{BasicUsageSection-C0jPVah2.js → BasicUsageSection-DAQXomgL.js} +1 -1
- package/documentation/{BasicUsageSection-DxI1q1Q2.js → BasicUsageSection-DRtyl0DW.js} +1 -1
- package/documentation/{BestPracticesSection-DFD5nxVx.js → BestPracticesSection-0o5pXtB_.js} +1 -1
- package/documentation/{BestPracticesSection-Dk8CWxop.js → BestPracticesSection-BQd9D5IR.js} +1 -1
- package/documentation/{BestPracticesSection-BgPOX_gI.js → BestPracticesSection-C2qWSaaK.js} +1 -1
- package/documentation/{BestPracticesSection-CJYUqkS3.js → BestPracticesSection-CErhrvMA.js} +1 -1
- package/documentation/{BestPracticesSection-DjiIOPo0.js → BestPracticesSection-Csdk_trd.js} +1 -1
- package/documentation/{BestPracticesSection-DCIOp37N.js → BestPracticesSection-CtRRWADg.js} +1 -1
- package/documentation/{BestPracticesSection-CDbUzkng.js → BestPracticesSection-D3qcavnw.js} +1 -1
- package/documentation/{BestPracticesSection-BR4dbFpB.js → BestPracticesSection-DXdC__GI.js} +1 -1
- package/documentation/{BestPracticesSection-CxMpa6p1.js → BestPracticesSection-DZOYBU7b.js} +1 -1
- package/documentation/{BestPracticesSection-CSnNKGOl.js → BestPracticesSection-DjfYNmcE.js} +1 -1
- package/documentation/{BestPracticesSection-Bi5xrYmy.js → BestPracticesSection-DjhMum8X.js} +1 -1
- package/documentation/{BestPracticesSection-p6yKTAKz.js → BestPracticesSection-DmYdH0Lr.js} +1 -1
- package/documentation/{BestPracticesSection-LF77lB2o.js → BestPracticesSection-PTedcEGr.js} +1 -1
- package/documentation/{BestPracticesSection-CKgzm1wF.js → BestPracticesSection-gfNzvO5h.js} +1 -1
- package/documentation/{BorderRadiusSection-zrkMx4HO.js → BorderRadiusSection-6DM9OQEX.js} +1 -1
- package/documentation/{BorderRadiusSection--NQ7VUFN.js → BorderRadiusSection-Ca_L-a9T.js} +1 -1
- package/documentation/{ButtonDripSection-8b--VA4e.js → ButtonDripSection-BX9PrDGJ.js} +1 -1
- package/documentation/{ButtonDripSection-DDKo9R2R.js → ButtonDripSection-BydjDqT3.js} +1 -1
- package/documentation/{ButtonLoaderSection-CBA_ZHhE.js → ButtonLoaderSection-B_zzpnWT.js} +1 -1
- package/documentation/{ButtonLoaderSection-CLz_h6dG.js → ButtonLoaderSection-C7q-Q_Rl.js} +1 -1
- package/documentation/{CardContainerSection-CvmjXgXA.js → CardContainerSection-CB8gfrk-.js} +1 -1
- package/documentation/{CardContainerSection-CiUChb20.js → CardContainerSection-CxUqmpBE.js} +1 -1
- package/documentation/{CardSection-CjX674hF.js → CardSection-BltwvWgr.js} +1 -1
- package/documentation/{CardSection-CNAxXZ-P.js → CardSection-CTC1lEVA.js} +1 -1
- package/documentation/{CardTitleSection-B_J-KuJt.js → CardTitleSection-BRAbu24w.js} +1 -1
- package/documentation/{CardTitleSection-DPb1vFGs.js → CardTitleSection-C01d_otP.js} +1 -1
- package/documentation/{CarouselCardsSection-BZEnKwjk.js → CarouselCardsSection-DB1NgCPD.js} +1 -1
- package/documentation/{CarouselCardsSection-Cb0YzM4g.js → CarouselCardsSection-DPbd5az1.js} +1 -1
- package/documentation/{CarouselImageSection-DOlEyXWk.js → CarouselImageSection-BuE8RqJV.js} +1 -1
- package/documentation/{CarouselImageSection-CvH76d92.js → CarouselImageSection-CADvEuzg.js} +1 -1
- package/documentation/{CarouselSection-DFowJi8B.js → CarouselSection-BowB26YN.js} +1 -1
- package/documentation/{CarouselSection-BMY8qfVw.js → CarouselSection-DoE9Sihq.js} +1 -1
- package/documentation/{CheckboxSection-CplIdb6X.js → CheckboxSection-Bm1N-M9S.js} +1 -1
- package/documentation/{CheckboxSection-BH4VhJEm.js → CheckboxSection-CeOKh_Ny.js} +1 -1
- package/documentation/ClientConfigSection-ChMRSm89.js +39 -0
- package/documentation/ClientConfigSection-D6XADPTl.js +126 -0
- package/documentation/{CodeExamplesSection-Uzy_nx_w.js → CodeExamplesSection-C2fniIMB.js} +1 -1
- package/documentation/{CodeExamplesSection-CXVbcTuR.js → CodeExamplesSection-CL3IS97n.js} +1 -1
- package/documentation/{CoinCardSection-CYQiTXMY.js → CoinCardSection-BDTPOvtF.js} +1 -1
- package/documentation/{CoinCardSection-BqzqGzNX.js → CoinCardSection-h7gW1-1T.js} +1 -1
- package/documentation/{CoinInfoCardSection-D17ShK89.js → CoinInfoCardSection-CZXa9o2A.js} +1 -1
- package/documentation/{CoinInfoCardSection-BraT4PKL.js → CoinInfoCardSection-DZ3A8NMs.js} +1 -1
- package/documentation/{CoinListBoxSection-DIkN2YGf.js → CoinListBoxSection-DHUYaMv5.js} +1 -1
- package/documentation/{CoinListBoxSection-3HDvscAm.js → CoinListBoxSection-PS0iIX1D.js} +1 -1
- package/documentation/{CollapseSection-DTRVS-NX.js → CollapseSection-CXdqA6Ut.js} +1 -1
- package/documentation/{CollapseSection-Bu-jCulM.js → CollapseSection-CbYzk_xx.js} +1 -1
- package/documentation/{CollectionCardSection-CTopH3nY.js → CollectionCardSection-CvpIcpZU.js} +1 -1
- package/documentation/{CollectionCardSection-B1wa7op1.js → CollectionCardSection-V2gjtfXt.js} +1 -1
- package/documentation/{CollectionSelectListSection-DS58qWW3.js → CollectionSelectListSection-Cr3wbLOM.js} +1 -1
- package/documentation/{CollectionSelectListSection-dVI4VFBg.js → CollectionSelectListSection-Do4CAdna.js} +1 -1
- package/documentation/{ColorCustomizationSection-Baixq5Ip.js → ColorCustomizationSection-BbFy47YA.js} +1 -1
- package/documentation/{ColorCustomizationSection-YYlI9A1C.js → ColorCustomizationSection-D0b36MWl.js} +1 -1
- package/documentation/{ColorSystemSection-CnTw7ZkK.js → ColorSystemSection-CwiX0hdz.js} +1 -1
- package/documentation/{ColorSystemSection-BtlskPJf.js → ColorSystemSection-DICY1oaG.js} +1 -1
- package/documentation/{CommonErrorsSection-QlP5fF-A.js → CommonErrorsSection-AoMPw2jT.js} +1 -1
- package/documentation/{CommonErrorsSection-L1rlea_g.js → CommonErrorsSection-CmXpo6ir.js} +1 -1
- package/documentation/{ComponentAnatomySection-DJZZE1hI.js → ComponentAnatomySection-CgAPdVTb.js} +1 -1
- package/documentation/{ComponentAnatomySection-BxcXCnq8.js → ComponentAnatomySection-Don-ymDC.js} +1 -1
- package/documentation/{ComponentStatusSection-BYXnGGLk.js → ComponentStatusSection-DPf7CRlW.js} +1 -1
- package/documentation/{ComponentStatusSection-botHuCNS.js → ComponentStatusSection-DkezShak.js} +1 -1
- package/documentation/{ComposedChartSection-CUShZ_0K.js → ComposedChartSection-CBsv-jDm.js} +1 -1
- package/documentation/{ComposedChartSection-Dw7y3z1I.js → ComposedChartSection-X4NGeCGt.js} +1 -1
- package/documentation/{CurrencySwapIconsSection-BrzmuJ2v.js → CurrencySwapIconsSection-BepWWiI1.js} +1 -1
- package/documentation/{CurrencySwapIconsSection-G1PKgwmJ.js → CurrencySwapIconsSection-CZ1XvUi-.js} +1 -1
- package/documentation/{CustomColorPaletteSection-B7Vi4tu_.js → CustomColorPaletteSection-BSJoN737.js} +1 -1
- package/documentation/{CustomColorPaletteSection-DrQhXtL8.js → CustomColorPaletteSection-UCjiV28T.js} +1 -1
- package/documentation/{CustomIconsSection-B-jyDcJY.js → CustomIconsSection-CfNuFqVd.js} +1 -1
- package/documentation/{CustomIconsSection-CA138JJG.js → CustomIconsSection-DGOVttgE.js} +1 -1
- package/documentation/{DefiAppLogoSection-CQSUi_EO.js → DefiAppLogoSection-BaIRfLgN.js} +1 -1
- package/documentation/{DefiAppLogoSection-D1NyWvoG.js → DefiAppLogoSection-LFPk9cWj.js} +1 -1
- package/documentation/DeploymentSection-9_BZ7p6z.js +36 -0
- package/documentation/DeploymentSection-QTyunn_z.js +136 -0
- package/documentation/{DesignPrinciplesSection-uZtMtWe-.js → DesignPrinciplesSection-COXiEWqN.js} +1 -1
- package/documentation/{DesignPrinciplesSection-uWTGLlz4.js → DesignPrinciplesSection-D-FA-3iG.js} +1 -1
- package/documentation/{DrawerSection-Ds5Oc88-.js → DrawerSection-C5265sI8.js} +1 -1
- package/documentation/{DrawerSection-Bu-pp5NC.js → DrawerSection-Dw0KW8Qq.js} +1 -1
- package/documentation/{DynamicRoutesSection-Dbi8goa2.js → DynamicRoutesSection-BTSGY2NB.js} +1 -1
- package/documentation/{DynamicRoutesSection-CqEWf50D.js → DynamicRoutesSection-CAgwdtX_.js} +1 -1
- package/documentation/{FileInputSection-FoXDZNUE.js → FileInputSection-CiJllWQN.js} +1 -1
- package/documentation/{FileInputSection-Cj_JBMzc.js → FileInputSection-DFrBCrfW.js} +1 -1
- package/documentation/{FileStructureSection-B5V2bYDr.js → FileStructureSection-BY6_E09m.js} +1 -1
- package/documentation/{FileStructureSection-DcF6kqva.js → FileStructureSection-CjWuiRhL.js} +1 -1
- package/documentation/{FormComponentsSection-BZD-gsSe.js → FormComponentsSection-BvlPSmVP.js} +1 -1
- package/documentation/{FormComponentsSection-Di5UuXlL.js → FormComponentsSection-C-8-Ifdf.js} +1 -1
- package/documentation/{FormMethodsSection-BvgQzx8p.js → FormMethodsSection-7lWjqEpP.js} +1 -1
- package/documentation/{FormMethodsSection-EpCyOiml.js → FormMethodsSection-GRov9bTj.js} +1 -1
- package/documentation/{HamburgerSection-DRj8TUsp.js → HamburgerSection-Ca0rA8w8.js} +1 -1
- package/documentation/{HamburgerSection-dEpg89yn.js → HamburgerSection-D4CBi0uh.js} +1 -1
- package/documentation/{HookCategoriesSection-D7eQRtCp.js → HookCategoriesSection-C4IpQtMI.js} +1 -1
- package/documentation/{HookCategoriesSection-B9bwaXr8.js → HookCategoriesSection-aPC8igOJ.js} +1 -1
- package/documentation/{HookDocumentationSection-Baawctkv.js → HookDocumentationSection-CJusmRuu.js} +1 -1
- package/documentation/{HookDocumentationSection-BHs71TyY.js → HookDocumentationSection-DtJ-7xkX.js} +1 -1
- package/documentation/{HookFeaturesSection-CvoRWckR.js → HookFeaturesSection-BUbn6rmV.js} +1 -1
- package/documentation/{HookFeaturesSection-C30Q6_Md.js → HookFeaturesSection-DNqjSrJZ.js} +1 -1
- package/documentation/{IconArchitectureSection-DJaQZCiw.js → IconArchitectureSection-CGks8Mnn.js} +1 -1
- package/documentation/{IconArchitectureSection-DSKUvUAF.js → IconArchitectureSection-Di4mbvYN.js} +1 -1
- package/documentation/{IconSizingGuideSection-Nktvsp16.js → IconSizingGuideSection-BvxFBJvT.js} +1 -1
- package/documentation/{IconSizingGuideSection-DR-890fr.js → IconSizingGuideSection-Sk9RQPHE.js} +1 -1
- package/documentation/{IconSystemAPISection-Dsg2l2Pe.js → IconSystemAPISection-9gPzoVbb.js} +1 -1
- package/documentation/{IconSystemAPISection-BWnG2nl0.js → IconSystemAPISection-CLQ3AG66.js} +1 -1
- package/documentation/{IconSystemBenefitsSection-Dwe4wlPF.js → IconSystemBenefitsSection-BT_i9cRU.js} +1 -1
- package/documentation/{IconSystemBenefitsSection-Drm0OXrA.js → IconSystemBenefitsSection-cwhAboY_.js} +1 -1
- package/documentation/{ImageSection-BSsfirP2.js → ImageSection-DElzEj6Q.js} +1 -1
- package/documentation/{ImageSection-mNyUYSpC.js → ImageSection-JveC2Eht.js} +1 -1
- package/documentation/{ImplementationExamplesSection-C7b93cmS.js → ImplementationExamplesSection-C1lUPVd0.js} +1 -1
- package/documentation/{ImplementationExamplesSection-uBcrCqN-.js → ImplementationExamplesSection-DiJd_9HR.js} +1 -1
- package/documentation/{ImplementationGuidelinesSection-ofXFqxXz.js → ImplementationGuidelinesSection-BBhPO-Su.js} +1 -1
- package/documentation/{ImplementationGuidelinesSection-Db4WawJm.js → ImplementationGuidelinesSection-BKpRUp8w.js} +1 -1
- package/documentation/{ImplementationStatusSection-Dx5HVl6S.js → ImplementationStatusSection-BLVMSEhG.js} +1 -1
- package/documentation/{ImplementationStatusSection-DIC4prgh.js → ImplementationStatusSection-CYFm4ISZ.js} +1 -1
- package/documentation/{ImplementedFeaturesSection-DU4h-rtj.js → ImplementedFeaturesSection--ohwbhrd.js} +1 -1
- package/documentation/{ImplementedFeaturesSection-BLVqF9zz.js → ImplementedFeaturesSection-BH06Y7ra.js} +1 -1
- package/documentation/{InfoCardSection-BZQCI6lH.js → InfoCardSection-D0n3IKYd.js} +1 -1
- package/documentation/{InfoCardSection-COui0eJ9.js → InfoCardSection-pn4W_lgj.js} +1 -1
- package/documentation/{InputSearcherSection-BHmasUtU.js → InputSearcherSection-BrRd12x4.js} +1 -1
- package/documentation/{InputSearcherSection-B7TecgvV.js → InputSearcherSection-DBH9kL_0.js} +1 -1
- package/documentation/{InputSection-D5v6_90Q.js → InputSection-BCCZhGZV.js} +1 -1
- package/documentation/{InputSection-CwVgbFkV.js → InputSection-D1l3Qgd4.js} +1 -1
- package/documentation/InstallationSection-Dbq9VVHa.js +22 -0
- package/documentation/InstallationSection-aABWM0jE.js +125 -0
- package/documentation/{KeyValueRowSection-BpUw-iFf.js → KeyValueRowSection-BvQJxi6p.js} +1 -1
- package/documentation/{KeyValueRowSection-BIaGvJJR.js → KeyValueRowSection-CTsV667A.js} +1 -1
- package/documentation/{KeyboardNavigationSection-Cq0rQMvL.js → KeyboardNavigationSection-BkUHs0rS.js} +1 -1
- package/documentation/{KeyboardNavigationSection-L2ARF25K.js → KeyboardNavigationSection-C7I3pOM3.js} +1 -1
- package/documentation/{LayoutPrinciplesSection-BaGAYyM4.js → LayoutPrinciplesSection-BGwiHG-J.js} +1 -1
- package/documentation/{LayoutPrinciplesSection-DIHhrL8w.js → LayoutPrinciplesSection-BKnP77LX.js} +1 -1
- package/documentation/{LayoutTypesSection-CtvHSbiu.js → LayoutTypesSection-BVGvqfnO.js} +1 -1
- package/documentation/{LayoutTypesSection-D5fWevL5.js → LayoutTypesSection-CRx7XS_d.js} +97 -37
- package/documentation/{LineChartSection-DykwK2G5.js → LineChartSection-BD-gRg7P.js} +1 -1
- package/documentation/{LineChartSection-DN4zy5UM.js → LineChartSection-vBfTY7os.js} +1 -1
- package/documentation/{ListContainerSection-CNdIMVPD.js → ListContainerSection-BRYroZcs.js} +23 -8
- package/documentation/{ListContainerSection-6Kb0Eyvz.js → ListContainerSection-CZRk2YlI.js} +1 -1
- package/documentation/{ListItemSection-SGEMovLU.js → ListItemSection-CkDB2F-d.js} +1 -1
- package/documentation/{ListItemSection-CDiUyEEa.js → ListItemSection-Cqk5vWav.js} +1 -1
- package/documentation/{LiveDemoSection-DOq43-14.js → LiveDemoSection-DoAzFVlP.js} +1 -1
- package/documentation/{LiveDemoSection-B25zuxk-.js → LiveDemoSection-mmMg2Dho.js} +1 -1
- package/documentation/{LiveDemonstrationsSection-C4UcxA40.js → LiveDemonstrationsSection-BvsFlesQ.js} +1 -1
- package/documentation/{LiveDemonstrationsSection-BKjaRELq.js → LiveDemonstrationsSection-Dg4rzCys.js} +1 -1
- package/documentation/{LivePriceFeedSection-BefdnOKq.js → LivePriceFeedSection-BKDFj31H.js} +1 -1
- package/documentation/{LivePriceFeedSection-DEOXLnRs.js → LivePriceFeedSection-C_6AOF62.js} +1 -1
- package/documentation/{LoaderSection-BZvT07RC.js → LoaderSection-C7PPbO0x.js} +1 -1
- package/documentation/{LoaderSection-xaMFxvDA.js → LoaderSection-DdIGjFqh.js} +1 -1
- package/documentation/{LogoSection-Dd5fUaTc.js → LogoSection-Cxz7mIhJ.js} +1 -1
- package/documentation/{LogoSection-ahbLL3rC.js → LogoSection-Du6WZHrv.js} +1 -1
- package/documentation/{LucideIconsSection-BrrSM3Gx.js → LucideIconsSection-BFj8rXHy.js} +1 -1
- package/documentation/{LucideIconsSection-BZDRn21n.js → LucideIconsSection-CWdQXv9Y.js} +1 -1
- package/documentation/{MFESupportSection-Cnqx9zly.js → MFESupportSection-CCPKOHHI.js} +4 -4
- package/documentation/{MFESupportSection-Y46AZL5B.js → MFESupportSection-goPWJiZ2.js} +2 -2
- package/documentation/{MacOSBackgroundsSection-Dj11FbQr.js → MacOSBackgroundsSection-DmQN4D1v.js} +1 -1
- package/documentation/{MacOSBackgroundsSection-BZX6uCBD.js → MacOSBackgroundsSection-eovVlV69.js} +1 -1
- package/documentation/{MacOSColorsSection-CjuG1kI6.js → MacOSColorsSection-B1ADRYPx.js} +1 -1
- package/documentation/{MacOSColorsSection-DGPBZ1Sb.js → MacOSColorsSection-CUnbKwzK.js} +1 -1
- package/documentation/{MacOSCommandPaletteSection-B6xGLV1Q.js → MacOSCommandPaletteSection-BpDCUopp.js} +1 -1
- package/documentation/{MacOSCommandPaletteSection-ClWl0xxk.js → MacOSCommandPaletteSection-Do7Ycmk4.js} +1 -1
- package/documentation/{MacOSMaterialsSection-CFHz_vYl.js → MacOSMaterialsSection-BTf6kjqF.js} +1 -1
- package/documentation/{MacOSMaterialsSection-QdDsz0mK.js → MacOSMaterialsSection-DmN_ldze.js} +1 -1
- package/documentation/{MacOSNotificationBannerSection-D9se5v0x.js → MacOSNotificationBannerSection-Cidpdw5y.js} +1 -1
- package/documentation/{MacOSNotificationBannerSection-Bo1oagT9.js → MacOSNotificationBannerSection-WH_xoQJ_.js} +1 -1
- package/documentation/{MacOSPopoverSection-CkT1ssbc.js → MacOSPopoverSection-BgfEO_ue.js} +1 -1
- package/documentation/{MacOSPopoverSection-CHmPgYov.js → MacOSPopoverSection-DxYMepkq.js} +1 -1
- package/documentation/{MacOSSearchBarSection-Bq6w8HML.js → MacOSSearchBarSection-BIj4VDAF.js} +1 -1
- package/documentation/{MacOSSearchBarSection-BsqmjAJO.js → MacOSSearchBarSection-DJkOkd5a.js} +1 -1
- package/documentation/{MacOSSegmentedControlSection-ls5gxPUT.js → MacOSSegmentedControlSection-MP0t6IVK.js} +1 -1
- package/documentation/{MacOSSegmentedControlSection-BgsDLI96.js → MacOSSegmentedControlSection-QiYVHMXu.js} +1 -1
- package/documentation/{MacOSSidebarSection-ZtF4anKi.js → MacOSSidebarSection-BVOggoKd.js} +1 -1
- package/documentation/{MacOSSidebarSection-CiN4hOs1.js → MacOSSidebarSection-CBXzYpn3.js} +1 -1
- package/documentation/{MacOSTahoeSection-mC8_isTc.js → MacOSTahoeSection-BHi6_fEe.js} +1 -1
- package/documentation/{MacOSTahoeSection-D_vk1Evv.js → MacOSTahoeSection-C8sa1EH9.js} +1 -1
- package/documentation/{MacOSTextStylesSection-D8sjMitr.js → MacOSTextStylesSection-COwMJgHQ.js} +1 -1
- package/documentation/{MacOSTextStylesSection-imhQhiIB.js → MacOSTextStylesSection-b7bS3pVS.js} +1 -1
- package/documentation/{MacOSToolbarSection-DfFGfIYr.js → MacOSToolbarSection-BmjCDkxq.js} +1 -1
- package/documentation/{MacOSToolbarSection-BZe5dcqG.js → MacOSToolbarSection-VjGjxjYh.js} +1 -1
- package/documentation/{MacOSWidgetSection-DDArll2O.js → MacOSWidgetSection-CtxKuq9A.js} +1 -1
- package/documentation/{MacOSWidgetSection-qJYsLW4w.js → MacOSWidgetSection-RgWZTriK.js} +1 -1
- package/documentation/{MacOSWindowSection-CNCeYJ4q.js → MacOSWindowSection-7jn163jK.js} +1 -1
- package/documentation/{MacOSWindowSection-BXRF47Xp.js → MacOSWindowSection-COEicJkG.js} +1 -1
- package/documentation/{MenuItemsGuideSection-C3s0ZKp_.js → MenuItemsGuideSection-BhXdOp3B.js} +1 -1
- package/documentation/{MenuItemsGuideSection-D9Rppez7.js → MenuItemsGuideSection-D4Vixtfu.js} +1 -1
- package/documentation/{ModalSection-BhxfjESN.js → ModalSection-CRbhTn6C.js} +1 -1
- package/documentation/{ModalSection-7_9nd9h1.js → ModalSection-CzTpRzIr.js} +1 -1
- package/documentation/{NFTGridSection-CiMimQqR.js → NFTGridSection-BtMYhuIT.js} +1 -1
- package/documentation/{NFTGridSection-DyDP-kAx.js → NFTGridSection-NaG2pm8X.js} +1 -1
- package/documentation/{NestedRoutesSection-BfiOJSNr.js → NestedRoutesSection-B7FQ1voS.js} +1 -1
- package/documentation/{NestedRoutesSection-B3NOQ7H9.js → NestedRoutesSection-DG4nDJ4M.js} +1 -1
- package/documentation/{NotificationCardSection-CyqVwqlr.js → NotificationCardSection-CjAaXpIP.js} +1 -1
- package/documentation/{NotificationCardSection-C0ij0FZI.js → NotificationCardSection-DAHSqThI.js} +1 -1
- package/documentation/OverviewSection-C9IKm16J.js +149 -0
- package/documentation/OverviewSection-DS0HJ3gv.js +21 -0
- package/documentation/{PaginationSection-CyKsKgsQ.js → PaginationSection-BkFJ3qjK.js} +9 -3
- package/documentation/{PaginationSection-DlMA8zm0.js → PaginationSection-Dw9Z3hs7.js} +1 -1
- package/documentation/{PanelActionCardSection-DsRYmx7a.js → PanelActionCardSection-BqlLDR77.js} +1 -1
- package/documentation/{PanelActionCardSection-BEW1jxMc.js → PanelActionCardSection-DSiUnMDQ.js} +1 -1
- package/documentation/{PanelCardSection-GTYF-40N.js → PanelCardSection-BEZwIFvP.js} +1 -1
- package/documentation/{PanelCardSection-BA0dNZBU.js → PanelCardSection-Dy-OKP2j.js} +1 -1
- package/documentation/{ParamTabSection-DhMnwgtB.js → ParamTabSection-CqTaSIFt.js} +1 -1
- package/documentation/{ParamTabSection-BeS0YAiS.js → ParamTabSection-mnUOfCfZ.js} +1 -1
- package/documentation/{PieChartSection-vp248RVf.js → PieChartSection-Dbvkn6Lg.js} +1 -1
- package/documentation/{PieChartSection-HK1lUzR4.js → PieChartSection-nX02gUva.js} +1 -1
- package/documentation/{PinCodeSection-DY5sV9tT.js → PinCodeSection-B7VEemec.js} +1 -1
- package/documentation/{PinCodeSection-BRaBhpIp.js → PinCodeSection-BsN_uHQl.js} +1 -1
- package/documentation/{ProgressbarSection-ByqSgYbQ.js → ProgressbarSection-BPMz8--Q.js} +1 -1
- package/documentation/{ProgressbarSection-BFO12wVG.js → ProgressbarSection-fDKtojH9.js} +1 -1
- package/documentation/PromptsSection-BfXgGJSk.js +118 -0
- package/documentation/PromptsSection-CK1zcA35.js +18 -0
- package/documentation/{RadarChartSection-Bkg1mcQW.js → RadarChartSection-DBn1AgS6.js} +1 -1
- package/documentation/{RadarChartSection-CaAgWjU1.js → RadarChartSection-DZZabB3v.js} +1 -1
- package/documentation/{RadioGroupSection-Dr20Esct.js → RadioGroupSection-2Amlrp86.js} +1 -1
- package/documentation/{RadioGroupSection-Db4dih50.js → RadioGroupSection-DHdgEAsy.js} +17 -17
- package/documentation/{RadioSection-BewKd6Cu.js → RadioSection-CLsMmS66.js} +1 -1
- package/documentation/{RadioSection-CTdsPiv3.js → RadioSection-Ct0Rnvxb.js} +1 -1
- package/documentation/ResourcesSection-Blr4vejt.js +119 -0
- package/documentation/ResourcesSection-DWNWZDXm.js +13 -0
- package/documentation/{RevealContentSection-BI7veCWN.js → RevealContentSection-Cg240M1j.js} +1 -1
- package/documentation/{RevealContentSection-BEtqdh2z.js → RevealContentSection-D5TIReEX.js} +1 -1
- package/documentation/{RouteConfigurationSection-BwWi-YdG.js → RouteConfigurationSection-B0i47J8a.js} +4 -4
- package/documentation/{RouteConfigurationSection-Dn51fITk.js → RouteConfigurationSection-CxIHsQsA.js} +1 -1
- package/documentation/{ScrollToTopSection-IiOq9uyv.js → ScrollToTopSection-CPxaTHLb.js} +1 -1
- package/documentation/{ScrollToTopSection-El0Oj80E.js → ScrollToTopSection-DaOUizBP.js} +1 -1
- package/documentation/{ScrollbarSection-D2xX8I_t.js → ScrollbarSection-DiVIYCR7.js} +1 -1
- package/documentation/{ScrollbarSection--Mi5OoqC.js → ScrollbarSection-dZyAB4Df.js} +1 -1
- package/documentation/SecuritySection-DwWuNyVE.js +164 -0
- package/documentation/SecuritySection-Dwrce-9V.js +27 -0
- package/documentation/{SelectSection-CDKlo64x.js → SelectSection-D43x2kzU.js} +1 -1
- package/documentation/{SelectSection-DZbzNNto.js → SelectSection-fuQbmFUC.js} +1 -1
- package/documentation/{SettingsPanelSection-5F7Ejvta.js → SettingsPanelSection-CrfKy695.js} +1 -1
- package/documentation/{SettingsPanelSection-DNFBwdbu.js → SettingsPanelSection-CuSRKd5_.js} +1 -1
- package/documentation/{ShadowsSection-CC31G_pA.js → ShadowsSection-Dtwxathf.js} +1 -1
- package/documentation/{ShadowsSection-CjDQWjSH.js → ShadowsSection-oVzOFQ-e.js} +1 -1
- package/documentation/{SidebarMenuSection-BqAlCKVK.js → SidebarMenuSection-BS2xbVTs.js} +1 -1
- package/documentation/{SidebarMenuSection-CX26EQG5.js → SidebarMenuSection-DGn-mTE1.js} +1 -1
- package/documentation/{SidebarSection-De6UWk1X.js → SidebarSection-CQDquAZW.js} +1 -1
- package/documentation/{SidebarSection-B0n5UOpR.js → SidebarSection-Tx963LSo.js} +1 -1
- package/documentation/{SizingSection-BGID0Xcc.js → SizingSection-B80WUvN4.js} +1 -1
- package/documentation/{SizingSection-CJLOGeHY.js → SizingSection-Bao89boy.js} +1 -1
- package/documentation/{SkeletonSection-CgfOFx1m.js → SkeletonSection-DOX1shFK.js} +1 -1
- package/documentation/{SkeletonSection-DelgS1pN.js → SkeletonSection-fwAyFzE7.js} +1 -1
- package/documentation/{SonomaColorsSection-C28VtKd_.js → SonomaColorsSection-C31EWTBf.js} +1 -1
- package/documentation/{SonomaColorsSection-CQULhACY.js → SonomaColorsSection-mttqQcUf.js} +1 -1
- package/documentation/{SonomaLayoutContentSection-iY1VAiSM.js → SonomaLayoutContentSection-DH7f8WGs.js} +1 -1
- package/documentation/{SonomaLayoutContentSection-BSuTmwMI.js → SonomaLayoutContentSection-DxZ6YqbS.js} +1 -1
- package/documentation/{SonomaLayoutSidebarSection-B1bkV4gJ.js → SonomaLayoutSidebarSection-1hizEDoe.js} +1 -1
- package/documentation/{SonomaLayoutSidebarSection-DFNlJTT4.js → SonomaLayoutSidebarSection-DxRMe7Yz.js} +1 -1
- package/documentation/{SonomaMaterialsSection-D-fB1mIO.js → SonomaMaterialsSection-0juT7u-u.js} +1 -1
- package/documentation/{SonomaMaterialsSection-BuwXPkij.js → SonomaMaterialsSection-CEhqE4Q7.js} +1 -1
- package/documentation/{SonomaShapesSection-BjIQNju1.js → SonomaShapesSection-BZDEyDVs.js} +1 -1
- package/documentation/{SonomaShapesSection-29muIlaP.js → SonomaShapesSection-BoxDbdOF.js} +1 -1
- package/documentation/{SonomaTypographySection-DE_CNkXW.js → SonomaTypographySection-asO7dtWD.js} +1 -1
- package/documentation/{SonomaTypographySection-3UGv1D5a.js → SonomaTypographySection-j5bzDcMH.js} +1 -1
- package/documentation/{SpacingSystemSection-CbW8Ty5w.js → SpacingSystemSection-CHf8sOWj.js} +1 -1
- package/documentation/{SpacingSystemSection-BajYRcpw.js → SpacingSystemSection-CQMw00FR.js} +1 -1
- package/documentation/{SpinnerSection-CL1dfMRs.js → SpinnerSection-C6rBhjrc.js} +1 -1
- package/documentation/{SpinnerSection-Cj1Lldfj.js → SpinnerSection-D2eeSq1n.js} +1 -1
- package/documentation/{StandaloneAppSection-wECFbb9Q.js → StandaloneAppSection-BiRtGh1l.js} +2 -2
- package/documentation/{StandaloneAppSection-XYaz2aEl.js → StandaloneAppSection-D2EgAsdh.js} +2 -2
- package/documentation/{StepperSection-Dtfg5GXq.js → StepperSection-CGIJkOEY.js} +1 -1
- package/documentation/{StepperSection-CXMKgINY.js → StepperSection-CjPWitLV.js} +1 -1
- package/documentation/{SwitchSection-DSSq56jC.js → SwitchSection-BPX5IJnx.js} +1 -1
- package/documentation/{SwitchSection-BTn9p7eE.js → SwitchSection-CP8OISYI.js} +1 -1
- package/documentation/{SystemOverviewSection-CE6LLl1z.js → SystemOverviewSection-Cc2rrU_t.js} +1 -1
- package/documentation/{SystemOverviewSection-Doao-Hyc.js → SystemOverviewSection-DeIlxb5k.js} +1 -1
- package/documentation/{TabModalSection-D8NTK60d.js → TabModalSection-BpGITxQ5.js} +1 -1
- package/documentation/{TabModalSection-BZl8Ce2m.js → TabModalSection-D48tgbpZ.js} +20 -4
- package/documentation/{TabSection-BDoaQ3_L.js → TabSection-L_pHygwv.js} +1 -1
- package/documentation/{TabSection-C4-7MzLK.js → TabSection-a6Nf3eGr.js} +1 -1
- package/documentation/{TabSelectSection-2x7PhRTC.js → TabSelectSection-BWNHjaDj.js} +1 -1
- package/documentation/{TabSelectSection-Ce-UvvAP.js → TabSelectSection-D2an6jX_.js} +1 -1
- package/documentation/{TahoeCommandPaletteSection-B1uicEeB.js → TahoeCommandPaletteSection-D3FVPWeX.js} +1 -1
- package/documentation/{TahoeCommandPaletteSection-GkW2XtA4.js → TahoeCommandPaletteSection-pv6E5A3c.js} +1 -1
- package/documentation/{TahoeDialogSection-2fnBkj9s.js → TahoeDialogSection-B6vOFOw3.js} +1 -1
- package/documentation/{TahoeDialogSection-LTcS3rqS.js → TahoeDialogSection-DN0t1LGD.js} +1 -1
- package/documentation/{TahoeDockSection-Bka-Twi9.js → TahoeDockSection-B9WaKSa5.js} +1 -1
- package/documentation/{TahoeDockSection-DdSI6L77.js → TahoeDockSection-Brkvn-1K.js} +1 -1
- package/documentation/{TahoeLayoutContentSection-Bm3-DBbk.js → TahoeLayoutContentSection-BUlcVXSh.js} +1 -1
- package/documentation/{TahoeLayoutContentSection-CrRsQuke.js → TahoeLayoutContentSection-mw_GDDM9.js} +1 -1
- package/documentation/{TahoeLayoutSidebarSection-wmkAitsD.js → TahoeLayoutSidebarSection-BEDvFkHD.js} +1 -1
- package/documentation/{TahoeLayoutSidebarSection-DHTZE8kA.js → TahoeLayoutSidebarSection-D-CJ73bF.js} +1 -1
- package/documentation/{TahoeNotificationBannerSection-DopVDXIZ.js → TahoeNotificationBannerSection-CydsaNKV.js} +1 -1
- package/documentation/{TahoeNotificationBannerSection-C7hRrN5c.js → TahoeNotificationBannerSection-e_eUQv4L.js} +1 -1
- package/documentation/{TahoePopoverSection-Dy_GhXDS.js → TahoePopoverSection-C1lIx9XU.js} +1 -1
- package/documentation/{TahoePopoverSection-DBgoBPbL.js → TahoePopoverSection-DXRJdQWb.js} +1 -1
- package/documentation/{TahoeProgressBarSection-BtNAURTz.js → TahoeProgressBarSection-C1-c9DXd.js} +1 -1
- package/documentation/{TahoeProgressBarSection-CVn_9odq.js → TahoeProgressBarSection-CtTBIU9Y.js} +1 -1
- package/documentation/{TahoeSearchBarSection-CRQd02HZ.js → TahoeSearchBarSection-D4J44q2G.js} +1 -1
- package/documentation/{TahoeSearchBarSection-DjYPJ24R.js → TahoeSearchBarSection-W9ykO_-I.js} +1 -1
- package/documentation/{TahoeSegmentedControlSection-C90mrl2e.js → TahoeSegmentedControlSection-B_nv0V6Q.js} +1 -1
- package/documentation/{TahoeSegmentedControlSection-Cc7avVAW.js → TahoeSegmentedControlSection-CUCeGNeI.js} +1 -1
- package/documentation/{TahoeToolbarSection-C1TrsJiL.js → TahoeToolbarSection-4ieIk3s5.js} +1 -1
- package/documentation/{TahoeToolbarSection-DSdjscAS.js → TahoeToolbarSection-Ct7L9-37.js} +1 -1
- package/documentation/{TahoeWidgetSection-D7xHKEFu.js → TahoeWidgetSection-B3R596v3.js} +1 -1
- package/documentation/{TahoeWidgetSection-3ooFCTjD.js → TahoeWidgetSection-Cw-S-Efi.js} +1 -1
- package/documentation/{TahoeWindowSection-D53dFI9U.js → TahoeWindowSection-Ctj_MGW7.js} +1 -1
- package/documentation/{TahoeWindowSection-DgLmDp7C.js → TahoeWindowSection-bWNqQ1GJ.js} +1 -1
- package/documentation/{TailwindConfigSection-HPhiOayZ.js → TailwindConfigSection-DNVLW9Nz.js} +1 -1
- package/documentation/{TailwindConfigSection-qnCValDL.js → TailwindConfigSection-Dm8FmmJo.js} +1 -1
- package/documentation/{TestingSection-CVlwcTS4.js → TestingSection-50uHRrhh.js} +1 -1
- package/documentation/{TestingSection-B8qrXvks.js → TestingSection-ZwHKbrfu.js} +1 -1
- package/documentation/{TextareaSection-DvcVNcQx.js → TextareaSection-CRC0p58d.js} +1 -1
- package/documentation/{TextareaSection-D2ucvmZ7.js → TextareaSection-RHt7tBFi.js} +1 -1
- package/documentation/{ThemeArchitectureSection-CFA5PLA5.js → ThemeArchitectureSection-DHZ5sm1Q.js} +1 -1
- package/documentation/{ThemeArchitectureSection-DtwFtzPZ.js → ThemeArchitectureSection-Df9D_p1G.js} +7 -7
- package/documentation/{ThemeConfigurationSection-25YbgMAK.js → ThemeConfigurationSection-Bx--qzB0.js} +1 -1
- package/documentation/{ThemeConfigurationSection-C5tQbIaa.js → ThemeConfigurationSection-wLp0xt1x.js} +1 -1
- package/documentation/{ThemeHooksSection-W_-66rEy.js → ThemeHooksSection-CAcrTFnG.js} +1 -1
- package/documentation/{ThemeHooksSection-C-kIo8WZ.js → ThemeHooksSection-e7GuW9VE.js} +1 -1
- package/documentation/{ThemeProviderIntegrationSection-Cx2QOk6u.js → ThemeProviderIntegrationSection-CIyksSxQ.js} +1 -1
- package/documentation/{ThemeProviderIntegrationSection-Bq7eJCE2.js → ThemeProviderIntegrationSection-EWhbzybV.js} +5 -5
- package/documentation/{ThemeProviderRequiredSection-FqbgJmWa.js → ThemeProviderRequiredSection-DwaR2kyw.js} +1 -1
- package/documentation/{ThemeProviderRequiredSection-HBMuiqAj.js → ThemeProviderRequiredSection-uFOhg-q9.js} +1 -1
- package/documentation/{ThemeProviderSection-tPE7Fvv3.js → ThemeProviderSection-BcFx0JTn.js} +1 -1
- package/documentation/{ThemeProviderSection-QT77eC5J.js → ThemeProviderSection-CcGXxj81.js} +1 -1
- package/documentation/{ToastSection-CwyCI-Ba.js → ToastSection-DOaIp0-s.js} +1 -1
- package/documentation/{ToastSection-H1vwT3GU.js → ToastSection-DdwtcOTv.js} +1 -1
- package/documentation/{ToggleBarSection-D0omE45k.js → ToggleBarSection-Cm-9D7PK.js} +1 -1
- package/documentation/{ToggleBarSection-DX_2Mvkt.js → ToggleBarSection-kJfpBDL1.js} +1 -1
- package/documentation/ToolsSection-CweUWTTS.js +221 -0
- package/documentation/ToolsSection-Dboq_CIJ.js +58 -0
- package/documentation/{TooltipSection-_eCQLTSq.js → TooltipSection-D8zo-QdI.js} +1 -1
- package/documentation/{TooltipSection-DpvcjLkT.js → TooltipSection-qOpbSJ9z.js} +1 -1
- package/documentation/{TopupButtonSection-DlkO5OXT.js → TopupButtonSection-Bk3SdbW6.js} +1 -1
- package/documentation/{TopupButtonSection-BPfTseVo.js → TopupButtonSection-CyvLOqsj.js} +1 -1
- package/documentation/{TransactionInfoSection-DuJ6rMpf.js → TransactionInfoSection-CmfpDRmF.js} +1 -1
- package/documentation/{TransactionInfoSection-b-wi9Avm.js → TransactionInfoSection-DwGa3xpn.js} +1 -1
- package/documentation/{TucuUiLogoSection-ClCGW3YN.js → TucuUiLogoSection-DBC4mwTu.js} +1 -1
- package/documentation/{TucuUiLogoSection-sG2b8760.js → TucuUiLogoSection-f1KDA5EJ.js} +1 -1
- package/documentation/{TypographySection-BaZcGbgZ.js → TypographySection-D-YgE0ia.js} +1 -1
- package/documentation/{TypographySection-C4qUEDNc.js → TypographySection-DQQIUdKf.js} +1 -1
- package/documentation/{TypographySection-Dxp8woDR.js → TypographySection-SMy-tI3f.js} +1 -1
- package/documentation/{TypographySection-CIJJq9Ek.js → TypographySection-dzhrE6ep.js} +1 -1
- package/documentation/{UsageExamplesSection-DaOjsNTB.js → UsageExamplesSection-CqwjmO3t.js} +1 -1
- package/documentation/{UsageExamplesSection-COHPEjrD.js → UsageExamplesSection-DhL9CGUp.js} +1 -1
- package/documentation/{UsingThemeSystemSection-ClyEzmVE.js → UsingThemeSystemSection-BQqbugQG.js} +1 -1
- package/documentation/{UsingThemeSystemSection-8RYuDUEP.js → UsingThemeSystemSection-DrO7JH96.js} +1 -1
- package/documentation/{ValidationSystemSection-CfL8aR6T.js → ValidationSystemSection-CbV-mEou.js} +1 -1
- package/documentation/{ValidationSystemSection-C9chD4rm.js → ValidationSystemSection-CiZLyQPS.js} +1 -1
- package/documentation/{WCAGPrinciplesSection-BXuOoMt5.js → WCAGPrinciplesSection-CN689drB.js} +1 -1
- package/documentation/{WCAGPrinciplesSection-yq3Hm2ep.js → WCAGPrinciplesSection-Dzry2Req.js} +1 -1
- package/{index-C0NugKZs.js → index-DEZRGktf.js} +69 -53
- package/{index-4GONhZIF.js → index-sdOMz8GW.js} +11514 -11196
- package/index.css +1 -1
- package/index.js +1 -1
- package/index.mjs +258 -255
- package/package.json +1 -1
- package/themes/components/theme-provider/theme-wrapper.d.ts +2 -2
- package/themes/config/index.d.ts +4 -2
- package/documentation/BackgroundsSection-DIO489vW.js +0 -6
package/README.md
CHANGED
|
@@ -1,165 +1,52 @@
|
|
|
1
1
|
# Tucu UI
|
|
2
2
|
|
|
3
|
-
A modern
|
|
3
|
+
A modern React component library built with TypeScript and Tailwind CSS v4 — automatic layouts, macOS design systems (Sonoma & Tahoe), advanced routing (Standalone & MFE), form system, charts, 5000+ icons, blockchain components, and WCAG 2.1 AA compliance.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**📚 [Live Docs](https://tucu-ui.netlify.app/) · [NPM](https://www.npmjs.com/package/@e-burgos/tucu-ui)**
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **🔧 [Component Examples](https://tucu-ui.netlify.app/components)** - See all variations and use cases
|
|
9
|
-
|
|
10
|
-
## 🚀 Key Features
|
|
11
|
-
|
|
12
|
-
### **🎨 Automatic Layout Generation**
|
|
13
|
-
|
|
14
|
-
Complete application layouts with minimal configuration via ThemeProvider - no manual layout coding required.
|
|
15
|
-
|
|
16
|
-
### **📝 Advanced Form System**
|
|
17
|
-
|
|
18
|
-
Centralized validation powered by React Hook Form with built-in error handling and accessibility.
|
|
19
|
-
|
|
20
|
-
### **🪙 Blockchain-Ready Components**
|
|
21
|
-
|
|
22
|
-
Specialized components for DeFi applications, NFT marketplaces, and crypto wallets.
|
|
23
|
-
|
|
24
|
-
### **💻 macOS Design Systems**
|
|
25
|
-
|
|
26
|
-
Two complete macOS-inspired design variants:
|
|
27
|
-
|
|
28
|
-
- **macOS Sonoma**: Classic macOS desktop experience with sidebar navigation, toolbar, and translucent materials
|
|
29
|
-
- **macOS Tahoe** (NEW): Liquid Glass aesthetics from macOS 26 — floating dock, frosted panels, 9 accent color bundles, command palette, and window chrome components
|
|
30
|
-
|
|
31
|
-
Includes 11 dedicated Tahoe components (Window, Dock, CommandPalette, Dialog, Popover, SearchBar, SegmentedControl, ProgressBar, NotificationBanner, Widget) with full dark/light mode and accent color theming.
|
|
32
|
-
|
|
33
|
-
### **🎭 Advanced Theming System**
|
|
34
|
-
|
|
35
|
-
34+ color presets with 12-layer color architecture (primary, dark primary, secondary, dark secondary, accent, dark accent, muted, dark muted, backgrounds). Three theme styles (`default`, `macos`, `macos-tahoe`) with per-style layout constraints. Includes modern colors (Bufus Blue, Coral, Mint, Lavender), secondary/accent color support, dark/light mode, RTL support, and persistent user preferences. Dynamic color system with CSS variables for brand, secondary, accent, and semantic colors.
|
|
36
|
-
|
|
37
|
-
### **🎯 5000+ Icons Integrated**
|
|
38
|
-
|
|
39
|
-
Complete Lucide React integration + 97+ custom-designed icons including blockchain/crypto icons, layout controls, social brands, and specialized UI elements.
|
|
40
|
-
|
|
41
|
-
### **💬 Tooltip System**
|
|
42
|
-
|
|
43
|
-
Flexible Tooltip component with portal-based rendering (`createPortal`), 4 placement options (top, bottom, left, right), 7 color themes, smart auto-repositioning within the viewport, configurable enter/leave delays, and ARIA-compliant accessibility.
|
|
44
|
-
|
|
45
|
-
### **📊 Data Visualization Charts**
|
|
46
|
-
|
|
47
|
-
6 chart components built on Recharts 3.8.1 with full dark mode support: BarChart, LineChart, AreaChart, PieChart, RadarChart, and ComposedChart. Theme-aware color palettes, empty states, and shared tooltip infrastructure.
|
|
48
|
-
|
|
49
|
-
### **♿ Accessibility First**
|
|
50
|
-
|
|
51
|
-
WCAG 2.1 AA compliant components with proper ARIA attributes and keyboard navigation.
|
|
52
|
-
|
|
53
|
-
### **📱 Mobile-First Responsive**
|
|
54
|
-
|
|
55
|
-
Responsive design across all components with support for ultra-wide displays (up to 4K).
|
|
56
|
-
|
|
57
|
-
### **🌐 Advanced Routing System**
|
|
58
|
-
|
|
59
|
-
Built-in React Router integration with support for two architectural patterns:
|
|
60
|
-
|
|
61
|
-
- **Standalone App** (default): Automatic route generation from menuItems with nested routes support (`enableNestedRoutes`)
|
|
62
|
-
- **Micro Frontends (MFE)**: Explicit route configuration with basePath and route protection
|
|
63
|
-
|
|
64
|
-
### **🎨 Tailwind CSS v4 Complete Integration**
|
|
65
|
-
|
|
66
|
-
Full Tailwind CSS v4 implementation with 15 comprehensive utility categories automatically available:
|
|
67
|
-
|
|
68
|
-
- **Layout & Positioning**: Aspect ratio, display, position, z-index, overflow
|
|
69
|
-
- **Sizing**: Width, height, max/min dimensions with arbitrary values
|
|
70
|
-
- **Spacing**: Padding, margin, gap with responsive breakpoints
|
|
71
|
-
- **Typography**: Font families, sizes, weights, spacing, colors, decoration
|
|
72
|
-
- **Flexbox & Grid**: Complete layout system with all properties
|
|
73
|
-
- **Background**: Colors, gradients, images, positioning, attachment, repeat, size
|
|
74
|
-
- **Borders**: Radius, width, colors, styles, outlines, offsets
|
|
75
|
-
- **Effects**: Shadows, opacity, blend modes, box-shadow utilities
|
|
76
|
-
- **Filters**: Blur, brightness, contrast, grayscale, hue-rotate, invert, saturate, sepia
|
|
77
|
-
- **Tables**: Layout, border spacing, border collapse, caption side
|
|
78
|
-
- **Transitions & Animation**: Properties, duration, timing, delay, animation classes
|
|
79
|
-
- **Transforms**: Backface visibility, perspective, rotate, scale, skew, translate
|
|
80
|
-
- **Interactivity**: Cursors, scroll behavior, snap, touch actions, user select, will-change
|
|
81
|
-
- **SVG**: Fill, stroke, stroke-width utilities
|
|
82
|
-
- **Accessibility**: Forced-color-adjust utilities
|
|
83
|
-
|
|
84
|
-
All utilities are configured through optimized `@source inline()` directives for maximum performance.
|
|
85
|
-
|
|
86
|
-
## 🔧 Core Technology Stack
|
|
7
|
+
---
|
|
87
8
|
|
|
88
|
-
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
| Feature | Description | Docs |
|
|
12
|
+
|---------|-------------|------|
|
|
13
|
+
| 🎨 **Layout System** | Classic, Minimal, None, macOS Sonoma & Tahoe | [Layout](https://tucu-ui.netlify.app/design-system/layout-system) |
|
|
14
|
+
| 🎭 **Theming** | 34+ color presets, dark/light, RTL, CSS vars | [Theming Guide](https://tucu-ui.netlify.app/design-system/theming-guide) |
|
|
15
|
+
| 📝 **Forms** | React Hook Form integration, validation, all input types | [Form System](https://tucu-ui.netlify.app/form-system/example) |
|
|
16
|
+
| 💻 **macOS Sonoma** | Translucent sidebar, toolbar, vibrancy effects | [Sonoma](https://tucu-ui.netlify.app/macos/sonoma) |
|
|
17
|
+
| 🪟 **macOS Tahoe** | Liquid Glass dock, frosted panels, 9 accent bundles | [Tahoe](https://tucu-ui.netlify.app/macos/tahoe) |
|
|
18
|
+
| 🧩 **UI Components** | 95+ components: modals, drawers, cards, tooltips… | [Components](https://tucu-ui.netlify.app/components/ui-components) |
|
|
19
|
+
| ⌨️ **Input Components** | All form inputs with validation and accessibility | [Inputs](https://tucu-ui.netlify.app/components/inputs-components) |
|
|
20
|
+
| 📊 **Charts** | BarChart, LineChart, AreaChart, PieChart, Radar, Composed | [Charts](https://tucu-ui.netlify.app/components/charts) |
|
|
21
|
+
| 🪙 **Blockchain** | DeFi, NFT, crypto wallet components | [Blockchain](https://tucu-ui.netlify.app/components/blockchain) |
|
|
22
|
+
| 🎯 **Icons** | 5000+ Lucide + 97 custom (crypto, social, UI) | [Icons](https://tucu-ui.netlify.app/features/icons-system) |
|
|
23
|
+
| 🌐 **Routing** | Standalone (auto-gen) & MFE (explicit) patterns | [Routing](https://tucu-ui.netlify.app/features/routing-system) |
|
|
24
|
+
| ♿ **Accessibility** | WCAG 2.1 AA, ARIA, keyboard nav | [A11y](https://tucu-ui.netlify.app/features/accessibility) |
|
|
25
|
+
| 🪝 **Hooks & Utils** | useTheme, useBreakpoint, and more | [Hooks](https://tucu-ui.netlify.app/features/hooks-utilities) |
|
|
26
|
+
| 🎨 **Tailwind CSS v4** | All utilities pre-configured, zero extra setup | [Tailwind](https://tucu-ui.netlify.app/tailwind-utilities/layout-utilities) |
|
|
27
|
+
| 🤖 **MCP Server** | AI-agent integration via Model Context Protocol | [MCP Server](https://tucu-ui.netlify.app/mcp-server) |
|
|
89
28
|
|
|
90
|
-
|
|
91
|
-
- **[TypeScript](https://www.typescriptlang.org/)** - Full type safety and excellent DX
|
|
92
|
-
- **[Tailwind CSS v4](https://tailwindcss.com/)** - Complete Tailwind v4 integration included with all utilities pre-configured
|
|
93
|
-
- **[React Hook Form](https://react-hook-form.com/)** - Performant form handling and validation
|
|
94
|
-
- **[Zustand](https://zustand-demo.pmnd.rs/)** - Lightweight state management for theming
|
|
95
|
-
- **[Lucide React](https://lucide.dev/)** - Beautiful, consistent icon library
|
|
96
|
-
- **[Framer Motion](https://www.framer.com/motion/)** - Smooth animations and transitions
|
|
97
|
-
- **[Recharts](https://recharts.org/)** - Composable charting library for data visualization
|
|
98
|
-
- **[Swiper](https://swiperjs.com/)** - Modern mobile touch slider
|
|
99
|
-
- **[Vitest](https://vitest.dev/)** - Fast unit testing framework powered by Vite
|
|
29
|
+
---
|
|
100
30
|
|
|
101
|
-
##
|
|
31
|
+
## Installation
|
|
102
32
|
|
|
103
33
|
```bash
|
|
104
34
|
npm install @e-burgos/tucu-ui
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
pnpm install @e-burgos/tucu-ui
|
|
35
|
+
# or
|
|
36
|
+
pnpm add @e-burgos/tucu-ui
|
|
109
37
|
```
|
|
110
38
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
Add the following import to your main CSS file (usually `index.css` or `main.css`) to include all Tucu UI styles and Tailwind CSS utilities:
|
|
39
|
+
In your main CSS file:
|
|
114
40
|
|
|
115
41
|
```css
|
|
116
42
|
@import '@e-burgos/tucu-ui/styles';
|
|
117
43
|
```
|
|
118
44
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### Advanced Color Customization
|
|
122
|
-
|
|
123
|
-
Tucu UI supports advanced color theming with multiple color layers:
|
|
124
|
-
|
|
125
|
-
```css
|
|
126
|
-
:root {
|
|
127
|
-
--color-brand: #0184bf; /* Primary brand color */
|
|
128
|
-
--color-secondary: #00d6f2; /* Secondary color */
|
|
129
|
-
--color-accent: #f26522; /* Accent color */
|
|
130
|
-
--color-dark: #0d1321; /* Dark theme background */
|
|
131
|
-
--color-light: #fcfcfc; /* Light theme background */
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
Available color presets include: Green, Black, Blue, Red, Purple, Orange, Rose, Pink, Yellow, Lime, Teal, Cyan, Navy, Maroon, Brown, Gray, Silver, Gold, Coral, Salmon, Chocolate, Tan, Beige, Mint, Lavender, Violet, Bufus, BufusBlue, BufusDark, BufusAccent, ThemeLight, ThemeDark.
|
|
136
|
-
|
|
137
|
-
## 🎯 Quick Start
|
|
138
|
-
|
|
139
|
-
### 1. **Basic Component Usage**
|
|
140
|
-
|
|
141
|
-
```tsx
|
|
142
|
-
import { Button, CardContainer, Input, Alert } from '@e-burgos/tucu-ui';
|
|
143
|
-
|
|
144
|
-
function App() {
|
|
145
|
-
return (
|
|
146
|
-
<CardContainer className="p-6">
|
|
147
|
-
<h2 className="text-2xl font-bold mb-4">Welcome to Tucu UI</h2>
|
|
148
|
-
<Input placeholder="Enter your name" className="mb-4" />
|
|
149
|
-
<Button size="large" className="w-full">
|
|
150
|
-
Get Started
|
|
151
|
-
</Button>
|
|
152
|
-
<Alert variant="success" className="mt-4">
|
|
153
|
-
You're ready to build amazing UIs!
|
|
154
|
-
</Alert>
|
|
155
|
-
</CardContainer>
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
```
|
|
45
|
+
> Includes full Tailwind CSS v4 — no additional Tailwind setup required.
|
|
159
46
|
|
|
160
|
-
|
|
47
|
+
---
|
|
161
48
|
|
|
162
|
-
|
|
49
|
+
## Quick Start
|
|
163
50
|
|
|
164
51
|
```tsx
|
|
165
52
|
import { ThemeProvider, LucideIcons } from '@e-burgos/tucu-ui';
|
|
@@ -167,1253 +54,35 @@ import { ThemeProvider, LucideIcons } from '@e-burgos/tucu-ui';
|
|
|
167
54
|
const menuItems = [
|
|
168
55
|
{
|
|
169
56
|
name: 'Dashboard',
|
|
170
|
-
|
|
171
|
-
icon: <LucideIcons.Home />,
|
|
172
|
-
component: <DashboardPage />,
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
name: 'Analytics',
|
|
176
|
-
path: '/analytics',
|
|
177
|
-
icon: <LucideIcons.BarChart3 />,
|
|
178
|
-
component: <AnalyticsPage />,
|
|
179
|
-
dropdownItems: [
|
|
180
|
-
{
|
|
181
|
-
name: 'Reports',
|
|
182
|
-
path: '/analytics/reports',
|
|
183
|
-
component: <ReportsPage />,
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
name: 'Insights',
|
|
187
|
-
path: '/analytics/insights',
|
|
188
|
-
component: <InsightsPage />,
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
name: 'Settings',
|
|
194
|
-
path: '/settings',
|
|
195
|
-
icon: <LucideIcons.Settings />,
|
|
196
|
-
component: <SettingsPage />,
|
|
197
|
-
},
|
|
198
|
-
];
|
|
199
|
-
|
|
200
|
-
function App() {
|
|
201
|
-
return (
|
|
202
|
-
<ThemeProvider
|
|
203
|
-
// Layout Configuration
|
|
204
|
-
layout="minimal" // 'classic' | 'minimal' | 'none'
|
|
205
|
-
menuItems={menuItems} // Required for Standalone pattern
|
|
206
|
-
logo={{ name: 'My', secondName: 'App' }}
|
|
207
|
-
// Theme Configuration
|
|
208
|
-
brandColor="Blue"
|
|
209
|
-
mode="light"
|
|
210
|
-
// Authentication (Required)
|
|
211
|
-
isAuthenticated={true} // Authentication state
|
|
212
|
-
loginUrl="/login" // Optional: redirect URL for unauthenticated users
|
|
213
|
-
// Optional: Override automatic route generation
|
|
214
|
-
customRoutes={<CustomRoutes />}
|
|
215
|
-
// UI Customization
|
|
216
|
-
showSettings={true}
|
|
217
|
-
rightButton={<UserMenu />}
|
|
218
|
-
/>
|
|
219
|
-
);
|
|
220
|
-
}
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### 3. **Micro Frontends (MFE) Pattern**
|
|
224
|
-
|
|
225
|
-
For micro-frontend architectures with explicit route configuration:
|
|
226
|
-
|
|
227
|
-
```tsx
|
|
228
|
-
import { ThemeProvider } from '@e-burgos/tucu-ui';
|
|
229
|
-
|
|
230
|
-
const appRoutesConfig = [
|
|
231
|
-
{
|
|
232
|
-
key: 'home',
|
|
233
|
-
path: '/',
|
|
234
|
-
element: <HomePage />,
|
|
235
|
-
isPublic: true, // Public route
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
key: 'dashboard',
|
|
239
|
-
path: '/dashboard',
|
|
240
|
-
element: <DashboardPage />,
|
|
241
|
-
isPublic: false, // Private route, requires authentication
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
key: 'settings',
|
|
245
|
-
path: '/settings',
|
|
246
|
-
element: <SettingsPage />,
|
|
247
|
-
isPublic: false,
|
|
248
|
-
},
|
|
249
|
-
];
|
|
250
|
-
|
|
251
|
-
function MfeApp() {
|
|
252
|
-
return (
|
|
253
|
-
<ThemeProvider
|
|
254
|
-
architecturalPatterns="mfe" // Activates MFE mode
|
|
255
|
-
basePath="/my-app" // Base path for the micro frontend
|
|
256
|
-
appRoutesConfig={appRoutesConfig} // Required for MFE
|
|
257
|
-
isAuthenticated={true} // Authentication state (Required)
|
|
258
|
-
loginUrl="/login" // Redirect URL for unauthenticated users (Required)
|
|
259
|
-
logo={{ name: 'MFE', secondName: 'App' }}
|
|
260
|
-
showSettings
|
|
261
|
-
/>
|
|
262
|
-
);
|
|
263
|
-
}
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
**Key Differences:**
|
|
267
|
-
|
|
268
|
-
- **Standalone**: Uses `menuItems` for automatic route generation
|
|
269
|
-
- **MFE**: Uses `basePath` and `appRoutesConfig` for explicit route configuration with protection
|
|
270
|
-
- TypeScript ensures you use the correct props for each pattern
|
|
271
|
-
|
|
272
|
-
### **ThemeProvider Props Reference**
|
|
273
|
-
|
|
274
|
-
#### **Common Props (Both Patterns)**
|
|
275
|
-
|
|
276
|
-
| Prop | Type | Default | Description |
|
|
277
|
-
| -------------------- | ------------------------------------- | ----------- | --------------------------------------------------------------------------------- |
|
|
278
|
-
| `layout` | `'classic' \| 'minimal' \| 'none'` | `'minimal'` | Layout type: Classic (sidebar), Minimal (horizontal nav), None (no layout) |
|
|
279
|
-
| `logo` | `{name: string, secondName?: string}` | - | Application logo configuration |
|
|
280
|
-
| `brandColor` | `PresetColorType` | - | Primary brand color preset (auto-disabled if `customPaletteColor.primary` is set) |
|
|
281
|
-
| `mode` | `'light' \| 'dark'` | `'light'` | Initial theme mode |
|
|
282
|
-
| `customPaletteColor` | `object` | - | Advanced color customization |
|
|
283
|
-
| `showSettings` | `boolean` | `false` | Display settings panel toggle button |
|
|
284
|
-
| `rightButton` | `React.ReactNode` | - | Custom component for top-right header area |
|
|
285
|
-
| `headerClassName` | `string` | - | Custom CSS classes for header container |
|
|
286
|
-
| `contentClassName` | `string` | - | Custom CSS classes for main content area |
|
|
287
|
-
| `className` | `string` | - | Custom CSS classes for entire layout |
|
|
288
|
-
| `fullWidth` | `boolean` | `false` | Enable full-width layout (removes max-width constraints) |
|
|
289
|
-
| `settingActions` | `ISettingAction` | - | Control which settings are disabled in the settings panel |
|
|
290
|
-
|
|
291
|
-
#### **Standalone App Pattern Props**
|
|
292
|
-
|
|
293
|
-
| Prop | Type | Default | Description |
|
|
294
|
-
| ----------------------- | ------------------------------- | -------------- | ------------------------------------------------ |
|
|
295
|
-
| `architecturalPatterns` | `'standalone'` | `'standalone'` | Architectural pattern (default, can be omitted) |
|
|
296
|
-
| `menuItems` | `StandaloneAppRoutesMenuItem[]` | Required | Navigation menu items with routing configuration |
|
|
297
|
-
| `isAuthenticated` | `boolean` | Required | Authentication state for route protection |
|
|
298
|
-
| `loginUrl` | `string` | - | Optional: Redirect URL for unauthenticated users |
|
|
299
|
-
| `customRoutes` | `ReactElement<typeof Routes>` | - | Optional: Override automatic route generation |
|
|
300
|
-
| `withRouterProvider` | `boolean` | `true` | Enable automatic React Router setup |
|
|
301
|
-
|
|
302
|
-
#### **Micro Frontends (MFE) Pattern Props**
|
|
303
|
-
|
|
304
|
-
| Prop | Type | Default | Description |
|
|
305
|
-
| ----------------------- | --------------------- | -------- | ------------------------------------------------------ |
|
|
306
|
-
| `architecturalPatterns` | `'mfe'` | Required | Must be set to `'mfe'` to activate MFE mode |
|
|
307
|
-
| `basePath` | `string` | Required | Base path for the micro frontend (e.g., `/my-app`) |
|
|
308
|
-
| `appRoutesConfig` | `IAppRouteConfig[]` | Required | Explicit route configuration with protection |
|
|
309
|
-
| `isAuthenticated` | `boolean` | Required | Authentication state for route protection |
|
|
310
|
-
| `loginUrl` | `string` | Required | Redirect URL for unauthenticated users |
|
|
311
|
-
| `menuItems` | `AppRoutesMenuItem[]` | - | Optional: Navigation menu items (separate from routes) |
|
|
312
|
-
|
|
313
|
-
**Note:** TypeScript ensures type safety - you cannot mix Standalone and MFE props. The type system will show errors at compile time if you use incorrect props for the selected pattern.
|
|
314
|
-
|
|
315
|
-
### **useTheme Hook - Complete API**
|
|
316
|
-
|
|
317
|
-
The `useTheme` hook provides full programmatic control over the theme system:
|
|
318
|
-
|
|
319
|
-
```tsx
|
|
320
|
-
import { useTheme } from '@e-burgos/tucu-ui';
|
|
321
|
-
|
|
322
|
-
function ThemeControls() {
|
|
323
|
-
const {
|
|
324
|
-
// Current State
|
|
325
|
-
mode, // 'light' | 'dark'
|
|
326
|
-
layout, // 'classic' | 'minimal' | 'none'
|
|
327
|
-
direction, // 'ltr' | 'rtl'
|
|
328
|
-
preset, // Current primary color preset
|
|
329
|
-
secondaryPreset, // Current secondary color preset
|
|
330
|
-
accentPreset, // Current accent color preset
|
|
331
|
-
darkPreset, // Current dark theme preset
|
|
332
|
-
lightPreset, // Current light theme preset
|
|
333
|
-
logo, // Current logo configuration
|
|
334
|
-
isSettingsOpen, // Settings panel open state
|
|
335
|
-
showSettings, // Settings button visibility
|
|
336
|
-
settingActions, // Current settings configuration
|
|
337
|
-
|
|
338
|
-
// State Setters
|
|
339
|
-
setMode, // (mode: 'light' | 'dark') => void
|
|
340
|
-
setLayout, // (layout: 'classic' | 'minimal' | 'none') => void
|
|
341
|
-
setDirection, // (direction: 'ltr' | 'rtl') => void
|
|
342
|
-
setPreset, // (preset: IThemeItem) => void
|
|
343
|
-
setSecondaryPreset, // (secondaryPreset: IThemeItem) => void
|
|
344
|
-
setAccentPreset, // (accentPreset: IThemeItem) => void
|
|
345
|
-
setDarkPreset, // (darkPreset: IThemeItem) => void
|
|
346
|
-
setLightPreset, // (lightPreset: IThemeItem) => void
|
|
347
|
-
setLogo, // (logo: LogoType) => void
|
|
348
|
-
setIsSettingsOpen, // (isOpen: boolean) => void
|
|
349
|
-
setShowSettings, // (show: boolean) => void
|
|
350
|
-
setSettingActions, // (actions: ISettingAction) => void
|
|
351
|
-
restoreDefaultColors, // () => void - Reset all colors to defaults
|
|
352
|
-
} = useTheme();
|
|
353
|
-
|
|
354
|
-
return (
|
|
355
|
-
<div>
|
|
356
|
-
{/* Theme Mode Controls */}
|
|
357
|
-
<button onClick={() => setMode(mode === 'light' ? 'dark' : 'light')}>Toggle to {mode === 'light' ? 'Dark' : 'Light'} Mode</button>
|
|
358
|
-
|
|
359
|
-
{/* Layout Controls */}
|
|
360
|
-
<button onClick={() => setLayout('classic')}>Classic Layout</button>
|
|
361
|
-
<button onClick={() => setLayout('minimal')}>Minimal Layout</button>
|
|
362
|
-
<button onClick={() => setLayout('none')}>No Layout</button>
|
|
363
|
-
|
|
364
|
-
{/* Direction Controls */}
|
|
365
|
-
<button onClick={() => setDirection(direction === 'ltr' ? 'rtl' : 'ltr')}>Switch to {direction === 'ltr' ? 'RTL' : 'LTR'}</button>
|
|
366
|
-
|
|
367
|
-
{/* Color Controls */}
|
|
368
|
-
<button onClick={() => setPreset({ label: 'Purple', value: '#9370DB' })}>Purple Theme</button>
|
|
369
|
-
|
|
370
|
-
<button onClick={() => setSecondaryPreset({ label: 'Blue', value: '#3B82F6' })}>Blue Secondary</button>
|
|
371
|
-
|
|
372
|
-
{/* Settings Panel Controls */}
|
|
373
|
-
<button onClick={() => setIsSettingsOpen(!isSettingsOpen)}>{isSettingsOpen ? 'Close' : 'Open'} Settings</button>
|
|
374
|
-
|
|
375
|
-
<button onClick={() => setShowSettings(!showSettings)}>{showSettings ? 'Hide' : 'Show'} Settings Button</button>
|
|
376
|
-
|
|
377
|
-
{/* Reset Colors */}
|
|
378
|
-
<button onClick={restoreDefaultColors}>Reset to Default Colors</button>
|
|
379
|
-
</div>
|
|
380
|
-
);
|
|
381
|
-
}
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
### **Menu Items Structure**
|
|
385
|
-
|
|
386
|
-
#### **Standalone App Pattern**
|
|
387
|
-
|
|
388
|
-
```tsx
|
|
389
|
-
interface StandaloneAppRoutesMenuItem {
|
|
390
|
-
name: string; // Display name
|
|
391
|
-
path: string; // Navigation URL path (route path)
|
|
392
|
-
href?: string; // Optional: external link URL (if different from path)
|
|
393
|
-
icon?: React.ReactNode; // Optional icon component
|
|
394
|
-
component: JSX.Element; // Page component to render
|
|
395
|
-
isPublic?: boolean; // Whether route is publicly accessible (default: true)
|
|
396
|
-
dropdownItems?: StandaloneAppRoutesMenuItem[]; // Nested submenu items
|
|
397
|
-
hide?: boolean; // Hide from navigation (default: false)
|
|
398
|
-
onClick?: () => void; // Optional click handler
|
|
399
|
-
}
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
#### **Micro Frontends (MFE) Pattern**
|
|
403
|
-
|
|
404
|
-
```tsx
|
|
405
|
-
interface IAppRouteConfig extends RouteProps {
|
|
406
|
-
key: string; // Unique identifier for the route
|
|
407
|
-
path: string; // Route path
|
|
408
|
-
element: JSX.Element; // Component to render
|
|
409
|
-
isPublic?: boolean; // Whether the route is publicly accessible
|
|
410
|
-
disabled?: boolean; // Whether the route is disabled
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
interface AppRoutesMenuItem {
|
|
414
|
-
name: string; // Display name (for navigation menu)
|
|
415
|
-
path: string; // Navigation URL path
|
|
416
|
-
href?: string; // Optional: external link URL (if different from path)
|
|
417
|
-
icon?: React.ReactNode; // Optional icon component
|
|
418
|
-
hide?: boolean; // Hide from navigation (default: false)
|
|
419
|
-
onClick?: () => void; // Optional click handler
|
|
420
|
-
// Note: component is NOT used in MFE pattern - routes are defined in appRoutesConfig
|
|
421
|
-
}
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### **Available Color Presets**
|
|
425
|
-
|
|
426
|
-
Tucu UI includes 34+ built-in color presets with 12-layer color architecture:
|
|
427
|
-
|
|
428
|
-
**Basic Colors:** Green, Black, Blue, Red, Purple, Orange, Rose, Pink, Yellow, Lime, Teal, Cyan
|
|
429
|
-
|
|
430
|
-
**Extended Colors:** Navy, Maroon, Brown, Gray, Silver, Gold, Coral, Salmon, Chocolate, Tan, Beige
|
|
431
|
-
|
|
432
|
-
**Modern Colors:** Mint, Lavender, Violet, BufusBlue, Bufus, BufusAccent, BufusDark
|
|
433
|
-
|
|
434
|
-
**Theme Colors:** ThemeLight, ThemeDark
|
|
435
|
-
|
|
436
|
-
Each preset includes 12 color layers: primary, dark primary, secondary, dark secondary, accent, dark accent, muted, dark muted, and background variations.
|
|
437
|
-
|
|
438
|
-
### **Theme Persistence**
|
|
439
|
-
|
|
440
|
-
All theme settings (colors, layout, mode, direction) are automatically persisted to localStorage and restored on app reload.
|
|
441
|
-
|
|
442
|
-
**That's it!** Your complete application with routing, navigation, theming, and responsive design is ready.
|
|
443
|
-
|
|
444
|
-
## 🎨 Layout System
|
|
445
|
-
|
|
446
|
-
### **Five Layout Types**
|
|
447
|
-
|
|
448
|
-
#### **1. Classic Layout** - Traditional Dashboard
|
|
449
|
-
|
|
450
|
-
- Fixed sidebar with expandable navigation
|
|
451
|
-
- Header with logo and actions
|
|
452
|
-
- Perfect for admin panels and complex applications
|
|
453
|
-
|
|
454
|
-
#### **2. Minimal Layout** - Modern & Clean
|
|
455
|
-
|
|
456
|
-
- Horizontal navigation bar
|
|
457
|
-
- Backdrop blur effects
|
|
458
|
-
- Ideal for content-focused applications
|
|
459
|
-
|
|
460
|
-
#### **3. None Layout** - Maximum Flexibility
|
|
461
|
-
|
|
462
|
-
- No predefined layout structure
|
|
463
|
-
- Perfect for auth pages and custom designs
|
|
464
|
-
|
|
465
|
-
#### **4. macOS Sonoma Layout** - Desktop Experience
|
|
466
|
-
|
|
467
|
-
- Translucent sidebar with vibrancy effects
|
|
468
|
-
- Toolbar and content area mimicking native macOS apps
|
|
469
|
-
- Accent color bundles matching System Preferences
|
|
470
|
-
|
|
471
|
-
#### **5. macOS Tahoe Layout** - Liquid Glass (NEW)
|
|
472
|
-
|
|
473
|
-
- Floating Dock with app icons (bottom-anchored)
|
|
474
|
-
- Frosted glass panels with blur and transparency
|
|
475
|
-
- 9 accent color bundles (Glass, Blue, Purple, Pink, Red, Orange, Yellow, Green, Graphite)
|
|
476
|
-
- Also available as `MacOSTahoeDockLayout` for dock-centric designs
|
|
477
|
-
|
|
478
|
-
### **Architectural Patterns**
|
|
479
|
-
|
|
480
|
-
Tucu UI supports two architectural patterns for different use cases:
|
|
481
|
-
|
|
482
|
-
#### **Standalone App Pattern (Default)**
|
|
483
|
-
|
|
484
|
-
- Automatic route generation from `menuItems`
|
|
485
|
-
- Simple configuration with menu-driven navigation
|
|
486
|
-
- Perfect for single-page applications
|
|
487
|
-
- Optional `customRoutes` for advanced routing needs
|
|
488
|
-
|
|
489
|
-
#### **Micro Frontends (MFE) Pattern**
|
|
490
|
-
|
|
491
|
-
- Explicit route configuration with `appRoutesConfig`
|
|
492
|
-
- Route protection with `isPublic` and `isAuthenticated`
|
|
493
|
-
- Base path support for micro-frontend integration
|
|
494
|
-
- TypeScript ensures correct prop usage for each pattern
|
|
495
|
-
|
|
496
|
-
### **Automatic Features**
|
|
497
|
-
|
|
498
|
-
- ✅ **Responsive Design** - Mobile drawer, tablet adaptations
|
|
499
|
-
- ✅ **Dark/Light Mode** - Automatic theme switching
|
|
500
|
-
- ✅ **RTL Support** - Full right-to-left language support
|
|
501
|
-
- ✅ **Brand Colors** - 34+ color presets with multi-layer architecture
|
|
502
|
-
- ✅ **macOS Themes** - Sonoma & Tahoe design systems with accent bundles
|
|
503
|
-
- ✅ **Settings Panel** - Built-in user customization with theme style switcher
|
|
504
|
-
- ✅ **Routing Integration** - Automatic route generation (Standalone) or explicit configuration (MFE)
|
|
505
|
-
- ✅ **Type Safety** - TypeScript discriminated unions ensure correct pattern usage
|
|
506
|
-
|
|
507
|
-
### **Theme Management**
|
|
508
|
-
|
|
509
|
-
```tsx
|
|
510
|
-
import { useTheme } from '@e-burgos/tucu-ui';
|
|
511
|
-
|
|
512
|
-
function ThemeControls() {
|
|
513
|
-
const {
|
|
514
|
-
mode, // 'light' | 'dark'
|
|
515
|
-
layout, // 'classic' | 'minimal' | 'none'
|
|
516
|
-
direction, // 'ltr' | 'rtl'
|
|
517
|
-
preset, // Current color preset
|
|
518
|
-
setMode,
|
|
519
|
-
setLayout,
|
|
520
|
-
setPreset,
|
|
521
|
-
} = useTheme();
|
|
522
|
-
|
|
523
|
-
return (
|
|
524
|
-
<div>
|
|
525
|
-
<button onClick={() => setMode(mode === 'light' ? 'dark' : 'light')}>Toggle {mode === 'light' ? 'Dark' : 'Light'} Mode</button>
|
|
526
|
-
|
|
527
|
-
<button onClick={() => setLayout('classic')}>Switch to Classic Layout</button>
|
|
528
|
-
|
|
529
|
-
<button onClick={() => setPreset({ label: 'Purple', value: '#9370DB' })}>Purple Theme</button>
|
|
530
|
-
</div>
|
|
531
|
-
);
|
|
532
|
-
}
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
## 📝 Advanced Form System
|
|
536
|
-
|
|
537
|
-
### **Comprehensive Form Components**
|
|
538
|
-
|
|
539
|
-
```tsx
|
|
540
|
-
import { Form, FormField, Input, Textarea, Checkbox, RadioGroup, Select, PinCode, FileInput, Button } from '@e-burgos/tucu-ui';
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
### **Centralized Validation**
|
|
544
|
-
|
|
545
|
-
```tsx
|
|
546
|
-
interface UserFormData {
|
|
547
|
-
email: string;
|
|
548
|
-
password: string;
|
|
549
|
-
country: string;
|
|
550
|
-
newsletter: boolean;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
function UserRegistrationForm() {
|
|
554
|
-
const handleSubmit = (data: UserFormData) => {
|
|
555
|
-
console.log('Form submitted:', data);
|
|
556
|
-
};
|
|
557
|
-
|
|
558
|
-
return (
|
|
559
|
-
<Form<UserFormData>
|
|
560
|
-
onSubmit={handleSubmit}
|
|
561
|
-
useFormProps={{
|
|
562
|
-
defaultValues: {
|
|
563
|
-
email: '',
|
|
564
|
-
password: '',
|
|
565
|
-
country: '',
|
|
566
|
-
newsletter: false,
|
|
567
|
-
},
|
|
568
|
-
mode: 'onChange',
|
|
569
|
-
}}
|
|
570
|
-
>
|
|
571
|
-
<FormField<UserFormData>
|
|
572
|
-
name="email"
|
|
573
|
-
label="Email Address"
|
|
574
|
-
rules={{
|
|
575
|
-
required: 'Email is required',
|
|
576
|
-
pattern: {
|
|
577
|
-
value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
|
|
578
|
-
message: 'Invalid email address',
|
|
579
|
-
},
|
|
580
|
-
}}
|
|
581
|
-
>
|
|
582
|
-
<Input type="email" placeholder="Enter your email" />
|
|
583
|
-
</FormField>
|
|
584
|
-
|
|
585
|
-
<FormField<UserFormData>
|
|
586
|
-
name="password"
|
|
587
|
-
label="Password"
|
|
588
|
-
rules={{
|
|
589
|
-
required: 'Password is required',
|
|
590
|
-
minLength: {
|
|
591
|
-
value: 8,
|
|
592
|
-
message: 'Password must be at least 8 characters',
|
|
593
|
-
},
|
|
594
|
-
}}
|
|
595
|
-
>
|
|
596
|
-
<Input type="password" placeholder="Enter your password" />
|
|
597
|
-
</FormField>
|
|
598
|
-
|
|
599
|
-
<FormField<UserFormData> name="country" label="Country">
|
|
600
|
-
<Select
|
|
601
|
-
options={[
|
|
602
|
-
{ name: 'United States', value: 'us' },
|
|
603
|
-
{ name: 'Canada', value: 'ca' },
|
|
604
|
-
{ name: 'Mexico', value: 'mx' },
|
|
605
|
-
]}
|
|
606
|
-
/>
|
|
607
|
-
</FormField>
|
|
608
|
-
|
|
609
|
-
<FormField<UserFormData> name="newsletter" label="Newsletter Subscription">
|
|
610
|
-
<Checkbox>Subscribe to our newsletter</Checkbox>
|
|
611
|
-
</FormField>
|
|
612
|
-
|
|
613
|
-
<Button type="submit" size="large" className="w-full">
|
|
614
|
-
Create Account
|
|
615
|
-
</Button>
|
|
616
|
-
</Form>
|
|
617
|
-
);
|
|
618
|
-
}
|
|
619
|
-
```
|
|
620
|
-
|
|
621
|
-
### **Specialized Form Components**
|
|
622
|
-
|
|
623
|
-
```tsx
|
|
624
|
-
// PIN Code Input
|
|
625
|
-
<FormField name="verificationCode" label="Verification Code">
|
|
626
|
-
<PinCode length={6} type="number" placeholder="-" />
|
|
627
|
-
</FormField>
|
|
628
|
-
|
|
629
|
-
// File Upload with Drag & Drop
|
|
630
|
-
<FormField name="documents" label="Upload Documents">
|
|
631
|
-
<FileInput
|
|
632
|
-
multiple
|
|
633
|
-
accept="imgAndPdf"
|
|
634
|
-
placeholderText="Drop files here or click to upload"
|
|
635
|
-
/>
|
|
636
|
-
</FormField>
|
|
637
|
-
|
|
638
|
-
// Radio Button Groups
|
|
639
|
-
<FormField name="subscription" label="Choose Plan">
|
|
640
|
-
<RadioGroup
|
|
641
|
-
options={[
|
|
642
|
-
{ value: 'basic', label: 'Basic - $9/month' },
|
|
643
|
-
{ value: 'pro', label: 'Pro - $29/month' },
|
|
644
|
-
{ value: 'enterprise', label: 'Enterprise - $99/month' },
|
|
645
|
-
]}
|
|
646
|
-
direction="vertical"
|
|
647
|
-
/>
|
|
648
|
-
</FormField>
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
## 🪙 Blockchain & DeFi Components
|
|
652
|
-
|
|
653
|
-
### **Cryptocurrency Components**
|
|
654
|
-
|
|
655
|
-
```tsx
|
|
656
|
-
import { CoinCard, CoinInfoCard, LivePriceFeed, TransactionInfo, CurrencySwapIcons } from '@e-burgos/tucu-ui';
|
|
657
|
-
|
|
658
|
-
function CryptoPortfolio() {
|
|
659
|
-
return (
|
|
660
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
661
|
-
{/* Portfolio Balance Cards */}
|
|
662
|
-
<CoinCard name="Bitcoin" symbol="BTC" logo="/icons/bitcoin.svg" balance="1.25" usdBalance="45,000" change="+5.2%" isChangePositive={true} color="#FDEDD4" />
|
|
663
|
-
|
|
664
|
-
{/* Live Price Feed with Chart */}
|
|
665
|
-
<LivePriceFeed name="Ethereum" symbol="ETH" icon={<EthereumIcon />} balance="10.5" usdBalance="33,600" change="+2.8%" isChangePositive={true} prices={priceHistory} />
|
|
666
|
-
|
|
667
|
-
{/* Transaction Details */}
|
|
668
|
-
<div className="space-y-3">
|
|
669
|
-
<TransactionInfo label="Gas Fee" value="0.002 ETH" />
|
|
670
|
-
<TransactionInfo label="Network" value="Ethereum Mainnet" />
|
|
671
|
-
<TransactionInfo label="Status" value="Confirmed" />
|
|
672
|
-
</div>
|
|
673
|
-
</div>
|
|
674
|
-
);
|
|
675
|
-
}
|
|
676
|
-
```
|
|
677
|
-
|
|
678
|
-
### **NFT Components**
|
|
679
|
-
|
|
680
|
-
```tsx
|
|
681
|
-
import { NFTGrid, CollectionCard } from '@e-burgos/tucu-ui';
|
|
682
|
-
|
|
683
|
-
function NFTGallery() {
|
|
684
|
-
return (
|
|
685
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
686
|
-
<NFTGrid author="CryptoArtist" authorImage="/avatars/artist.jpg" image="/nfts/artwork-123.jpg" name="Digital Masterpiece #123" collection="Abstract Collection" price="2.5 ETH" />
|
|
687
|
-
|
|
688
|
-
<CollectionCard
|
|
689
|
-
item={{
|
|
690
|
-
name: 'BAYC',
|
|
691
|
-
title: 'Bored Ape Yacht Club',
|
|
692
|
-
cover_image: '/collections/bayc.jpg',
|
|
693
|
-
number_of_artwork: 10000,
|
|
694
|
-
user: { name: 'Yuga Labs', avatar: '/avatars/yuga.jpg' },
|
|
695
|
-
}}
|
|
696
|
-
/>
|
|
697
|
-
</div>
|
|
698
|
-
);
|
|
699
|
-
}
|
|
700
|
-
```
|
|
701
|
-
|
|
702
|
-
## 🎯 Complete Icon System
|
|
703
|
-
|
|
704
|
-
### **5000+ Lucide Icons**
|
|
705
|
-
|
|
706
|
-
```tsx
|
|
707
|
-
import { LucideIcons } from '@e-burgos/tucu-ui';
|
|
708
|
-
|
|
709
|
-
function IconShowcase() {
|
|
710
|
-
return (
|
|
711
|
-
<div className="flex gap-4">
|
|
712
|
-
{/* Navigation Icons */}
|
|
713
|
-
<LucideIcons.Home className="w-6 h-6" />
|
|
714
|
-
<LucideIcons.Settings className="w-6 h-6" />
|
|
715
|
-
<LucideIcons.User className="w-6 h-6" />
|
|
716
|
-
|
|
717
|
-
{/* Action Icons */}
|
|
718
|
-
<LucideIcons.Plus className="w-6 h-6 text-green-500" />
|
|
719
|
-
<LucideIcons.Trash2 className="w-6 h-6 text-red-500" />
|
|
720
|
-
<LucideIcons.Edit className="w-6 h-6 text-blue-500" />
|
|
721
|
-
|
|
722
|
-
{/* Communication Icons */}
|
|
723
|
-
<LucideIcons.Mail className="w-6 h-6" />
|
|
724
|
-
<LucideIcons.Phone className="w-6 h-6" />
|
|
725
|
-
<LucideIcons.MessageCircle className="w-6 h-6" />
|
|
726
|
-
</div>
|
|
727
|
-
);
|
|
728
|
-
}
|
|
729
|
-
```
|
|
730
|
-
|
|
731
|
-
### **97+ Custom Icons**
|
|
732
|
-
|
|
733
|
-
```tsx
|
|
734
|
-
import {
|
|
735
|
-
// Blockchain/Crypto
|
|
736
|
-
Bitcoin,
|
|
737
|
-
Ethereum,
|
|
738
|
-
Cardano,
|
|
739
|
-
Bnb,
|
|
740
|
-
Doge,
|
|
741
|
-
Tether,
|
|
742
|
-
Usdc,
|
|
743
|
-
|
|
744
|
-
// Layout Controls
|
|
745
|
-
ClassicLayoutIcon,
|
|
746
|
-
MinimalLayoutIcon,
|
|
747
|
-
ModernLayoutIcon,
|
|
748
|
-
RetroLayoutIcon,
|
|
749
|
-
|
|
750
|
-
// Navigation & UI
|
|
751
|
-
HomeIcon,
|
|
752
|
-
SearchIcon,
|
|
753
|
-
MenuIcon,
|
|
754
|
-
Close,
|
|
755
|
-
ArrowRight,
|
|
756
|
-
ArrowUp,
|
|
757
|
-
ArrowLinkIcon,
|
|
758
|
-
|
|
759
|
-
// Social Brands
|
|
760
|
-
Facebook,
|
|
761
|
-
Twitter,
|
|
762
|
-
Instagram,
|
|
763
|
-
Github,
|
|
764
|
-
Telegram,
|
|
765
|
-
|
|
766
|
-
// DeFi & Trading
|
|
767
|
-
SwapIcon,
|
|
768
|
-
ExchangeIcon,
|
|
769
|
-
TradingBotIcon,
|
|
770
|
-
Farm,
|
|
771
|
-
Pool,
|
|
772
|
-
VoteIcon,
|
|
773
|
-
GasIcon,
|
|
774
|
-
LivePricing,
|
|
775
|
-
|
|
776
|
-
// Status & Feedback
|
|
777
|
-
Check,
|
|
778
|
-
Checkmark,
|
|
779
|
-
Warning,
|
|
780
|
-
InfoIcon,
|
|
781
|
-
InfoCircle,
|
|
782
|
-
QuestionIcon,
|
|
783
|
-
VerifiedIcon,
|
|
784
|
-
Verified,
|
|
785
|
-
|
|
786
|
-
// Actions & Controls
|
|
787
|
-
Plus,
|
|
788
|
-
PlusCircle,
|
|
789
|
-
Edit,
|
|
790
|
-
Trash2,
|
|
791
|
-
Copy,
|
|
792
|
-
Upload,
|
|
793
|
-
Download,
|
|
794
|
-
ExportIcon,
|
|
795
|
-
Refresh,
|
|
796
|
-
Power,
|
|
797
|
-
ShutDownIcon,
|
|
798
|
-
Unlock,
|
|
799
|
-
LockIcon,
|
|
800
|
-
|
|
801
|
-
// Media & Content
|
|
802
|
-
PlayIcon,
|
|
803
|
-
MediaPlayIcon,
|
|
804
|
-
Book,
|
|
805
|
-
Document,
|
|
806
|
-
CalendarIcon,
|
|
807
|
-
Tag,
|
|
808
|
-
TagIcon,
|
|
809
|
-
|
|
810
|
-
// Data Visualization
|
|
811
|
-
SpikeBar,
|
|
812
|
-
TrendArrowUpIcon,
|
|
813
|
-
TrendArrowDownIcon,
|
|
814
|
-
BarChart3,
|
|
815
|
-
|
|
816
|
-
// Layout & Design
|
|
817
|
-
Grid3X3,
|
|
818
|
-
CompactGrid,
|
|
819
|
-
NormalGrid,
|
|
820
|
-
LeftAlign,
|
|
821
|
-
RightAlign,
|
|
822
|
-
DotsIcon,
|
|
823
|
-
HorizontalThreeDots,
|
|
824
|
-
VerticalThreeDots,
|
|
825
|
-
|
|
826
|
-
// Specialty
|
|
827
|
-
Tucu,
|
|
828
|
-
Compass,
|
|
829
|
-
Flash,
|
|
830
|
-
Flow,
|
|
831
|
-
LevelIcon,
|
|
832
|
-
SandClock,
|
|
833
|
-
Star,
|
|
834
|
-
StarFill,
|
|
835
|
-
} from '@e-burgos/tucu-ui';
|
|
836
|
-
```
|
|
837
|
-
|
|
838
|
-
## 🔧 UI Components Library
|
|
839
|
-
|
|
840
|
-
### **Layout & Navigation**
|
|
841
|
-
|
|
842
|
-
```tsx
|
|
843
|
-
import { Modal, Drawer, CardContainer, PanelActionCard, Carousel, CarouselCards, CarouselImage } from '@e-burgos/tucu-ui';
|
|
844
|
-
|
|
845
|
-
// Modal with Accessibility
|
|
846
|
-
<Modal
|
|
847
|
-
isOpen={isOpen}
|
|
848
|
-
setIsOpen={setIsOpen}
|
|
849
|
-
text={{
|
|
850
|
-
title: 'Confirm Action',
|
|
851
|
-
content: 'Are you sure you want to proceed?',
|
|
852
|
-
button: 'Confirm',
|
|
853
|
-
backButton: 'Cancel',
|
|
854
|
-
}}
|
|
855
|
-
onSubmit={handleConfirm}
|
|
856
|
-
/>
|
|
857
|
-
|
|
858
|
-
// Responsive Drawer
|
|
859
|
-
<Drawer
|
|
860
|
-
type="sidebar-menu"
|
|
861
|
-
isOpen={isDrawerOpen}
|
|
862
|
-
setIsOpen={setIsDrawerOpen}
|
|
863
|
-
menuItems={menuItems}
|
|
864
|
-
position="left"
|
|
865
|
-
/>
|
|
866
|
-
|
|
867
|
-
// Action Cards
|
|
868
|
-
<PanelActionCard
|
|
869
|
-
title="User Settings"
|
|
870
|
-
actions={[
|
|
871
|
-
{ label: 'Save', onClick: handleSave },
|
|
872
|
-
{ label: 'Cancel', variant: 'ghost', onClick: handleCancel },
|
|
873
|
-
]}
|
|
874
|
-
>
|
|
875
|
-
<UserSettingsForm />
|
|
876
|
-
</PanelActionCard>
|
|
877
|
-
```
|
|
878
|
-
|
|
879
|
-
### **Carousel Components**
|
|
880
|
-
|
|
881
|
-
Complete carousel system with multiple variants:
|
|
882
|
-
|
|
883
|
-
```tsx
|
|
884
|
-
import { Carousel, CarouselCards, CarouselImage } from '@e-burgos/tucu-ui';
|
|
885
|
-
|
|
886
|
-
// Basic Carousel
|
|
887
|
-
<Carousel
|
|
888
|
-
slidesPerView={1}
|
|
889
|
-
spaceBetween={20}
|
|
890
|
-
showNavigation
|
|
891
|
-
showPagination
|
|
892
|
-
autoplay={{ delay: 3000 }}
|
|
893
|
-
loop
|
|
894
|
-
>
|
|
895
|
-
<div>Slide 1</div>
|
|
896
|
-
<div>Slide 2</div>
|
|
897
|
-
<div>Slide 3</div>
|
|
898
|
-
</Carousel>
|
|
899
|
-
|
|
900
|
-
// Card Carousel
|
|
901
|
-
<CarouselCards
|
|
902
|
-
cards={[
|
|
903
|
-
{ title: 'Card 1', description: 'Description 1', content: <div>Content 1</div> },
|
|
904
|
-
{ title: 'Card 2', description: 'Description 2', content: <div>Content 2</div> },
|
|
905
|
-
]}
|
|
906
|
-
showNavigation
|
|
907
|
-
showPagination
|
|
908
|
-
/>
|
|
909
|
-
|
|
910
|
-
// Image Carousel
|
|
911
|
-
<CarouselImage
|
|
912
|
-
images={[
|
|
913
|
-
{ src: '/image1.jpg', alt: 'Image 1', title: 'Title 1' },
|
|
914
|
-
{ src: '/image2.jpg', alt: 'Image 2', title: 'Title 2' },
|
|
915
|
-
]}
|
|
916
|
-
showNavigation
|
|
917
|
-
showPagination
|
|
918
|
-
/>
|
|
919
|
-
```
|
|
920
|
-
|
|
921
|
-
### **Tooltip Component**
|
|
922
|
-
|
|
923
|
-
```tsx
|
|
924
|
-
import { Tooltip } from '@e-burgos/tucu-ui';
|
|
925
|
-
|
|
926
|
-
// Basic Tooltip
|
|
927
|
-
<Tooltip content="Edit profile" placement="top">
|
|
928
|
-
<button>Hover me</button>
|
|
929
|
-
</Tooltip>
|
|
930
|
-
|
|
931
|
-
// Tooltip with custom color and delay
|
|
932
|
-
<Tooltip content="Delete item" color="danger" enterDelay={300} arrow>
|
|
933
|
-
<button>Delete</button>
|
|
934
|
-
</Tooltip>
|
|
935
|
-
|
|
936
|
-
// Rich content Tooltip
|
|
937
|
-
<Tooltip
|
|
938
|
-
content={<div><strong>Pro tip:</strong> Use keyboard shortcuts for faster navigation.</div>}
|
|
939
|
-
placement="right"
|
|
940
|
-
color="primary"
|
|
941
|
-
arrow
|
|
942
|
-
>
|
|
943
|
-
<span>Help</span>
|
|
944
|
-
</Tooltip>
|
|
945
|
-
```
|
|
946
|
-
|
|
947
|
-
### **Feedback Components**
|
|
948
|
-
|
|
949
|
-
```tsx
|
|
950
|
-
import { Alert, useToastStore } from '@e-burgos/tucu-ui';
|
|
951
|
-
|
|
952
|
-
// Alert Messages
|
|
953
|
-
<Alert variant="success" dismissible>
|
|
954
|
-
Your changes have been saved successfully!
|
|
955
|
-
</Alert>
|
|
956
|
-
|
|
957
|
-
<Alert variant="warning">
|
|
958
|
-
Your session will expire in 5 minutes.
|
|
959
|
-
</Alert>
|
|
960
|
-
|
|
961
|
-
// Toast Notifications
|
|
962
|
-
function ToastExample() {
|
|
963
|
-
const { addToast } = useToastStore();
|
|
964
|
-
|
|
965
|
-
const showToast = () => {
|
|
966
|
-
addToast({
|
|
967
|
-
id: Date.now().toString(),
|
|
968
|
-
title: 'Success!',
|
|
969
|
-
message: 'Your profile has been updated',
|
|
970
|
-
variant: 'success',
|
|
971
|
-
});
|
|
972
|
-
};
|
|
973
|
-
|
|
974
|
-
return <Button onClick={showToast}>Show Toast</Button>;
|
|
975
|
-
}
|
|
976
|
-
```
|
|
977
|
-
|
|
978
|
-
## 🎣 Utility Hooks
|
|
979
|
-
|
|
980
|
-
Comprehensive collection of custom React hooks for common patterns:
|
|
981
|
-
|
|
982
|
-
```tsx
|
|
983
|
-
import { useBreakpoint, useIsMobile, useCopyToClipboard, useClickAway, useElementSize, useMeasure, useLockBodyScroll, useToastStore, useGridSwitcher } from '@e-burgos/tucu-ui';
|
|
984
|
-
|
|
985
|
-
function UtilityExample() {
|
|
986
|
-
// Responsive Hooks
|
|
987
|
-
const breakpoint = useBreakpoint(); // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl'
|
|
988
|
-
const { isMobile } = useIsMobile();
|
|
989
|
-
|
|
990
|
-
// Element Measurement
|
|
991
|
-
const [ref, { width, height }] = useElementSize();
|
|
992
|
-
const [measureRef, bounds] = useMeasure();
|
|
993
|
-
|
|
994
|
-
// Interaction Hooks
|
|
995
|
-
const [copiedText, copy] = useCopyToClipboard();
|
|
996
|
-
const clickAwayRef = useRef(null);
|
|
997
|
-
useClickAway(clickAwayRef, () => setIsOpen(false));
|
|
998
|
-
|
|
999
|
-
// UI State Management
|
|
1000
|
-
const { addToast, dismissToast, toasts } = useToastStore();
|
|
1001
|
-
const { isGridCompact, setIsGridCompact } = useGridSwitcher();
|
|
1002
|
-
|
|
1003
|
-
return (
|
|
1004
|
-
<div>
|
|
1005
|
-
<p>Current breakpoint: {breakpoint}</p>
|
|
1006
|
-
{isMobile && <MobileOnlyComponent />}
|
|
1007
|
-
|
|
1008
|
-
<div ref={ref}>
|
|
1009
|
-
Size: {width} × {height}px
|
|
1010
|
-
</div>
|
|
1011
|
-
|
|
1012
|
-
<button onClick={() => copy('Hello World!')}>{copiedText ? 'Copied!' : 'Copy Text'}</button>
|
|
1013
|
-
|
|
1014
|
-
<button
|
|
1015
|
-
onClick={() =>
|
|
1016
|
-
addToast({
|
|
1017
|
-
id: Date.now().toString(),
|
|
1018
|
-
title: 'Success!',
|
|
1019
|
-
message: 'Operation completed',
|
|
1020
|
-
variant: 'success',
|
|
1021
|
-
})
|
|
1022
|
-
}
|
|
1023
|
-
>
|
|
1024
|
-
Show Toast
|
|
1025
|
-
</button>
|
|
1026
|
-
</div>
|
|
1027
|
-
);
|
|
1028
|
-
}
|
|
1029
|
-
```
|
|
1030
|
-
|
|
1031
|
-
## 🚀 Ready-to-Use Authentication
|
|
1032
|
-
|
|
1033
|
-
```tsx
|
|
1034
|
-
import { SignInForm, SignUpForm, ForgetPasswordForm, ResetPinForm } from '@e-burgos/tucu-ui';
|
|
1035
|
-
|
|
1036
|
-
// Complete authentication flow
|
|
1037
|
-
function AuthPages() {
|
|
1038
|
-
return (
|
|
1039
|
-
<ThemeProvider layout="none" menuItems={[]} isAuthenticated={false} loginUrl="/login">
|
|
1040
|
-
<div className="min-h-screen flex items-center justify-center">
|
|
1041
|
-
{/* Sign In with validation */}
|
|
1042
|
-
<SignInForm forgetPasswordPath="/forgot-password" />
|
|
1043
|
-
|
|
1044
|
-
{/* Sign Up with terms */}
|
|
1045
|
-
<SignUpForm />
|
|
1046
|
-
|
|
1047
|
-
{/* Password Reset */}
|
|
1048
|
-
<ForgetPasswordForm onSubmit={handlePasswordReset} resetPinPath="/reset-pin" />
|
|
1049
|
-
</div>
|
|
1050
|
-
</ThemeProvider>
|
|
1051
|
-
);
|
|
1052
|
-
}
|
|
1053
|
-
```
|
|
1054
|
-
|
|
1055
|
-
## 📚 Complete Examples
|
|
1056
|
-
|
|
1057
|
-
### **Introduction & Documentation Pages**
|
|
1058
|
-
|
|
1059
|
-
Tucu UI includes comprehensive documentation pages to help you get started:
|
|
1060
|
-
|
|
1061
|
-
- **Introduction** - Overview and getting started guide
|
|
1062
|
-
- **TailwindV4** - Complete Tailwind CSS v4 integration guide with 15 utility categories
|
|
1063
|
-
- **Features** - Explore all available features and utilities
|
|
1064
|
-
- **Routing System** - Standalone and MFE architectural patterns
|
|
1065
|
-
- **Icons System** - 5000+ Lucide icons + 97+ custom icons
|
|
1066
|
-
- **Hooks Utilities** - Custom React hooks for common patterns
|
|
1067
|
-
- **Accessibility** - WCAG 2.1 AA compliance and best practices
|
|
1068
|
-
- **Components** - Component library overview and usage patterns
|
|
1069
|
-
- **UI Components** - 50+ UI components (buttons, cards, dialogs, tooltips, charts, notifications, etc.)
|
|
1070
|
-
- **Charts Components** - 6 chart types (Bar, Line, Area, Pie, Radar, Composed)
|
|
1071
|
-
- **Input Components** - 11+ form input components
|
|
1072
|
-
- **Blockchain Components** - 9+ specialized DeFi/Web3 components
|
|
1073
|
-
- **Form System** - Complete form solution with validation
|
|
1074
|
-
- **Form Examples** - Interactive examples and real-world patterns
|
|
1075
|
-
- **Code Examples** - Implementation patterns and best practices
|
|
1076
|
-
- **Theming Guide** - Advanced theming and customization options
|
|
1077
|
-
- **Design System** - Visual design principles and guidelines
|
|
1078
|
-
- **Colors** - Complete color palette and theming system
|
|
1079
|
-
- **Layout System** - Responsive layout patterns and techniques
|
|
1080
|
-
|
|
1081
|
-
### **15 Tailwind CSS v4 Utility Documentation Pages**
|
|
1082
|
-
|
|
1083
|
-
Comprehensive documentation for all Tailwind utilities:
|
|
1084
|
-
|
|
1085
|
-
- **Layout Utilities** - Aspect ratio, display, position, z-index, overflow
|
|
1086
|
-
- **Flexbox & Grid Utilities** - Complete layout system documentation
|
|
1087
|
-
- **Background Utilities** - Colors, gradients, images, positioning
|
|
1088
|
-
- **Borders Utilities** - Radius, width, colors, styles, outlines
|
|
1089
|
-
- **Typography Utilities** - Fonts, sizes, weights, spacing, colors
|
|
1090
|
-
- **Effects Utilities** - Shadows, opacity, blend modes
|
|
1091
|
-
- **Filters Utilities** - Blur, brightness, contrast, and more
|
|
1092
|
-
- **Tables Utilities** - Layout, spacing, display properties
|
|
1093
|
-
- **Transitions & Animations** - Smooth animations and transitions
|
|
1094
|
-
- **Transforms Utilities** - Rotate, scale, skew, translate
|
|
1095
|
-
- **Interactivity Utilities** - Cursors, scroll, touch actions
|
|
1096
|
-
- **SVG Utilities** - Fill, stroke, stroke-width
|
|
1097
|
-
- **Accessibility Utilities** - Screen reader and focus utilities
|
|
1098
|
-
|
|
1099
|
-
### **Modern Dashboard (Standalone Pattern)**
|
|
1100
|
-
|
|
1101
|
-
```tsx
|
|
1102
|
-
import { ThemeProvider, LucideIcons, useTheme } from '@e-burgos/tucu-ui';
|
|
1103
|
-
|
|
1104
|
-
const dashboardMenuItems = [
|
|
1105
|
-
{
|
|
1106
|
-
name: 'Overview',
|
|
1107
|
-
path: '/',
|
|
57
|
+
href: '/',
|
|
1108
58
|
icon: <LucideIcons.LayoutDashboard />,
|
|
1109
|
-
component: <
|
|
1110
|
-
},
|
|
1111
|
-
{
|
|
1112
|
-
name: 'Analytics',
|
|
1113
|
-
path: '/analytics',
|
|
1114
|
-
icon: <LucideIcons.BarChart3 />,
|
|
1115
|
-
component: <AnalyticsPage />,
|
|
1116
|
-
dropdownItems: [
|
|
1117
|
-
{
|
|
1118
|
-
name: 'Reports',
|
|
1119
|
-
path: '/analytics/reports',
|
|
1120
|
-
component: <ReportsPage />,
|
|
1121
|
-
},
|
|
1122
|
-
{
|
|
1123
|
-
name: 'Real-time',
|
|
1124
|
-
path: '/analytics/realtime',
|
|
1125
|
-
component: <RealtimePage />,
|
|
1126
|
-
},
|
|
1127
|
-
],
|
|
1128
|
-
},
|
|
1129
|
-
{
|
|
1130
|
-
name: 'Users',
|
|
1131
|
-
path: '/users',
|
|
1132
|
-
icon: <LucideIcons.Users />,
|
|
1133
|
-
component: <UsersPage />,
|
|
1134
|
-
},
|
|
1135
|
-
];
|
|
1136
|
-
|
|
1137
|
-
function Dashboard() {
|
|
1138
|
-
return (
|
|
1139
|
-
<ThemeProvider
|
|
1140
|
-
layout="classic"
|
|
1141
|
-
menuItems={dashboardMenuItems} // Standalone pattern (default)
|
|
1142
|
-
isAuthenticated={true}
|
|
1143
|
-
loginUrl="/login"
|
|
1144
|
-
logo={{ name: 'Admin', secondName: 'Panel' }}
|
|
1145
|
-
brandColor="BufusBlue"
|
|
1146
|
-
showSettings={true}
|
|
1147
|
-
rightButton={<UserProfileMenu />}
|
|
1148
|
-
/>
|
|
1149
|
-
);
|
|
1150
|
-
}
|
|
1151
|
-
```
|
|
1152
|
-
|
|
1153
|
-
### **DeFi Application (Standalone Pattern)**
|
|
1154
|
-
|
|
1155
|
-
```tsx
|
|
1156
|
-
import { ThemeProvider, CoinCard, LivePriceFeed, LucideIcons } from '@e-burgos/tucu-ui';
|
|
1157
|
-
|
|
1158
|
-
const defiMenuItems = [
|
|
1159
|
-
{
|
|
1160
|
-
name: 'Portfolio',
|
|
1161
|
-
path: '/',
|
|
1162
|
-
icon: <LucideIcons.Wallet />,
|
|
1163
|
-
component: <PortfolioPage />,
|
|
1164
|
-
},
|
|
1165
|
-
{
|
|
1166
|
-
name: 'Swap',
|
|
1167
|
-
path: '/swap',
|
|
1168
|
-
icon: <LucideIcons.ArrowLeftRight />,
|
|
1169
|
-
component: <SwapPage />,
|
|
1170
|
-
},
|
|
1171
|
-
{
|
|
1172
|
-
name: 'Staking',
|
|
1173
|
-
path: '/staking',
|
|
1174
|
-
icon: <LucideIcons.Coins />,
|
|
1175
|
-
component: <StakingPage />,
|
|
59
|
+
component: <Dashboard />,
|
|
1176
60
|
},
|
|
1177
61
|
];
|
|
1178
62
|
|
|
1179
|
-
function
|
|
63
|
+
export default function App() {
|
|
1180
64
|
return (
|
|
1181
65
|
<ThemeProvider
|
|
66
|
+
logo={{ name: 'My App' }}
|
|
1182
67
|
layout="minimal"
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
loginUrl="/login"
|
|
1186
|
-
logo={{ name: 'DeFi', secondName: 'Portfolio' }}
|
|
1187
|
-
brandColor="Green"
|
|
1188
|
-
rightButton={<WalletConnector />}
|
|
1189
|
-
/>
|
|
1190
|
-
);
|
|
1191
|
-
}
|
|
1192
|
-
```
|
|
1193
|
-
|
|
1194
|
-
### **Micro Frontend Application (MFE Pattern)**
|
|
1195
|
-
|
|
1196
|
-
```tsx
|
|
1197
|
-
import { ThemeProvider, LucideIcons } from '@e-burgos/tucu-ui';
|
|
1198
|
-
|
|
1199
|
-
const appRoutesConfig = [
|
|
1200
|
-
{
|
|
1201
|
-
key: 'portfolio',
|
|
1202
|
-
path: '/',
|
|
1203
|
-
element: <PortfolioPage />,
|
|
1204
|
-
isPublic: false,
|
|
1205
|
-
},
|
|
1206
|
-
{
|
|
1207
|
-
key: 'swap',
|
|
1208
|
-
path: '/swap',
|
|
1209
|
-
element: <SwapPage />,
|
|
1210
|
-
isPublic: false,
|
|
1211
|
-
},
|
|
1212
|
-
{
|
|
1213
|
-
key: 'staking',
|
|
1214
|
-
path: '/staking',
|
|
1215
|
-
element: <StakingPage />,
|
|
1216
|
-
isPublic: false,
|
|
1217
|
-
},
|
|
1218
|
-
];
|
|
1219
|
-
|
|
1220
|
-
function MfeDeFiApp() {
|
|
1221
|
-
const isAuthenticated = useAuth(); // Your auth hook
|
|
1222
|
-
|
|
1223
|
-
return (
|
|
1224
|
-
<ThemeProvider
|
|
1225
|
-
architecturalPatterns="mfe" // MFE pattern
|
|
1226
|
-
basePath="/defi-app"
|
|
1227
|
-
appRoutesConfig={appRoutesConfig}
|
|
1228
|
-
isAuthenticated={isAuthenticated}
|
|
1229
|
-
loginUrl="/login" // Required for MFE pattern
|
|
1230
|
-
logo={{ name: 'DeFi', secondName: 'MFE' }}
|
|
1231
|
-
brandColor="Green"
|
|
1232
|
-
/>
|
|
1233
|
-
);
|
|
1234
|
-
}
|
|
1235
|
-
```
|
|
1236
|
-
|
|
1237
|
-
### **E-commerce Platform (Standalone Pattern)**
|
|
1238
|
-
|
|
1239
|
-
```tsx
|
|
1240
|
-
import { ThemeProvider, LucideIcons, Form, FormField, Input } from '@e-burgos/tucu-ui';
|
|
1241
|
-
|
|
1242
|
-
const ecommerceMenuItems = [
|
|
1243
|
-
{
|
|
1244
|
-
name: 'Products',
|
|
1245
|
-
path: '/products',
|
|
1246
|
-
icon: <LucideIcons.Package />,
|
|
1247
|
-
component: <ProductsPage />,
|
|
1248
|
-
},
|
|
1249
|
-
{
|
|
1250
|
-
name: 'Orders',
|
|
1251
|
-
path: '/orders',
|
|
1252
|
-
icon: <LucideIcons.ShoppingCart />,
|
|
1253
|
-
component: <OrdersPage />,
|
|
1254
|
-
},
|
|
1255
|
-
{
|
|
1256
|
-
name: 'Customers',
|
|
1257
|
-
path: '/customers',
|
|
1258
|
-
icon: <LucideIcons.Users />,
|
|
1259
|
-
component: <CustomersPage />,
|
|
1260
|
-
},
|
|
1261
|
-
];
|
|
1262
|
-
|
|
1263
|
-
function EcommerceAdmin() {
|
|
1264
|
-
return (
|
|
1265
|
-
<ThemeProvider
|
|
1266
|
-
layout="classic"
|
|
1267
|
-
menuItems={ecommerceMenuItems} // Standalone pattern
|
|
68
|
+
brandColor="Blue"
|
|
69
|
+
menuItems={menuItems}
|
|
1268
70
|
isAuthenticated={true}
|
|
1269
|
-
loginUrl="/login"
|
|
1270
|
-
logo={{ name: 'Shop', secondName: 'Admin' }}
|
|
1271
|
-
brandColor="Purple"
|
|
1272
|
-
showSettings={true}
|
|
1273
71
|
/>
|
|
1274
72
|
);
|
|
1275
73
|
}
|
|
1276
74
|
```
|
|
1277
75
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
### **Advanced Color System**
|
|
76
|
+
→ Routing, navigation, theming and responsive layout are auto-generated.
|
|
1281
77
|
|
|
1282
|
-
|
|
78
|
+
For full API reference, patterns, and examples see the **[live documentation](https://tucu-ui.netlify.app/)**.
|
|
1283
79
|
|
|
1284
|
-
|
|
1285
|
-
<ThemeProvider
|
|
1286
|
-
brandColor="BufusBlue" // Primary brand color
|
|
1287
|
-
secondaryColor="Bufus" // Secondary color for accents
|
|
1288
|
-
accentColor="BufusAccent" // Accent color for highlights
|
|
1289
|
-
darkColor="ThemeDark" // Dark theme base color
|
|
1290
|
-
lightColor="ThemeLight" // Light theme base color
|
|
1291
|
-
// ... other options
|
|
1292
|
-
/>
|
|
1293
|
-
```
|
|
1294
|
-
|
|
1295
|
-
### **CSS Custom Properties**
|
|
1296
|
-
|
|
1297
|
-
```css
|
|
1298
|
-
:root {
|
|
1299
|
-
--color-brand: #0184bf; /* Primary brand color */
|
|
1300
|
-
--color-secondary: #00d6f2; /* Secondary color */
|
|
1301
|
-
--color-accent: #f26522; /* Accent color */
|
|
1302
|
-
--color-dark: #0d1321; /* Dark theme background */
|
|
1303
|
-
--color-light: #fcfcfc; /* Light theme background */
|
|
1304
|
-
--color-body: var(--color-light);
|
|
1305
|
-
--color-sidebar-body: #f8fafc;
|
|
1306
|
-
--color-light-dark: #171e2e;
|
|
1307
|
-
--color-dark-light: #f8fafc;
|
|
1308
|
-
|
|
1309
|
-
/* Dynamic color mixing */
|
|
1310
|
-
--color-muted: color-mix(in oklab, var(--color-brand) 50%, transparent);
|
|
1311
|
-
--color-success: var(--color-emerald-500);
|
|
1312
|
-
--color-warning: var(--color-orange-500);
|
|
1313
|
-
--color-error: var(--color-red-500);
|
|
1314
|
-
--color-info: var(--color-blue-500);
|
|
1315
|
-
}
|
|
1316
|
-
```
|
|
1317
|
-
|
|
1318
|
-
### **Extending Tailwind Configuration**
|
|
1319
|
-
|
|
1320
|
-
```js
|
|
1321
|
-
// tailwind.config.js
|
|
1322
|
-
module.exports = {
|
|
1323
|
-
content: ['./src/**/*.{js,ts,jsx,tsx}', './node_modules/@e-burgos/tucu-ui/**/*.{js,ts,jsx,tsx}'],
|
|
1324
|
-
theme: {
|
|
1325
|
-
extend: {
|
|
1326
|
-
colors: {
|
|
1327
|
-
brand: {
|
|
1328
|
-
DEFAULT: 'rgb(var(--color-brand) / <alpha-value>)',
|
|
1329
|
-
50: '#eff6ff',
|
|
1330
|
-
// ... more shades
|
|
1331
|
-
},
|
|
1332
|
-
},
|
|
1333
|
-
spacing: {
|
|
1334
|
-
13: '3.375rem', // Custom spacing used by Tucu UI
|
|
1335
|
-
},
|
|
1336
|
-
},
|
|
1337
|
-
},
|
|
1338
|
-
};
|
|
1339
|
-
```
|
|
1340
|
-
|
|
1341
|
-
## ♿ Accessibility Features
|
|
1342
|
-
|
|
1343
|
-
Tucu UI is built with accessibility in mind:
|
|
1344
|
-
|
|
1345
|
-
- ✅ **WCAG 2.1 AA Compliance** - Meeting accessibility standards
|
|
1346
|
-
- ✅ **Keyboard Navigation** - Full keyboard support across components
|
|
1347
|
-
- ✅ **Screen Reader Support** - Proper ARIA attributes and semantic HTML
|
|
1348
|
-
- ✅ **Focus Management** - Visible focus indicators and logical tab order
|
|
1349
|
-
- ✅ **Color Contrast** - Sufficient contrast ratios in all themes
|
|
1350
|
-
- ✅ **Motion Preferences** - Respects user's motion preferences
|
|
1351
|
-
|
|
1352
|
-
## 🔧 Development & Contributing
|
|
1353
|
-
|
|
1354
|
-
### **Development Setup**
|
|
1355
|
-
|
|
1356
|
-
```bash
|
|
1357
|
-
# Clone the repository
|
|
1358
|
-
git clone <repository-url>
|
|
1359
|
-
|
|
1360
|
-
# Install dependencies
|
|
1361
|
-
pnpm install
|
|
1362
|
-
|
|
1363
|
-
# Run the demo for development
|
|
1364
|
-
pnpm nx run demo:serve
|
|
1365
|
-
|
|
1366
|
-
# Build the library
|
|
1367
|
-
pnpm nx run tucu-ui:build
|
|
1368
|
-
|
|
1369
|
-
# Run tests
|
|
1370
|
-
pnpm nx run tucu-ui:test
|
|
1371
|
-
```
|
|
1372
|
-
|
|
1373
|
-
### **Nx Monorepo Structure**
|
|
1374
|
-
|
|
1375
|
-
```
|
|
1376
|
-
tucu-ui/
|
|
1377
|
-
├── apps/
|
|
1378
|
-
│ ├── demo/ # Documentation & demo app (tucu-ui.netlify.app)
|
|
1379
|
-
│ └── test-lib/ # Library testing playground
|
|
1380
|
-
├── examples/
|
|
1381
|
-
│ ├── standalone/ # Standalone architecture example
|
|
1382
|
-
│ └── micro-frontends/ # Micro Frontends architecture example
|
|
1383
|
-
├── ui/
|
|
1384
|
-
│ └── tucu-ui/ # Main library (@e-burgos/tucu-ui)
|
|
1385
|
-
│ ├── src/
|
|
1386
|
-
│ │ ├── components/ # All UI components (85+)
|
|
1387
|
-
│ │ ├── hooks/ # Utility hooks
|
|
1388
|
-
│ │ ├── themes/ # Theme system (Zustand + CSS tokens)
|
|
1389
|
-
│ │ └── styles.css # Tailwind CSS v4 configuration
|
|
1390
|
-
│ └── package.json
|
|
1391
|
-
├── scripts/ # Build & generation scripts
|
|
1392
|
-
└── nx.json # Nx workspace configuration
|
|
1393
|
-
```
|
|
1394
|
-
|
|
1395
|
-
## 📄 License
|
|
1396
|
-
|
|
1397
|
-
MIT License - feel free to use in your projects!
|
|
1398
|
-
|
|
1399
|
-
## 🤝 Contributing
|
|
1400
|
-
|
|
1401
|
-
Contributions are welcome! Please:
|
|
1402
|
-
|
|
1403
|
-
1. **Fork the repository**
|
|
1404
|
-
2. **Create a feature branch**
|
|
1405
|
-
3. **Add tests for new features**
|
|
1406
|
-
4. **Update documentation**
|
|
1407
|
-
5. **Submit a pull request**
|
|
1408
|
-
|
|
1409
|
-
## 🌐 Community & Support
|
|
80
|
+
---
|
|
1410
81
|
|
|
1411
|
-
|
|
1412
|
-
- **🐛 [Issues](https://github.com/e-burgos/tucu-ui/issues)** - Report bugs and request features
|
|
1413
|
-
- **💬 [Discussions](https://github.com/e-burgos/tucu-ui/discussions)** - Community support and ideas
|
|
82
|
+
## Tech Stack
|
|
1414
83
|
|
|
1415
|
-
|
|
84
|
+
React 19 · TypeScript · Tailwind CSS v4 · React Hook Form · Zustand · Framer Motion · Recharts · Lucide React · Swiper · Vitest
|
|
1416
85
|
|
|
1417
|
-
|
|
86
|
+
## License
|
|
1418
87
|
|
|
1419
|
-
|
|
88
|
+
MIT © [e-burgos](https://github.com/e-burgos)
|