@gram-ai/elements 1.27.4 → 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 (277) 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 +1 -1
  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.js +2 -2
  23. package/dist/hooks/useDensity.d.ts +73 -73
  24. package/dist/hooks/useMCPTools.d.ts +1 -1
  25. package/dist/hooks/useRadius.d.ts +1 -1
  26. package/dist/{index-BpJstUh1.cjs → index-C4bFBGfl.cjs} +4 -4
  27. package/dist/{index-BpJstUh1.cjs.map → index-C4bFBGfl.cjs.map} +1 -1
  28. package/dist/{index-CUitXazZ.js → index-D93pV0_o.js} +55 -55
  29. package/dist/{index-CUitXazZ.js.map → index-D93pV0_o.js.map} +1 -1
  30. package/dist/{index-D0bAYNQy.js → index-DuCQRbcQ.js} +279 -265
  31. package/dist/index-DuCQRbcQ.js.map +1 -0
  32. package/dist/{index-KSX4Qjip.cjs → index-y_PNN5vK.cjs} +10 -10
  33. package/dist/index-y_PNN5vK.cjs.map +1 -0
  34. package/dist/lib/cassette.d.ts +4 -4
  35. package/dist/lib/errorTracking.d.ts +1 -1
  36. package/dist/lib/messageConverter.d.ts +1 -1
  37. package/dist/lib/models.d.ts +1 -1
  38. package/dist/plugins/chart/ui/bar-chart.d.ts +1 -1
  39. package/dist/plugins/generative-ui/ui/accordion-wrapper.d.ts +2 -2
  40. package/dist/plugins/generative-ui/ui/accordion.d.ts +1 -1
  41. package/dist/plugins/generative-ui/ui/action-button.d.ts +2 -2
  42. package/dist/plugins/generative-ui/ui/alert-wrapper.d.ts +1 -1
  43. package/dist/plugins/generative-ui/ui/alert.d.ts +4 -4
  44. package/dist/plugins/generative-ui/ui/avatar.d.ts +5 -5
  45. package/dist/plugins/generative-ui/ui/badge.d.ts +2 -2
  46. package/dist/plugins/generative-ui/ui/button-wrapper.d.ts +2 -2
  47. package/dist/plugins/generative-ui/ui/button.d.ts +2 -2
  48. package/dist/plugins/generative-ui/ui/card-wrapper.d.ts +2 -2
  49. package/dist/plugins/generative-ui/ui/card.d.ts +8 -8
  50. package/dist/plugins/generative-ui/ui/checkbox.d.ts +1 -1
  51. package/dist/plugins/generative-ui/ui/data-table.d.ts +2 -2
  52. package/dist/plugins/generative-ui/ui/dialog.d.ts +3 -3
  53. package/dist/plugins/generative-ui/ui/dropdown-menu.d.ts +3 -3
  54. package/dist/plugins/generative-ui/ui/grid.d.ts +3 -3
  55. package/dist/plugins/generative-ui/ui/input-wrapper.d.ts +1 -1
  56. package/dist/plugins/generative-ui/ui/input.d.ts +2 -2
  57. package/dist/plugins/generative-ui/ui/label.d.ts +1 -1
  58. package/dist/plugins/generative-ui/ui/metric.d.ts +3 -3
  59. package/dist/plugins/generative-ui/ui/pagination.d.ts +6 -6
  60. package/dist/plugins/generative-ui/ui/popover.d.ts +4 -4
  61. package/dist/plugins/generative-ui/ui/progress.d.ts +2 -2
  62. package/dist/plugins/generative-ui/ui/radio-group.d.ts +1 -1
  63. package/dist/plugins/generative-ui/ui/select.d.ts +2 -2
  64. package/dist/plugins/generative-ui/ui/separator.d.ts +1 -1
  65. package/dist/plugins/generative-ui/ui/skeleton.d.ts +1 -1
  66. package/dist/plugins/generative-ui/ui/stack.d.ts +6 -6
  67. package/dist/plugins/generative-ui/ui/switch.d.ts +2 -2
  68. package/dist/plugins/generative-ui/ui/table.d.ts +9 -9
  69. package/dist/plugins/generative-ui/ui/tabs-wrapper.d.ts +1 -1
  70. package/dist/plugins/generative-ui/ui/tabs.d.ts +1 -1
  71. package/dist/plugins/generative-ui/ui/text.d.ts +3 -3
  72. package/dist/plugins/generative-ui/ui/textarea.d.ts +2 -2
  73. package/dist/plugins/generative-ui/ui/tooltip.d.ts +1 -1
  74. package/dist/plugins.cjs +1 -1
  75. package/dist/plugins.js +1 -1
  76. package/dist/{profiler-BFkhZRxj.js → profiler-FpBY9eRv.js} +2 -2
  77. package/dist/{profiler-BFkhZRxj.js.map → profiler-FpBY9eRv.js.map} +1 -1
  78. package/dist/{profiler-CyzxBxVz.cjs → profiler-_mthyjvo.cjs} +2 -2
  79. package/dist/{profiler-CyzxBxVz.cjs.map → profiler-_mthyjvo.cjs.map} +1 -1
  80. package/dist/react-shim.js +1 -1
  81. package/dist/server/express.cjs.map +1 -1
  82. package/dist/server/express.js.map +1 -1
  83. package/dist/{startRecording-Dq92sEHf.cjs → startRecording-NJcpiHw-.cjs} +2 -2
  84. package/dist/{startRecording-Dq92sEHf.cjs.map → startRecording-NJcpiHw-.cjs.map} +1 -1
  85. package/dist/{startRecording-C-PPAs_Z.js → startRecording-r5MXQ2Dm.js} +2 -2
  86. package/dist/{startRecording-C-PPAs_Z.js.map → startRecording-r5MXQ2Dm.js.map} +1 -1
  87. package/dist/types/index.d.ts +2 -2
  88. package/package.json +1 -5
  89. package/src/compat-plugin.ts +14 -14
  90. package/src/compat-shims.ts +33 -31
  91. package/src/compat.test.ts +48 -48
  92. package/src/compat.ts +6 -6
  93. package/src/components/Chat/index.tsx +17 -17
  94. package/src/components/Chat/stories/Charts.stories.tsx +98 -98
  95. package/src/components/Chat/stories/Composer.stories.tsx +15 -15
  96. package/src/components/Chat/stories/ConnectionConfiguration.stories.tsx +44 -44
  97. package/src/components/Chat/stories/CustomComponents.stories.tsx +17 -17
  98. package/src/components/Chat/stories/Density.stories.tsx +20 -20
  99. package/src/components/Chat/stories/ErrorBoundary.stories.tsx +47 -47
  100. package/src/components/Chat/stories/FrontendTools.stories.tsx +39 -39
  101. package/src/components/Chat/stories/GenerativeUI.stories.tsx +48 -48
  102. package/src/components/Chat/stories/MessageFeedback.stories.tsx +52 -52
  103. package/src/components/Chat/stories/Modal.stories.tsx +28 -28
  104. package/src/components/Chat/stories/Model.stories.tsx +11 -11
  105. package/src/components/Chat/stories/Radius.stories.tsx +20 -20
  106. package/src/components/Chat/stories/Sidecar.stories.tsx +13 -13
  107. package/src/components/Chat/stories/StyleIsolation.stories.tsx +11 -11
  108. package/src/components/Chat/stories/Theme.stories.tsx +25 -25
  109. package/src/components/Chat/stories/Thread.stories.tsx +25 -25
  110. package/src/components/Chat/stories/ToolApproval.stories.tsx +55 -55
  111. package/src/components/Chat/stories/ToolMentions.stories.tsx +17 -17
  112. package/src/components/Chat/stories/Tools.stories.tsx +88 -88
  113. package/src/components/Chat/stories/Variants.stories.tsx +32 -32
  114. package/src/components/Chat/stories/Welcome.stories.tsx +14 -14
  115. package/src/components/ChatHistory.tsx +7 -7
  116. package/src/components/FrontendTools/index.tsx +5 -5
  117. package/src/components/Replay.stories.tsx +157 -157
  118. package/src/components/Replay.tsx +76 -73
  119. package/src/components/ShadowRoot.tsx +40 -40
  120. package/src/components/ShareButton/index.tsx +32 -32
  121. package/src/components/assistant-ui/assistant-modal.tsx +92 -87
  122. package/src/components/assistant-ui/assistant-sidecar.tsx +35 -35
  123. package/src/components/assistant-ui/attachment.tsx +80 -80
  124. package/src/components/assistant-ui/connection-status-indicator.tsx +33 -33
  125. package/src/components/assistant-ui/error-boundary.tsx +34 -34
  126. package/src/components/assistant-ui/follow-on-suggestions.tsx +26 -26
  127. package/src/components/assistant-ui/markdown-text.tsx +69 -69
  128. package/src/components/assistant-ui/mentioned-tools-badges.tsx +38 -38
  129. package/src/components/assistant-ui/message-feedback.tsx +57 -50
  130. package/src/components/assistant-ui/reasoning.tsx +83 -83
  131. package/src/components/assistant-ui/thread-list.tsx +45 -45
  132. package/src/components/assistant-ui/thread.tsx +278 -278
  133. package/src/components/assistant-ui/tool-fallback.tsx +37 -37
  134. package/src/components/assistant-ui/tool-group.tsx +26 -26
  135. package/src/components/assistant-ui/tool-mention-autocomplete.tsx +122 -122
  136. package/src/components/assistant-ui/tooltip-icon-button.tsx +18 -18
  137. package/src/components/ui/avatar.tsx +12 -12
  138. package/src/components/ui/button.tsx +12 -12
  139. package/src/components/ui/buttonVariants.ts +17 -17
  140. package/src/components/ui/calendar.tsx +106 -106
  141. package/src/components/ui/charts.stories.tsx +56 -56
  142. package/src/components/ui/collapsible.tsx +5 -5
  143. package/src/components/ui/dialog.tsx +30 -30
  144. package/src/components/ui/generative-ui.stories.tsx +200 -200
  145. package/src/components/ui/generative-ui.tsx +26 -26
  146. package/src/components/ui/popover.tsx +14 -14
  147. package/src/components/ui/skeleton.tsx +5 -5
  148. package/src/components/ui/time-range-picker.stories.tsx +80 -80
  149. package/src/components/ui/time-range-picker.tsx +245 -244
  150. package/src/components/ui/tool-ui.stories.tsx +37 -37
  151. package/src/components/ui/tool-ui.tsx +221 -215
  152. package/src/components/ui/tooltip.tsx +15 -15
  153. package/src/constants/tailwind.ts +1 -1
  154. package/src/contexts/ChatIdContext.tsx +7 -7
  155. package/src/contexts/ConnectionStatusContext.tsx +64 -64
  156. package/src/contexts/ElementsProvider.tsx +214 -213
  157. package/src/contexts/ReplayContext.ts +3 -3
  158. package/src/contexts/ToolApprovalContext.tsx +54 -54
  159. package/src/contexts/ToolExecutionContext.tsx +34 -34
  160. package/src/contexts/contexts.ts +7 -7
  161. package/src/contexts/portal-container-context.ts +2 -2
  162. package/src/contexts/portal-container.tsx +7 -7
  163. package/src/embedded.ts +1 -1
  164. package/src/global.css +25 -25
  165. package/src/hooks/useAuth.ts +72 -72
  166. package/src/hooks/useDensity.ts +79 -79
  167. package/src/hooks/useElements.ts +6 -6
  168. package/src/hooks/useExpanded.ts +12 -12
  169. package/src/hooks/useFollowOnSuggestions.ts +83 -83
  170. package/src/hooks/useGramThreadListAdapter.tsx +99 -99
  171. package/src/hooks/useMCPTools.ts +47 -47
  172. package/src/hooks/useModel.ts +14 -14
  173. package/src/hooks/usePluginComponents.ts +11 -11
  174. package/src/hooks/usePortalContainer.ts +5 -5
  175. package/src/hooks/useRadius.ts +23 -23
  176. package/src/hooks/useRecordCassette.ts +34 -34
  177. package/src/hooks/useSession.ts +11 -11
  178. package/src/hooks/useThemeProps.ts +13 -13
  179. package/src/hooks/useThreadId.ts +4 -4
  180. package/src/hooks/useToolApproval.ts +7 -7
  181. package/src/hooks/useToolMentions.ts +40 -40
  182. package/src/index.ts +26 -26
  183. package/src/lib/api.test.ts +61 -61
  184. package/src/lib/api.ts +4 -3
  185. package/src/lib/auth.ts +13 -13
  186. package/src/lib/cassette.ts +84 -84
  187. package/src/lib/easing.ts +1 -1
  188. package/src/lib/errorTracking.config.ts +5 -5
  189. package/src/lib/errorTracking.ts +29 -29
  190. package/src/lib/generative-ui.ts +7 -7
  191. package/src/lib/humanize.ts +3 -3
  192. package/src/lib/messageConverter.test.ts +130 -127
  193. package/src/lib/messageConverter.ts +196 -196
  194. package/src/lib/models.ts +21 -20
  195. package/src/lib/token.test.ts +56 -56
  196. package/src/lib/token.ts +14 -14
  197. package/src/lib/tool-mentions.ts +45 -45
  198. package/src/lib/tools.ts +66 -62
  199. package/src/lib/utils.ts +5 -5
  200. package/src/lib.d.ts +1 -1
  201. package/src/plugins/README.md +5 -5
  202. package/src/plugins/chart/catalog.ts +18 -18
  203. package/src/plugins/chart/chart.test.ts +31 -31
  204. package/src/plugins/chart/component.tsx +34 -34
  205. package/src/plugins/chart/index.ts +4 -4
  206. package/src/plugins/chart/ui/area-chart.tsx +42 -42
  207. package/src/plugins/chart/ui/bar-chart.tsx +46 -46
  208. package/src/plugins/chart/ui/donut-chart.tsx +48 -48
  209. package/src/plugins/chart/ui/index.ts +7 -7
  210. package/src/plugins/chart/ui/line-chart.tsx +43 -43
  211. package/src/plugins/chart/ui/pie-chart.tsx +44 -44
  212. package/src/plugins/chart/ui/radar-chart.tsx +33 -33
  213. package/src/plugins/chart/ui/scatter-chart.tsx +43 -43
  214. package/src/plugins/components/MacOSWindowFrame.tsx +15 -15
  215. package/src/plugins/components/PluginLoadingState.tsx +10 -10
  216. package/src/plugins/components/index.ts +1 -1
  217. package/src/plugins/generative-ui/catalog.ts +54 -54
  218. package/src/plugins/generative-ui/component.tsx +85 -85
  219. package/src/plugins/generative-ui/index.ts +4 -4
  220. package/src/plugins/generative-ui/ui/accordion-wrapper.tsx +16 -16
  221. package/src/plugins/generative-ui/ui/accordion.tsx +16 -16
  222. package/src/plugins/generative-ui/ui/action-button.tsx +28 -28
  223. package/src/plugins/generative-ui/ui/alert-wrapper.tsx +8 -8
  224. package/src/plugins/generative-ui/ui/alert.tsx +20 -20
  225. package/src/plugins/generative-ui/ui/avatar-wrapper.tsx +7 -7
  226. package/src/plugins/generative-ui/ui/avatar.tsx +30 -30
  227. package/src/plugins/generative-ui/ui/badge.tsx +22 -22
  228. package/src/plugins/generative-ui/ui/button-wrapper.tsx +12 -12
  229. package/src/plugins/generative-ui/ui/button.tsx +28 -28
  230. package/src/plugins/generative-ui/ui/card-wrapper.tsx +8 -8
  231. package/src/plugins/generative-ui/ui/card.tsx +27 -27
  232. package/src/plugins/generative-ui/ui/checkbox-wrapper.tsx +9 -9
  233. package/src/plugins/generative-ui/ui/checkbox.tsx +9 -9
  234. package/src/plugins/generative-ui/ui/data-table.tsx +8 -8
  235. package/src/plugins/generative-ui/ui/dialog.tsx +31 -31
  236. package/src/plugins/generative-ui/ui/dropdown-menu.tsx +44 -44
  237. package/src/plugins/generative-ui/ui/grid.tsx +12 -12
  238. package/src/plugins/generative-ui/ui/index.ts +40 -40
  239. package/src/plugins/generative-ui/ui/input-wrapper.tsx +11 -11
  240. package/src/plugins/generative-ui/ui/input.tsx +9 -9
  241. package/src/plugins/generative-ui/ui/label.tsx +8 -8
  242. package/src/plugins/generative-ui/ui/list.tsx +11 -11
  243. package/src/plugins/generative-ui/ui/metric.tsx +23 -23
  244. package/src/plugins/generative-ui/ui/pagination.tsx +28 -28
  245. package/src/plugins/generative-ui/ui/popover.tsx +21 -21
  246. package/src/plugins/generative-ui/ui/progress.tsx +13 -13
  247. package/src/plugins/generative-ui/ui/radio-group.tsx +12 -12
  248. package/src/plugins/generative-ui/ui/select-wrapper.tsx +7 -7
  249. package/src/plugins/generative-ui/ui/select.tsx +37 -37
  250. package/src/plugins/generative-ui/ui/separator.tsx +9 -9
  251. package/src/plugins/generative-ui/ui/skeleton-wrapper.tsx +10 -10
  252. package/src/plugins/generative-ui/ui/skeleton.tsx +5 -5
  253. package/src/plugins/generative-ui/ui/stack.tsx +28 -28
  254. package/src/plugins/generative-ui/ui/switch.tsx +11 -11
  255. package/src/plugins/generative-ui/ui/table.tsx +32 -32
  256. package/src/plugins/generative-ui/ui/tabs-wrapper.tsx +11 -11
  257. package/src/plugins/generative-ui/ui/tabs.tsx +26 -26
  258. package/src/plugins/generative-ui/ui/text.tsx +12 -12
  259. package/src/plugins/generative-ui/ui/textarea.tsx +7 -7
  260. package/src/plugins/generative-ui/ui/tooltip.tsx +12 -12
  261. package/src/plugins/index.ts +7 -7
  262. package/src/react-shim.ts +6 -6
  263. package/src/server/bun.ts +12 -12
  264. package/src/server/core.ts +25 -25
  265. package/src/server/express.ts +17 -15
  266. package/src/server/fastify.ts +14 -14
  267. package/src/server/hono.ts +9 -9
  268. package/src/server/nextjs.ts +12 -12
  269. package/src/server/tanstack-start.ts +12 -12
  270. package/src/server.ts +27 -27
  271. package/src/storybook.d.ts +4 -4
  272. package/src/types/index.ts +122 -122
  273. package/src/types/plugins.ts +7 -7
  274. package/src/vite-env.d.ts +12 -12
  275. package/dist/compat-shims-BPJ7Q68c.js.map +0 -1
  276. package/dist/index-D0bAYNQy.js.map +0 -1
  277. package/dist/index-KSX4Qjip.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
