@gram-ai/elements 1.27.3 → 1.27.5

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 (278) hide show
  1. package/README.md +72 -60
  2. package/README.typedoc.md +6 -6
  3. package/bin/cli.js +74 -74
  4. package/dist/compat-shims-CO9JXXV4.cjs.map +1 -1
  5. package/dist/{compat-shims-BPJ7Q68c.js → compat-shims-DxtUrORi.js} +4 -2
  6. package/dist/compat-shims-DxtUrORi.js.map +1 -0
  7. package/dist/components/ShareButton/index.d.ts +2 -2
  8. package/dist/components/assistant-ui/message-feedback.d.ts +1 -1
  9. package/dist/components/assistant-ui/tooltip-icon-button.d.ts +2 -2
  10. package/dist/components/ui/avatar.d.ts +2 -2
  11. package/dist/components/ui/button.d.ts +1 -1
  12. package/dist/components/ui/calendar.d.ts +1 -1
  13. package/dist/components/ui/collapsible.d.ts +1 -1
  14. package/dist/components/ui/dialog.d.ts +4 -4
  15. package/dist/components/ui/popover.d.ts +2 -2
  16. package/dist/components/ui/skeleton.d.ts +1 -1
  17. package/dist/components/ui/time-range-picker.d.ts +4 -2
  18. package/dist/components/ui/tool-ui.d.ts +7 -7
  19. package/dist/components/ui/tooltip.d.ts +2 -2
  20. package/dist/contexts/ConnectionStatusContext.d.ts +1 -1
  21. package/dist/elements.cjs +1 -1
  22. package/dist/elements.css +1 -1
  23. package/dist/elements.js +2 -2
  24. package/dist/hooks/useDensity.d.ts +73 -73
  25. package/dist/hooks/useMCPTools.d.ts +1 -1
  26. package/dist/hooks/useRadius.d.ts +1 -1
  27. package/dist/{index-BpJstUh1.cjs → index-C4bFBGfl.cjs} +4 -4
  28. package/dist/{index-BpJstUh1.cjs.map → index-C4bFBGfl.cjs.map} +1 -1
  29. package/dist/{index-CUitXazZ.js → index-D93pV0_o.js} +55 -55
  30. package/dist/{index-CUitXazZ.js.map → index-D93pV0_o.js.map} +1 -1
  31. package/dist/{index-DBrhzauj.js → index-DuCQRbcQ.js} +6386 -6337
  32. package/dist/index-DuCQRbcQ.js.map +1 -0
  33. package/dist/{index-DxfW52oA.cjs → index-y_PNN5vK.cjs} +64 -46
  34. package/dist/index-y_PNN5vK.cjs.map +1 -0
  35. package/dist/lib/cassette.d.ts +4 -4
  36. package/dist/lib/errorTracking.d.ts +1 -1
  37. package/dist/lib/messageConverter.d.ts +1 -1
  38. package/dist/lib/models.d.ts +1 -1
  39. package/dist/plugins/chart/ui/bar-chart.d.ts +1 -1
  40. package/dist/plugins/generative-ui/ui/accordion-wrapper.d.ts +2 -2
  41. package/dist/plugins/generative-ui/ui/accordion.d.ts +1 -1
  42. package/dist/plugins/generative-ui/ui/action-button.d.ts +2 -2
  43. package/dist/plugins/generative-ui/ui/alert-wrapper.d.ts +1 -1
  44. package/dist/plugins/generative-ui/ui/alert.d.ts +4 -4
  45. package/dist/plugins/generative-ui/ui/avatar.d.ts +5 -5
  46. package/dist/plugins/generative-ui/ui/badge.d.ts +2 -2
  47. package/dist/plugins/generative-ui/ui/button-wrapper.d.ts +2 -2
  48. package/dist/plugins/generative-ui/ui/button.d.ts +2 -2
  49. package/dist/plugins/generative-ui/ui/card-wrapper.d.ts +2 -2
  50. package/dist/plugins/generative-ui/ui/card.d.ts +8 -8
  51. package/dist/plugins/generative-ui/ui/checkbox.d.ts +1 -1
  52. package/dist/plugins/generative-ui/ui/data-table.d.ts +2 -2
  53. package/dist/plugins/generative-ui/ui/dialog.d.ts +3 -3
  54. package/dist/plugins/generative-ui/ui/dropdown-menu.d.ts +3 -3
  55. package/dist/plugins/generative-ui/ui/grid.d.ts +3 -3
  56. package/dist/plugins/generative-ui/ui/input-wrapper.d.ts +1 -1
  57. package/dist/plugins/generative-ui/ui/input.d.ts +2 -2
  58. package/dist/plugins/generative-ui/ui/label.d.ts +1 -1
  59. package/dist/plugins/generative-ui/ui/metric.d.ts +3 -3
  60. package/dist/plugins/generative-ui/ui/pagination.d.ts +6 -6
  61. package/dist/plugins/generative-ui/ui/popover.d.ts +4 -4
  62. package/dist/plugins/generative-ui/ui/progress.d.ts +2 -2
  63. package/dist/plugins/generative-ui/ui/radio-group.d.ts +1 -1
  64. package/dist/plugins/generative-ui/ui/select.d.ts +2 -2
  65. package/dist/plugins/generative-ui/ui/separator.d.ts +1 -1
  66. package/dist/plugins/generative-ui/ui/skeleton.d.ts +1 -1
  67. package/dist/plugins/generative-ui/ui/stack.d.ts +6 -6
  68. package/dist/plugins/generative-ui/ui/switch.d.ts +2 -2
  69. package/dist/plugins/generative-ui/ui/table.d.ts +9 -9
  70. package/dist/plugins/generative-ui/ui/tabs-wrapper.d.ts +1 -1
  71. package/dist/plugins/generative-ui/ui/tabs.d.ts +1 -1
  72. package/dist/plugins/generative-ui/ui/text.d.ts +3 -3
  73. package/dist/plugins/generative-ui/ui/textarea.d.ts +2 -2
  74. package/dist/plugins/generative-ui/ui/tooltip.d.ts +1 -1
  75. package/dist/plugins.cjs +1 -1
  76. package/dist/plugins.js +1 -1
  77. package/dist/{profiler-D6ndqfsd.js → profiler-FpBY9eRv.js} +2 -2
  78. package/dist/{profiler-D6ndqfsd.js.map → profiler-FpBY9eRv.js.map} +1 -1
  79. package/dist/{profiler-DhnzZ34c.cjs → profiler-_mthyjvo.cjs} +2 -2
  80. package/dist/{profiler-DhnzZ34c.cjs.map → profiler-_mthyjvo.cjs.map} +1 -1
  81. package/dist/react-shim.js +1 -1
  82. package/dist/server/express.cjs.map +1 -1
  83. package/dist/server/express.js.map +1 -1
  84. package/dist/{startRecording-BwXmdmy1.cjs → startRecording-NJcpiHw-.cjs} +2 -2
  85. package/dist/{startRecording-BwXmdmy1.cjs.map → startRecording-NJcpiHw-.cjs.map} +1 -1
  86. package/dist/{startRecording-B_9CRZ_P.js → startRecording-r5MXQ2Dm.js} +2 -2
  87. package/dist/{startRecording-B_9CRZ_P.js.map → startRecording-r5MXQ2Dm.js.map} +1 -1
  88. package/dist/types/index.d.ts +2 -2
  89. package/package.json +1 -5
  90. package/src/compat-plugin.ts +14 -14
  91. package/src/compat-shims.ts +33 -31
  92. package/src/compat.test.ts +48 -48
  93. package/src/compat.ts +6 -6
  94. package/src/components/Chat/index.tsx +17 -17
  95. package/src/components/Chat/stories/Charts.stories.tsx +98 -98
  96. package/src/components/Chat/stories/Composer.stories.tsx +15 -15
  97. package/src/components/Chat/stories/ConnectionConfiguration.stories.tsx +44 -44
  98. package/src/components/Chat/stories/CustomComponents.stories.tsx +17 -17
  99. package/src/components/Chat/stories/Density.stories.tsx +20 -20
  100. package/src/components/Chat/stories/ErrorBoundary.stories.tsx +47 -47
  101. package/src/components/Chat/stories/FrontendTools.stories.tsx +39 -39
  102. package/src/components/Chat/stories/GenerativeUI.stories.tsx +48 -48
  103. package/src/components/Chat/stories/MessageFeedback.stories.tsx +52 -52
  104. package/src/components/Chat/stories/Modal.stories.tsx +28 -28
  105. package/src/components/Chat/stories/Model.stories.tsx +11 -11
  106. package/src/components/Chat/stories/Radius.stories.tsx +20 -20
  107. package/src/components/Chat/stories/Sidecar.stories.tsx +13 -13
  108. package/src/components/Chat/stories/StyleIsolation.stories.tsx +11 -11
  109. package/src/components/Chat/stories/Theme.stories.tsx +25 -25
  110. package/src/components/Chat/stories/Thread.stories.tsx +25 -25
  111. package/src/components/Chat/stories/ToolApproval.stories.tsx +55 -55
  112. package/src/components/Chat/stories/ToolMentions.stories.tsx +17 -17
  113. package/src/components/Chat/stories/Tools.stories.tsx +88 -88
  114. package/src/components/Chat/stories/Variants.stories.tsx +32 -32
  115. package/src/components/Chat/stories/Welcome.stories.tsx +14 -14
  116. package/src/components/ChatHistory.tsx +7 -7
  117. package/src/components/FrontendTools/index.tsx +5 -5
  118. package/src/components/Replay.stories.tsx +157 -157
  119. package/src/components/Replay.tsx +76 -73
  120. package/src/components/ShadowRoot.tsx +40 -40
  121. package/src/components/ShareButton/index.tsx +32 -32
  122. package/src/components/assistant-ui/assistant-modal.tsx +92 -87
  123. package/src/components/assistant-ui/assistant-sidecar.tsx +35 -35
  124. package/src/components/assistant-ui/attachment.tsx +80 -80
  125. package/src/components/assistant-ui/connection-status-indicator.tsx +33 -33
  126. package/src/components/assistant-ui/error-boundary.tsx +34 -34
  127. package/src/components/assistant-ui/follow-on-suggestions.tsx +26 -26
  128. package/src/components/assistant-ui/markdown-text.tsx +69 -69
  129. package/src/components/assistant-ui/mentioned-tools-badges.tsx +38 -38
  130. package/src/components/assistant-ui/message-feedback.tsx +74 -61
  131. package/src/components/assistant-ui/reasoning.tsx +83 -83
  132. package/src/components/assistant-ui/thread-list.tsx +45 -45
  133. package/src/components/assistant-ui/thread.tsx +278 -278
  134. package/src/components/assistant-ui/tool-fallback.tsx +37 -37
  135. package/src/components/assistant-ui/tool-group.tsx +26 -26
  136. package/src/components/assistant-ui/tool-mention-autocomplete.tsx +122 -122
  137. package/src/components/assistant-ui/tooltip-icon-button.tsx +18 -18
  138. package/src/components/ui/avatar.tsx +12 -12
  139. package/src/components/ui/button.tsx +12 -12
  140. package/src/components/ui/buttonVariants.ts +17 -17
  141. package/src/components/ui/calendar.tsx +106 -106
  142. package/src/components/ui/charts.stories.tsx +56 -56
  143. package/src/components/ui/collapsible.tsx +5 -5
  144. package/src/components/ui/dialog.tsx +30 -30
  145. package/src/components/ui/generative-ui.stories.tsx +200 -200
  146. package/src/components/ui/generative-ui.tsx +26 -26
  147. package/src/components/ui/popover.tsx +14 -14
  148. package/src/components/ui/skeleton.tsx +5 -5
  149. package/src/components/ui/time-range-picker.stories.tsx +80 -80
  150. package/src/components/ui/time-range-picker.tsx +272 -235
  151. package/src/components/ui/tool-ui.stories.tsx +37 -37
  152. package/src/components/ui/tool-ui.tsx +221 -215
  153. package/src/components/ui/tooltip.tsx +15 -15
  154. package/src/constants/tailwind.ts +1 -1
  155. package/src/contexts/ChatIdContext.tsx +7 -7
  156. package/src/contexts/ConnectionStatusContext.tsx +64 -64
  157. package/src/contexts/ElementsProvider.tsx +222 -211
  158. package/src/contexts/ReplayContext.ts +3 -3
  159. package/src/contexts/ToolApprovalContext.tsx +54 -54
  160. package/src/contexts/ToolExecutionContext.tsx +34 -34
  161. package/src/contexts/contexts.ts +7 -7
  162. package/src/contexts/portal-container-context.ts +2 -2
  163. package/src/contexts/portal-container.tsx +7 -7
  164. package/src/embedded.ts +1 -1
  165. package/src/global.css +25 -25
  166. package/src/hooks/useAuth.ts +72 -72
  167. package/src/hooks/useDensity.ts +79 -79
  168. package/src/hooks/useElements.ts +6 -6
  169. package/src/hooks/useExpanded.ts +12 -12
  170. package/src/hooks/useFollowOnSuggestions.ts +87 -82
  171. package/src/hooks/useGramThreadListAdapter.tsx +99 -99
  172. package/src/hooks/useMCPTools.ts +47 -47
  173. package/src/hooks/useModel.ts +14 -14
  174. package/src/hooks/usePluginComponents.ts +11 -11
  175. package/src/hooks/usePortalContainer.ts +5 -5
  176. package/src/hooks/useRadius.ts +23 -23
  177. package/src/hooks/useRecordCassette.ts +34 -34
  178. package/src/hooks/useSession.ts +11 -11
  179. package/src/hooks/useThemeProps.ts +13 -13
  180. package/src/hooks/useThreadId.ts +4 -4
  181. package/src/hooks/useToolApproval.ts +7 -7
  182. package/src/hooks/useToolMentions.ts +40 -40
  183. package/src/index.ts +26 -26
  184. package/src/lib/api.test.ts +61 -61
  185. package/src/lib/api.ts +4 -3
  186. package/src/lib/auth.ts +13 -13
  187. package/src/lib/cassette.ts +84 -84
  188. package/src/lib/easing.ts +1 -1
  189. package/src/lib/errorTracking.config.ts +5 -5
  190. package/src/lib/errorTracking.ts +29 -29
  191. package/src/lib/generative-ui.ts +7 -7
  192. package/src/lib/humanize.ts +3 -3
  193. package/src/lib/messageConverter.test.ts +130 -127
  194. package/src/lib/messageConverter.ts +196 -196
  195. package/src/lib/models.ts +21 -20
  196. package/src/lib/token.test.ts +56 -56
  197. package/src/lib/token.ts +14 -14
  198. package/src/lib/tool-mentions.ts +45 -45
  199. package/src/lib/tools.ts +66 -62
  200. package/src/lib/utils.ts +5 -5
  201. package/src/lib.d.ts +1 -1
  202. package/src/plugins/README.md +5 -5
  203. package/src/plugins/chart/catalog.ts +18 -18
  204. package/src/plugins/chart/chart.test.ts +31 -31
  205. package/src/plugins/chart/component.tsx +34 -34
  206. package/src/plugins/chart/index.ts +4 -4
  207. package/src/plugins/chart/ui/area-chart.tsx +42 -42
  208. package/src/plugins/chart/ui/bar-chart.tsx +46 -46
  209. package/src/plugins/chart/ui/donut-chart.tsx +48 -48
  210. package/src/plugins/chart/ui/index.ts +7 -7
  211. package/src/plugins/chart/ui/line-chart.tsx +43 -43
  212. package/src/plugins/chart/ui/pie-chart.tsx +44 -44
  213. package/src/plugins/chart/ui/radar-chart.tsx +33 -33
  214. package/src/plugins/chart/ui/scatter-chart.tsx +43 -43
  215. package/src/plugins/components/MacOSWindowFrame.tsx +15 -15
  216. package/src/plugins/components/PluginLoadingState.tsx +10 -10
  217. package/src/plugins/components/index.ts +1 -1
  218. package/src/plugins/generative-ui/catalog.ts +54 -54
  219. package/src/plugins/generative-ui/component.tsx +85 -85
  220. package/src/plugins/generative-ui/index.ts +4 -4
  221. package/src/plugins/generative-ui/ui/accordion-wrapper.tsx +16 -16
  222. package/src/plugins/generative-ui/ui/accordion.tsx +16 -16
  223. package/src/plugins/generative-ui/ui/action-button.tsx +28 -28
  224. package/src/plugins/generative-ui/ui/alert-wrapper.tsx +8 -8
  225. package/src/plugins/generative-ui/ui/alert.tsx +20 -20
  226. package/src/plugins/generative-ui/ui/avatar-wrapper.tsx +7 -7
  227. package/src/plugins/generative-ui/ui/avatar.tsx +30 -30
  228. package/src/plugins/generative-ui/ui/badge.tsx +22 -22
  229. package/src/plugins/generative-ui/ui/button-wrapper.tsx +12 -12
  230. package/src/plugins/generative-ui/ui/button.tsx +28 -28
  231. package/src/plugins/generative-ui/ui/card-wrapper.tsx +8 -8
  232. package/src/plugins/generative-ui/ui/card.tsx +27 -27
  233. package/src/plugins/generative-ui/ui/checkbox-wrapper.tsx +9 -9
  234. package/src/plugins/generative-ui/ui/checkbox.tsx +9 -9
  235. package/src/plugins/generative-ui/ui/data-table.tsx +8 -8
  236. package/src/plugins/generative-ui/ui/dialog.tsx +31 -31
  237. package/src/plugins/generative-ui/ui/dropdown-menu.tsx +44 -44
  238. package/src/plugins/generative-ui/ui/grid.tsx +12 -12
  239. package/src/plugins/generative-ui/ui/index.ts +40 -40
  240. package/src/plugins/generative-ui/ui/input-wrapper.tsx +11 -11
  241. package/src/plugins/generative-ui/ui/input.tsx +9 -9
  242. package/src/plugins/generative-ui/ui/label.tsx +8 -8
  243. package/src/plugins/generative-ui/ui/list.tsx +11 -11
  244. package/src/plugins/generative-ui/ui/metric.tsx +23 -23
  245. package/src/plugins/generative-ui/ui/pagination.tsx +28 -28
  246. package/src/plugins/generative-ui/ui/popover.tsx +21 -21
  247. package/src/plugins/generative-ui/ui/progress.tsx +13 -13
  248. package/src/plugins/generative-ui/ui/radio-group.tsx +12 -12
  249. package/src/plugins/generative-ui/ui/select-wrapper.tsx +7 -7
  250. package/src/plugins/generative-ui/ui/select.tsx +37 -37
  251. package/src/plugins/generative-ui/ui/separator.tsx +9 -9
  252. package/src/plugins/generative-ui/ui/skeleton-wrapper.tsx +10 -10
  253. package/src/plugins/generative-ui/ui/skeleton.tsx +5 -5
  254. package/src/plugins/generative-ui/ui/stack.tsx +28 -28
  255. package/src/plugins/generative-ui/ui/switch.tsx +11 -11
  256. package/src/plugins/generative-ui/ui/table.tsx +32 -32
  257. package/src/plugins/generative-ui/ui/tabs-wrapper.tsx +11 -11
  258. package/src/plugins/generative-ui/ui/tabs.tsx +26 -26
  259. package/src/plugins/generative-ui/ui/text.tsx +12 -12
  260. package/src/plugins/generative-ui/ui/textarea.tsx +7 -7
  261. package/src/plugins/generative-ui/ui/tooltip.tsx +12 -12
  262. package/src/plugins/index.ts +7 -7
  263. package/src/react-shim.ts +6 -6
  264. package/src/server/bun.ts +12 -12
  265. package/src/server/core.ts +25 -25
  266. package/src/server/express.ts +17 -15
  267. package/src/server/fastify.ts +14 -14
  268. package/src/server/hono.ts +9 -9
  269. package/src/server/nextjs.ts +12 -12
  270. package/src/server/tanstack-start.ts +12 -12
  271. package/src/server.ts +27 -27
  272. package/src/storybook.d.ts +4 -4
  273. package/src/types/index.ts +122 -122
  274. package/src/types/plugins.ts +7 -7
  275. package/src/vite-env.d.ts +12 -12
  276. package/dist/compat-shims-BPJ7Q68c.js.map +0 -1
  277. package/dist/index-DBrhzauj.js.map +0 -1
  278. package/dist/index-DxfW52oA.cjs.map +0 -1
