@orchidsoftware/charts 0.0.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 (109) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/LICENSE +21 -0
  3. package/README.md +122 -0
  4. package/dist/core/Chart.js +1 -0
  5. package/dist/core/Chart.js.map +1 -0
  6. package/dist/core/ChartData.js +1 -0
  7. package/dist/core/ChartData.js.map +1 -0
  8. package/dist/core/ChartDefinition.js +1 -0
  9. package/dist/core/ChartDefinition.js.map +1 -0
  10. package/dist/core/ChartSelection.js +1 -0
  11. package/dist/core/ChartSelection.js.map +1 -0
  12. package/dist/core/ChartTooltip.js +1 -0
  13. package/dist/core/ChartTooltip.js.map +1 -0
  14. package/dist/core/InteractionController.js +1 -0
  15. package/dist/core/InteractionController.js.map +1 -0
  16. package/dist/core/NormalizeAnnotations.js +1 -0
  17. package/dist/core/NormalizeAnnotations.js.map +1 -0
  18. package/dist/core/Options.js +1 -0
  19. package/dist/core/Options.js.map +1 -0
  20. package/dist/core/builders/Builder.js +1 -0
  21. package/dist/core/builders/Builder.js.map +1 -0
  22. package/dist/core/builders/BuilderArguments.js +1 -0
  23. package/dist/core/builders/BuilderArguments.js.map +1 -0
  24. package/dist/core/builders/BuilderScopes.js +1 -0
  25. package/dist/core/builders/BuilderScopes.js.map +1 -0
  26. package/dist/core/builders/BuilderState.js +1 -0
  27. package/dist/core/builders/BuilderState.js.map +1 -0
  28. package/dist/core/builders/BuilderValidation.js +1 -0
  29. package/dist/core/builders/BuilderValidation.js.map +1 -0
  30. package/dist/core/builders/CartesianBuilders.js +1 -0
  31. package/dist/core/builders/CartesianBuilders.js.map +1 -0
  32. package/dist/core/builders/CompositionBuilders.js +1 -0
  33. package/dist/core/builders/CompositionBuilders.js.map +1 -0
  34. package/dist/core/builders/TemporalBuilders.js +1 -0
  35. package/dist/core/builders/TemporalBuilders.js.map +1 -0
  36. package/dist/index.js +1 -0
  37. package/dist/renderers/ChartRendering.js +1 -0
  38. package/dist/renderers/ChartRendering.js.map +1 -0
  39. package/dist/renderers/LegendRenderer.js +1 -0
  40. package/dist/renderers/LegendRenderer.js.map +1 -0
  41. package/dist/renderers/SvgSurface.js +1 -0
  42. package/dist/renderers/SvgSurface.js.map +1 -0
  43. package/dist/renderers/cartesian/CartesianAxesRenderer.js +1 -0
  44. package/dist/renderers/cartesian/CartesianAxesRenderer.js.map +1 -0
  45. package/dist/renderers/cartesian/CartesianInspectorRenderer.js +1 -0
  46. package/dist/renderers/cartesian/CartesianInspectorRenderer.js.map +1 -0
  47. package/dist/renderers/cartesian/CartesianLayout.js +1 -0
  48. package/dist/renderers/cartesian/CartesianLayout.js.map +1 -0
  49. package/dist/renderers/cartesian/CartesianRendering.js +1 -0
  50. package/dist/renderers/cartesian/CartesianRendering.js.map +1 -0
  51. package/dist/renderers/cartesian/CartesianSeriesRendering.js +1 -0
  52. package/dist/renderers/cartesian/CartesianSeriesRendering.js.map +1 -0
  53. package/dist/renderers/composition/AggregationRendering.js +1 -0
  54. package/dist/renderers/composition/AggregationRendering.js.map +1 -0
  55. package/dist/renderers/composition/Composition.js +1 -0
  56. package/dist/renderers/composition/Composition.js.map +1 -0
  57. package/dist/renderers/composition/PolarAreaRendering.js +1 -0
  58. package/dist/renderers/composition/PolarAreaRendering.js.map +1 -0
  59. package/dist/renderers/composition/RadarRendering.js +1 -0
  60. package/dist/renderers/composition/RadarRendering.js.map +1 -0
  61. package/dist/renderers/temporal/HeatmapRendering.js +1 -0
  62. package/dist/renderers/temporal/HeatmapRendering.js.map +1 -0
  63. package/dist/renderers/temporal/TimesheetLayout.js +1 -0
  64. package/dist/renderers/temporal/TimesheetLayout.js.map +1 -0
  65. package/dist/renderers/temporal/TimesheetRendering.js +1 -0
  66. package/dist/renderers/temporal/TimesheetRendering.js.map +1 -0
  67. package/dist/support/Constants.js +1 -0
  68. package/dist/support/Constants.js.map +1 -0
  69. package/dist/support/Dom.js +1 -0
  70. package/dist/support/Dom.js.map +1 -0
  71. package/dist/support/Normalize.js +2 -0
  72. package/dist/support/Normalize.js.map +1 -0
  73. package/dist/support/Validation.js +1 -0
  74. package/dist/support/Validation.js.map +1 -0
  75. package/dist/support/geometry/CartesianGeometry.js +1 -0
  76. package/dist/support/geometry/CartesianGeometry.js.map +1 -0
  77. package/dist/support/geometry/Scale.js +1 -0
  78. package/dist/support/geometry/Scale.js.map +1 -0
  79. package/dist/support/geometry/SectorGeometry.js +1 -0
  80. package/dist/support/geometry/SectorGeometry.js.map +1 -0
  81. package/dist/support/presentation/Formatting.js +1 -0
  82. package/dist/support/presentation/Formatting.js.map +1 -0
  83. package/dist/support/presentation/Presentation.js +1 -0
  84. package/dist/support/presentation/Presentation.js.map +1 -0
  85. package/dist/support/presentation/Time.js +1 -0
  86. package/dist/support/presentation/Time.js.map +1 -0
  87. package/docs/api-reference.md +322 -0
  88. package/docs/bar.md +110 -0
  89. package/docs/bubble.md +76 -0
  90. package/docs/chart-types.md +35 -0
  91. package/docs/customization.md +178 -0
  92. package/docs/donut.md +55 -0
  93. package/docs/exporting.md +87 -0
  94. package/docs/frameworks.md +203 -0
  95. package/docs/getting-started.md +121 -0
  96. package/docs/heatmap.md +95 -0
  97. package/docs/line.md +148 -0
  98. package/docs/mixed.md +114 -0
  99. package/docs/percentage.md +48 -0
  100. package/docs/pie.md +58 -0
  101. package/docs/polar-area.md +46 -0
  102. package/docs/radar.md +49 -0
  103. package/docs/readme.md +37 -0
  104. package/docs/scatter.md +83 -0
  105. package/docs/timesheet.md +125 -0
  106. package/docs/updates-and-interaction.md +124 -0
  107. package/package.json +133 -0
  108. package/src/index.d.ts +481 -0
  109. package/src/styles.css +350 -0
