@shohojdhara/atomix 0.2.3 → 0.2.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 (225) hide show
  1. package/README.md +19 -0
  2. package/dist/atomix.css +1703 -1544
  3. package/dist/atomix.min.css +4 -4
  4. package/dist/index.d.ts +1465 -963
  5. package/dist/index.esm.js +16289 -25908
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +15650 -21780
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/themes/applemix.css +15008 -0
  12. package/dist/themes/applemix.min.css +72 -0
  13. package/dist/themes/boomdevs.css +1608 -1450
  14. package/dist/themes/boomdevs.min.css +5 -5
  15. package/dist/themes/esrar.css +1702 -1543
  16. package/dist/themes/esrar.min.css +4 -4
  17. package/dist/themes/flashtrade.css +15159 -0
  18. package/dist/themes/flashtrade.min.css +86 -0
  19. package/dist/themes/mashroom.css +1699 -1540
  20. package/dist/themes/mashroom.min.css +7 -7
  21. package/dist/themes/shaj-default.css +1693 -1534
  22. package/dist/themes/shaj-default.min.css +4 -4
  23. package/package.json +6 -17
  24. package/src/components/Accordion/Accordion.stories.tsx +662 -21
  25. package/src/components/Accordion/Accordion.tsx +21 -14
  26. package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +529 -1195
  28. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +400 -0
  29. package/src/components/AtomixGlass/GlassFilter.tsx +156 -0
  30. package/src/components/AtomixGlass/README.md +124 -2
  31. package/src/components/AtomixGlass/atomixGLass.old.tsx +1266 -0
  32. package/src/components/AtomixGlass/glass-utils.ts +263 -0
  33. package/src/components/AtomixGlass/shader-utils.ts +792 -68
  34. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1250 -0
  35. package/src/components/AtomixGlass/stories/Examples.stories.tsx +5768 -0
  36. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
  37. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1129 -0
  38. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +395 -0
  39. package/src/components/AtomixGlass/stories/shared-components.tsx +301 -0
  40. package/src/components/AtomixGlass/utils.ts +3 -3
  41. package/src/components/Avatar/Avatar.tsx +3 -0
  42. package/src/components/Avatar/AvatarGroup.tsx +2 -1
  43. package/src/components/Badge/Badge.stories.tsx +76 -55
  44. package/src/components/Badge/Badge.tsx +12 -14
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
  46. package/src/components/Button/Button.stories.tsx +501 -20
  47. package/src/components/Button/Button.tsx +5 -8
  48. package/src/components/Callout/Callout.stories.tsx +86 -35
  49. package/src/components/Callout/Callout.tsx +31 -9
  50. package/src/components/Card/Card.stories.tsx +565 -2
  51. package/src/components/Card/Card.tsx +15 -4
  52. package/src/components/Card/ElevationCard.tsx +2 -0
  53. package/src/components/Chart/AnimatedChart.tsx +179 -156
  54. package/src/components/Chart/AreaChart.tsx +123 -12
  55. package/src/components/Chart/BarChart.tsx +91 -100
  56. package/src/components/Chart/BaseChart.tsx +80 -0
  57. package/src/components/Chart/BubbleChart.tsx +114 -290
  58. package/src/components/Chart/CandlestickChart.tsx +282 -622
  59. package/src/components/Chart/Chart.stories.tsx +576 -179
  60. package/src/components/Chart/Chart.tsx +374 -75
  61. package/src/components/Chart/ChartRenderer.tsx +371 -220
  62. package/src/components/Chart/ChartToolbar.tsx +372 -61
  63. package/src/components/Chart/ChartTooltip.tsx +33 -18
  64. package/src/components/Chart/DonutChart.tsx +172 -254
  65. package/src/components/Chart/FunnelChart.tsx +169 -240
  66. package/src/components/Chart/GaugeChart.tsx +224 -392
  67. package/src/components/Chart/HeatmapChart.tsx +302 -440
  68. package/src/components/Chart/LineChart.tsx +148 -103
  69. package/src/components/Chart/MultiAxisChart.tsx +267 -395
  70. package/src/components/Chart/PieChart.tsx +114 -64
  71. package/src/components/Chart/RadarChart.tsx +202 -218
  72. package/src/components/Chart/ScatterChart.tsx +111 -97
  73. package/src/components/Chart/TreemapChart.tsx +147 -222
  74. package/src/components/Chart/WaterfallChart.tsx +253 -291
  75. package/src/components/Chart/index.ts +11 -9
  76. package/src/components/Chart/types.ts +85 -9
  77. package/src/components/Chart/utils.ts +66 -0
  78. package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
  79. package/src/components/Countdown/Countdown.tsx +4 -0
  80. package/src/components/DataTable/DataTable.tsx +2 -1
  81. package/src/components/DatePicker/DatePicker.stories.tsx +689 -12
  82. package/src/components/DatePicker/DatePicker.tsx +3 -9
  83. package/src/components/DatePicker/types.ts +5 -0
  84. package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
  85. package/src/components/Dropdown/Dropdown.tsx +26 -28
  86. package/src/components/EdgePanel/EdgePanel.stories.tsx +473 -2
  87. package/src/components/EdgePanel/EdgePanel.tsx +101 -13
  88. package/src/components/Footer/Footer.stories.tsx +187 -60
  89. package/src/components/Footer/Footer.test.tsx +134 -0
  90. package/src/components/Footer/Footer.tsx +133 -34
  91. package/src/components/Footer/FooterLink.tsx +1 -1
  92. package/src/components/Footer/FooterSection.tsx +53 -36
  93. package/src/components/Footer/FooterSocialLink.tsx +32 -29
  94. package/src/components/Footer/README.md +82 -3
  95. package/src/components/Footer/index.ts +1 -1
  96. package/src/components/Form/Checkbox.stories.tsx +13 -5
  97. package/src/components/Form/Checkbox.tsx +3 -6
  98. package/src/components/Form/Form.stories.tsx +10 -3
  99. package/src/components/Form/Form.tsx +2 -0
  100. package/src/components/Form/FormGroup.tsx +2 -1
  101. package/src/components/Form/Input.stories.tsx +12 -11
  102. package/src/components/Form/Input.tsx +97 -95
  103. package/src/components/Form/Radio.stories.tsx +22 -7
  104. package/src/components/Form/Radio.tsx +3 -6
  105. package/src/components/Form/Select.stories.tsx +21 -6
  106. package/src/components/Form/Select.tsx +3 -5
  107. package/src/components/Form/Textarea.stories.tsx +13 -11
  108. package/src/components/Form/Textarea.tsx +88 -86
  109. package/src/components/Hero/Hero.stories.tsx +2 -3
  110. package/src/components/Hero/Hero.tsx +5 -6
  111. package/src/components/Icon/Icon.tsx +12 -1
  112. package/src/components/List/List.tsx +2 -1
  113. package/src/components/List/ListGroup.tsx +2 -1
  114. package/src/components/Messages/Messages.stories.tsx +113 -0
  115. package/src/components/Messages/Messages.tsx +52 -9
  116. package/src/components/Modal/Modal.stories.tsx +48 -32
  117. package/src/components/Modal/Modal.tsx +19 -24
  118. package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
  119. package/src/components/Navigation/Menu/Menu.tsx +2 -2
  120. package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
  121. package/src/components/Navigation/Nav/Nav.tsx +22 -4
  122. package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
  123. package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
  124. package/src/components/Navigation/Navbar/Navbar.tsx +70 -29
  125. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
  126. package/src/components/Navigation/SideMenu/SideMenu.tsx +29 -2
  127. package/src/components/Pagination/Pagination.stories.tsx +13 -6
  128. package/src/components/Pagination/Pagination.tsx +7 -6
  129. package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
  130. package/src/components/Popover/Popover.stories.tsx +32 -24
  131. package/src/components/Popover/Popover.tsx +4 -1
  132. package/src/components/ProductReview/ProductReview.tsx +8 -2
  133. package/src/components/Progress/Progress.tsx +19 -3
  134. package/src/components/Rating/Rating.stories.tsx +11 -6
  135. package/src/components/Rating/Rating.tsx +3 -5
  136. package/src/components/River/River.tsx +5 -5
  137. package/src/components/SectionIntro/SectionIntro.tsx +8 -2
  138. package/src/components/Slider/Slider.stories.tsx +4 -4
  139. package/src/components/Slider/Slider.tsx +4 -3
  140. package/src/components/Spinner/Spinner.tsx +19 -3
  141. package/src/components/Steps/Steps.stories.tsx +5 -4
  142. package/src/components/Steps/Steps.tsx +8 -5
  143. package/src/components/Tab/Tab.stories.tsx +4 -3
  144. package/src/components/Tab/Tab.tsx +8 -6
  145. package/src/components/Testimonial/Testimonial.tsx +8 -2
  146. package/src/components/Todo/Todo.tsx +2 -1
  147. package/src/components/Toggle/Toggle.stories.tsx +5 -4
  148. package/src/components/Toggle/Toggle.tsx +8 -5
  149. package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
  150. package/src/components/Tooltip/Tooltip.tsx +9 -2
  151. package/src/components/Upload/Upload.stories.tsx +252 -0
  152. package/src/components/Upload/Upload.tsx +92 -53
  153. package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
  154. package/src/components/index.ts +0 -4
  155. package/src/layouts/Grid/Grid.stories.tsx +10 -23
  156. package/src/layouts/Grid/Grid.tsx +20 -1
  157. package/src/layouts/Grid/GridCol.tsx +76 -48
  158. package/src/lib/composables/useAtomixGlass.ts +861 -44
  159. package/src/lib/composables/useBarChart.ts +21 -4
  160. package/src/lib/composables/useChart.ts +227 -370
  161. package/src/lib/composables/useChartExport.ts +19 -78
  162. package/src/lib/composables/useChartToolbar.ts +11 -21
  163. package/src/lib/composables/useEdgePanel.ts +125 -71
  164. package/src/lib/composables/useFooter.ts +3 -3
  165. package/src/lib/composables/useGlassContainer.ts +16 -7
  166. package/src/lib/composables/useLineChart.ts +11 -2
  167. package/src/lib/composables/usePieChart.ts +4 -14
  168. package/src/lib/composables/useRiver.ts +5 -0
  169. package/src/lib/composables/useSlider.ts +62 -24
  170. package/src/lib/composables/useVideoPlayer.ts +60 -63
  171. package/src/lib/constants/components.ts +147 -32
  172. package/src/lib/types/components.ts +355 -25
  173. package/src/lib/utils/displacement-generator.ts +55 -49
  174. package/src/lib/utils/icons.ts +1 -1
  175. package/src/lib/utils/index.ts +16 -10
  176. package/src/styles/01-settings/_settings.accordion.scss +19 -19
  177. package/src/styles/01-settings/_settings.animations.scss +5 -5
  178. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  179. package/src/styles/01-settings/_settings.avatar.scss +17 -17
  180. package/src/styles/01-settings/_settings.background.scss +0 -3
  181. package/src/styles/01-settings/_settings.badge.scss +1 -1
  182. package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
  183. package/src/styles/01-settings/_settings.card.scss +1 -1
  184. package/src/styles/01-settings/_settings.chart.scss +65 -2
  185. package/src/styles/01-settings/_settings.dropdown.scss +1 -1
  186. package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
  187. package/src/styles/01-settings/_settings.footer.scss +35 -42
  188. package/src/styles/01-settings/_settings.input.scss +1 -1
  189. package/src/styles/01-settings/_settings.list.scss +1 -1
  190. package/src/styles/01-settings/_settings.rating.scss +1 -1
  191. package/src/styles/01-settings/_settings.tabs.scss +1 -1
  192. package/src/styles/01-settings/_settings.upload.scss +6 -5
  193. package/src/styles/02-tools/_tools.animations.scss +4 -5
  194. package/src/styles/02-tools/_tools.background.scss +1 -13
  195. package/src/styles/02-tools/_tools.glass.scss +0 -1
  196. package/src/styles/02-tools/_tools.utility-api.scss +91 -48
  197. package/src/styles/03-generic/_generic.root.scss +1 -4
  198. package/src/styles/04-elements/_elements.body.scss +0 -1
  199. package/src/styles/06-components/_components.atomix-glass.scss +249 -0
  200. package/src/styles/06-components/_components.badge.scss +8 -23
  201. package/src/styles/06-components/_components.button.scss +8 -3
  202. package/src/styles/06-components/_components.callout.scss +10 -5
  203. package/src/styles/06-components/_components.card.scss +2 -14
  204. package/src/styles/06-components/_components.chart.scss +969 -1449
  205. package/src/styles/06-components/_components.dropdown.scss +19 -7
  206. package/src/styles/06-components/_components.edge-panel.scss +103 -0
  207. package/src/styles/06-components/_components.footer.scss +166 -85
  208. package/src/styles/06-components/_components.input.scss +8 -9
  209. package/src/styles/06-components/_components.list.scss +1 -0
  210. package/src/styles/06-components/_components.messages.scss +176 -0
  211. package/src/styles/06-components/_components.modal.scss +16 -4
  212. package/src/styles/06-components/_components.navbar.scss +12 -1
  213. package/src/styles/06-components/_components.side-menu.scss +5 -0
  214. package/src/styles/06-components/_components.skeleton.scss +8 -6
  215. package/src/styles/06-components/_components.upload.scss +219 -4
  216. package/src/styles/06-components/old.chart.styles.scss +1 -30
  217. package/src/styles/99-utilities/_index.scss +1 -0
  218. package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
  219. package/src/styles/99-utilities/_utilities.scss +1 -1
  220. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +0 -3011
  221. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
  222. package/src/components/Chart/AdvancedChart.tsx +0 -624
  223. package/src/components/Chart/LineChartNew.tsx +0 -167
  224. package/src/components/Chart/RealTimeChart.tsx +0 -436
  225. package/src/components/DatePicker/DatePicker copy.tsx +0 -551