2
  import {
3
3
  AreaChart,
4
4
  BarChart,
@@ -7,79 +7,79 @@ import {
7
7
  DonutChart,
8
8
  RadarChart,
9
9
  ScatterChart,
10
- } from '@/plugins/chart/ui'
10
+ } from "@/plugins/chart/ui";
11
11
 
12
12
  // Wrapper component to render different chart types
13
13
  const ChartWrapper = ({ children }: { children: React.ReactNode }) => (
14
14
  <div className="w-full">{children}</div>
15
- )
15
+ );
16
16
 
17
17
  const meta: Meta = {
18
- title: 'Components/Charts',
18
+ title: "Components/Charts",
19
19
  parameters: {
20
- layout: 'fullscreen',
20
+ layout: "fullscreen",
21
21
  },
22
22
  decorators: [
23
23
  (Story) => (
24
- <div className="bg-background text-foreground min-h-screen p-6">
24
+ <div className="min-h-screen bg-background p-6 text-foreground">
25
25
  <div className="max-w-2xl">
26
26
  <Story />
27
27
  </div>
28
28
  </div>
29
29
  ),
30
30
  ],
31
- }
31
+ };
32
32
 
33
- export default meta
33
+ export default meta;
34
34
 
35
35
  // Sample data for time series charts