package/src/styles.css ADDED
@@ -0,0 +1,350 @@
1
+ /* Foundations */
2
+
3
+ .charts2-host {
4
+ position: relative;
5
+ }
6
+
7
+ .charts2-scrollable-heatmap {
8
+ max-width: 100%;
9
+ overflow-x: auto;
10
+ overscroll-behavior-x: contain;
11
+ -webkit-overflow-scrolling: touch;
12
+ }
13
+
14
+ .charts2-scrollable-heatmap .charts2-heatmap-chart {
15
+ max-width: none;
16
+ }
17
+
18
+ :root {
19
+ --charts-label-color: #3a3a3c;
20
+ --charts-secondary-label-color: #6e6e73;
21
+ --charts-axis-line-color: #e5e5ea;
22
+ --charts-tooltip-bg: rgb(255 255 255 / 96%);
23
+ --charts-tooltip-value: #1d1d1f;
24
+ --charts-focus-ring: #007aff;
25
+ --charts-mark-separator: #fff;
26
+ --charts-point-fill: #fff;
27
+ }
28
+
29
+ /* Chart primitives */
30
+
31
+ .charts2-chart {
32
+ display: block;
33
+ max-width: 100%;
34
+ overflow: visible;
35
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
36
+ }
37
+
38
+ .charts2-title {
39
+ font-size: 15px;
40
+ font-weight: 600;
41
+ fill: var(--charts-label-color, #3a3a3c);
42
+ }
43
+
44
+ .charts2-axis {
45
+ stroke: var(--charts-axis-line-color, #f4f5f6);
46
+ stroke-width: 1;
47
+ vector-effect: non-scaling-stroke;
48
+ }
49
+
50
+ .charts2-line {
51
+ stroke-width: var(--charts-stroke-width, 2px);
52
+ stroke-linecap: round;
53
+ stroke-linejoin: round;
54
+ vector-effect: non-scaling-stroke;
55
+ }
56
+
57
+ .charts2-grid {
58
+ fill: none;
59
+ stroke: var(--charts-axis-line-color, #f4f5f6);
60
+ stroke-width: 1;
61
+ vector-effect: non-scaling-stroke;
62
+ shape-rendering: crispedges;
63
+ }
64
+
65
+ .charts2-radar {
66
+ stroke-width: 2;
67
+ vector-effect: non-scaling-stroke;
68
+ }
69
+
70
+ .charts2-polar-area,
71
+ .charts2-pie-slice,
72
+ .charts2-donut-slice,
73
+ .charts2-percentage-segment {
74
+ stroke: var(--charts-mark-separator);
75
+ stroke-width: 1.5;
76
+ vector-effect: non-scaling-stroke;
77
+ }
78
+
79
+ .charts2-label,
80
+ .charts2-legend,
81
+ .charts2-annotation {
82
+ font:
83
+ 11px/1.25 -apple-system,
84
+ BlinkMacSystemFont,
85
+ "SF Pro Text",
86
+ "Segoe UI",
87
+ sans-serif;
88
+ fill: var(--charts-label-color, #313b44);
89
+ }
90
+
91
+ .charts2-annotation {
92
+ font-size: 12px;
93
+ font-weight: 500;
94
+ font-variant-numeric: tabular-nums;
95
+ pointer-events: none;
96
+ opacity: 0.58;
97
+ }
98
+
99
+ .charts2-direct-value {
100
+ font:
101
+ 600 15px/1 -apple-system,
102
+ BlinkMacSystemFont,
103
+ "SF Pro Display",
104
+ sans-serif;
105
+ fill: var(--charts-label-color);
106
+ }
107
+
108
+ .charts2-marker {
109
+ stroke: var(--charts-secondary-label-color);
110
+ stroke-width: 1;
111
+ stroke-dasharray: 4 3;
112
+ vector-effect: non-scaling-stroke;
113
+ }
114
+
115
+ .charts2-slice-label {
116
+ font:
117
+ 600 10px system-ui,
118
+ sans-serif;
119
+ pointer-events: none;
120
+ fill: #fff;
121
+ }
122
+
123
+ /* Interaction states */
124
+
125
+ .charts2-mark {
126
+ cursor: default;
127
+ outline: none;
128
+ transform-origin: center;
129
+ transform-box: fill-box;
130
+ }
131
+
132
+ .charts2-selectable-mark {
133
+ cursor: pointer;
134
+ }
135
+
136
+ .charts2-x-hit {
137
+ fill: transparent;
138
+ stroke: transparent;
139
+ stroke-width: 1;
140
+ vector-effect: non-scaling-stroke;
141
+ }
142
+
143
+ .charts2-x-hit:hover,
144
+ .charts2-x-hit.is-hovered,
145
+ .charts2-x-hit.is-active {
146
+ fill: var(--charts-focus-ring);
147
+ fill-opacity: 0.08;
148
+
149
+ /*
150
+ stroke: var(--charts-focus-ring);
151
+ stroke-opacity: 0.4;
152
+ */
153
+ }
154
+
155
+ .charts2-previewable-mark:hover,
156
+ .charts2-interactive-mark.is-hovered,
157
+ .charts2-visual-mark.is-hovered {
158
+ filter: brightness(0.96) saturate(1.08);
159
+ }
160
+
161
+ .charts2-interactive-mark:focus-visible {
162
+ filter: drop-shadow(0 0 1px var(--charts-tooltip-bg)) drop-shadow(0 0 2px var(--charts-focus-ring));
163
+ }
164
+
165
+ .charts2-interactive-mark.is-active {
166
+ filter: brightness(0.92) saturate(1.12) drop-shadow(0 0 2px var(--charts-focus-ring));
167
+ }
168
+
169
+ .charts2-interactive-mark.is-pressed {
170
+ opacity: 0.72;
171
+ }
172
+
173
+ .charts2-point-hit {
174
+ stroke-width: 2;
175
+ vector-effect: non-scaling-stroke;
176
+ }
177
+
178
+ .charts2-point-hit:hover,
179
+ .charts2-point-hit.is-hovered,
180
+ .charts2-point-hit.is-active {
181
+ fill: var(--charts-focus-ring);
182
+ fill-opacity: 0.08;
183
+ stroke: currentcolor;
184
+ stroke-opacity: 0.42;
185
+ }
186
+
187
+ .charts2-point-halo {
188
+ pointer-events: none;
189
+ fill: var(--charts-point-fill);
190
+ stroke: var(--charts-point-fill);
191
+ stroke-width: 5;
192
+ vector-effect: non-scaling-stroke;
193
+ }
194
+
195
+ .charts2-point,
196
+ .charts2-scatter {
197
+ stroke-width: 3;
198
+ vector-effect: non-scaling-stroke;
199
+ }
200
+
201
+ /* Series and family details */
202
+
203
+ .charts2-legend-group {
204
+ pointer-events: none;
205
+ }
206
+
207
+ .charts2-legend-swatch {
208
+ vector-effect: non-scaling-stroke;
209
+ }
210
+
211
+ .charts2-line.charts2-series-1 {
212
+ stroke-dasharray: 8 4;
213
+ }
214
+
215
+ .charts2-line.charts2-series-2 {
216
+ stroke-dasharray: 2 3;
217
+ }
218
+
219
+ .charts2-line.charts2-series-3 {
220
+ stroke-dasharray: 10 3 2 3;
221
+ }
222
+
223
+ .charts2-heat-cell {
224
+ stroke: var(--charts-mark-separator);
225
+ stroke-width: 1;
226
+ }
227
+
228
+ .charts2-timesheet-bar {
229
+ vector-effect: non-scaling-stroke;
230
+ }
231
+
232
+ /* Tooltip */
233
+
234
+ .charts2-tooltip {
235
+ position: absolute;
236
+ z-index: 20;
237
+ box-sizing: border-box;
238
+ width: max-content;
239
+ max-width: min(280px, calc(100% - 16px));
240
+ max-height: min(240px, calc(100% - 8px));
241
+ padding: 8px 10px;
242
+ overflow: hidden;
243
+ font:
244
+ 500 12px/1.3 -apple-system,
245
+ BlinkMacSystemFont,
246
+ "Segoe UI",
247
+ Roboto,
248
+ sans-serif;
249
+ color: var(--charts-tooltip-value, #1d1d1f);
250
+ overflow-wrap: anywhere;
251
+ white-space: normal;
252
+ pointer-events: none;
253
+ background: var(--charts-tooltip-bg, rgb(255 255 255 / 96%));
254
+ border: 1px solid rgb(0 0 0 / 8%);
255
+ border-radius: 8px;
256
+ box-shadow: 0 4px 14px rgb(0 0 0 / 12%);
257
+ transform: translate(-50%, -100%);
258
+ }
259
+
260
+ .charts2-tooltip[hidden] {
261
+ display: none;
262
+ }
263
+
264
+ .charts2-tooltip-heading {
265
+ margin-bottom: 6px;
266
+ font-weight: 500;
267
+ color: var(--charts-secondary-label-color);
268
+ text-wrap: balance;
269
+ }
270
+
271
+ .charts2-tooltip-row {
272
+ display: grid;
273
+ grid-template-columns: 8px minmax(0, 1fr) auto;
274
+ gap: 7px;
275
+ align-items: center;
276
+ min-width: 160px;
277
+ }
278
+
279
+ .charts2-tooltip-row + .charts2-tooltip-row {
280
+ margin-top: 4px;
281
+ }
282
+
283
+ .charts2-tooltip-row .charts2-series-swatch {
284
+ width: 8px;
285
+ height: 8px;
286
+ border-radius: 50%;
287
+ }
288
+
289
+ .charts2-tooltip-row span {
290
+ overflow: hidden;
291
+ text-overflow: ellipsis;
292
+ font-weight: 500;
293
+ white-space: nowrap;
294
+ }
295
+
296
+ .charts2-tooltip-row strong {
297
+ font-weight: 600;
298
+ font-variant-numeric: tabular-nums;
299
+ }
300
+
301
+ /* Motion and adaptive appearance */
302
+
303
+ @media (prefers-reduced-motion: no-preference) {
304
+ .charts2-mark {
305
+ transition:
306
+ filter 160ms ease,
307
+ opacity 160ms ease,
308
+ transform 160ms ease,
309
+ stroke-width 160ms ease;
310
+ }
311
+ }
312
+
313
+ @media (prefers-reduced-motion: reduce) {
314
+ .charts2-mark {
315
+ transition: none !important;
316
+ }
317
+ }
318
+
319
+ @media (prefers-color-scheme: dark) {
320
+ :root {
321
+ --charts-label-color: #f2f2f7;
322
+ --charts-secondary-label-color: #aeaeb2;
323
+ --charts-axis-line-color: #3a3a3c;
324
+ --charts-tooltip-bg: rgb(44 44 46 / 96%);
325
+ --charts-tooltip-value: #fff;
326
+ --charts-mark-separator: #1c1c1e;
327
+ --charts-point-fill: #1c1c1e;
328
+ }
329
+ }
330
+
331
+ @media (prefers-contrast: more) {
332
+ :root {
333
+ --charts-axis-line-color: #8e8e93;
334
+ }
335
+
336
+ .charts2-interactive-mark:focus-visible,
337
+ .charts2-interactive-mark.is-active {
338
+ filter: drop-shadow(0 0 3px var(--charts-focus-ring));
339
+ }
340
+
341
+ .charts2-annotation {
342
+ font-weight: 600;
343
+ }
344
+ }
345
+
346
+ @media (forced-colors: active) {
347
+ .charts2-annotation {
348
+ fill: CanvasText !important;
349
+ }
350
+ }