@shohojdhara/atomix 0.2.4 → 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 (211) hide show
  1. package/README.md +19 -0
  2. package/dist/atomix.css +1266 -1412
  3. package/dist/atomix.min.css +3 -3
  4. package/dist/index.d.ts +1232 -876
  5. package/dist/index.esm.js +16212 -26364
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +15652 -22298
  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 +1266 -1413
  14. package/dist/themes/boomdevs.min.css +3 -3
  15. package/dist/themes/esrar.css +1267 -1413
  16. package/dist/themes/esrar.min.css +3 -3
  17. package/dist/themes/flashtrade.css +15159 -0
  18. package/dist/themes/flashtrade.min.css +86 -0
  19. package/dist/themes/mashroom.css +1264 -1410
  20. package/dist/themes/mashroom.min.css +5 -5
  21. package/dist/themes/shaj-default.css +1266 -1412
  22. package/dist/themes/shaj-default.min.css +3 -3
  23. package/package.json +6 -17
  24. package/src/components/Accordion/Accordion.stories.tsx +4 -26
  25. package/src/components/Accordion/Accordion.tsx +21 -12
  26. package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +487 -1215
  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 +404 -236
  34. package/src/components/AtomixGlass/{AtomixGlass.stories.tsx → stories/AtomixGlass.stories.tsx} +55 -35
  35. package/src/components/AtomixGlass/stories/Examples.stories.tsx +57 -89
  36. package/src/components/AtomixGlass/stories/Modes.stories.tsx +149 -149
  37. package/src/components/AtomixGlass/stories/Playground.stories.tsx +95 -32
  38. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +0 -2
  39. package/src/components/AtomixGlass/stories/shared-components.tsx +9 -18
  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 +74 -54
  44. package/src/components/Badge/Badge.tsx +8 -12
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
  46. package/src/components/Button/Button.tsx +3 -5
  47. package/src/components/Callout/Callout.stories.tsx +86 -35
  48. package/src/components/Callout/Callout.tsx +4 -0
  49. package/src/components/Card/Card.stories.tsx +89 -85
  50. package/src/components/Card/Card.tsx +15 -4
  51. package/src/components/Card/ElevationCard.tsx +2 -0
  52. package/src/components/Chart/AnimatedChart.tsx +179 -156
  53. package/src/components/Chart/AreaChart.tsx +123 -12
  54. package/src/components/Chart/BarChart.tsx +91 -100
  55. package/src/components/Chart/BaseChart.tsx +80 -0
  56. package/src/components/Chart/BubbleChart.tsx +114 -290
  57. package/src/components/Chart/CandlestickChart.tsx +282 -622
  58. package/src/components/Chart/Chart.stories.tsx +576 -179
  59. package/src/components/Chart/Chart.tsx +374 -75
  60. package/src/components/Chart/ChartRenderer.tsx +371 -220
  61. package/src/components/Chart/ChartToolbar.tsx +372 -61
  62. package/src/components/Chart/ChartTooltip.tsx +33 -18
  63. package/src/components/Chart/DonutChart.tsx +172 -254
  64. package/src/components/Chart/FunnelChart.tsx +169 -240
  65. package/src/components/Chart/GaugeChart.tsx +224 -392
  66. package/src/components/Chart/HeatmapChart.tsx +302 -440
  67. package/src/components/Chart/LineChart.tsx +148 -103
  68. package/src/components/Chart/MultiAxisChart.tsx +267 -395
  69. package/src/components/Chart/PieChart.tsx +114 -64
  70. package/src/components/Chart/RadarChart.tsx +202 -218
  71. package/src/components/Chart/ScatterChart.tsx +111 -97
  72. package/src/components/Chart/TreemapChart.tsx +147 -222
  73. package/src/components/Chart/WaterfallChart.tsx +253 -291
  74. package/src/components/Chart/index.ts +11 -9
  75. package/src/components/Chart/types.ts +85 -9
  76. package/src/components/Chart/utils.ts +66 -0
  77. package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
  78. package/src/components/Countdown/Countdown.tsx +4 -0
  79. package/src/components/DataTable/DataTable.tsx +2 -1
  80. package/src/components/DatePicker/DatePicker.stories.tsx +0 -11
  81. package/src/components/DatePicker/DatePicker.tsx +3 -9
  82. package/src/components/DatePicker/types.ts +5 -0
  83. package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
  84. package/src/components/Dropdown/Dropdown.tsx +26 -28
  85. package/src/components/EdgePanel/EdgePanel.stories.tsx +13 -15
  86. package/src/components/EdgePanel/EdgePanel.tsx +20 -5
  87. package/src/components/Footer/Footer.stories.tsx +187 -60
  88. package/src/components/Footer/Footer.test.tsx +134 -0
  89. package/src/components/Footer/Footer.tsx +133 -34
  90. package/src/components/Footer/FooterLink.tsx +1 -1
  91. package/src/components/Footer/FooterSection.tsx +53 -36
  92. package/src/components/Footer/FooterSocialLink.tsx +32 -29
  93. package/src/components/Footer/README.md +82 -3
  94. package/src/components/Footer/index.ts +1 -1
  95. package/src/components/Form/Checkbox.stories.tsx +13 -5
  96. package/src/components/Form/Checkbox.tsx +3 -6
  97. package/src/components/Form/Form.stories.tsx +10 -3
  98. package/src/components/Form/Form.tsx +2 -0
  99. package/src/components/Form/FormGroup.tsx +2 -1
  100. package/src/components/Form/Input.stories.tsx +12 -11
  101. package/src/components/Form/Input.tsx +97 -95
  102. package/src/components/Form/Radio.stories.tsx +22 -7
  103. package/src/components/Form/Radio.tsx +3 -6
  104. package/src/components/Form/Select.stories.tsx +21 -6
  105. package/src/components/Form/Select.tsx +3 -5
  106. package/src/components/Form/Textarea.stories.tsx +13 -11
  107. package/src/components/Form/Textarea.tsx +88 -86
  108. package/src/components/Hero/Hero.stories.tsx +2 -3
  109. package/src/components/Hero/Hero.tsx +5 -6
  110. package/src/components/Icon/Icon.tsx +12 -1
  111. package/src/components/List/List.tsx +2 -1
  112. package/src/components/List/ListGroup.tsx +2 -1
  113. package/src/components/Messages/Messages.tsx +3 -2
  114. package/src/components/Modal/Modal.stories.tsx +48 -34
  115. package/src/components/Modal/Modal.tsx +19 -23
  116. package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
  117. package/src/components/Navigation/Menu/Menu.tsx +2 -2
  118. package/src/components/Navigation/Nav/Nav.tsx +6 -1
  119. package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
  120. package/src/components/Navigation/Navbar/Navbar.tsx +4 -1
  121. package/src/components/Navigation/SideMenu/SideMenu.tsx +3 -2
  122. package/src/components/Pagination/Pagination.stories.tsx +13 -6
  123. package/src/components/Pagination/Pagination.tsx +7 -6
  124. package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
  125. package/src/components/Popover/Popover.stories.tsx +32 -24
  126. package/src/components/Popover/Popover.tsx +4 -1
  127. package/src/components/ProductReview/ProductReview.tsx +8 -2
  128. package/src/components/Progress/Progress.tsx +2 -1
  129. package/src/components/Rating/Rating.stories.tsx +11 -6
  130. package/src/components/Rating/Rating.tsx +3 -5
  131. package/src/components/River/River.tsx +5 -5
  132. package/src/components/SectionIntro/SectionIntro.tsx +8 -2
  133. package/src/components/Slider/Slider.stories.tsx +4 -4
  134. package/src/components/Slider/Slider.tsx +4 -3
  135. package/src/components/Spinner/Spinner.tsx +2 -1
  136. package/src/components/Steps/Steps.stories.tsx +5 -4
  137. package/src/components/Steps/Steps.tsx +8 -5
  138. package/src/components/Tab/Tab.stories.tsx +4 -3
  139. package/src/components/Tab/Tab.tsx +8 -6
  140. package/src/components/Testimonial/Testimonial.tsx +8 -2
  141. package/src/components/Todo/Todo.tsx +2 -1
  142. package/src/components/Toggle/Toggle.stories.tsx +5 -4
  143. package/src/components/Toggle/Toggle.tsx +8 -5
  144. package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
  145. package/src/components/Tooltip/Tooltip.tsx +9 -2
  146. package/src/components/Upload/Upload.stories.tsx +252 -0
  147. package/src/components/Upload/Upload.tsx +92 -53
  148. package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
  149. package/src/components/index.ts +0 -4
  150. package/src/layouts/Grid/Grid.stories.tsx +10 -23
  151. package/src/layouts/Grid/Grid.tsx +20 -1
  152. package/src/layouts/Grid/GridCol.tsx +76 -48
  153. package/src/lib/composables/useAtomixGlass.ts +861 -44
  154. package/src/lib/composables/useBarChart.ts +13 -6
  155. package/src/lib/composables/useChart.ts +17 -13
  156. package/src/lib/composables/useChartExport.ts +19 -78
  157. package/src/lib/composables/useChartToolbar.ts +0 -1
  158. package/src/lib/composables/useEdgePanel.ts +111 -103
  159. package/src/lib/composables/useFooter.ts +3 -3
  160. package/src/lib/composables/useGlassContainer.ts +16 -7
  161. package/src/lib/composables/useLineChart.ts +8 -1
  162. package/src/lib/composables/useRiver.ts +5 -0
  163. package/src/lib/composables/useSlider.ts +62 -24
  164. package/src/lib/composables/useVideoPlayer.ts +60 -63
  165. package/src/lib/constants/components.ts +146 -32
  166. package/src/lib/types/components.ts +258 -10
  167. package/src/lib/utils/displacement-generator.ts +55 -49
  168. package/src/lib/utils/icons.ts +1 -1
  169. package/src/lib/utils/index.ts +16 -10
  170. package/src/styles/01-settings/_settings.accordion.scss +19 -19
  171. package/src/styles/01-settings/_settings.animations.scss +5 -5
  172. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  173. package/src/styles/01-settings/_settings.avatar.scss +17 -17
  174. package/src/styles/01-settings/_settings.background.scss +1 -4
  175. package/src/styles/01-settings/_settings.badge.scss +1 -1
  176. package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
  177. package/src/styles/01-settings/_settings.card.scss +1 -1
  178. package/src/styles/01-settings/_settings.chart.scss +65 -2
  179. package/src/styles/01-settings/_settings.dropdown.scss +1 -1
  180. package/src/styles/01-settings/_settings.footer.scss +35 -42
  181. package/src/styles/01-settings/_settings.input.scss +1 -1
  182. package/src/styles/01-settings/_settings.list.scss +1 -1
  183. package/src/styles/01-settings/_settings.rating.scss +1 -1
  184. package/src/styles/01-settings/_settings.tabs.scss +1 -1
  185. package/src/styles/01-settings/_settings.upload.scss +6 -5
  186. package/src/styles/02-tools/_tools.animations.scss +4 -5
  187. package/src/styles/02-tools/_tools.background.scss +1 -13
  188. package/src/styles/02-tools/_tools.glass.scss +0 -1
  189. package/src/styles/02-tools/_tools.utility-api.scss +42 -34
  190. package/src/styles/03-generic/_generic.root.scss +1 -4
  191. package/src/styles/04-elements/_elements.body.scss +0 -1
  192. package/src/styles/06-components/_components.atomix-glass.scss +216 -39
  193. package/src/styles/06-components/_components.badge.scss +6 -8
  194. package/src/styles/06-components/_components.button.scss +8 -3
  195. package/src/styles/06-components/_components.card.scss +2 -14
  196. package/src/styles/06-components/_components.chart.scss +969 -1449
  197. package/src/styles/06-components/_components.dropdown.scss +19 -7
  198. package/src/styles/06-components/_components.edge-panel.scss +4 -2
  199. package/src/styles/06-components/_components.footer.scss +166 -85
  200. package/src/styles/06-components/_components.input.scss +8 -9
  201. package/src/styles/06-components/_components.list.scss +1 -0
  202. package/src/styles/06-components/_components.modal.scss +5 -3
  203. package/src/styles/06-components/_components.skeleton.scss +8 -6
  204. package/src/styles/06-components/_components.upload.scss +219 -4
  205. package/src/styles/06-components/old.chart.styles.scss +1 -30
  206. package/src/styles/99-utilities/_utilities.opacity.scss +1 -1
  207. package/src/styles/99-utilities/_utilities.scss +1 -1
  208. package/src/components/Chart/AdvancedChart.tsx +0 -624
  209. package/src/components/Chart/LineChartNew.tsx +0 -167
  210. package/src/components/Chart/RealTimeChart.tsx +0 -436
  211. package/src/components/DatePicker/DatePicker copy.tsx +0 -551