36
36
  const timeSeriesData = [
37
- { label: 'Jan', value: 4000, revenue: 2400, profit: 1200 },
38
- { label: 'Feb', value: 3000, revenue: 1398, profit: 900 },
39
- { label: 'Mar', value: 2000, revenue: 9800, profit: 2100 },
40
- { label: 'Apr', value: 2780, revenue: 3908, profit: 1500 },
41
- { label: 'May', value: 1890, revenue: 4800, profit: 1800 },
42
- { label: 'Jun', value: 2390, revenue: 3800, profit: 1400 },
43
- { label: 'Jul', value: 3490, revenue: 4300, profit: 2000 },
44
- ]
37
+ { label: "Jan", value: 4000, revenue: 2400, profit: 1200 },
38
+ { label: "Feb", value: 3000, revenue: 1398, profit: 900 },
39
+ { label: "Mar", value: 2000, revenue: 9800, profit: 2100 },
40
+ { label: "Apr", value: 2780, revenue: 3908, profit: 1500 },
41
+ { label: "May", value: 1890, revenue: 4800, profit: 1800 },
42
+ { label: "Jun", value: 2390, revenue: 3800, profit: 1400 },
43
+ { label: "Jul", value: 3490, revenue: 4300, profit: 2000 },
44
+ ];
45
45
 
