@dodlhuat/basix 1.1.1 → 1.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 (352) hide show
  1. package/README.md +706 -482
  2. package/css/accordion.scss +86 -87
  3. package/css/alert.scss +137 -137
  4. package/css/badge.scss +104 -0
  5. package/css/bottom-sheet.scss +192 -0
  6. package/css/breadcrumb.scss +158 -0
  7. package/css/button.scss +48 -0
  8. package/css/calendar.scss +957 -0
  9. package/css/card.scss +65 -65
  10. package/css/chart.scss +270 -157
  11. package/css/chat-bubbles.scss +134 -68
  12. package/css/chips.scss +109 -19
  13. package/css/colors.scss +32 -32
  14. package/css/context-menu.scss +182 -0
  15. package/css/datepicker.scss +336 -336
  16. package/css/defaults.scss +90 -90
  17. package/css/docs.scss +529 -0
  18. package/css/editor.scss +664 -461
  19. package/css/file-uploader.scss +1 -1
  20. package/css/flyout-menu.scss +361 -361
  21. package/css/form.scss +124 -0
  22. package/css/gallery.scss +65 -6
  23. package/css/grid.scss +41 -40
  24. package/css/group-picker.scss +345 -0
  25. package/css/guitar-chords.css +250 -250
  26. package/css/icons.scss +330 -330
  27. package/css/parameters.scss +3 -3
  28. package/css/placeholder.scss +33 -33
  29. package/css/popover.scss +206 -0
  30. package/css/progress.scss +76 -32
  31. package/css/properties.scss +51 -36
  32. package/css/push-menu.scss +302 -174
  33. package/css/reset.scss +39 -39
  34. package/css/scrollbar.scss +62 -5
  35. package/css/sidebar-nav.scss +92 -0
  36. package/css/spinner.scss +65 -65
  37. package/css/stepper.scss +248 -0
  38. package/css/style.css +4603 -273
  39. package/css/style.css.map +1 -1
  40. package/css/style.min.css +1 -1
  41. package/css/style.scss +51 -39
  42. package/css/table.scss +199 -199
  43. package/css/tabs.scss +154 -123
  44. package/css/timeline.scss +83 -38
  45. package/css/timepicker.scss +100 -5
  46. package/css/toast.scss +81 -81
  47. package/css/typography.scss +194 -161
  48. package/css/virtual-dropdown.scss +35 -29
  49. package/js/bottom-sheet.js +173 -0
  50. package/js/bottom-sheet.ts +222 -0
  51. package/js/calendar.js +532 -0
  52. package/js/calendar.ts +706 -0
  53. package/js/carousel.js +26 -13
  54. package/js/chart.js +573 -257
  55. package/js/chart.ts +692 -0
  56. package/js/code-viewer.js +10 -10
  57. package/js/code-viewer.ts +188 -188
  58. package/js/context-menu.js +212 -0
  59. package/js/context-menu.ts +252 -0
  60. package/js/datepicker.ts +627 -627
  61. package/js/docs-nav.js +204 -0
  62. package/js/dropdown.ts +179 -179
  63. package/js/editor.js +96 -38
  64. package/js/editor.ts +483 -425
  65. package/js/file-uploader.js +1 -0
  66. package/js/file-uploader.ts +1 -0
  67. package/js/flyout-menu.js +14 -14
  68. package/js/flyout-menu.ts +249 -249
  69. package/js/form-builder.js +106 -106
  70. package/js/gallery.js +13 -6
  71. package/js/gallery.ts +245 -236
  72. package/js/group-picker.js +342 -0
  73. package/js/group-picker.ts +447 -0
  74. package/js/guitar-chords.js +268 -268
  75. package/js/lazy-loader.js +121 -121
  76. package/js/modal.ts +166 -166
  77. package/js/popover.js +163 -0
  78. package/js/popover.ts +219 -0
  79. package/js/position.js +108 -0
  80. package/js/position.ts +111 -0
  81. package/js/push-menu.js +226 -113
  82. package/js/push-menu.ts +284 -145
  83. package/js/request.js +50 -50
  84. package/js/scroll.ts +47 -47
  85. package/js/scrollbar.js +13 -0
  86. package/js/scrollbar.ts +324 -307
  87. package/js/select.ts +216 -216
  88. package/js/sidebar-nav.js +41 -0
  89. package/js/sidebar-nav.ts +66 -0
  90. package/js/stepper.js +80 -0
  91. package/js/stepper.ts +104 -0
  92. package/js/table.ts +452 -452
  93. package/js/tabs.ts +279 -279
  94. package/js/theme.js +17 -6
  95. package/js/theme.ts +234 -224
  96. package/js/timepicker.js +21 -8
  97. package/js/toast.ts +137 -137
  98. package/js/tooltip.js +6 -60
  99. package/js/tooltip.ts +184 -251
  100. package/js/tsconfig.json +18 -18
  101. package/js/utils.ts +83 -83
  102. package/js/virtual-dropdown.js +25 -25
  103. package/js/virtual-dropdown.ts +365 -365
  104. package/package.json +39 -39
  105. package/fonts/Outfit-VariableFont_wght.woff +0 -0
  106. package/fonts/material-icons.woff2 +0 -0
  107. package/icons/activity-outline.svg +0 -1
  108. package/icons/alert-circle-outline.svg +0 -1
  109. package/icons/alert-triangle-outline.svg +0 -1
  110. package/icons/archive-outline.svg +0 -1
  111. package/icons/arrow-back-outline.svg +0 -1
  112. package/icons/arrow-circle-down-outline.svg +0 -1
  113. package/icons/arrow-circle-left-outline.svg +0 -1
  114. package/icons/arrow-circle-right-outline.svg +0 -1
  115. package/icons/arrow-circle-up-outline.svg +0 -1
  116. package/icons/arrow-down-outline.svg +0 -1
  117. package/icons/arrow-downward-outline.svg +0 -1
  118. package/icons/arrow-forward-outline.svg +0 -1
  119. package/icons/arrow-ios-back-outline.svg +0 -1
  120. package/icons/arrow-ios-downward-outline.svg +0 -1
  121. package/icons/arrow-ios-forward-outline.svg +0 -1
  122. package/icons/arrow-ios-upward-outline.svg +0 -1
  123. package/icons/arrow-left-outline.svg +0 -1
  124. package/icons/arrow-right-outline.svg +0 -1
  125. package/icons/arrow-up-outline.svg +0 -1
  126. package/icons/arrow-upward-outline.svg +0 -1
  127. package/icons/arrowhead-down-outline.svg +0 -1
  128. package/icons/arrowhead-left-outline.svg +0 -1
  129. package/icons/arrowhead-right-outline.svg +0 -1
  130. package/icons/arrowhead-up-outline.svg +0 -1
  131. package/icons/at-outline.svg +0 -1
  132. package/icons/attach-2-outline.svg +0 -1
  133. package/icons/attach-outline.svg +0 -1
  134. package/icons/award-outline.svg +0 -1
  135. package/icons/backspace-outline.svg +0 -1
  136. package/icons/bar-chart-2-outline.svg +0 -1
  137. package/icons/bar-chart-outline.svg +0 -1
  138. package/icons/battery-outline.svg +0 -1
  139. package/icons/behance-outline.svg +0 -1
  140. package/icons/bell-off-outline.svg +0 -1
  141. package/icons/bell-outline.svg +0 -1
  142. package/icons/bluetooth-outline.svg +0 -1
  143. package/icons/book-open-outline.svg +0 -1
  144. package/icons/book-outline.svg +0 -1
  145. package/icons/bookmark-outline.svg +0 -1
  146. package/icons/briefcase-outline.svg +0 -1
  147. package/icons/browser-outline.svg +0 -1
  148. package/icons/brush-outline.svg +0 -1
  149. package/icons/bulb-outline.svg +0 -1
  150. package/icons/calendar-outline.svg +0 -1
  151. package/icons/camera-outline.svg +0 -1
  152. package/icons/car-outline.svg +0 -1
  153. package/icons/cast-outline.svg +0 -1
  154. package/icons/charging-outline.svg +0 -1
  155. package/icons/checkmark-circle-2-outline.svg +0 -1
  156. package/icons/checkmark-circle-outline.svg +0 -1
  157. package/icons/checkmark-outline.svg +0 -1
  158. package/icons/checkmark-square-2-outline.svg +0 -1
  159. package/icons/checkmark-square-outline.svg +0 -1
  160. package/icons/chevron-down-outline.svg +0 -1
  161. package/icons/chevron-left-outline.svg +0 -1
  162. package/icons/chevron-right-outline.svg +0 -1
  163. package/icons/chevron-up-outline.svg +0 -1
  164. package/icons/clipboard-outline.svg +0 -1
  165. package/icons/clock-outline.svg +0 -1
  166. package/icons/close-circle-outline.svg +0 -1
  167. package/icons/close-outline.svg +0 -1
  168. package/icons/close-square-outline.svg +0 -1
  169. package/icons/cloud-download-outline.svg +0 -1
  170. package/icons/cloud-upload-outline.svg +0 -1
  171. package/icons/code-download-outline.svg +0 -1
  172. package/icons/code-outline.svg +0 -1
  173. package/icons/collapse-outline.svg +0 -1
  174. package/icons/color-palette-outline.svg +0 -1
  175. package/icons/color-picker-outline.svg +0 -1
  176. package/icons/compass-outline.svg +0 -1
  177. package/icons/copy-outline.svg +0 -1
  178. package/icons/corner-down-left-outline.svg +0 -1
  179. package/icons/corner-down-right-outline.svg +0 -1
  180. package/icons/corner-left-down-outline.svg +0 -1
  181. package/icons/corner-left-up-outline.svg +0 -1
  182. package/icons/corner-right-down-outline.svg +0 -1
  183. package/icons/corner-right-up-outline.svg +0 -1
  184. package/icons/corner-up-left-outline.svg +0 -1
  185. package/icons/corner-up-right-outline.svg +0 -1
  186. package/icons/credit-card-outline.svg +0 -1
  187. package/icons/crop-outline.svg +0 -1
  188. package/icons/cube-outline.svg +0 -1
  189. package/icons/diagonal-arrow-left-down-outline.svg +0 -1
  190. package/icons/diagonal-arrow-left-up-outline.svg +0 -1
  191. package/icons/diagonal-arrow-right-down-outline.svg +0 -1
  192. package/icons/diagonal-arrow-right-up-outline.svg +0 -1
  193. package/icons/done-all-outline.svg +0 -1
  194. package/icons/download-outline.svg +0 -1
  195. package/icons/droplet-off-outline.svg +0 -1
  196. package/icons/droplet-outline.svg +0 -1
  197. package/icons/edit-2-outline.svg +0 -1
  198. package/icons/edit-outline.svg +0 -1
  199. package/icons/email-outline.svg +0 -1
  200. package/icons/expand-outline.svg +0 -1
  201. package/icons/external-link-outline.svg +0 -1
  202. package/icons/eye-off-2-outline.svg +0 -1
  203. package/icons/eye-off-outline.svg +0 -1
  204. package/icons/eye-outline.svg +0 -1
  205. package/icons/facebook-outline.svg +0 -1
  206. package/icons/file-add-outline.svg +0 -1
  207. package/icons/file-outline.svg +0 -1
  208. package/icons/file-remove-outline.svg +0 -1
  209. package/icons/file-text-outline.svg +0 -1
  210. package/icons/film-outline.svg +0 -1
  211. package/icons/flag-outline.svg +0 -1
  212. package/icons/flash-off-outline.svg +0 -1
  213. package/icons/flash-outline.svg +0 -1
  214. package/icons/flip-2-outline.svg +0 -1
  215. package/icons/flip-outline.svg +0 -1
  216. package/icons/folder-add-outline.svg +0 -1
  217. package/icons/folder-outline.svg +0 -1
  218. package/icons/folder-remove-outline.svg +0 -1
  219. package/icons/funnel-outline.svg +0 -1
  220. package/icons/gift-outline.svg +0 -1
  221. package/icons/github-outline.svg +0 -1
  222. package/icons/globe-2-outline.svg +0 -1
  223. package/icons/globe-outline.svg +0 -1
  224. package/icons/google-outline.svg +0 -1
  225. package/icons/grid-outline.svg +0 -1
  226. package/icons/hard-drive-outline.svg +0 -1
  227. package/icons/hash-outline.svg +0 -1
  228. package/icons/headphones-outline.svg +0 -1
  229. package/icons/heart-outline.svg +0 -1
  230. package/icons/home-outline.svg +0 -1
  231. package/icons/image-outline.svg +0 -1
  232. package/icons/inbox-outline.svg +0 -1
  233. package/icons/info-outline.svg +0 -1
  234. package/icons/keypad-outline.svg +0 -1
  235. package/icons/layers-outline.svg +0 -1
  236. package/icons/layout-outline.svg +0 -1
  237. package/icons/link-2-outline.svg +0 -1
  238. package/icons/link-outline.svg +0 -1
  239. package/icons/linkedin-outline.svg +0 -1
  240. package/icons/list-outline.svg +0 -1
  241. package/icons/loader-outline.svg +0 -1
  242. package/icons/lock-outline.svg +0 -1
  243. package/icons/log-in-outline.svg +0 -1
  244. package/icons/log-out-outline.svg +0 -1
  245. package/icons/map-outline.svg +0 -1
  246. package/icons/maximize-outline.svg +0 -1
  247. package/icons/menu-2-outline.svg +0 -1
  248. package/icons/menu-arrow-outline.svg +0 -1
  249. package/icons/menu-outline.svg +0 -1
  250. package/icons/message-circle-outline.svg +0 -1
  251. package/icons/message-square-outline.svg +0 -1
  252. package/icons/mic-off-outline.svg +0 -1
  253. package/icons/mic-outline.svg +0 -1
  254. package/icons/minimize-outline.svg +0 -1
  255. package/icons/minus-circle-outline.svg +0 -1
  256. package/icons/minus-outline.svg +0 -1
  257. package/icons/minus-square-outline.svg +0 -1
  258. package/icons/monitor-outline.svg +0 -1
  259. package/icons/moon-outline.svg +0 -1
  260. package/icons/more-horizontal-outline.svg +0 -1
  261. package/icons/more-vertical-outline.svg +0 -1
  262. package/icons/move-outline.svg +0 -1
  263. package/icons/music-outline.svg +0 -1
  264. package/icons/navigation-2-outline.svg +0 -1
  265. package/icons/navigation-outline.svg +0 -1
  266. package/icons/npm-outline.svg +0 -1
  267. package/icons/options-2-outline.svg +0 -1
  268. package/icons/options-outline.svg +0 -1
  269. package/icons/pantone-outline.svg +0 -1
  270. package/icons/paper-plane-outline.svg +0 -1
  271. package/icons/pause-circle-outline.svg +0 -1
  272. package/icons/people-outline.svg +0 -1
  273. package/icons/percent-outline.svg +0 -1
  274. package/icons/person-add-outline.svg +0 -1
  275. package/icons/person-delete-outline.svg +0 -1
  276. package/icons/person-done-outline.svg +0 -1
  277. package/icons/person-outline.svg +0 -1
  278. package/icons/person-remove-outline.svg +0 -1
  279. package/icons/phone-call-outline.svg +0 -1
  280. package/icons/phone-missed-outline.svg +0 -1
  281. package/icons/phone-off-outline.svg +0 -1
  282. package/icons/phone-outline.svg +0 -1
  283. package/icons/pie-chart-outline.svg +0 -1
  284. package/icons/pin-outline.svg +0 -1
  285. package/icons/play-circle-outline.svg +0 -1
  286. package/icons/plus-circle-outline.svg +0 -1
  287. package/icons/plus-outline.svg +0 -1
  288. package/icons/plus-square-outline.svg +0 -1
  289. package/icons/power-outline.svg +0 -1
  290. package/icons/pricetags-outline.svg +0 -1
  291. package/icons/printer-outline.svg +0 -1
  292. package/icons/question-mark-circle-outline.svg +0 -1
  293. package/icons/question-mark-outline.svg +0 -1
  294. package/icons/radio-button-off-outline.svg +0 -1
  295. package/icons/radio-button-on-outline.svg +0 -1
  296. package/icons/radio-outline.svg +0 -1
  297. package/icons/recording-outline.svg +0 -1
  298. package/icons/refresh-outline.svg +0 -1
  299. package/icons/repeat-outline.svg +0 -1
  300. package/icons/rewind-left-outline.svg +0 -1
  301. package/icons/rewind-right-outline.svg +0 -1
  302. package/icons/save-outline.svg +0 -1
  303. package/icons/scissors-outline.svg +0 -1
  304. package/icons/search-outline.svg +0 -1
  305. package/icons/settings-2-outline.svg +0 -1
  306. package/icons/settings-outline.svg +0 -1
  307. package/icons/shake-outline.svg +0 -1
  308. package/icons/share-outline.svg +0 -1
  309. package/icons/shield-off-outline.svg +0 -1
  310. package/icons/shield-outline.svg +0 -1
  311. package/icons/shopping-bag-outline.svg +0 -1
  312. package/icons/shopping-cart-outline.svg +0 -1
  313. package/icons/shuffle-2-outline.svg +0 -1
  314. package/icons/shuffle-outline.svg +0 -1
  315. package/icons/skip-back-outline.svg +0 -1
  316. package/icons/skip-forward-outline.svg +0 -1
  317. package/icons/slash-outline.svg +0 -1
  318. package/icons/smartphone-outline.svg +0 -1
  319. package/icons/smiling-face-outline.svg +0 -1
  320. package/icons/speaker-outline.svg +0 -1
  321. package/icons/square-outline.svg +0 -1
  322. package/icons/star-outline.svg +0 -1
  323. package/icons/stop-circle-outline.svg +0 -1
  324. package/icons/sun-outline.svg +0 -1
  325. package/icons/swap-outline.svg +0 -1
  326. package/icons/sync-outline.svg +0 -1
  327. package/icons/text-outline.svg +0 -1
  328. package/icons/thermometer-minus-outline.svg +0 -1
  329. package/icons/thermometer-outline.svg +0 -1
  330. package/icons/thermometer-plus-outline.svg +0 -1
  331. package/icons/toggle-left-outline.svg +0 -1
  332. package/icons/toggle-right-outline.svg +0 -1
  333. package/icons/trash-2-outline.svg +0 -1
  334. package/icons/trash-outline.svg +0 -1
  335. package/icons/trending-down-outline.svg +0 -1
  336. package/icons/trending-up-outline.svg +0 -1
  337. package/icons/tv-outline.svg +0 -1
  338. package/icons/twitter-outline.svg +0 -1
  339. package/icons/umbrella-outline.svg +0 -1
  340. package/icons/undo-outline.svg +0 -1
  341. package/icons/unlock-outline.svg +0 -1
  342. package/icons/upload-outline.svg +0 -1
  343. package/icons/video-off-outline.svg +0 -1
  344. package/icons/video-outline.svg +0 -1
  345. package/icons/volume-down-outline.svg +0 -1
  346. package/icons/volume-mute-outline.svg +0 -1
  347. package/icons/volume-off-outline.svg +0 -1
  348. package/icons/volume-up-outline.svg +0 -1
  349. package/icons/wifi-off-outline.svg +0 -1
  350. package/icons/wifi-outline.svg +0 -1
  351. package/js/index.js +0 -718
  352. package/js/index.ts +0 -873
