@vielzeug/prism 1.1.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 (273) hide show
  1. package/README.md +83 -0
  2. package/dist/_dev.cjs +2 -0
  3. package/dist/_dev.cjs.map +1 -0
  4. package/dist/_dev.d.ts +2 -0
  5. package/dist/_dev.d.ts.map +1 -0
  6. package/dist/_dev.js +12 -0
  7. package/dist/_dev.js.map +1 -0
  8. package/dist/animation/easing.cjs +2 -0
  9. package/dist/animation/easing.cjs.map +1 -0
  10. package/dist/animation/easing.d.ts +4 -0
  11. package/dist/animation/easing.d.ts.map +1 -0
  12. package/dist/animation/easing.js +14 -0
  13. package/dist/animation/easing.js.map +1 -0
  14. package/dist/animation/index.d.ts +6 -0
  15. package/dist/animation/index.d.ts.map +1 -0
  16. package/dist/animation/transition.cjs +2 -0
  17. package/dist/animation/transition.cjs.map +1 -0
  18. package/dist/animation/transition.d.ts +15 -0
  19. package/dist/animation/transition.d.ts.map +1 -0
  20. package/dist/animation/transition.js +28 -0
  21. package/dist/animation/transition.js.map +1 -0
  22. package/dist/animation/tween.cjs +2 -0
  23. package/dist/animation/tween.cjs.map +1 -0
  24. package/dist/animation/tween.d.ts +3 -0
  25. package/dist/animation/tween.d.ts.map +1 -0
  26. package/dist/animation/tween.js +8 -0
  27. package/dist/animation/tween.js.map +1 -0
  28. package/dist/axes/axis.cjs +2 -0
  29. package/dist/axes/axis.cjs.map +1 -0
  30. package/dist/axes/axis.d.ts +15 -0
  31. package/dist/axes/axis.d.ts.map +1 -0
  32. package/dist/axes/axis.js +60 -0
  33. package/dist/axes/axis.js.map +1 -0
  34. package/dist/axes/grid.cjs +2 -0
  35. package/dist/axes/grid.cjs.map +1 -0
  36. package/dist/axes/grid.d.ts +4 -0
  37. package/dist/axes/grid.d.ts.map +1 -0
  38. package/dist/axes/grid.js +30 -0
  39. package/dist/axes/grid.js.map +1 -0
  40. package/dist/axes/index.d.ts +3 -0
  41. package/dist/axes/index.d.ts.map +1 -0
  42. package/dist/axes/scale-utils.cjs +2 -0
  43. package/dist/axes/scale-utils.cjs.map +1 -0
  44. package/dist/axes/scale-utils.d.ts +17 -0
  45. package/dist/axes/scale-utils.d.ts.map +1 -0
  46. package/dist/axes/scale-utils.js +11 -0
  47. package/dist/axes/scale-utils.js.map +1 -0
  48. package/dist/axes/types.d.ts +2 -0
  49. package/dist/axes/types.d.ts.map +1 -0
  50. package/dist/charts/area/area-chart.cjs +2 -0
  51. package/dist/charts/area/area-chart.cjs.map +1 -0
  52. package/dist/charts/area/area-chart.d.ts +3 -0
  53. package/dist/charts/area/area-chart.d.ts.map +1 -0
  54. package/dist/charts/area/area-chart.js +58 -0
  55. package/dist/charts/area/area-chart.js.map +1 -0
  56. package/dist/charts/area/area-renderer.cjs +2 -0
  57. package/dist/charts/area/area-renderer.cjs.map +1 -0
  58. package/dist/charts/area/area-renderer.d.ts +14 -0
  59. package/dist/charts/area/area-renderer.d.ts.map +1 -0
  60. package/dist/charts/area/area-renderer.js +73 -0
  61. package/dist/charts/area/area-renderer.js.map +1 -0
  62. package/dist/charts/area/area-types.d.ts +2 -0
  63. package/dist/charts/area/area-types.d.ts.map +1 -0
  64. package/dist/charts/area/index.d.ts +2 -0
  65. package/dist/charts/area/index.d.ts.map +1 -0
  66. package/dist/charts/bar/bar-chart.cjs +2 -0
  67. package/dist/charts/bar/bar-chart.cjs.map +1 -0
  68. package/dist/charts/bar/bar-chart.d.ts +3 -0
  69. package/dist/charts/bar/bar-chart.d.ts.map +1 -0
  70. package/dist/charts/bar/bar-chart.js +151 -0
  71. package/dist/charts/bar/bar-chart.js.map +1 -0
  72. package/dist/charts/bar/bar-hit-test.cjs +2 -0
  73. package/dist/charts/bar/bar-hit-test.cjs.map +1 -0
  74. package/dist/charts/bar/bar-hit-test.d.ts +12 -0
  75. package/dist/charts/bar/bar-hit-test.d.ts.map +1 -0
  76. package/dist/charts/bar/bar-hit-test.js +29 -0
  77. package/dist/charts/bar/bar-hit-test.js.map +1 -0
  78. package/dist/charts/bar/bar-renderer.cjs +2 -0
  79. package/dist/charts/bar/bar-renderer.cjs.map +1 -0
  80. package/dist/charts/bar/bar-renderer.d.ts +19 -0
  81. package/dist/charts/bar/bar-renderer.d.ts.map +1 -0
  82. package/dist/charts/bar/bar-renderer.js +107 -0
  83. package/dist/charts/bar/bar-renderer.js.map +1 -0
  84. package/dist/charts/bar/bar-scale-context.d.ts +11 -0
  85. package/dist/charts/bar/bar-scale-context.d.ts.map +1 -0
  86. package/dist/charts/bar/bar-types.d.ts +2 -0
  87. package/dist/charts/bar/bar-types.d.ts.map +1 -0
  88. package/dist/charts/bar/index.d.ts +2 -0
  89. package/dist/charts/bar/index.d.ts.map +1 -0
  90. package/dist/charts/index.d.ts +6 -0
  91. package/dist/charts/index.d.ts.map +1 -0
  92. package/dist/charts/line/index.d.ts +2 -0
  93. package/dist/charts/line/index.d.ts.map +1 -0
  94. package/dist/charts/line/line-chart.cjs +2 -0
  95. package/dist/charts/line/line-chart.cjs.map +1 -0
  96. package/dist/charts/line/line-chart.d.ts +3 -0
  97. package/dist/charts/line/line-chart.d.ts.map +1 -0
  98. package/dist/charts/line/line-chart.js +59 -0
  99. package/dist/charts/line/line-chart.js.map +1 -0
  100. package/dist/charts/line/line-renderer.cjs +2 -0
  101. package/dist/charts/line/line-renderer.cjs.map +1 -0
  102. package/dist/charts/line/line-renderer.d.ts +15 -0
  103. package/dist/charts/line/line-renderer.d.ts.map +1 -0
  104. package/dist/charts/line/line-renderer.js +100 -0
  105. package/dist/charts/line/line-renderer.js.map +1 -0
  106. package/dist/charts/line/line-types.d.ts +2 -0
  107. package/dist/charts/line/line-types.d.ts.map +1 -0
  108. package/dist/charts/pie/index.d.ts +2 -0
  109. package/dist/charts/pie/index.d.ts.map +1 -0
  110. package/dist/charts/pie/pie-chart.cjs +2 -0
  111. package/dist/charts/pie/pie-chart.cjs.map +1 -0
  112. package/dist/charts/pie/pie-chart.d.ts +3 -0
  113. package/dist/charts/pie/pie-chart.d.ts.map +1 -0
  114. package/dist/charts/pie/pie-chart.js +156 -0
  115. package/dist/charts/pie/pie-chart.js.map +1 -0
  116. package/dist/charts/pie/pie-renderer.cjs +2 -0
  117. package/dist/charts/pie/pie-renderer.cjs.map +1 -0
  118. package/dist/charts/pie/pie-renderer.d.ts +23 -0
  119. package/dist/charts/pie/pie-renderer.d.ts.map +1 -0
  120. package/dist/charts/pie/pie-renderer.js +77 -0
  121. package/dist/charts/pie/pie-renderer.js.map +1 -0
  122. package/dist/charts/sparkline/index.d.ts +2 -0
  123. package/dist/charts/sparkline/index.d.ts.map +1 -0
  124. package/dist/charts/sparkline/sparkline.cjs +2 -0
  125. package/dist/charts/sparkline/sparkline.cjs.map +1 -0
  126. package/dist/charts/sparkline/sparkline.d.ts +3 -0
  127. package/dist/charts/sparkline/sparkline.d.ts.map +1 -0
  128. package/dist/charts/sparkline/sparkline.js +187 -0
  129. package/dist/charts/sparkline/sparkline.js.map +1 -0
  130. package/dist/core/cartesian-scales.cjs +2 -0
  131. package/dist/core/cartesian-scales.cjs.map +1 -0
  132. package/dist/core/cartesian-scales.d.ts +4 -0
  133. package/dist/core/cartesian-scales.d.ts.map +1 -0
  134. package/dist/core/cartesian-scales.js +54 -0
  135. package/dist/core/cartesian-scales.js.map +1 -0
  136. package/dist/core/chart-base.cjs +2 -0
  137. package/dist/core/chart-base.cjs.map +1 -0
  138. package/dist/core/chart-base.d.ts +14 -0
  139. package/dist/core/chart-base.d.ts.map +1 -0
  140. package/dist/core/chart-base.js +60 -0
  141. package/dist/core/chart-base.js.map +1 -0
  142. package/dist/core/chart-scaffold.cjs +2 -0
  143. package/dist/core/chart-scaffold.cjs.map +1 -0
  144. package/dist/core/chart-scaffold.d.ts +54 -0
  145. package/dist/core/chart-scaffold.d.ts.map +1 -0
  146. package/dist/core/chart-scaffold.js +104 -0
  147. package/dist/core/chart-scaffold.js.map +1 -0
  148. package/dist/core/index.d.ts +7 -0
  149. package/dist/core/index.d.ts.map +1 -0
  150. package/dist/core/layout.cjs +2 -0
  151. package/dist/core/layout.cjs.map +1 -0
  152. package/dist/core/layout.d.ts +7 -0
  153. package/dist/core/layout.d.ts.map +1 -0
  154. package/dist/core/layout.js +23 -0
  155. package/dist/core/layout.js.map +1 -0
  156. package/dist/core/responsive.cjs +2 -0
  157. package/dist/core/responsive.cjs.map +1 -0
  158. package/dist/core/responsive.d.ts +2 -0
  159. package/dist/core/responsive.d.ts.map +1 -0
  160. package/dist/core/responsive.js +20 -0
  161. package/dist/core/responsive.js.map +1 -0
  162. package/dist/devtools/index.d.ts +52 -0
  163. package/dist/devtools/index.d.ts.map +1 -0
  164. package/dist/devtools.cjs +2 -0
  165. package/dist/devtools.cjs.map +1 -0
  166. package/dist/devtools.js +19 -0
  167. package/dist/devtools.js.map +1 -0
  168. package/dist/errors.cjs +2 -0
  169. package/dist/errors.cjs.map +1 -0
  170. package/dist/errors.d.ts +16 -0
  171. package/dist/errors.d.ts.map +1 -0
  172. package/dist/errors.js +13 -0
  173. package/dist/errors.js.map +1 -0
  174. package/dist/index.cjs +1 -0
  175. package/dist/index.d.ts +19 -0
  176. package/dist/index.d.ts.map +1 -0
  177. package/dist/index.js +12 -0
  178. package/dist/interaction/crosshair.cjs +2 -0
  179. package/dist/interaction/crosshair.cjs.map +1 -0
  180. package/dist/interaction/crosshair.d.ts +13 -0
  181. package/dist/interaction/crosshair.d.ts.map +1 -0
  182. package/dist/interaction/crosshair.js +46 -0
  183. package/dist/interaction/crosshair.js.map +1 -0
  184. package/dist/interaction/events.cjs +2 -0
  185. package/dist/interaction/events.cjs.map +1 -0
  186. package/dist/interaction/events.d.ts +3 -0
  187. package/dist/interaction/events.d.ts.map +1 -0
  188. package/dist/interaction/events.js +12 -0
  189. package/dist/interaction/events.js.map +1 -0
  190. package/dist/interaction/hit-test.cjs +2 -0
  191. package/dist/interaction/hit-test.cjs.map +1 -0
  192. package/dist/interaction/hit-test.d.ts +3 -0
  193. package/dist/interaction/hit-test.d.ts.map +1 -0
  194. package/dist/interaction/hit-test.js +14 -0
  195. package/dist/interaction/hit-test.js.map +1 -0
  196. package/dist/interaction/index.d.ts +9 -0
  197. package/dist/interaction/index.d.ts.map +1 -0
  198. package/dist/interaction/legend.cjs +2 -0
  199. package/dist/interaction/legend.cjs.map +1 -0
  200. package/dist/interaction/legend.d.ts +12 -0
  201. package/dist/interaction/legend.d.ts.map +1 -0
  202. package/dist/interaction/legend.js +31 -0
  203. package/dist/interaction/legend.js.map +1 -0
  204. package/dist/interaction/series-interaction.cjs +2 -0
  205. package/dist/interaction/series-interaction.cjs.map +1 -0
  206. package/dist/interaction/series-interaction.d.ts +18 -0
  207. package/dist/interaction/series-interaction.d.ts.map +1 -0
  208. package/dist/interaction/series-interaction.js +58 -0
  209. package/dist/interaction/series-interaction.js.map +1 -0
  210. package/dist/interaction/tooltip.cjs +2 -0
  211. package/dist/interaction/tooltip.cjs.map +1 -0
  212. package/dist/interaction/tooltip.d.ts +10 -0
  213. package/dist/interaction/tooltip.d.ts.map +1 -0
  214. package/dist/interaction/tooltip.js +53 -0
  215. package/dist/interaction/tooltip.js.map +1 -0
  216. package/dist/prism.cjs +2 -0
  217. package/dist/prism.cjs.map +1 -0
  218. package/dist/prism.iife.js +2 -0
  219. package/dist/prism.iife.js.map +1 -0
  220. package/dist/prism.js +2 -0
  221. package/dist/prism.js.map +1 -0
  222. package/dist/scales/band.cjs +2 -0
  223. package/dist/scales/band.cjs.map +1 -0
  224. package/dist/scales/band.d.ts +3 -0
  225. package/dist/scales/band.d.ts.map +1 -0
  226. package/dist/scales/band.js +40 -0
  227. package/dist/scales/band.js.map +1 -0
  228. package/dist/scales/index.d.ts +4 -0
  229. package/dist/scales/index.d.ts.map +1 -0
  230. package/dist/scales/linear.cjs +2 -0
  231. package/dist/scales/linear.cjs.map +1 -0
  232. package/dist/scales/linear.d.ts +4 -0
  233. package/dist/scales/linear.d.ts.map +1 -0
  234. package/dist/scales/linear.js +44 -0
  235. package/dist/scales/linear.js.map +1 -0
  236. package/dist/scales/time.cjs +2 -0
  237. package/dist/scales/time.cjs.map +1 -0
  238. package/dist/scales/time.d.ts +4 -0
  239. package/dist/scales/time.d.ts.map +1 -0
  240. package/dist/scales/time.js +62 -0
  241. package/dist/scales/time.js.map +1 -0
  242. package/dist/scales/types.d.ts +19 -0
  243. package/dist/scales/types.d.ts.map +1 -0
  244. package/dist/svg/element.cjs +2 -0
  245. package/dist/svg/element.cjs.map +1 -0
  246. package/dist/svg/element.d.ts +4 -0
  247. package/dist/svg/element.d.ts.map +1 -0
  248. package/dist/svg/element.js +23 -0
  249. package/dist/svg/element.js.map +1 -0
  250. package/dist/svg/index.d.ts +5 -0
  251. package/dist/svg/index.d.ts.map +1 -0
  252. package/dist/svg/path.cjs +2 -0
  253. package/dist/svg/path.cjs.map +1 -0
  254. package/dist/svg/path.d.ts +9 -0
  255. package/dist/svg/path.d.ts.map +1 -0
  256. package/dist/svg/path.js +49 -0
  257. package/dist/svg/path.js.map +1 -0
  258. package/dist/svg/text.cjs +2 -0
  259. package/dist/svg/text.cjs.map +1 -0
  260. package/dist/svg/text.d.ts +7 -0
  261. package/dist/svg/text.d.ts.map +1 -0
  262. package/dist/svg/text.js +10 -0
  263. package/dist/svg/text.js.map +1 -0
  264. package/dist/theme/index.cjs +2 -0
  265. package/dist/theme/index.cjs.map +1 -0
  266. package/dist/theme/index.d.ts +6 -0
  267. package/dist/theme/index.d.ts.map +1 -0
  268. package/dist/theme/index.js +20 -0
  269. package/dist/theme/index.js.map +1 -0
  270. package/dist/theme/prism.css +342 -0
  271. package/dist/types.d.ts +204 -0
  272. package/dist/types.d.ts.map +1 -0
  273. package/package.json +79 -0