46
46
  // Sample data for category charts
47
47
  const categoryData = [
48
- { label: 'Electronics', value: 4500 },
49
- { label: 'Clothing', value: 3200 },
50
- { label: 'Home & Garden', value: 2800 },
51
- { label: 'Sports', value: 2100 },
52
- { label: 'Books', value: 1500 },
53
- ]
48
+ { label: "Electronics", value: 4500 },
49
+ { label: "Clothing", value: 3200 },
50
+ { label: "Home & Garden", value: 2800 },
51
+ { label: "Sports", value: 2100 },
52
+ { label: "Books", value: 1500 },
53
+ ];
54
54
 
55
55
  // Sample data for pie/donut charts
56
56
  const pieData = [
57
- { label: 'Desktop', value: 45 },
58
- { label: 'Mobile', value: 35 },
59
- { label: 'Tablet', value: 15 },
60
- { label: 'Other', value: 5 },
61
- ]
57
+ { label: "Desktop", value: 45 },
58
+ { label: "Mobile", value: 35 },
59
+ { label: "Tablet", value: 15 },
60
+ { label: "Other", value: 5 },
61
+ ];
62
62
 
63
63
  // Sample data for radar chart
64
64
  const radarData = [
65
- { label: 'Speed', value: 85 },
66
- { label: 'Reliability', value: 90 },
67
- { label: 'Comfort', value: 78 },
68
- { label: 'Safety', value: 95 },
69
- { label: 'Efficiency', value: 82 },
70
- ]
65
+ { label: "Speed", value: 85 },
66
+ { label: "Reliability", value: 90 },
67
+ { label: "Comfort", value: 78 },
68
+ { label: "Safety", value: 95 },
69
+ { label: "Efficiency", value: 82 },
70
+ ];
71
71
 