@@ -1,13 +1,13 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
4
- import { Skeleton } from './skeleton'
5
- import { cn } from '@/lib/utils'
3
+ import * as React from "react";
4
+ import { Skeleton } from "./skeleton";
5
+ import { cn } from "@/lib/utils";
6
6
 
7
7
  export interface SkeletonWrapperProps {
8
- width?: string
9
- height?: string
10
- className?: string
8
+ width?: string;
9
+ height?: string;
10
+ className?: string;
11
11
  }
12
12
 
13
13
  /**
@@ -22,9 +22,9 @@ export function SkeletonWrapper({
22
22
  <Skeleton
23
23
  className={cn(className)}
24
24
  style={{
25
- width: width ?? '100%',
26
- height: height ?? '1rem',
25
+ width: width ?? "100%",
26
+ height: height ?? "1rem",
27
27
  }}
28
28
  />
29
- )
29
+ );
30
30
  }
@@ -1,13 +1,13 @@
1
- import { cn } from '@/lib/utils'
1
+ import { cn } from "@/lib/utils";
2
2
 
3
- function Skeleton({ className, ...props }: React.ComponentProps<'div'>) {
3
+ function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
4
4
  return (
5
5
  <div
6
6
  data-slot="skeleton"
7
- className={cn('bg-accent animate-pulse rounded-md', className)}
7
+ className={cn("animate-pulse rounded-md bg-accent", className)}
8
8
  {...props}
9
9
  />
10
- )
10
+ );
11
11
  }
12
12
 
13
- export { Skeleton }
13
+ export { Skeleton };
@@ -1,37 +1,37 @@
1
- import * as React from 'react'
2
- import { cn } from '@/lib/utils'
1
+ import * as React from "react";
2
+ import { cn } from "@/lib/utils";
3
3
 
4
- export interface StackProps extends React.ComponentProps<'div'> {
5
- direction?: 'horizontal' | 'vertical'
6
- gap?: 'sm' | 'md' | 'lg'
7
- align?: 'start' | 'center' | 'end' | 'stretch'
8
- justify?: 'start' | 'center' | 'end' | 'between' | 'around'
4
+ export interface StackProps extends React.ComponentProps<"div"> {
5
+ direction?: "horizontal" | "vertical";
6
+ gap?: "sm" | "md" | "lg";
7
+ align?: "start" | "center" | "end" | "stretch";
8
+ justify?: "start" | "center" | "end" | "between" | "around";
9
9
  }
10
10
 
11
11
  const gapClasses = {
12
- sm: 'gap-2',
13
- md: 'gap-4',
14
- lg: 'gap-6',
15
- }
12
+ sm: "gap-2",
13
+ md: "gap-4",
14
+ lg: "gap-6",
15
+ };
16
16
 
17
17
  const alignClasses = {
18
- start: 'items-start',
19
- center: 'items-center',
20
- end: 'items-end',
21
- stretch: 'items-stretch',
22
- }
18
+ start: "items-start",
19
+ center: "items-center",
20
+ end: "items-end",
21
+ stretch: "items-stretch",
22
+ };
23
23
 
24
24
  const justifyClasses = {
25
- start: 'justify-start',
26
- center: 'justify-center',
27
- end: 'justify-end',
28
- between: 'justify-between',
29
- around: 'justify-around',
30
- }
25
+ start: "justify-start",
26
+ center: "justify-center",
27
+ end: "justify-end",
28
+ between: "justify-between",
29
+ around: "justify-around",
30
+ };
31
31
 
32
32
  export function Stack({
33
- direction = 'vertical',
34
- gap = 'md',
33
+ direction = "vertical",
34
+ gap = "md",
35
35
  align,
36
36
  justify,
37
37
  className,
@@ -41,14 +41,14 @@ export function Stack({
41
41
  <div
42
42
  data-slot="stack"
43
43
  className={cn(
44
- 'flex',
45
- direction === 'horizontal' ? 'flex-row' : 'flex-col',
44
+ "flex",
45
+ direction === "horizontal" ? "flex-row" : "flex-col",
46
46
  gapClasses[gap],
47
47
  align && alignClasses[align],
48
48
  justify && justifyClasses[justify],
49
- className
49
+ className,
50
50
  )}
51
51
  {...props}
52
52
  />
53
- )
53
+ );
54
54
  }
@@ -1,35 +1,35 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
4
- import { Switch as SwitchPrimitive } from 'radix-ui'
3
+ import * as React from "react";
4
+ import { Switch as SwitchPrimitive } from "radix-ui";
5
5
 
6
- import { cn } from '@/lib/utils'
6
+ import { cn } from "@/lib/utils";
7
7
 
8
8
  function Switch({
9
9
  className,
10
- size = 'default',
10
+ size = "default",
11
11
  ...props
12
12
  }: React.ComponentProps<typeof SwitchPrimitive.Root> & {
13
- size?: 'sm' | 'default'
13
+ size?: "sm" | "default";
14
14
  }) {
15
15
  return (
16
16
  <SwitchPrimitive.Root
17
17
  data-slot="switch"
18
18
  data-size={size}
19
19
  className={cn(
20
- 'peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6',
21
- className
20
+ "peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",
21
+ className,
22
22
  )}
23
23
  {...props}
24
24
  >
25
25
  <SwitchPrimitive.Thumb
26
26
  data-slot="switch-thumb"
27
27
  className={cn(
28
- 'bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0'
28
+ "pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground",
29
29
  )}
30
30
  />
31
31
  </SwitchPrimitive.Root>
32
- )
32
+ );
33
33
  }
34
34
 
35
- export { Switch }
35
+ export { Switch };
@@ -1,10 +1,10 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
3
+ import * as React from "react";
4
4
 
5
- import { cn } from '@/lib/utils'
5
+ import { cn } from "@/lib/utils";
6
6
 
7
- function Table({ className, ...props }: React.ComponentProps<'table'>) {
7
+ function Table({ className, ...props }: React.ComponentProps<"table">) {
8
8
  return (
9
9
  <div
10
10
  data-slot="table-container"
@@ -12,96 +12,96 @@ function Table({ className, ...props }: React.ComponentProps<'table'>) {
12
12
  >
13
13
  <table
14
14
  data-slot="table"
15
- className={cn('w-full caption-bottom text-sm', className)}
15
+ className={cn("w-full caption-bottom text-sm", className)}
16
16
  {...props}
17
17
  />
18
18
  </div>
19
- )
19
+ );
20
20
  }
21
21
 
22
- function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {
22
+ function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
23
23
  return (
24
24
  <thead
25
25
  data-slot="table-header"
26
- className={cn('[&_tr]:border-b', className)}
26
+ className={cn("[&_tr]:border-b", className)}
27
27
  {...props}
28
28
  />
29
- )
29
+ );
30
30
  }
31
31
 
32
- function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {
32
+ function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
33
33
  return (
34
34
  <tbody
35
35
  data-slot="table-body"
36
- className={cn('[&_tr:last-child]:border-0', className)}
36
+ className={cn("[&_tr:last-child]:border-0", className)}
37
37
  {...props}
38
38
  />
39
- )
39
+ );
40
40
  }
41
41
 
42
- function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {
42
+ function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
43
43
  return (
44
44
  <tfoot
45
45
  data-slot="table-footer"
46
46
  className={cn(
47
- 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',
48
- className
47
+ "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
48
+ className,
49
49
  )}
50
50
  {...props}
51
51
  />
52
- )
52
+ );
53
53
  }
54
54
 
55
- function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
55
+ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
56
56
  return (
57
57
  <tr
58
58
  data-slot="table-row"
59
59
  className={cn(
60
- 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',
61
- className
60
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
61
+ className,
62
62
  )}
63
63
  {...props}
64
64
  />
65
- )
65
+ );
66
66
  }
67
67
 
68
- function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
68
+ function TableHead({ className, ...props }: React.ComponentProps<"th">) {
69
69
  return (
70
70
  <th
71
71
  data-slot="table-head"
72
72
  className={cn(
73
- 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
74
- className
73
+ "h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
74
+ className,
75
75
  )}
76
76
  {...props}
77
77
  />
78
- )
78
+ );
79
79
  }
80
80
 
81
- function TableCell({ className, ...props }: React.ComponentProps<'td'>) {
81
+ function TableCell({ className, ...props }: React.ComponentProps<"td">) {
82
82
  return (
83
83
  <td
84
84
  data-slot="table-cell"
85
85
  className={cn(
86
- 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
87
- className
86
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
87
+ className,
88
88
  )}
89
89
  {...props}
90
90
  />
91
- )
91
+ );
92
92
  }
93
93
 
94
94
  function TableCaption({
95
95
  className,
96
96
  ...props
97
- }: React.ComponentProps<'caption'>) {
97
+ }: React.ComponentProps<"caption">) {
98
98
  return (
99
99
  <caption
100
100
  data-slot="table-caption"
101
- className={cn('text-muted-foreground mt-4 text-sm', className)}
101
+ className={cn("mt-4 text-sm text-muted-foreground", className)}
102
102
  {...props}
103
103
  />
104
- )
104
+ );
105
105
  }
106
106
 
107
107
  export {
@@ -113,4 +113,4 @@ export {
113
113
  TableRow,
114
114
  TableCell,
115
115
  TableCaption,
116
- }
116
+ };
@@ -1,17 +1,17 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
3
+ import * as React from "react";
4
4
  import {
5
5
  Tabs as TabsPrimitive,
6
6
  TabsList,
7
7
  TabsTrigger,
8
8
  TabsContent as TabsContentPrimitive,
9
- } from './tabs'
9
+ } from "./tabs";
10
10
 
11
11
  export interface TabsWrapperProps {
12
- defaultValue?: string
13
- tabs: Array<{ value: string; label: string }>
14
- children?: React.ReactNode
12
+ defaultValue?: string;
13
+ tabs: Array<{ value: string; label: string }>;
14
+ children?: React.ReactNode;
15
15
  }
16
16
 
17
17
  /**
@@ -22,7 +22,7 @@ export function TabsWrapper({
22
22
  tabs,
23
23
  children,
24
24
  }: TabsWrapperProps) {
25
- const defaultTab = defaultValue ?? tabs[0]?.value
25
+ const defaultTab = defaultValue ?? tabs[0]?.value;
26
26
 
27
27
  return (
28
28
  <TabsPrimitive defaultValue={defaultTab}>
@@ -35,17 +35,17 @@ export function TabsWrapper({
35
35
  </TabsList>
36
36
  {children}
37
37
  </TabsPrimitive>
38
- )
38
+ );
39
39
  }
40
40
 
41
41
  export interface TabContentWrapperProps {
42
- value: string
43
- children?: React.ReactNode
42
+ value: string;
43
+ children?: React.ReactNode;
44
44
  }
45
45
 
46
46
  /**
47
47
  * TabContent wrapper - passes through to TabsContent.
48
48
  */
