xertica-ui 2.4.0 → 2.5.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 +621 -564
- package/README.md +443 -417
- package/assets/xertica-logo.svg +37 -37
- package/assets/xertica-x-logo.svg +20 -20
- package/bin/cli.ts +1244 -1244
- package/bin/generate-tokens.ts +9 -9
- package/bin/language-config.ts +358 -358
- package/components/assistant/code-block/CodeBlock.tsx +268 -268
- package/components/assistant/formatted-document/FormattedDocument.tsx +147 -147
- package/components/assistant/modern-chat-input/ModernChatInput.tsx +564 -564
- package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +99 -99
- package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +104 -104
- package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -81
- package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +88 -88
- package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +75 -75
- package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +564 -564
- package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +67 -67
- package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +103 -103
- package/components/assistant/xertica-assistant/use-assistant.ts +615 -615
- package/components/assistant/xertica-assistant/xertica-assistant.tsx +611 -611
- package/components/blocks/card-patterns/ActivityCard.tsx +100 -100
- package/components/blocks/card-patterns/ActivityCardSkeleton.tsx +56 -56
- package/components/blocks/card-patterns/FeatureCardSkeleton.tsx +58 -58
- package/components/blocks/card-patterns/NotificationCard.tsx +140 -140
- package/components/blocks/card-patterns/NotificationCardSkeleton.tsx +81 -81
- package/components/blocks/card-patterns/ProfileCard.tsx +112 -112
- package/components/blocks/card-patterns/ProfileCardSkeleton.tsx +69 -69
- package/components/blocks/card-patterns/ProjectCard.tsx +123 -123
- package/components/blocks/card-patterns/ProjectCardSkeleton.tsx +67 -67
- package/components/blocks/card-patterns/QuickActionCardSkeleton.tsx +44 -44
- package/components/blocks/card-patterns/card-patterns.stories.tsx +594 -594
- package/components/blocks/card-patterns/index.ts +29 -29
- package/components/brand/language-selector/LanguageSelector.tsx +102 -102
- package/components/brand/language-selector/language-selector.stories.tsx +111 -111
- package/components/brand/language-selector/language-selector.test.tsx +101 -101
- package/components/brand/theme-toggle/ThemeToggle.tsx +74 -74
- package/components/brand/xertica-provider/XerticaProvider.tsx +112 -109
- package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
- package/components/index.ts +86 -86
- package/components/layout/sidebar/sidebar.mdx +1 -1
- package/components/layout/sidebar/sidebar.stories.tsx +201 -0
- package/components/layout/sidebar/sidebar.tsx +1164 -1079
- package/components/media/FloatingMediaWrapper.tsx +371 -371
- package/components/media/audio-player/AudioPlayer.tsx +768 -768
- package/components/media/video-player/VideoPlayer.tsx +310 -310
- package/components/pages/forgot-password-page/ForgotPasswordPage.tsx +188 -188
- package/components/pages/home-content/HomeContent.tsx +120 -120
- package/components/pages/home-content/home-content.mdx +62 -62
- package/components/pages/home-page/HomePage.tsx +78 -78
- package/components/pages/home-page/home-page.mdx +53 -53
- package/components/pages/login-page/LoginPage.tsx +218 -218
- package/components/pages/reset-password-page/ResetPasswordPage.tsx +243 -243
- package/components/pages/template-content/TemplateContent.tsx +1354 -1354
- package/components/pages/template-content/template-content.mdx +61 -61
- package/components/pages/template-page/TemplatePage.stories.tsx +8 -15
- package/components/pages/template-page/template-page.mdx +53 -53
- package/components/pages/verify-email-page/VerifyEmailPage.tsx +206 -206
- package/components/shared/error-boundary.stories.tsx +114 -114
- package/components/shared/error-boundary.tsx +150 -150
- package/components/shared/error-fallbacks.tsx +222 -222
- package/components/ui/accordion/accordion.mdx +8 -8
- package/components/ui/alert/alert.mdx +8 -8
- package/components/ui/alert-dialog/alert-dialog.mdx +8 -8
- package/components/ui/aspect-ratio/aspect-ratio.mdx +8 -8
- package/components/ui/assistant-chart/assistant-chart.mdx +8 -8
- package/components/ui/avatar/avatar.mdx +8 -8
- package/components/ui/badge/badge.mdx +8 -8
- package/components/ui/breadcrumb/breadcrumb.mdx +8 -8
- package/components/ui/button/button.mdx +8 -8
- package/components/ui/calendar/calendar.mdx +8 -8
- package/components/ui/card/card.mdx +8 -8
- package/components/ui/carousel/carousel.mdx +8 -8
- package/components/ui/chart/chart.mdx +8 -8
- package/components/ui/chart/chart.test.tsx +1 -1
- package/components/ui/chart/chart.tsx +13 -6
- package/components/ui/checkbox/checkbox.mdx +8 -8
- package/components/ui/collapsible/collapsible.mdx +8 -8
- package/components/ui/command/command.mdx +8 -8
- package/components/ui/context-menu/context-menu.mdx +8 -8
- package/components/ui/dialog/dialog.mdx +8 -8
- package/components/ui/drawer/drawer.mdx +8 -8
- package/components/ui/dropdown-menu/dropdown-menu.mdx +8 -8
- package/components/ui/empty/empty.mdx +8 -8
- package/components/ui/file-upload/file-upload.mdx +8 -8
- package/components/ui/hover-card/hover-card.mdx +8 -8
- package/components/ui/input/input.mdx +8 -8
- package/components/ui/input-otp/input-otp.mdx +8 -8
- package/components/ui/label/label.mdx +8 -8
- package/components/ui/map/map.mdx +8 -8
- package/components/ui/menubar/menubar.mdx +8 -8
- package/components/ui/navigation-menu/navigation-menu.mdx +8 -8
- package/components/ui/notification-badge/notification-badge.mdx +8 -8
- package/components/ui/pagination/pagination.mdx +8 -8
- package/components/ui/popover/popover.mdx +8 -8
- package/components/ui/progress/progress.mdx +8 -8
- package/components/ui/radio-group/radio-group.mdx +8 -8
- package/components/ui/rating/rating.mdx +8 -8
- package/components/ui/resizable/resizable.mdx +8 -8
- package/components/ui/route-map/route-map.mdx +8 -8
- package/components/ui/scroll-area/scroll-area.mdx +8 -8
- package/components/ui/search/search.mdx +8 -8
- package/components/ui/select/select.mdx +8 -8
- package/components/ui/separator/separator.mdx +8 -8
- package/components/ui/sheet/sheet.mdx +8 -8
- package/components/ui/simple-map/simple-map.mdx +8 -8
- package/components/ui/skeleton/skeleton.mdx +8 -8
- package/components/ui/slider/slider.mdx +8 -8
- package/components/ui/sonner/sonner.mdx +8 -8
- package/components/ui/stats-card/index.ts +2 -2
- package/components/ui/stats-card/stats-card-skeleton.tsx +60 -60
- package/components/ui/stats-card/stats-card.mdx +8 -8
- package/components/ui/stats-card/stats-card.stories.tsx +117 -99
- package/components/ui/stats-card/stats-card.tsx +18 -2
- package/components/ui/stepper/stepper.mdx +8 -8
- package/components/ui/switch/switch.mdx +8 -8
- package/components/ui/table/table.mdx +8 -8
- package/components/ui/tabs/tabs.mdx +8 -8
- package/components/ui/textarea/textarea.mdx +8 -8
- package/components/ui/timeline/timeline.mdx +8 -8
- package/components/ui/toggle/toggle.mdx +8 -8
- package/components/ui/toggle-group/toggle-group.mdx +8 -8
- package/components/ui/tooltip/tooltip.mdx +8 -8
- package/components/ui/tree-view/tree-view.mdx +8 -8
- package/components.json +153 -533
- package/contexts/AuthContext.tsx +121 -121
- package/contexts/BrandColorsContext.tsx +39 -8
- package/contexts/LanguageContext.test.tsx +121 -121
- package/contexts/LanguageContext.tsx +250 -250
- package/contexts/theme-data.ts +51 -0
- package/dist/AssistantChart-BKVtGUKF.js +3383 -0
- package/dist/AssistantChart-BZTPJ5dP.cjs +3551 -0
- package/dist/{AssistantChart-BAx9VQvb.cjs → AssistantChart-Bdd44uBn.cjs} +388 -127
- package/dist/{AssistantChart-CVko2A1W.js → AssistantChart-CFhDdGyU.js} +391 -130
- package/dist/{AssistantChart-CVzmmhx4.js → AssistantChart-C_hwFRRr.js} +4 -4
- package/dist/{AssistantChart-BAudAfne.cjs → AssistantChart-CldVCVDe.cjs} +5 -5
- package/dist/{AssistantChart-BP8upjMk.js → AssistantChart-Cu3m7RBo.js} +5 -5
- package/dist/AssistantChart-CxGjH7Qk.js +3477 -0
- package/dist/AssistantChart-DIpshm3i.js +4784 -0
- package/dist/AssistantChart-DMJJ_Amf.js +3383 -0
- package/dist/AssistantChart-D_PTeu8P.cjs +3503 -0
- package/dist/{AssistantChart-9w31gdAb.cjs → AssistantChart-DoZCyS5r.cjs} +4 -4
- package/dist/AssistantChart-WeycT5Pd.cjs +3551 -0
- package/dist/AssistantChart-zjsy2GaZ.cjs +4810 -0
- package/dist/AudioPlayer-B1lt5cPl.cjs +989 -0
- package/dist/AudioPlayer-BZ7bibzU.cjs +982 -0
- package/dist/AudioPlayer-BpRPS4-1.cjs +1277 -0
- package/dist/AudioPlayer-C12BjQBV.cjs +997 -0
- package/dist/{AudioPlayer-1ypwE2Wh.cjs → AudioPlayer-CFeV8t-5.cjs} +1 -1
- package/dist/{AudioPlayer-DuKXrCfy.js → AudioPlayer-CGRUtUdN.js} +1 -1
- package/dist/AudioPlayer-Coly3q5R.js +1278 -0
- package/dist/AudioPlayer-CySJIyvL.js +937 -0
- package/dist/AudioPlayer-DMcG_c7L.js +990 -0
- package/dist/AudioPlayer-DcFKRJE_.js +998 -0
- package/dist/AudioPlayer-IAU5q5T1.cjs +936 -0
- package/dist/AudioPlayer-e8LfNoqO.js +983 -0
- package/dist/BrandColorsContext-565dDHd5.js +660 -0
- package/dist/BrandColorsContext-BMRJ04Wf.js +718 -0
- package/dist/BrandColorsContext-BcJbtkqn.cjs +659 -0
- package/dist/BrandColorsContext-BwY-b6M4.cjs +725 -0
- package/dist/{xertica-assistant-Qp3ydksa.cjs → CodeBlock-7TTgmdGG.cjs} +263 -51
- package/dist/{xertica-assistant-gnCJdcZY.js → CodeBlock-BeSt1h5P.js} +219 -7
- package/dist/CodeBlock-BgfYL_rD.cjs +2094 -0
- package/dist/CodeBlock-BlcqlA9M.cjs +2094 -0
- package/dist/CodeBlock-Bnmeu5ez.cjs +2094 -0
- package/dist/CodeBlock-BtfPlbAI.js +2078 -0
- package/dist/CodeBlock-CIySIuYr.js +2078 -0
- package/dist/CodeBlock-CuPtUM-7.cjs +2094 -0
- package/dist/CodeBlock-D6ffWXgc.js +2078 -0
- package/dist/CodeBlock-D8dcwbit.cjs +2094 -0
- package/dist/CodeBlock-DMZrFnlw.cjs +2094 -0
- package/dist/CodeBlock-DlBehYN8.js +2078 -0
- package/dist/CodeBlock-DnYNI8rQ.js +2078 -0
- package/dist/CodeBlock-DvKWbSnE.cjs +2094 -0
- package/dist/CodeBlock-DwMCfkFY.js +2078 -0
- package/dist/CodeBlock-Dy6CNYyj.js +2078 -0
- package/dist/CodeBlock-U1pPOQI7.cjs +2094 -0
- package/dist/CodeBlock-f_GpNhEB.js +2078 -0
- package/dist/CodeBlock-oB6u8nI1.js +2078 -0
- package/dist/CodeBlock-tZC31B73.cjs +2094 -0
- package/dist/FeatureCard-CxC-7C-C.cjs +300 -0
- package/dist/FeatureCard-DbHWCb4E.js +301 -0
- package/dist/ImageWithFallback-CGtidP6B.cjs +4542 -0
- package/dist/ImageWithFallback-lsg3pdFg.js +4508 -0
- package/dist/{LanguageContext-DvUt5jBg.cjs → LanguageContext-B_KFTCzT.cjs} +2 -2
- package/dist/{LanguageContext-BwhwC3G2.js → LanguageContext-CS14yCpi.js} +2 -2
- package/dist/{XerticaXLogo-DHz5SugF.js → LanguageSelector-B5YfbHra.js} +115 -136
- package/dist/{XerticaXLogo-DTee_y8X.cjs → LanguageSelector-D6uacAIM.cjs} +115 -136
- package/dist/LayoutContext-B45-e9DI.cjs +93 -0
- package/dist/LayoutContext-BAql6ZRY.js +97 -0
- package/dist/LayoutContext-Bav3UMEA.js +94 -0
- package/dist/LayoutContext-BvK-ggDa.cjs +96 -0
- package/dist/{ThemeContext-Bo-W2WZH.js → ThemeContext-BWq9ACPo.js} +8 -13
- package/dist/{ThemeContext-ept8jhXI.js → ThemeContext-BXjrgUjW.js} +261 -200
- package/dist/{ThemeContext-BblcjQup.cjs → ThemeContext-Bmod0Cg2.cjs} +8 -13
- package/dist/ThemeContext-BoH4NLfN.js +734 -0
- package/dist/{ThemeContext-BbBNoFTG.js → ThemeContext-C2EwAPDt.js} +2 -2
- package/dist/{ThemeContext-U4dEYc6C.cjs → ThemeContext-CGk3KK0k.cjs} +1 -8
- package/dist/{ThemeContext-D3LzacmG.js → ThemeContext-CQSo4Iwc.js} +1 -8
- package/dist/{ThemeContext-CP3a0jxy.cjs → ThemeContext-j5aGtPky.cjs} +262 -193
- package/dist/ThemeContext-r69W20Xg.cjs +733 -0
- package/dist/{ThemeContext-Cmr8Ex8H.cjs → ThemeContext-vTjumZeM.cjs} +2 -2
- package/dist/{VerifyEmailPage-BRSP-Pwt.cjs → VerifyEmailPage--1Vurewl.cjs} +3 -3
- package/dist/{VerifyEmailPage-CbgjOF0v.js → VerifyEmailPage-1WwWczAn.js} +12 -22
- package/dist/{VerifyEmailPage-DF2ilhum.cjs → VerifyEmailPage-B4peJjAT.cjs} +356 -334
- package/dist/{VerifyEmailPage-CR7kb5df.cjs → VerifyEmailPage-BComraR7.cjs} +12 -22
- package/dist/{VerifyEmailPage-u_Dn7t1U.cjs → VerifyEmailPage-Bp1XXl3H.cjs} +4 -4
- package/dist/{VerifyEmailPage-CkBYfsNy.cjs → VerifyEmailPage-By3Jf__L.cjs} +4 -4
- package/dist/{VerifyEmailPage-Bv8Ah_TK.cjs → VerifyEmailPage-ByerOcm4.cjs} +20 -23
- package/dist/{VerifyEmailPage-BE-L9mB7.js → VerifyEmailPage-C0c2e5n0.js} +7 -7
- package/dist/{VerifyEmailPage-EhudUdqF.js → VerifyEmailPage-C5TNQTBa.js} +355 -343
- package/dist/{VerifyEmailPage-Dt7zgA4w.cjs → VerifyEmailPage-CFLMls1p.cjs} +4 -4
- package/dist/{VerifyEmailPage-Bvfv8HVQ.js → VerifyEmailPage-CGIwmWrm.js} +461 -379
- package/dist/{VerifyEmailPage-Cyl55sJb.js → VerifyEmailPage-CJLz3jrn.js} +20 -23
- package/dist/VerifyEmailPage-COiyNl1y.js +2825 -0
- package/dist/{VerifyEmailPage-DMBh4NM9.cjs → VerifyEmailPage-CYXtbKi3.cjs} +1 -1
- package/dist/{VerifyEmailPage-DTtFfC-J.js → VerifyEmailPage-CgMxRb4z.js} +3 -3
- package/dist/VerifyEmailPage-CpqqpLpo.cjs +3305 -0
- package/dist/VerifyEmailPage-CqKsR2v8.js +2827 -0
- package/dist/{VerifyEmailPage-Bae2cBXT.cjs → VerifyEmailPage-Cwi3kbol.cjs} +7 -7
- package/dist/{VerifyEmailPage-X14vhdyl.js → VerifyEmailPage-DGhuIqkb.js} +4 -4
- package/dist/{VerifyEmailPage-BIBOKV7Z.js → VerifyEmailPage-DSBMRHtl.js} +36 -41
- package/dist/{VerifyEmailPage-D-FRj5TU.cjs → VerifyEmailPage-De6bQjrz.cjs} +36 -41
- package/dist/{VerifyEmailPage-BJjAMUTW.js → VerifyEmailPage-DgIid028.js} +4 -4
- package/dist/VerifyEmailPage-DjQKRlUS.cjs +2824 -0
- package/dist/{VerifyEmailPage-CdYPSJoO.js → VerifyEmailPage-DvMLZgFt.js} +1 -1
- package/dist/{VerifyEmailPage-C_ihbcth.js → VerifyEmailPage-MTD7AG1Z.js} +4 -4
- package/dist/VerifyEmailPage-s-1X3LDJ.cjs +2826 -0
- package/dist/XerticaOrbe-KL1RBHzw.cjs +1354 -0
- package/dist/XerticaOrbe-zwS1p2a8.js +1355 -0
- package/dist/XerticaProvider-6btlAlzc.js +17 -0
- package/dist/{XerticaProvider-siSt9uG2.js → XerticaProvider-B7EVH-NF.js} +2 -2
- package/dist/{XerticaProvider-AbWlr7Af.cjs → XerticaProvider-BIrqfZ-i.cjs} +11 -8
- package/dist/XerticaProvider-BNoNOxQ5.cjs +16 -0
- package/dist/XerticaProvider-BlY2limY.cjs +38 -0
- package/dist/{XerticaProvider-CWgby5mY.js → XerticaProvider-C1DKnvLh.js} +4 -4
- package/dist/{XerticaProvider-AChwphCO.cjs → XerticaProvider-CBGc4EMA.cjs} +4 -4
- package/dist/{XerticaProvider-BITjgC5p.js → XerticaProvider-CEoWMTxu.js} +2 -2
- package/dist/XerticaProvider-CeS5G_n5.cjs +45 -0
- package/dist/{XerticaProvider-By8q3Roe.cjs → XerticaProvider-CllrbMEJ.cjs} +2 -2
- package/dist/{XerticaProvider-B8CaV7xu.cjs → XerticaProvider-D-yNhF94.cjs} +1 -1
- package/dist/XerticaProvider-DDuiIcKo.js +39 -0
- package/dist/{XerticaProvider-DQtvJU7m.js → XerticaProvider-DYq4JWtg.js} +1 -1
- package/dist/{XerticaProvider-CWs6EwNa.js → XerticaProvider-Dt5HEzbQ.js} +10 -10
- package/dist/{XerticaProvider-CW9hpCdF.cjs → XerticaProvider-ET0ihewn.cjs} +2 -2
- package/dist/XerticaProvider-cI9hSs27.cjs +38 -0
- package/dist/XerticaProvider-hSwhNQex.js +39 -0
- package/dist/XerticaProvider-ra2NciRq.js +43 -0
- package/dist/{XerticaXLogo-ChryA6xj.js → XerticaXLogo-B7xQ5dhi.js} +1 -1
- package/dist/{XerticaXLogo-CziKMQil.cjs → XerticaXLogo-CQUUjXoH.cjs} +8 -8
- package/dist/{XerticaXLogo-DfUvz-lD.js → XerticaXLogo-Cmsp-Eey.js} +9 -9
- package/dist/{XerticaXLogo-CFuIlYFH.js → XerticaXLogo-DZbo4vOE.js} +12 -12
- package/dist/{XerticaXLogo-8TTzBjHw.cjs → XerticaXLogo-Zw2B276b.cjs} +1 -1
- package/dist/{XerticaXLogo-kslQ8Tk_.cjs → XerticaXLogo-bvZSgwGF.cjs} +13 -7
- package/dist/alert-dialog-BOje--vD.js +847 -0
- package/dist/alert-dialog-BtEuQqrg.cjs +870 -0
- package/dist/{alert-dialog-yckpaOpy.cjs → alert-dialog-DSKByiKZ.cjs} +3 -3
- package/dist/{alert-dialog-iDe5VE5o.js → alert-dialog-s-vmNkJ_.js} +3 -3
- package/dist/assistant.cjs.js +1 -1
- package/dist/assistant.es.js +1 -1
- package/dist/brand.cjs.js +1 -1
- package/dist/brand.es.js +1 -1
- package/dist/breadcrumb-CqJ7bHY5.js +161 -0
- package/dist/breadcrumb-m9Hb2_XN.cjs +177 -0
- package/dist/cli.js +45 -9
- package/dist/components/assistant/xertica-assistant/hooks/index.d.ts +6 -0
- package/dist/components/assistant/xertica-assistant/hooks/use-assistant-conversations.d.ts +21 -0
- package/dist/components/assistant/xertica-assistant/hooks/use-assistant-messages.d.ts +49 -0
- package/dist/components/assistant/xertica-assistant/hooks/use-assistant-suggestions.d.ts +16 -0
- package/dist/components/blocks/audio-player/AudioPlayer.d.ts +35 -0
- package/dist/components/blocks/audio-player/index.d.ts +1 -0
- package/dist/components/blocks/document-editor/DocumentEditor.d.ts +26 -0
- package/dist/components/blocks/document-editor/index.d.ts +1 -0
- package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +41 -0
- package/dist/components/blocks/podcast-player/index.d.ts +1 -0
- package/dist/components/brand/xertica-provider/XerticaProvider.d.ts +3 -1
- package/dist/components/ui/chart/chart.d.ts +12 -3
- package/dist/components/ui/chart/parts/chart-dashboard.d.ts +113 -0
- package/dist/components/ui/chart/parts/chart-metric.d.ts +118 -0
- package/dist/components/ui/chart/parts/chart-primitives.d.ts +101 -0
- package/dist/components/ui/chart/parts/chart-shared.d.ts +20 -0
- package/dist/components/ui/chart/parts/chart-utils.d.ts +12 -0
- package/dist/components/ui/chart/parts/index.d.ts +5 -0
- package/dist/components/ui/stats-card/stats-card.d.ts +10 -0
- package/dist/contexts/theme-data.d.ts +4 -0
- package/dist/dropdown-menu-BDB5CmQs.cjs +247 -0
- package/dist/dropdown-menu-DQidbKBD.js +231 -0
- package/dist/google-maps-loader-BFWp6VPd.js +287 -0
- package/dist/google-maps-loader-BKcdgFbu.cjs +312 -0
- package/dist/{google-maps-loader-t2IlYBzw.js → google-maps-loader-CTYySAun.js} +4 -0
- package/dist/google-maps-loader-CumCNXeG.js +312 -0
- package/dist/{google-maps-loader-BqsYL48U.cjs → google-maps-loader-Y-QkD-Li.cjs} +5 -0
- package/dist/google-maps-loader-eS3uQ5TA.cjs +287 -0
- package/dist/header-Cgy6vYPk.cjs +731 -0
- package/dist/header-DRlT4jgI.js +715 -0
- package/dist/header-Dux00SI4.cjs +731 -0
- package/dist/header-EkGKXPsD.js +715 -0
- package/dist/header-WfEywpyc.cjs +731 -0
- package/dist/header-tifNQn2U.js +715 -0
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +1 -1
- package/dist/index-BhapVLVj.js +8 -0
- package/dist/{index-D3RLKRAs.cjs → index-COtD8bRW.cjs} +1 -1
- package/dist/index-D6fxYEY8.cjs +7 -0
- package/dist/index-DAIp0_HK.js +8 -0
- package/dist/index-DW5tYe26.js +8 -0
- package/dist/index-GA__GvnG.cjs +7 -0
- package/dist/index.cjs.js +6 -6
- package/dist/index.es.js +6 -6
- package/dist/index.umd.js +1043 -470
- package/dist/input-2R4loU86.js +127 -0
- package/dist/input-DWANSKGb.cjs +145 -0
- package/dist/layout.cjs.js +1 -1
- package/dist/layout.es.js +1 -1
- package/dist/pages.cjs.js +1 -1
- package/dist/pages.es.js +1 -1
- package/dist/progress-DPtzoVV8.js +175 -0
- package/dist/progress-EeaoqqUs.cjs +191 -0
- package/dist/rich-text-editor-0mraWT5y.cjs +2376 -0
- package/dist/rich-text-editor-B-IkcPD0.js +2874 -0
- package/dist/rich-text-editor-B2CKz7nx.cjs +2903 -0
- package/dist/rich-text-editor-B6jMRLzk.cjs +1939 -0
- package/dist/rich-text-editor-B8_oYcIR.js +1730 -0
- package/dist/rich-text-editor-B9UbSXNb.js +1203 -0
- package/dist/rich-text-editor-BYuRBNBU.js +2373 -0
- package/dist/rich-text-editor-Bb9pySTs.cjs +2374 -0
- package/dist/rich-text-editor-BcL6L3cm.cjs +2374 -0
- package/dist/rich-text-editor-BoVZYtTs.cjs +2391 -0
- package/dist/rich-text-editor-Bp3zQqMC.js +2954 -0
- package/dist/rich-text-editor-CMgSN_w2.js +1189 -0
- package/dist/rich-text-editor-CPV1lEPH.cjs +1748 -0
- package/dist/rich-text-editor-CeucBdIv.cjs +2971 -0
- package/dist/rich-text-editor-CoKqbCtu.cjs +1799 -0
- package/dist/rich-text-editor-Cw56T_mB.js +2356 -0
- package/dist/rich-text-editor-Cyt8qs2b.js +1921 -0
- package/dist/rich-text-editor-D6H84OcX.cjs +1220 -0
- package/dist/rich-text-editor-D76gD-QI.js +2328 -0
- package/dist/rich-text-editor-DKkokOnA.js +1781 -0
- package/dist/rich-text-editor-DNsdpN64.cjs +2359 -0
- package/dist/rich-text-editor-DfG8bCyY.js +2358 -0
- package/dist/rich-text-editor-DloeW0wc.js +2832 -0
- package/dist/rich-text-editor-Dxjw31Z4.js +2341 -0
- package/dist/rich-text-editor-DzP0Epmb.js +2356 -0
- package/dist/rich-text-editor-bRkNoeZY.cjs +2891 -0
- package/dist/rich-text-editor-lyYE2ZG5.cjs +1207 -0
- package/dist/rich-text-editor-skplNlBM.cjs +2345 -0
- package/dist/select-Bkbr0f-Z.cjs +162 -0
- package/dist/select-CvIVdX2n.js +145 -0
- package/dist/{sidebar-CplprZpM.js → sidebar-0ocFLSks.js} +127 -50
- package/dist/{sidebar-CA6_ek3f.js → sidebar-B6SlKZYN.js} +40 -49
- package/dist/{sidebar-CmvwjnVb.js → sidebar-BViy8Eeu.js} +17 -9
- package/dist/{sidebar-Dz7bd3zP.js → sidebar-BbVIQvlP.js} +1 -1
- package/dist/{sidebar-CVUGHOS_.cjs → sidebar-BxGXsDAd.cjs} +16 -8
- package/dist/sidebar-CK_0ZQHj.cjs +803 -0
- package/dist/sidebar-CUuOvYhK.js +787 -0
- package/dist/{sidebar-B3EYhli0.cjs → sidebar-CeTMuzOx.cjs} +128 -47
- package/dist/{sidebar-KIS0C2JH.js → sidebar-CrQDDdcz.js} +24 -33
- package/dist/{sidebar-zowjejT2.cjs → sidebar-DAaY8bRU.cjs} +24 -33
- package/dist/{sidebar-B9NR0lCe.cjs → sidebar-DQj1z3jG.cjs} +227 -269
- package/dist/sidebar-Djn5syhi.cjs +786 -0
- package/dist/sidebar-LluMXfam.js +759 -0
- package/dist/sidebar-_rT7rBMk.js +787 -0
- package/dist/{sidebar-BvF5I2Ue.cjs → sidebar-nzPoVHBQ.cjs} +41 -46
- package/dist/{sidebar-C5B_LHek.cjs → sidebar-q7P2Godd.cjs} +1 -1
- package/dist/slider-Bc5Hd0y1.js +56 -0
- package/dist/slider-N7hFFj6X.cjs +73 -0
- package/dist/tooltip-Ded96neP.cjs +137 -0
- package/dist/tooltip-HDOoD2-0.js +120 -0
- package/dist/ui.cjs.js +2 -2
- package/dist/ui.es.js +2 -2
- package/dist/use-audio-player-B31J-aqh.cjs +187 -0
- package/dist/use-audio-player-BkmEmj8Q.js +185 -0
- package/dist/use-audio-player-CLFTWFW1.cjs +184 -0
- package/dist/use-audio-player-CLLn00I6.js +188 -0
- package/dist/{use-audio-player-Dn1NR9xN.cjs → use-audio-player-NKsWyjWu.cjs} +7 -3
- package/dist/{use-audio-player-Bkh23vQ3.js → use-audio-player-nv8ZSGa1.js} +7 -3
- package/dist/use-file-upload-BcjEo2S5.js +404 -0
- package/dist/use-file-upload-CRJR68Tj.cjs +403 -0
- package/dist/use-mobile-B0hNy_Y6.cjs +4303 -0
- package/dist/use-mobile-BXuYROXM.js +4202 -0
- package/dist/use-mobile-Bbd51ASU.cjs +4392 -0
- package/dist/use-mobile-Bk6CX-TC.js +4359 -0
- package/dist/use-mobile-BvYdisLP.js +4202 -0
- package/dist/use-mobile-BzuxjzNX.cjs +4392 -0
- package/dist/use-mobile-CG2-SdXV.cjs +4235 -0
- package/dist/use-mobile-CKb5pqTs.js +4269 -0
- package/dist/use-mobile-CYuAuGDl.js +4202 -0
- package/dist/use-mobile-CaENcqm-.js +4508 -0
- package/dist/use-mobile-CbrYgJGJ.js +4203 -0
- package/dist/use-mobile-Cd4xPrKq.cjs +46 -0
- package/dist/use-mobile-DMOvImGQ.cjs +4542 -0
- package/dist/use-mobile-DRB3BQgD.cjs +4235 -0
- package/dist/use-mobile-DZvv7QMR.js +4359 -0
- package/dist/use-mobile-DdI_TXam.cjs +4235 -0
- package/dist/use-mobile-DlceKf8a.js +4359 -0
- package/dist/use-mobile-DsOnow1o.cjs +4236 -0
- package/dist/use-mobile-Kcj6jSnK.cjs +4392 -0
- package/dist/use-mobile-bnKcua_i.js +4202 -0
- package/dist/use-mobile-j4w2Jrf1.js +30 -0
- package/dist/use-mobile-ncXBeE2z.cjs +4235 -0
- package/dist/use-rich-text-editor-DjiddBGv.js +282 -0
- package/dist/use-rich-text-editor-lpeswbCs.cjs +281 -0
- package/dist/xertica-assistant-BdiZag0h.js +2187 -0
- package/dist/xertica-assistant-CrgTb6Hs.cjs +2155 -0
- package/dist/xertica-assistant-CyikE3N_.js +2173 -0
- package/dist/xertica-assistant-DCsnQyi5.js +2156 -0
- package/dist/xertica-assistant-DUBpmEgo.cjs +2186 -0
- package/dist/xertica-assistant-QFUnv5I2.cjs +2180 -0
- package/dist/{xertica-assistant-Bj3vBCq_.cjs → xertica-assistant-V_IdW4WF.cjs} +27 -9
- package/dist/{xertica-assistant-BMqdyRVi.js → xertica-assistant-ciJaWqm1.js} +28 -10
- package/dist/{xertica-assistant-B1IaHXnB.cjs → xertica-assistant-dyP7KHM5.cjs} +533 -392
- package/dist/{xertica-assistant-DPsESB6t.js → xertica-assistant-yX1CFBBo.js} +535 -394
- package/dist/xertica-ui.css +2 -2
- package/docs/architecture-improvements.md +456 -456
- package/docs/architecture.md +312 -312
- package/docs/components/assistant.md +428 -428
- package/docs/components/branding.md +252 -252
- package/docs/components/card-patterns.md +447 -447
- package/docs/components/error-boundary.md +201 -201
- package/docs/components/hooks.md +432 -432
- package/docs/components/language-selector.md +176 -176
- package/docs/components/pages.md +323 -323
- package/docs/components/sidebar.md +19 -2
- package/docs/components/stats-card.md +20 -2
- package/docs/doc-audit.md +244 -244
- package/docs/getting-started.md +616 -616
- package/docs/guidelines.md +330 -330
- package/docs/i18n.md +480 -480
- package/docs/installation.md +268 -268
- package/docs/llms.md +295 -295
- package/docs/state-management.md +289 -289
- package/guidelines/Guidelines.md +409 -409
- package/llms-compact.txt +30 -1
- package/llms-full.txt +11553 -7133
- package/llms.txt +1 -1
- package/package.json +219 -219
- package/styles/xertica/base.css +90 -90
- package/styles/xertica/tokens.css +9 -9
- package/templates/.prettierignore +4 -4
- package/templates/.prettierrc +10 -10
- package/templates/CLAUDE.md +180 -180
- package/templates/guidelines/Guidelines.md +865 -577
- package/templates/package.json +69 -69
- package/templates/src/app/App.tsx +46 -46
- package/templates/src/app/components/AuthGuard.tsx +131 -131
- package/templates/src/features/assistant/data/mock.ts +75 -75
- package/templates/src/features/assistant/hooks/useAssistantConfig.ts +20 -20
- package/templates/src/features/assistant/index.ts +5 -5
- package/templates/src/features/auth/ui/AuthPageShell.tsx +32 -32
- package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
- package/templates/src/features/auth/ui/LoginContent.tsx +92 -92
- package/templates/src/features/auth/ui/ResetPasswordContent.tsx +183 -183
- package/templates/src/features/auth/ui/SocialLoginButtons.tsx +78 -78
- package/templates/src/features/auth/ui/VerifyEmailContent.tsx +80 -80
- package/templates/src/features/home/data/mock.ts +41 -41
- package/templates/src/features/home/hooks/useFeatureCards.ts +20 -20
- package/templates/src/features/home/index.ts +11 -11
- package/templates/src/features/home/ui/HomeContent.tsx +117 -117
- package/templates/src/features/template/ui/CrudTemplate.tsx +112 -112
- package/templates/src/features/template/ui/DashboardTemplate.tsx +110 -110
- package/templates/src/features/template/ui/FormTemplate.tsx +117 -117
- package/templates/src/features/template/ui/LoginTemplate.tsx +59 -59
- package/templates/src/features/template/ui/TemplateContent.tsx +1322 -1322
- package/templates/src/i18n.ts +124 -124
- package/templates/src/locales/en/common.json +21 -21
- package/templates/src/locales/en/components/activityCard.json +10 -10
- package/templates/src/locales/en/components/assistant.json +119 -119
- package/templates/src/locales/en/components/media.json +29 -29
- package/templates/src/locales/en/components/notificationCard.json +5 -5
- package/templates/src/locales/en/components/profileCard.json +8 -8
- package/templates/src/locales/en/components/projectCard.json +10 -10
- package/templates/src/locales/en/components/sidebar.json +14 -14
- package/templates/src/locales/en/components/stats.json +8 -8
- package/templates/src/locales/en/components/team.json +14 -14
- package/templates/src/locales/en/errors.json +9 -9
- package/templates/src/locales/en/languageSelector.json +7 -7
- package/templates/src/locales/en/nav.json +6 -6
- package/templates/src/locales/en/pages/crudTemplate.json +25 -25
- package/templates/src/locales/en/pages/dashboardTemplate.json +20 -20
- package/templates/src/locales/en/pages/forgotPassword.json +10 -10
- package/templates/src/locales/en/pages/formTemplate.json +16 -16
- package/templates/src/locales/en/pages/home.json +7 -7
- package/templates/src/locales/en/pages/login.json +15 -15
- package/templates/src/locales/en/pages/loginTemplate.json +9 -9
- package/templates/src/locales/en/pages/resetPassword.json +18 -18
- package/templates/src/locales/en/pages/templates.json +317 -317
- package/templates/src/locales/en/pages/verifyEmail.json +12 -12
- package/templates/src/locales/en/themeToggle.json +6 -6
- package/templates/src/locales/es/common.json +21 -21
- package/templates/src/locales/es/components/activityCard.json +10 -10
- package/templates/src/locales/es/components/assistant.json +119 -119
- package/templates/src/locales/es/components/media.json +29 -29
- package/templates/src/locales/es/components/notificationCard.json +5 -5
- package/templates/src/locales/es/components/profileCard.json +8 -8
- package/templates/src/locales/es/components/projectCard.json +10 -10
- package/templates/src/locales/es/components/sidebar.json +14 -14
- package/templates/src/locales/es/components/stats.json +8 -8
- package/templates/src/locales/es/components/team.json +14 -14
- package/templates/src/locales/es/errors.json +9 -9
- package/templates/src/locales/es/languageSelector.json +7 -7
- package/templates/src/locales/es/nav.json +6 -6
- package/templates/src/locales/es/pages/crudTemplate.json +25 -25
- package/templates/src/locales/es/pages/dashboardTemplate.json +20 -20
- package/templates/src/locales/es/pages/forgotPassword.json +10 -10
- package/templates/src/locales/es/pages/formTemplate.json +16 -16
- package/templates/src/locales/es/pages/home.json +7 -7
- package/templates/src/locales/es/pages/login.json +15 -15
- package/templates/src/locales/es/pages/loginTemplate.json +9 -9
- package/templates/src/locales/es/pages/resetPassword.json +18 -18
- package/templates/src/locales/es/pages/templates.json +317 -317
- package/templates/src/locales/es/pages/verifyEmail.json +12 -12
- package/templates/src/locales/es/themeToggle.json +6 -6
- package/templates/src/locales/pt-BR/common.json +21 -21
- package/templates/src/locales/pt-BR/components/activityCard.json +10 -10
- package/templates/src/locales/pt-BR/components/assistant.json +119 -119
- package/templates/src/locales/pt-BR/components/media.json +29 -29
- package/templates/src/locales/pt-BR/components/notificationCard.json +5 -5
- package/templates/src/locales/pt-BR/components/profileCard.json +8 -8
- package/templates/src/locales/pt-BR/components/projectCard.json +10 -10
- package/templates/src/locales/pt-BR/components/sidebar.json +14 -14
- package/templates/src/locales/pt-BR/components/stats.json +8 -8
- package/templates/src/locales/pt-BR/components/team.json +14 -14
- package/templates/src/locales/pt-BR/errors.json +9 -9
- package/templates/src/locales/pt-BR/languageSelector.json +7 -7
- package/templates/src/locales/pt-BR/nav.json +6 -6
- package/templates/src/locales/pt-BR/pages/crudTemplate.json +25 -25
- package/templates/src/locales/pt-BR/pages/dashboardTemplate.json +20 -20
- package/templates/src/locales/pt-BR/pages/forgotPassword.json +10 -10
- package/templates/src/locales/pt-BR/pages/formTemplate.json +16 -16
- package/templates/src/locales/pt-BR/pages/home.json +7 -7
- package/templates/src/locales/pt-BR/pages/login.json +15 -15
- package/templates/src/locales/pt-BR/pages/loginTemplate.json +9 -9
- package/templates/src/locales/pt-BR/pages/resetPassword.json +18 -18
- package/templates/src/locales/pt-BR/pages/templates.json +317 -317
- package/templates/src/locales/pt-BR/pages/verifyEmail.json +12 -12
- package/templates/src/locales/pt-BR/themeToggle.json +6 -6
- package/templates/src/pages/AssistantPage.tsx +470 -470
- package/templates/src/pages/HomePage.tsx +53 -53
- package/templates/src/shared/error-boundary.tsx +150 -150
- package/templates/src/shared/error-fallbacks.tsx +222 -222
- package/templates/src/styles/xertica/tokens.css +9 -9
- package/templates/vite.config.js +20 -20
- package/templates/vite.config.ts +55 -55
- package/dist/ThemeContext-CpqYShLq.cjs +0 -324
- package/dist/ThemeContext-Du2nE1PL.js +0 -325
- package/dist/ThemeContext-GeEBTJ3q.cjs +0 -1621
- package/dist/ThemeContext-JyLK9B1o.js +0 -1622
- package/dist/VerifyEmailPage-BiRm7Nh4.cjs +0 -3213
- package/dist/VerifyEmailPage-hdB8JQGv.cjs +0 -3213
- package/dist/VerifyEmailPage-vYHbYK3q.js +0 -3214
- package/dist/XerticaProvider-CUYJZc32.js +0 -49
- package/dist/XerticaProvider-CjQAQPcn.cjs +0 -48
- package/dist/XerticaProvider-D5lLumH-.js +0 -49
- package/dist/XerticaProvider-qQUDop71.cjs +0 -48
- package/dist/XerticaXLogo-BWaag64t.js +0 -252
- package/dist/XerticaXLogo-CU-U-GP4.cjs +0 -251
- package/dist/index-CkTUgOwX.js +0 -8
- package/dist/sidebar-OTO_up7Z.js +0 -801
- package/dist/{rich-text-editor-BmsjY03B.js → rich-text-editor-DgF8s7xW.js} +26 -26
- package/dist/{rich-text-editor-GS2kpTAK.cjs → rich-text-editor-mWoaSCE4.cjs} +26 -26
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for the AudioPlayer component.
|
|
3
|
+
*/
|
|
4
|
+
interface AudioPlayerProps {
|
|
5
|
+
/** Whether the player is currently visible and open */
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
/** Callback to close the player bar */
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
/** Pass sidebar expansion state to adjust layout positioning (optional, now uses LayoutContext) */
|
|
10
|
+
sidebarExpanded?: boolean;
|
|
11
|
+
/** Title of the audio track/podcast */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Subtitle or source information */
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
/** Total duration in seconds */
|
|
16
|
+
duration?: number;
|
|
17
|
+
/** Initial or current playback time in seconds */
|
|
18
|
+
currentTime?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Global floating Audio Player bar.
|
|
22
|
+
*
|
|
23
|
+
* @description
|
|
24
|
+
* A fixed-position playback bar that handles audio progress, volume,
|
|
25
|
+
* and specific podcast actions (reset, speed, info, refresh).
|
|
26
|
+
* It transitions smoothly from the bottom of the screen.
|
|
27
|
+
*
|
|
28
|
+
* @ai-rules
|
|
29
|
+
* 1. Placement: This component should typically be rendered once at the top level (e.g., in a Layout) and controlled via global state.
|
|
30
|
+
* 2. Positional logic: It automatically offsets itself based on `sidebarExpanded` to avoid overlapping navigation.
|
|
31
|
+
* 3. Use `duration` and `currentTime` to synchronize with external audio state if needed.
|
|
32
|
+
*/
|
|
33
|
+
export declare function AudioPlayer({ isOpen, onClose, title, subtitle, duration, // 20:00
|
|
34
|
+
currentTime }: AudioPlayerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AudioPlayer';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for the DocumentEditor component.
|
|
3
|
+
*/
|
|
4
|
+
interface DocumentEditorProps {
|
|
5
|
+
/** Initial markdown or plain text content */
|
|
6
|
+
initialContent: string;
|
|
7
|
+
/** Title for the document (default: 'New Document') */
|
|
8
|
+
initialTitle?: string;
|
|
9
|
+
/** Callback to close the editor */
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Rich-text document editor with markdown compatibility.
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* Provides a content-editable environment for document editing. It supports
|
|
17
|
+
* basic formatting (bold, italic, headers, lists) and maintains an edit history
|
|
18
|
+
* for Undo/Redo. It also handles simple markdown-to-HTML conversion for initial loading.
|
|
19
|
+
*
|
|
20
|
+
* @ai-rules
|
|
21
|
+
* 1. Use this component for full-screen editing experiences or side-panel document refinement.
|
|
22
|
+
* 2. It tracks unsaved changes internally; ensure you handle persistence via future prop extensions or external state.
|
|
23
|
+
* 3. The `convertMarkdownToHtml` helper is basic — it does not support complex nested markdown structures.
|
|
24
|
+
*/
|
|
25
|
+
export declare function DocumentEditor({ initialContent, initialTitle, onClose }: DocumentEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DocumentEditor';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for the PodcastPlayer component.
|
|
3
|
+
*/
|
|
4
|
+
interface PodcastPlayerProps {
|
|
5
|
+
/** Whether the player is currently visible and open */
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
/** Callback to close the player bar */
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
/** Pass sidebar expansion state to adjust layout positioning (optional, now uses LayoutContext) */
|
|
10
|
+
sidebarExpanded?: boolean;
|
|
11
|
+
/** Title of the podcast/process track */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Subtitle or source information */
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
/** Total duration in seconds */
|
|
16
|
+
duration?: number;
|
|
17
|
+
/** Initial or current playback time in seconds */
|
|
18
|
+
currentTime?: number;
|
|
19
|
+
/** Display mode of the player */
|
|
20
|
+
variant?: 'fixed' | 'inline';
|
|
21
|
+
/** How the fixed player occupies space */
|
|
22
|
+
layoutMode?: 'viewport' | 'container';
|
|
23
|
+
/** Optional state of the right-side panel for layout adjustments */
|
|
24
|
+
rightSidebarState?: 'none' | 'collapsed' | 'expanded';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Advanced Podcast Player component.
|
|
28
|
+
*
|
|
29
|
+
* @description
|
|
30
|
+
* An enhanced version of the Audio Player that supports multiple layout modes
|
|
31
|
+
* (fixed or inline), viewport portals, and responsive mobile rendering. It uses
|
|
32
|
+
* a theme-aware primary background when fixed.
|
|
33
|
+
*
|
|
34
|
+
* @ai-rules
|
|
35
|
+
* 1. Portals: When `variant="fixed"` and `layoutMode="viewport"`, it uses `createPortal` to render at the document root.
|
|
36
|
+
* 2. Variant: Use `variant="fixed"` for global playback; use `variant="inline"` for embedding directly in content cards.
|
|
37
|
+
* 3. Mobile: This component has a dedicated vertical layout for mobile screens (< 768px).
|
|
38
|
+
*/
|
|
39
|
+
export declare function PodcastPlayer({ isOpen, onClose, title, subtitle, duration, // 20:00
|
|
40
|
+
currentTime, variant, layoutMode, rightSidebarState }: PodcastPlayerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './PodcastPlayer';
|
|
@@ -12,6 +12,8 @@ interface XerticaProviderProps {
|
|
|
12
12
|
googleMapsApiKey?: string;
|
|
13
13
|
/** Default theme name for branding ('default', 'dark', etc.) */
|
|
14
14
|
defaultBrandTheme?: string;
|
|
15
|
+
/** Color theme ID (e.g. 'xertica-original', 'blue', 'rose') — selects a full ColorTheme preset */
|
|
16
|
+
defaultColorTheme?: string;
|
|
15
17
|
/** Primary brand color hex value */
|
|
16
18
|
primaryColor?: string;
|
|
17
19
|
/** Whether to use custom theme tokens from CSS */
|
|
@@ -53,5 +55,5 @@ interface XerticaProviderProps {
|
|
|
53
55
|
* This component aggregates all necessary context providers. It should be placed at the
|
|
54
56
|
* root of your application, ideally inside the App component.
|
|
55
57
|
*/
|
|
56
|
-
export declare function XerticaProvider({ children, apiKey, googleMapsApiKey, defaultBrandTheme, primaryColor, useCustomTokens, disableDarkMode, availableLanguages, defaultLanguage, }: XerticaProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
export declare function XerticaProvider({ children, apiKey, googleMapsApiKey, defaultBrandTheme, defaultColorTheme, primaryColor, useCustomTokens, disableDarkMode, availableLanguages, defaultLanguage, }: XerticaProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
57
59
|
export {};
|
|
@@ -75,15 +75,24 @@ declare const ChartStyle: ({ id, config }: {
|
|
|
75
75
|
config: ChartConfig;
|
|
76
76
|
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
77
77
|
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
78
|
-
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React.ComponentProps<
|
|
78
|
+
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React.ComponentProps<'div'> & {
|
|
79
|
+
active?: boolean;
|
|
80
|
+
payload?: RechartsPrimitive.TooltipPayload;
|
|
81
|
+
label?: React.ReactNode;
|
|
82
|
+
labelFormatter?: (label: React.ReactNode, payload: RechartsPrimitive.TooltipPayload) => React.ReactNode;
|
|
83
|
+
labelClassName?: string;
|
|
79
84
|
hideLabel?: boolean;
|
|
80
85
|
hideIndicator?: boolean;
|
|
81
86
|
indicator?: 'line' | 'dot' | 'dashed';
|
|
82
87
|
nameKey?: string;
|
|
83
88
|
labelKey?: string;
|
|
89
|
+
color?: string;
|
|
90
|
+
formatter?: RechartsPrimitive.DefaultTooltipContentProps['formatter'];
|
|
84
91
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
85
|
-
declare const ChartLegend:
|
|
86
|
-
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<'div'> &
|
|
92
|
+
declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
|
|
93
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<'div'> & {
|
|
94
|
+
payload?: RechartsPrimitive.LegendPayload[];
|
|
95
|
+
verticalAlign?: 'top' | 'middle' | 'bottom';
|
|
87
96
|
hideIcon?: boolean;
|
|
88
97
|
nameKey?: string;
|
|
89
98
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { ChartBarSize, ChartCurveType, ChartStateProps, DashboardChartColors, DashboardChartDatum, DashboardChartSeries, ChartPeriod } from "./chart-primitives";
|
|
3
|
+
import { ChartContainer } from "./chart-primitives";
|
|
4
|
+
export interface DashboardBarChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
5
|
+
data: DashboardChartDatum[];
|
|
6
|
+
indexKey?: string;
|
|
7
|
+
series?: DashboardChartSeries[];
|
|
8
|
+
colors?: DashboardChartColors;
|
|
9
|
+
barSize?: ChartBarSize;
|
|
10
|
+
stacked?: boolean;
|
|
11
|
+
showGrid?: boolean;
|
|
12
|
+
showLegend?: boolean;
|
|
13
|
+
valueFormatter?: (value: number | string) => string;
|
|
14
|
+
}
|
|
15
|
+
export declare function DashboardBarChart({ data, config, indexKey, series, colors, barSize, stacked, showGrid, showLegend, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: DashboardBarChartProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export interface DashboardLineChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
17
|
+
data: DashboardChartDatum[];
|
|
18
|
+
indexKey?: string;
|
|
19
|
+
series?: DashboardChartSeries[];
|
|
20
|
+
colors?: DashboardChartColors;
|
|
21
|
+
showDots?: boolean;
|
|
22
|
+
showGrid?: boolean;
|
|
23
|
+
showLegend?: boolean;
|
|
24
|
+
curveType?: ChartCurveType;
|
|
25
|
+
strokeWidth?: number;
|
|
26
|
+
valueFormatter?: (value: number | string) => string;
|
|
27
|
+
}
|
|
28
|
+
export declare function DashboardLineChart({ data, config, indexKey, series, colors, showDots, showGrid, showLegend, curveType, strokeWidth, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: DashboardLineChartProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export interface HorizontalBarChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
30
|
+
data: DashboardChartDatum[];
|
|
31
|
+
indexKey?: string;
|
|
32
|
+
series?: DashboardChartSeries[];
|
|
33
|
+
colors?: DashboardChartColors;
|
|
34
|
+
barSize?: ChartBarSize;
|
|
35
|
+
stacked?: boolean;
|
|
36
|
+
categoryWidth?: number;
|
|
37
|
+
showGrid?: boolean;
|
|
38
|
+
showLegend?: boolean;
|
|
39
|
+
valueFormatter?: (value: number | string) => string;
|
|
40
|
+
}
|
|
41
|
+
export declare function HorizontalBarChart({ data, config, indexKey, series, colors, barSize, stacked, categoryWidth, showGrid, showLegend, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: HorizontalBarChartProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export interface InteractiveTimeSeriesChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
43
|
+
data: DashboardChartDatum[];
|
|
44
|
+
indexKey?: string;
|
|
45
|
+
series?: DashboardChartSeries[];
|
|
46
|
+
colors?: DashboardChartColors;
|
|
47
|
+
periods?: ChartPeriod[];
|
|
48
|
+
defaultPeriod?: string;
|
|
49
|
+
defaultSeries?: string;
|
|
50
|
+
filterData?: (data: DashboardChartDatum[], period: string) => DashboardChartDatum[];
|
|
51
|
+
showGrid?: boolean;
|
|
52
|
+
showLegend?: boolean;
|
|
53
|
+
showDots?: boolean;
|
|
54
|
+
gradientFill?: boolean;
|
|
55
|
+
curveType?: ChartCurveType;
|
|
56
|
+
strokeWidth?: number;
|
|
57
|
+
valueFormatter?: (value: number | string) => string;
|
|
58
|
+
}
|
|
59
|
+
export declare function InteractiveTimeSeriesChart({ data, config, indexKey, series, colors, periods, defaultPeriod, defaultSeries, filterData, showGrid, showLegend, showDots, gradientFill, curveType, strokeWidth, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: InteractiveTimeSeriesChartProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export interface ComboMetricChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
61
|
+
data: DashboardChartDatum[];
|
|
62
|
+
indexKey?: string;
|
|
63
|
+
series?: DashboardChartSeries[];
|
|
64
|
+
colors?: DashboardChartColors;
|
|
65
|
+
barSize?: ChartBarSize;
|
|
66
|
+
showGrid?: boolean;
|
|
67
|
+
showLegend?: boolean;
|
|
68
|
+
gradientFill?: boolean;
|
|
69
|
+
curveType?: ChartCurveType;
|
|
70
|
+
valueFormatter?: (value: number | string) => string;
|
|
71
|
+
}
|
|
72
|
+
export declare function ComboMetricChart({ data, config, indexKey, series, colors, barSize, showGrid, showLegend, gradientFill, curveType, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: ComboMetricChartProps): import("react/jsx-runtime").JSX.Element;
|
|
73
|
+
export interface DonutBreakdownChartProps extends Omit<React.ComponentProps<typeof ChartContainer>, "children">, ChartStateProps {
|
|
74
|
+
data: DashboardChartDatum[];
|
|
75
|
+
nameKey?: string;
|
|
76
|
+
valueKey?: string;
|
|
77
|
+
colors?: DashboardChartColors;
|
|
78
|
+
centerLabel?: React.ReactNode;
|
|
79
|
+
centerValue?: React.ReactNode;
|
|
80
|
+
showLegend?: boolean;
|
|
81
|
+
/** Inner radius as percentage string (e.g. "58%") or number */
|
|
82
|
+
innerRadius?: string | number;
|
|
83
|
+
/** Outer radius as percentage string (e.g. "82%") or number */
|
|
84
|
+
outerRadius?: string | number;
|
|
85
|
+
}
|
|
86
|
+
export declare function DonutBreakdownChart({ data, config, nameKey, valueKey, colors, centerLabel, centerValue, showLegend, innerRadius, outerRadius, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, ...props }: DonutBreakdownChartProps): import("react/jsx-runtime").JSX.Element;
|
|
87
|
+
export interface SparklineChartProps {
|
|
88
|
+
/** Data array — each item must have the `dataKey` field */
|
|
89
|
+
data: DashboardChartDatum[];
|
|
90
|
+
/** Key to plot on the Y axis */
|
|
91
|
+
dataKey: string;
|
|
92
|
+
/** Color for the line/area — defaults to `var(--chart-1)` */
|
|
93
|
+
color?: string;
|
|
94
|
+
/** Show filled area under the line */
|
|
95
|
+
filled?: boolean;
|
|
96
|
+
/** Show the last data point as a dot */
|
|
97
|
+
showEndDot?: boolean;
|
|
98
|
+
/** Curve interpolation type */
|
|
99
|
+
curveType?: ChartCurveType;
|
|
100
|
+
/** Stroke width */
|
|
101
|
+
strokeWidth?: number;
|
|
102
|
+
className?: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Minimal inline sparkline chart — no axes, no grid, no tooltip.
|
|
106
|
+
* Ideal for embedding inside stat cards or table cells.
|
|
107
|
+
*
|
|
108
|
+
* @ai-rules
|
|
109
|
+
* - Use `filled` for area-style sparklines.
|
|
110
|
+
* - Keep `className` height small (e.g. `h-12` or `h-16`).
|
|
111
|
+
* - Do NOT wrap in `ChartCard` — it is designed to be inline.
|
|
112
|
+
*/
|
|
113
|
+
export declare function SparklineChart({ data, dataKey, color, filled, showEndDot, curveType, strokeWidth, className, }: SparklineChartProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { ChartStateProps, DashboardChartColors, DashboardChartDatum, DashboardChartSeries } from "./chart-primitives";
|
|
3
|
+
export interface RadarMetricChartProps extends ChartStateProps {
|
|
4
|
+
/** Data array — each item is one axis point on the radar */
|
|
5
|
+
data: DashboardChartDatum[];
|
|
6
|
+
/** Key in each datum used as the axis label */
|
|
7
|
+
labelKey: string;
|
|
8
|
+
/**
|
|
9
|
+
* Series to render. Each entry maps to one `<Radar>` element.
|
|
10
|
+
* Use a single entry for a simple radar, multiple for comparison.
|
|
11
|
+
*/
|
|
12
|
+
series: DashboardChartSeries[];
|
|
13
|
+
/** Override colors per series key or as an ordered array */
|
|
14
|
+
colors?: DashboardChartColors;
|
|
15
|
+
/** Fill the radar polygon (default: true) */
|
|
16
|
+
filled?: boolean;
|
|
17
|
+
/** Fill opacity when `filled` is true (default: 0.25) */
|
|
18
|
+
fillOpacity?: number;
|
|
19
|
+
/** Show dots on each axis point (default: false) */
|
|
20
|
+
showDots?: boolean;
|
|
21
|
+
/** Show the polar grid lines (default: true) */
|
|
22
|
+
showGrid?: boolean;
|
|
23
|
+
/** Show the legend (default: true when multiple series) */
|
|
24
|
+
showLegend?: boolean;
|
|
25
|
+
/** Format axis tick values */
|
|
26
|
+
valueFormatter?: (value: number | string) => string;
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function RadarMetricChart({ data, labelKey, series, colors, filled, fillOpacity, showDots, showGrid, showLegend, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, }: RadarMetricChartProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export interface PieMetricChartProps extends ChartStateProps {
|
|
31
|
+
/** Data array — each item is one slice */
|
|
32
|
+
data: DashboardChartDatum[];
|
|
33
|
+
/** Key in each datum used as the slice name/label */
|
|
34
|
+
nameKey: string;
|
|
35
|
+
/** Key in each datum used as the slice value */
|
|
36
|
+
valueKey: string;
|
|
37
|
+
/** Override colors as an ordered array or per-name map */
|
|
38
|
+
colors?: DashboardChartColors;
|
|
39
|
+
/** Outer radius of the pie (default: "80%") */
|
|
40
|
+
outerRadius?: number | string;
|
|
41
|
+
/** Inner radius — set > 0 to make a donut (default: 0) */
|
|
42
|
+
innerRadius?: number | string;
|
|
43
|
+
/** Show percentage labels inside/outside each slice (default: false) */
|
|
44
|
+
showLabels?: boolean;
|
|
45
|
+
/** Show the legend (default: true) */
|
|
46
|
+
showLegend?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Index of the slice to "explode" (offset outward).
|
|
49
|
+
* Pass -1 or undefined to disable.
|
|
50
|
+
*/
|
|
51
|
+
explodeIndex?: number;
|
|
52
|
+
/** Offset distance for the exploded slice in px (default: 12) */
|
|
53
|
+
explodeOffset?: number;
|
|
54
|
+
/** Format tooltip values */
|
|
55
|
+
valueFormatter?: (value: number | string) => string;
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function PieMetricChart({ data, nameKey, valueKey, colors, outerRadius, innerRadius, showLabels, showLegend, explodeIndex, explodeOffset, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, }: PieMetricChartProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
export interface RadialBarMetricChartProps extends ChartStateProps {
|
|
60
|
+
/**
|
|
61
|
+
* Data array. Each item should have a `name` field (for labels) and
|
|
62
|
+
* the `dataKey` field (for values, 0–100 for percentage-based display).
|
|
63
|
+
*/
|
|
64
|
+
data: DashboardChartDatum[];
|
|
65
|
+
/** Key in each datum used as the bar value (default: "value") */
|
|
66
|
+
dataKey?: string;
|
|
67
|
+
/** Key in each datum used as the bar label (default: "name") */
|
|
68
|
+
nameKey?: string;
|
|
69
|
+
/** Override colors as an ordered array or per-name map */
|
|
70
|
+
colors?: DashboardChartColors;
|
|
71
|
+
/** Inner radius of the radial bar (default: "30%") */
|
|
72
|
+
innerRadius?: number | string;
|
|
73
|
+
/** Outer radius of the radial bar (default: "100%") */
|
|
74
|
+
outerRadius?: number | string;
|
|
75
|
+
/** Start angle in degrees (default: 90 — top) */
|
|
76
|
+
startAngle?: number;
|
|
77
|
+
/** End angle in degrees (default: -270 — full circle) */
|
|
78
|
+
endAngle?: number;
|
|
79
|
+
/** Show background track behind each bar (default: true) */
|
|
80
|
+
showBackground?: boolean;
|
|
81
|
+
/** Show the legend (default: true) */
|
|
82
|
+
showLegend?: boolean;
|
|
83
|
+
/** Format tooltip values */
|
|
84
|
+
valueFormatter?: (value: number | string) => string;
|
|
85
|
+
className?: string;
|
|
86
|
+
}
|
|
87
|
+
export declare function RadialBarMetricChart({ data, dataKey, nameKey, colors, innerRadius, outerRadius, startAngle, endAngle, showBackground, showLegend, valueFormatter, isLoading, error, onRetry, retryLabel, emptyTitle, emptyDescription, errorTitle, errorDescription, loadingLabel, stateClassName, className, }: RadialBarMetricChartProps): import("react/jsx-runtime").JSX.Element;
|
|
88
|
+
export interface GaugeChartThreshold {
|
|
89
|
+
/** Upper bound of this zone (0–100) */
|
|
90
|
+
value: number;
|
|
91
|
+
/** Color for this zone */
|
|
92
|
+
color: string;
|
|
93
|
+
/** Optional label for this zone */
|
|
94
|
+
label?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface GaugeChartProps {
|
|
97
|
+
/** Current value (must be within [min, max]) */
|
|
98
|
+
value: number;
|
|
99
|
+
/** Minimum value (default: 0) */
|
|
100
|
+
min?: number;
|
|
101
|
+
/** Maximum value (default: 100) */
|
|
102
|
+
max?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Color zones. Each threshold defines the upper bound of a zone.
|
|
105
|
+
* Zones are evaluated in order; the first zone whose `value >= current %`
|
|
106
|
+
* determines the active color.
|
|
107
|
+
* If omitted, uses `--chart-1`.
|
|
108
|
+
*/
|
|
109
|
+
thresholds?: GaugeChartThreshold[];
|
|
110
|
+
/** Label shown below the value (e.g. "CPU Usage") */
|
|
111
|
+
label?: React.ReactNode;
|
|
112
|
+
/** Format the center value text (default: shows percentage) */
|
|
113
|
+
valueFormatter?: (value: number, percent: number) => string;
|
|
114
|
+
/** Show the needle indicator (default: true) */
|
|
115
|
+
showNeedle?: boolean;
|
|
116
|
+
className?: string;
|
|
117
|
+
}
|
|
118
|
+
export declare function GaugeChart({ value, min, max, thresholds, label, valueFormatter, showNeedle, className, }: GaugeChartProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as RechartsPrimitive from "recharts";
|
|
3
|
+
declare const THEMES: {
|
|
4
|
+
readonly light: "";
|
|
5
|
+
readonly dark: ".dark";
|
|
6
|
+
};
|
|
7
|
+
export type ChartConfig = {
|
|
8
|
+
[k in string]: {
|
|
9
|
+
label?: React.ReactNode;
|
|
10
|
+
icon?: React.ComponentType;
|
|
11
|
+
} & ({
|
|
12
|
+
color?: string;
|
|
13
|
+
theme?: never;
|
|
14
|
+
} | {
|
|
15
|
+
color?: never;
|
|
16
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
type ChartContextProps = {
|
|
20
|
+
config: ChartConfig;
|
|
21
|
+
};
|
|
22
|
+
export type DashboardChartDatum = Record<string, string | number | null | undefined>;
|
|
23
|
+
export type DashboardChartSeries = {
|
|
24
|
+
key: string;
|
|
25
|
+
label?: React.ReactNode;
|
|
26
|
+
type?: "bar" | "line" | "area";
|
|
27
|
+
stackId?: string;
|
|
28
|
+
yAxisId?: string;
|
|
29
|
+
};
|
|
30
|
+
export type DashboardChartColors = string[] | Record<string, string>;
|
|
31
|
+
export type ChartPeriod = {
|
|
32
|
+
value: string;
|
|
33
|
+
label: string;
|
|
34
|
+
};
|
|
35
|
+
export type ChartBarSize = "sm" | "md" | "lg" | "xl" | number;
|
|
36
|
+
/** Curve interpolation type for line and area charts */
|
|
37
|
+
export type ChartCurveType = "monotone" | "linear" | "step" | "stepBefore" | "stepAfter" | "natural" | "basis";
|
|
38
|
+
export type ChartErrorState = boolean | string | Error | React.ReactNode;
|
|
39
|
+
export type ChartStateProps = {
|
|
40
|
+
isLoading?: boolean;
|
|
41
|
+
error?: ChartErrorState;
|
|
42
|
+
onRetry?: () => void;
|
|
43
|
+
retryLabel?: React.ReactNode;
|
|
44
|
+
emptyTitle?: React.ReactNode;
|
|
45
|
+
emptyDescription?: React.ReactNode;
|
|
46
|
+
errorTitle?: React.ReactNode;
|
|
47
|
+
errorDescription?: React.ReactNode;
|
|
48
|
+
loadingLabel?: React.ReactNode;
|
|
49
|
+
stateClassName?: string;
|
|
50
|
+
};
|
|
51
|
+
export declare const defaultPeriods: ChartPeriod[];
|
|
52
|
+
export declare const defaultChartColors: string[];
|
|
53
|
+
export declare const chartBarSizes: Record<Exclude<ChartBarSize, number>, number>;
|
|
54
|
+
export declare function useChart(): ChartContextProps;
|
|
55
|
+
/**
|
|
56
|
+
* Root container for Recharts-based charts with theme-aware color injection.
|
|
57
|
+
*
|
|
58
|
+
* @description
|
|
59
|
+
* Wraps Recharts' `ResponsiveContainer` and injects CSS custom properties
|
|
60
|
+
* (`--color-*`) from a `ChartConfig` object, enabling full dark-mode
|
|
61
|
+
* support without hard-coded hex values in chart elements.
|
|
62
|
+
*
|
|
63
|
+
* @ai-rules
|
|
64
|
+
* 1. NEVER pass hex colors directly to Recharts elements (e.g., `fill="#4F46E5"`).
|
|
65
|
+
* Always use `fill="var(--color-keyName)"` referencing the injected CSS variables.
|
|
66
|
+
* 2. This wrapper is REQUIRED to use `ChartTooltipContent` and `ChartLegendContent`.
|
|
67
|
+
* 3. Set height via `className="h-[300px]"` on `ChartContainer`, not on Recharts components.
|
|
68
|
+
* 4. Do NOT add another `<ResponsiveContainer>` — it is already included inside.
|
|
69
|
+
*/
|
|
70
|
+
export declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
|
|
71
|
+
config: ChartConfig;
|
|
72
|
+
children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
73
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export declare const ChartStyle: ({ id, config }: {
|
|
75
|
+
id: string;
|
|
76
|
+
config: ChartConfig;
|
|
77
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
78
|
+
export declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
79
|
+
export declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<"div"> & {
|
|
80
|
+
hideLabel?: boolean;
|
|
81
|
+
hideIndicator?: boolean;
|
|
82
|
+
indicator?: "line" | "dot" | "dashed";
|
|
83
|
+
nameKey?: string;
|
|
84
|
+
labelKey?: string;
|
|
85
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
86
|
+
export declare const ChartLegend: typeof RechartsPrimitive.Legend;
|
|
87
|
+
export declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> & Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
|
|
88
|
+
hideIcon?: boolean;
|
|
89
|
+
nameKey?: string;
|
|
90
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
91
|
+
export declare function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string): ({
|
|
92
|
+
label?: React.ReactNode;
|
|
93
|
+
icon?: React.ComponentType;
|
|
94
|
+
} & ({
|
|
95
|
+
color?: string;
|
|
96
|
+
theme?: never;
|
|
97
|
+
} | {
|
|
98
|
+
color?: never;
|
|
99
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
100
|
+
})) | undefined;
|
|
101
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Card } from "../../card";
|
|
3
|
+
import type { ChartStateProps } from "./chart-primitives";
|
|
4
|
+
export declare function getChartState(state: ChartStateProps, hasData: boolean, className?: string): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
export interface ChartCardProps extends Omit<React.ComponentProps<typeof Card>, "title"> {
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
description?: React.ReactNode;
|
|
8
|
+
action?: React.ReactNode;
|
|
9
|
+
footer?: React.ReactNode;
|
|
10
|
+
contentClassName?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function ChartCard({ title, description, action, footer, children, className, contentClassName, ...props }: ChartCardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* Renders SVG `<defs>` with linear gradients for each series key.
|
|
15
|
+
* Used internally by area charts when `gradientFill` is enabled.
|
|
16
|
+
*/
|
|
17
|
+
export declare function AreaGradientDefs({ seriesKeys, opacity, }: {
|
|
18
|
+
seriesKeys: string[];
|
|
19
|
+
opacity?: number;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChartConfig, ChartBarSize, ChartErrorState, DashboardChartColors, DashboardChartDatum, DashboardChartSeries } from "./chart-primitives";
|
|
2
|
+
export declare function getChartSeries(config: ChartConfig, series?: DashboardChartSeries[]): DashboardChartSeries[];
|
|
3
|
+
export declare function getSeriesColor(key: string, index: number, colors?: DashboardChartColors): string;
|
|
4
|
+
export declare function getChartConfigWithColors(config: ChartConfig, keys: string[], colors?: DashboardChartColors): ChartConfig;
|
|
5
|
+
/** Build a ChartConfig from a list of keys (no pre-existing config needed). */
|
|
6
|
+
export declare function buildChartConfig(keys: string[], colors?: DashboardChartColors): ChartConfig;
|
|
7
|
+
export declare function formatTick(value: number | string): string;
|
|
8
|
+
export declare function defaultFilterData(data: DashboardChartDatum[], period: string): DashboardChartDatum[];
|
|
9
|
+
export declare function getErrorDescription(error: ChartErrorState): string | undefined;
|
|
10
|
+
export declare function getBarSize(barSize?: ChartBarSize): number;
|
|
11
|
+
export declare function hasChartData(data: DashboardChartDatum[], series: DashboardChartSeries[]): boolean;
|
|
12
|
+
export declare function hasPieData(data: DashboardChartDatum[], nameKey: string, valueKey: string): boolean;
|
|
@@ -8,6 +8,16 @@ interface StatsCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
8
8
|
label?: string;
|
|
9
9
|
};
|
|
10
10
|
icon?: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Tailwind class for the icon text/foreground color.
|
|
13
|
+
* @default "text-muted-foreground"
|
|
14
|
+
*/
|
|
15
|
+
iconColor?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Tailwind class for the icon background color.
|
|
18
|
+
* @default "bg-muted"
|
|
19
|
+
*/
|
|
20
|
+
iconBg?: string;
|
|
11
21
|
}
|
|
12
22
|
/**
|
|
13
23
|
* KPI metric card for dashboard overview pages.
|
|
@@ -6,6 +6,10 @@ export interface BrandColors {
|
|
|
6
6
|
primaryForegroundDark: string;
|
|
7
7
|
sidebarLight: string;
|
|
8
8
|
sidebarDark: string;
|
|
9
|
+
darkBackground: string;
|
|
10
|
+
darkCard: string;
|
|
11
|
+
darkMuted: string;
|
|
12
|
+
darkBorder: string;
|
|
9
13
|
gradientStart: string;
|
|
10
14
|
gradientEnd: string;
|
|
11
15
|
gradientStartDark: string;
|