@@ -1,9 +1,8 @@
1
- import { forwardRef, memo, useCallback } from 'react';
1
+ import { forwardRef, memo } from 'react';
2
2
  import { BarChartOptions, useBarChart } from '../../lib/composables/useBarChart';
3
- import Chart from './Chart';
4
- import ChartRenderer from './ChartRenderer';
3
+ import BaseChart from './BaseChart';
5
4
  import ChartTooltip from './ChartTooltip';
6
- import { ChartProps } from './types';
5
+ import { ChartDataPoint, ChartProps, ChartRenderContentParams } from './types';
7
6
 
8
7
  interface BarChartProps extends Omit<ChartProps, 'type'> {
9
8
  /**
@@ -33,111 +32,103 @@ const BarChart = memo(
33
32
  const { calculateBarDimensions, handleBarHover, handleBarLeave, hoveredBar, formatValue } =
34
33
  useBarChart(datasets, barOptions);
35
34
 
36
- const renderContent = useCallback(
37
- ({
38
- scales,
39
- colors,
40
- datasets: renderedDatasets,
41
- handlers,
42
- }: {
43
- scales: any;
44
- colors: any;
45
- datasets: any;
46
- handlers: any;
47
- }) => {
48
- if (!renderedDatasets.length) return null;
35
+ const renderContent = ({
36
+ scales,
37
+ colors,
38
+ datasets: renderedDatasets,
39
+ handlers,
40
+ hoveredPoint,
41
+ toolbarState,
42
+ config: renderConfig,
43
+ }: ChartRenderContentParams) => {
44
+ if (!renderedDatasets.length) return null;
49
45
 
50
- const barDimensions = calculateBarDimensions(
51
- renderedDatasets,
52
- scales.width,
53
- scales.height,
54
- scales.padding,
55
- horizontal
56
- );
46
+ // Use toolbar state if available, fallback to config for backward compatibility
47
+ const showTooltips = toolbarState?.showTooltips ?? renderConfig?.showTooltips ?? true;
57
48
 
58
- return barDimensions.map((bar, index) => {
59
- const dataset = renderedDatasets[bar.datasetIndex];
60
- const point = dataset.data?.[bar.pointIndex];
61
- const color = dataset.color || colors[bar.datasetIndex];
62
- const isHovered =
63
- hoveredBar?.datasetIndex === bar.datasetIndex &&
64
- hoveredBar?.pointIndex === bar.pointIndex;
49
+ const barDimensions = calculateBarDimensions(
50
+ renderedDatasets,
51
+ scales.width,
52
+ scales.height,
53
+ scales.padding,
54
+ horizontal
55
+ );
65
56
 
66
- return (
67
- <g key={`bar-${index}`}>
68
- <rect
69
- x={bar.x}
70
- y={bar.y}
71
- width={bar.width}
72
- height={bar.height}
73
- fill={color}
74
- rx={barOptions.cornerRadius || 4}
75
- className={`c-chart__bar ${isHovered ? 'c-chart__bar--hovered' : ''}`}
76
- onClick={() =>
77
- point && handlers.onDataPointClick?.(point, bar.datasetIndex, bar.pointIndex)
78
- }
79
- onMouseMove={e => {
80
- const rect = e.currentTarget.ownerSVGElement?.getBoundingClientRect();
81
- const clientX = rect ? rect.left + bar.x + bar.width / 2 : e.clientX;
82
- const clientY = e.clientY;
83
- handleBarHover(bar.datasetIndex, bar.pointIndex, clientX, clientY);
84
- }}
85
- onMouseLeave={handleBarLeave}
86
- />
87
- {barOptions.showValues && (
88
- <text
89
- x={bar.x + bar.width / 2}
90
- y={bar.y - 5}
91
- textAnchor="middle"
92
- className="c-chart__bar-value-label"
93
- >
94
- {formatValue(bar.value)}
95
- </text>
96
- )}
97
- </g>
98
- );
99
- });
100
- },
101
- [
102
- calculateBarDimensions,
103
- horizontal,
104
- barOptions,
105
- hoveredBar,
106
- handleBarHover,
107
- handleBarLeave,
108
- formatValue,
109
- ]
110
- );
57
+ return (
58
+ <>
59
+ {barDimensions.map((bar, index) => {
60
+ const dataset = renderedDatasets[bar.datasetIndex];
61
+ const point = dataset.data?.[bar.pointIndex];
62
+ const color = dataset.color || colors[bar.datasetIndex];
63
+ const isHovered =
64
+ hoveredPoint?.datasetIndex === bar.datasetIndex &&
65
+ hoveredPoint?.pointIndex === bar.pointIndex;
66
+
67
+ return (
68
+ <g key={`bar-${index}`}>
69
+ <rect
70
+ x={bar.x}
71
+ y={bar.y}
72
+ width={bar.width}
73
+ height={bar.height}
74
+ fill={color}
75
+ className={`c-chart__bar ${isHovered ? 'c-chart__bar--hovered' : ''}`}
76
+ onClick={() =>
77
+ point && handlers.onDataPointClick?.(point, bar.datasetIndex, bar.pointIndex)
78
+ }
79
+ onMouseEnter={e => {
80
+ const rect = e.currentTarget.getBoundingClientRect();
81
+ handlers.onPointHover(
82
+ bar.datasetIndex,
83
+ bar.pointIndex,
84
+ bar.x,
85
+ bar.y,
86
+ rect.left + rect.width / 2,
87
+ rect.top + rect.height / 2
88
+ );
89
+ }}
90
+ onMouseLeave={handlers.onPointLeave}
91
+ />
92
+ {barOptions.showValues && (
93
+ <text
94
+ x={bar.x + bar.width / 2}
95
+ y={bar.y - 5}
96
+ textAnchor="middle"
97
+ className="c-chart__bar-value-label"
98
+ >
99
+ {formatValue(bar.value)}
100
+ </text>
101
+ )}
102
+ </g>
103
+ );
104
+ })}
105
+ {showTooltips && hoveredPoint && (
106
+ <ChartTooltip
107
+ dataPoint={
108
+ renderedDatasets[hoveredPoint.datasetIndex]?.data?.[
109
+ hoveredPoint.pointIndex
110
+ ] as ChartDataPoint
111
+ }
112
+ datasetLabel={renderedDatasets[hoveredPoint.datasetIndex]?.label}
113
+ datasetColor={renderedDatasets[hoveredPoint.datasetIndex]?.color}
114
+ position={{ x: hoveredPoint.clientX, y: hoveredPoint.clientY }}
115
+ visible={true}
116
+ />
117
+ )}
118
+ </>
119
+ );
120
+ };
111
121
 
112
122
  return (
113
- <Chart
123
+ <BaseChart
114
124
  ref={ref}
115
- type={horizontal ? 'horizontal-bar' : 'bar'}
125
+ type="bar"
116
126
  datasets={datasets}
117
127
  config={config}
128
+ renderContent={renderContent}
129
+ onDataPointClick={onDataPointClick}
118
130
  {...props}
119
- >
120
- <ChartRenderer
121
- datasets={datasets}
122
- config={config}
123
- onDataPointClick={onDataPointClick}
124
- renderContent={renderContent}
125
- />
126
- {hoveredBar && (
127
- <ChartTooltip
128
- dataPoint={
129
- datasets[hoveredBar.datasetIndex]?.data?.[hoveredBar.pointIndex] || {
130
- label: '',
131
- value: 0,
132
- }
133
- }
134
- datasetLabel={datasets[hoveredBar.datasetIndex]?.label}
135
- datasetColor={datasets[hoveredBar.datasetIndex]?.color}
136
- position={{ x: hoveredBar.x, y: hoveredBar.y }}
137
- visible={true}
138
- />
139
- )}
140
- </Chart>
131
+ />
141
132
  );
142
133
  }
143
134
  )
@@ -0,0 +1,80 @@
1
+ import { forwardRef, memo, useCallback } from 'react';
2
+ import Chart from './Chart';
3
+ import ChartRenderer from './ChartRenderer';
4
+ import { ChartProps, ChartRenderContentParams } from './types';
5
+
6
+ interface BaseChartProps extends Omit<ChartProps, 'type'> {
7
+ /**
8
+ * The type of chart to render
9
+ */
10
+ type: ChartProps['type'];
11
+
12
+ /**
13
+ * Function to render the chart content
14
+ */
15
+ renderContent: (params: ChartRenderContentParams) => React.ReactNode;
16
+
17
+ /**
18
+ * Whether the chart is interactive
19
+ */
20
+ interactive?: boolean;
21
+
22
+ /**
23
+ * Whether to enable real-time updates
24
+ */
25
+ enableRealTime?: boolean;
26
+
27
+ /**
28
+ * Whether to enable accessibility features
29
+ */
30
+ enableAccessibility?: boolean;
31
+
32
+ /**
33
+ * Whether to enable performance optimizations
34
+ */
35
+ enablePerformanceOptimization?: boolean;
36
+ }
37
+
38
+ const BaseChart = memo(
39
+ forwardRef<HTMLDivElement, BaseChartProps>(
40
+ (
41
+ {
42
+ type,
43
+ datasets = [],
44
+ config = {},
45
+ renderContent,
46
+ interactive = true,
47
+ enableRealTime = false,
48
+ enableAccessibility = true,
49
+ enablePerformanceOptimization = true,
50
+ onDataPointClick,
51
+ ...props
52
+ },
53
+ ref
54
+ ) => {
55
+ const renderChartContent = useCallback(
56
+ (params: ChartRenderContentParams) => renderContent(params),
57
+ [renderContent]
58
+ );
59
+
60
+ return (
61
+ <Chart ref={ref} type={type} datasets={datasets} config={config} {...props}>
62
+ <ChartRenderer
63
+ datasets={datasets}
64
+ config={config}
65
+ interactive={interactive}
66
+ enableRealTime={enableRealTime}
67
+ enableAccessibility={enableAccessibility}
68
+ enablePerformanceOptimization={enablePerformanceOptimization}
69
+ onDataPointClick={onDataPointClick}
70
+ renderContent={renderChartContent}
71
+ />
72
+ </Chart>
73
+ );
74
+ }
75
+ )
76
+ );
77
+
78
+ BaseChart.displayName = 'BaseChart';
79
+ export default BaseChart;
80
+ export type { BaseChartProps };