49
49
  export function TabContentWrapper({ value, children }: TabContentWrapperProps) {
50
- return <TabsContentPrimitive value={value}>{children}</TabsContentPrimitive>
50
+ return <TabsContentPrimitive value={value}>{children}</TabsContentPrimitive>;
51
51
  }
@@ -1,14 +1,14 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
4
- import { cva, type VariantProps } from 'class-variance-authority'
5
- import { Tabs as TabsPrimitive } from 'radix-ui'
3
+ import * as React from "react";
4
+ import { cva, type VariantProps } from "class-variance-authority";
5
+ import { Tabs as TabsPrimitive } from "radix-ui";
6
6
 
7
- import { cn } from '@/lib/utils'
7
+ import { cn } from "@/lib/utils";
8
8
 
9
9
  function Tabs({
10
10
  className,
11
- orientation = 'horizontal',
11
+ orientation = "horizontal",
12
12
  ...props
13
13
  }: React.ComponentProps<typeof TabsPrimitive.Root>) {
14
14
  return (
@@ -17,32 +17,32 @@ function Tabs({
17
17
  data-orientation={orientation}
18
18
  orientation={orientation}
19
19
  className={cn(
20
- 'group/tabs flex gap-2 data-[orientation=horizontal]:flex-col',
21
- className
20
+ "group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",
21
+ className,
22
22
  )}
23
23
  {...props}
24
24
  />
25
- )
25
+ );
26
26
  }
27
27
 
28
28
  const tabsListVariants = cva(
29
- 'rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col',
29
+ "rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",
30
30
  {
31
31
  variants: {
32
32
  variant: {
33
- default: 'bg-muted',
34
- line: 'gap-1 bg-transparent',
33
+ default: "bg-muted",
34
+ line: "gap-1 bg-transparent",
35
35
  },
36
36
  },
37
37
  defaultVariants: {
38
- variant: 'default',
38
+ variant: "default",
39
39
  },
40
- }
41
- )
40
+ },
41
+ );
42
42
 
