xertica-ui 2.1.2 → 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.
Files changed (181) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +1 -1
  3. package/bin/cli.ts +1 -1
  4. package/bin/generate-tokens.ts +13 -7
  5. package/components/assistant/xertica-assistant/index.ts +2 -0
  6. package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +97 -0
  7. package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +104 -0
  8. package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -0
  9. package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +86 -0
  10. package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +77 -0
  11. package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +573 -0
  12. package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +65 -0
  13. package/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.tsx +41 -0
  14. package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +98 -0
  15. package/components/assistant/xertica-assistant/parts/index.ts +16 -0
  16. package/components/assistant/xertica-assistant/types.ts +139 -0
  17. package/components/assistant/xertica-assistant/use-assistant.ts +559 -0
  18. package/components/assistant/xertica-assistant/xertica-assistant.stories.tsx +200 -0
  19. package/components/assistant/xertica-assistant/xertica-assistant.tsx +198 -1460
  20. package/components/brand/theme-toggle/ThemeToggle.tsx +8 -27
  21. package/components/hooks/index.ts +3 -0
  22. package/components/hooks/use-layout-shortcuts.ts +46 -0
  23. package/components/layout/sidebar/index.ts +2 -0
  24. package/components/layout/sidebar/sidebar.stories.tsx +160 -8
  25. package/components/layout/sidebar/sidebar.tsx +606 -497
  26. package/components/layout/sidebar/use-sidebar.ts +104 -0
  27. package/components/media/audio-player/AudioPlayer.tsx +131 -206
  28. package/components/media/audio-player/use-audio-player.ts +298 -0
  29. package/components/pages/home-page/HomePage.tsx +1 -1
  30. package/components/pages/template-content/TemplateContent.tsx +5 -5
  31. package/components/pages/template-page/TemplatePage.tsx +5 -5
  32. package/components/shared/CustomTooltipContent.tsx +52 -0
  33. package/components/shared/layout-constants.ts +1 -1
  34. package/components/ui/chart/chart.stories.tsx +966 -7
  35. package/components/ui/chart/chart.tsx +918 -45
  36. package/components/ui/file-upload/file-upload.stories.tsx +100 -0
  37. package/components/ui/file-upload/file-upload.tsx +14 -74
  38. package/components/ui/file-upload/index.ts +1 -0
  39. package/components/ui/file-upload/use-file-upload.ts +181 -0
  40. package/components/ui/pagination/index.ts +2 -0
  41. package/components/ui/pagination/pagination.stories.tsx +94 -0
  42. package/components/ui/pagination/use-pagination.ts +194 -0
  43. package/components/ui/rich-text-editor/index.ts +2 -0
  44. package/components/ui/rich-text-editor/rich-text-editor.stories.tsx +129 -1
  45. package/components/ui/rich-text-editor/rich-text-editor.tsx +86 -305
  46. package/components/ui/rich-text-editor/use-rich-text-editor.ts +439 -0
  47. package/components/ui/stepper/index.ts +3 -1
  48. package/components/ui/stepper/stepper.stories.tsx +116 -0
  49. package/components/ui/stepper/stepper.tsx +4 -4
  50. package/components/ui/stepper/use-stepper.ts +137 -0
  51. package/components/ui/tree-view/index.ts +4 -1
  52. package/components/ui/tree-view/tree-view.stories.tsx +110 -4
  53. package/components/ui/tree-view/tree-view.tsx +17 -125
  54. package/components/ui/tree-view/use-tree-view.ts +229 -0
  55. package/contexts/AssistenteContext.tsx +17 -54
  56. package/contexts/BrandColorsContext.tsx +6 -17
  57. package/contexts/LayoutContext.tsx +5 -31
  58. package/dist/AssistantChart-BAudAfne.cjs +3591 -0
  59. package/dist/AssistantChart-BP8upjMk.js +3565 -0
  60. package/dist/AudioPlayer-1ypwE2Wh.cjs +936 -0
  61. package/dist/AudioPlayer-DuKXrCfy.js +937 -0
  62. package/dist/CustomTooltipContent-DHjkY0ww.js +40 -0
  63. package/dist/CustomTooltipContent-c_K-DWRr.cjs +56 -0
  64. package/dist/LanguageContext-BwhwC3G2.js +657 -0
  65. package/dist/LanguageContext-DvUt5jBg.cjs +656 -0
  66. package/dist/LayoutContext-BDmcZfMH.cjs +84 -0
  67. package/dist/LayoutContext-dbQvdC4O.js +85 -0
  68. package/dist/ThemeContext-RTy1m2Uq.js +82 -0
  69. package/dist/ThemeContext-bSzuOit2.cjs +81 -0
  70. package/dist/VerifyEmailPage-C_ihbcth.js +2828 -0
  71. package/dist/VerifyEmailPage-Dt7zgA4w.cjs +2827 -0
  72. package/dist/XerticaProvider-CW9hpCdF.cjs +39 -0
  73. package/dist/XerticaProvider-siSt9uG2.js +40 -0
  74. package/dist/XerticaXLogo-D8jf0SNv.cjs +214 -0
  75. package/dist/XerticaXLogo-fAJMy3H4.js +215 -0
  76. package/dist/assistant.cjs.js +2 -1
  77. package/dist/assistant.es.js +3 -2
  78. package/dist/brand.cjs.js +2 -2
  79. package/dist/brand.es.js +2 -2
  80. package/dist/cli.js +14 -8
  81. package/dist/components/assistant/xertica-assistant/index.d.ts +2 -0
  82. package/dist/components/assistant/xertica-assistant/parts/AssistantCollapsedView.d.ts +13 -0
  83. package/dist/components/assistant/xertica-assistant/parts/AssistantConversationList.d.ts +16 -0
  84. package/dist/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.d.ts +17 -0
  85. package/dist/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.d.ts +19 -0
  86. package/dist/components/assistant/xertica-assistant/parts/AssistantHeader.d.ts +11 -0
  87. package/dist/components/assistant/xertica-assistant/parts/AssistantMessageBubble.d.ts +29 -0
  88. package/dist/components/assistant/xertica-assistant/parts/AssistantTabBar.d.ts +13 -0
  89. package/dist/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.d.ts +4 -0
  90. package/dist/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.d.ts +17 -0
  91. package/dist/components/assistant/xertica-assistant/parts/index.d.ts +16 -0
  92. package/dist/components/assistant/xertica-assistant/types.d.ts +106 -0
  93. package/dist/components/assistant/xertica-assistant/use-assistant.d.ts +125 -0
  94. package/dist/components/assistant/xertica-assistant/xertica-assistant.d.ts +8 -97
  95. package/dist/components/hooks/index.d.ts +3 -0
  96. package/dist/components/hooks/use-layout-shortcuts.d.ts +22 -0
  97. package/dist/components/layout/sidebar/index.d.ts +2 -0
  98. package/dist/components/layout/sidebar/sidebar.d.ts +80 -0
  99. package/dist/components/layout/sidebar/use-sidebar.d.ts +22 -0
  100. package/dist/components/media/audio-player/AudioPlayer.d.ts +4 -1
  101. package/dist/components/media/audio-player/use-audio-player.d.ts +72 -0
  102. package/dist/components/shared/CustomTooltipContent.d.ts +20 -0
  103. package/dist/components/shared/layout-constants.d.ts +1 -1
  104. package/dist/components/ui/alert/alert.d.ts +1 -1
  105. package/dist/components/ui/badge/badge.d.ts +1 -1
  106. package/dist/components/ui/button/button.d.ts +2 -2
  107. package/dist/components/ui/chart/chart.d.ts +162 -5
  108. package/dist/components/ui/file-upload/file-upload.d.ts +2 -0
  109. package/dist/components/ui/file-upload/index.d.ts +1 -0
  110. package/dist/components/ui/file-upload/use-file-upload.d.ts +49 -0
  111. package/dist/components/ui/pagination/index.d.ts +2 -0
  112. package/dist/components/ui/pagination/use-pagination.d.ts +78 -0
  113. package/dist/components/ui/rich-text-editor/index.d.ts +2 -0
  114. package/dist/components/ui/rich-text-editor/use-rich-text-editor.d.ts +107 -0
  115. package/dist/components/ui/stepper/index.d.ts +3 -1
  116. package/dist/components/ui/stepper/stepper.d.ts +2 -2
  117. package/dist/components/ui/stepper/use-stepper.d.ts +60 -0
  118. package/dist/components/ui/tree-view/index.d.ts +4 -1
  119. package/dist/components/ui/tree-view/tree-view.d.ts +4 -6
  120. package/dist/components/ui/tree-view/use-tree-view.d.ts +60 -0
  121. package/dist/contexts/AssistenteContext.d.ts +10 -49
  122. package/dist/hooks.cjs.js +30 -10
  123. package/dist/hooks.es.js +25 -4
  124. package/dist/index.cjs.js +20 -9
  125. package/dist/index.es.js +38 -27
  126. package/dist/layout.cjs.js +82 -1
  127. package/dist/layout.es.js +83 -2
  128. package/dist/media.cjs.js +1 -1
  129. package/dist/media.es.js +1 -1
  130. package/dist/pages.cjs.js +1 -1
  131. package/dist/pages.es.js +1 -1
  132. package/dist/rich-text-editor-BmsjY03B.js +2949 -0
  133. package/dist/rich-text-editor-GS2kpTAK.cjs +2966 -0
  134. package/dist/sidebar-CVUGHOS_.cjs +756 -0
  135. package/dist/sidebar-CmvwjnVb.js +757 -0
  136. package/dist/ui.cjs.js +12 -2
  137. package/dist/ui.es.js +24 -14
  138. package/dist/use-audio-player-Bkh23vQ3.js +177 -0
  139. package/dist/use-audio-player-Dn1NR9xN.cjs +176 -0
  140. package/dist/utils/color-utils.d.ts +51 -0
  141. package/dist/xertica-assistant-BMqdyRVi.js +2082 -0
  142. package/dist/xertica-assistant-Bj3vBCq_.cjs +2081 -0
  143. package/dist/xertica-ui.css +1 -1
  144. package/docs/ai-usage.md +28 -10
  145. package/docs/architecture-improvements.md +463 -0
  146. package/docs/architecture.md +77 -1
  147. package/docs/components/assistant-chart.md +1 -1
  148. package/docs/components/assistant.md +159 -0
  149. package/docs/components/audio-player.md +46 -0
  150. package/docs/components/branding.md +251 -0
  151. package/docs/components/chart.md +354 -39
  152. package/docs/components/code-block.md +108 -0
  153. package/docs/components/file-upload.md +119 -2
  154. package/docs/components/formatted-document.md +113 -0
  155. package/docs/components/hooks.md +430 -0
  156. package/docs/components/image-with-fallback.md +106 -0
  157. package/docs/components/map-layers.md +140 -0
  158. package/docs/components/modern-chat-input.md +163 -0
  159. package/docs/components/pages.md +351 -0
  160. package/docs/components/pagination.md +187 -0
  161. package/docs/components/rich-text-editor.md +164 -0
  162. package/docs/components/sidebar.md +153 -4
  163. package/docs/components/stepper.md +157 -12
  164. package/docs/components/tree-view.md +164 -6
  165. package/docs/doc-audit.md +223 -0
  166. package/docs/getting-started.md +155 -1
  167. package/docs/guidelines.md +14 -8
  168. package/docs/layout.md +2 -2
  169. package/docs/llms.md +29 -9
  170. package/docs/patterns/detail-page.md +276 -0
  171. package/docs/patterns/settings.md +346 -0
  172. package/docs/patterns/wizard.md +217 -0
  173. package/guidelines/Guidelines.md +5 -3
  174. package/llms.txt +1 -1
  175. package/package.json +10 -10
  176. package/styles/xertica/tokens.css +41 -12
  177. package/templates/CLAUDE.md +16 -6
  178. package/templates/guidelines/Guidelines.md +16 -4
  179. package/templates/package.json +3 -3
  180. package/templates/src/styles/xertica/tokens.css +39 -10
  181. package/utils/color-utils.ts +72 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const LanguageContext = require("./LanguageContext-DvUt5jBg.cjs");