72
72
  // Sample data for scatter chart
73
73
  const scatterData = [
74
- { x: 10, y: 30, label: 'A' },
75
- { x: 40, y: 50, label: 'B' },
76
- { x: 20, y: 80, label: 'C' },
77
- { x: 60, y: 40, label: 'D' },
78
- { x: 80, y: 90, label: 'E' },
79
- { x: 30, y: 60, label: 'F' },
80
- { x: 50, y: 20, label: 'G' },
81
- { x: 70, y: 70, label: 'H' },
82
- ]
74
+ { x: 10, y: 30, label: "A" },
75
+ { x: 40, y: 50, label: "B" },
76
+ { x: 20, y: 80, label: "C" },
77
+ { x: 60, y: 40, label: "D" },
78
+ { x: 80, y: 90, label: "E" },
79
+ { x: 30, y: 60, label: "F" },
80
+ { x: 50, y: 20, label: "G" },
81
+ { x: 70, y: 70, label: "H" },
82
+ ];
83
83
 
84
84
  /**
85
85
  * Area chart showing trends over time with filled areas.
@@ -90,13 +90,13 @@ export const Area: StoryObj = {
90
90
  <AreaChart
91
91
  title="Revenue Over Time"
92
92
  data={timeSeriesData}
93
- series={['value', 'revenue']}
93
+ series={["value", "revenue"]}
94
94
  showGrid
95
95
  showLegend
96
96
  />
97
97
  </ChartWrapper>
98
98
  ),
99
- }
99
+ };
100
100
 
101
101
  /**
102
102
  * Stacked area chart comparing multiple data series.
@@ -107,14 +107,14 @@ export const AreaStacked: StoryObj = {
107
107
  <AreaChart
108
108
  title="Stacked Revenue Breakdown"
109
109
  data={timeSeriesData}
110
- series={['revenue', 'profit']}
110
+ series={["revenue", "profit"]}
111
111
  stacked
112
112
  showGrid
113
113
  showLegend
114
114
  />
115
115
  </ChartWrapper>
116
116
  ),
117
- }
117
+ };
118
118
 
119
119
  /**
120
120
  * Vertical bar chart for comparing categories.
@@ -130,7 +130,7 @@ export const Bar: StoryObj = {
130
130
  />
131
131
  </ChartWrapper>
132
132
  ),
133
- }
133
+ };
134
134
 
135
135
  /**
136
136
  * Horizontal bar chart layout.
@@ -146,7 +146,7 @@ export const BarHorizontal: StoryObj = {
146
146
  />
147
147
  </ChartWrapper>
148
148
  ),
149
- }
149
+ };
150
150
 
151
151
  /**
152
152
  * Line chart for tracking trends over time.
@@ -157,14 +157,14 @@ export const Line: StoryObj = {
157
157
  <LineChart
158
158
  title="Monthly Performance"
159
159
  data={timeSeriesData}
160
- series={['value', 'revenue']}
160
+ series={["value", "revenue"]}
161
161
  showGrid
162
162
  showLegend
163
163
  showDots
164
164
  />
165
165
  </ChartWrapper>
166
166
  ),
167
- }
167
+ };
168
168
 
169
169
  /**
170
170
  * Curved line chart with smooth interpolation.
@@ -175,14 +175,14 @@ export const LineCurved: StoryObj = {
175
175
  <LineChart
176
176
  title="Smooth Trend Line"
177
177
  data={timeSeriesData}
178
- series={['value']}
178
+ series={["value"]}
179
179
  showGrid
180
180
  curved
181
181
  showDots
182
182
  />
183
183
  </ChartWrapper>
184
184
  ),
185
- }
185
+ };
186
186
 
187
187
  /**
188
188
  * Pie chart showing proportional data.
@@ -198,7 +198,7 @@ export const Pie: StoryObj = {
198
198
  />
199
199
  </ChartWrapper>
200
200
  ),
201
- }
201
+ };
202
202
 
203
203
  /**
204
204
  * Donut chart with center label.
@@ -215,7 +215,7 @@ export const Donut: StoryObj = {
215
215
  />
216
216
  </ChartWrapper>
217
217
  ),
218
- }
218
+ };
219
219
 
220
220
  /**
221
221
  * Radar chart for multi-dimensional comparison.
@@ -226,7 +226,7 @@ export const Radar: StoryObj = {
226
226
  <RadarChart title="Product Metrics" data={radarData} showLegend />
227
227
  </ChartWrapper>
228
228
  ),
229
- }
229
+ };
230
230
 
231
231
  /**
232
232
  * Scatter chart for showing correlation between variables.
@@ -243,4 +243,4 @@ export const Scatter: StoryObj = {
243
243
  />
244
244
  </ChartWrapper>
245
245
  ),
246
- }
246
+ };
@@ -1,9 +1,9 @@
1
- import * as CollapsiblePrimitive from '@radix-ui/react-collapsible'
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
2
 
3
3
  function Collapsible({
4
4
  ...props
5
5
  }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {
6
- return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />
6
+ return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />;
7
7
  }
8
8
 
9
9
  function CollapsibleTrigger({
@@ -14,7 +14,7 @@ function CollapsibleTrigger({
14
14
  data-slot="collapsible-trigger"
15
15
  {...props}
16
16
  />
17
- )
17
+ );
18
18
  }
19
19
 
20
20
  function CollapsibleContent({
@@ -25,7 +25,7 @@ function CollapsibleContent({
25
25
  data-slot="collapsible-content"
26
26
  {...props}
27
27
  />
28
- )
28
+ );
29
29
  }
30
30
 
31
- export { Collapsible, CollapsibleTrigger, CollapsibleContent }
31
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -1,40 +1,40 @@
1
- import * as React from 'react'
2
- import * as DialogPrimitive from '@radix-ui/react-dialog'
3
- import { XIcon } from 'lucide-react'
1
+ import * as React from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ import { XIcon } from "lucide-react";
4
4
 
5
- import { cn } from '@/lib/utils'
6
- import { usePortalContainer } from '@/hooks/usePortalContainer'
5
+ import { cn } from "@/lib/utils";
6
+ import { usePortalContainer } from "@/hooks/usePortalContainer";
7
7
 
8
8
  function Dialog({
9
9
  ...props
10
10
  }: React.ComponentProps<typeof DialogPrimitive.Root>) {
11
- return <DialogPrimitive.Root data-slot="dialog" {...props} />
11
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
12
12
  }
13
13
 
14
14
  function DialogTrigger({
15
15
  ...props
16
16
  }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
17
- return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
17
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
18
18
  }
19
19
 
20
20
  function DialogPortal({
21
21
  container,
22
22
  ...props
23
23
  }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
24
- const portalContainer = usePortalContainer()
24
+ const portalContainer = usePortalContainer();
25
25
  return (
26
26
  <DialogPrimitive.Portal
27
27
  data-slot="dialog-portal"
28
28
  container={container ?? portalContainer}
29
29
  {...props}
30
30
  />
31
- )
31
+ );
32
32
  }
33
33
 
34
34
  function DialogClose({
35
35
  ...props
36
36
  }: React.ComponentProps<typeof DialogPrimitive.Close>) {
37
- return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
37
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
38
38
  }
39
39
 
40
40
  function DialogOverlay({
@@ -45,12 +45,12 @@ function DialogOverlay({
45
45
  <DialogPrimitive.Overlay
46
46
  data-slot="dialog-overlay"
47
47
  className={cn(
48
- 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',
49
- className
48
+ "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
49
+ className,
50
50
  )}
51
51
  {...props}
52
52
  />
53
- )
53
+ );
54
54
  }
55
55
 
56
56
  function DialogContent({
@@ -59,7 +59,7 @@ function DialogContent({
59
59
  showCloseButton = true,
60
60
  ...props
61
61
  }: React.ComponentProps<typeof DialogPrimitive.Content> & {
62
- showCloseButton?: boolean
62
+ showCloseButton?: boolean;
63
63
  }) {
64
64
  return (
65
65
  <DialogPortal data-slot="dialog-portal">
@@ -67,8 +67,8 @@ function DialogContent({
67
67
  <DialogPrimitive.Content
68
68
  data-slot="dialog-content"
69
69
  className={cn(
70
- 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',
71
- className
70
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
71
+ className,
72
72
  )}
73
73
  {...props}
74
74
  >
@@ -76,7 +76,7 @@ function DialogContent({
76
76
  {showCloseButton && (
77
77
  <DialogPrimitive.Close
78
78
  data-slot="dialog-close"
79
- className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
79
+ className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
80
80
  >
81
81
  <XIcon />
82
82
  <span className="sr-only">Close</span>
@@ -84,30 +84,30 @@ function DialogContent({
84
84
  )}
85
85
  </DialogPrimitive.Content>
86
86
  </DialogPortal>
87
- )
87
+ );
88
88
  }
89
89
 
90
- function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {
90
+ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
91
91
  return (
92
92
  <div
93
93
  data-slot="dialog-header"
94
- className={cn('flex flex-col gap-2 text-center sm:text-left', className)}
94
+ className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
95
95
  {...props}
96
96
  />
97
- )
97
+ );
98
98
  }
99
99
 
100
- function DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {
100
+ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
101
101
  return (
102
102
  <div
103
103
  data-slot="dialog-footer"
104
104
  className={cn(
105
- 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',
106
- className
105
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
106
+ className,
107
107
  )}
108
108
  {...props}
109
109
  />
110
- )
110
+ );
111
111
  }
112
112
 
113
113
  function DialogTitle({
@@ -117,10 +117,10 @@ function DialogTitle({
117
117
  return (
118
118
  <DialogPrimitive.Title
119
119
  data-slot="dialog-title"
120
- className={cn('text-lg leading-none font-semibold', className)}
120
+ className={cn("text-lg leading-none font-semibold", className)}
121
121
  {...props}
122
122
  />
123
- )
123
+ );
124
124
  }
125
125
 
126
126
  function DialogDescription({
@@ -130,10 +130,10 @@ function DialogDescription({
130
130
  return (
131
131
  <DialogPrimitive.Description
132
132
  data-slot="dialog-description"
133
- className={cn('text-muted-foreground text-sm', className)}
133
+ className={cn("text-sm text-muted-foreground", className)}
134
134
  {...props}
135
135
  />
136
- )
136
+ );
137
137
  }
138
138
 
139
139
  export {
@@ -147,4 +147,4 @@ export {
147
147
  DialogPortal,
148
148
  DialogTitle,
149
149
  DialogTrigger,
150
- }
150
+ };