@shohojdhara/atomix 0.1.30 → 0.2.2

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