4
+ const LayoutContext = require("./LayoutContext-BDmcZfMH.cjs");
5
+ const ThemeContext = require("./ThemeContext-bSzuOit2.cjs");
6
+ const googleMapsLoader = require("./google-maps-loader-BqsYL48U.cjs");
7
+ const sonner = require("./sonner-DeUIj0Zg.cjs");
8
+ const tooltip = require("./tooltip-CNtsL5cB.cjs");
9
+ function XerticaProvider({
10
+ children,
11
+ apiKey,
12
+ googleMapsApiKey,
13
+ defaultBrandTheme,
14
+ primaryColor,
15
+ useCustomTokens,
16
+ disableDarkMode
17
+ }) {
18
+ return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.ThemeProvider, { disableDarkMode, children: /* @__PURE__ */ jsxRuntime.jsx(
19
+ LanguageContext.BrandColorsProvider,
20
+ {
21
+ defaultTheme: defaultBrandTheme,
22
+ primaryColor,
23
+ useCustomTokens,
24
+ children: /* @__PURE__ */ jsxRuntime.jsx(LanguageContext.LanguageProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(
25
+ LanguageContext.ApiKeyProvider,
26
+ {
27
+ initialApiKey: apiKey,
28
+ initialGeminiApiKey: apiKey,
29
+ initialGoogleMapsApiKey: googleMapsApiKey,
30
+ children: /* @__PURE__ */ jsxRuntime.jsx(googleMapsLoader.GoogleMapsLoaderProvider, { apiKey: googleMapsApiKey, children: /* @__PURE__ */ jsxRuntime.jsx(LanguageContext.AssistenteProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(LayoutContext.LayoutProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.TooltipProvider, { children: [
31
+ children,
32
+ /* @__PURE__ */ jsxRuntime.jsx(sonner.Toaster, { position: "top-right", richColors: true })
33
+ ] }) }) }) })
34
+ }
35
+ ) })
36
+ }
37
+ ) });
38
+ }
39
+ exports.XerticaProvider = XerticaProvider;
@@ -0,0 +1,40 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { B as BrandColorsProvider, L as LanguageProvider, A as ApiKeyProvider, a as AssistenteProvider } from "./LanguageContext-BwhwC3G2.js";
3
+ import { L as LayoutProvider } from "./LayoutContext-dbQvdC4O.js";
4
+ import { T as ThemeProvider } from "./ThemeContext-RTy1m2Uq.js";
5
+ import { b as GoogleMapsLoaderProvider } from "./google-maps-loader-t2IlYBzw.js";
6
+ import { T as Toaster } from "./sonner-g9RIfi35.js";
7
+ import { b as TooltipProvider } from "./tooltip-CTyZCD8h.js";
8
+ function XerticaProvider({
9
+ children,
10
+ apiKey,
11
+ googleMapsApiKey,
12
+ defaultBrandTheme,
13
+ primaryColor,
14
+ useCustomTokens,
15
+ disableDarkMode
16
+ }) {
17
+ return /* @__PURE__ */ jsx(ThemeProvider, { disableDarkMode, children: /* @__PURE__ */ jsx(
18
+ BrandColorsProvider,
19
+ {
20
+ defaultTheme: defaultBrandTheme,
21
+ primaryColor,
22
+ useCustomTokens,
23
+ children: /* @__PURE__ */ jsx(LanguageProvider, { children: /* @__PURE__ */ jsx(
24
+ ApiKeyProvider,
25
+ {
26
+ initialApiKey: apiKey,
27
+ initialGeminiApiKey: apiKey,
28
+ initialGoogleMapsApiKey: googleMapsApiKey,
29
+ children: /* @__PURE__ */ jsx(GoogleMapsLoaderProvider, { apiKey: googleMapsApiKey, children: /* @__PURE__ */ jsx(AssistenteProvider, { children: /* @__PURE__ */ jsx(LayoutProvider, { children: /* @__PURE__ */ jsxs(TooltipProvider, { children: [
30
+ children,
31
+ /* @__PURE__ */ jsx(Toaster, { position: "top-right", richColors: true })
32
+ ] }) }) }) })
33
+ }
34
+ ) })
35
+ }
36
+ ) });
37
+ }
38
+ export {
39
+ XerticaProvider as X
40
+ };
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const React = require("react");
4
+ const select = require("./select-DT7Zjn42.cjs");
5
+ const lucideReact = require("lucide-react");
6
+ const button = require("./button-0CXwCRTm.cjs");
7
+ const ThemeContext = require("./ThemeContext-bSzuOit2.cjs");
8
+ function XerticaLogo({
9
+ className = "w-auto h-8",
10
+ color,
11
+ variant = "default"
12
+ }) {
13
+ const getColor = () => {
14
+ if (color) return color;
15
+ switch (variant) {
16
+ case "white":
17
+ return "#FFFFFF";
18
+ case "theme":
19
+ return "currentColor";
20
+ default:
21
+ return "var(--primary)";
22
+ }
23
+ };
24
+ return /* @__PURE__ */ jsxRuntime.jsxs(
25
+ "svg",
26
+ {
27
+ className,
28
+ fill: "none",
29
+ preserveAspectRatio: "xMidYMid meet",
30
+ viewBox: "0 0 1543 289",
31
+ xmlns: "http://www.w3.org/2000/svg",
32
+ children: [
33
+ /* @__PURE__ */ jsxRuntime.jsx("title", { children: "Logo Xertica" }),
34
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { id: "Xertica.ai", children: [
35
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1352.82 239.808V285.425H1304.73V239.808H1352.82Z", fill: getColor() }),
36
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M814.8 284.848H766.711V77.4971H814.8V284.848Z", fill: getColor() }),
37
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1543 284.438H1514.2V160.28H1543V284.438Z", fill: getColor() }),
38
+ /* @__PURE__ */ jsxRuntime.jsx(
39
+ "path",
40
+ {
41
+ clipRule: "evenodd",
42
+ d: "M1432.83 157.796C1446.98 157.796 1459.14 162.515 1468.58 170.709V160.28H1497.38V284.438H1468.58V274.01C1459.14 282.451 1446.98 286.921 1432.83 286.921C1395.1 286.921 1368.29 260.352 1368.29 222.359C1368.29 184.616 1395.1 157.796 1432.83 157.796ZM1432.83 183.778C1410.79 183.778 1396.27 199.061 1396.27 222.359C1396.27 245.658 1410.79 260.94 1432.83 260.94C1454.63 260.94 1468.9 245.658 1468.9 222.359C1468.9 199.06 1454.63 183.778 1432.83 183.778Z",
43
+ fill: getColor(),
44
+ fillRule: "evenodd"
45
+ }
46
+ ),
47
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M947.87 73.3516C1002.88 73.3516 1044.42 107.647 1053.57 159.234H1004.68C997.221 132.988 976.34 117.308 947.87 117.308C911.387 117.308 887.337 142.612 887.337 181.176C887.337 219.739 911.387 245.036 947.87 245.036C976.34 245.036 997.221 229.356 1004.68 203.109H1053.57C1044.47 254.701 1003.26 289 947.87 289C884.853 289 840.078 244.626 840.078 181.176C840.078 118.142 884.854 73.3516 947.87 73.3516Z", fill: getColor() }),
48
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M88.4971 39.8242L157.353 142.191L83.5371 251.524L60.9277 284.854H0L96.3154 142.191L5.37695 7H66.3047L88.4971 39.8242Z", fill: getColor() }),
49
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M254.314 284.855H193.387L151.914 223.71L182.548 178.551L254.314 284.855Z", fill: getColor() }),
50
+ /* @__PURE__ */ jsxRuntime.jsx(
51
+ "path",
52
+ {
53
+ clipRule: "evenodd",
54
+ d: "M1179.14 73.3477C1202.77 73.3477 1223.08 81.2286 1238.84 94.9121V77.4971H1286.94V284.847H1238.84V267.431C1223.09 281.528 1202.77 288.992 1179.14 288.992C1116.12 288.992 1071.35 244.622 1071.35 181.172C1071.35 118.139 1116.12 73.3478 1179.14 73.3477ZM1179.14 117.308C1142.66 117.308 1118.61 142.604 1118.61 181.172C1118.61 219.739 1142.66 245.035 1179.14 245.035C1215.21 245.035 1238.84 219.739 1238.84 181.172C1238.84 142.605 1215.21 117.308 1179.14 117.308Z",
55
+ fill: getColor(),
56
+ fillRule: "evenodd"
57
+ }
58
+ ),
59
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1543 145.383H1514.2V118.067H1543V145.383Z", fill: getColor() }),
60
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M672.466 77.501H736.31V121.457H672.466V211.448C672.466 230.939 682.415 240.891 702.313 240.891H736.309V284.852H698.999C649.246 284.851 625.203 259.968 625.203 211.449V7H672.466V77.501Z", fill: getColor() }),
61
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M814.8 52.6172H766.711V7H814.8V52.6172Z", fill: getColor() }),
62
+ /* @__PURE__ */ jsxRuntime.jsx(
63
+ "path",
64
+ {
65
+ clipRule: "evenodd",
66
+ d: "M354.069 73.3516C417.086 73.3517 461.864 118.143 461.864 181.176C461.864 187.396 461.031 193.615 460.204 199.422H295.197C301.829 228.864 323.392 246.696 354.069 246.696C372.724 246.696 389.309 241.721 399.675 226.376H452.742C441.132 265.774 400.501 288.996 354.069 288.996C291.053 288.996 246.274 244.626 246.273 181.176C246.273 118.142 291.053 73.3516 354.069 73.3516ZM354.068 115.65C325.044 115.65 303.902 131.826 296.44 158.78H410.863C403.819 131.826 382.672 115.65 354.068 115.65Z",
67
+ fill: getColor(),
68
+ fillRule: "evenodd"
69
+ }
70
+ ),
71
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M596.957 121.453H562.962C543.064 121.453 533.114 131.409 533.114 150.899V284.847H485.852V150.899C485.852 102.38 509.894 77.4972 559.647 77.4971H596.957V121.453Z", fill: getColor() }),
72
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M182.552 98.6992L151.922 53.3906L188.014 0H248.941L182.552 98.6992Z", fill: getColor() })
73
+ ] })
74
+ ]
75
+ }
76
+ );
77
+ }
78
+ function LanguageSelector({
79
+ onLanguageChange,
80
+ showLabel = false,
81
+ initialLanguage = "pt",
82
+ variant = "default",
83
+ showIcon = true,
84
+ className = ""
85
+ }) {
86
+ const [language, setLanguage] = React.useState(initialLanguage);
87
+ const handleLanguageChange = (value) => {
88
+ setLanguage(value);
89
+ if (onLanguageChange) onLanguageChange(value);
90
+ };
91
+ const getLabel = (lang) => {
92
+ if (lang === "pt") return "Português (BR)";
93
+ if (lang === "en") return "English";
94
+ return "Español";
95
+ };
96
+ return /* @__PURE__ */ jsxRuntime.jsxs(select.Select, { value: language, onValueChange: handleLanguageChange, children: [
97
+ /* @__PURE__ */ jsxRuntime.jsxs(
98
+ select.SelectTrigger,
99
+ {
100
+ className: `h-9 gap-2 px-3 border-none shadow-none focus:ring-0 text-muted-foreground hover:bg-accent hover:text-accent-foreground ${className}`,
101
+ "aria-label": "Selecionar idioma",
102
+ children: [
103
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "h-4 w-4 shrink-0" }),
104
+ /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, { placeholder: "Idioma", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: getLabel(language) }) })
105
+ ]
106
+ }
107
+ ),
108
+ /* @__PURE__ */ jsxRuntime.jsxs(select.SelectContent, { align: "end", children: [
109
+ /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: "pt", children: "Português (BR)" }),
110
+ /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: "en", children: "English" }),
111
+ /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: "es", children: "Español" })
112
+ ] })
113
+ ] });
114
+ }
115
+ function ThemeToggle({
116
+ size = "md",
117
+ variant = "ghost",
118
+ className = "",
119
+ showLabel = false
120
+ }) {
121
+ const { isDark, toggleTheme } = ThemeContext.useTheme();
122
+ const getSizeClasses = () => {
123
+ switch (size) {
124
+ case "sm":
125
+ return "h-8 w-8 p-0";
126
+ case "lg":
127
+ return "h-12 w-12 p-0";
128
+ default:
129
+ return "h-9 w-9 p-0";
130
+ }
131
+ };
132
+ const getIconSize = () => {
133
+ switch (size) {
134
+ case "sm":
135
+ return "h-3 w-3";
136
+ case "lg":
137
+ return "h-6 w-6";
138
+ default:
139
+ return "h-4 w-4";
140
+ }
141
+ };
142
+ const buttonClasses = showLabel ? "flex items-center gap-2 px-3 py-2" : getSizeClasses();
143
+ return /* @__PURE__ */ jsxRuntime.jsx(
144
+ button.Button,
145
+ {
146
+ variant,
147
+ onClick: toggleTheme,
148
+ className: `group ${buttonClasses} transition-all duration-200 hover:scale-105 ${className}`,
149
+ title: isDark ? "Mudar para tema claro" : "Mudar para tema escuro",
150
+ "aria-label": isDark ? "Mudar para tema claro" : "Mudar para tema escuro",
151
+ children: isDark ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
152
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sun, { className: `${getIconSize()} text-primary dark:text-amber-400 group-hover:opacity-80` }),
153
+ showLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Modo Claro" })
154
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
155
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Moon, { className: `${getIconSize()} text-muted-foreground group-hover:text-foreground` }),
156
+ showLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Modo Escuro" })
157
+ ] })
158
+ }
159
+ );
160
+ }
161
+ function XerticaXLogo({
162
+ className = "w-auto h-8",
163
+ color,
164
+ variant = "default"
165
+ }) {
166
+ const getColor = () => {
167
+ if (color) return color;
168
+ switch (variant) {
169
+ case "white":
170
+ return "#FFFFFF";
171
+ case "theme":
172
+ return "currentColor";
173
+ default:
174
+ return "var(--primary)";
175
+ }
176
+ };
177
+ return /* @__PURE__ */ jsxRuntime.jsx(
178
+ "svg",
179
+ {
180
+ className,
181
+ fill: "none",
182
+ preserveAspectRatio: "xMidYMid meet",
183
+ viewBox: "0 0 258 282",
184
+ xmlns: "http://www.w3.org/2000/svg",
185
+ children: /* @__PURE__ */ jsxRuntime.jsxs("g", { id: "Xertica X", children: [
186
+ /* @__PURE__ */ jsxRuntime.jsx(
187
+ "path",
188
+ {
189
+ d: "M67.2666 0.0361328L89.7793 33.3447L159.63 137.228L84.7471 248.178L61.8115 282H0L97.7109 137.228L5.45508 0.0361328H67.2666Z",
190
+ fill: getColor()
191
+ }
192
+ ),
193
+ /* @__PURE__ */ jsxRuntime.jsx(
194
+ "path",
195
+ {
196
+ d: "M258 282H196.185L154.114 219.951L185.192 174.123L258 282Z",
197
+ fill: getColor()
198
+ }
199
+ ),
200
+ /* @__PURE__ */ jsxRuntime.jsx(
201
+ "path",
202
+ {
203
+ d: "M252.696 0.186523L185.042 100.142L154.106 54.0693L190.884 0L252.696 0.186523Z",
204
+ fill: getColor()
205
+ }
206
+ )
207
+ ] })
208
+ }
209
+ );
210
+ }
211
+ exports.LanguageSelector = LanguageSelector;
212
+ exports.ThemeToggle = ThemeToggle;
213
+ exports.XerticaLogo = XerticaLogo;
214
+ exports.XerticaXLogo = XerticaXLogo;
@@ -0,0 +1,215 @@
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { S as Select, h as SelectTrigger, i as SelectValue, a as SelectContent, c as SelectItem } from "./select-En8DkoaQ.js";
4
+ import { Globe, Sun, Moon } from "lucide-react";
5
+ import { B as Button } from "./button-qkz7Icqf.js";
6
+ import { u as useTheme } from "./ThemeContext-RTy1m2Uq.js";
7
+ function XerticaLogo({
8
+ className = "w-auto h-8",
9
+ color,
10
+ variant = "default"
11
+ }) {
12
+ const getColor = () => {
13
+ if (color) return color;
14
+ switch (variant) {
15
+ case "white":
16
+ return "#FFFFFF";
17
+ case "theme":
18
+ return "currentColor";
19
+ default:
20
+ return "var(--primary)";
21
+ }
22
+ };
23
+ return /* @__PURE__ */ jsxs(
24
+ "svg",
25
+ {
26
+ className,
27
+ fill: "none",
28
+ preserveAspectRatio: "xMidYMid meet",
29
+ viewBox: "0 0 1543 289",
30
+ xmlns: "http://www.w3.org/2000/svg",
31
+ children: [
32
+ /* @__PURE__ */ jsx("title", { children: "Logo Xertica" }),
33
+ /* @__PURE__ */ jsxs("g", { id: "Xertica.ai", children: [
34
+ /* @__PURE__ */ jsx("path", { d: "M1352.82 239.808V285.425H1304.73V239.808H1352.82Z", fill: getColor() }),
35
+ /* @__PURE__ */ jsx("path", { d: "M814.8 284.848H766.711V77.4971H814.8V284.848Z", fill: getColor() }),
36
+ /* @__PURE__ */ jsx("path", { d: "M1543 284.438H1514.2V160.28H1543V284.438Z", fill: getColor() }),
37
+ /* @__PURE__ */ jsx(
38
+ "path",
39
+ {
40
+ clipRule: "evenodd",
41
+ d: "M1432.83 157.796C1446.98 157.796 1459.14 162.515 1468.58 170.709V160.28H1497.38V284.438H1468.58V274.01C1459.14 282.451 1446.98 286.921 1432.83 286.921C1395.1 286.921 1368.29 260.352 1368.29 222.359C1368.29 184.616 1395.1 157.796 1432.83 157.796ZM1432.83 183.778C1410.79 183.778 1396.27 199.061 1396.27 222.359C1396.27 245.658 1410.79 260.94 1432.83 260.94C1454.63 260.94 1468.9 245.658 1468.9 222.359C1468.9 199.06 1454.63 183.778 1432.83 183.778Z",
42
+ fill: getColor(),
43
+ fillRule: "evenodd"
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx("path", { d: "M947.87 73.3516C1002.88 73.3516 1044.42 107.647 1053.57 159.234H1004.68C997.221 132.988 976.34 117.308 947.87 117.308C911.387 117.308 887.337 142.612 887.337 181.176C887.337 219.739 911.387 245.036 947.87 245.036C976.34 245.036 997.221 229.356 1004.68 203.109H1053.57C1044.47 254.701 1003.26 289 947.87 289C884.853 289 840.078 244.626 840.078 181.176C840.078 118.142 884.854 73.3516 947.87 73.3516Z", fill: getColor() }),
47
+ /* @__PURE__ */ jsx("path", { d: "M88.4971 39.8242L157.353 142.191L83.5371 251.524L60.9277 284.854H0L96.3154 142.191L5.37695 7H66.3047L88.4971 39.8242Z", fill: getColor() }),
48
+ /* @__PURE__ */ jsx("path", { d: "M254.314 284.855H193.387L151.914 223.71L182.548 178.551L254.314 284.855Z", fill: getColor() }),
49
+ /* @__PURE__ */ jsx(
50
+ "path",
51
+ {
52
+ clipRule: "evenodd",
53
+ d: "M1179.14 73.3477C1202.77 73.3477 1223.08 81.2286 1238.84 94.9121V77.4971H1286.94V284.847H1238.84V267.431C1223.09 281.528 1202.77 288.992 1179.14 288.992C1116.12 288.992 1071.35 244.622 1071.35 181.172C1071.35 118.139 1116.12 73.3478 1179.14 73.3477ZM1179.14 117.308C1142.66 117.308 1118.61 142.604 1118.61 181.172C1118.61 219.739 1142.66 245.035 1179.14 245.035C1215.21 245.035 1238.84 219.739 1238.84 181.172C1238.84 142.605 1215.21 117.308 1179.14 117.308Z",
54
+ fill: getColor(),
55
+ fillRule: "evenodd"
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx("path", { d: "M1543 145.383H1514.2V118.067H1543V145.383Z", fill: getColor() }),
59
+ /* @__PURE__ */ jsx("path", { d: "M672.466 77.501H736.31V121.457H672.466V211.448C672.466 230.939 682.415 240.891 702.313 240.891H736.309V284.852H698.999C649.246 284.851 625.203 259.968 625.203 211.449V7H672.466V77.501Z", fill: getColor() }),
60
+ /* @__PURE__ */ jsx("path", { d: "M814.8 52.6172H766.711V7H814.8V52.6172Z", fill: getColor() }),
61
+ /* @__PURE__ */ jsx(
62
+ "path",
63
+ {
64
+ clipRule: "evenodd",
65
+ d: "M354.069 73.3516C417.086 73.3517 461.864 118.143 461.864 181.176C461.864 187.396 461.031 193.615 460.204 199.422H295.197C301.829 228.864 323.392 246.696 354.069 246.696C372.724 246.696 389.309 241.721 399.675 226.376H452.742C441.132 265.774 400.501 288.996 354.069 288.996C291.053 288.996 246.274 244.626 246.273 181.176C246.273 118.142 291.053 73.3516 354.069 73.3516ZM354.068 115.65C325.044 115.65 303.902 131.826 296.44 158.78H410.863C403.819 131.826 382.672 115.65 354.068 115.65Z",
66
+ fill: getColor(),
67
+ fillRule: "evenodd"
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsx("path", { d: "M596.957 121.453H562.962C543.064 121.453 533.114 131.409 533.114 150.899V284.847H485.852V150.899C485.852 102.38 509.894 77.4972 559.647 77.4971H596.957V121.453Z", fill: getColor() }),
71
+ /* @__PURE__ */ jsx("path", { d: "M182.552 98.6992L151.922 53.3906L188.014 0H248.941L182.552 98.6992Z", fill: getColor() })
72
+ ] })
73
+ ]
74
+ }
75
+ );
76
+ }
77
+ function LanguageSelector({
78
+ onLanguageChange,
79
+ showLabel = false,
80
+ initialLanguage = "pt",
81
+ variant = "default",
82
+ showIcon = true,
83
+ className = ""
84
+ }) {
85
+ const [language, setLanguage] = useState(initialLanguage);
86
+ const handleLanguageChange = (value) => {
87
+ setLanguage(value);
88
+ if (onLanguageChange) onLanguageChange(value);
89
+ };
90
+ const getLabel = (lang) => {
91
+ if (lang === "pt") return "Português (BR)";
92
+ if (lang === "en") return "English";
93
+ return "Español";
94
+ };
95
+ return /* @__PURE__ */ jsxs(Select, { value: language, onValueChange: handleLanguageChange, children: [
96
+ /* @__PURE__ */ jsxs(
97
+ SelectTrigger,
98
+ {
99
+ className: `h-9 gap-2 px-3 border-none shadow-none focus:ring-0 text-muted-foreground hover:bg-accent hover:text-accent-foreground ${className}`,
100
+ "aria-label": "Selecionar idioma",
101
+ children: [
102
+ showIcon && /* @__PURE__ */ jsx(Globe, { className: "h-4 w-4 shrink-0" }),
103
+ /* @__PURE__ */ jsx(SelectValue, { placeholder: "Idioma", children: /* @__PURE__ */ jsx("span", { className: "text-sm", children: getLabel(language) }) })
104
+ ]
105
+ }
106
+ ),
107
+ /* @__PURE__ */ jsxs(SelectContent, { align: "end", children: [
108
+ /* @__PURE__ */ jsx(SelectItem, { value: "pt", children: "Português (BR)" }),
109
+ /* @__PURE__ */ jsx(SelectItem, { value: "en", children: "English" }),
110
+ /* @__PURE__ */ jsx(SelectItem, { value: "es", children: "Español" })
111
+ ] })
112
+ ] });
113
+ }
114
+ function ThemeToggle({
115
+ size = "md",
116
+ variant = "ghost",
117
+ className = "",
118
+ showLabel = false
119
+ }) {
120
+ const { isDark, toggleTheme } = useTheme();
121
+ const getSizeClasses = () => {
122
+ switch (size) {
123
+ case "sm":
124
+ return "h-8 w-8 p-0";
125
+ case "lg":
126
+ return "h-12 w-12 p-0";
127
+ default:
128
+ return "h-9 w-9 p-0";
129
+ }
130
+ };
131
+ const getIconSize = () => {
132
+ switch (size) {
133
+ case "sm":
134
+ return "h-3 w-3";
135
+ case "lg":
136
+ return "h-6 w-6";
137
+ default:
138
+ return "h-4 w-4";
139
+ }
140
+ };
141
+ const buttonClasses = showLabel ? "flex items-center gap-2 px-3 py-2" : getSizeClasses();
142
+ return /* @__PURE__ */ jsx(
143
+ Button,
144
+ {
145
+ variant,
146
+ onClick: toggleTheme,
147
+ className: `group ${buttonClasses} transition-all duration-200 hover:scale-105 ${className}`,
148
+ title: isDark ? "Mudar para tema claro" : "Mudar para tema escuro",
149
+ "aria-label": isDark ? "Mudar para tema claro" : "Mudar para tema escuro",
150
+ children: isDark ? /* @__PURE__ */ jsxs(Fragment, { children: [
151
+ /* @__PURE__ */ jsx(Sun, { className: `${getIconSize()} text-primary dark:text-amber-400 group-hover:opacity-80` }),
152
+ showLabel && /* @__PURE__ */ jsx("span", { children: "Modo Claro" })
153
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
154
+ /* @__PURE__ */ jsx(Moon, { className: `${getIconSize()} text-muted-foreground group-hover:text-foreground` }),
155
+ showLabel && /* @__PURE__ */ jsx("span", { children: "Modo Escuro" })
156
+ ] })
157
+ }
158
+ );
159
+ }
160
+ function XerticaXLogo({
161
+ className = "w-auto h-8",
162
+ color,
163
+ variant = "default"
164
+ }) {
165
+ const getColor = () => {
166
+ if (color) return color;
167
+ switch (variant) {
168
+ case "white":
169
+ return "#FFFFFF";
170
+ case "theme":
171
+ return "currentColor";
172
+ default:
173
+ return "var(--primary)";
174
+ }
175
+ };
176
+ return /* @__PURE__ */ jsx(
177
+ "svg",
178
+ {
179
+ className,
180
+ fill: "none",
181
+ preserveAspectRatio: "xMidYMid meet",
182
+ viewBox: "0 0 258 282",
183
+ xmlns: "http://www.w3.org/2000/svg",
184
+ children: /* @__PURE__ */ jsxs("g", { id: "Xertica X", children: [
185
+ /* @__PURE__ */ jsx(
186
+ "path",
187
+ {
188
+ d: "M67.2666 0.0361328L89.7793 33.3447L159.63 137.228L84.7471 248.178L61.8115 282H0L97.7109 137.228L5.45508 0.0361328H67.2666Z",
189
+ fill: getColor()
190
+ }
191
+ ),
192
+ /* @__PURE__ */ jsx(
193
+ "path",
194
+ {
195
+ d: "M258 282H196.185L154.114 219.951L185.192 174.123L258 282Z",
196
+ fill: getColor()
197
+ }
198
+ ),
199
+ /* @__PURE__ */ jsx(
200
+ "path",
201
+ {
202
+ d: "M252.696 0.186523L185.042 100.142L154.106 54.0693L190.884 0L252.696 0.186523Z",
203
+ fill: getColor()
204
+ }
205
+ )
206
+ ] })
207
+ }
208
+ );
209
+ }
210
+ export {
211
+ LanguageSelector as L,
212
+ ThemeToggle as T,
213
+ XerticaLogo as X,
214
+ XerticaXLogo as a
215
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const xerticaAssistant = require("./xertica-assistant-B1IaHXnB.cjs");
3
+ const xerticaAssistant = require("./xertica-assistant-Bj3vBCq_.cjs");
4
4
  const CodeBlock = require("./CodeBlock-POVYONvC.cjs");
5
5
  const generateDemoResponse = (mensagemUsuario) => {
6
6
  const mensagemLower = mensagemUsuario.toLowerCase();
@@ -141,5 +141,6 @@ exports.FormattedDocument = xerticaAssistant.FormattedDocument;
141
141
  exports.MarkdownMessage = xerticaAssistant.MarkdownMessage;
142
142
  exports.ModernChatInput = xerticaAssistant.ModernChatInput;
143
143
  exports.XerticaAssistant = xerticaAssistant.XerticaAssistant;
144
+ exports.useAssistant = xerticaAssistant.useAssistant;
144
145
  exports.CodeBlock = CodeBlock.CodeBlock;
145
146
  exports.generateDemoResponse = generateDemoResponse;
@@ -1,4 +1,4 @@
1
- import { F, M, a, X } from "./xertica-assistant-DPsESB6t.js";
1
+ import { F, M, a, X, u } from "./xertica-assistant-BMqdyRVi.js";
2
2
  import { C } from "./CodeBlock-DuxdtN-l.js";
3
3
  const generateDemoResponse = (mensagemUsuario) => {
4
4
  const mensagemLower = mensagemUsuario.toLowerCase();
@@ -141,5 +141,6 @@ export {
141
141
  M as MarkdownMessage,
142
142
  a as ModernChatInput,
143
143
  X as XerticaAssistant,
144
- generateDemoResponse
144
+ generateDemoResponse,
145
+ u as useAssistant
145
146
  };
package/dist/brand.cjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const XerticaProvider = require("./XerticaProvider-By8q3Roe.cjs");
4
- const XerticaXLogo = require("./XerticaXLogo-xWbElCZj.cjs");
3
+ const XerticaProvider = require("./XerticaProvider-CW9hpCdF.cjs");
4
+ const XerticaXLogo = require("./XerticaXLogo-D8jf0SNv.cjs");
5
5
  const XerticaOrbe = require("./XerticaOrbe-FWGjBj0U.cjs");
6
6
  exports.XerticaProvider = XerticaProvider.XerticaProvider;
7
7
  exports.LanguageSelector = XerticaXLogo.LanguageSelector;
package/dist/brand.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { X } from "./XerticaProvider-BITjgC5p.js";
2
- import { L, T, X as X2, a } from "./XerticaXLogo-DzXKZBtG.js";
1
+ import { X } from "./XerticaProvider-siSt9uG2.js";
2
+ import { L, T, X as X2, a } from "./XerticaXLogo-fAJMy3H4.js";
3
3
  import { X as X3 } from "./XerticaOrbe-BGIB1CTK.js";
4
4
  export {
5
5
  L as LanguageSelector,
package/dist/cli.js CHANGED
@@ -342,8 +342,8 @@ var generateTokensCss = (theme) => {
342
342
  --success-foreground: rgba(250, 250, 250, 1);
343
343
  --info: rgba(37, 99, 235, 1);
344
344
  --info-foreground: rgba(250, 250, 250, 1);
345
- --warning: rgba(245, 158, 11, 1);
346
- --warning-foreground: rgba(24, 24, 27, 1);
345
+ --warning: rgba(234, 179, 8, 1);
346
+ --warning-foreground: rgba(28, 25, 23, 1);
347
347
 
348
348
  --border: rgba(228, 228, 231, 1);
349
349
  --input: rgba(244, 244, 245, 0.5);
@@ -366,12 +366,15 @@ var generateTokensCss = (theme) => {
366
366
  --sidebar-border: rgba(255, 255, 255, 0.1);
367
367
  --sidebar-ring: ${rgba(colors.primary, 0.5)};
368
368
 
369
- /* Charts */
369
+ /* Charts \u2014 vibrant, accessible, harmonious palette */
370
370
  --chart-1: ${rgba(colors.chart1)};
371
371
  --chart-2: ${rgba(colors.chart2)};
372
372
  --chart-3: ${rgba(colors.chart3)};
373
373
  --chart-4: ${rgba(colors.chart4)};
374
374
  --chart-5: ${rgba(colors.chart5)};
375
+ --chart-6: rgba(168, 85, 247, 1); /* purple \u2014 extended palette */
376
+ --chart-7: rgba(20, 184, 166, 1); /* teal \u2014 extended palette */
377
+ --chart-8: rgba(251, 113, 133, 1); /* rose \u2014 extended palette */
375
378
 
376
379
  /* Gradients */
377
380
  --gradient-diagonal: linear-gradient(135deg, ${colors.gradientStart} 0%, ${colors.gradientEnd} 100%);
@@ -424,9 +427,9 @@ var generateTokensCss = (theme) => {
424
427
  --toast-success-border: rgba(5, 150, 105, 1);
425
428
  --toast-success-icon: rgba(5, 150, 105, 1);
426
429
  /* Toast - Warning */
427
- --toast-warning-bg: rgba(254, 243, 199, 1);
428
- --toast-warning-border: rgba(245, 158, 11, 1);
429
- --toast-warning-icon: rgba(245, 158, 11, 1);
430
+ --toast-warning-bg: rgba(254, 249, 195, 1);
431
+ --toast-warning-border: rgba(161, 98, 7, 1);
432
+ --toast-warning-icon: rgba(161, 98, 7, 1);
430
433
  /* Toast - Info */
431
434
  --toast-info-bg: rgba(219, 234, 254, 1);
432
435
  --toast-info-border: rgba(37, 99, 235, 1);
@@ -484,12 +487,15 @@ var generateTokensCss = (theme) => {
484
487
 
485
488
  --elevation-sm: 0px 0px 48px 0px rgba(0, 0, 0, 0.3);
486
489
 
487
- /* Charts */
490
+ /* Charts \u2014 dark mode: slightly lighter/more saturated for contrast on dark bg */
488
491
  --chart-1: ${rgba(colors.chart1)};
489
492
  --chart-2: ${rgba(colors.chart2)};
490
493
  --chart-3: ${rgba(colors.chart3)};
491
494
  --chart-4: ${rgba(colors.chart4)};
492
495
  --chart-5: ${rgba(colors.chart5)};
496
+ --chart-6: rgba(196, 132, 252, 1); /* purple lighter */
497
+ --chart-7: rgba(45, 212, 191, 1); /* teal lighter */
498
+ --chart-8: rgba(253, 164, 175, 1); /* rose lighter */
493
499
 
494
500
  /* Sidebar */
495
501
  --sidebar: ${rgba(colors.sidebarDark)};
@@ -528,7 +534,7 @@ var generateTokensCss = (theme) => {
528
534
  var __filename = fileURLToPath(import.meta.url);
529
535
  var __dirname = path.dirname(__filename);
530
536
  var program = new Command();
531
- program.name("xertica-ui").description("CLI to initialize Xertica UI projects").version("2.1.2");
537
+ program.name("xertica-ui").description("CLI to initialize Xertica UI projects").version("2.1.3");
532
538
  program.command("init").description("Initialize a new Xertica UI project").argument("[directory]", "Directory to initialize in", ".").action(async (directory) => {
533
539
  const targetDir = path.resolve(process.cwd(), directory);
534
540
  const templatesDir = path.resolve(__dirname, "../templates");
@@ -1 +1,3 @@
1
1
  export * from './xertica-assistant';
2
+ export { useAssistant } from './use-assistant';
3
+ export type { UseAssistantProps, UseAssistantReturn } from './use-assistant';
@@ -0,0 +1,13 @@
1
+ import type { AssistantTab } from '../types';
2
+ interface AssistantCollapsedViewProps {
3
+ showHistory: boolean;
4
+ showFavorites: boolean;
5
+ onToggle: () => void;
6
+ onExpandWithTab: (tab: AssistantTab) => void;
7
+ }
8
+ /**
9
+ * AssistantCollapsedView — Icon-only strip shown when the assistant panel is collapsed.
10
+ * Renders the Xertica Orbe logo and quick-access icons for Chat, Favorites, and History.
11
+ */
12
+ export declare function AssistantCollapsedView({ showHistory, showFavorites, onToggle, onExpandWithTab, }: AssistantCollapsedViewProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { Conversation, AssistantTab } from '../types';
2
+ interface AssistantConversationListProps {
3
+ conversations: Conversation[];
4
+ currentConversationId: string | null;
5
+ activeTab: AssistantTab;
6
+ isFullPage: boolean;
7
+ onNewConversation: () => void;
8
+ onSelectConversation: (id: string) => void;
9
+ onToggleFavorite: (id: string) => void;
10
+ }
11
+ /**
12
+ * AssistantConversationList — Scrollable list of saved conversations shown in
13
+ * the History and Favorites tabs.
14
+ */
15
+ export declare function AssistantConversationList({ conversations, currentConversationId, activeTab, isFullPage, onNewConversation, onSelectConversation, onToggleFavorite, }: AssistantConversationListProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};