@@ -1,17 +1,7 @@
1
- import { forwardRef, memo, ReactElement, useState } from 'react';
2
- import Chart from './Chart';
3
- import ChartRenderer from './ChartRenderer';
1
+ import { forwardRef, memo, useState } from 'react';
2
+ import BaseChart from './BaseChart';
4
3
  import ChartTooltip from './ChartTooltip';
5
- import { ChartProps } from './types';
6
-
7
- export interface ScatterDataPoint {
8
- label: string;
9
- value: number;
10
- x?: number;
11
- y?: number;
12
- size?: number;
13
- color?: string;
14
- }
4
+ import { ChartProps, ScatterDataPoint, ChartRenderContentParams, ChartDataset } from './types';
15
5
 
16
6
  interface ScatterChartProps extends Omit<ChartProps, 'type'> {
17
7
  /**
@@ -51,97 +41,121 @@ const ScatterChart = memo(
51
41
  },
52
42
  ref
53
43
  ) => {
54
- const [hoveredPoint, setHoveredPoint] = useState<{
55
- datasetIndex: number;
56
- pointIndex: number;
57
- clientX: number;
58
- clientY: number;
59
- } | null>(null);
60
- return (
61
- <Chart ref={ref} type="scatter" datasets={datasets} config={config} {...props}>
62
- <ChartRenderer
63
- datasets={datasets}
64
- config={config}
65
- interactive={scatterOptions.enableHoverEffects}
66
- renderContent={({ scales, colors, datasets: renderedDatasets }) => {
67
- if (!renderedDatasets.length) return null;
44
+ const renderContent = ({
45
+ scales,
46
+ colors,
47
+ datasets: renderedDatasets,
48
+ handlers,
49
+ hoveredPoint,
50
+ toolbarState,
51
+ config: renderConfig,
52
+ }: ChartRenderContentParams) => {
53
+ if (!renderedDatasets.length) return null;
68
54
 
69
- const points: ReactElement[] = [];
55
+ // Use toolbar state if available, fallback to config for backward compatibility
56
+ const showTooltips = toolbarState?.showTooltips ?? renderConfig?.showTooltips ?? true;
70
57
 
71
- renderedDatasets.forEach((dataset: any, datasetIndex: number) => {
72
- const color = dataset.color || colors[datasetIndex % colors.length];
58
+ const points: React.ReactNode[] = [];
73
59
 
74
- dataset.data?.forEach((point: any, pointIndex: number) => {
75
- const x =
76
- point.x !== undefined
77
- ? scales.padding.left + (point.x / 100) * scales.innerWidth
78
- : scales.xScale(pointIndex, dataset.data?.length);
60
+ renderedDatasets.forEach((dataset: ChartDataset, datasetIndex: number) => {
61
+ const color = dataset.color || colors[datasetIndex % colors.length];
79
62
 
80
- const y =
81
- point.y !== undefined
82
- ? scales.padding.top +
83
- scales.innerHeight -
84
- (point.y / 100) * scales.innerHeight
85
- : scales.yScale(point.value);
63
+ dataset.data?.forEach((point: ScatterDataPoint, pointIndex: number) => {
64
+ const x =
65
+ point.x !== undefined
66
+ ? scales.padding.left + (point.x / 100) * scales.innerWidth
67
+ : scales.xScale(pointIndex, dataset.data?.length);
86
68
 
87
- points.push(
88
- <g key={`point-${datasetIndex}-${pointIndex}`}>
89
- <circle
90
- cx={x}
91
- cy={y}
92
- r={point.size || scatterOptions.pointRadius || 4}
93
- fill={point.color || color}
94
- className="c-chart__scatter-point"
95
- onClick={() => onDataPointClick?.(point, datasetIndex, pointIndex)}
96
- onMouseEnter={e => {
97
- if (scatterOptions.enableHoverEffects) {
98
- e.currentTarget.setAttribute(
99
- 'r',
100
- String((point.size || scatterOptions.pointRadius || 4) * 1.5)
101
- );
102
- const rect = e.currentTarget.ownerSVGElement?.getBoundingClientRect();
103
- const clientX = rect ? rect.left + x : e.clientX;
104
- const clientY = rect ? rect.top + y : e.clientY;
105
- setHoveredPoint({ datasetIndex, pointIndex, clientX, clientY });
106
- }
107
- }}
108
- onMouseLeave={e => {
109
- e.currentTarget.setAttribute(
110
- 'r',
111
- String(point.size || scatterOptions.pointRadius || 4)
112
- );
113
- setHoveredPoint(null);
114
- }}
115
- />
69
+ const y =
70
+ point.y !== undefined
71
+ ? scales.padding.top + scales.innerHeight - (point.y / 100) * scales.innerHeight
72
+ : scales.yScale(point.value);
116
73
 
117
- {scatterOptions.showLabels && (
118
- <text
119
- x={x}
120
- y={y - (scatterOptions.pointRadius || 4) - 5}
121
- textAnchor="middle"
122
- className="c-chart__scatter-label"
123
- >
124
- {point.label}
125
- </text>
126
- )}
127
- </g>
128
- );
129
- });
130
- });
74
+ points.push(
75
+ <g key={`point-${datasetIndex}-${pointIndex}`}>
76
+ <circle
77
+ cx={x}
78
+ cy={y}
79
+ r={point.size || scatterOptions.pointRadius || 4}
80
+ fill={point.color || color}
81
+ className="c-chart__scatter-point"
82
+ onClick={() => handlers.onDataPointClick?.(point, datasetIndex, pointIndex)}
83
+ onMouseEnter={e => {
84
+ if (scatterOptions.enableHoverEffects) {
85
+ const newRadius = Math.max(0, (point.size || scatterOptions.pointRadius || 4) * 1.5);
86
+ e.currentTarget.setAttribute('r', String(newRadius));
87
+ }
88
+ const rect = e.currentTarget.getBoundingClientRect();
89
+ handlers.onPointHover(
90
+ datasetIndex,
91
+ pointIndex,
92
+ x,
93
+ y,
94
+ rect.left + rect.width / 2,
95
+ rect.top + rect.height / 2
96
+ );
97
+ }}
98
+ onMouseLeave={e => {
99
+ if (scatterOptions.enableHoverEffects) {
100
+ const originalRadius = Math.max(0, point.size || scatterOptions.pointRadius || 4);
101
+ e.currentTarget.setAttribute('r', String(originalRadius));
102
+ }
103
+ handlers.onPointLeave();
104
+ }}
105
+ />
106
+ {scatterOptions.showLabels && point.label && (
107
+ <text x={x} y={y - 10} textAnchor="middle" className="c-chart__scatter-label">
108
+ {String(point.label).replace(/[<>&"']/g, (char) => {
109
+ const entities: Record<string, string> = {
110
+ '<': '&lt;',
111
+ '>': '&gt;',
112
+ '&': '&amp;',
113
+ '"': '&quot;',
114
+ "'": '&#x27;'
115
+ };
116
+ return entities[char] || char;
117
+ })}
118
+ </text>
119
+ )}
120
+ </g>
121
+ );
122
+ });
123
+ });
131
124
 
132
- return <>{points}</>;
133
- }}
134
- />
135
- {hoveredPoint && datasets[hoveredPoint.datasetIndex]?.data?.[hoveredPoint.pointIndex] && (
136
- <ChartTooltip
137
- dataPoint={datasets[hoveredPoint.datasetIndex]!.data![hoveredPoint.pointIndex]!}
138
- datasetLabel={datasets[hoveredPoint.datasetIndex]?.label}
139
- datasetColor={datasets[hoveredPoint.datasetIndex]?.color}
140
- position={{ x: hoveredPoint.clientX, y: hoveredPoint.clientY }}
141
- visible={true}
142
- />
143
- )}
144
- </Chart>
125
+ return (
126
+ <>
127
+ {points}
128
+ {showTooltips && hoveredPoint && (
129
+ <ChartTooltip
130
+ dataPoint={
131
+ renderedDatasets[hoveredPoint.datasetIndex]?.data?.[hoveredPoint.pointIndex]
132
+ }
133
+ datasetLabel={renderedDatasets[hoveredPoint.datasetIndex]?.label}
134
+ datasetColor={
135
+ renderedDatasets[hoveredPoint.datasetIndex]?.color ||
136
+ colors[hoveredPoint.datasetIndex]
137
+ }
138
+ position={{
139
+ x: hoveredPoint.clientX,
140
+ y: hoveredPoint.clientY,
141
+ }}
142
+ visible={true}
143
+ />
144
+ )}
145
+ </>
146
+ );
147
+ };
148
+
149
+ return (
150
+ <BaseChart
151
+ ref={ref}
152
+ type="scatter"
153
+ datasets={datasets}
154
+ config={config}
155
+ renderContent={renderContent}
156
+ onDataPointClick={onDataPointClick}
157
+ {...props}
158
+ />
145
159
  );
146
160
  }
147
161
  )