package/css/card.scss CHANGED
@@ -1,65 +1,65 @@
1
- @use "properties";
2
- @use "defaults";
3
- @use "parameters" as *;
4
-
5
- // Base card styles
6
- .card {
7
- box-shadow: $shadow;
8
- background: var(--secondary-background);
9
- border-radius: $border-radius;
10
- padding: $spacing;
11
- position: relative;
12
- overflow: hidden;
13
- display: flex;
14
- flex-direction: column;
15
-
16
- &.row {
17
- flex-direction: row;
18
- }
19
-
20
- // Card header
21
- .card-header {
22
- border-bottom: 1px solid var(--divider);
23
- margin: (-$spacing) (-$spacing) $spacing (-$spacing);
24
- padding: $spacing;
25
- }
26
-
27
- // Card footer
28
- .card-footer {
29
- border-top: 1px solid var(--divider);
30
- margin: auto (-$spacing) (-$spacing) (-$spacing);
31
- padding: $spacing;
32
- }
33
- }
34
-
35
- // Card variants
36
- .card-flat {
37
- box-shadow: none;
38
- border: 1px solid var(--divider);
39
- }
40
-
41
- .card-bordered {
42
- border: 1px solid var(--divider);
43
- }
44
-
45
- .card-hover {
46
- transition: box-shadow 0.3s ease, transform 0.3s ease;
47
-
48
- &:hover {
49
- box-shadow: 0 4px 8px var(--divider);
50
- transform: translateY(-2px);
51
- }
52
- }
53
-
54
- // Utility modifiers for cards
55
- .card-padding-none {
56
- padding: 0;
57
- }
58
-
59
- .card-padding-sm {
60
- padding: calc($spacing / 2);
61
- }
62
-
63
- .card-padding-lg {
64
- padding: calc($spacing * 2);
65
- }
1
+ @use "properties";
2
+ @use "defaults";
3
+ @use "parameters" as *;
4
+
5
+ // Base card styles
6
+ .card {
7
+ box-shadow: $shadow;
8
+ background: var(--secondary-background);
9
+ border-radius: $border-radius;
10
+ padding: $spacing;
11
+ position: relative;
12
+ overflow: hidden;
13
+ display: flex;
14
+ flex-direction: column;
15
+
16
+ &.row {
17
+ flex-direction: row;
18
+ }
19
+
20
+ // Card header
21
+ .card-header {
22
+ border-bottom: 1px solid var(--divider);
23
+ margin: (-$spacing) (-$spacing) $spacing (-$spacing);
24
+ padding: $spacing;
25
+ }
26
+
27
+ // Card footer
28
+ .card-footer {
29
+ border-top: 1px solid var(--divider);
30
+ margin: auto (-$spacing) (-$spacing) (-$spacing);
31
+ padding: $spacing;
32
+ }
33
+ }
34
+
35
+ // Card variants
36
+ .card-flat {
37
+ box-shadow: none;
38
+ border: 1px solid var(--divider);
39
+ }
40
+
41
+ .card-bordered {
42
+ border: 1px solid var(--divider);
43
+ }
44
+
45
+ .card-hover {
46
+ transition: box-shadow 0.3s ease, transform 0.3s ease;
47
+
48
+ &:hover {
49
+ box-shadow: 0 4px 8px var(--divider);
50
+ transform: translateY(-2px);
51
+ }
52
+ }
53
+
54
+ // Utility modifiers for cards
55
+ .card-padding-none {
56
+ padding: 0;
57
+ }
58
+
59
+ .card-padding-sm {
60
+ padding: calc($spacing / 2);
61
+ }
62
+
63
+ .card-padding-lg {
64
+ padding: calc($spacing * 2);
65
+ }
package/css/chart.scss CHANGED
@@ -1,157 +1,270 @@
1
- @use "properties";
2
-
3
- :root {
4
- /* Data-viz palette intentional, not overridden by theme */
5
- --zone-left-bg: #e0f7fa;
6
- --zone-mid-bg: #fff9c4;
7
- --zone-right-bg: #d0f7db;
8
- --grid-line-color: #bdbdbd;
9
- --line-color: #1976d2;
10
- --point-color: #d32f2f;
11
- }
12
-
13
- #chart-container {
14
- position: relative;
15
- }
16
-
17
- /* Background Zones Layer */
18
- .chart-background {
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- width: 100%;
23
- height: 100%;
24
- display: flex;
25
- z-index: 0;
26
- pointer-events: none;
27
- }
28
-
29
- .zone {
30
- height: 100%;
31
- border-right: 1px dashed rgba(0, 0, 0, 0.05);
32
- /* Optional zone separator */
33
- }
34
-
35
- .zone-left {
36
- background-color: var(--zone-left-bg);
37
- }
38
-
39
- .zone-mid {
40
- background-color: var(--zone-mid-bg);
41
- }
42
-
43
- .zone-right {
44
- background-color: var(--zone-right-bg);
45
- }
46
-
47
- /* Grid Lines Layer */
48
- .grid-lines {
49
- position: absolute;
50
- top: 0;
51
- left: 0;
52
- width: 100%;
53
- height: 100%;
54
- z-index: 1;
55
- pointer-events: none;
56
- }
57
-
58
- .grid-line {
59
- position: absolute;
60
- top: 0;
61
- bottom: 0;
62
- width: 1px;
63
- background-color: var(--grid-line-color);
64
- }
65
-
66
- .grid-label {
67
- position: absolute;
68
- top: 10px;
69
- transform: translateX(-50%);
70
- font-size: 10px;
71
- color: var(--secondary-text);
72
- }
73
-
74
- /* Content Layer */
75
- .chart-content {
76
- position: relative;
77
- z-index: 2;
78
- }
79
-
80
- .chart-row {
81
- display: flex;
82
- align-items: center;
83
- padding: 10px 20px;
84
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
85
- transition: background-color 0.2s;
86
- height: 40px;
87
- /* Fixed height for easier calculation */
88
- box-sizing: border-box;
89
- }
90
-
91
- .chart-row:hover {
92
- background-color: var(--hover);
93
- }
94
-
95
- .row-info {
96
- width: 350px;
97
- /* Fixed width for info column */
98
- flex-shrink: 0;
99
- font-size: 11px;
100
- color: var(--primary-text);
101
- z-index: 3;
102
- /* Above lines */
103
- }
104
-
105
- .row-name {
106
- font-weight: bold;
107
- font-size: 12px;
108
- }
109
-
110
- .row-meta {
111
- font-size: 10px;
112
- color: var(--secondary-text);
113
- }
114
-
115
- /* SVG Layer for Line */
116
- .chart-svg-layer {
117
- position: absolute;
118
- top: 0;
119
- left: 0;
120
- width: 100%;
121
- height: 100%;
122
- z-index: 9999;
123
- /* Nuclear option for visibility */
124
- pointer-events: none;
125
- overflow: visible;
126
- /* Allow points to extend beyond container if needed */
127
- }
128
-
129
- .chart-polyline {
130
- fill: none;
131
- stroke: var(--line-color);
132
- stroke-width: 2;
133
- stroke-linejoin: round;
134
- stroke-linecap: round;
135
- }
136
-
137
- .chart-point {
138
- fill: var(--point-color);
139
- stroke: white;
140
- stroke-width: 2;
141
- }
142
-
143
- /* Tooltip Styles */
144
- .chart-tooltip {
145
- position: absolute;
146
- background-color: var(--primary-text);
147
- color: var(--background);
148
- padding: 8px 12px;
149
- border-radius: 4px;
150
- font-size: 12px;
151
- pointer-events: none;
152
- z-index: 10000;
153
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
154
- white-space: nowrap;
155
- }
156
-
157
- /*# sourceMappingURL=chart.css.map */
1
+ @use "properties";
2
+ @use "parameters" as *;
3
+
4
+ // ─── Chart color palette ────────────────────────────────────────────────────
5
+ // Readable via JS: getComputedStyle(el).getPropertyValue('--chart-color-1')
6
+
7
+ .chart {
8
+ --chart-color-1: var(--accent-color);
9
+ --chart-color-2: var(--success);
10
+ --chart-color-3: var(--warning);
11
+ --chart-color-4: var(--error);
12
+ --chart-color-5: #8B5CF6;
13
+ --chart-color-6: #06B6D4;
14
+ --chart-color-7: #F97316;
15
+ --chart-color-8: #EC4899;
16
+ }
17
+
18
+ // ─── Wrapper ────────────────────────────────────────────────────────────────
19
+
20
+ .chart {
21
+ position: relative;
22
+ width: 100%;
23
+ min-width: 0;
24
+ color: var(--primary-text);
25
+ font-size: 0.875rem;
26
+
27
+ // ─── Header ───────────────────────────────────────────────────────────────
28
+
29
+ &-header {
30
+ margin-bottom: calc($spacing * 0.75);
31
+ }
32
+
33
+ &-title {
34
+ font-size: 1rem;
35
+ font-weight: 600;
36
+ color: var(--primary-text);
37
+ line-height: 1.3;
38
+ }
39
+
40
+ &-subtitle {
41
+ font-size: 0.8125rem;
42
+ color: var(--secondary-text);
43
+ margin-top: calc($spacing * 0.2);
44
+ }
45
+
46
+ // ─── Canvas ───────────────────────────────────────────────────────────────
47
+
48
+ &-canvas {
49
+ width: 100%;
50
+ position: relative;
51
+ overflow: hidden;
52
+ }
53
+
54
+ &-svg {
55
+ display: block;
56
+ width: 100%;
57
+ overflow: visible;
58
+ }
59
+
60
+ // ─── Axes & grid ──────────────────────────────────────────────────────────
61
+
62
+ .chart-axis-line {
63
+ stroke: var(--divider);
64
+ stroke-width: 1;
65
+ }
66
+
67
+ .chart-grid-line {
68
+ stroke: var(--divider);
69
+ stroke-width: 1;
70
+ stroke-dasharray: 3 4;
71
+ opacity: 0.7;
72
+ }
73
+
74
+ .chart-axis-label {
75
+ fill: var(--secondary-text);
76
+ font-size: 0.6875rem;
77
+ font-family: inherit;
78
+ }
79
+
80
+ // ─── Line & area ──────────────────────────────────────────────────────────
81
+
82
+ .chart-line {
83
+ fill: none;
84
+ stroke-linecap: round;
85
+ stroke-linejoin: round;
86
+ stroke-dasharray: var(--path-length, 9999);
87
+ stroke-dashoffset: var(--path-length, 9999);
88
+ animation: chart-draw 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
89
+ }
90
+
91
+ .chart-area {
92
+ animation: chart-fade-in 0.8s ease forwards;
93
+ }
94
+
95
+ // Dots visible by default (small), expand on hover via group
96
+ .chart-point-dot {
97
+ transition: r 0.15s ease;
98
+ }
99
+
100
+ .chart-point-ring {
101
+ opacity: 0;
102
+ transition: opacity 0.15s ease, r 0.15s ease;
103
+ }
104
+
105
+ .chart-point-group {
106
+ cursor: pointer;
107
+
108
+ &:hover .chart-point-dot {
109
+ r: 5;
110
+ }
111
+
112
+ &:hover .chart-point-ring {
113
+ opacity: 1;
114
+ }
115
+ }
116
+
117
+ // ─── Column & bar ─────────────────────────────────────────────────────────
118
+
119
+ .chart-bar {
120
+ transition: opacity 0.15s ease, filter 0.15s ease;
121
+ cursor: pointer;
122
+ transform-box: fill-box;
123
+
124
+ &--vertical {
125
+ transform-origin: bottom center;
126
+ animation: chart-grow-y calc(0.5s + var(--animation-delay, 0ms)) cubic-bezier(0.4, 0, 0.2, 1) both;
127
+ animation-delay: var(--animation-delay, 0ms);
128
+ }
129
+
130
+ &--horizontal {
131
+ transform-origin: left center;
132
+ animation: chart-grow-x calc(0.5s + var(--animation-delay, 0ms)) cubic-bezier(0.4, 0, 0.2, 1) both;
133
+ animation-delay: var(--animation-delay, 0ms);
134
+ }
135
+
136
+ &:hover {
137
+ opacity: 0.85;
138
+ filter: brightness(1.08);
139
+ }
140
+ }
141
+
142
+ // ─── Pie ──────────────────────────────────────────────────────────────────
143
+
144
+ .chart-slice {
145
+ cursor: pointer;
146
+ transform-box: fill-box;
147
+ transform-origin: center;
148
+ transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),
149
+ filter 0.15s ease;
150
+ animation: chart-slice-in 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
151
+ animation-delay: var(--animation-delay, 0ms);
152
+
153
+ &:hover {
154
+ filter: brightness(1.08);
155
+ }
156
+ }
157
+
158
+ // ─── Legend ───────────────────────────────────────────────────────────────
159
+
160
+ &-legend {
161
+ display: flex;
162
+ flex-wrap: wrap;
163
+ gap: calc($spacing * 0.35) calc($spacing * 1);
164
+ margin-top: calc($spacing * 0.75);
165
+ }
166
+
167
+ &-legend-item {
168
+ display: inline-flex;
169
+ align-items: center;
170
+ gap: calc($spacing * 0.4);
171
+ font-size: 0.75rem;
172
+ color: var(--secondary-text);
173
+ cursor: default;
174
+ }
175
+
176
+ &-legend-swatch {
177
+ width: 10px;
178
+ height: 10px;
179
+ border-radius: 2px;
180
+ flex-shrink: 0;
181
+ }
182
+
183
+ // Pie legend variant — bigger swatches, stacked nicely
184
+ &-pie-legend {
185
+ display: flex;
186
+ flex-wrap: wrap;
187
+ gap: calc($spacing * 0.4) calc($spacing * 1.25);
188
+ margin-top: calc($spacing * 0.75);
189
+ justify-content: center;
190
+ }
191
+
192
+ &-pie-legend-item {
193
+ display: inline-flex;
194
+ align-items: center;
195
+ gap: calc($spacing * 0.5);
196
+ font-size: 0.8125rem;
197
+ color: var(--secondary-text);
198
+ }
199
+
200
+ &-pie-legend-swatch {
201
+ width: 12px;
202
+ height: 12px;
203
+ border-radius: 3px;
204
+ flex-shrink: 0;
205
+ }
206
+
207
+ &-pie-legend-value {
208
+ font-weight: 600;
209
+ color: var(--primary-text);
210
+ margin-left: calc($spacing * 0.15);
211
+ }
212
+
213
+ // ─── Tooltip ──────────────────────────────────────────────────────────────
214
+
215
+ &-tooltip {
216
+ position: fixed;
217
+ background: var(--primary-dark);
218
+ color: var(--primary-light);
219
+ padding: calc($spacing * 0.5) calc($spacing * 0.75);
220
+ border-radius: $border-radius;
221
+ font-size: 0.75rem;
222
+ line-height: 1.5;
223
+ pointer-events: none;
224
+ white-space: nowrap;
225
+ z-index: 9999;
226
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
227
+ opacity: 0;
228
+ transform: translateY(4px);
229
+ transition: opacity 0.12s ease, transform 0.12s ease;
230
+
231
+ &.is-visible {
232
+ opacity: 1;
233
+ transform: translateY(0);
234
+ }
235
+
236
+ strong {
237
+ display: block;
238
+ font-weight: 600;
239
+ color: #fff;
240
+ margin-bottom: 1px;
241
+ }
242
+ }
243
+ }
244
+
245
+ // ─── Animations ─────────────────────────────────────────────────────────────
246
+
247
+ @keyframes chart-draw {
248
+ from { stroke-dashoffset: var(--path-length, 9999); }
249
+ to { stroke-dashoffset: 0; }
250
+ }
251
+
252
+ @keyframes chart-fade-in {
253
+ from { opacity: 0; }
254
+ to { opacity: 1; }
255
+ }
256
+
257
+ @keyframes chart-grow-y {
258
+ from { transform: scaleY(0); }
259
+ to { transform: scaleY(1); }
260
+ }
261
+
262
+ @keyframes chart-grow-x {
263
+ from { transform: scaleX(0); }
264
+ to { transform: scaleX(1); }
265
+ }
266
+
267
+ @keyframes chart-slice-in {
268
+ from { transform: scale(0.6); opacity: 0; }
269
+ to { transform: scale(1); opacity: 1; }
270
+ }