43
43
  function TabsList({
44
44
  className,
45
- variant = 'default',
45
+ variant = "default",
46
46
  ...props
47
47
  }: React.ComponentProps<typeof TabsPrimitive.List> &
48
48
  VariantProps<typeof tabsListVariants>) {
@@ -53,7 +53,7 @@ function TabsList({
53
53
  className={cn(tabsListVariants({ variant }), className)}
54
54
  {...props}
55
55
  />
56
- )
56
+ );
57
57
  }
58
58
 
59
59
  function TabsTrigger({
@@ -64,15 +64,15 @@ function TabsTrigger({
64
64
  <TabsPrimitive.Trigger
65
65
  data-slot="tabs-trigger"
66
66
  className={cn(
67
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
68
- 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent',
69
- 'data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground',
70
- 'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100',
71
- className
67
+ "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
68
+ "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent",
69
+ "data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground",
70
+ "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",
71
+ className,
72
72
  )}
73
73
  {...props}
74
74
  />
75
- )
75
+ );
76
76
  }
77
77
 
78
78
  function TabsContent({
@@ -82,11 +82,11 @@ function TabsContent({
82
82
  return (
83
83
  <TabsPrimitive.Content
84
84
  data-slot="tabs-content"
85
- className={cn('flex-1 outline-none', className)}
85
+ className={cn("flex-1 outline-none", className)}
86
86
  {...props}
87
87
  />
88
- )
88
+ );
89
89
  }
90
90
 
91
91
  // eslint-disable-next-line react-refresh/only-export-components
92
- export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }
92
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -1,22 +1,22 @@
1
- import * as React from 'react'
2
- import { cn } from '@/lib/utils'
1
+ import * as React from "react";
2
+ import { cn } from "@/lib/utils";
3
3
 
4
- export interface TextProps extends React.ComponentProps<'span'> {
5
- content?: string
4
+ export interface TextProps extends React.ComponentProps<"span"> {
5
+ content?: string;
6
6
  /** Matches LLM prompt variants: heading, body, caption, code */
7
- variant?: 'heading' | 'body' | 'caption' | 'code'
7
+ variant?: "heading" | "body" | "caption" | "code";
8
8
  }
9
9
 
10
10
  const variantClasses = {
11
- heading: 'text-foreground text-lg font-semibold',
12
- body: 'text-foreground text-sm',
13
- caption: 'text-muted-foreground text-xs',
14
- code: 'text-foreground font-mono text-sm bg-muted px-1 rounded',
15
- }
11
+ heading: "text-foreground text-lg font-semibold",
12
+ body: "text-foreground text-sm",
13
+ caption: "text-muted-foreground text-xs",
14
+ code: "text-foreground font-mono text-sm bg-muted px-1 rounded",
15
+ };
16
16
 
17
17
  export function Text({
18
18
  content,
19
- variant = 'body',
19
+ variant = "body",
20
20
  className,
21
21
  children,
22
22
  ...props
@@ -29,5 +29,5 @@ export function Text({
29
29
  >
30
30
  {content ?? children}
31
31
  </span>
32
- )
32
+ );
33
33
  }
@@ -1,18 +1,18 @@
1
- import * as React from 'react'
1
+ import * as React from "react";
2
2
 
3
- import { cn } from '@/lib/utils'
3
+ import { cn } from "@/lib/utils";
4
4
 
5
- function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {
5
+ function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
6
6
  return (
7
7
  <textarea
8
8
  data-slot="textarea"
9
9
  className={cn(
10
- 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
11
- className
10
+ "flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
11
+ className,
12
12
  )}
13
13
  {...props}
14
14
  />
15
- )
15
+ );
16
16
  }
17
17
 
18
- export { Textarea }
18
+ export { Textarea };
@@ -1,9 +1,9 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import * as React from 'react'
4
- import { Tooltip as TooltipPrimitive } from 'radix-ui'
3
+ import * as React from "react";
4
+ import { Tooltip as TooltipPrimitive } from "radix-ui";
5
5
 
6
- import { cn } from '@/lib/utils'
6
+ import { cn } from "@/lib/utils";
7
7
 
8
8
  function TooltipProvider({
9
9
  delayDuration = 0,
@@ -15,19 +15,19 @@ function TooltipProvider({
15
15
  delayDuration={delayDuration}
16
16
  {...props}
17
17
  />
18
- )
18
+ );
19
19
  }
20
20
 
21
21
  function Tooltip({
22
22
  ...props
23
23
  }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
24
- return <TooltipPrimitive.Root data-slot="tooltip" {...props} />
24
+ return <TooltipPrimitive.Root data-slot="tooltip" {...props} />;
25
25
  }
26
26
 
27
27
  function TooltipTrigger({
28
28
  ...props
29
29
  }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
30
- return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
30
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
31
31
  }
32
32
 
33
33
  function TooltipContent({
@@ -42,16 +42,16 @@ function TooltipContent({
42
42
  data-slot="tooltip-content"
43
43
  sideOffset={sideOffset}
44
44
  className={cn(
45
- 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',
46
- className
45
+ "z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
46
+ className,
47
47
  )}
48
48
  {...props}
49
49
  >
50
50
  {children}
51
- <TooltipPrimitive.Arrow className="bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" />
51
+ <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" />
52
52
  </TooltipPrimitive.Content>
53
53
  </TooltipPrimitive.Portal>
54
- )
54
+ );
55
55
  }
56
56
 
57
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
57
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -1,9 +1,9 @@
1
- import type { Plugin } from '@/types/plugins'
2
- import { chart } from './chart'
3
- import { generativeUI } from './generative-ui'
1
+ import type { Plugin } from "@/types/plugins";
2
+ import { chart } from "./chart";
3
+ import { generativeUI } from "./generative-ui";
4
4
 
5
- export const recommended: Plugin[] = [chart, generativeUI]
6
- export { chart } from './chart'
7
- export { generativeUI } from './generative-ui'
5
+ export const recommended: Plugin[] = [chart, generativeUI];
6
+ export { chart } from "./chart";
7
+ export { generativeUI } from "./generative-ui";
8
8
 
9
- export type { Plugin } from '@/types/plugins'
9
+ export type { Plugin } from "@/types/plugins";