@@ -0,0 +1,342 @@
1
+ @layer prism.tokens {
2
+ :root {
3
+ /* ========================================
4
+ Series Color Palette
5
+ Colorblind-safe palette based on Wong (2011) and IBM Design.
6
+ Distinguishable under deuteranopia, protanopia, and tritanopia.
7
+ Ordered for maximum perceptual contrast between adjacent series.
8
+ ======================================== */
9
+ --prism-color-1: #0072b2; /* Blue */
10
+ --prism-color-2: #e69f00; /* Orange */
11
+ --prism-color-3: #009e73; /* Bluish green */
12
+ --prism-color-4: #cc79a7; /* Reddish purple */
13
+ --prism-color-5: #56b4e9; /* Sky blue */
14
+ --prism-color-6: #d55e00; /* Vermilion */
15
+ --prism-color-7: #f0e442; /* Yellow */
16
+ --prism-color-8: #000; /* Black */
17
+
18
+ /* ========================================
19
+ Chart Structure
20
+ Core layout and background tokens
21
+ ======================================== */
22
+ --prism-bg: transparent;
23
+ --prism-border-radius: 0.375rem;
24
+
25
+ /* ========================================
26
+ Axes & Grid
27
+ Structural lines and labels
28
+ ======================================== */
29
+ --prism-axis-color: hsl(215deg 16% 47%);
30
+ --prism-axis-width: 1;
31
+ --prism-grid-color: hsl(220deg 10% 75%);
32
+ --prism-grid-width: 1;
33
+ --prism-grid-dash: none;
34
+ --prism-grid-opacity: 0.25;
35
+
36
+ /* ========================================
37
+ Typography
38
+ Chart labels, ticks, and titles
39
+ ======================================== */
40
+ --prism-text-color: hsl(215deg 25% 27%);
41
+ --prism-text-color-secondary: hsl(215deg 16% 47%);
42
+ --prism-font-family: system-ui, -apple-system, sans-serif;
43
+ --prism-font-size: 0.75rem;
44
+ --prism-font-size-label: 0.6875rem;
45
+ --prism-font-size-title: 0.875rem;
46
+ --prism-font-weight: 400;
47
+ --prism-font-weight-title: 600;
48
+
49
+ /* ========================================
50
+ Tooltip
51
+ Floating data detail overlay
52
+ ======================================== */
53
+ --prism-tooltip-bg: hsl(222deg 47% 11%);
54
+ --prism-tooltip-color: hsl(210deg 40% 98%);
55
+ --prism-tooltip-border: hsl(215deg 19% 25%);
56
+ --prism-tooltip-radius: 0.375rem;
57
+ --prism-tooltip-padding: 0.375rem 0.625rem;
58
+ --prism-tooltip-shadow: 0 4px 12px rgb(0 0 0 / 12%);
59
+ --prism-tooltip-font-size: 0.75rem;
60
+
61
+ /* ========================================
62
+ Crosshair
63
+ Hover guide lines
64
+ ======================================== */
65
+ --prism-crosshair-color: hsl(215deg 16% 47%);
66
+ --prism-crosshair-width: 1;
67
+ --prism-crosshair-dash: 4 2;
68
+ --prism-crosshair-opacity: 0.6;
69
+
70
+ /* ========================================
71
+ Data Points
72
+ Dot markers on line/area charts
73
+ ======================================== */
74
+ --prism-point-radius: 3;
75
+ --prism-point-radius-hover: 5;
76
+ --prism-point-stroke-width: 0;
77
+ --prism-point-stroke: none;
78
+
79
+ /* ========================================
80
+ Bars
81
+ Bar chart element styling
82
+ ======================================== */
83
+ --prism-bar-radius: 2px;
84
+ --prism-bar-hover-opacity: 0.8;
85
+ --prism-bar-gap: 0.1;
86
+
87
+ /* ========================================
88
+ Area
89
+ Area chart fill styling
90
+ ======================================== */
91
+ --prism-area-opacity: 0.25;
92
+ --prism-area-stroke-width: 2;
93
+
94
+ /* ========================================
95
+ Line
96
+ Line chart stroke styling
97
+ ======================================== */
98
+ --prism-line-width: 2;
99
+ --prism-line-width-hover: 2.5;
100
+
101
+ /* ========================================
102
+ Transitions & Animation
103
+ Respects prefers-reduced-motion
104
+ ======================================== */
105
+ --prism-duration-fast: 150ms;
106
+ --prism-duration: 300ms;
107
+ --prism-duration-slow: 500ms;
108
+ --prism-ease: cubic-bezier(0.4, 0, 0.2, 1);
109
+ --prism-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
110
+ --prism-transition: var(--prism-duration) var(--prism-ease);
111
+ --prism-transition-fast: var(--prism-duration-fast) var(--prism-ease);
112
+
113
+ /* ========================================
114
+ Legend
115
+ Series labels below/beside chart
116
+ ======================================== */
117
+ --prism-legend-gap: 1rem;
118
+ --prism-legend-dot-size: 0.5rem;
119
+ --prism-legend-font-size: 0.75rem;
120
+ }
121
+
122
+ /* ========================================
123
+ Dark Mode
124
+ Triggered by OS preference or html.dark class
125
+ ======================================== */
126
+ @media (prefers-color-scheme: dark) {
127
+ :root:not(.light) {
128
+ --prism-color-1: #56b4e9; /* Sky blue (brighter in dark) */
129
+ --prism-color-2: #e69f00; /* Orange */
130
+ --prism-color-3: #009e73; /* Bluish green */
131
+ --prism-color-4: #cc79a7; /* Reddish purple */
132
+ --prism-color-5: #0072b2; /* Blue */
133
+ --prism-color-6: #d55e00; /* Vermilion */
134
+ --prism-color-7: #f0e442; /* Yellow */
135
+ --prism-color-8: #fff; /* White (replaces black for dark bg) */
136
+ --prism-axis-color: hsl(215deg 16% 47%);
137
+ --prism-grid-color: hsl(220deg 10% 25%);
138
+ --prism-grid-opacity: 0.5;
139
+ --prism-text-color: hsl(214deg 32% 91%);
140
+ --prism-text-color-secondary: hsl(215deg 16% 57%);
141
+ --prism-tooltip-bg: hsl(222deg 47% 6%);
142
+ --prism-tooltip-color: hsl(210deg 40% 96%);
143
+ --prism-tooltip-border: hsl(215deg 19% 18%);
144
+ --prism-tooltip-shadow: 0 4px 12px rgb(0 0 0 / 40%);
145
+ --prism-crosshair-color: hsl(215deg 16% 57%);
146
+ --prism-point-stroke: none;
147
+ }
148
+ }
149
+
150
+ html.dark {
151
+ --prism-color-1: #56b4e9;
152
+ --prism-color-2: #e69f00;
153
+ --prism-color-3: #009e73;
154
+ --prism-color-4: #cc79a7;
155
+ --prism-color-5: #0072b2;
156
+ --prism-color-6: #d55e00;
157
+ --prism-color-7: #f0e442;
158
+ --prism-color-8: #fff;
159
+ --prism-axis-color: hsl(215deg 16% 47%);
160
+ --prism-grid-color: hsl(215deg 12% 18%);
161
+ --prism-text-color: hsl(214deg 32% 91%);
162
+ --prism-text-color-secondary: hsl(215deg 16% 57%);
163
+ --prism-tooltip-bg: hsl(222deg 47% 6%);
164
+ --prism-tooltip-color: hsl(210deg 40% 96%);
165
+ --prism-tooltip-border: hsl(215deg 19% 18%);
166
+ --prism-tooltip-shadow: 0 4px 12px rgb(0 0 0 / 40%);
167
+ --prism-crosshair-color: hsl(215deg 16% 57%);
168
+ --prism-point-stroke: none;
169
+ }
170
+
171
+ /* ========================================
172
+ Reduced Motion
173
+ Disable all chart transitions/animations
174
+ ======================================== */
175
+ @media (prefers-reduced-motion: reduce) {
176
+ :root {
177
+ --prism-duration-fast: 0ms;
178
+ --prism-duration: 0ms;
179
+ --prism-duration-slow: 0ms;
180
+ --prism-transition: none;
181
+ --prism-transition-fast: none;
182
+ }
183
+ }
184
+ }
185
+
186
+ /* ========================================
187
+ Component Styles
188
+ Structural CSS for chart elements
189
+ ======================================== */
190
+
191
+ @layer prism.base {
192
+ .prism-chart {
193
+ font-family: var(--prism-font-family);
194
+ font-size: var(--prism-font-size);
195
+ -webkit-font-smoothing: antialiased;
196
+ -moz-osx-font-smoothing: grayscale;
197
+ }
198
+
199
+ /* Axes */
200
+ .prism-axis-line,
201
+ .prism-axis-tick {
202
+ stroke: var(--prism-axis-color);
203
+ stroke-width: var(--prism-axis-width);
204
+ }
205
+
206
+ .prism-axis-label {
207
+ font-size: var(--prism-font-size-label);
208
+ font-weight: var(--prism-font-weight);
209
+ fill: var(--prism-text-color-secondary);
210
+ }
211
+
212
+ .prism-axis-title {
213
+ font-size: var(--prism-font-size-title);
214
+ font-weight: var(--prism-font-weight-title);
215
+ fill: var(--prism-text-color);
216
+ }
217
+
218
+ /* Grid */
219
+ .prism-grid-line {
220
+ opacity: var(--prism-grid-opacity);
221
+ stroke: var(--prism-grid-color);
222
+ stroke-width: var(--prism-grid-width);
223
+ stroke-dasharray: var(--prism-grid-dash);
224
+ }
225
+
226
+ /* Crosshair */
227
+ .prism-crosshair-v,
228
+ .prism-crosshair-h {
229
+ opacity: var(--prism-crosshair-opacity);
230
+ stroke: var(--prism-crosshair-color);
231
+ stroke-width: var(--prism-crosshair-width);
232
+ stroke-dasharray: var(--prism-crosshair-dash);
233
+ }
234
+
235
+ /* Line chart */
236
+ .prism-line-path {
237
+ fill: none;
238
+ stroke-width: var(--prism-line-width);
239
+ stroke-linecap: round;
240
+ stroke-linejoin: round;
241
+ transition: stroke-width var(--prism-transition-fast);
242
+ }
243
+
244
+ .prism-line-series:hover .prism-line-path {
245
+ stroke-width: var(--prism-line-width-hover);
246
+ }
247
+
248
+ .prism-line-dot {
249
+ stroke: var(--prism-point-stroke);
250
+ stroke-width: var(--prism-point-stroke-width);
251
+ transition: r var(--prism-transition-fast);
252
+ }
253
+
254
+ .prism-line-dot:hover {
255
+ r: var(--prism-point-radius-hover);
256
+ }
257
+
258
+ /* Bar chart */
259
+ .prism-bar {
260
+ transition:
261
+ opacity var(--prism-transition-fast),
262
+ filter var(--prism-transition-fast);
263
+ }
264
+
265
+ .prism-bar:hover {
266
+ opacity: var(--prism-bar-hover-opacity);
267
+ filter: brightness(1.05);
268
+ }
269
+
270
+ /* Area chart */
271
+ .prism-area-fill {
272
+ opacity: var(--prism-area-opacity);
273
+ transition: opacity var(--prism-transition-fast);
274
+ }
275
+
276
+ .prism-area-series:hover .prism-area-fill {
277
+ opacity: calc(var(--prism-area-opacity) * 1.4);
278
+ }
279
+
280
+ .prism-area-line {
281
+ fill: none;
282
+ stroke-width: var(--prism-area-stroke-width);
283
+ stroke-linecap: round;
284
+ stroke-linejoin: round;
285
+ }
286
+
287
+ /* Legend */
288
+ .prism-legend {
289
+ display: flex;
290
+ flex-wrap: wrap;
291
+ gap: var(--prism-legend-gap);
292
+ padding: 0.5rem 0;
293
+ font-family: var(--prism-font-family);
294
+ font-size: var(--prism-legend-font-size);
295
+ color: var(--prism-text-color);
296
+ }
297
+
298
+ .prism-legend-bottom,
299
+ .prism-legend-top {
300
+ justify-content: center;
301
+ }
302
+
303
+ .prism-legend-left,
304
+ .prism-legend-right {
305
+ flex-direction: column;
306
+ align-items: flex-start;
307
+ }
308
+
309
+ .prism-legend-item {
310
+ display: flex;
311
+ gap: 0.375rem;
312
+ align-items: center;
313
+ }
314
+
315
+ .prism-legend-dot {
316
+ flex-shrink: 0;
317
+ width: var(--prism-legend-dot-size);
318
+ height: var(--prism-legend-dot-size);
319
+ border-radius: 50%;
320
+ }
321
+
322
+ .prism-legend-label {
323
+ color: var(--prism-text-color-secondary);
324
+ }
325
+
326
+ /* Tooltip (applied inline but structural styles here) */
327
+ .prism-tooltip {
328
+ position: absolute;
329
+ z-index: 10;
330
+ padding: var(--prism-tooltip-padding);
331
+ font-size: var(--prism-tooltip-font-size);
332
+ color: var(--prism-tooltip-color);
333
+ white-space: nowrap;
334
+ pointer-events: none;
335
+ background: var(--prism-tooltip-bg);
336
+ border: 1px solid var(--prism-tooltip-border);
337
+ border-radius: var(--prism-tooltip-radius);
338
+ box-shadow: var(--prism-tooltip-shadow);
339
+ opacity: 0;
340
+ transition: opacity var(--prism-transition-fast);
341
+ }
342
+ }
@@ -0,0 +1,204 @@
1
+ import type { Readable } from '@vielzeug/ripple';
2
+ export type MaybeSignal<T> = Readable<T> | T;
3
+ export interface PrismTheme {
4
+ colors?: string[];
5
+ fontFamily?: string;
6
+ gridColor?: string;
7
+ gridOpacity?: number;
8
+ }
9
+ export interface ChartMargin {
10
+ bottom: number;
11
+ left: number;
12
+ right: number;
13
+ top: number;
14
+ }
15
+ export interface ChartDimensions {
16
+ height: number;
17
+ margin: ChartMargin;
18
+ width: number;
19
+ }
20
+ export interface ChartHandle {
21
+ readonly disposalSignal: AbortSignal;
22
+ dispose(): void;
23
+ readonly disposed: boolean;
24
+ readonly el: SVGSVGElement;
25
+ [Symbol.dispose](): void;
26
+ }
27
+ /**
28
+ * A single data point in a cartesian chart series.
29
+ * `key` is the x-axis identity (number, Date, or string category).
30
+ * `value` is the measured quantity on the y-axis.
31
+ */
32
+ export interface Datum {
33
+ key: Date | number | string;
34
+ meta?: Record<string, unknown>;
35
+ value: number;
36
+ }
37
+ export interface Series {
38
+ color?: string;
39
+ data: MaybeSignal<Datum[]>;
40
+ name: string;
41
+ }
42
+ export interface Scale<T> {
43
+ readonly domain: readonly [T, T];
44
+ invert(pixel: number): T;
45
+ map(value: T): number;
46
+ readonly range: readonly [number, number];
47
+ ticks(count?: number): T[];
48
+ }
49
+ export interface BandScale {
50
+ bandwidth(): number;
51
+ readonly domain: readonly string[];
52
+ gap(): number;
53
+ map(value: string): number;
54
+ readonly range: readonly [number, number];
55
+ ticks(count?: number): string[];
56
+ }
57
+ export type AxisPosition = 'bottom' | 'left' | 'right' | 'top';
58
+ export interface GridConfig {
59
+ color?: string;
60
+ dash?: string;
61
+ }
62
+ export interface AxisConfig {
63
+ grid?: GridConfig | boolean;
64
+ label?: string;
65
+ /**
66
+ * Axis position. Defaults to `'bottom'` for `xAxis` and `'left'` for `yAxis`
67
+ * when not specified.
68
+ */
69
+ position?: AxisPosition;
70
+ tickCount?: number;
71
+ tickFormat?: (value: Date | number | string) => string;
72
+ }
73
+ export interface TooltipConfig {
74
+ offset?: number;
75
+ /**
76
+ * Custom HTML renderer for the tooltip. The returned string is set via `innerHTML` —
77
+ * ensure any user-supplied data (series names, data point values) is sanitized before
78
+ * interpolation to prevent XSS.
79
+ */
80
+ render?: (datum: Datum, series: Series) => string;
81
+ /**
82
+ * Optional sanitizer applied to the `render` output before DOM injection.
83
+ * Use this to plug in DOMPurify or a similar HTML sanitizer.
84
+ * @example sanitize: (html) => DOMPurify.sanitize(html)
85
+ */
86
+ sanitize?: (html: string) => string;
87
+ }
88
+ export interface CrosshairConfig {
89
+ /** Show the horizontal crosshair line. Defaults to `false`. */
90
+ horizontal?: boolean;
91
+ /**
92
+ * Whether the crosshair snaps to the nearest datum (default `true`) or follows
93
+ * the raw mouse position (`false`). Tooltip/`onHover` data is always based on
94
+ * the nearest datum regardless of this setting — only the crosshair line's
95
+ * position is affected.
96
+ */
97
+ snap?: boolean;
98
+ /** Show the vertical crosshair line. Defaults to `true`. */
99
+ vertical?: boolean;
100
+ }
101
+ export interface ChartEvent {
102
+ datum: Datum;
103
+ originalEvent: MouseEvent;
104
+ series: Series;
105
+ }
106
+ export type LegendPosition = 'bottom' | 'left' | 'right' | 'top';
107
+ export interface LegendConfig {
108
+ position?: LegendPosition;
109
+ }
110
+ export interface TransitionConfig {
111
+ duration?: number;
112
+ easing?: 'ease-in' | 'ease-in-out' | 'ease-out' | 'linear' | ((t: number) => number);
113
+ stagger?: number;
114
+ }
115
+ export interface ChartPluginContext {
116
+ container: HTMLElement;
117
+ dimensions: Readable<ChartDimensions>;
118
+ /** Aborted when the chart is disposed — plugins can tie their own cleanup to this instead of relying solely on `dispose()`. */
119
+ disposalSignal: AbortSignal;
120
+ svg: SVGSVGElement;
121
+ }
122
+ export interface ChartPlugin {
123
+ dispose(): void;
124
+ install(ctx: ChartPluginContext): void;
125
+ }
126
+ export interface BaseChartConfig {
127
+ ariaLabel?: string;
128
+ legend?: LegendConfig | boolean;
129
+ margin?: Partial<ChartMargin>;
130
+ onClick?: (event: ChartEvent) => void;
131
+ onHover?: (event: ChartEvent | null) => void;
132
+ plugins?: ChartPlugin[];
133
+ tooltip?: TooltipConfig | boolean;
134
+ transition?: TransitionConfig;
135
+ xAxis?: AxisConfig;
136
+ yAxis?: AxisConfig;
137
+ }
138
+ export interface LineSeriesConfig extends Series {
139
+ curve?: 'linear' | 'monotone' | 'step';
140
+ pointRadius?: number;
141
+ showPoints?: boolean;
142
+ strokeWidth?: number;
143
+ }
144
+ export interface LineChartConfig extends BaseChartConfig {
145
+ crosshair?: CrosshairConfig | boolean;
146
+ series: MaybeSignal<LineSeriesConfig[]>;
147
+ }
148
+ export interface BarSeriesConfig extends Series {
149
+ borderRadius?: number;
150
+ }
151
+ /**
152
+ * `grouped` — vertical grouped bars (default)
153
+ * `stacked` — vertical stacked bars
154
+ * `grouped-horizontal` — horizontal grouped bars
155
+ * `stacked-horizontal` — horizontal stacked bars
156
+ */
157
+ export type BarVariant = 'grouped' | 'grouped-horizontal' | 'stacked' | 'stacked-horizontal';
158
+ export interface BarChartConfig extends BaseChartConfig {
159
+ series: MaybeSignal<BarSeriesConfig[]>;
160
+ variant?: BarVariant;
161
+ }
162
+ export interface AreaSeriesConfig extends Series {
163
+ curve?: 'linear' | 'monotone' | 'step';
164
+ fillOpacity?: number;
165
+ showLine?: boolean;
166
+ }
167
+ export interface AreaChartConfig extends BaseChartConfig {
168
+ crosshair?: CrosshairConfig | boolean;
169
+ series: MaybeSignal<AreaSeriesConfig[]>;
170
+ }
171
+ export type PieVariant = 'donut' | 'pie' | 'semi';
172
+ export interface PieSliceConfig {
173
+ color?: string;
174
+ label?: string;
175
+ value: number;
176
+ }
177
+ export interface PieChartConfig extends Omit<BaseChartConfig, 'onClick' | 'onHover' | 'xAxis' | 'yAxis'> {
178
+ cornerRadius?: number;
179
+ data: MaybeSignal<PieSliceConfig[]>;
180
+ innerRadius?: number;
181
+ onClick?: (slice: PieSliceConfig, index: number) => void;
182
+ onHover?: (slice: PieSliceConfig | null, index: number | null) => void;
183
+ padPixels?: number;
184
+ variant?: PieVariant;
185
+ }
186
+ export type SparklineVariant = 'area' | 'bar' | 'line' | 'stack';
187
+ export interface StackSegment {
188
+ color?: string;
189
+ label?: string;
190
+ value: number;
191
+ }
192
+ export interface SparklineConfig extends Pick<BaseChartConfig, 'ariaLabel' | 'transition'> {
193
+ color?: string;
194
+ cornerRadius?: number;
195
+ curve?: 'linear' | 'monotone' | 'step';
196
+ data: MaybeSignal<number[] | StackSegment[]>;
197
+ fillOpacity?: number;
198
+ onClick?: (index: number, value: number) => void;
199
+ onHover?: (index: number | null, value: number | null) => void;
200
+ padPixels?: number;
201
+ strokeWidth?: number;
202
+ variant?: SparklineVariant;
203
+ }
204
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@vielzeug/prism",
3
+ "version": "1.1.1",
4
+ "description": "Reactive SVG charts — line, bar, area, pie, and sparkline with signal-driven updates",
5
+ "keywords": [
6
+ "chart",
7
+ "svg",
8
+ "visualization",
9
+ "reactive",
10
+ "line-chart",
11
+ "bar-chart",
12
+ "area-chart",
13
+ "typescript"
14
+ ],
15
+ "homepage": "https://vielzeug.dev/prism/",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/helmuthdu/vielzeug",
19
+ "directory": "packages/prism"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/helmuthdu/vielzeug/issues"
23
+ },
24
+ "engines": {
25
+ "node": ">=18"
26
+ },
27
+ "type": "module",
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "main": "./dist/index.cjs",
32
+ "module": "./dist/index.js",
33
+ "types": "dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "source": "./src/index.ts",
37
+ "types": "./dist/index.d.ts",
38
+ "import": "./dist/index.js",
39
+ "require": "./dist/index.cjs"
40
+ },
41
+ "./theme": {
42
+ "source": "./src/theme/prism.css",
43
+ "import": "./dist/theme/prism.css",
44
+ "default": "./dist/theme/prism.css"
45
+ },
46
+ "./devtools": {
47
+ "source": "./src/devtools/index.ts",
48
+ "types": "./dist/devtools/index.d.ts",
49
+ "import": "./dist/devtools.js",
50
+ "require": "./dist/devtools.cjs"
51
+ }
52
+ },
53
+ "scripts": {
54
+ "build": "vite build && pnpm run build:bundle && mkdir -p dist/theme && cp src/theme/prism.css dist/theme/prism.css && pnpm run build:types",
55
+ "build:bundle": "vite build --config vite.bundle.config.ts",
56
+ "build:types": "tsc -p tsconfig.declarations.json",
57
+ "fix": "eslint --fix src",
58
+ "lint": "eslint src",
59
+ "prepublishOnly": "pnpm run build",
60
+ "test": "vitest"
61
+ },
62
+ "sideEffects": [
63
+ "./dist/theme/**"
64
+ ],
65
+ "dependencies": {
66
+ "@vielzeug/orbit": "workspace:*",
67
+ "@vielzeug/ripple": "workspace:*"
68
+ },
69
+ "devDependencies": {
70
+ "axe-core": "^4.12.1",
71
+ "typescript": "~6.0.3",
72
+ "vite": "^8.1.3",
73
+ "vitest": "^4.1.9"
74
+ },
75
+ "publishConfig": {
76
+ "access": "public",
77
+ "registry": "https://registry.npmjs.org/"
78
+ }
79
+ }