xertica-ui 2.1.3 → 2.1.4
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 +15 -0
- package/README.md +1 -1
- package/assets/xertica-logo.svg +37 -37
- package/assets/xertica-x-logo.svg +20 -20
- package/components/assistant/index.ts +6 -6
- package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +97 -0
- package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +104 -0
- package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -0
- package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +86 -0
- package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +77 -0
- package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +573 -0
- package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +65 -0
- package/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.tsx +41 -0
- package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +98 -0
- package/components/assistant/xertica-assistant/parts/index.ts +16 -0
- package/components/assistant/xertica-assistant/types.ts +139 -0
- package/components/assistant/xertica-assistant/use-assistant.ts +5 -10
- package/components/assistant/xertica-assistant/xertica-assistant.tsx +125 -1096
- package/components/blocks/card-patterns/ActivityCard.tsx +72 -72
- package/components/blocks/card-patterns/FeatureCard.tsx +100 -100
- package/components/blocks/card-patterns/NotificationCard.tsx +127 -127
- package/components/blocks/card-patterns/ProfileCard.tsx +84 -84
- package/components/blocks/card-patterns/ProjectCard.tsx +89 -89
- package/components/blocks/card-patterns/QuickActionCard.tsx +62 -62
- package/components/blocks/card-patterns/card-patterns.stories.tsx +445 -445
- package/components/blocks/card-patterns/index.ts +17 -17
- package/components/blocks/index.ts +1 -1
- package/components/brand/index.ts +6 -6
- package/components/brand/theme-toggle/ThemeToggle.tsx +8 -27
- package/components/brand/xertica-provider/XerticaProvider.tsx +48 -48
- package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
- package/components/brand/xertica-provider/xertica-provider.test.tsx +52 -52
- package/components/examples/MapExamples.tsx +282 -282
- package/components/examples/SimpleFilterableMap.tsx +191 -191
- package/components/examples/index.ts +51 -51
- package/components/figma/ImageWithFallback.tsx +27 -27
- package/components/hooks/index.ts +10 -7
- package/components/hooks/use-layout-shortcuts.ts +46 -0
- package/components/index.ts +5 -5
- package/components/layout/header/header.test.tsx +8 -8
- package/components/layout/header/header.tsx +4 -4
- package/components/layout/index.ts +2 -2
- package/components/layout/sidebar/sidebar.mdx +1 -1
- package/components/layout/sidebar/sidebar.test.tsx +11 -11
- package/components/layout/sidebar/sidebar.tsx +1 -31
- package/components/layout/sidebar/use-sidebar.ts +2 -11
- package/components/media/FloatingMediaWrapper.tsx +11 -11
- package/components/media/audio-player/AudioPlayer.tsx +140 -215
- package/components/media/audio-player/use-audio-player.ts +298 -0
- package/components/media/index.ts +3 -3
- package/components/pages/home-content/HomeContent.tsx +7 -7
- package/components/pages/home-content/home-content.mdx +62 -62
- package/components/pages/home-page/HomePage.stories.tsx +39 -39
- package/components/pages/home-page/home-page.mdx +53 -53
- package/components/pages/index.ts +8 -8
- package/components/pages/template-content/template-content.mdx +61 -61
- package/components/pages/template-page/TemplatePage.stories.tsx +39 -39
- package/components/pages/template-page/template-page.mdx +53 -53
- package/components/public-api-smoke.test.tsx +52 -52
- package/components/shared/CustomTooltipContent.tsx +52 -0
- package/components/shared/assistant-utils.ts +43 -43
- package/components/ui/accordion/accordion.mdx +8 -8
- package/components/ui/accordion/accordion.stories.tsx +53 -53
- 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/badge/badge.tsx +9 -9
- 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/calendar/calendar.tsx +258 -258
- package/components/ui/card/card.mdx +8 -8
- package/components/ui/card/card.stories.tsx +245 -245
- package/components/ui/carousel/carousel.mdx +8 -8
- package/components/ui/chart/chart.mdx +8 -8
- package/components/ui/chart/chart.stories.tsx +1303 -1303
- package/components/ui/chart/chart.test.tsx +154 -154
- package/components/ui/chart/chart.tsx +2367 -2367
- package/components/ui/checkbox/checkbox.mdx +8 -8
- package/components/ui/checkbox/checkbox.stories.tsx +20 -20
- 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/google-maps-loader/google-maps-loader.tsx +2 -2
- 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/input-otp/input-otp.stories.tsx +6 -6
- package/components/ui/label/label.mdx +8 -8
- package/components/ui/map/map.mdx +8 -8
- package/components/ui/map/map.stories.tsx +51 -51
- package/components/ui/map/map.tsx +2 -2
- 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/progress/progress.tsx +68 -68
- 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/route-map/route-map.stories.tsx +54 -54
- package/components/ui/route-map/route-map.tsx +2 -2
- 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/select/select.stories.tsx +9 -9
- package/components/ui/separator/separator.mdx +8 -8
- package/components/ui/sheet/sheet.mdx +8 -8
- package/components/ui/sheet/sheet.stories.tsx +95 -95
- package/components/ui/simple-map/simple-map.mdx +8 -8
- package/components/ui/simple-map/simple-map.stories.tsx +48 -48
- 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/stats-card.mdx +8 -8
- package/components/ui/stepper/stepper.mdx +8 -8
- package/components/ui/switch/switch.mdx +8 -8
- package/components/ui/switch/switch.stories.tsx +20 -20
- package/components/ui/table/table.mdx +8 -8
- package/components/ui/tabs/tabs.mdx +8 -8
- package/components/ui/tabs/tabs.stories.tsx +26 -26
- 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 +1512 -1512
- package/contexts/ApiKeyContext.tsx +72 -72
- package/contexts/AssistenteContext.tsx +17 -54
- package/contexts/BrandColorsContext.tsx +32 -43
- package/contexts/LanguageContext.tsx +13 -13
- package/contexts/LayoutContext.test.tsx +11 -11
- package/contexts/LayoutContext.tsx +24 -50
- package/contexts/ThemeContext.tsx +26 -26
- package/contexts/theme-data.ts +4 -4
- package/dist/{AssistantChart-DoZCyS5r.cjs → AssistantChart-9w31gdAb.cjs} +4 -4
- package/dist/{AssistantChart-CldVCVDe.cjs → AssistantChart-BAudAfne.cjs} +5 -5
- package/dist/{use-mobile-DRB3BQgD.cjs → AssistantChart-BAx9VQvb.cjs} +209 -1070
- package/dist/{AssistantChart-Cu3m7RBo.js → AssistantChart-BP8upjMk.js} +5 -5
- package/dist/{use-mobile-BvYdisLP.js → AssistantChart-CVko2A1W.js} +171 -1025
- package/dist/{AssistantChart-C_hwFRRr.js → AssistantChart-CVzmmhx4.js} +4 -4
- package/dist/{AudioPlayer-C12BjQBV.cjs → AudioPlayer-1ypwE2Wh.cjs} +126 -187
- package/dist/{AudioPlayer-DcFKRJE_.js → AudioPlayer-DuKXrCfy.js} +80 -141
- package/dist/CustomTooltipContent-DHjkY0ww.js +40 -0
- package/dist/CustomTooltipContent-c_K-DWRr.cjs +56 -0
- package/dist/{ThemeContext-BoH4NLfN.js → LanguageContext-BwhwC3G2.js} +27 -104
- package/dist/{ThemeContext-r69W20Xg.cjs → LanguageContext-DvUt5jBg.cjs} +27 -104
- package/dist/{LayoutContext-BvK-ggDa.cjs → LayoutContext-BDmcZfMH.cjs} +8 -20
- package/dist/{LayoutContext-BAql6ZRY.js → LayoutContext-dbQvdC4O.js} +8 -20
- package/dist/{ThemeContext-C2EwAPDt.js → ThemeContext-BbBNoFTG.js} +2 -2
- package/dist/{ThemeContext-vTjumZeM.cjs → ThemeContext-Cmr8Ex8H.cjs} +2 -2
- package/dist/ThemeContext-RTy1m2Uq.js +82 -0
- package/dist/ThemeContext-bSzuOit2.cjs +81 -0
- package/dist/VerifyEmailPage-BE-L9mB7.js +2828 -0
- package/dist/{VerifyEmailPage-Cwi3kbol.cjs → VerifyEmailPage-Bae2cBXT.cjs} +7 -7
- package/dist/VerifyEmailPage-CR7kb5df.cjs +2827 -0
- package/dist/{VerifyEmailPage-C0c2e5n0.js → VerifyEmailPage-C_ihbcth.js} +6 -6
- package/dist/VerifyEmailPage-CbgjOF0v.js +2828 -0
- package/dist/{VerifyEmailPage-DvMLZgFt.js → VerifyEmailPage-CdYPSJoO.js} +1 -1
- package/dist/{VerifyEmailPage-CYXtbKi3.cjs → VerifyEmailPage-DMBh4NM9.cjs} +1 -1
- package/dist/VerifyEmailPage-Dt7zgA4w.cjs +2827 -0
- package/dist/{XerticaProvider-CEoWMTxu.js → XerticaProvider-BITjgC5p.js} +2 -2
- package/dist/{XerticaProvider-CllrbMEJ.cjs → XerticaProvider-By8q3Roe.cjs} +2 -2
- package/dist/{XerticaProvider-cI9hSs27.cjs → XerticaProvider-CW9hpCdF.cjs} +9 -8
- package/dist/{XerticaProvider-DDuiIcKo.js → XerticaProvider-siSt9uG2.js} +5 -4
- package/dist/{LanguageSelector-D6uacAIM.cjs → XerticaXLogo-D8jf0SNv.cjs} +86 -102
- package/dist/{LanguageSelector-B5YfbHra.js → XerticaXLogo-fAJMy3H4.js} +87 -103
- package/dist/{alert-dialog-s-vmNkJ_.js → alert-dialog-iDe5VE5o.js} +3 -3
- package/dist/{alert-dialog-DSKByiKZ.cjs → alert-dialog-yckpaOpy.cjs} +3 -3
- package/dist/assistant.cjs.js +1 -1
- package/dist/assistant.es.js +1 -1
- package/dist/brand.cjs.js +2 -2
- package/dist/brand.es.js +2 -2
- package/dist/components/assistant/xertica-assistant/parts/AssistantCollapsedView.d.ts +13 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantConversationList.d.ts +16 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.d.ts +17 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.d.ts +19 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantHeader.d.ts +11 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantMessageBubble.d.ts +29 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantTabBar.d.ts +13 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.d.ts +4 -0
- package/dist/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.d.ts +17 -0
- package/dist/components/assistant/xertica-assistant/parts/index.d.ts +16 -0
- package/dist/components/assistant/xertica-assistant/types.d.ts +106 -0
- package/dist/components/assistant/xertica-assistant/use-assistant.d.ts +1 -2
- package/dist/components/assistant/xertica-assistant/xertica-assistant.d.ts +2 -96
- package/dist/components/hooks/index.d.ts +3 -0
- package/dist/components/hooks/use-layout-shortcuts.d.ts +22 -0
- package/dist/components/media/audio-player/AudioPlayer.d.ts +4 -1
- package/dist/components/media/audio-player/use-audio-player.d.ts +72 -0
- package/dist/components/shared/CustomTooltipContent.d.ts +20 -0
- package/dist/components/ui/alert/alert.d.ts +1 -1
- package/dist/components/ui/badge/badge.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts +2 -2
- package/dist/contexts/AssistenteContext.d.ts +10 -49
- package/dist/{google-maps-loader-Y-QkD-Li.cjs → google-maps-loader-BqsYL48U.cjs} +0 -5
- package/dist/{google-maps-loader-CTYySAun.js → google-maps-loader-t2IlYBzw.js} +0 -4
- package/dist/hooks.cjs.js +30 -10
- package/dist/hooks.es.js +25 -4
- package/dist/index-CkTUgOwX.js +8 -0
- package/dist/{index-COtD8bRW.cjs → index-D3RLKRAs.cjs} +1 -1
- package/dist/index.cjs.js +11 -11
- package/dist/index.es.js +11 -11
- package/dist/index.umd.js +454 -1027
- package/dist/layout.cjs.js +3 -10
- package/dist/layout.es.js +3 -10
- package/dist/media.cjs.js +1 -1
- package/dist/media.es.js +1 -1
- package/dist/pages.cjs.js +1 -1
- package/dist/pages.es.js +1 -1
- package/dist/{sidebar-CK_0ZQHj.cjs → sidebar-CVUGHOS_.cjs} +10 -57
- package/dist/{sidebar-CUuOvYhK.js → sidebar-CmvwjnVb.js} +10 -40
- package/dist/ui.cjs.js +4 -4
- package/dist/ui.es.js +4 -4
- package/dist/use-audio-player-Bkh23vQ3.js +177 -0
- package/dist/use-audio-player-Dn1NR9xN.cjs +176 -0
- package/dist/utils/color-utils.d.ts +51 -0
- package/dist/{xertica-assistant-dyP7KHM5.cjs → xertica-assistant-B1IaHXnB.cjs} +388 -529
- package/dist/xertica-assistant-BMqdyRVi.js +2082 -0
- package/dist/xertica-assistant-Bj3vBCq_.cjs +2081 -0
- package/dist/{xertica-assistant-yX1CFBBo.js → xertica-assistant-DPsESB6t.js} +390 -531
- package/dist/{CodeBlock-BgfYL_rD.cjs → xertica-assistant-Qp3ydksa.cjs} +51 -263
- package/dist/{CodeBlock-DnYNI8rQ.js → xertica-assistant-gnCJdcZY.js} +7 -219
- package/dist/xertica-ui.css +2 -2
- package/docs/architecture-improvements.md +463 -0
- package/docs/architecture.md +1 -1
- package/docs/components/assistant-chart.md +1 -1
- package/docs/components/audio-player.md +46 -0
- package/docs/components/branding.md +251 -0
- package/docs/components/calendar.md +154 -154
- package/docs/components/card-patterns.md +337 -337
- package/docs/components/card.md +235 -235
- package/docs/components/code-block.md +108 -0
- package/docs/components/formatted-document.md +113 -0
- package/docs/components/hooks.md +430 -0
- package/docs/components/image-with-fallback.md +106 -0
- package/docs/components/map-layers.md +140 -0
- package/docs/components/map.md +84 -84
- package/docs/components/modern-chat-input.md +163 -0
- package/docs/components/pages.md +351 -0
- package/docs/components/xertica-provider.md +24 -24
- package/docs/decision-tree.md +287 -287
- package/docs/doc-audit.md +223 -0
- package/docs/getting-started.md +154 -0
- package/docs/llms.md +25 -5
- package/docs/patterns/detail-page.md +276 -0
- package/docs/patterns/settings.md +346 -0
- package/docs/patterns/wizard.md +217 -0
- package/guidelines/Guidelines.md +252 -252
- package/hooks/useTheme.ts +3 -3
- package/imports/Podcast.tsx +388 -388
- package/imports/XerticaAi.tsx +45 -45
- package/imports/XerticaX.tsx +19 -19
- package/imports/svg-aueiaqngck.ts +11 -11
- package/imports/svg-v9krss1ozd.ts +16 -16
- package/imports/svg-vhrdofe3qe.ts +5 -5
- package/llms-compact.txt +327 -327
- package/llms.txt +160 -160
- package/package.json +203 -203
- package/styles/xertica/app-overrides/chat.css +61 -61
- package/styles/xertica/app-overrides/scrollbar.css +33 -33
- package/styles/xertica/integrations/google-maps.css +76 -76
- package/styles/xertica/integrations/sonner.css +73 -73
- package/templates/CLAUDE.md +182 -182
- package/templates/guidelines/Guidelines.md +325 -325
- package/templates/package.json +2 -2
- package/templates/src/features/auth/index.ts +4 -4
- package/templates/src/features/auth/ui/AuthPageShell.tsx +34 -34
- package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
- package/templates/src/features/auth/ui/LoginContent.tsx +90 -90
- package/templates/src/features/auth/ui/ResetPasswordContent.tsx +151 -151
- package/templates/src/features/auth/ui/SocialLoginButtons.tsx +59 -59
- package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -82
- package/templates/src/features/home/index.ts +1 -1
- package/templates/src/features/home/ui/HomeContent.tsx +100 -100
- package/templates/src/features/template/index.ts +5 -5
- package/templates/src/features/template/ui/CrudTemplate.tsx +3 -3
- package/templates/src/features/template/ui/DashboardTemplate.tsx +3 -3
- package/templates/src/features/template/ui/FormTemplate.tsx +120 -120
- package/templates/src/features/template/ui/LoginTemplate.tsx +3 -3
- package/templates/src/pages/AssistantPage.tsx +328 -328
- package/templates/src/pages/ForgotPasswordPage.tsx +6 -6
- package/templates/src/pages/HomePage.tsx +57 -57
- package/templates/src/pages/LoginPage.tsx +10 -10
- package/templates/src/pages/ResetPasswordPage.tsx +6 -6
- package/templates/src/pages/TemplatePage.tsx +30 -30
- package/templates/src/pages/VerifyEmailPage.tsx +6 -6
- package/templates/src/shared/config/navigation.ts +20 -20
- package/templates/src/shared/lib/auth.ts +20 -20
- package/templates/src/shared/types/auth.ts +3 -3
- package/templates/tsconfig.json +5 -5
- package/utils/color-utils.ts +72 -0
- package/utils/gemini.ts +140 -140
- package/dist/AudioPlayer-B1lt5cPl.cjs +0 -989
- package/dist/AudioPlayer-BZ7bibzU.cjs +0 -982
- package/dist/AudioPlayer-DMcG_c7L.js +0 -990
- package/dist/AudioPlayer-e8LfNoqO.js +0 -983
- package/dist/CodeBlock-7TTgmdGG.cjs +0 -2094
- package/dist/CodeBlock-BeSt1h5P.js +0 -2078
- package/dist/CodeBlock-BlcqlA9M.cjs +0 -2094
- package/dist/CodeBlock-Bnmeu5ez.cjs +0 -2094
- package/dist/CodeBlock-BtfPlbAI.js +0 -2078
- package/dist/CodeBlock-CIySIuYr.js +0 -2078
- package/dist/CodeBlock-CuPtUM-7.cjs +0 -2094
- package/dist/CodeBlock-D6ffWXgc.js +0 -2078
- package/dist/CodeBlock-D8dcwbit.cjs +0 -2094
- package/dist/CodeBlock-DMZrFnlw.cjs +0 -2094
- package/dist/CodeBlock-DlBehYN8.js +0 -2078
- package/dist/CodeBlock-DvKWbSnE.cjs +0 -2094
- package/dist/CodeBlock-DwMCfkFY.js +0 -2078
- package/dist/CodeBlock-Dy6CNYyj.js +0 -2078
- package/dist/CodeBlock-U1pPOQI7.cjs +0 -2094
- package/dist/CodeBlock-f_GpNhEB.js +0 -2078
- package/dist/CodeBlock-oB6u8nI1.js +0 -2078
- package/dist/CodeBlock-tZC31B73.cjs +0 -2094
- package/dist/ImageWithFallback-CGtidP6B.cjs +0 -4542
- package/dist/ImageWithFallback-lsg3pdFg.js +0 -4508
- package/dist/XerticaOrbe-KL1RBHzw.cjs +0 -1354
- package/dist/XerticaOrbe-zwS1p2a8.js +0 -1355
- package/dist/XerticaProvider-6btlAlzc.js +0 -17
- package/dist/XerticaProvider-BNoNOxQ5.cjs +0 -16
- package/dist/XerticaProvider-BlY2limY.cjs +0 -38
- package/dist/XerticaProvider-hSwhNQex.js +0 -39
- package/dist/breadcrumb-CqJ7bHY5.js +0 -161
- package/dist/breadcrumb-m9Hb2_XN.cjs +0 -177
- package/dist/components/blocks/audio-player/AudioPlayer.d.ts +0 -35
- package/dist/components/blocks/audio-player/index.d.ts +0 -1
- package/dist/components/blocks/document-editor/DocumentEditor.d.ts +0 -26
- package/dist/components/blocks/document-editor/index.d.ts +0 -1
- package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +0 -41
- package/dist/components/blocks/podcast-player/index.d.ts +0 -1
- package/dist/dropdown-menu-BDB5CmQs.cjs +0 -247
- package/dist/dropdown-menu-DQidbKBD.js +0 -231
- package/dist/google-maps-loader-BFWp6VPd.js +0 -287
- package/dist/google-maps-loader-eS3uQ5TA.cjs +0 -287
- package/dist/header-Cgy6vYPk.cjs +0 -731
- package/dist/header-DRlT4jgI.js +0 -715
- package/dist/header-Dux00SI4.cjs +0 -731
- package/dist/header-EkGKXPsD.js +0 -715
- package/dist/header-WfEywpyc.cjs +0 -731
- package/dist/header-tifNQn2U.js +0 -715
- package/dist/index-BhapVLVj.js +0 -8
- package/dist/index-D6fxYEY8.cjs +0 -7
- package/dist/index-DW5tYe26.js +0 -8
- package/dist/input-2R4loU86.js +0 -127
- package/dist/input-DWANSKGb.cjs +0 -145
- package/dist/rich-text-editor-0mraWT5y.cjs +0 -2376
- package/dist/rich-text-editor-B6jMRLzk.cjs +0 -1939
- package/dist/rich-text-editor-B8_oYcIR.js +0 -1730
- package/dist/rich-text-editor-B9UbSXNb.js +0 -1203
- package/dist/rich-text-editor-BYuRBNBU.js +0 -2373
- package/dist/rich-text-editor-Bb9pySTs.cjs +0 -2374
- package/dist/rich-text-editor-BcL6L3cm.cjs +0 -2374
- package/dist/rich-text-editor-BoVZYtTs.cjs +0 -2391
- package/dist/rich-text-editor-CPV1lEPH.cjs +0 -1748
- package/dist/rich-text-editor-CoKqbCtu.cjs +0 -1799
- package/dist/rich-text-editor-Cw56T_mB.js +0 -2356
- package/dist/rich-text-editor-Cyt8qs2b.js +0 -1921
- package/dist/rich-text-editor-D6H84OcX.cjs +0 -1220
- package/dist/rich-text-editor-D76gD-QI.js +0 -2328
- package/dist/rich-text-editor-DKkokOnA.js +0 -1781
- package/dist/rich-text-editor-DNsdpN64.cjs +0 -2359
- package/dist/rich-text-editor-DfG8bCyY.js +0 -2358
- package/dist/rich-text-editor-Dxjw31Z4.js +0 -2341
- package/dist/rich-text-editor-DzP0Epmb.js +0 -2356
- package/dist/rich-text-editor-skplNlBM.cjs +0 -2345
- package/dist/select-Bkbr0f-Z.cjs +0 -162
- package/dist/select-CvIVdX2n.js +0 -145
- package/dist/slider-Bc5Hd0y1.js +0 -56
- package/dist/slider-N7hFFj6X.cjs +0 -73
- package/dist/tooltip-Ded96neP.cjs +0 -137
- package/dist/tooltip-HDOoD2-0.js +0 -120
- package/dist/use-mobile-B0hNy_Y6.cjs +0 -4303
- package/dist/use-mobile-BXuYROXM.js +0 -4202
- package/dist/use-mobile-Bbd51ASU.cjs +0 -4392
- package/dist/use-mobile-Bk6CX-TC.js +0 -4359
- package/dist/use-mobile-BzuxjzNX.cjs +0 -4392
- package/dist/use-mobile-CG2-SdXV.cjs +0 -4235
- package/dist/use-mobile-CKb5pqTs.js +0 -4269
- package/dist/use-mobile-CYuAuGDl.js +0 -4202
- package/dist/use-mobile-CaENcqm-.js +0 -4508
- package/dist/use-mobile-CbrYgJGJ.js +0 -4203
- package/dist/use-mobile-DMOvImGQ.cjs +0 -4542
- package/dist/use-mobile-DZvv7QMR.js +0 -4359
- package/dist/use-mobile-DdI_TXam.cjs +0 -4235
- package/dist/use-mobile-DlceKf8a.js +0 -4359
- package/dist/use-mobile-DsOnow1o.cjs +0 -4236
- package/dist/use-mobile-Kcj6jSnK.cjs +0 -4392
- package/dist/use-mobile-bnKcua_i.js +0 -4202
- package/dist/use-mobile-ncXBeE2z.cjs +0 -4235
- package/dist/{rich-text-editor-DgF8s7xW.js → rich-text-editor-BmsjY03B.js} +26 -26
- package/dist/{rich-text-editor-mWoaSCE4.cjs → rich-text-editor-GS2kpTAK.cjs} +26 -26
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Xertica UI — Auditoria de Documentação
|
|
2
|
+
|
|
3
|
+
> **Data:** 2026-05-19
|
|
4
|
+
> **Escopo:** Verificação completa de cobertura e qualidade da documentação em `docs/`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Resumo Executivo
|
|
9
|
+
|
|
10
|
+
| Categoria | Total no Código | Com Doc | Sem Doc |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| Componentes UI (`components/ui/`) | 65 | 65 | 0 |
|
|
13
|
+
| Componentes Assistant (`components/assistant/`) | 5 | 2 | **3** |
|
|
14
|
+
| Componentes Brand (`components/brand/`) | 7 | 6 | **1** |
|
|
15
|
+
| Componentes Layout (`components/layout/`) | 2 | 2 | 0 |
|
|
16
|
+
| Componentes Media (`components/media/`) | 3 | 3 | 0 |
|
|
17
|
+
| Componentes Blocks (`components/blocks/`) | 6 cards | 1 doc (card-patterns) | 0 |
|
|
18
|
+
| Páginas (`components/pages/`) | 8 | 0 | **8** |
|
|
19
|
+
| Hooks/Contextos (`components/hooks/`) | 6 hooks | 1 (use-mobile) | **5** |
|
|
20
|
+
| Utilitários (`components/figma/`) | 1 | 0 | **1** |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. Componentes SEM Documentação
|
|
25
|
+
|
|
26
|
+
### 1.1 Componentes Assistant — Sem doc própria
|
|
27
|
+
|
|
28
|
+
O [`docs/llms.md`](./llms.md) menciona estes três como *"in Storybook"*, mas não há arquivo `.md` em `docs/components/`:
|
|
29
|
+
|
|
30
|
+
| Componente | Arquivo | Importação | Status |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| `CodeBlock` | `components/assistant/code-block/` | `xertica-ui/assistant` | ❌ Sem doc |
|
|
33
|
+
| `ModernChatInput` | `components/assistant/modern-chat-input/` | `xertica-ui/assistant` | ❌ Sem doc |
|
|
34
|
+
| `FormattedDocument` | `components/assistant/formatted-document/` | `xertica-ui/assistant` | ❌ Sem doc |
|
|
35
|
+
|
|
36
|
+
**Impacto:** Agentes de IA não conseguem usar esses componentes corretamente sem prop tables e exemplos.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
### 1.2 Componente Brand — Sem doc
|
|
41
|
+
|
|
42
|
+
| Componente | Arquivo | Status |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `Branding` | `components/brand/branding/` | ❌ Sem doc (apenas `.mdx` e `.stories.tsx`) |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### 1.3 Hook `useMapLayers` — Sem doc
|
|
49
|
+
|
|
50
|
+
O hook [`useMapLayers`](../components/ui/map-layers/map-layers.tsx) é exportado publicamente via `xertica-ui/ui` mas não tem documentação em `docs/components/`. Está relacionado ao sistema de mapas mas não aparece no catálogo do [`docs/llms.md`](./llms.md).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 1.4 Utilitário `ImageWithFallback` — Sem doc
|
|
55
|
+
|
|
56
|
+
| Componente | Arquivo | Status |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| `ImageWithFallback` | `components/figma/ImageWithFallback.tsx` | ❌ Sem doc |
|
|
59
|
+
|
|
60
|
+
Exportado publicamente via `xertica-ui` mas sem documentação.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### 1.5 Páginas — Completamente sem documentação
|
|
65
|
+
|
|
66
|
+
Nenhuma das 8 páginas-template tem documentação em `docs/`:
|
|
67
|
+
|
|
68
|
+
| Página | Arquivo |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `LoginPage` | `components/pages/login-page/` |
|
|
71
|
+
| `ForgotPasswordPage` | `components/pages/forgot-password-page/` |
|
|
72
|
+
| `ResetPasswordPage` | `components/pages/reset-password-page/` |
|
|
73
|
+
| `VerifyEmailPage` | `components/pages/verify-email-page/` |
|
|
74
|
+
| `HomePage` | `components/pages/home-page/` |
|
|
75
|
+
| `HomeContent` | `components/pages/home-content/` |
|
|
76
|
+
| `TemplatePage` | `components/pages/template-page/` |
|
|
77
|
+
| `TemplateContent` | `components/pages/template-content/` |
|
|
78
|
+
|
|
79
|
+
**Impacto:** Desenvolvedores e agentes de IA não sabem que essas páginas existem, quais props aceitam, ou como customizá-las. O [`docs/llms.md`](./llms.md) menciona "8 Page Templates" nas estatísticas mas não lista nenhuma delas no catálogo.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 1.6 Hooks/Contextos — Sem documentação
|
|
84
|
+
|
|
85
|
+
O subpath `xertica-ui/hooks` exporta 6 hooks mas apenas `useMobile` tem doc:
|
|
86
|
+
|
|
87
|
+
| Hook | Contexto | Status |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `useLayout` | `LayoutContext` | ✅ Documentado em [`docs/layout.md`](./layout.md) |
|
|
90
|
+
| `useMobile` / `useIsMobile` | `use-mobile` | ✅ Documentado em [`docs/components/use-mobile.md`](./components/use-mobile.md) |
|
|
91
|
+
| `useTheme` | `ThemeContext` | ❌ Sem doc |
|
|
92
|
+
| `useLanguage` | `LanguageContext` | ❌ Sem doc |
|
|
93
|
+
| `useBrandColors` | `BrandColorsContext` | ❌ Sem doc |
|
|
94
|
+
| `useAssistente` | `AssistenteContext` | ❌ Sem doc |
|
|
95
|
+
| `useApiKey` | `ApiKeyContext` | ❌ Sem doc |
|
|
96
|
+
|
|
97
|
+
**Impacto:** Agentes de IA não sabem como acessar o tema atual, idioma, cores da marca ou estado do assistente programaticamente.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 2. Problemas de Qualidade nos Docs Existentes
|
|
102
|
+
|
|
103
|
+
### 2.1 `docs/architecture.md` — Título incorreto
|
|
104
|
+
|
|
105
|
+
O arquivo [`docs/architecture.md`](./architecture.md) tem como título `# Xertica UI — Documentation Audit Report` (linha 1), mas deveria ser `# Xertica UI — Architecture`. Isso confunde agentes de IA que buscam documentação de arquitetura.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### 2.2 `docs/components/assistant-chart.md` — Doc muito rasa
|
|
110
|
+
|
|
111
|
+
O doc do [`AssistantChart`](./components/assistant-chart.md) tem apenas 47 linhas e contém uma regra problemática:
|
|
112
|
+
|
|
113
|
+
> *"Data Format: Ensure your data objects contain keys that match the `dataKey` set in the internal implementation (currently `month`, `desktop`, and `mobile`)."*
|
|
114
|
+
|
|
115
|
+
Isso sugere que o componente só aceita dados com essas chaves específicas, o que é enganoso. Faltam:
|
|
116
|
+
- Explicação de como usar `dataKey` customizado
|
|
117
|
+
- Exemplos com dados reais de negócio
|
|
118
|
+
- Seção "When to Use / When NOT to Use"
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 2.3 `docs/llms.md` — Estatísticas desatualizadas e catálogo incompleto
|
|
123
|
+
|
|
124
|
+
- **Linha 6:** `Total Components: 97` — o número real é maior (inclui páginas, hooks adicionais, `useMapLayers`, etc.)
|
|
125
|
+
- **Seção AI Features:** `CodeBlock`, `ModernChatInput`, `FormattedDocument` listados como *"in Storybook"* sem link de doc — isso instrui agentes a não usá-los quando na verdade são componentes públicos
|
|
126
|
+
- **Seção Pages:** não existe no catálogo — as 8 páginas-template são invisíveis para agentes de IA
|
|
127
|
+
- **Seção Hooks:** `useTheme`, `useLanguage`, `useBrandColors`, `useAssistente`, `useApiKey` não estão listados
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 2.4 `docs/components/floating-media-wrapper.md` — Doc incompleta
|
|
132
|
+
|
|
133
|
+
O arquivo tem apenas 64 linhas e está truncado — a seção "Related Components" (linha 60) não tem conteúdo.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### 2.5 `docs/components/xertica-provider.md` — Seção "AI Rules" incompleta
|
|
138
|
+
|
|
139
|
+
O arquivo tem 65 linhas e a seção `## AI Rules` (linha 60) está vazia/truncada.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 3. Padrões (Patterns) Faltando
|
|
144
|
+
|
|
145
|
+
Os 5 padrões existentes cobrem casos básicos, mas faltam padrões para fluxos muito comuns:
|
|
146
|
+
|
|
147
|
+
| Padrão Faltando | Descrição |
|
|
148
|
+
|---|---|
|
|
149
|
+
| **Wizard / Multi-step Form** | Formulário com `Stepper` + validação por etapa + `useStepper` |
|
|
150
|
+
| **Detail Page** | Página de detalhe de registro com `PageHeader` + back button + seções com `Card` |
|
|
151
|
+
| **Settings Page** | Página de configurações com `Tabs` + seções de formulário + `Switch` |
|
|
152
|
+
| **Empty + Loading States** | Padrão completo de `Skeleton` → `Empty` → dados com `Table` |
|
|
153
|
+
| **File Upload Form** | Formulário com `FileUpload` integrado ao `react-hook-form` |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 4. Docs Gerais — Pontos de Melhoria
|
|
158
|
+
|
|
159
|
+
### 4.1 `docs/getting-started.md` — Falta seção de troubleshooting
|
|
160
|
+
|
|
161
|
+
Não há seção de problemas comuns (ex: componentes sem estilo = CSS não importado, erros de TypeScript com subpath imports, etc.).
|
|
162
|
+
|
|
163
|
+
### 4.2 `docs/installation.md` — Falta menção ao `moduleResolution`
|
|
164
|
+
|
|
165
|
+
O arquivo [`docs/architecture.md`](./architecture.md) menciona que TypeScript precisa de `"moduleResolution": "bundler"` para subpath exports, mas [`docs/installation.md`](./installation.md) não menciona isso — é um erro de configuração muito comum.
|
|
166
|
+
|
|
167
|
+
### 4.3 `docs/ai-usage.md` — Falta regra sobre páginas-template
|
|
168
|
+
|
|
169
|
+
Não há instrução para agentes de IA sobre quando usar as páginas-template (`LoginPage`, `TemplatePage`, etc.) vs. compor do zero.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 5. Priorização das Lacunas
|
|
174
|
+
|
|
175
|
+
### 🔴 Alta Prioridade (impacto direto em agentes de IA e desenvolvedores)
|
|
176
|
+
|
|
177
|
+
1. **Criar `docs/components/code-block.md`** — componente usado internamente e externamente
|
|
178
|
+
2. **Criar `docs/components/modern-chat-input.md`** — componente de input do assistente
|
|
179
|
+
3. **Criar `docs/components/formatted-document.md`** — componente de documento do assistente
|
|
180
|
+
4. **Criar `docs/components/pages.md`** (ou docs individuais) — 8 páginas-template completamente invisíveis
|
|
181
|
+
5. **Criar `docs/components/hooks.md`** — documentar `useTheme`, `useLanguage`, `useBrandColors`, `useAssistente`, `useApiKey`
|
|
182
|
+
6. **Atualizar `docs/llms.md`** — corrigir estatísticas, adicionar páginas e hooks ao catálogo, adicionar links para docs dos componentes assistant
|
|
183
|
+
|
|
184
|
+
### 🟡 Média Prioridade (melhoria de qualidade)
|
|
185
|
+
|
|
186
|
+
7. **Corrigir título de `docs/architecture.md`**
|
|
187
|
+
8. **Expandir `docs/components/assistant-chart.md`** — remover restrição enganosa de dataKey
|
|
188
|
+
9. **Completar `docs/components/floating-media-wrapper.md`** — seção "Related Components"
|
|
189
|
+
10. **Completar `docs/components/xertica-provider.md`** — seção "AI Rules"
|
|
190
|
+
11. **Criar `docs/components/map-layers.md`** — documentar `useMapLayers`
|
|
191
|
+
12. **Adicionar `"moduleResolution": "bundler"` em `docs/installation.md`**
|
|
192
|
+
|
|
193
|
+
### 🟢 Baixa Prioridade (melhorias incrementais)
|
|
194
|
+
|
|
195
|
+
13. **Criar padrão `docs/patterns/wizard.md`** — multi-step form com Stepper
|
|
196
|
+
14. **Criar padrão `docs/patterns/detail-page.md`** — página de detalhe
|
|
197
|
+
15. **Criar padrão `docs/patterns/settings.md`** — página de configurações
|
|
198
|
+
16. **Adicionar seção de troubleshooting em `docs/getting-started.md`**
|
|
199
|
+
17. **Criar `docs/components/image-with-fallback.md`** — utilitário de imagem
|
|
200
|
+
18. **Criar `docs/components/branding.md`** — componente de branding
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 6. Checklist de Ações
|
|
205
|
+
|
|
206
|
+
- [ ] `docs/components/code-block.md` — criar
|
|
207
|
+
- [ ] `docs/components/modern-chat-input.md` — criar
|
|
208
|
+
- [ ] `docs/components/formatted-document.md` — criar
|
|
209
|
+
- [ ] `docs/components/pages.md` — criar (ou 8 docs individuais)
|
|
210
|
+
- [ ] `docs/components/hooks.md` — criar (useTheme, useLanguage, useBrandColors, useAssistente, useApiKey)
|
|
211
|
+
- [ ] `docs/llms.md` — atualizar estatísticas + adicionar páginas + hooks + links dos assistant components
|
|
212
|
+
- [ ] `docs/architecture.md` — corrigir título (linha 1)
|
|
213
|
+
- [ ] `docs/components/assistant-chart.md` — expandir e corrigir regra de dataKey
|
|
214
|
+
- [ ] `docs/components/floating-media-wrapper.md` — completar seção "Related Components"
|
|
215
|
+
- [ ] `docs/components/xertica-provider.md` — completar seção "AI Rules"
|
|
216
|
+
- [ ] `docs/components/map-layers.md` — criar
|
|
217
|
+
- [ ] `docs/installation.md` — adicionar requisito de `moduleResolution`
|
|
218
|
+
- [ ] `docs/patterns/wizard.md` — criar
|
|
219
|
+
- [ ] `docs/patterns/detail-page.md` — criar
|
|
220
|
+
- [ ] `docs/patterns/settings.md` — criar
|
|
221
|
+
- [ ] `docs/getting-started.md` — adicionar seção de troubleshooting
|
|
222
|
+
- [ ] `docs/components/image-with-fallback.md` — criar
|
|
223
|
+
- [ ] `docs/components/branding.md` — criar
|
package/docs/getting-started.md
CHANGED
|
@@ -259,3 +259,157 @@ Icons are separate — always use `lucide-react`:
|
|
|
259
259
|
```tsx
|
|
260
260
|
import { Home, Settings, Users, LogOut } from 'lucide-react';
|
|
261
261
|
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Troubleshooting
|
|
266
|
+
|
|
267
|
+
### Components render without styles (transparent / unstyled)
|
|
268
|
+
|
|
269
|
+
**Cause**: Missing CSS import.
|
|
270
|
+
|
|
271
|
+
**Fix**: Add `import 'xertica-ui/style.css'` to your entry file (`main.tsx` or `index.tsx`), **before** your own styles:
|
|
272
|
+
|
|
273
|
+
```tsx
|
|
274
|
+
import 'xertica-ui/style.css';
|
|
275
|
+
import './styles/index.css'; // your tokens and overrides
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### Dark mode doesn't apply
|
|
281
|
+
|
|
282
|
+
**Cause**: The `dark` class is not being toggled on `<html>`, or `@theme inline` is missing from your CSS.
|
|
283
|
+
|
|
284
|
+
**Fix 1**: Use `<ThemeToggle>` from `xertica-ui/brand` — it handles the class toggle automatically.
|
|
285
|
+
|
|
286
|
+
**Fix 2**: Ensure your `index.css` uses `@theme inline` (not plain `@theme`):
|
|
287
|
+
|
|
288
|
+
```css
|
|
289
|
+
/* ✅ Correct */
|
|
290
|
+
@theme inline {
|
|
291
|
+
--color-primary: var(--primary);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* ❌ Wrong — compiles tokens statically, ignoring your tokens.css overrides */
|
|
295
|
+
@theme {
|
|
296
|
+
--color-primary: var(--primary);
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
### Subpath imports cause TypeScript errors
|
|
303
|
+
|
|
304
|
+
**Cause**: `tsconfig.json` uses `"moduleResolution": "node"` which does not support package subpath exports.
|
|
305
|
+
|
|
306
|
+
**Fix**: Update `tsconfig.json`:
|
|
307
|
+
|
|
308
|
+
```json
|
|
309
|
+
{
|
|
310
|
+
"compilerOptions": {
|
|
311
|
+
"moduleResolution": "bundler"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Alternatively, use `"moduleResolution": "node16"` or `"nodenext"`.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
### Toast notifications don't appear
|
|
321
|
+
|
|
322
|
+
**Cause**: `<Toaster>` is not mounted, or `<XerticaProvider>` is missing.
|
|
323
|
+
|
|
324
|
+
**Fix**: Wrap your app in `<XerticaProvider>` — it auto-injects `<Toaster>`. If you are not using `XerticaProvider`, add `<Toaster />` manually:
|
|
325
|
+
|
|
326
|
+
```tsx
|
|
327
|
+
import { Toaster } from 'xertica-ui/ui';
|
|
328
|
+
|
|
329
|
+
function App() {
|
|
330
|
+
return (
|
|
331
|
+
<>
|
|
332
|
+
<YourApp />
|
|
333
|
+
<Toaster />
|
|
334
|
+
</>
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### Dialogs / Modals don't appear
|
|
342
|
+
|
|
343
|
+
**Cause**: Missing `<XerticaProvider>` (which includes `TooltipProvider` and portal context).
|
|
344
|
+
|
|
345
|
+
**Fix**: Ensure `<XerticaProvider>` wraps the entire application at the root level.
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### Google Maps doesn't load
|
|
350
|
+
|
|
351
|
+
**Cause**: Missing or invalid `googleMapsApiKey`, or the Maps API script failed to load.
|
|
352
|
+
|
|
353
|
+
**Fix**: Pass the key to `XerticaProvider`:
|
|
354
|
+
|
|
355
|
+
```tsx
|
|
356
|
+
<XerticaProvider googleMapsApiKey="YOUR_VALID_KEY">
|
|
357
|
+
<App />
|
|
358
|
+
</XerticaProvider>
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Or use `useApiKey()` to set it at runtime:
|
|
362
|
+
|
|
363
|
+
```tsx
|
|
364
|
+
const { setGoogleMapsApiKey, reloadMapsApi } = useApiKey();
|
|
365
|
+
setGoogleMapsApiKey('YOUR_KEY');
|
|
366
|
+
await reloadMapsApi();
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
### `useLayout()` throws "must be used within LayoutProvider"
|
|
372
|
+
|
|
373
|
+
**Cause**: The component using `useLayout()` is rendered outside `<XerticaProvider>`.
|
|
374
|
+
|
|
375
|
+
**Fix**: Ensure `<XerticaProvider>` is an ancestor of all components that use `useLayout()`, `useTheme()`, or any other context hook.
|
|
376
|
+
|
|
377
|
+
For components that may be used both inside and outside the provider (e.g., in Storybook), use `useOptionalLayout()` instead — it returns `null` when the context is unavailable.
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
### Sidebar width causes content overlap
|
|
382
|
+
|
|
383
|
+
**Cause**: Content area is not reading `sidebarWidth` from `useLayout()`.
|
|
384
|
+
|
|
385
|
+
**Fix**: Apply the sidebar width as a left margin or padding on the main content area:
|
|
386
|
+
|
|
387
|
+
```tsx
|
|
388
|
+
const { sidebarWidth } = useLayout();
|
|
389
|
+
|
|
390
|
+
<main style={{ marginLeft: sidebarWidth }} className="flex-1 overflow-auto">
|
|
391
|
+
{/* content */}
|
|
392
|
+
</main>
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
### AI Assistant doesn't respond (real mode)
|
|
398
|
+
|
|
399
|
+
**Cause**: Missing or invalid Gemini API key.
|
|
400
|
+
|
|
401
|
+
**Fix**: Set the Gemini API key via `useApiKey()` or pass it to `XerticaProvider`:
|
|
402
|
+
|
|
403
|
+
```tsx
|
|
404
|
+
<XerticaProvider initialGeminiApiKey="YOUR_GEMINI_KEY">
|
|
405
|
+
<App />
|
|
406
|
+
</XerticaProvider>
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Or use the Settings pattern to let users enter their own key. See [`docs/patterns/settings.md`](./patterns/settings.md).
|
|
410
|
+
|
|
411
|
+
For testing without a real API key, use `mode="demo"` on `XerticaAssistant`:
|
|
412
|
+
|
|
413
|
+
```tsx
|
|
414
|
+
<XerticaAssistant mode="demo" />
|
|
415
|
+
```
|
package/docs/llms.md
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
> **This is the primary entrypoint for AI agents operating on any project that uses `xertica-ui`.** Read this document first before exploring any other file.
|
|
4
4
|
|
|
5
5
|
## Statistics
|
|
6
|
-
- **Total Components:**
|
|
6
|
+
- **Total Components:** 104
|
|
7
7
|
- **UI Components:** 62
|
|
8
|
-
- **Assistant Components:**
|
|
8
|
+
- **Assistant Components:** 8
|
|
9
9
|
- **Brand Components:** 6
|
|
10
10
|
- **Media Components:** 3
|
|
11
11
|
- **Layout Components:** 2
|
|
12
12
|
- **Page Templates:** 8
|
|
13
|
+
- **Hooks:** 9
|
|
13
14
|
|
|
14
15
|
## What is Xertica UI?
|
|
15
16
|
|
|
@@ -154,15 +155,34 @@ Follow this order when onboarding to a project that uses `xertica-ui`:
|
|
|
154
155
|
|---|---|---|
|
|
155
156
|
| `useMobile` / `useIsMobile` | [use-mobile.md](./components/use-mobile.md) | Detects mobile viewport for conditional rendering |
|
|
156
157
|
| `useLayout` | [layout.md](../layout.md) | Accesses sidebar width, state, and toggle functions |
|
|
158
|
+
| `useTheme` | [hooks.md](./components/hooks.md#usetheme) | Reads and toggles the current color theme (light/dark) |
|
|
159
|
+
| `useLanguage` | [hooks.md](./components/hooks.md#uselanguage) | Reads and sets the current UI language preference |
|
|
160
|
+
| `useBrandColors` | [hooks.md](./components/hooks.md#usebrandcolors) | Reads and modifies brand color CSS variables |
|
|
161
|
+
| `useAssistente` | [hooks.md](./components/hooks.md#useassistente) | Accesses the global AI assistant context |
|
|
162
|
+
| `useApiKey` | [hooks.md](./components/hooks.md#useapikey) | Manages API keys for Xertica, Gemini, and Google Maps |
|
|
163
|
+
| `useAudioPlayer` | [hooks.md](./components/hooks.md#useaudioplayer) | Headless hook for building custom audio player UIs |
|
|
164
|
+
| `useLayoutShortcuts` | [hooks.md](./components/hooks.md#uselayoutshortcuts) | Registers global keyboard shortcuts (Ctrl+B = sidebar toggle) |
|
|
165
|
+
|
|
166
|
+
### Page Templates
|
|
167
|
+
| Component | Doc | Purpose |
|
|
168
|
+
|---|---|---|
|
|
169
|
+
| `LoginPage` | [pages.md](./components/pages.md#loginpage) | Complete login screen with email/password and SSO placeholders |
|
|
170
|
+
| `ForgotPasswordPage` | [pages.md](./components/pages.md#forgotpasswordpage) | Password recovery form |
|
|
171
|
+
| `ResetPasswordPage` | [pages.md](./components/pages.md#resetpasswordpage) | New password form for reset flow |
|
|
172
|
+
| `VerifyEmailPage` | [pages.md](./components/pages.md#verifyemailpage) | Email verification confirmation screen |
|
|
173
|
+
| `HomePage` | [pages.md](./components/pages.md#homepage) | Root dashboard shell (Sidebar + HomeContent + Assistant) |
|
|
174
|
+
| `HomeContent` | [pages.md](./components/pages.md#homecontent) | Dashboard main content area with stats, charts, and tables |
|
|
175
|
+
| `TemplatePage` | [pages.md](./components/pages.md#templatepage) | Full layout reference shell (Sidebar + TemplateContent + Assistant) |
|
|
176
|
+
| `TemplateContent` | [pages.md](./components/pages.md#templatecontent) | Comprehensive component showcase for development reference |
|
|
157
177
|
|
|
158
178
|
### AI Features
|
|
159
179
|
| Component | Doc | Purpose |
|
|
160
180
|
|---|---|---|
|
|
161
181
|
| `XerticaAssistant` | [assistant.md](./components/assistant.md) | Embedded AI chat panel & document workspace |
|
|
162
|
-
| `CodeBlock` |
|
|
182
|
+
| `CodeBlock` | [code-block.md](./components/code-block.md) | Syntax-highlighted code display with copy button |
|
|
163
183
|
| `MarkdownMessage` | [markdown-message.md](./components/markdown-message.md) | Renders AI responses with Markdown formatting |
|
|
164
|
-
| `ModernChatInput` |
|
|
165
|
-
| `FormattedDocument` |
|
|
184
|
+
| `ModernChatInput` | [modern-chat-input.md](./components/modern-chat-input.md) | Enhanced AI chat input with action chips and voice recording |
|
|
185
|
+
| `FormattedDocument` | [formatted-document.md](./components/formatted-document.md) | Collapsible Markdown renderer for AI-generated documents |
|
|
166
186
|
| `AssistantChart` | [assistant-chart.md](./components/assistant-chart.md) | Specialized data visualization for AI insights |
|
|
167
187
|
|
|
168
188
|
### Brand & Theme
|