@shohojdhara/atomix 0.1.30 → 0.2.1

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 (469) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +0 -0
  3. package/README.md +151 -39
  4. package/dist/atomix.css +13529 -0
  5. package/dist/atomix.min.css +15 -0
  6. package/dist/index.d.ts +6112 -1757
  7. package/dist/index.esm.js +16852 -8364
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/index.js +16892 -8369
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.min.js +1 -1
  12. package/dist/index.min.js.map +1 -1
  13. package/dist/themes/boomdevs.css +13241 -0
  14. package/dist/themes/boomdevs.min.css +353 -0
  15. package/dist/themes/esrar.css +15374 -0
  16. package/dist/themes/esrar.min.css +189 -0
  17. package/dist/themes/mashroom.css +28079 -0
  18. package/dist/themes/mashroom.min.css +403 -0
  19. package/dist/themes/shaj-default.css +14203 -0
  20. package/dist/themes/shaj-default.min.css +500 -0
  21. package/dist/themes/yabai.css +13711 -0
  22. package/dist/themes/yabai.min.css +189 -0
  23. package/package.json +126 -99
  24. package/src/components/Accordion/Accordion.stories.tsx +271 -0
  25. package/src/components/Accordion/Accordion.tsx +131 -0
  26. package/src/components/Accordion/index.ts +3 -0
  27. package/src/components/AtomixLogo/AtomixLogo.tsx +36 -0
  28. package/src/components/AtomixLogo/index.ts +3 -0
  29. package/src/components/AtomixLogo.tsx +40 -0
  30. package/src/components/Avatar/Avatar.stories.tsx +257 -0
  31. package/src/components/Avatar/Avatar.tsx +68 -0
  32. package/src/components/Avatar/AvatarGroup.tsx +73 -0
  33. package/src/components/Avatar/index.ts +3 -0
  34. package/src/components/Badge/Badge.stories.tsx +371 -0
  35. package/src/components/Badge/Badge.tsx +39 -0
  36. package/src/components/Badge/index.ts +3 -0
  37. package/src/components/Block/Block.stories.tsx +408 -0
  38. package/src/components/Block/Block.tsx +137 -0
  39. package/src/components/Block/index.ts +1 -0
  40. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +106 -0
  41. package/src/components/Breadcrumb/Breadcrumb.tsx +112 -0
  42. package/src/components/Breadcrumb/index.ts +3 -0
  43. package/src/components/Button/Button.stories.tsx +312 -0
  44. package/src/components/Button/Button.tsx +69 -0
  45. package/src/components/Button/index.ts +3 -0
  46. package/src/components/Callout/Callout.stories.tsx +588 -0
  47. package/src/components/Callout/Callout.tsx +78 -0
  48. package/src/components/Callout/index.ts +1 -0
  49. package/src/components/Card/Card.stories.tsx +105 -0
  50. package/src/components/Card/Card.tsx +69 -0
  51. package/src/components/Card/ElevationCard.tsx +47 -0
  52. package/src/components/Card/index.ts +15 -0
  53. package/src/components/Chart/AdvancedChart.tsx +624 -0
  54. package/src/components/Chart/AnimatedChart.tsx +206 -0
  55. package/src/components/Chart/AreaChart.tsx +27 -0
  56. package/src/components/Chart/BarChart.tsx +148 -0
  57. package/src/components/Chart/BubbleChart.tsx +411 -0
  58. package/src/components/Chart/CandlestickChart.tsx +765 -0
  59. package/src/components/Chart/Chart.stories.tsx +527 -0
  60. package/src/components/Chart/Chart.tsx +218 -0
  61. package/src/components/Chart/ChartRenderer.tsx +322 -0
  62. package/src/components/Chart/ChartToolbar.tsx +436 -0
  63. package/src/components/Chart/ChartTooltip.tsx +101 -0
  64. package/src/components/Chart/DonutChart.tsx +370 -0
  65. package/src/components/Chart/FunnelChart.tsx +393 -0
  66. package/src/components/Chart/GaugeChart.tsx +550 -0
  67. package/src/components/Chart/HeatmapChart.tsx +614 -0
  68. package/src/components/Chart/LineChart.tsx +172 -0
  69. package/src/components/Chart/LineChartNew.tsx +167 -0
  70. package/src/components/Chart/MultiAxisChart.tsx +498 -0
  71. package/src/components/Chart/PieChart.tsx +103 -0
  72. package/src/components/Chart/RadarChart.tsx +332 -0
  73. package/src/components/Chart/RealTimeChart.tsx +436 -0
  74. package/src/components/Chart/ScatterChart.tsx +152 -0
  75. package/src/components/Chart/TreemapChart.tsx +574 -0
  76. package/src/components/Chart/WaterfallChart.tsx +450 -0
  77. package/src/components/Chart/index.ts +119 -0
  78. package/src/components/Chart/types.ts +338 -0
  79. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +44 -0
  80. package/src/components/ColorModeToggle/ColorModeToggle.tsx +85 -0
  81. package/src/components/ColorModeToggle/index.ts +2 -0
  82. package/src/components/Countdown/Countdown.stories.tsx +46 -0
  83. package/src/components/Countdown/Countdown.tsx +90 -0
  84. package/src/components/Countdown/index.ts +2 -0
  85. package/src/components/DataTable/DataTable.stories.tsx +248 -0
  86. package/src/components/DataTable/DataTable.tsx +213 -0
  87. package/src/components/DataTable/index.ts +3 -0
  88. package/src/components/DatePicker/DatePicker.stories.tsx +364 -0
  89. package/src/components/DatePicker/DatePicker.tsx +504 -0
  90. package/src/components/DatePicker/index.ts +4 -0
  91. package/src/components/DatePicker/readme.md +106 -0
  92. package/src/components/DatePicker/types.ts +167 -0
  93. package/src/components/DatePicker/utils.ts +185 -0
  94. package/src/components/Dropdown/Dropdown.stories.tsx +358 -0
  95. package/src/components/Dropdown/Dropdown.tsx +352 -0
  96. package/src/components/Dropdown/index.ts +14 -0
  97. package/src/components/Dropdown/readme.md +151 -0
  98. package/src/components/EdgePanel/EdgePanel.stories.tsx +266 -0
  99. package/src/components/EdgePanel/EdgePanel.tsx +73 -0
  100. package/src/components/EdgePanel/index.ts +1 -0
  101. package/src/components/Form/Checkbox.stories.tsx +76 -0
  102. package/src/components/Form/Checkbox.tsx +69 -0
  103. package/src/components/Form/Form.stories.tsx +497 -0
  104. package/src/components/Form/Form.tsx +46 -0
  105. package/src/components/Form/FormGroup.stories.tsx +162 -0
  106. package/src/components/Form/FormGroup.tsx +53 -0
  107. package/src/components/Form/Input.stories.tsx +106 -0
  108. package/src/components/Form/Input.tsx +87 -0
  109. package/src/components/Form/Radio.stories.tsx +94 -0
  110. package/src/components/Form/Radio.tsx +65 -0
  111. package/src/components/Form/Select.stories.tsx +151 -0
  112. package/src/components/Form/Select.tsx +191 -0
  113. package/src/components/Form/Textarea.stories.tsx +123 -0
  114. package/src/components/Form/Textarea.tsx +78 -0
  115. package/src/components/Form/index.ts +7 -0
  116. package/src/components/Hero/Hero.stories.tsx +295 -0
  117. package/src/components/Hero/Hero.tsx +175 -0
  118. package/src/components/Hero/index.ts +6 -0
  119. package/src/components/Icon/Icon.tsx +87 -0
  120. package/src/components/Icon/index.ts +2 -0
  121. package/src/components/List/List.stories.tsx +122 -0
  122. package/src/components/List/List.tsx +35 -0
  123. package/src/components/List/ListGroup.tsx +35 -0
  124. package/src/components/List/index.ts +2 -0
  125. package/src/components/Messages/Messages.stories.tsx +160 -0
  126. package/src/components/Messages/Messages.tsx +172 -0
  127. package/src/components/Messages/index.ts +3 -0
  128. package/src/components/Modal/Modal.stories.tsx +284 -0
  129. package/src/components/Modal/Modal.tsx +198 -0
  130. package/src/components/Modal/README.md +169 -0
  131. package/src/components/Modal/index.ts +1 -0
  132. package/src/components/Navigation/Menu/MegaMenu.tsx +109 -0
  133. package/src/components/Navigation/Menu/Menu.stories.tsx +339 -0
  134. package/src/components/Navigation/Menu/Menu.tsx +111 -0
  135. package/src/components/Navigation/Nav/Nav.stories.tsx +456 -0
  136. package/src/components/Navigation/Nav/Nav.tsx +51 -0
  137. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  138. package/src/components/Navigation/Nav/NavItem.tsx +168 -0
  139. package/src/components/Navigation/Navbar/Navbar.stories.tsx +569 -0
  140. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  141. package/src/components/Navigation/README.md +314 -0
  142. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  143. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +609 -0
  144. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  145. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +103 -0
  146. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  147. package/src/components/Navigation/index.ts +23 -0
  148. package/src/components/Pagination/Pagination.stories.tsx +188 -0
  149. package/src/components/Pagination/Pagination.tsx +162 -0
  150. package/src/components/Pagination/index.ts +1 -0
  151. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +397 -0
  152. package/src/components/PhotoViewer/PhotoViewer.tsx +246 -0
  153. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +184 -0
  154. package/src/components/PhotoViewer/PhotoViewerImage.tsx +173 -0
  155. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +91 -0
  156. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +85 -0
  157. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +63 -0
  158. package/src/components/PhotoViewer/README.md +358 -0
  159. package/src/components/PhotoViewer/examples/ImageGallery.tsx +187 -0
  160. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +73 -0
  161. package/src/components/PhotoViewer/examples/index.ts +2 -0
  162. package/src/components/PhotoViewer/index.ts +14 -0
  163. package/src/components/Popover/Popover.stories.tsx +143 -0
  164. package/src/components/Popover/Popover.tsx +137 -0
  165. package/src/components/Popover/index.ts +5 -0
  166. package/src/components/Popover/readme.md +120 -0
  167. package/src/components/ProductReview/ProductReview.stories.tsx +88 -0
  168. package/src/components/ProductReview/ProductReview.tsx +169 -0
  169. package/src/components/ProductReview/index.ts +3 -0
  170. package/src/components/Progress/Progress.stories.tsx +75 -0
  171. package/src/components/Progress/Progress.tsx +45 -0
  172. package/src/components/Progress/index.ts +1 -0
  173. package/src/components/Rating/Rating.stories.tsx +109 -0
  174. package/src/components/Rating/Rating.tsx +286 -0
  175. package/src/components/Rating/index.ts +6 -0
  176. package/src/components/River/River.stories.tsx +230 -0
  177. package/src/components/River/River.tsx +134 -0
  178. package/src/components/River/index.ts +2 -0
  179. package/src/components/SectionIntro/SectionIntro.stories.tsx +143 -0
  180. package/src/components/SectionIntro/SectionIntro.tsx +184 -0
  181. package/src/components/SectionIntro/index.ts +3 -0
  182. package/src/components/Slider/Slider.stories.tsx +241 -0
  183. package/src/components/Slider/Slider.tsx +225 -0
  184. package/src/components/Slider/index.ts +24 -0
  185. package/src/components/Spinner/Spinner.stories.tsx +65 -0
  186. package/src/components/Spinner/Spinner.tsx +36 -0
  187. package/src/components/Spinner/index.ts +2 -0
  188. package/src/components/Steps/Steps.stories.tsx +158 -0
  189. package/src/components/Steps/Steps.tsx +115 -0
  190. package/src/components/Steps/index.ts +3 -0
  191. package/src/components/Tab/Tab.stories.tsx +129 -0
  192. package/src/components/Tab/Tab.tsx +111 -0
  193. package/src/components/Tab/index.ts +2 -0
  194. package/src/components/Testimonial/Testimonial.stories.tsx +180 -0
  195. package/src/components/Testimonial/Testimonial.tsx +138 -0
  196. package/src/components/Testimonial/index.ts +3 -0
  197. package/src/components/Todo/Todo.stories.tsx +103 -0
  198. package/src/components/Todo/Todo.tsx +158 -0
  199. package/src/components/Todo/index.ts +1 -0
  200. package/src/components/Toggle/Toggle.stories.tsx +49 -0
  201. package/src/components/Toggle/Toggle.tsx +84 -0
  202. package/src/components/Toggle/index.ts +2 -0
  203. package/src/components/Tooltip/Tooltip.stories.tsx +115 -0
  204. package/src/components/Tooltip/Tooltip.tsx +150 -0
  205. package/src/components/Tooltip/index.ts +3 -0
  206. package/src/components/Upload/Upload.stories.tsx +220 -0
  207. package/src/components/Upload/Upload.tsx +354 -0
  208. package/src/components/Upload/index.ts +3 -0
  209. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +484 -0
  210. package/src/components/VideoPlayer/VideoPlayer.tsx +574 -0
  211. package/src/components/VideoPlayer/index.ts +7 -0
  212. package/src/components/index.ts +111 -0
  213. package/src/layouts/Grid/Container.tsx +58 -0
  214. package/src/layouts/Grid/Grid.stories.tsx +861 -0
  215. package/src/layouts/Grid/Grid.tsx +68 -0
  216. package/src/layouts/Grid/GridCol.tsx +161 -0
  217. package/src/layouts/Grid/README.md +108 -0
  218. package/src/layouts/Grid/Row.tsx +70 -0
  219. package/src/layouts/Grid/index.ts +8 -0
  220. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +387 -0
  221. package/src/layouts/MasonryGrid/MasonryGrid.tsx +408 -0
  222. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +44 -0
  223. package/src/layouts/MasonryGrid/README.md +117 -0
  224. package/src/layouts/MasonryGrid/index.ts +4 -0
  225. package/src/layouts/index.ts +7 -0
  226. package/src/lib/README.md +89 -0
  227. package/src/lib/composables/index.ts +63 -0
  228. package/src/lib/composables/useAccordion.ts +129 -0
  229. package/src/lib/composables/useAmbientMode.ts +90 -0
  230. package/src/lib/composables/useBadge.ts +42 -0
  231. package/src/lib/composables/useBarChart.ts +365 -0
  232. package/src/lib/composables/useBlock.ts +56 -0
  233. package/src/lib/composables/useBreadcrumb.ts +81 -0
  234. package/src/lib/composables/useButton.ts +59 -0
  235. package/src/lib/composables/useCallout.ts +55 -0
  236. package/src/lib/composables/useCard.ts +155 -0
  237. package/src/lib/composables/useChart.ts +1082 -0
  238. package/src/lib/composables/useChartAnalytics.ts +505 -0
  239. package/src/lib/composables/useChartData.ts +38 -0
  240. package/src/lib/composables/useChartExport.ts +392 -0
  241. package/src/lib/composables/useChartInteraction.ts +34 -0
  242. package/src/lib/composables/useChartInteractions.ts +123 -0
  243. package/src/lib/composables/useChartPerformance.ts +323 -0
  244. package/src/lib/composables/useChartScale.ts +48 -0
  245. package/src/lib/composables/useChartToolbar.ts +532 -0
  246. package/src/lib/composables/useCheckbox.ts +70 -0
  247. package/src/lib/composables/useDataTable.ts +208 -0
  248. package/src/lib/composables/useDatePicker.ts +564 -0
  249. package/src/lib/composables/useDropdown.ts +272 -0
  250. package/src/lib/composables/useEdgePanel.ts +261 -0
  251. package/src/lib/composables/useForm.ts +62 -0
  252. package/src/lib/composables/useFormGroup.ts +51 -0
  253. package/src/lib/composables/useHero.ts +250 -0
  254. package/src/lib/composables/useInput.ts +58 -0
  255. package/src/lib/composables/useLineChart.ts +319 -0
  256. package/src/lib/composables/useMessages.ts +77 -0
  257. package/src/lib/composables/useModal.ts +110 -0
  258. package/src/lib/composables/useNavbar.ts +288 -0
  259. package/src/lib/composables/usePagination.ts +101 -0
  260. package/src/lib/composables/usePhotoViewer.ts +937 -0
  261. package/src/lib/composables/usePieChart.ts +362 -0
  262. package/src/lib/composables/usePopover.ts +354 -0
  263. package/src/lib/composables/useProgress.ts +74 -0
  264. package/src/lib/composables/useRadio.ts +47 -0
  265. package/src/lib/composables/useRating.ts +174 -0
  266. package/src/lib/composables/useRiver.ts +205 -0
  267. package/src/lib/composables/useSelect.ts +52 -0
  268. package/src/lib/composables/useSideMenu.ts +197 -0
  269. package/src/lib/composables/useSlider.ts +339 -0
  270. package/src/lib/composables/useSpinner.ts +42 -0
  271. package/src/lib/composables/useTextarea.ts +55 -0
  272. package/src/lib/composables/useTodo.ts +141 -0
  273. package/src/lib/composables/useVideoPlayer.ts +398 -0
  274. package/src/lib/constants/components.ts +1433 -0
  275. package/src/lib/constants/index.ts +4 -0
  276. package/src/lib/index.ts +11 -0
  277. package/src/lib/types/components.ts +4750 -0
  278. package/src/lib/types/index.ts +2 -0
  279. package/src/lib/utils/dom.ts +41 -0
  280. package/src/lib/utils/icons.ts +74 -0
  281. package/src/lib/utils/index.ts +55 -0
  282. package/src/lib/utils/useForkRef.test.tsx +64 -0
  283. package/src/lib/utils/useForkRef.ts +36 -0
  284. package/src/lib/utils.test.ts +14 -0
  285. package/src/styles/01-settings/_index.scss +2 -0
  286. package/src/styles/01-settings/_settings.accordion.scss +7 -5
  287. package/src/styles/01-settings/_settings.animations.scss +0 -0
  288. package/src/styles/01-settings/_settings.avatar-group.scss +6 -3
  289. package/src/styles/01-settings/_settings.avatar.scss +2 -2
  290. package/src/styles/01-settings/_settings.badge.scss +15 -9
  291. package/src/styles/01-settings/_settings.block.scss +11 -0
  292. package/src/styles/01-settings/_settings.border-radius.scss +12 -9
  293. package/src/styles/01-settings/_settings.border.scss +4 -1
  294. package/src/styles/01-settings/_settings.box-shadow.scss +1 -1
  295. package/src/styles/01-settings/_settings.breadcrumb.scss +9 -8
  296. package/src/styles/01-settings/_settings.breakpoints.scss +0 -0
  297. package/src/styles/01-settings/_settings.btn-group.scss +4 -1
  298. package/src/styles/01-settings/_settings.button.scss +19 -21
  299. package/src/styles/01-settings/_settings.callout.scss +42 -24
  300. package/src/styles/01-settings/_settings.card.scss +12 -10
  301. package/src/styles/01-settings/_settings.chart.scss +199 -0
  302. package/src/styles/01-settings/_settings.checkbox-group.scss +0 -0
  303. package/src/styles/01-settings/_settings.checkbox.scss +0 -0
  304. package/src/styles/01-settings/_settings.color-mode.scss +0 -0
  305. package/src/styles/01-settings/_settings.colors.scss +20 -0
  306. package/src/styles/01-settings/_settings.config.scss +1 -1
  307. package/src/styles/01-settings/_settings.countdown.scss +0 -0
  308. package/src/styles/01-settings/_settings.data-table.scss +0 -0
  309. package/src/styles/01-settings/_settings.datepicker.scss +0 -0
  310. package/src/styles/01-settings/_settings.dropdown.scss +0 -0
  311. package/src/styles/01-settings/_settings.edge-panel.scss +0 -0
  312. package/src/styles/01-settings/_settings.fonts.scss +1 -1
  313. package/src/styles/01-settings/_settings.form-group.scss +0 -0
  314. package/src/styles/01-settings/_settings.form.scss +0 -0
  315. package/src/styles/01-settings/_settings.grid.scss +3 -3
  316. package/src/styles/01-settings/_settings.hero.scss +1 -1
  317. package/src/styles/01-settings/_settings.input.scss +1 -1
  318. package/src/styles/01-settings/_settings.link.scss +0 -0
  319. package/src/styles/01-settings/_settings.list-group.scss +0 -0
  320. package/src/styles/01-settings/_settings.list.scss +0 -0
  321. package/src/styles/01-settings/_settings.maps.scss +43 -8
  322. package/src/styles/01-settings/_settings.masonry-grid.scss +0 -0
  323. package/src/styles/01-settings/_settings.menu.scss +0 -0
  324. package/src/styles/01-settings/_settings.messages.scss +0 -0
  325. package/src/styles/01-settings/_settings.modal.scss +1 -1
  326. package/src/styles/01-settings/_settings.nav.scss +0 -0
  327. package/src/styles/01-settings/_settings.navbar.scss +0 -0
  328. package/src/styles/01-settings/_settings.pagination.scss +0 -0
  329. package/src/styles/01-settings/_settings.photoviewer.scss +89 -23
  330. package/src/styles/01-settings/_settings.popover.scss +0 -0
  331. package/src/styles/01-settings/_settings.position.scss +0 -0
  332. package/src/styles/01-settings/_settings.progress.scss +0 -0
  333. package/src/styles/01-settings/_settings.rating.scss +0 -0
  334. package/src/styles/01-settings/_settings.river.scss +0 -0
  335. package/src/styles/01-settings/_settings.sectionintro.scss +0 -0
  336. package/src/styles/01-settings/_settings.select.scss +0 -0
  337. package/src/styles/01-settings/_settings.side-menu.scss +0 -0
  338. package/src/styles/01-settings/_settings.skeleton.scss +0 -0
  339. package/src/styles/01-settings/_settings.slider.scss +59 -0
  340. package/src/styles/01-settings/_settings.spacing.scss +11 -3
  341. package/src/styles/01-settings/_settings.spinner.scss +0 -0
  342. package/src/styles/01-settings/_settings.steps.scss +1 -1
  343. package/src/styles/01-settings/_settings.tabs.scss +4 -4
  344. package/src/styles/01-settings/_settings.testimonials.scss +0 -0
  345. package/src/styles/01-settings/_settings.todo.scss +0 -0
  346. package/src/styles/01-settings/_settings.toggle.scss +1 -1
  347. package/src/styles/01-settings/_settings.tooltip.scss +0 -0
  348. package/src/styles/01-settings/_settings.typography.scss +2 -0
  349. package/src/styles/01-settings/_settings.upload.scss +0 -0
  350. package/src/styles/01-settings/_settings.video-player.scss +64 -0
  351. package/src/styles/01-settings/_settings.z-layers.scss +0 -0
  352. package/src/styles/02-tools/_index.scss +1 -0
  353. package/src/styles/02-tools/_tools.animations.scss +82 -0
  354. package/src/styles/02-tools/_tools.border-radius.scss +0 -0
  355. package/src/styles/02-tools/_tools.breakpoints.scss +0 -0
  356. package/src/styles/02-tools/_tools.button.scss +5 -0
  357. package/src/styles/02-tools/_tools.clearfix.scss +0 -0
  358. package/src/styles/02-tools/_tools.color-functions.scss +0 -0
  359. package/src/styles/02-tools/_tools.color-mode.scss +1 -1
  360. package/src/styles/02-tools/_tools.component.scss +479 -0
  361. package/src/styles/02-tools/_tools.event.scss +0 -0
  362. package/src/styles/02-tools/_tools.grid.scss +0 -0
  363. package/src/styles/02-tools/_tools.hidden-visually.scss +0 -0
  364. package/src/styles/02-tools/_tools.hidden.scss +0 -0
  365. package/src/styles/02-tools/_tools.map-loop.scss +0 -0
  366. package/src/styles/02-tools/_tools.media-queries.scss +0 -0
  367. package/src/styles/02-tools/_tools.object-fit.scss +0 -0
  368. package/src/styles/02-tools/_tools.placeholder.scss +0 -0
  369. package/src/styles/02-tools/_tools.rem.scss +5 -1
  370. package/src/styles/02-tools/_tools.size.scss +0 -0
  371. package/src/styles/02-tools/_tools.spacing.scss +0 -0
  372. package/src/styles/02-tools/_tools.to-rgb.scss +0 -0
  373. package/src/styles/02-tools/_tools.transition.scss +0 -0
  374. package/src/styles/02-tools/_tools.utilities.scss +0 -0
  375. package/src/styles/02-tools/_tools.utility-api.scss +23 -2
  376. package/src/styles/03-generic/_generic.fonts.scss +0 -0
  377. package/src/styles/03-generic/_generic.reset.scss +0 -0
  378. package/src/styles/03-generic/_generic.root.scss +5 -1
  379. package/src/styles/03-generic/_generic.selection.scss +0 -0
  380. package/src/styles/03-generic/_index.scss +0 -0
  381. package/src/styles/04-elements/_elements.all.scss +0 -0
  382. package/src/styles/04-elements/_elements.body.scss +0 -0
  383. package/src/styles/04-elements/_elements.heading.scss +0 -0
  384. package/src/styles/04-elements/_elements.html.scss +0 -0
  385. package/src/styles/04-elements/_elements.links.scss +0 -0
  386. package/src/styles/04-elements/_index.scss +0 -0
  387. package/src/styles/05-objects/_index.scss +1 -0
  388. package/src/styles/05-objects/_objects.block.scss +122 -0
  389. package/src/styles/05-objects/_objects.container.scss +14 -10
  390. package/src/styles/05-objects/_objects.grid.scss +0 -0
  391. package/src/styles/05-objects/_objects.masonry-grid.scss +0 -0
  392. package/src/styles/06-components/_components.accordion.scss +3 -1
  393. package/src/styles/06-components/_components.avatar-group.scss +0 -0
  394. package/src/styles/06-components/_components.avatar.scss +0 -0
  395. package/src/styles/06-components/_components.badge.scss +9 -9
  396. package/src/styles/06-components/_components.breadcrumb.scss +0 -0
  397. package/src/styles/06-components/_components.btn-group.scss +0 -0
  398. package/src/styles/06-components/_components.button.scss +0 -0
  399. package/src/styles/06-components/_components.callout.scss +2 -1
  400. package/src/styles/06-components/_components.card.scss +0 -1
  401. package/src/styles/06-components/_components.chart.scss +2102 -0
  402. package/src/styles/06-components/_components.checkbox-group.scss +0 -0
  403. package/src/styles/06-components/_components.checkbox.scss +0 -0
  404. package/src/styles/06-components/_components.color-mode-toggle.scss +0 -0
  405. package/src/styles/06-components/_components.countdown.scss +0 -0
  406. package/src/styles/06-components/_components.data-table.scss +0 -0
  407. package/src/styles/06-components/_components.datepicker.scss +0 -0
  408. package/src/styles/06-components/_components.dropdown.scss +0 -0
  409. package/src/styles/06-components/_components.edge-panel.scss +0 -0
  410. package/src/styles/06-components/_components.form-group.scss +0 -0
  411. package/src/styles/06-components/_components.form.scss +0 -0
  412. package/src/styles/06-components/_components.hero.scss +1 -0
  413. package/src/styles/06-components/_components.icon.scss +2 -2
  414. package/src/styles/06-components/_components.image-gallery.scss +0 -0
  415. package/src/styles/06-components/_components.input.scss +0 -0
  416. package/src/styles/06-components/_components.list-group.scss +0 -0
  417. package/src/styles/06-components/_components.list.scss +0 -0
  418. package/src/styles/06-components/_components.menu.scss +0 -0
  419. package/src/styles/06-components/_components.messages.scss +0 -0
  420. package/src/styles/06-components/_components.modal.scss +3 -0
  421. package/src/styles/06-components/_components.nav.scss +0 -0
  422. package/src/styles/06-components/_components.navbar.scss +0 -0
  423. package/src/styles/06-components/_components.pagination.scss +0 -0
  424. package/src/styles/06-components/_components.photoviewer.scss +603 -545
  425. package/src/styles/06-components/_components.popover.scss +0 -0
  426. package/src/styles/06-components/_components.product-review.scss +0 -0
  427. package/src/styles/06-components/_components.progress.scss +0 -0
  428. package/src/styles/06-components/_components.rating.scss +0 -0
  429. package/src/styles/06-components/_components.river.scss +0 -0
  430. package/src/styles/06-components/_components.sectionintro.scss +0 -0
  431. package/src/styles/06-components/_components.select.scss +0 -0
  432. package/src/styles/06-components/_components.side-menu.scss +0 -0
  433. package/src/styles/06-components/_components.skeleton.scss +0 -0
  434. package/src/styles/06-components/_components.slider.scss +273 -0
  435. package/src/styles/06-components/_components.spinner.scss +0 -0
  436. package/src/styles/06-components/_components.steps.scss +1 -0
  437. package/src/styles/06-components/_components.tabs.scss +0 -0
  438. package/src/styles/06-components/_components.testimonials.scss +0 -0
  439. package/src/styles/06-components/_components.todo.scss +0 -0
  440. package/src/styles/06-components/_components.toggle.scss +0 -0
  441. package/src/styles/06-components/_components.tooltip.scss +4 -9
  442. package/src/styles/06-components/_components.upload.scss +0 -0
  443. package/src/styles/06-components/_components.video-player.scss +623 -0
  444. package/src/styles/06-components/_index.scss +3 -0
  445. package/src/styles/06-components/old.chart.styles.scss +2819 -0
  446. package/src/styles/99-utilities/_index.scss +0 -0
  447. package/src/styles/99-utilities/_utilities.background.scss +0 -0
  448. package/src/styles/99-utilities/_utilities.border.scss +0 -0
  449. package/src/styles/99-utilities/_utilities.clearfix.scss +0 -0
  450. package/src/styles/99-utilities/_utilities.display.scss +0 -0
  451. package/src/styles/99-utilities/_utilities.flex.scss +0 -0
  452. package/src/styles/99-utilities/_utilities.link.scss +0 -0
  453. package/src/styles/99-utilities/_utilities.object-fit.scss +0 -0
  454. package/src/styles/99-utilities/_utilities.opacity.scss +0 -0
  455. package/src/styles/99-utilities/_utilities.overflow.scss +0 -0
  456. package/src/styles/99-utilities/_utilities.position.scss +0 -0
  457. package/src/styles/99-utilities/_utilities.scss +2 -1
  458. package/src/styles/99-utilities/_utilities.shadow.scss +0 -0
  459. package/src/styles/99-utilities/_utilities.sizes.scss +0 -0
  460. package/src/styles/99-utilities/_utilities.spacing.scss +0 -0
  461. package/src/styles/99-utilities/_utilities.text.scss +5 -0
  462. package/src/styles/99-utilities/_utilities.visibility.scss +0 -0
  463. package/src/styles/99-utilities/_utilities.visually-hidden.scss +0 -0
  464. package/src/styles/99-utilities/_utilities.z-index.scss +0 -0
  465. package/src/styles/css-modules.d.ts +0 -0
  466. package/src/styles/index.scss +0 -0
  467. package/dist/index.css +0 -15
  468. package/dist/index.esm.css +0 -15
  469. package/dist/index.min.css +0 -15
@@ -0,0 +1,2102 @@
1
+ @use '../01-settings/settings.config' as *;
2
+ @use '../01-settings/settings.chart' as *;
3
+ @use '../01-settings/settings.colors' as *;
4
+ @use '../01-settings/settings.spacing' as *;
5
+ @use '../01-settings/settings.typography' as *;
6
+ @use '../01-settings/settings.border-radius' as *;
7
+ @use '../01-settings/settings.box-shadow' as *;
8
+ @use '../01-settings/settings.maps' as color-maps;
9
+ @use '../02-tools/tools.component' as *;
10
+ @use '../02-tools/tools.rem' as *;
11
+ @use '../02-tools/tools.animations' as *;
12
+
13
+ @use 'sass:map';
14
+
15
+ .c-chart {
16
+ $root: &;
17
+
18
+ --#{$prefix}chart-primary-color: #{$chart-primary-color};
19
+ --#{$prefix}chart-secondary-color: #{$chart-secondary-color};
20
+ --#{$prefix}chart-border-radius: #{$chart-border-radius};
21
+ --#{$prefix}chart-padding: #{$chart-padding};
22
+ --#{$prefix}chart-gap: #{$chart-gap};
23
+ --#{$prefix}chart-border-width: #{$chart-border-width};
24
+ --#{$prefix}chart-border-color: #{$chart-border-color};
25
+ --#{$prefix}chart-bg: #{$chart-bg};
26
+ --#{$prefix}chart-min-height: #{$chart-min-height};
27
+
28
+ display: flex;
29
+ flex-direction: column;
30
+ border: var(--#{$prefix}chart-border-width) solid var(--#{$prefix}chart-border-color);
31
+ border-radius: var(--#{$prefix}chart-border-radius);
32
+ overflow: hidden;
33
+ box-shadow: $box-shadow-sm;
34
+ position: relative;
35
+ min-height: var(--#{$prefix}chart-min-height);
36
+ width: 100%;
37
+ max-width: 100%;
38
+ background-color: var(--#{$prefix}chart-bg);
39
+ @include basic-transition();
40
+
41
+ &::after {
42
+ content: '';
43
+ position: absolute;
44
+ inset: 0;
45
+ background: linear-gradient(
46
+ 135deg,
47
+ rgba(var(--#{$prefix}primary-rgb), 0.1) 0%,
48
+ transparent 50%,
49
+ rgba(var(--#{$prefix}secondary-rgb), 0.05) 100%
50
+ );
51
+ pointer-events: none;
52
+ z-index: 1;
53
+ }
54
+
55
+ &:hover {
56
+ box-shadow: $box-shadow-lg;
57
+ border-color: var(--#{$prefix}primary-border-subtle);
58
+ }
59
+
60
+ &:focus-visible {
61
+ box-shadow:
62
+ $box-shadow-md,
63
+ 0 0 0 $chart-focus-ring-width var(--#{$prefix}primary-border-subtle);
64
+ }
65
+
66
+ &--xs {
67
+ --#{$prefix}chart-min-height: #{$chart-min-height-xs};
68
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 2)};
69
+ font-size: $font-size-xs;
70
+ }
71
+
72
+ &--sm {
73
+ --#{$prefix}chart-min-height: #{$chart-min-height-sm};
74
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 3)};
75
+ font-size: $font-size-sm;
76
+ }
77
+
78
+ &--md {
79
+ --#{$prefix}chart-min-height: #{$chart-min-height-md};
80
+ --#{$prefix}chart-padding: #{$chart-padding};
81
+ font-size: $font-size-base;
82
+ }
83
+
84
+ &--lg {
85
+ --#{$prefix}chart-min-height: #{$chart-min-height-lg};
86
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 6)};
87
+ font-size: $font-size-md;
88
+ }
89
+
90
+ &--xl {
91
+ --#{$prefix}chart-min-height: #{$chart-min-height-xl};
92
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 8)};
93
+ font-size: $font-size-lg;
94
+ }
95
+
96
+ &--2xl {
97
+ --#{$prefix}chart-min-height: #{$chart-min-height-2xl};
98
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 10)};
99
+ font-size: $font-size-lg;
100
+ }
101
+
102
+ &--full {
103
+ height: 100vh;
104
+ min-height: auto;
105
+ border-radius: 0;
106
+ }
107
+
108
+ &--auto {
109
+ height: auto;
110
+ min-height: $chart-canvas-min-height;
111
+ }
112
+
113
+ @each $color, $value in color-maps.$theme-colors {
114
+ &--#{$color} {
115
+ --#{$prefix}chart-primary-color: var(--#{$prefix}#{$color}-6);
116
+ --#{$prefix}chart-border-color: var(--#{$prefix}#{$color}-border-subtle);
117
+
118
+ &:hover {
119
+ border-color: var(--#{$prefix}#{$color}-border-subtle);
120
+ }
121
+ }
122
+ }
123
+
124
+ &--loading {
125
+ #{$root}__content {
126
+ position: relative;
127
+ overflow: hidden;
128
+
129
+ &::after {
130
+ content: '';
131
+ position: absolute;
132
+ top: 0;
133
+ left: -100%;
134
+ width: 100%;
135
+ height: 100%;
136
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
137
+ animation: chart-shimmer 2s infinite;
138
+ }
139
+ }
140
+
141
+ #{$root}__canvas {
142
+ opacity: 0.3;
143
+ filter: blur(1px);
144
+ }
145
+ }
146
+
147
+ &--interactive {
148
+ cursor: pointer;
149
+ user-select: none;
150
+
151
+ &:hover {
152
+ transform: translateY(-2px);
153
+ box-shadow: $box-shadow-xl;
154
+ }
155
+
156
+ &:active {
157
+ transform: $chart-active-transform;
158
+ box-shadow: $box-shadow-md;
159
+ transition-duration: 0.1s;
160
+ }
161
+
162
+ &:focus-visible {
163
+ transform: translateY(-1px);
164
+ }
165
+ }
166
+
167
+ &--disabled {
168
+ pointer-events: none;
169
+ opacity: 0.6;
170
+
171
+ #{$root}__content {
172
+ filter: grayscale(80%) opacity(0.6);
173
+ }
174
+
175
+ #{$root}__canvas {
176
+ pointer-events: none;
177
+ }
178
+
179
+ &:hover {
180
+ transform: none;
181
+ box-shadow: $box-shadow-sm;
182
+ }
183
+ }
184
+
185
+ &--fullscreen {
186
+ position: fixed;
187
+ top: 0;
188
+ left: 0;
189
+ width: 100vw;
190
+ height: 100vh;
191
+ z-index: 9999;
192
+ border-radius: 0;
193
+ box-shadow: none;
194
+ background: var(--#{$prefix}primary-bg-default);
195
+ }
196
+
197
+ &--elevated {
198
+ box-shadow: $box-shadow-lg;
199
+ transform: translateY(-2px);
200
+
201
+ &:hover {
202
+ box-shadow: $box-shadow-xl;
203
+ transform: translateY(-4px);
204
+ }
205
+ }
206
+
207
+ &--flat {
208
+ box-shadow: none;
209
+ border: 2px solid var(--#{$prefix}primary-border-subtle);
210
+
211
+ &:hover {
212
+ box-shadow: $box-shadow-sm;
213
+ transform: none;
214
+ }
215
+ }
216
+
217
+ &--rounded {
218
+ border-radius: $border-radius-xl;
219
+ }
220
+
221
+ &--square {
222
+ border-radius: 0;
223
+ }
224
+
225
+ &__header {
226
+ padding: var(--#{$prefix}chart-padding);
227
+ border-bottom: var(--#{$prefix}chart-border-width) solid var(--#{$prefix}brand-bg-subtle);
228
+ backdrop-filter: blur($chart-header-backdrop-blur);
229
+ position: relative;
230
+ display: flex;
231
+ align-items: flex-start;
232
+ justify-content: space-between;
233
+ gap: var(--#{$prefix}chart-gap);
234
+ z-index: 2;
235
+
236
+ &::after {
237
+ content: '';
238
+ position: absolute;
239
+ bottom: 0;
240
+ left: var(--#{$prefix}chart-padding);
241
+ right: var(--#{$prefix}chart-padding);
242
+ height: 1px;
243
+ background: linear-gradient(
244
+ 90deg,
245
+ transparent,
246
+ var(--#{$prefix}brand-border-subtle),
247
+ transparent
248
+ );
249
+ }
250
+ }
251
+
252
+ &__header-content {
253
+ flex: 1;
254
+ min-width: 0;
255
+ }
256
+
257
+ &__title {
258
+ margin: 0 0 $chart-title-spacer-y 0;
259
+ font-size: $chart-title-font-size;
260
+ font-weight: $chart-title-font-weight;
261
+ color: $chart-title-color;
262
+ letter-spacing: -0.02em;
263
+ line-height: 1.3;
264
+ word-wrap: break-word;
265
+ hyphens: auto;
266
+ }
267
+
268
+ &__subtitle {
269
+ margin: 0;
270
+ color: $chart-subtitle-color;
271
+ opacity: 0.8;
272
+ line-height: 1.4;
273
+ word-wrap: break-word;
274
+ }
275
+
276
+ &__toolbar {
277
+ display: flex;
278
+ align-items: center;
279
+ gap: var(--#{$prefix}chart-gap);
280
+ flex-shrink: 0;
281
+ margin-left: auto;
282
+ padding: map.get($spacing-sizes, 1);
283
+ border-radius: $border-radius-md;
284
+ background: var(--#{$prefix}primary-bg-subtle);
285
+ backdrop-filter: blur(8px);
286
+ border: 1px solid var(--#{$prefix}primary-border-subtle);
287
+ box-shadow: $box-shadow-sm;
288
+ transition: all $chart-transition-duration $chart-transition-timing;
289
+
290
+ &:hover {
291
+ box-shadow: $box-shadow-md;
292
+ background: var(--#{$prefix}primary-bg-default);
293
+ }
294
+ }
295
+
296
+ &__action {
297
+ display: inline-flex;
298
+ align-items: center;
299
+ justify-content: center;
300
+ width: rem(32px);
301
+ height: rem(32px);
302
+ border-radius: $border-radius-sm;
303
+ border: 1px solid transparent;
304
+ background-color: transparent;
305
+ color: var(--#{$prefix}secondary-text-emphasis);
306
+ cursor: pointer;
307
+ transition: all $chart-transition-duration $chart-transition-timing;
308
+ position: relative;
309
+ overflow: hidden;
310
+ font-size: rem(14px);
311
+
312
+ &::before {
313
+ content: '';
314
+ position: absolute;
315
+ inset: 0;
316
+ background: var(--#{$prefix}primary-6);
317
+ opacity: 0;
318
+ border-radius: inherit;
319
+ transition: opacity $chart-transition-duration $chart-transition-timing;
320
+ }
321
+
322
+ svg {
323
+ position: relative;
324
+ z-index: 1;
325
+ width: rem(16px);
326
+ height: rem(16px);
327
+ transition: transform $chart-transition-duration $chart-transition-timing;
328
+ }
329
+
330
+ &:hover {
331
+ background-color: var(--#{$prefix}primary-bg-subtle);
332
+ color: var(--#{$prefix}primary-text-emphasis);
333
+ border-color: var(--#{$prefix}primary-border-subtle);
334
+ transform: translateY(-1px);
335
+ box-shadow: $box-shadow-sm;
336
+
337
+ &::before {
338
+ opacity: 0.1;
339
+ }
340
+
341
+ svg {
342
+ transform: scale(1.1);
343
+ }
344
+ }
345
+
346
+ &:focus-visible {
347
+ outline: 2px solid var(--#{$prefix}primary-6);
348
+ outline-offset: 2px;
349
+ border-color: var(--#{$prefix}primary-border-subtle);
350
+ }
351
+
352
+ &:active {
353
+ transform: translateY(0);
354
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
355
+
356
+ &::before {
357
+ opacity: 0.2;
358
+ }
359
+
360
+ svg {
361
+ transform: scale(0.95);
362
+ }
363
+ }
364
+
365
+ &:disabled {
366
+ opacity: 0.4;
367
+ cursor: not-allowed;
368
+ pointer-events: none;
369
+ transform: none;
370
+ box-shadow: none;
371
+
372
+ &:hover {
373
+ transform: none;
374
+ box-shadow: none;
375
+ background-color: transparent;
376
+ border-color: transparent;
377
+ }
378
+ }
379
+
380
+ // Variant styles
381
+ &--primary {
382
+ background-color: var(--#{$prefix}primary-6);
383
+ color: white;
384
+ border-color: var(--#{$prefix}primary-6);
385
+
386
+ &:hover {
387
+ background-color: var(--#{$prefix}primary-7);
388
+ border-color: var(--#{$prefix}primary-7);
389
+ }
390
+
391
+ &:active {
392
+ background-color: var(--#{$prefix}primary-8);
393
+ }
394
+ }
395
+
396
+ &--success {
397
+ background-color: var(--#{$prefix}success-6);
398
+ color: white;
399
+ border-color: var(--#{$prefix}success-6);
400
+
401
+ &:hover {
402
+ background-color: var(--#{$prefix}success-7);
403
+ border-color: var(--#{$prefix}success-7);
404
+ }
405
+ }
406
+
407
+ &--warning {
408
+ background-color: var(--#{$prefix}warning-6);
409
+ color: white;
410
+ border-color: var(--#{$prefix}warning-6);
411
+
412
+ &:hover {
413
+ background-color: var(--#{$prefix}warning-7);
414
+ border-color: var(--#{$prefix}warning-7);
415
+ }
416
+ }
417
+
418
+ &--danger {
419
+ background-color: var(--#{$prefix}error-6);
420
+ color: white;
421
+ border-color: var(--#{$prefix}error-6);
422
+
423
+ &:hover {
424
+ background-color: var(--#{$prefix}error-7);
425
+ border-color: var(--#{$prefix}error-7);
426
+ }
427
+ }
428
+ }
429
+
430
+ &__export-group {
431
+ position: relative;
432
+ display: flex;
433
+ align-items: center;
434
+ gap: map.get($spacing-sizes, 1);
435
+
436
+ &:hover {
437
+ #{$root}__export-dropdown {
438
+ opacity: 1;
439
+ visibility: visible;
440
+ transform: translateY(0);
441
+ }
442
+ }
443
+ }
444
+
445
+ &__export-dropdown {
446
+ position: absolute;
447
+ top: 100%;
448
+ right: 0;
449
+ margin-top: map.get($spacing-sizes, 1);
450
+ background: var(--#{$prefix}primary-bg-default);
451
+ border: 1px solid var(--#{$prefix}primary-border-subtle);
452
+ border-radius: $border-radius-md;
453
+ box-shadow: $box-shadow-lg;
454
+ padding: map.get($spacing-sizes, 1);
455
+ min-width: rem(120px);
456
+ z-index: 1000;
457
+ opacity: 0;
458
+ visibility: hidden;
459
+ transform: translateY(-8px);
460
+ transition: all $chart-transition-duration $chart-transition-timing;
461
+ backdrop-filter: blur(8px);
462
+ }
463
+
464
+ &__export-option {
465
+ display: block;
466
+ width: 100%;
467
+ padding: map.get($spacing-sizes, 2) map.get($spacing-sizes, 3);
468
+ border: none;
469
+ background: transparent;
470
+ color: var(--#{$prefix}primary-text-emphasis);
471
+ font-size: rem(12px);
472
+ font-weight: $font-weight-medium;
473
+ text-align: left;
474
+ border-radius: $border-radius-sm;
475
+ cursor: pointer;
476
+ transition: all $chart-transition-duration $chart-transition-timing;
477
+ text-transform: uppercase;
478
+ letter-spacing: 0.5px;
479
+
480
+ &:hover {
481
+ background-color: var(--#{$prefix}primary-bg-subtle);
482
+ color: var(--#{$prefix}primary-text-emphasis);
483
+ }
484
+
485
+ &:focus-visible {
486
+ outline: 2px solid var(--#{$prefix}primary-6);
487
+ outline-offset: -2px;
488
+ }
489
+
490
+ &:disabled {
491
+ opacity: 0.4;
492
+ cursor: not-allowed;
493
+ pointer-events: none;
494
+ }
495
+
496
+ &:not(:last-child) {
497
+ margin-bottom: map.get($spacing-sizes, 1);
498
+ }
499
+ }
500
+
501
+ &__content {
502
+ flex: 1;
503
+ position: relative;
504
+ padding: var(--#{$prefix}chart-padding);
505
+ display: flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ min-height: $chart-canvas-min-height;
509
+
510
+ &::before {
511
+ content: '';
512
+ position: absolute;
513
+ top: 0;
514
+ left: 0;
515
+ right: 0;
516
+ bottom: 0;
517
+ background-image: radial-gradient(
518
+ circle at 1px 1px,
519
+ var(--#{$prefix}primary-border-subtle) 1px,
520
+ transparent 0
521
+ );
522
+ background-size: $chart-pattern-size $chart-pattern-size;
523
+ opacity: $chart-pattern-opacity;
524
+ pointer-events: none;
525
+ z-index: 0;
526
+ }
527
+
528
+ &::after {
529
+ content: '';
530
+ position: absolute;
531
+ inset: 0;
532
+ background: linear-gradient(
533
+ 135deg,
534
+ rgba(255, 255, 255, 0.02) 0%,
535
+ transparent 50%,
536
+ rgba(0, 0, 0, 0.02) 100%
537
+ );
538
+ pointer-events: none;
539
+ z-index: 1;
540
+ }
541
+ }
542
+
543
+ &__canvas {
544
+ width: 100%;
545
+ height: 100%;
546
+ position: relative;
547
+ overflow: hidden;
548
+ border-radius: $border-radius-sm;
549
+ z-index: 2;
550
+
551
+ svg {
552
+ width: 100%;
553
+ height: 100%;
554
+ shape-rendering: geometricPrecision;
555
+ text-rendering: optimizeLegibility;
556
+ image-rendering: -webkit-optimize-contrast;
557
+ image-rendering: crisp-edges;
558
+ }
559
+
560
+ canvas {
561
+ width: 100%;
562
+ height: 100%;
563
+ image-rendering: -webkit-optimize-contrast;
564
+ image-rendering: crisp-edges;
565
+ }
566
+ }
567
+
568
+ // Enhanced interactive features
569
+ &__crosshair {
570
+ pointer-events: none;
571
+
572
+ line,
573
+ &-line {
574
+ stroke: $chart-primary-border;
575
+ stroke-width: 1;
576
+ stroke-dasharray: 4, 4;
577
+ opacity: 0.7;
578
+
579
+ &--vertical,
580
+ &--horizontal {
581
+ opacity: 0.7;
582
+ }
583
+ }
584
+ }
585
+
586
+ &__zoom-indicator {
587
+ position: absolute;
588
+ top: 10px;
589
+ right: 10px;
590
+ background: rgba(0, 0, 0, 0.8);
591
+ color: white;
592
+ padding: 4px 8px;
593
+ border-radius: $border-radius-sm;
594
+ font-size: $font-size-xs;
595
+ font-weight: $font-weight-medium;
596
+ pointer-events: none;
597
+ z-index: 10;
598
+ }
599
+
600
+ &__navigator {
601
+ opacity: 0.8;
602
+
603
+ rect {
604
+ fill: rgba(0, 0, 0, 0.05);
605
+ stroke: var(--#{$prefix}gray-3);
606
+ stroke-width: 1;
607
+ }
608
+
609
+ path {
610
+ stroke-width: 1;
611
+ fill: none;
612
+ opacity: 0.6;
613
+ }
614
+ }
615
+
616
+ &__real-time-indicator {
617
+ position: absolute;
618
+ top: 10px;
619
+ left: 10px;
620
+ display: flex;
621
+ align-items: center;
622
+ gap: 6px;
623
+ background: var(--#{$prefix}success-bg-subtle);
624
+ color: var(--#{$prefix}success-text-emphasis);
625
+ padding: 4px 8px;
626
+ border-radius: $border-radius-sm;
627
+ font-size: $font-size-xs;
628
+ font-weight: $font-weight-medium;
629
+ border: 1px solid var(--#{$prefix}success-border-subtle);
630
+
631
+ &::before {
632
+ content: '';
633
+ width: 6px;
634
+ height: 6px;
635
+ background: var(--#{$prefix}success-6);
636
+ border-radius: 50%;
637
+ animation: chart-pulse-dot 2s ease-in-out infinite;
638
+ }
639
+ }
640
+
641
+ &__legend {
642
+ display: flex;
643
+ flex-wrap: wrap;
644
+ gap: $chart-legend-spacer;
645
+ padding: var(--#{$prefix}chart-padding);
646
+ border-top: var(--#{$prefix}chart-border-width) solid var(--#{$prefix}brand-border-subtle);
647
+ z-index: 2;
648
+ }
649
+
650
+ &__legend-item {
651
+ display: flex;
652
+ align-items: center;
653
+ gap: $chart-legend-item-spacer;
654
+ cursor: pointer;
655
+ padding: map.get($spacing-sizes, 2) map.get($spacing-sizes, 3);
656
+ border-radius: $border-radius-md;
657
+ border: var(--#{$prefix}chart-border-width) solid transparent;
658
+ background-color: transparent;
659
+ transition: all $chart-transition-duration $chart-transition-timing;
660
+ user-select: none;
661
+ position: relative;
662
+ overflow: hidden;
663
+
664
+ &::before {
665
+ content: '';
666
+ position: absolute;
667
+ inset: 0;
668
+ background: var(--#{$prefix}secondary-bg-subtle);
669
+ opacity: 0;
670
+ transition: opacity $chart-transition-duration $chart-transition-timing;
671
+ }
672
+
673
+ &:hover {
674
+ background-color: var(--#{$prefix}secondary-bg-subtle);
675
+ border-color: var(--#{$prefix}primary-border-subtle);
676
+ transform: translateY(-1px);
677
+ box-shadow: $box-shadow-sm;
678
+
679
+ &::before {
680
+ opacity: 1;
681
+ }
682
+ }
683
+
684
+ &:focus-visible {
685
+ @include focus-ring;
686
+ }
687
+
688
+ &:active {
689
+ transform: translateY(0);
690
+ }
691
+
692
+ &[data-visible='false'] {
693
+ opacity: 0.4;
694
+ filter: grayscale(60%);
695
+
696
+ #{$root}__legend-label {
697
+ text-decoration: line-through;
698
+ }
699
+
700
+ #{$root}__legend-color {
701
+ opacity: 0.3;
702
+ filter: grayscale(100%);
703
+ }
704
+ }
705
+ }
706
+
707
+ &__legend-color {
708
+ width: $chart-legend-color-size;
709
+ height: $chart-legend-color-size;
710
+ border-radius: $border-radius-sm;
711
+ border: var(--#{$prefix}chart-border-width) solid var(--#{$prefix}primary-border-subtle);
712
+ flex-shrink: 0;
713
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
714
+ transition: all $chart-transition-duration $chart-transition-timing;
715
+ position: relative;
716
+ }
717
+
718
+ &__legend-label {
719
+ color: var(--#{$prefix}primary-text-emphasis);
720
+ font-weight: $font-weight-medium;
721
+ letter-spacing: -0.01em;
722
+ transition: color $chart-transition-duration $chart-transition-timing;
723
+ position: relative;
724
+ z-index: 1;
725
+ }
726
+
727
+ &__tooltip {
728
+ position: fixed;
729
+ top: 0;
730
+ left: 0;
731
+ backdrop-filter: blur($chart-tooltip-backdrop-blur);
732
+ border-radius: $chart-tooltip-border-radius;
733
+ padding: $chart-tooltip-padding-y $chart-tooltip-padding-x;
734
+ box-shadow: var(--atomix-box-shadow);
735
+ font-size: $chart-tooltip-font-size;
736
+ color: $chart-primary-text;
737
+ pointer-events: none;
738
+ z-index: 1070;
739
+ max-width: $chart-tooltip-max-width;
740
+ min-width: $chart-tooltip-min-width;
741
+ // background: $chart-primary-bg;
742
+ border: 1px solid $chart-primary-border;
743
+ opacity: 1;
744
+
745
+ &-title {
746
+ font-weight: $font-weight-bold;
747
+ margin-bottom: map.get($spacing-sizes, 2);
748
+ color: $chart-primary-text;
749
+ font-size: $font-size-sm;
750
+ }
751
+
752
+ &-content {
753
+ display: flex;
754
+ flex-direction: column;
755
+ gap: map.get($spacing-sizes, 1);
756
+ }
757
+
758
+ &-dataset {
759
+ display: flex;
760
+ align-items: center;
761
+ gap: map.get($spacing-sizes, 2);
762
+ }
763
+
764
+ &-color-indicator {
765
+ width: 12px;
766
+ height: 12px;
767
+ border-radius: 50%;
768
+ flex-shrink: 0;
769
+ }
770
+
771
+ &-dataset-label {
772
+ color: $chart-secondary-text;
773
+ font-size: $font-size-xs;
774
+ }
775
+
776
+ &-value {
777
+ font-weight: $font-weight-semibold;
778
+ color: $chart-primary-text;
779
+ font-size: $font-size-xs;
780
+ }
781
+
782
+ &-metadata {
783
+ margin-top: map.get($spacing-sizes, 2);
784
+ padding-top: map.get($spacing-sizes, 2);
785
+ border-top: 1px solid $chart-primary-border;
786
+ }
787
+
788
+ &-metadata-item {
789
+ display: flex;
790
+ justify-content: space-between;
791
+ font-size: $font-size-xs;
792
+ margin-bottom: map.get($spacing-sizes, 1);
793
+
794
+ &:last-child {
795
+ margin-bottom: 0;
796
+ }
797
+ }
798
+
799
+ &-metadata-key {
800
+ color: $chart-secondary-text;
801
+ }
802
+
803
+ &-metadata-value {
804
+ color: $chart-primary-text;
805
+ font-weight: $font-weight-medium;
806
+ }
807
+ }
808
+
809
+ &__axis {
810
+ position: relative;
811
+ z-index: 55;
812
+
813
+ &--x {
814
+ text-anchor: middle;
815
+ dominant-baseline: hanging;
816
+ }
817
+
818
+ &--y {
819
+ text-anchor: end;
820
+ dominant-baseline: middle;
821
+ }
822
+ }
823
+
824
+ &__axis-line {
825
+ stroke: $chart-primary-border;
826
+ stroke-width: $chart-axis-line-stroke-width;
827
+ opacity: $chart-axis-line-opacity;
828
+ transition: opacity $chart-transition-duration $chart-transition-timing;
829
+
830
+ &--x,
831
+ &--y {
832
+ stroke-width: 2;
833
+ }
834
+
835
+ &:hover {
836
+ opacity: 0.8;
837
+ }
838
+ }
839
+
840
+ &__tick-line {
841
+ stroke: $chart-primary-border;
842
+ stroke-width: 1;
843
+ }
844
+
845
+ &__tick-label {
846
+ font-size: $font-size-xs;
847
+ fill: $chart-secondary-text;
848
+ }
849
+
850
+ &__axis-label {
851
+ font-size: $chart-axis-label-font-size;
852
+ font-weight: $chart-axis-label-font-weight;
853
+ fill: $chart-axis-label-color;
854
+ text-anchor: middle;
855
+ }
856
+
857
+ &__plot-area {
858
+ fill: rgba(248, 250, 252, 0.5);
859
+ stroke: $chart-primary-border;
860
+ stroke-width: 1;
861
+ }
862
+
863
+ &__value-label {
864
+ font-size: $font-size-xs;
865
+ fill: $chart-primary-text;
866
+ pointer-events: none;
867
+ }
868
+
869
+ &__data-label {
870
+ font-size: $font-size-xs;
871
+ fill: $chart-secondary-text;
872
+ pointer-events: none;
873
+ }
874
+
875
+ &__grid {
876
+ stroke: $chart-primary-border;
877
+ stroke-width: $chart-grid-stroke-width;
878
+ stroke-dasharray: 2, 4;
879
+ // opacity: $chart-grid-opacity;
880
+ transition: opacity $chart-transition-duration $chart-transition-timing;
881
+
882
+ &--major {
883
+ stroke-width: $chart-grid-major-stroke-width;
884
+ stroke-dasharray: none;
885
+ opacity: $chart-grid-major-opacity;
886
+ }
887
+
888
+ &--minor {
889
+ opacity: $chart-grid-minor-opacity;
890
+ }
891
+
892
+ &--zero {
893
+ stroke-width: $chart-grid-zero-stroke-width;
894
+ stroke-dasharray: none;
895
+ opacity: $chart-grid-zero-opacity;
896
+ }
897
+
898
+ &:hover {
899
+ opacity: 0.6;
900
+ }
901
+ }
902
+
903
+ &__data-point {
904
+ cursor: pointer;
905
+ transition: all $chart-transition-duration $chart-transition-timing !important;
906
+ transform-origin: center center;
907
+
908
+ &:hover {
909
+ opacity: 0.8;
910
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
911
+ }
912
+
913
+ &:focus-visible {
914
+ outline: 2px solid var(--#{$prefix}primary-border-subtle);
915
+ outline-offset: 2px;
916
+ }
917
+
918
+ &:active {
919
+ transform: scale(1.05);
920
+ }
921
+
922
+ &[data-highlighted='true'] {
923
+ transform: scale(1.2);
924
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
925
+ z-index: 10;
926
+
927
+ animation: chart-glow 2s ease-in-out infinite;
928
+ }
929
+
930
+ &[data-selected='true'] {
931
+ stroke: var(--#{$prefix}primary-border-subtle);
932
+ stroke-width: 2;
933
+ filter: drop-shadow(0 0 0 2px var(--#{$prefix}primary-border-subtle));
934
+ }
935
+
936
+ &[data-animated='true'] {
937
+ animation: chart-scale-in 0.5s ease-out;
938
+ }
939
+ }
940
+
941
+ &__loading {
942
+ display: flex;
943
+ flex-direction: column;
944
+ align-items: center;
945
+ justify-content: center;
946
+ gap: map.get($spacing-sizes, 4);
947
+ color: var(--#{$prefix}secondary-text-emphasis);
948
+ font-size: $font-size-sm;
949
+ min-height: $chart-canvas-min-height;
950
+
951
+ animation: chart-fade-in 0.6s ease-out;
952
+ }
953
+
954
+ &__loading-spinner {
955
+ width: $chart-loading-spinner-size;
956
+ height: $chart-loading-spinner-size;
957
+ border: 3px solid var(--#{$prefix}primary-border-subtle);
958
+ border-top: 3px solid var(--#{$prefix}primary-text-emphasis);
959
+ border-radius: 50%;
960
+ animation: chart-spin 1.2s $chart-transition-timing infinite;
961
+ }
962
+
963
+ &__loading-text {
964
+ font-weight: $font-weight-medium;
965
+ opacity: 0.8;
966
+ animation: chart-pulse 2s ease-in-out infinite;
967
+ }
968
+
969
+ &__error {
970
+ display: flex;
971
+ flex-direction: column;
972
+ align-items: center;
973
+ justify-content: center;
974
+ gap: map.get($spacing-sizes, 3);
975
+ color: var(--#{$prefix}error-text-emphasis);
976
+ font-size: $font-size-sm;
977
+ text-align: center;
978
+ padding: map.get($spacing-sizes, 8);
979
+ min-height: $chart-canvas-min-height;
980
+ background-color: var(--#{$prefix}error-bg-subtle);
981
+ border-radius: $border-radius-md;
982
+ border: var(--#{$prefix}chart-border-width) solid var(--#{$prefix}error-border-subtle);
983
+
984
+ animation: chart-fade-in 0.6s ease-out;
985
+ }
986
+
987
+ &__empty {
988
+ display: flex;
989
+ flex-direction: column;
990
+ align-items: center;
991
+ justify-content: center;
992
+ gap: map.get($spacing-sizes, 4);
993
+ color: var(--#{$prefix}secondary-text-emphasis);
994
+ font-size: $font-size-sm;
995
+ text-align: center;
996
+ padding: map.get($spacing-sizes, 8);
997
+ min-height: $chart-canvas-min-height;
998
+ opacity: 0.6;
999
+
1000
+ animation: chart-fade-in 0.6s ease-out;
1001
+ }
1002
+
1003
+ &--line {
1004
+ #{$root}__canvas {
1005
+ .line-path,
1006
+ #{$root}__line-path {
1007
+ fill: none;
1008
+ stroke-width: $chart-line-width;
1009
+ stroke-linecap: round;
1010
+ stroke-linejoin: round;
1011
+ transition: all $chart-transition-duration $chart-transition-timing;
1012
+ filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
1013
+
1014
+ stroke-dasharray: 1000;
1015
+ stroke-dashoffset: 1000;
1016
+ animation: chart-draw-line 2s ease-out forwards;
1017
+
1018
+ &:hover {
1019
+ stroke-width: $chart-line-width-hover;
1020
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
1021
+ }
1022
+ }
1023
+
1024
+ .trend-line {
1025
+ stroke-dasharray: 5, 5;
1026
+ opacity: 0.7;
1027
+ animation: chart-dash-flow 2s linear infinite;
1028
+ }
1029
+
1030
+ .moving-average {
1031
+ stroke-dasharray: 4, 4;
1032
+ opacity: 0.6;
1033
+ stroke-width: 1;
1034
+ fill: none;
1035
+ }
1036
+
1037
+ .area-path,
1038
+ #{$root}__area-path {
1039
+ opacity: $chart-area-opacity;
1040
+ transition: opacity $chart-transition-duration $chart-transition-timing;
1041
+ animation: chart-area-fade 1.5s ease-out;
1042
+
1043
+ &:hover {
1044
+ opacity: $chart-area-opacity-hover;
1045
+ }
1046
+ }
1047
+
1048
+ .chart-point-label {
1049
+ font-size: $font-size-xs;
1050
+ font-weight: $font-weight-semibold;
1051
+ text-anchor: middle;
1052
+ dominant-baseline: middle;
1053
+ pointer-events: none;
1054
+ opacity: 0;
1055
+ transition: opacity 0.2s ease;
1056
+
1057
+ &.visible {
1058
+ opacity: 1;
1059
+ }
1060
+ }
1061
+
1062
+ .data-point {
1063
+ r: $chart-data-point-radius;
1064
+ transition: all $chart-transition-duration $chart-transition-timing;
1065
+ cursor: pointer;
1066
+
1067
+ &:hover {
1068
+ r: $chart-data-point-radius-hover;
1069
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
1070
+ }
1071
+
1072
+ &[data-highlighted='true'] {
1073
+ r: $chart-data-point-radius-highlighted;
1074
+ stroke-width: 3;
1075
+ }
1076
+
1077
+ &:focus-visible {
1078
+ outline: 2px solid $chart-focus-outline-color;
1079
+ outline-offset: 2px;
1080
+ }
1081
+ }
1082
+ }
1083
+ }
1084
+
1085
+ &--area {
1086
+ #{$root}__canvas {
1087
+ .area-path {
1088
+ opacity: 0.3;
1089
+ transition: opacity $chart-transition-duration $chart-transition-timing;
1090
+
1091
+ animation: chart-area-fade 1.5s ease-out;
1092
+
1093
+ &:hover {
1094
+ opacity: 0.45;
1095
+ }
1096
+ }
1097
+
1098
+ .line-path {
1099
+ stroke-width: 2;
1100
+ opacity: 0.9;
1101
+ transition: all $chart-transition-duration $chart-transition-timing;
1102
+
1103
+ animation: chart-draw-line 2s ease-out;
1104
+
1105
+ &:hover {
1106
+ stroke-width: 3;
1107
+ opacity: 1;
1108
+ }
1109
+ }
1110
+ }
1111
+ }
1112
+
1113
+ &--bar,
1114
+ &--horizontal-bar {
1115
+ #{$root}__canvas {
1116
+ .bar,
1117
+ #{$root}__bar {
1118
+ transition: all $chart-transition-duration $chart-transition-timing;
1119
+ cursor: pointer;
1120
+ filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
1121
+ animation: chart-bar-grow 0.8s ease-out;
1122
+ opacity: 1;
1123
+
1124
+ &:hover,
1125
+ &--hovered {
1126
+ opacity: $chart-bar-opacity-hover;
1127
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
1128
+ }
1129
+
1130
+ &:focus-visible {
1131
+ outline: 2px solid $chart-primary-border;
1132
+ outline-offset: 2px;
1133
+ }
1134
+
1135
+ &[data-animated='true'] {
1136
+ animation: chart-bar-grow 0.8s ease-out;
1137
+ }
1138
+ }
1139
+
1140
+ .bar-group {
1141
+ .bar {
1142
+ animation-delay: calc(var(--bar-index) * 0.1s);
1143
+ }
1144
+ }
1145
+
1146
+ .bar-value-label,
1147
+ #{$root}__bar-value-label {
1148
+ font-size: $font-size-xs;
1149
+ font-weight: $font-weight-medium;
1150
+ fill: $chart-primary-text;
1151
+ text-anchor: middle;
1152
+ opacity: 1;
1153
+ transition: opacity $chart-transition-duration $chart-transition-timing;
1154
+ font-variant-numeric: tabular-nums;
1155
+ pointer-events: none;
1156
+
1157
+ &.visible {
1158
+ opacity: 1;
1159
+ }
1160
+ }
1161
+
1162
+ .bar-gradient {
1163
+ stop {
1164
+ transition: stop-opacity 0.3s ease;
1165
+ }
1166
+ }
1167
+ }
1168
+ }
1169
+
1170
+ &--bar {
1171
+ #{$root}__canvas .bar {
1172
+ transform-origin: bottom center;
1173
+
1174
+ animation: chart-bar-grow 0.8s ease-out;
1175
+
1176
+ &:hover {
1177
+ transform: scaleY(1.05);
1178
+ }
1179
+ }
1180
+ }
1181
+
1182
+ &--horizontal-bar {
1183
+ #{$root}__canvas .bar {
1184
+ transform-origin: left center;
1185
+
1186
+ animation: chart-bar-grow-horizontal 0.8s ease-out;
1187
+
1188
+ &:hover {
1189
+ transform: scaleX(1.05);
1190
+ }
1191
+ }
1192
+ }
1193
+
1194
+ &--pie,
1195
+ &--donut,
1196
+ &--doughnut {
1197
+ #{$root}__canvas {
1198
+ .pie-slice,
1199
+ .donut-slice,
1200
+ #{$root}__pie-slice,
1201
+ #{$root}__donut-slice {
1202
+ transition: all $chart-pie-transition-duration $chart-transition-timing;
1203
+ stroke: $chart-primary-bg;
1204
+ stroke-width: $chart-pie-stroke-width;
1205
+ cursor: pointer;
1206
+ transform-origin: center;
1207
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
1208
+ opacity: 1;
1209
+
1210
+ animation: chart-pie-draw 1.5s ease-out;
1211
+
1212
+ &:hover,
1213
+ &--hovered {
1214
+ opacity: 0.8;
1215
+ transform: scale(1.05);
1216
+ stroke-width: $chart-pie-stroke-width-hover;
1217
+ filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
1218
+ }
1219
+
1220
+ &--selected {
1221
+ stroke: $chart-primary-border;
1222
+ stroke-width: 3;
1223
+ }
1224
+
1225
+ &:focus-visible {
1226
+ outline: 2px solid $chart-primary-border;
1227
+ outline-offset: 4px;
1228
+ }
1229
+ }
1230
+
1231
+ .pie-label,
1232
+ #{$root}__pie-label,
1233
+ #{$root}__donut-label {
1234
+ font-size: $font-size-xs;
1235
+ font-weight: $font-weight-semibold;
1236
+ fill: $chart-primary-text;
1237
+ text-anchor: middle;
1238
+ pointer-events: none;
1239
+ transition: all $chart-transition-duration $chart-transition-timing;
1240
+ font-variant-numeric: tabular-nums;
1241
+ }
1242
+ }
1243
+ }
1244
+
1245
+ &--donut,
1246
+ &--doughnut {
1247
+ #{$root}__canvas {
1248
+ .donut-slice {
1249
+ animation: chart-donut-draw 1.5s ease-out;
1250
+ }
1251
+
1252
+ .donut-center,
1253
+ #{$root}__donut-center {
1254
+ transition: fill $chart-transition-duration $chart-transition-timing;
1255
+ }
1256
+
1257
+ #{$root}__donut-center-bg {
1258
+ fill: $chart-primary-bg;
1259
+ }
1260
+
1261
+ .donut-center-label,
1262
+ #{$root}__donut-center-label {
1263
+ font-size: $font-size-sm;
1264
+ font-weight: $font-weight-medium;
1265
+ fill: $chart-secondary-text;
1266
+ text-anchor: middle;
1267
+ dominant-baseline: central;
1268
+ font-variant-numeric: tabular-nums;
1269
+ }
1270
+
1271
+ #{$root}__donut-center-value {
1272
+ font-size: $font-size-xl;
1273
+ font-weight: $font-weight-bold;
1274
+ fill: $chart-primary-text;
1275
+ text-anchor: middle;
1276
+ dominant-baseline: central;
1277
+ font-variant-numeric: tabular-nums;
1278
+ }
1279
+ }
1280
+ }
1281
+
1282
+ &--scatter {
1283
+ #{$root}__canvas {
1284
+ .scatter-point,
1285
+ #{$root}__scatter-point {
1286
+ stroke: $chart-primary-border;
1287
+ stroke-width: 1;
1288
+ transition: all $chart-transition-duration $chart-transition-timing;
1289
+ cursor: pointer;
1290
+ filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
1291
+ animation: chart-fade-in 0.6s ease-out;
1292
+
1293
+ &:hover {
1294
+ filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
1295
+ }
1296
+
1297
+ &:focus-visible {
1298
+ outline: 2px solid $chart-primary-border;
1299
+ outline-offset: 2px;
1300
+ }
1301
+ }
1302
+
1303
+ #{$root}__scatter-label {
1304
+ font-size: $font-size-xs;
1305
+ fill: $chart-primary-text;
1306
+ pointer-events: none;
1307
+ }
1308
+ }
1309
+ }
1310
+
1311
+ &--bubble {
1312
+ #{$root}__canvas {
1313
+ #{$root}__bubble {
1314
+ stroke: $chart-primary-bg;
1315
+ stroke-width: 2;
1316
+ cursor: pointer;
1317
+ transition: all $chart-transition-duration $chart-transition-timing;
1318
+
1319
+ &--animated {
1320
+ transition: all 1s ease-out;
1321
+ }
1322
+
1323
+ &:hover {
1324
+ // transform: scale(1.1);
1325
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
1326
+ }
1327
+ }
1328
+
1329
+ #{$root}__bubble-label {
1330
+ font-size: $font-size-xs;
1331
+ font-weight: $font-weight-medium;
1332
+ fill: $chart-tertiary-text;
1333
+ pointer-events: none;
1334
+
1335
+ &--center {
1336
+ fill: $chart-invert-text;
1337
+ font-weight: $font-weight-bold;
1338
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
1339
+ }
1340
+ }
1341
+ }
1342
+ }
1343
+
1344
+ &--radar {
1345
+ #{$root}__canvas {
1346
+ #{$root}__radar-grid {
1347
+ stroke: $chart-primary-border;
1348
+ stroke-width: 1;
1349
+ opacity: 0.3;
1350
+ }
1351
+
1352
+ #{$root}__radar-axis {
1353
+ stroke: $chart-primary-border;
1354
+ stroke-width: 1;
1355
+ opacity: 0.5;
1356
+ }
1357
+
1358
+ #{$root}__radar-label {
1359
+ font-size: $font-size-xs;
1360
+ fill: $chart-secondary-text;
1361
+ }
1362
+
1363
+ #{$root}__radar-fill {
1364
+ transition: opacity $chart-transition-duration $chart-transition-timing;
1365
+
1366
+ &:hover {
1367
+ opacity: 0.5 !important;
1368
+ }
1369
+ }
1370
+
1371
+ #{$root}__radar-line {
1372
+ fill: none;
1373
+ transition: stroke-width $chart-transition-duration $chart-transition-timing;
1374
+
1375
+ &:hover {
1376
+ stroke-width: 3 !important;
1377
+ }
1378
+ }
1379
+
1380
+ #{$root}__radar-point {
1381
+ stroke: $chart-primary-bg;
1382
+ stroke-width: 2;
1383
+ cursor: pointer;
1384
+ transition: all $chart-transition-duration $chart-transition-timing;
1385
+
1386
+ &:hover {
1387
+ transform: scale(1.3);
1388
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
1389
+ }
1390
+ }
1391
+ }
1392
+ }
1393
+
1394
+ &--candlestick {
1395
+ #{$root}__canvas {
1396
+ .candlestick,
1397
+ #{$root}__candlestick {
1398
+ stroke-width: 1;
1399
+ cursor: pointer;
1400
+ transition: all $chart-transition-duration $chart-transition-timing;
1401
+ animation: chart-fade-in 0.6s ease-out;
1402
+
1403
+ &--bullish {
1404
+ opacity: 0.8;
1405
+ }
1406
+
1407
+ &--bearish {
1408
+ opacity: 1;
1409
+ }
1410
+
1411
+ &:hover {
1412
+ opacity: 0.8;
1413
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
1414
+ }
1415
+ }
1416
+
1417
+ #{$root}__candlestick-highlight {
1418
+ stroke-width: 2;
1419
+ opacity: 0.5;
1420
+ }
1421
+
1422
+ .wick,
1423
+ #{$root}__wick {
1424
+ stroke-width: $chart-candlestick-wick-stroke-width;
1425
+ opacity: $chart-candlestick-wick-opacity;
1426
+
1427
+ &--hovered {
1428
+ stroke-width: 2;
1429
+ }
1430
+ }
1431
+
1432
+ #{$root}__moving-average {
1433
+ stroke-width: 2;
1434
+ opacity: 0.8;
1435
+ }
1436
+
1437
+ .volume-bar {
1438
+ opacity: $chart-volume-bar-opacity;
1439
+ transition: opacity $chart-transition-duration $chart-transition-timing;
1440
+
1441
+ &:hover {
1442
+ opacity: $chart-volume-bar-opacity-hover;
1443
+ }
1444
+ }
1445
+ }
1446
+ }
1447
+
1448
+ &--gauge {
1449
+ #{$root}__canvas {
1450
+ #{$root}__gauge-background {
1451
+ fill: $chart-secondary-bg;
1452
+ stroke: $chart-primary-border;
1453
+ stroke-width: 1;
1454
+ }
1455
+
1456
+ #{$root}__gauge-zone {
1457
+ stroke: $chart-primary-bg;
1458
+ stroke-width: 2;
1459
+ }
1460
+
1461
+ #{$root}__gauge-tick {
1462
+ &--major {
1463
+ stroke: $chart-secondary-text;
1464
+ stroke-width: 2;
1465
+ }
1466
+
1467
+ &--minor {
1468
+ stroke: $chart-tertiary-text;
1469
+ stroke-width: 1;
1470
+ }
1471
+ }
1472
+
1473
+ #{$root}__gauge-tick-label {
1474
+ font-size: $font-size-xs;
1475
+ fill: $chart-secondary-text;
1476
+ }
1477
+
1478
+ #{$root}__gauge-min-max-label {
1479
+ font-size: $font-size-sm;
1480
+ font-weight: $font-weight-bold;
1481
+ fill: $chart-secondary-text;
1482
+ }
1483
+
1484
+ #{$root}__gauge-needle {
1485
+ #{$root}__gauge-needle-line {
1486
+ stroke-width: 3;
1487
+ stroke-linecap: round;
1488
+ }
1489
+
1490
+ #{$root}__gauge-needle-center {
1491
+ stroke: $chart-primary-bg;
1492
+ stroke-width: 2;
1493
+ }
1494
+ }
1495
+
1496
+ #{$root}__gauge-value {
1497
+ font-size: $font-size-2xl;
1498
+ font-weight: $font-weight-bold;
1499
+ fill: $chart-primary-text;
1500
+ }
1501
+
1502
+ #{$root}__gauge-label {
1503
+ font-size: $font-size-sm;
1504
+ fill: $chart-secondary-text;
1505
+ }
1506
+ }
1507
+ }
1508
+
1509
+ &--funnel {
1510
+ #{$root}__canvas {
1511
+ #{$root}__funnel-segment {
1512
+ stroke: $chart-primary-bg;
1513
+ stroke-width: 2;
1514
+ cursor: pointer;
1515
+ transition: all $chart-transition-duration $chart-transition-timing;
1516
+
1517
+ &--animated {
1518
+ transition: all 1s ease-out;
1519
+ }
1520
+
1521
+ &:hover {
1522
+ opacity: 0.8;
1523
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
1524
+ }
1525
+ }
1526
+
1527
+ #{$root}__funnel-label {
1528
+ font-size: $font-size-sm;
1529
+ font-weight: $font-weight-bold;
1530
+ pointer-events: none;
1531
+
1532
+ &--inside {
1533
+ fill: $chart-invert-text;
1534
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
1535
+ }
1536
+
1537
+ &--outside {
1538
+ fill: $chart-primary-text;
1539
+ }
1540
+ }
1541
+
1542
+ #{$root}__funnel-value {
1543
+ font-size: $font-size-xs;
1544
+ pointer-events: none;
1545
+
1546
+ &--inside {
1547
+ fill: $chart-invert-text;
1548
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
1549
+ }
1550
+
1551
+ &--outside {
1552
+ fill: $chart-secondary-text;
1553
+ }
1554
+ }
1555
+
1556
+ #{$root}__funnel-conversion {
1557
+ font-size: $font-size-xs;
1558
+ fill: $chart-secondary-text;
1559
+ font-style: italic;
1560
+ }
1561
+ }
1562
+ }
1563
+
1564
+ &--heatmap {
1565
+ #{$root}__canvas {
1566
+ #{$root}__heatmap-axis-label {
1567
+ font-size: $font-size-xs;
1568
+ fill: var(--#{$prefix}gray-7);
1569
+ font-weight: $font-weight-medium;
1570
+ user-select: none;
1571
+ }
1572
+
1573
+ #{$root}__heatmap-cell {
1574
+ cursor: pointer;
1575
+ transition: all 0.2s ease;
1576
+ shape-rendering: crispEdges;
1577
+
1578
+ &--empty {
1579
+ fill: var(--#{$prefix}gray-2);
1580
+ stroke: var(--#{$prefix}gray-3);
1581
+ stroke-width: 0.5;
1582
+ opacity: 0.6;
1583
+ }
1584
+
1585
+ &--hovered {
1586
+ transform: scale(1.1);
1587
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
1588
+ z-index: 10;
1589
+ }
1590
+
1591
+ &:focus-visible {
1592
+ outline: 2px solid var(--#{$prefix}primary-6);
1593
+ outline-offset: 1px;
1594
+ }
1595
+ }
1596
+
1597
+ #{$root}__heatmap-value {
1598
+ font-size: 9px;
1599
+ font-weight: $font-weight-medium;
1600
+ pointer-events: none;
1601
+ user-select: none;
1602
+ font-variant-numeric: tabular-nums;
1603
+
1604
+ &--light {
1605
+ fill: white;
1606
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
1607
+ }
1608
+
1609
+ &--dark {
1610
+ fill: var(--#{$prefix}gray-8);
1611
+ }
1612
+ }
1613
+
1614
+ // Calendar variant styles
1615
+ &.c-chart--calendar {
1616
+ #{$root}__heatmap-cell {
1617
+ rx: 2;
1618
+ }
1619
+ }
1620
+
1621
+ // Grid variant styles
1622
+ &.c-chart--grid {
1623
+ #{$root}__heatmap-cell {
1624
+ rx: 4;
1625
+ }
1626
+ }
1627
+ }
1628
+ }
1629
+
1630
+ &--treemap {
1631
+ #{$root}__canvas {
1632
+ #{$root}__treemap-node {
1633
+ cursor: pointer;
1634
+ stroke: $chart-primary-bg;
1635
+ stroke-width: 1;
1636
+ transition: all $chart-transition-duration $chart-transition-timing;
1637
+
1638
+ &--animated {
1639
+ transition: all 750ms ease-out;
1640
+ }
1641
+
1642
+ &--hovered {
1643
+ opacity: 0.8;
1644
+ }
1645
+
1646
+ &--selected {
1647
+ stroke-width: 2;
1648
+ }
1649
+ }
1650
+
1651
+ #{$root}__treemap-label {
1652
+ font-size: $font-size-xs;
1653
+ font-weight: $font-weight-bold;
1654
+ fill: $chart-invert-text;
1655
+ pointer-events: none;
1656
+ }
1657
+
1658
+ #{$root}__treemap-value {
1659
+ font-size: $font-size-xs;
1660
+ fill: $chart-invert-text;
1661
+ opacity: 0.8;
1662
+ pointer-events: none;
1663
+ }
1664
+ }
1665
+ }
1666
+
1667
+ &--waterfall {
1668
+ #{$root}__canvas {
1669
+ #{$root}__waterfall-bar {
1670
+ stroke: $chart-primary-bg;
1671
+ stroke-width: 2;
1672
+ cursor: pointer;
1673
+ transition: all $chart-transition-duration $chart-transition-timing;
1674
+
1675
+ &--animated {
1676
+ transition: all 1s ease-out;
1677
+ }
1678
+
1679
+ &:hover {
1680
+ opacity: 0.8;
1681
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
1682
+ }
1683
+ }
1684
+
1685
+ #{$root}__waterfall-value {
1686
+ font-size: $font-size-xs;
1687
+ font-weight: $font-weight-bold;
1688
+ pointer-events: none;
1689
+
1690
+ &--center {
1691
+ fill: $chart-invert-text;
1692
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
1693
+ }
1694
+
1695
+ &--outside {
1696
+ fill: $chart-primary-text;
1697
+ }
1698
+ }
1699
+
1700
+ #{$root}__waterfall-connector {
1701
+ stroke-width: 2;
1702
+ opacity: 0.7;
1703
+ }
1704
+
1705
+ #{$root}__waterfall-cumulative-line {
1706
+ stroke-width: 3;
1707
+ stroke-linecap: round;
1708
+ stroke-linejoin: round;
1709
+ }
1710
+
1711
+ #{$root}__waterfall-cumulative-point {
1712
+ stroke: $chart-primary-bg;
1713
+ stroke-width: 2;
1714
+ }
1715
+ }
1716
+ }
1717
+ }
1718
+
1719
+ // Animations
1720
+ @keyframes chart-spin {
1721
+ 0% {
1722
+ transform: rotate(0deg);
1723
+ }
1724
+ 100% {
1725
+ transform: rotate(360deg);
1726
+ }
1727
+ }
1728
+
1729
+ @keyframes chart-shimmer {
1730
+ 0% {
1731
+ left: -100%;
1732
+ }
1733
+ 100% {
1734
+ left: 100%;
1735
+ }
1736
+ }
1737
+
1738
+ @keyframes chart-pulse {
1739
+ 0%,
1740
+ 100% {
1741
+ opacity: 0.8;
1742
+ }
1743
+ 50% {
1744
+ opacity: 1;
1745
+ }
1746
+ }
1747
+
1748
+ @keyframes chart-draw-line {
1749
+ 0% {
1750
+ stroke-dashoffset: 1000;
1751
+ }
1752
+ 100% {
1753
+ stroke-dashoffset: 0;
1754
+ }
1755
+ }
1756
+
1757
+ @keyframes chart-area-fade {
1758
+ 0% {
1759
+ opacity: 0;
1760
+ }
1761
+ 100% {
1762
+ opacity: 0.3;
1763
+ }
1764
+ }
1765
+
1766
+ @keyframes chart-bar-grow {
1767
+ 0% {
1768
+ transform: scaleY(0);
1769
+ }
1770
+ 100% {
1771
+ transform: scaleY(1);
1772
+ }
1773
+ }
1774
+
1775
+ @keyframes chart-bar-grow-horizontal {
1776
+ 0% {
1777
+ transform: scaleX(0);
1778
+ }
1779
+ 100% {
1780
+ transform: scaleX(1);
1781
+ }
1782
+ }
1783
+
1784
+ @keyframes chart-pie-draw {
1785
+ 0% {
1786
+ stroke-dasharray: 0 628;
1787
+ }
1788
+ 100% {
1789
+ stroke-dasharray: 628 628;
1790
+ }
1791
+ }
1792
+
1793
+ @keyframes chart-donut-draw {
1794
+ 0% {
1795
+ stroke-dasharray: 0 628;
1796
+ }
1797
+ 100% {
1798
+ stroke-dasharray: 628 628;
1799
+ }
1800
+ }
1801
+
1802
+ @keyframes chart-fade-in {
1803
+ 0% {
1804
+ opacity: 0;
1805
+ transform: translateY(10px);
1806
+ }
1807
+ 100% {
1808
+ opacity: 1;
1809
+ transform: translateY(0);
1810
+ }
1811
+ }
1812
+
1813
+ @keyframes chart-scale-in {
1814
+ 0% {
1815
+ opacity: 0;
1816
+ transform: scale(0.3);
1817
+ }
1818
+ 60% {
1819
+ opacity: 0.8;
1820
+ transform: scale(1.1);
1821
+ }
1822
+ 100% {
1823
+ opacity: 1;
1824
+ transform: scale(1);
1825
+ }
1826
+ }
1827
+
1828
+ @keyframes chart-slide-in {
1829
+ 0% {
1830
+ opacity: 0;
1831
+ transform: translateX(-20px);
1832
+ }
1833
+ 100% {
1834
+ opacity: 1;
1835
+ transform: translateX(0);
1836
+ }
1837
+ }
1838
+
1839
+ @keyframes chart-bubble-grow {
1840
+ 0% {
1841
+ transform: scale(0);
1842
+ }
1843
+ 100% {
1844
+ transform: scale(1);
1845
+ }
1846
+ }
1847
+
1848
+ @keyframes chart-dash-flow {
1849
+ 0% {
1850
+ stroke-dashoffset: 0;
1851
+ }
1852
+ 100% {
1853
+ stroke-dashoffset: 10;
1854
+ }
1855
+ }
1856
+
1857
+ @keyframes chart-glow {
1858
+ 0%,
1859
+ 100% {
1860
+ filter: drop-shadow(0 0 5px currentColor);
1861
+ }
1862
+ 50% {
1863
+ filter: drop-shadow(0 0 15px currentColor);
1864
+ }
1865
+ }
1866
+
1867
+ @keyframes chart-pulse-dot {
1868
+ 0%,
1869
+ 100% {
1870
+ opacity: 1;
1871
+ transform: scale(1);
1872
+ }
1873
+ 50% {
1874
+ opacity: 0.5;
1875
+ transform: scale(1.2);
1876
+ }
1877
+ }
1878
+
1879
+ @keyframes chart-zoom-in {
1880
+ 0% {
1881
+ transform: scale(0.8);
1882
+ opacity: 0;
1883
+ }
1884
+ 100% {
1885
+ transform: scale(1);
1886
+ opacity: 1;
1887
+ }
1888
+ }
1889
+
1890
+ @keyframes chart-slide-up {
1891
+ 0% {
1892
+ transform: translateY(20px);
1893
+ opacity: 0;
1894
+ }
1895
+ 100% {
1896
+ transform: translateY(0);
1897
+ opacity: 1;
1898
+ }
1899
+ }
1900
+
1901
+ // Responsive Design
1902
+ @media (max-width: $chart-mobile-breakpoint) {
1903
+ .c-chart {
1904
+ --#{$prefix}chart-min-height: #{map.get($spacing-sizes, 40)};
1905
+ border-radius: $border-radius-md;
1906
+
1907
+ &__header {
1908
+ flex-direction: column;
1909
+ align-items: flex-start;
1910
+ gap: map.get($spacing-sizes, 2);
1911
+ }
1912
+
1913
+ &__toolbar {
1914
+ width: 100%;
1915
+ justify-content: flex-end;
1916
+ padding: map.get($spacing-sizes, 2);
1917
+ gap: map.get($spacing-sizes, 2);
1918
+
1919
+ // Stack toolbar items on very small screens
1920
+ @media (max-width: 480px) {
1921
+ flex-wrap: wrap;
1922
+ justify-content: center;
1923
+ }
1924
+ }
1925
+
1926
+ &__action {
1927
+ width: rem(36px);
1928
+ height: rem(36px);
1929
+
1930
+ svg {
1931
+ width: rem(18px);
1932
+ height: rem(18px);
1933
+ }
1934
+ }
1935
+
1936
+ &__export-dropdown {
1937
+ position: fixed;
1938
+ top: 50%;
1939
+ left: 50%;
1940
+ transform: translate(-50%, -50%);
1941
+ margin-top: 0;
1942
+ min-width: rem(200px);
1943
+ max-width: 90vw;
1944
+ }
1945
+
1946
+ &__legend {
1947
+ flex-direction: column;
1948
+ gap: map.get($spacing-sizes, 2);
1949
+ }
1950
+
1951
+ &__legend-item {
1952
+ justify-content: space-between;
1953
+ width: 100%;
1954
+ }
1955
+
1956
+ &:hover {
1957
+ transform: none;
1958
+ }
1959
+ }
1960
+ }
1961
+
1962
+ @media (max-width: $chart-small-mobile-breakpoint) {
1963
+ .c-chart {
1964
+ --#{$prefix}chart-min-height: #{map.get($spacing-sizes, 36)};
1965
+ --#{$prefix}chart-padding: #{map.get($spacing-sizes, 2)};
1966
+ border-radius: $border-radius-sm;
1967
+
1968
+ &__title {
1969
+ font-size: $font-size-md;
1970
+ margin-bottom: map.get($spacing-sizes, 1);
1971
+ }
1972
+
1973
+ &__subtitle {
1974
+ font-size: $font-size-xs;
1975
+ }
1976
+
1977
+ &__toolbar {
1978
+ padding: map.get($spacing-sizes, 1);
1979
+ gap: map.get($spacing-sizes, 1);
1980
+ border-radius: $border-radius-sm;
1981
+ }
1982
+
1983
+ &__action {
1984
+ width: rem(28px);
1985
+ height: rem(28px);
1986
+ font-size: rem(12px);
1987
+
1988
+ svg {
1989
+ width: rem(14px);
1990
+ height: rem(14px);
1991
+ }
1992
+ }
1993
+
1994
+ &__export-option {
1995
+ padding: map.get($spacing-sizes, 1) map.get($spacing-sizes, 2);
1996
+ font-size: rem(11px);
1997
+ }
1998
+ }
1999
+ }
2000
+
2001
+ // Enhanced accessibility
2002
+ @media (prefers-reduced-motion: reduce) {
2003
+ .c-chart {
2004
+ transition: none;
2005
+
2006
+ &:hover {
2007
+ transform: none;
2008
+ }
2009
+
2010
+ * {
2011
+ animation-duration: 0.01s !important;
2012
+ transition-duration: 0.01s !important;
2013
+ }
2014
+
2015
+ &__real-time-indicator::before {
2016
+ animation: none;
2017
+ }
2018
+ }
2019
+ }
2020
+
2021
+ // Focus management for keyboard navigation
2022
+ .c-chart:focus-within {
2023
+ &__data-point:focus {
2024
+ outline: 2px solid var(--#{$prefix}primary-6);
2025
+ outline-offset: 2px;
2026
+ z-index: 10;
2027
+ }
2028
+
2029
+ &__canvas svg {
2030
+ outline: 2px solid var(--#{$prefix}primary-border-subtle);
2031
+ outline-offset: 2px;
2032
+ }
2033
+ }
2034
+
2035
+ @media (prefers-contrast: high) {
2036
+ .c-chart {
2037
+ border-width: 2px;
2038
+ background-color: white;
2039
+ color: black;
2040
+ backdrop-filter: none;
2041
+
2042
+ &__grid {
2043
+ stroke-width: 2;
2044
+ opacity: 0.8;
2045
+ stroke: black;
2046
+ }
2047
+
2048
+ &__title {
2049
+ color: black;
2050
+ }
2051
+
2052
+ &__data-point {
2053
+ stroke: black;
2054
+ stroke-width: 2;
2055
+ }
2056
+
2057
+ &__crosshair line {
2058
+ stroke: black;
2059
+ opacity: 1;
2060
+ }
2061
+
2062
+ &__zoom-indicator {
2063
+ background: black;
2064
+ color: white;
2065
+ border: 2px solid white;
2066
+ }
2067
+
2068
+ .line-path {
2069
+ stroke-width: 3 !important;
2070
+ }
2071
+
2072
+ .bar {
2073
+ stroke: black;
2074
+ stroke-width: 2;
2075
+ }
2076
+ }
2077
+ }
2078
+
2079
+ // Print styles
2080
+ @media print {
2081
+ .c-chart {
2082
+ break-inside: avoid;
2083
+ box-shadow: none;
2084
+ border: 2px solid black;
2085
+ background: white;
2086
+
2087
+ &__toolbar {
2088
+ display: none;
2089
+ }
2090
+
2091
+ &__crosshair,
2092
+ &__zoom-indicator,
2093
+ &__real-time-indicator {
2094
+ display: none;
2095
+ }
2096
+
2097
+ * {
2098
+ animation: none !important;
2099
+ transition: none !important;
2100
+ }
2101
+ }
2102
+ }