@howells/hairline 0.0.0-stage → 0.1.0

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 (455) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +148 -2
  3. package/lib/charts/axes.js +5 -0
  4. package/lib/charts/basics/candlestick.data.js +44 -0
  5. package/lib/charts/basics/candlestick.js +180 -0
  6. package/lib/charts/basics/daily-empty.js +24 -0
  7. package/lib/charts/basics/daily-readings.js +16 -0
  8. package/lib/charts/basics/dot-heat.data.js +225 -0
  9. package/lib/charts/basics/dot-heat.js +174 -0
  10. package/lib/charts/basics/dumbbell-queue.js +203 -0
  11. package/lib/charts/basics/hairline-area.js +208 -0
  12. package/lib/charts/basics/hairline-line.js +195 -0
  13. package/lib/charts/basics/nested-treemap.data.js +55 -0
  14. package/lib/charts/basics/nested-treemap.js +191 -0
  15. package/lib/charts/basics/paired-rungs.data.js +31 -0
  16. package/lib/charts/basics/paired-rungs.js +151 -0
  17. package/lib/charts/basics/plumb-scatter.js +229 -0
  18. package/lib/charts/basics/rung-bars.js +178 -0
  19. package/lib/charts/basics/rung-geometry.js +6 -0
  20. package/lib/charts/basics/rung-histogram.data.js +73 -0
  21. package/lib/charts/basics/rung-histogram.js +153 -0
  22. package/lib/charts/basics/rung-waterfall.data.js +30 -0
  23. package/lib/charts/basics/rung-waterfall.js +150 -0
  24. package/lib/charts/basics/rungs.js +22 -0
  25. package/lib/charts/basics/series-key.js +26 -0
  26. package/lib/charts/basics/stacked-rungs.data.js +42 -0
  27. package/lib/charts/basics/stacked-rungs.js +174 -0
  28. package/lib/charts/basics/stream-ribbon.data.js +124 -0
  29. package/lib/charts/basics/stream-ribbon.js +336 -0
  30. package/lib/charts/basics/tick-box.data.js +50 -0
  31. package/lib/charts/basics/tick-box.js +226 -0
  32. package/lib/charts/basics/tick-donut.data.js +30 -0
  33. package/lib/charts/basics/tick-donut.js +210 -0
  34. package/lib/charts/basics/tick-gauge.data.js +8 -0
  35. package/lib/charts/basics/tick-gauge.js +169 -0
  36. package/lib/charts/basics/tick-rows.data.js +30 -0
  37. package/lib/charts/basics/tick-rows.js +121 -0
  38. package/lib/charts/basics/util-a.js +15 -0
  39. package/lib/charts/basics/util-b.js +13 -0
  40. package/lib/charts/big/circular-graph.data.js +827 -0
  41. package/lib/charts/big/circular-graph.js +289 -0
  42. package/lib/charts/big/force-galaxy-model.js +167 -0
  43. package/lib/charts/big/force-galaxy.data.js +813 -0
  44. package/lib/charts/big/force-galaxy.js +276 -0
  45. package/lib/charts/big/thread-triptych.data.js +204 -0
  46. package/lib/charts/big/thread-triptych.js +334 -0
  47. package/lib/charts/board/room.js +6 -0
  48. package/lib/charts/board/slope.js +176 -0
  49. package/lib/charts/board/spread.js +28 -0
  50. package/lib/charts/control.js +18 -0
  51. package/lib/charts/core.js +84 -0
  52. package/lib/charts/data-table.js +34 -0
  53. package/lib/charts/fills.js +153 -0
  54. package/lib/charts/forms/area-difference.data.js +62 -0
  55. package/lib/charts/forms/area-difference.js +192 -0
  56. package/lib/charts/forms/brush-math.js +42 -0
  57. package/lib/charts/forms/brush-strip.js +199 -0
  58. package/lib/charts/forms/brushed-overview.data.js +374 -0
  59. package/lib/charts/forms/brushed-overview.js +162 -0
  60. package/lib/charts/forms/chord-ring.data.js +140 -0
  61. package/lib/charts/forms/chord-ring.js +167 -0
  62. package/lib/charts/forms/circle-pack.data.js +80 -0
  63. package/lib/charts/forms/circle-pack.js +99 -0
  64. package/lib/charts/forms/hatched-stack.data.js +71 -0
  65. package/lib/charts/forms/hatched-stack.js +228 -0
  66. package/lib/charts/forms/radial-year.data.js +13 -0
  67. package/lib/charts/forms/radial-year.js +156 -0
  68. package/lib/charts/frame.js +73 -0
  69. package/lib/charts/glance/aggregate-sankey.data.js +74 -0
  70. package/lib/charts/glance/aggregate-sankey.js +242 -0
  71. package/lib/charts/glance/bar-race.data.js +122 -0
  72. package/lib/charts/glance/bar-race.js +246 -0
  73. package/lib/charts/glance/big-slice.data.js +41 -0
  74. package/lib/charts/glance/big-slice.js +238 -0
  75. package/lib/charts/glance/chunky-bars.data.js +22 -0
  76. package/lib/charts/glance/chunky-bars.js +113 -0
  77. package/lib/charts/glance/circular-graph.data.js +146 -0
  78. package/lib/charts/glance/circular-graph.js +138 -0
  79. package/lib/charts/glance/control-slot.js +9 -0
  80. package/lib/charts/glance/diverging-bar.data.js +34 -0
  81. package/lib/charts/glance/diverging-bar.js +154 -0
  82. package/lib/charts/glance/dot-waffle.data.js +26 -0
  83. package/lib/charts/glance/dot-waffle.js +179 -0
  84. package/lib/charts/glance/draw-in.data.js +9 -0
  85. package/lib/charts/glance/draw-in.goals.json.js +289 -0
  86. package/lib/charts/glance/draw-in.js +214 -0
  87. package/lib/charts/glance/dynamic-stream.data.js +6 -0
  88. package/lib/charts/glance/dynamic-stream.js +189 -0
  89. package/lib/charts/glance/force-graph.data.js +77 -0
  90. package/lib/charts/glance/force-graph.js +211 -0
  91. package/lib/charts/glance/jitter-strip.data.js +10 -0
  92. package/lib/charts/glance/jitter-strip.easter.json.js +430 -0
  93. package/lib/charts/glance/jitter-strip.js +157 -0
  94. package/lib/charts/glance/link-bundle.js +51 -0
  95. package/lib/charts/glance/matrix-heat-glance.data.js +108 -0
  96. package/lib/charts/glance/matrix-heat-glance.js +170 -0
  97. package/lib/charts/glance/pictorial-bar.data.js +22 -0
  98. package/lib/charts/glance/pictorial-bar.js +180 -0
  99. package/lib/charts/glance/rainfall-dual-area.data.js +177 -0
  100. package/lib/charts/glance/rainfall-dual-area.js +192 -0
  101. package/lib/charts/glance/rank-strip.data.js +76 -0
  102. package/lib/charts/glance/rank-strip.js +172 -0
  103. package/lib/charts/glance/scatter-labels.js +60 -0
  104. package/lib/charts/glance/scatter-morph.data.js +78 -0
  105. package/lib/charts/glance/scatter-morph.js +338 -0
  106. package/lib/charts/glance/single-axis.data.js +6 -0
  107. package/lib/charts/glance/single-axis.js +150 -0
  108. package/lib/charts/glance/single-axis.tides.json.js +180 -0
  109. package/lib/charts/glance/stagger-wave.data.js +66 -0
  110. package/lib/charts/glance/stagger-wave.js +132 -0
  111. package/lib/charts/glance/tree-lr.data.js +41 -0
  112. package/lib/charts/glance/tree-lr.js +135 -0
  113. package/lib/charts/glance/util-a.js +49 -0
  114. package/lib/charts/glance/util-b.js +19 -0
  115. package/lib/charts/glance/violin.data.js +9 -0
  116. package/lib/charts/glance/violin.js +185 -0
  117. package/lib/charts/glance/violin.tenors.json.js +5 -0
  118. package/lib/charts/hooks.js +154 -0
  119. package/lib/charts/hover.js +19 -0
  120. package/lib/charts/lupi/arc-matrix.data.js +83 -0
  121. package/lib/charts/lupi/arc-matrix.js +146 -0
  122. package/lib/charts/lupi/ballot-tally.data.js +22 -0
  123. package/lib/charts/lupi/ballot-tally.js +125 -0
  124. package/lib/charts/lupi/barcode-lollipop.data.js +195 -0
  125. package/lib/charts/lupi/barcode-lollipop.js +161 -0
  126. package/lib/charts/lupi/brand-spectrum.data.js +70 -0
  127. package/lib/charts/lupi/brand-spectrum.js +233 -0
  128. package/lib/charts/lupi/bubble-almanac.data.js +689 -0
  129. package/lib/charts/lupi/bubble-almanac.js +164 -0
  130. package/lib/charts/lupi/calendar-heat.data.js +399 -0
  131. package/lib/charts/lupi/calendar-heat.js +175 -0
  132. package/lib/charts/lupi/cluster-field.data.js +83 -0
  133. package/lib/charts/lupi/cluster-field.js +173 -0
  134. package/lib/charts/lupi/dot-cascade.data.js +54 -0
  135. package/lib/charts/lupi/dot-cascade.js +124 -0
  136. package/lib/charts/lupi/dotty-matrix.data.js +170 -0
  137. package/lib/charts/lupi/dotty-matrix.js +126 -0
  138. package/lib/charts/lupi/hourglass-stream.data.js +30 -0
  139. package/lib/charts/lupi/hourglass-stream.js +158 -0
  140. package/lib/charts/lupi/hundred-field.data.js +38 -0
  141. package/lib/charts/lupi/hundred-field.js +237 -0
  142. package/lib/charts/lupi/launch-fan.data.js +315 -0
  143. package/lib/charts/lupi/launch-fan.js +198 -0
  144. package/lib/charts/lupi/matrix-heat.data.js +97 -0
  145. package/lib/charts/lupi/matrix-heat.js +246 -0
  146. package/lib/charts/lupi/parallel-coordinates.data.js +54 -0
  147. package/lib/charts/lupi/parallel-coordinates.js +218 -0
  148. package/lib/charts/lupi/radial-convergence.data.js +178 -0
  149. package/lib/charts/lupi/radial-convergence.js +208 -0
  150. package/lib/charts/lupi/radial-patchwork.data.js +454 -0
  151. package/lib/charts/lupi/radial-patchwork.js +181 -0
  152. package/lib/charts/lupi/ridgeline.data.js +1834 -0
  153. package/lib/charts/lupi/ridgeline.js +195 -0
  154. package/lib/charts/lupi/trend-lineage.data.js +51 -0
  155. package/lib/charts/lupi/trend-lineage.js +198 -0
  156. package/lib/charts/lupi/type-colonnade.data.js +18 -0
  157. package/lib/charts/lupi/type-colonnade.js +198 -0
  158. package/lib/charts/lupi/util-a.js +14 -0
  159. package/lib/charts/lupi/util-b.js +12 -0
  160. package/lib/charts/maps/choropleth.js +295 -0
  161. package/lib/charts/maps/geo.js +84 -0
  162. package/lib/charts/maps/legend.js +83 -0
  163. package/lib/charts/maps/step-fill.js +9 -0
  164. package/lib/charts/maps/us-choropleth.data.js +249 -0
  165. package/lib/charts/maps/us-choropleth.js +41 -0
  166. package/lib/charts/maps/world-choropleth.data.js +681 -0
  167. package/lib/charts/maps/world-choropleth.js +46 -0
  168. package/lib/charts/markers.js +35 -0
  169. package/lib/charts/marks.js +31 -0
  170. package/lib/charts/motion.js +11 -0
  171. package/lib/charts/originals/daily-users.data.js +101 -0
  172. package/lib/charts/originals/daily-users.js +203 -0
  173. package/lib/charts/originals/feature-rank.data.js +92 -0
  174. package/lib/charts/originals/feature-rank.js +167 -0
  175. package/lib/charts/originals/format.js +5 -0
  176. package/lib/charts/originals/key.js +26 -0
  177. package/lib/charts/originals/response-time.data.js +98 -0
  178. package/lib/charts/originals/response-time.js +187 -0
  179. package/lib/charts/originals/revenue-by-plan.data.js +26 -0
  180. package/lib/charts/originals/revenue-by-plan.js +248 -0
  181. package/lib/charts/playback.js +68 -0
  182. package/lib/charts/plot-note.js +27 -0
  183. package/lib/charts/roles.js +5 -0
  184. package/lib/charts/rules.js +66 -0
  185. package/lib/charts/scale-context.js +6 -0
  186. package/lib/charts/shapes.js +8 -0
  187. package/lib/charts/shared-options.js +25 -0
  188. package/lib/charts/svg.js +43 -0
  189. package/lib/charts/text.js +30 -0
  190. package/lib/charts/texture-ids.js +20 -0
  191. package/lib/charts/texture.js +286 -0
  192. package/lib/charts/util.js +43 -0
  193. package/lib/charts/value-grid.js +26 -0
  194. package/lib/draw.js +27 -0
  195. package/lib/entries/dumbbell-queue.js +2 -0
  196. package/lib/entries/hairline-area.js +2 -0
  197. package/lib/entries/hairline-line.js +2 -0
  198. package/lib/entries/plumb-scatter.js +2 -0
  199. package/lib/entries/rung-bars.js +2 -0
  200. package/lib/entries/slope.js +2 -0
  201. package/lib/frame.js +2 -0
  202. package/lib/hairline.css +1385 -0
  203. package/lib/index.js +72 -0
  204. package/lib/json-schema/dumbbell-queue.json +258 -0
  205. package/lib/json-schema/hairline-area.json +262 -0
  206. package/lib/json-schema/hairline-line.json +256 -0
  207. package/lib/json-schema/index.json +50 -0
  208. package/lib/json-schema/plumb-scatter.json +363 -0
  209. package/lib/json-schema/rung-bars.json +230 -0
  210. package/lib/json-schema/slope.json +333 -0
  211. package/lib/kit.js +16 -0
  212. package/lib/lib/format.js +29 -0
  213. package/lib/lib/random.js +8 -0
  214. package/lib/maps.js +4 -0
  215. package/lib/schema/daily.js +9 -0
  216. package/lib/schema/dumbbell-queue.js +28 -0
  217. package/lib/schema/format.js +72 -0
  218. package/lib/schema/hairline-area.js +24 -0
  219. package/lib/schema/hairline-line.js +23 -0
  220. package/lib/schema/key.js +4 -0
  221. package/lib/schema/metrics.js +26 -0
  222. package/lib/schema/motion.js +12 -0
  223. package/lib/schema/options.js +21 -0
  224. package/lib/schema/plumb-scatter.js +48 -0
  225. package/lib/schema/registry.js +132 -0
  226. package/lib/schema/rung-bars.js +25 -0
  227. package/lib/schema/scale.js +9 -0
  228. package/lib/schema/slope.js +28 -0
  229. package/lib/schema/validate.js +25 -0
  230. package/lib/schema.js +16 -0
  231. package/lib/theme/derive.js +98 -0
  232. package/lib/theme.css +443 -0
  233. package/lib/theme.js +1 -0
  234. package/lib/tokens.css +306 -0
  235. package/lib/types/charts/axes.d.ts +14 -0
  236. package/lib/types/charts/basics/candlestick.d.ts +22 -0
  237. package/lib/types/charts/basics/candlestick.data.d.ts +10 -0
  238. package/lib/types/charts/basics/daily-empty.d.ts +7 -0
  239. package/lib/types/charts/basics/daily-readings.d.ts +38 -0
  240. package/lib/types/charts/basics/dot-heat.d.ts +19 -0
  241. package/lib/types/charts/basics/dot-heat.data.d.ts +28 -0
  242. package/lib/types/charts/basics/dumbbell-queue.d.ts +15 -0
  243. package/lib/types/charts/basics/hairline-area.d.ts +18 -0
  244. package/lib/types/charts/basics/hairline-line.d.ts +18 -0
  245. package/lib/types/charts/basics/nested-treemap.d.ts +18 -0
  246. package/lib/types/charts/basics/nested-treemap.data.d.ts +30 -0
  247. package/lib/types/charts/basics/paired-rungs.d.ts +21 -0
  248. package/lib/types/charts/basics/paired-rungs.data.d.ts +43 -0
  249. package/lib/types/charts/basics/plumb-scatter.d.ts +14 -0
  250. package/lib/types/charts/basics/rung-bars.d.ts +16 -0
  251. package/lib/types/charts/basics/rung-geometry.d.ts +6 -0
  252. package/lib/types/charts/basics/rung-histogram.d.ts +22 -0
  253. package/lib/types/charts/basics/rung-histogram.data.d.ts +34 -0
  254. package/lib/types/charts/basics/rung-waterfall.d.ts +19 -0
  255. package/lib/types/charts/basics/rung-waterfall.data.d.ts +31 -0
  256. package/lib/types/charts/basics/rungs.d.ts +28 -0
  257. package/lib/types/charts/basics/series-key.d.ts +19 -0
  258. package/lib/types/charts/basics/stacked-rungs.d.ts +20 -0
  259. package/lib/types/charts/basics/stacked-rungs.data.d.ts +26 -0
  260. package/lib/types/charts/basics/stream-ribbon.d.ts +19 -0
  261. package/lib/types/charts/basics/stream-ribbon.data.d.ts +29 -0
  262. package/lib/types/charts/basics/tick-box.d.ts +19 -0
  263. package/lib/types/charts/basics/tick-box.data.d.ts +30 -0
  264. package/lib/types/charts/basics/tick-donut.d.ts +24 -0
  265. package/lib/types/charts/basics/tick-donut.data.d.ts +25 -0
  266. package/lib/types/charts/basics/tick-gauge.d.ts +22 -0
  267. package/lib/types/charts/basics/tick-gauge.data.d.ts +24 -0
  268. package/lib/types/charts/basics/tick-rows.d.ts +18 -0
  269. package/lib/types/charts/basics/tick-rows.data.d.ts +23 -0
  270. package/lib/types/charts/basics/util-a.d.ts +10 -0
  271. package/lib/types/charts/basics/util-b.d.ts +13 -0
  272. package/lib/types/charts/big/circular-graph.d.ts +20 -0
  273. package/lib/types/charts/big/circular-graph.data.d.ts +46 -0
  274. package/lib/types/charts/big/force-galaxy-model.d.ts +109 -0
  275. package/lib/types/charts/big/force-galaxy.d.ts +18 -0
  276. package/lib/types/charts/big/force-galaxy.data.d.ts +48 -0
  277. package/lib/types/charts/big/thread-triptych.d.ts +17 -0
  278. package/lib/types/charts/big/thread-triptych.data.d.ts +41 -0
  279. package/lib/types/charts/board/room.d.ts +18 -0
  280. package/lib/types/charts/board/slope.d.ts +14 -0
  281. package/lib/types/charts/board/spread.d.ts +5 -0
  282. package/lib/types/charts/control.d.ts +17 -0
  283. package/lib/types/charts/core.d.ts +77 -0
  284. package/lib/types/charts/data-table.d.ts +18 -0
  285. package/lib/types/charts/fills.d.ts +103 -0
  286. package/lib/types/charts/forms/area-difference.d.ts +9 -0
  287. package/lib/types/charts/forms/area-difference.data.d.ts +26 -0
  288. package/lib/types/charts/forms/brush-math.d.ts +19 -0
  289. package/lib/types/charts/forms/brush-strip.d.ts +19 -0
  290. package/lib/types/charts/forms/brushed-overview.d.ts +12 -0
  291. package/lib/types/charts/forms/brushed-overview.data.d.ts +16 -0
  292. package/lib/types/charts/forms/chord-ring.d.ts +12 -0
  293. package/lib/types/charts/forms/chord-ring.data.d.ts +29 -0
  294. package/lib/types/charts/forms/circle-pack.d.ts +9 -0
  295. package/lib/types/charts/forms/circle-pack.data.d.ts +23 -0
  296. package/lib/types/charts/forms/hatched-stack.d.ts +10 -0
  297. package/lib/types/charts/forms/hatched-stack.data.d.ts +36 -0
  298. package/lib/types/charts/forms/radial-year.d.ts +8 -0
  299. package/lib/types/charts/forms/radial-year.data.d.ts +17 -0
  300. package/lib/types/charts/frame.d.ts +21 -0
  301. package/lib/types/charts/glance/aggregate-sankey.d.ts +23 -0
  302. package/lib/types/charts/glance/aggregate-sankey.data.d.ts +32 -0
  303. package/lib/types/charts/glance/bar-race.d.ts +20 -0
  304. package/lib/types/charts/glance/bar-race.data.d.ts +32 -0
  305. package/lib/types/charts/glance/big-slice.d.ts +27 -0
  306. package/lib/types/charts/glance/big-slice.data.d.ts +30 -0
  307. package/lib/types/charts/glance/chunky-bars.d.ts +18 -0
  308. package/lib/types/charts/glance/chunky-bars.data.d.ts +24 -0
  309. package/lib/types/charts/glance/circular-graph.d.ts +19 -0
  310. package/lib/types/charts/glance/circular-graph.data.d.ts +43 -0
  311. package/lib/types/charts/glance/control-slot.d.ts +9 -0
  312. package/lib/types/charts/glance/diverging-bar.d.ts +19 -0
  313. package/lib/types/charts/glance/diverging-bar.data.d.ts +27 -0
  314. package/lib/types/charts/glance/dot-waffle.d.ts +19 -0
  315. package/lib/types/charts/glance/dot-waffle.data.d.ts +31 -0
  316. package/lib/types/charts/glance/draw-in.d.ts +20 -0
  317. package/lib/types/charts/glance/draw-in.data.d.ts +6 -0
  318. package/lib/types/charts/glance/dynamic-stream.d.ts +22 -0
  319. package/lib/types/charts/glance/dynamic-stream.data.d.ts +7 -0
  320. package/lib/types/charts/glance/force-graph.d.ts +16 -0
  321. package/lib/types/charts/glance/force-graph.data.d.ts +45 -0
  322. package/lib/types/charts/glance/jitter-strip.d.ts +24 -0
  323. package/lib/types/charts/glance/jitter-strip.data.d.ts +27 -0
  324. package/lib/types/charts/glance/link-bundle.d.ts +22 -0
  325. package/lib/types/charts/glance/matrix-heat-glance.d.ts +22 -0
  326. package/lib/types/charts/glance/matrix-heat-glance.data.d.ts +35 -0
  327. package/lib/types/charts/glance/pictorial-bar.d.ts +20 -0
  328. package/lib/types/charts/glance/pictorial-bar.data.d.ts +27 -0
  329. package/lib/types/charts/glance/rainfall-dual-area.d.ts +19 -0
  330. package/lib/types/charts/glance/rainfall-dual-area.data.d.ts +32 -0
  331. package/lib/types/charts/glance/rank-strip.d.ts +19 -0
  332. package/lib/types/charts/glance/rank-strip.data.d.ts +36 -0
  333. package/lib/types/charts/glance/scatter-labels.d.ts +23 -0
  334. package/lib/types/charts/glance/scatter-morph.d.ts +22 -0
  335. package/lib/types/charts/glance/scatter-morph.data.d.ts +30 -0
  336. package/lib/types/charts/glance/single-axis.d.ts +27 -0
  337. package/lib/types/charts/glance/single-axis.data.d.ts +6 -0
  338. package/lib/types/charts/glance/stagger-wave.d.ts +18 -0
  339. package/lib/types/charts/glance/stagger-wave.data.d.ts +26 -0
  340. package/lib/types/charts/glance/tree-lr.d.ts +16 -0
  341. package/lib/types/charts/glance/tree-lr.data.d.ts +27 -0
  342. package/lib/types/charts/glance/util-a.d.ts +31 -0
  343. package/lib/types/charts/glance/util-b.d.ts +12 -0
  344. package/lib/types/charts/glance/violin.d.ts +22 -0
  345. package/lib/types/charts/glance/violin.data.d.ts +24 -0
  346. package/lib/types/charts/hooks.d.ts +109 -0
  347. package/lib/types/charts/hover.d.ts +26 -0
  348. package/lib/types/charts/lupi/arc-matrix.d.ts +18 -0
  349. package/lib/types/charts/lupi/arc-matrix.data.d.ts +28 -0
  350. package/lib/types/charts/lupi/ballot-tally.d.ts +19 -0
  351. package/lib/types/charts/lupi/ballot-tally.data.d.ts +28 -0
  352. package/lib/types/charts/lupi/barcode-lollipop.d.ts +19 -0
  353. package/lib/types/charts/lupi/barcode-lollipop.data.d.ts +26 -0
  354. package/lib/types/charts/lupi/brand-spectrum.d.ts +28 -0
  355. package/lib/types/charts/lupi/brand-spectrum.data.d.ts +34 -0
  356. package/lib/types/charts/lupi/bubble-almanac.d.ts +22 -0
  357. package/lib/types/charts/lupi/bubble-almanac.data.d.ts +45 -0
  358. package/lib/types/charts/lupi/calendar-heat.d.ts +19 -0
  359. package/lib/types/charts/lupi/calendar-heat.data.d.ts +20 -0
  360. package/lib/types/charts/lupi/cluster-field.d.ts +21 -0
  361. package/lib/types/charts/lupi/cluster-field.data.d.ts +52 -0
  362. package/lib/types/charts/lupi/dot-cascade.d.ts +22 -0
  363. package/lib/types/charts/lupi/dot-cascade.data.d.ts +24 -0
  364. package/lib/types/charts/lupi/dotty-matrix.d.ts +17 -0
  365. package/lib/types/charts/lupi/dotty-matrix.data.d.ts +32 -0
  366. package/lib/types/charts/lupi/hourglass-stream.d.ts +18 -0
  367. package/lib/types/charts/lupi/hourglass-stream.data.d.ts +27 -0
  368. package/lib/types/charts/lupi/hundred-field.d.ts +18 -0
  369. package/lib/types/charts/lupi/hundred-field.data.d.ts +24 -0
  370. package/lib/types/charts/lupi/launch-fan.d.ts +37 -0
  371. package/lib/types/charts/lupi/launch-fan.data.d.ts +41 -0
  372. package/lib/types/charts/lupi/matrix-heat.d.ts +20 -0
  373. package/lib/types/charts/lupi/matrix-heat.data.d.ts +29 -0
  374. package/lib/types/charts/lupi/parallel-coordinates.d.ts +23 -0
  375. package/lib/types/charts/lupi/parallel-coordinates.data.d.ts +40 -0
  376. package/lib/types/charts/lupi/radial-convergence.d.ts +15 -0
  377. package/lib/types/charts/lupi/radial-convergence.data.d.ts +24 -0
  378. package/lib/types/charts/lupi/radial-patchwork.d.ts +16 -0
  379. package/lib/types/charts/lupi/radial-patchwork.data.d.ts +35 -0
  380. package/lib/types/charts/lupi/ridgeline.d.ts +23 -0
  381. package/lib/types/charts/lupi/ridgeline.data.d.ts +19 -0
  382. package/lib/types/charts/lupi/trend-lineage.d.ts +18 -0
  383. package/lib/types/charts/lupi/trend-lineage.data.d.ts +56 -0
  384. package/lib/types/charts/lupi/type-colonnade.d.ts +20 -0
  385. package/lib/types/charts/lupi/type-colonnade.data.d.ts +30 -0
  386. package/lib/types/charts/lupi/util-a.d.ts +9 -0
  387. package/lib/types/charts/lupi/util-b.d.ts +11 -0
  388. package/lib/types/charts/maps/choropleth.d.ts +33 -0
  389. package/lib/types/charts/maps/geo.d.ts +48 -0
  390. package/lib/types/charts/maps/legend.d.ts +14 -0
  391. package/lib/types/charts/maps/step-fill.d.ts +6 -0
  392. package/lib/types/charts/maps/us-choropleth.d.ts +25 -0
  393. package/lib/types/charts/maps/us-choropleth.data.d.ts +23 -0
  394. package/lib/types/charts/maps/world-choropleth.d.ts +22 -0
  395. package/lib/types/charts/maps/world-choropleth.data.d.ts +35 -0
  396. package/lib/types/charts/markers.d.ts +42 -0
  397. package/lib/types/charts/marks.d.ts +58 -0
  398. package/lib/types/charts/motion.d.ts +12 -0
  399. package/lib/types/charts/originals/daily-users.d.ts +13 -0
  400. package/lib/types/charts/originals/daily-users.data.d.ts +17 -0
  401. package/lib/types/charts/originals/feature-rank.d.ts +13 -0
  402. package/lib/types/charts/originals/feature-rank.data.d.ts +29 -0
  403. package/lib/types/charts/originals/format.d.ts +2 -0
  404. package/lib/types/charts/originals/key.d.ts +16 -0
  405. package/lib/types/charts/originals/response-time.d.ts +11 -0
  406. package/lib/types/charts/originals/response-time.data.d.ts +24 -0
  407. package/lib/types/charts/originals/revenue-by-plan.d.ts +12 -0
  408. package/lib/types/charts/originals/revenue-by-plan.data.d.ts +26 -0
  409. package/lib/types/charts/playback.d.ts +42 -0
  410. package/lib/types/charts/plot-note.d.ts +37 -0
  411. package/lib/types/charts/roles.d.ts +28 -0
  412. package/lib/types/charts/rules.d.ts +62 -0
  413. package/lib/types/charts/scale-context.d.ts +3 -0
  414. package/lib/types/charts/shapes.d.ts +9 -0
  415. package/lib/types/charts/shared-options.d.ts +25 -0
  416. package/lib/types/charts/svg.d.ts +24 -0
  417. package/lib/types/charts/text.d.ts +36 -0
  418. package/lib/types/charts/texture-ids.d.ts +24 -0
  419. package/lib/types/charts/texture.d.ts +185 -0
  420. package/lib/types/charts/util.d.ts +66 -0
  421. package/lib/types/charts/value-grid.d.ts +22 -0
  422. package/lib/types/draw.d.ts +279 -0
  423. package/lib/types/entries/dumbbell-queue.d.ts +2 -0
  424. package/lib/types/entries/hairline-area.d.ts +2 -0
  425. package/lib/types/entries/hairline-line.d.ts +2 -0
  426. package/lib/types/entries/plumb-scatter.d.ts +2 -0
  427. package/lib/types/entries/rung-bars.d.ts +2 -0
  428. package/lib/types/entries/slope.d.ts +2 -0
  429. package/lib/types/frame.d.ts +2 -0
  430. package/lib/types/index.d.ts +82 -0
  431. package/lib/types/kit.d.ts +22 -0
  432. package/lib/types/lib/format.d.ts +58 -0
  433. package/lib/types/lib/random.d.ts +5 -0
  434. package/lib/types/maps.d.ts +2 -0
  435. package/lib/types/schema/daily.d.ts +14 -0
  436. package/lib/types/schema/dumbbell-queue.d.ts +91 -0
  437. package/lib/types/schema/format.d.ts +101 -0
  438. package/lib/types/schema/hairline-area.d.ts +83 -0
  439. package/lib/types/schema/hairline-line.d.ts +85 -0
  440. package/lib/types/schema/key.d.ts +12 -0
  441. package/lib/types/schema/metrics.d.ts +26 -0
  442. package/lib/types/schema/motion.d.ts +22 -0
  443. package/lib/types/schema/options.d.ts +51 -0
  444. package/lib/types/schema/plumb-scatter.d.ts +124 -0
  445. package/lib/types/schema/registry.d.ts +309 -0
  446. package/lib/types/schema/rung-bars.d.ts +84 -0
  447. package/lib/types/schema/scale.d.ts +34 -0
  448. package/lib/types/schema/slope.d.ts +120 -0
  449. package/lib/types/schema/validate.d.ts +29 -0
  450. package/lib/types/schema.d.ts +30 -0
  451. package/lib/types/theme/derive.d.ts +23 -0
  452. package/lib/types/theme.d.ts +2 -0
  453. package/lib/vendor/us-atlas/states-10m.json.js +13855 -0
  454. package/lib/vendor/world-atlas/countries-110m.json.js +9357 -0
  455. package/package.json +162 -4
@@ -0,0 +1,185 @@
1
+ "use client";
2
+ import { useHover as e } from "../hooks.js";
3
+ import { Plot as t, Tooltip as n } from "../core.js";
4
+ import { noteOf as r, noteSpace as i, ranks as a, stagger as o } from "../util.js";
5
+ import { DimGroup as s, HitRect as c, TipText as l } from "../hover.js";
6
+ import "../marks.js";
7
+ import { FootNote as u } from "../plot-note.js";
8
+ import { HRule as d } from "../rules.js";
9
+ import { ChartSvg as f } from "../svg.js";
10
+ import { Label as p } from "../text.js";
11
+ import { paint as m, useTextureIds as h } from "../texture-ids.js";
12
+ import { Hatch as g } from "../texture.js";
13
+ import { labelRoom as _ } from "./util-a.js";
14
+ import { density as v, silverman as y } from "./util-b.js";
15
+ import { violinDemo as b } from "./violin.data.js";
16
+ import { useMemo as x } from "react";
17
+ import { scaleBand as S, scaleLinear as C } from "d3-scale";
18
+ import { extent as w, median as T, quantile as E } from "d3-array";
19
+ import { jsx as D, jsxs as O } from "react/jsx-runtime";
20
+ import { area as k, curveBasis as A } from "d3-shape";
21
+ //#region src/charts/glance/violin.tsx
22
+ var j = (e) => `${Math.round(e * 10) / 10}`, M = "cwt", N = (e) => {
23
+ let t = e.values.toSorted((e, t) => e - t), [n = 0, r = 0] = w(t), i = Array.from({ length: 48 }, (e, t) => n + (r - n) * t / 47);
24
+ return {
25
+ at: i,
26
+ dens: v(t, i, y(t) * 1.1),
27
+ hi: r,
28
+ lo: n,
29
+ med: T(t) ?? 0,
30
+ n: t.length,
31
+ p90: E(t, .9) ?? 0
32
+ };
33
+ }, P = (e, t) => {
34
+ let n = Math.round((e.med - e.lo) / (e.hi - e.lo || 1) * (e.at.length - 1));
35
+ return e.dens[n] / Math.max(...e.dens) * t;
36
+ }, F = (e, t, n) => S().domain(e).range([t, n]).paddingInner(.1).paddingOuter(.05), I = (e, t) => e * (t ? .26 : .36), L = (e, t) => e * (t ? .38 : .4), R = (e) => {
37
+ let t = _(e.ticks, "t-axis") + 8, n = (n) => {
38
+ let r = F(e.labels, t, e.width - n), i = r.bandwidth();
39
+ return Math.max(...e.labels.map((t, n) => (r(t) ?? 0) + L(i, e.narrow) + P(e.stats[n], I(i, e.narrow)) + 9 + _([e.format(e.stats[n].med)], "t-value") - e.width));
40
+ };
41
+ if (n(0) <= 0) return {
42
+ left: t,
43
+ right: 0
44
+ };
45
+ let [r, i] = [0, e.width / 2];
46
+ for (let e = 0; e < 20; e += 1) {
47
+ let e = (r + i) / 2;
48
+ n(e) > 0 ? r = e : i = e;
49
+ }
50
+ return {
51
+ left: t,
52
+ right: i
53
+ };
54
+ }, z = (e) => {
55
+ let t = e.stats, n = Math.max(...t.dens), r = (t) => t / n * e.half, i = k().curve(A).y((n, r) => e.y(t.at[r])).x0((n, i) => e.cx - r(t.dens[i])).x1((n, i) => e.cx + r(t.dens[i])), a = P(t, e.half);
56
+ return /* @__PURE__ */ O(s, {
57
+ dim: e.dimmed,
58
+ onPointerEnter: () => {
59
+ e.onEnter(e.cx, e.y(t.hi) - 8);
60
+ },
61
+ children: [
62
+ /* @__PURE__ */ D(c, {
63
+ x: e.left,
64
+ y: e.top,
65
+ width: e.bw,
66
+ height: e.floor - e.top
67
+ }),
68
+ /* @__PURE__ */ O("g", {
69
+ className: "grow-y",
70
+ style: o(e.i, "series"),
71
+ children: [/* @__PURE__ */ D("path", {
72
+ d: i(t.at) ?? "",
73
+ className: e.fill,
74
+ fill: e.pattern,
75
+ strokeWidth: e.pattern === void 0 ? void 0 : 1
76
+ }), /* @__PURE__ */ D("line", {
77
+ className: "stroke-paper",
78
+ x1: e.cx - a - 2,
79
+ x2: e.cx + a + 2,
80
+ y1: Math.round(e.y(t.med)),
81
+ y2: Math.round(e.y(t.med)),
82
+ strokeWidth: 2
83
+ })]
84
+ }),
85
+ /* @__PURE__ */ D(p, {
86
+ dy: "0.36em",
87
+ muted: !e.hero,
88
+ order: e.i + 4,
89
+ voice: "value",
90
+ x: e.cx + a + 9,
91
+ y: e.y(t.med),
92
+ children: e.valueText
93
+ }),
94
+ /* @__PURE__ */ D(p, {
95
+ anchor: "middle",
96
+ muted: !e.hero,
97
+ voice: "label",
98
+ x: e.cx,
99
+ y: e.floor + 20,
100
+ children: e.group.label
101
+ })
102
+ ]
103
+ });
104
+ }, B = (o) => {
105
+ let s = o.data ?? b, c = o.height ?? 420, _ = o.format ?? j, v = o.unit ?? "towers", y = e(), S = x(() => s.map((e) => N(e)), [s]), w = a(S.map((e) => e.med), o.lowIsBest ?? !0), T = Math.max(...S.map((e) => e.hi)), E = o.highlight ?? w.indexOf(0), k = h("violin"), A = `Violins: ${s.map((e, t) => `${e.label} median ${_(S[t].med)} ${M}`).join(", ")}`;
106
+ return /* @__PURE__ */ D(t, {
107
+ overlay: y.at === null ? null : /* @__PURE__ */ D(n, {
108
+ x: y.at.x,
109
+ y: y.at.y,
110
+ children: /* @__PURE__ */ D(l, {
111
+ facts: [
112
+ `median ${_(S[y.at.key].med)} ${M}`,
113
+ `90% under ${_(S[y.at.key].p90)} ${M}`,
114
+ `${S[y.at.key].n} ${v}`
115
+ ],
116
+ lead: s[y.at.key].label
117
+ })
118
+ }),
119
+ children: (e) => {
120
+ let t = e < 480, n = 32 + i(r(o), e - 16, 20), a = C().domain([0, T]).nice().range([c - n, 12]), { left: l, right: h } = R({
121
+ format: _,
122
+ labels: s.map((e) => e.label),
123
+ narrow: t,
124
+ stats: S,
125
+ ticks: a.ticks(4).map((e, t, n) => t === n.length - 1 ? `${_(e)} ${M}` : _(e)),
126
+ width: e
127
+ }), v = {
128
+ bottom: n,
129
+ left: l,
130
+ right: h,
131
+ top: 12
132
+ }, b = F(s.map((e) => e.label), l, e - h), x = b.bandwidth(), w = c - v.bottom;
133
+ return /* @__PURE__ */ O(f, {
134
+ height: c,
135
+ label: A,
136
+ leave: y.clear,
137
+ width: e,
138
+ children: [
139
+ /* @__PURE__ */ D("defs", { children: /* @__PURE__ */ D(g, {
140
+ id: k("hatch"),
141
+ tone: "fill-l4"
142
+ }) }),
143
+ a.ticks(4).map((t) => /* @__PURE__ */ O("g", { children: [/* @__PURE__ */ D(d, {
144
+ kind: t === 0 ? "hairline" : "grid",
145
+ x0: v.left,
146
+ x1: e - v.right,
147
+ y: a(t)
148
+ }), /* @__PURE__ */ D(p, {
149
+ anchor: "end",
150
+ middle: !0,
151
+ voice: "axis",
152
+ x: v.left - 8,
153
+ y: a(t),
154
+ children: t === a.ticks(4).at(-1) ? `${_(t)} ${M}` : _(t)
155
+ })] }, t)),
156
+ s.map((e, n) => /* @__PURE__ */ D(z, {
157
+ bw: x,
158
+ cx: (b(e.label) ?? 0) + L(x, t),
159
+ dimmed: y.dim(n),
160
+ fill: E === n ? "fill-hero" : "stroke-l5",
161
+ pattern: E === n ? void 0 : m(k("hatch")),
162
+ floor: w,
163
+ group: e,
164
+ hero: E === n,
165
+ i: n,
166
+ left: b(e.label) ?? 0,
167
+ onEnter: y.showAt(n),
168
+ stats: S[n],
169
+ top: v.top,
170
+ valueText: _(S[n].med),
171
+ half: I(x, t),
172
+ y: a
173
+ }, e.label)),
174
+ /* @__PURE__ */ D(u, {
175
+ height: c,
176
+ text: r(o),
177
+ width: e
178
+ })
179
+ ]
180
+ });
181
+ }
182
+ });
183
+ };
184
+ //#endregion
185
+ export { B as Violin };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ //#region src/charts/glance/violin.tenors.json
3
+ var e = /*#__PURE__*/ JSON.parse("[{\"label\":\"6 bells\",\"lb\":[149,178.5,182,190,212,235,254,266,286,288,291,298,300,301,302,304,307,308,310,317,317,318,320,321,328,330,341,342,343,352,368,379,381,384,387,387,388,392,396,398,402,412,416,416,418,421,422,423,426,427,429,429,430,431,436,440,440,445,448,461,462,468,469,473,474,474,478,479,481,482,485,490,490,493,493,497,507,507,510,512,515,515,516,516,518,519,520,522,524,525,527,527,529,529,529,532,539,540,542,548,549,549,551,554,556,560,560,560,562,569,569,570,571,572,575,575,576,578,578,580,580,582,582,586,587,588,588,589,590,593,595,599,600,601,602,604,605,606,611,611,611,612,612,614,614,614,616,616,617,617,618,618,619,619,623,625,626,629,629,632,632,632,633,634,635,635,636,637,638,638,638,640,641,642,643,643,644,644,644,647,647,648,648,649,650,653,654,655,656,657,659,659,660,660,661,662,663,664,664,664,665,665,665,665,666,666,666,669,671,672,672,672,672,672,672,672,673,673,673,673,674,675,675,676,676,677,678,678,680,680,682,682,683,683,683,684,685,685,686,687,688,688,689,690,690,690,691,691,692,693,693,694,694,694,696,698,699,699,699,700,700,700,700,700,701,702,702,704,705,705,707,708,709,710,711,712,712,713,714,715,715,715,715,716,716,716,717,718,718,720,721,721,722,724,724,725,725,726,726,726,726,726,726,726,728,728,728,728,728,728,728,729,732,732,732,733,733,733,734,734,734,735,736,736,737,738,738,739,740,740,740,741,743,743,744,745,745,745,746,746,746,747,747,747,747,747,747,748,748,749,749,749,750,750,750,750,751,751,751,751,751,752,753,754,754,754,755,756,756,756,757,757,758,758,759,760,760,760,761,761,761,762,762,763,764,764,765,765,765,765,765,765,765,766,766,767,769,769,770,770,770,770,772,772,772,773,774,775,775,776,776,776,776,777,777,778,778,779,779,779,780,780,780,780,780,781,782,782,783,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,785,787,787,787,788,789,789,790,790,791,791,791,791,792,792,792,793,794,794,794,796,796,796,796,796,797,797,798,798,798,799,799,799,800,801,802,802,803,803,804,804,804,806,806,806,807,807,808,808,809,809,809,810,810,810,812,812,812,812,812,814,814,815,815,815,816,816,816,816,816,816,817,817,817,818,818,818,819,819,819,819,819,820,820,820,820,820,820,822,822,823,824,824,825,825,825,825,825,826,826,826,826,828,828,829,830,830,830,831,831,831,832,832,833,834,836,837,837,837,837,837,838,838,839,839,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,841,842,842,842,843,843,843,843,843,843,844,844,845,845,846,847,847,847,848,848,849,849,849,850,850,850,850,850,850,851,851,851,851,851,852,852,853,853,853,853,854,854,854,855,855,855,855,856,856,856,856,856,856,857,857,858,858,858,859,860,860,861,861,862,862,862,863,863,863,863,864,864,865,865,866,867,867,867,868,868,868,868,868,868,868,870,870,871,871,871,872,872,872,873,873,873,873,874,874,874,874,875,875,876,877,877,877,877,877,877,878,878,879,879,879,880,880,880,880,880,880,881,882,882,883,884,884,885,885,886,886,887,888,888,888,888,888,889,889,890,890,890,890,892,892,893,893,894,894,895,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,897,897,897,897,897,898,898,898,898,899,899,899,900,900,900,900,901,901,902,902,903,903,903,903,904,905,905,906,906,906,906,907,907,908,908,908,908,909,909,910,910,910,911,911,911,912,912,912,914,914,915,915,915,915,916,916,916,917,917,917,917,918,918,919,919,919,919,920,920,921,922,922,922,922,922,923,923,923,924,924,924,924,924,924,924,924,924,926,926,926,926,927,927,928,928,928,928,928,928,930,930,930,930,931,931,932,932,933,934,934,934,934,935,935,936,936,937,937,937,938,938,938,938,939,939,939,940,940,940,940,941,941,941,942,942,942,942,942,942,943,943,944,944,944,944,944,944,945,945,945,945,946,946,946,947,947,948,948,948,948,949,949,950,950,950,950,950,951,951,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,953,954,954,954,954,954,954,955,955,955,956,956,958,958,958,959,959,959,959,960,960,960,961,962,962,963,963,964,964,964,964,966,966,966,966,966,967,967,968,968,968,968,969,969,970,970,971,971,971,971,971,972,972,972,973,974,974,974,974,974,974,975,975,975,975,976,976,976,976,976,976,977,977,978,980,980,980,980,980,980,980,980,981,981,981,982,982,983,983,983,983,983,983,985,985,985,985,985,985,985,985,986,986,986,987,987,987,987,989,990,990,991,992,992,992,993,993,995,995,997,997,998,998,998,999,999,999,1001,1002,1002,1002,1002,1003,1003,1003,1003,1004,1004,1004,1004,1005,1005,1006,1006,1006,1006,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1009,1009,1010,1010,1010,1010,1010,1011,1012,1012,1012,1013,1014,1014,1014,1014,1014,1015,1016,1016,1016,1016,1017,1018,1018,1018,1018,1019,1020,1020,1021,1021,1021,1022,1022,1023,1023,1023,1023,1024,1024,1026,1026,1026,1027,1028,1028,1028,1029,1030,1030,1031,1031,1032,1033,1033,1033,1033,1033,1033,1034,1035,1035,1035,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1037,1037,1038,1038,1038,1038,1039,1039,1040,1040,1040,1040,1041,1042,1042,1043,1043,1044,1044,1044,1045,1045,1045,1046,1046,1046,1046,1046,1047,1047,1047,1048,1048,1049,1050,1050,1050,1050,1051,1051,1051,1051,1052,1052,1053,1053,1054,1054,1055,1055,1055,1056,1056,1056,1056,1057,1057,1057,1058,1059,1059,1060,1060,1062,1062,1062,1062,1063,1063,1063,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1065,1065,1065,1065,1065,1066,1066,1067,1068,1069,1069,1070,1070,1070,1071,1071,1071,1071,1071,1071,1072,1072,1072,1072,1073,1073,1073,1073,1074,1074,1074,1075,1076,1076,1076,1076,1077,1077,1078,1078,1078,1078,1079,1080,1081,1081,1081,1081,1083,1084,1084,1084,1084,1084,1084,1084,1085,1085,1086,1086,1086,1087,1087,1088,1088,1088,1089,1089,1089,1092,1092,1092,1092,1092,1092,1092,1093,1093,1093,1094,1094,1096,1096,1096,1096,1097,1097,1098,1098,1098,1099,1099,1099,1100,1100,1101,1101,1101,1101,1102,1102,1102,1102,1103,1103,1104,1104,1104,1104,1104,1104,1105,1105,1105,1106,1106,1107,1107,1108,1108,1108,1109,1109,1109,1110,1110,1110,1110,1110,1111,1111,1111,1111,1111,1112,1112,1112,1113,1113,1114,1114,1114,1115,1115,1115,1115,1115,1115,1115,1115,1116,1116,1116,1116,1116,1118,1118,1118,1118,1118,1118,1119,1119,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1121,1121,1122,1122,1122,1122,1123,1123,1123,1124,1124,1124,1124,1124,1126,1127,1127,1127,1128,1128,1128,1129,1129,1130,1130,1131,1131,1131,1131,1131,1131,1131,1132,1132,1132,1132,1133,1134,1134,1134,1135,1135,1135,1135,1136,1137,1137,1138,1139,1140,1140,1140,1140,1141,1141,1141,1141,1141,1141,1141,1142,1142,1142,1142,1143,1143,1143,1143,1144,1144,1144,1144,1145,1145,1145,1146,1146,1147,1147,1148,1148,1148,1150,1150,1150,1151,1151,1152,1152,1152,1152,1152,1153,1153,1154,1155,1156,1157,1157,1157,1157,1158,1158,1158,1158,1158,1158,1159,1159,1160,1160,1161,1161,1162,1163,1163,1163,1164,1164,1164,1165,1165,1165,1166,1166,1167,1167,1167,1168,1168,1169,1169,1169,1169,1170,1171,1172,1172,1172,1172,1172,1173,1173,1173,1174,1175,1175,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1177,1177,1178,1178,1178,1178,1178,1180,1180,1180,1180,1181,1182,1182,1182,1182,1183,1184,1184,1184,1185,1185,1185,1186,1187,1188,1188,1188,1189,1189,1189,1189,1190,1190,1190,1190,1190,1190,1190,1191,1191,1193,1193,1194,1194,1194,1194,1195,1197,1197,1197,1197,1198,1198,1198,1199,1199,1200,1200,1200,1200,1201,1201,1202,1202,1202,1203,1203,1204,1204,1204,1204,1205,1205,1206,1206,1206,1206,1206,1206,1206,1207,1207,1207,1208,1208,1209,1210,1210,1211,1211,1211,1212,1213,1213,1214,1214,1214,1214,1215,1215,1215,1216,1216,1216,1217,1217,1217,1219,1219,1219,1220,1220,1220,1221,1222,1222,1222,1223,1224,1224,1224,1225,1225,1225,1225,1226,1226,1226,1226,1227,1227,1227,1227,1227,1228,1228,1230,1230,1230,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1234,1234,1235,1235,1235,1236,1236,1236,1237,1237,1237,1239,1239,1239,1239,1240,1240,1240,1241,1241,1242,1242,1242,1242,1243,1244,1244,1245,1245,1246,1246,1247,1247,1248,1248,1248,1248,1249,1249,1249,1249,1250,1250,1250,1250,1251,1253,1253,1253,1253,1253,1254,1254,1255,1255,1256,1256,1256,1256,1256,1256,1257,1257,1257,1257,1258,1258,1259,1259,1259,1259,1259,1259,1260,1260,1260,1260,1260,1260,1260,1262,1262,1263,1263,1263,1263,1263,1264,1265,1266,1266,1266,1267,1267,1267,1267,1267,1268,1268,1268,1268,1268,1268,1269,1269,1270,1270,1271,1271,1271,1272,1274,1274,1276,1277,1278,1278,1280,1280,1281,1281,1282,1283,1284,1284,1284,1284,1285,1285,1286,1287,1287,1287,1288,1288,1288,1288,1288,1288,1288,1288,1288,1288,1288,1288,1290,1290,1291,1291,1291,1292,1292,1292,1293,1293,1293,1294,1295,1295,1295,1296,1297,1297,1298,1298,1299,1299,1299,1299,1299,1299,1300,1300,1300,1301,1301,1302,1302,1302,1303,1304,1304,1305,1305,1306,1306,1306,1306,1306,1307,1307,1307,1308,1308,1308,1308,1309,1309,1309,1310,1310,1311,1311,1312,1312,1312,1314,1315,1315,1316,1316,1316,1317,1317,1317,1317,1317,1318,1318,1318,1318,1319,1319,1320,1320,1320,1320,1320,1322,1323,1325,1326,1326,1326,1328,1328,1329,1329,1329,1330,1331,1331,1331,1332,1333,1333,1333,1333,1334,1334,1335,1335,1336,1336,1337,1338,1338,1338,1338,1341,1342,1342,1342,1342,1342,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,1346,1346,1347,1348,1348,1348,1349,1350,1351,1352,1352,1352,1352,1352,1353,1353,1353,1353,1354,1354,1356,1356,1357,1357,1358,1358,1358,1358,1358,1358,1359,1359,1360,1360,1360,1361,1361,1362,1362,1362,1362,1362,1362,1363,1364,1364,1364,1364,1365,1365,1365,1366,1366,1366,1367,1368,1368,1368,1369,1369,1370,1371,1371,1371,1372,1372,1373,1373,1373,1374,1375,1376,1377,1377,1378,1378,1378,1379,1380,1381,1382,1382,1382,1382,1383,1383,1384,1386,1386,1386,1386,1386,1386,1387,1387,1389,1389,1389,1390,1390,1391,1392,1393,1394,1395,1396,1396,1396,1396,1397,1398,1398,1399,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1403,1404,1404,1405,1406,1407,1407,1407,1408,1408,1409,1409,1410,1410,1410,1410,1410,1410,1410,1411,1411,1412,1412,1412,1412,1412,1412,1412,1413,1413,1414,1414,1414,1414,1415,1415,1415,1416,1417,1417,1417,1418,1420,1420,1422,1422,1422,1422,1422,1423,1423,1425,1425,1425,1425,1425,1426,1426,1427,1427,1427,1427,1428,1428,1428,1430,1434,1434,1435,1435,1436,1436,1436,1436,1438,1438,1438,1440,1441,1442,1442,1444,1445,1445,1445,1446,1446,1447,1448,1448,1450,1450,1452,1452,1453,1454,1454,1455,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1456,1457,1458,1458,1459,1459,1460,1462,1462,1463,1464,1464,1464,1465,1466,1467,1468,1468,1468,1468,1469,1469,1470,1470,1470,1471,1471,1472,1473,1473,1473,1474,1474,1476,1476,1477,1478,1480,1480,1481,1481,1483,1483,1484,1484,1484,1484,1485,1487,1487,1492,1492,1493,1494,1494,1494,1497,1498,1498,1498,1499,1500,1500,1501,1502,1503,1505,1505,1505,1506,1506,1506,1506,1507,1508,1508,1508,1509,1509,1509,1510,1512,1512,1512,1512,1512,1512,1514,1516,1516,1518,1519,1519,1519,1521,1523,1523,1524,1524,1525,1527,1529,1530,1533,1533,1534,1537,1538,1538,1539,1539,1540,1540,1540,1540,1540,1540,1541,1542,1542,1542,1543,1543,1543,1543,1543,1545,1547,1548,1551,1553,1555,1557,1559,1561,1562,1563,1563,1564,1564,1564,1565,1565,1566,1566,1566,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1569,1571,1571,1572,1573,1576,1577,1578,1579,1581,1582,1582,1584,1586,1586,1588,1588,1590,1590,1591,1593,1595,1596,1596,1600,1600,1602,1606,1607,1608,1608,1609,1610,1611,1613,1617,1618,1618,1618,1620,1624,1624,1624,1624,1624,1626,1629,1629,1630,1631,1632,1636,1636,1638,1638,1640,1640,1640,1641,1642,1642,1645,1646,1646,1646,1647,1647,1648,1652,1652,1657,1658,1659,1668,1670,1671,1672,1672,1672,1674,1678,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1681,1684,1685,1688,1690,1692,1695,1700,1701,1701,1702,1702,1702,1703,1703,1711,1711,1712,1712,1714,1714,1714,1720,1724,1726,1729,1731,1731,1734,1736,1736,1736,1736,1736,1736,1736,1736,1742,1742,1745,1745,1746,1747,1748,1749,1750,1750,1752,1754,1756,1764,1764,1766,1773,1773,1779,1781,1782,1783,1786,1787,1790,1792,1792,1792,1792,1792,1792,1792,1792,1792,1792,1792,1792,1801,1802,1802,1802,1804,1805,1806,1808,1810,1816,1817,1820,1822,1826,1834,1834,1834,1836,1838,1840,1842,1848,1848,1848,1850,1850,1851,1852,1852,1853,1854,1855,1855,1860,1862,1863,1865,1867,1875,1876,1881,1882,1887,1891,1891,1892,1898,1904,1904,1904,1904,1904,1909,1909,1911,1912,1915,1918,1918,1919,1919,1925,1934,1935,1936,1941,1945,1946,1946,1960,1960,1960,1960,1962,1962,1963,1963,1965,1967,1968,1974,1977,1980,1982,1988,1995,1995,1998,2000,2001,2006,2016,2024,2039,2044,2046,2047,2053,2057,2059,2060,2060,2065,2069,2072,2072,2072,2073,2074,2088,2100,2110,2114,2116,2118,2128,2128,2128,2128,2132,2139,2151,2159,2174,2175,2179,2179,2184,2184,2184,2184,2184,2190,2190,2192,2194,2198,2226,2226,2231,2236,2240,2240,2240,2247,2248,2249,2254,2256,2265,2285,2297,2297,2324,2342,2349,2352,2352,2366,2368,2379,2386,2419,2464,2484,2511,2520,2535,2572,2632,2634,2638,2688,2693,2809,2885,2924,2977,3136,3136,3181,3267,4123,4209]},{\"label\":\"8 bells\",\"lb\":[113,175,220,233,284,288,314,325,337,355,357,361,363,377,382,382,389,417,418,429,440,447,447,455,457,470,478,485,488,488,493,497,500,503,508,512,516,516,517,520,520,524,525,549,551,571,577,593,603,611,624,635,638,643,668,670,671,671,673,675,678,681,682,684,689,695,697,698,700,701,702,711,718,724,726,733,734,736,738,757,760,769,770,770,771,772,772,772,777,782,782,785,787,787,788,789,790,790,791,791,792,792,794,800,801,801,802,805,805,806,810,811,812,813,817,819,822,822,826,827,828,832,839,840,840,842,842,844,845,847,847,851,851,859,860,862,866,868,868,868,868,869,869,869,871,871,871,875,876,878,878,879,880,881,883,883,883,884,889,892,892,894,895,896,898,898,899,899,900,904,905,906,906,907,908,911,916,917,917,919,921,922,923,923,924,926,928,928,930,931,932,933,934,936,937,937,938,938,939,939,941,942,942,944,944,945,946,948,949,950,950,950,952,952,952,954,956,958,960,961,963,964,964,967,967,968,969,971,972,974,974,976,980,980,980,980,980,981,983,984,985,987,987,987,988,991,996,997,998,998,998,999,1002,1002,1006,1008,1008,1009,1009,1010,1013,1014,1015,1018,1018,1021,1023,1024,1026,1026,1030,1032,1034,1035,1036,1036,1040,1042,1042,1046,1050,1050,1051,1052,1052,1052,1052,1056,1058,1060,1060,1061,1061,1061,1061,1063,1063,1064,1064,1064,1065,1066,1066,1067,1067,1067,1068,1069,1070,1070,1070,1072,1074,1074,1076,1076,1077,1077,1077,1078,1078,1079,1082,1082,1082,1082,1082,1085,1088,1089,1090,1091,1092,1093,1093,1093,1095,1095,1096,1096,1097,1097,1098,1098,1099,1099,1100,1101,1101,1102,1103,1104,1104,1107,1108,1109,1110,1110,1111,1112,1112,1112,1118,1118,1118,1118,1119,1119,1120,1120,1120,1120,1120,1120,1124,1125,1125,1125,1126,1126,1127,1127,1127,1127,1129,1129,1129,1129,1130,1130,1131,1131,1132,1132,1132,1133,1134,1134,1134,1136,1136,1137,1139,1140,1141,1141,1141,1142,1143,1144,1144,1145,1146,1147,1148,1148,1150,1150,1152,1154,1154,1155,1156,1156,1156,1157,1159,1159,1160,1160,1161,1161,1162,1164,1165,1169,1169,1169,1169,1169,1170,1170,1171,1171,1171,1172,1173,1173,1174,1175,1176,1176,1176,1176,1176,1177,1178,1179,1179,1180,1181,1181,1183,1184,1184,1185,1188,1188,1188,1190,1190,1191,1195,1195,1195,1196,1196,1196,1197,1197,1197,1197,1197,1198,1200,1200,1203,1203,1204,1204,1204,1205,1206,1206,1207,1207,1207,1207,1209,1210,1213,1213,1214,1214,1215,1215,1215,1215,1216,1216,1218,1218,1218,1220,1220,1221,1222,1222,1225,1227,1228,1230,1231,1232,1232,1232,1232,1234,1234,1234,1235,1235,1235,1236,1236,1237,1237,1238,1238,1238,1239,1239,1239,1240,1240,1240,1240,1240,1242,1246,1249,1250,1250,1251,1251,1253,1253,1253,1255,1256,1256,1257,1257,1257,1257,1258,1259,1259,1260,1260,1262,1265,1265,1265,1267,1267,1268,1269,1269,1269,1271,1271,1272,1272,1272,1273,1274,1275,1276,1277,1278,1279,1280,1280,1280,1280,1282,1283,1287,1288,1288,1288,1289,1290,1290,1290,1291,1292,1293,1293,1293,1295,1295,1296,1296,1299,1299,1299,1301,1302,1303,1303,1303,1303,1303,1303,1304,1305,1306,1308,1308,1308,1309,1309,1310,1310,1311,1311,1311,1311,1312,1312,1313,1313,1313,1315,1315,1318,1318,1320,1320,1322,1324,1326,1326,1328,1329,1329,1330,1336,1339,1339,1339,1340,1340,1340,1340,1341,1341,1342,1343,1343,1344,1344,1344,1344,1344,1344,1344,1345,1346,1347,1348,1348,1348,1348,1349,1349,1350,1350,1351,1351,1353,1353,1354,1354,1356,1356,1356,1356,1356,1357,1358,1358,1358,1358,1359,1359,1359,1359,1360,1361,1363,1364,1364,1364,1365,1366,1366,1366,1366,1366,1367,1367,1368,1368,1368,1369,1370,1370,1372,1374,1375,1375,1375,1376,1377,1377,1378,1378,1379,1379,1380,1380,1380,1381,1381,1381,1382,1382,1383,1383,1383,1383,1385,1386,1386,1386,1387,1387,1388,1388,1388,1388,1388,1389,1389,1389,1390,1390,1391,1391,1392,1392,1392,1392,1393,1393,1394,1394,1394,1394,1394,1394,1397,1397,1398,1398,1400,1400,1402,1402,1402,1403,1403,1404,1404,1404,1404,1405,1409,1409,1409,1409,1411,1411,1412,1413,1414,1414,1414,1415,1416,1416,1416,1417,1417,1418,1419,1421,1423,1423,1424,1424,1424,1426,1426,1427,1427,1427,1428,1428,1428,1428,1428,1428,1430,1430,1431,1434,1434,1434,1434,1434,1434,1435,1436,1436,1436,1438,1439,1440,1441,1441,1441,1442,1443,1444,1444,1446,1446,1447,1448,1448,1448,1448,1448,1449,1450,1450,1451,1451,1452,1452,1453,1454,1454,1454,1454,1456,1456,1456,1456,1456,1457,1459,1460,1462,1462,1463,1463,1463,1463,1464,1464,1466,1467,1467,1468,1470,1471,1472,1474,1475,1476,1480,1482,1483,1484,1484,1485,1486,1488,1488,1489,1489,1489,1490,1491,1491,1491,1492,1493,1493,1494,1495,1495,1495,1496,1497,1497,1498,1498,1498,1499,1502,1503,1504,1505,1505,1505,1506,1508,1508,1508,1509,1512,1512,1512,1512,1512,1512,1512,1513,1514,1515,1516,1516,1517,1518,1518,1519,1519,1520,1520,1521,1521,1521,1522,1522,1522,1523,1523,1524,1525,1526,1526,1526,1527,1527,1528,1528,1528,1528,1529,1530,1531,1532,1532,1532,1533,1533,1534,1534,1535,1535,1536,1536,1537,1537,1538,1539,1540,1540,1541,1544,1544,1544,1545,1546,1546,1547,1547,1547,1548,1550,1551,1552,1553,1554,1555,1558,1558,1559,1561,1562,1563,1563,1564,1565,1566,1566,1567,1568,1568,1568,1568,1568,1568,1568,1569,1570,1570,1571,1571,1573,1573,1574,1575,1575,1575,1575,1576,1576,1578,1578,1578,1579,1579,1580,1580,1582,1582,1583,1584,1584,1584,1584,1584,1586,1586,1586,1587,1589,1590,1591,1591,1591,1592,1592,1594,1594,1596,1596,1596,1598,1599,1600,1600,1601,1601,1601,1601,1601,1602,1602,1602,1603,1603,1603,1605,1605,1606,1608,1609,1609,1609,1609,1610,1610,1611,1612,1612,1613,1614,1615,1616,1616,1617,1618,1618,1618,1618,1618,1619,1619,1620,1620,1621,1621,1622,1622,1624,1624,1624,1624,1624,1624,1624,1625,1626,1626,1627,1628,1628,1629,1629,1630,1631,1631,1631,1631,1631,1632,1635,1635,1636,1636,1636,1638,1638,1640,1642,1642,1644,1644,1647,1647,1648,1648,1648,1648,1650,1650,1652,1652,1652,1652,1652,1653,1654,1654,1655,1656,1659,1660,1660,1661,1662,1662,1664,1668,1671,1671,1672,1676,1676,1677,1679,1679,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1680,1682,1682,1682,1682,1682,1684,1686,1687,1687,1687,1687,1688,1688,1688,1689,1690,1690,1691,1691,1692,1693,1693,1693,1694,1694,1696,1698,1698,1698,1700,1701,1701,1701,1701,1704,1705,1706,1708,1708,1709,1712,1714,1715,1716,1720,1721,1723,1723,1724,1724,1726,1726,1726,1726,1726,1728,1728,1729,1730,1730,1732,1733,1733,1733,1733,1735,1736,1736,1736,1736,1736,1736,1738,1739,1740,1740,1742,1742,1742,1743,1743,1743,1744,1744,1745,1745,1747,1747,1748,1750,1750,1752,1755,1756,1757,1758,1758,1758,1758,1758,1759,1759,1759,1760,1763,1765,1767,1768,1769,1770,1770,1770,1771,1773,1774,1774,1776,1777,1779,1780,1780,1780,1780,1782,1782,1783,1783,1784,1785,1787,1789,1790,1790,1790,1791,1792,1794,1794,1795,1795,1796,1797,1800,1800,1802,1803,1803,1803,1806,1806,1806,1807,1808,1809,1810,1811,1812,1813,1814,1817,1817,1820,1821,1822,1822,1824,1824,1825,1826,1828,1828,1831,1834,1834,1836,1838,1839,1840,1841,1841,1842,1843,1845,1846,1848,1848,1848,1850,1851,1855,1855,1856,1856,1856,1858,1858,1859,1861,1862,1863,1866,1866,1868,1868,1869,1870,1871,1873,1876,1877,1877,1879,1883,1887,1887,1887,1888,1888,1892,1892,1896,1896,1896,1897,1897,1898,1899,1900,1902,1903,1904,1904,1904,1904,1905,1907,1907,1910,1911,1913,1915,1917,1917,1917,1919,1922,1922,1923,1924,1925,1927,1927,1928,1929,1932,1932,1932,1932,1934,1937,1938,1938,1939,1940,1940,1941,1942,1943,1944,1946,1947,1947,1947,1951,1958,1958,1960,1960,1960,1961,1963,1964,1970,1970,1971,1972,1973,1974,1974,1974,1974,1975,1976,1977,1979,1980,1982,1988,1988,1998,1999,2000,2001,2004,2006,2006,2008,2009,2010,2012,2013,2016,2016,2016,2016,2016,2016,2017,2018,2018,2018,2021,2022,2023,2024,2025,2025,2025,2026,2027,2027,2030,2030,2030,2030,2033,2034,2034,2034,2036,2036,2037,2037,2038,2041,2044,2044,2047,2049,2049,2050,2050,2052,2053,2056,2057,2058,2059,2059,2064,2065,2070,2072,2072,2072,2072,2072,2072,2073,2073,2073,2076,2077,2077,2083,2084,2085,2086,2086,2090,2091,2091,2091,2093,2093,2093,2095,2096,2106,2108,2109,2111,2112,2112,2112,2115,2122,2123,2123,2128,2128,2128,2128,2128,2128,2130,2130,2134,2139,2139,2140,2141,2141,2148,2149,2155,2156,2156,2156,2156,2157,2160,2161,2162,2163,2165,2166,2173,2176,2180,2184,2184,2184,2184,2193,2194,2203,2203,2205,2205,2206,2210,2212,2212,2214,2217,2217,2218,2220,2224,2225,2226,2228,2240,2240,2240,2240,2241,2250,2251,2254,2255,2255,2260,2264,2265,2268,2271,2272,2272,2274,2274,2280,2292,2292,2296,2298,2300,2302,2303,2308,2309,2309,2310,2314,2316,2324,2325,2329,2338,2349,2352,2352,2352,2352,2352,2353,2356,2357,2359,2366,2368,2370,2372,2379,2386,2386,2392,2394,2400,2403,2406,2407,2408,2408,2408,2411,2412,2415,2418,2420,2420,2423,2423,2424,2425,2431,2441,2442,2444,2445,2452,2452,2455,2464,2464,2464,2464,2468,2470,2471,2471,2472,2474,2474,2476,2477,2479,2481,2482,2486,2488,2490,2490,2492,2495,2495,2496,2500,2507,2509,2510,2515,2520,2526,2537,2538,2539,2540,2548,2549,2557,2563,2566,2569,2571,2576,2576,2579,2580,2592,2593,2595,2597,2599,2604,2609,2622,2623,2632,2637,2638,2647,2651,2655,2666,2668,2683,2689,2691,2692,2692,2693,2700,2702,2717,2718,2728,2732,2741,2751,2753,2756,2765,2768,2772,2774,2788,2791,2797,2799,2799,2807,2818,2818,2822,2826,2829,2833,2838,2839,2839,2856,2862,2870,2874,2877,2878,2882,2886,2903,2912,2968,2970,2990,2991,2999,3003,3006,3022,3024,3054,3071,3088,3104,3131,3133,3136,3136,3157,3181,3183,3321,3330,3340,3365,3446,3467,3479,3500,3533,3556,3584,3642,3812,3934,4620,5157]},{\"label\":\"10 bells\",\"lb\":[366,425,575,745,802,824,942,960,1062,1062,1069,1072,1077,1123,1129,1136,1141,1153,1164,1203,1204,1212,1212,1221,1222,1223,1227,1238,1260,1261,1267,1281,1294,1315,1325,1343,1345,1383,1391,1402,1407,1413,1431,1453,1458,1462,1466,1479,1486,1487,1498,1505,1508,1513,1519,1539,1553,1558,1561,1566,1567,1570,1570,1578,1592,1607,1609,1615,1618,1635,1660,1684,1687,1703,1716,1736,1767,1779,1788,1789,1794,1795,1797,1815,1816,1821,1823,1825,1826,1835,1838,1842,1844,1851,1862,1864,1874,1875,1882,1888,1899,1902,1908,1908,1910,1913,1933,1935,1938,1939,1946,1949,1952,1952,1956,1960,1964,1971,1975,1975,1978,1983,1997,2005,2016,2023,2024,2025,2025,2026,2028,2034,2035,2036,2036,2041,2042,2049,2062,2064,2065,2065,2072,2084,2084,2094,2095,2105,2110,2111,2116,2120,2126,2127,2129,2130,2132,2135,2139,2140,2149,2156,2164,2188,2191,2192,2196,2203,2215,2218,2219,2227,2240,2240,2240,2268,2278,2284,2284,2288,2288,2304,2311,2338,2352,2352,2355,2355,2362,2362,2377,2383,2390,2391,2396,2397,2402,2403,2409,2416,2416,2417,2420,2430,2431,2432,2433,2436,2445,2476,2487,2487,2491,2492,2492,2519,2522,2536,2544,2545,2546,2548,2548,2550,2580,2583,2594,2606,2619,2624,2635,2646,2651,2663,2666,2676,2688,2688,2688,2691,2693,2695,2697,2706,2712,2722,2723,2739,2749,2764,2775,2792,2797,2800,2800,2818,2823,2825,2833,2842,2848,2853,2856,2880,2938,2944,2953,2963,2970,2975,3012,3052,3114,3132,3142,3168,3201,3220,3276,3284,3295,3317,3374,3403,3416,3418,3450,3476,3500,3511,3537,3540,3588,3590,3604,3618,3721,3801,4107,4299,4640,4656,6314]},{\"label\":\"12 bells\",\"lb\":[741,844,937,1088,1220,1274,1274,1353,1374,1484,1566,1597,1641,1652,1697,1732,1793,1828,1837,1843,1858,1942,1942,2040,2045,2080,2086,2127,2134,2162,2173,2194,2207,2269,2358,2363,2371,2382,2391,2395,2400,2409,2418,2428,2439,2525,2544,2563,2596,2600,2620,2656,2673,2674,2677,2717,2731,2762,2762,2772,2820,2824,2829,2831,2839,2856,2856,2859,2874,2874,2875,2876,2877,2881,2933,2991,3005,3011,3024,3029,3044,3068,3076,3085,3098,3142,3150,3193,3208,3226,3252,3277,3288,3324,3380,3398,3420,3493,3495,3618,3623,3682,3717,3786,3790,3814,3815,3839,3874,3886,3892,3896,3898,3904,3924,3948,3962,3996,3999,4134,4179,4217,4243,4431,4503,4535,4623,4635,4691,4697,4785,5086,5378,5461,5677,6659,6890,8122,9195]}]");
4
+ //#endregion
5
+ export { e as default };
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { createContext as e, createElement as t, useContext as n, useEffect as r, useId as i, useLayoutEffect as a, useRef as o, useState as s, useSyncExternalStore as c } from "react";
3
+ import { bisectCenter as l } from "d3-array";
4
+ //#region src/charts/hooks.ts
5
+ var u = (e) => Number(e.slice(0, -2)), d = (e) => {
6
+ let t = getComputedStyle(e);
7
+ return Math.floor(e.clientWidth - u(t.paddingLeft) - u(t.paddingRight));
8
+ }, f = (e = 0, t = !0) => {
9
+ let n = o(null), [r, i] = s(e);
10
+ return a(() => {
11
+ let e = t ? new ResizeObserver(([e]) => {
12
+ i(Math.floor(e.contentRect.width));
13
+ }) : null;
14
+ return e !== null && n.current !== null && (i(d(n.current)), e.observe(n.current)), () => {
15
+ e?.disconnect();
16
+ };
17
+ }, [t]), [n, r];
18
+ }, p = (e) => {
19
+ let [t, n] = s(!1);
20
+ return r(() => {
21
+ let t = new IntersectionObserver(([e]) => {
22
+ e.isIntersecting && (n(!0), t.disconnect());
23
+ }, { threshold: .2 });
24
+ return e.current !== null && t.observe(e.current), () => {
25
+ t.disconnect();
26
+ };
27
+ }, [e]), t;
28
+ }, m = "(prefers-reduced-motion: reduce)", h = (e) => {
29
+ let t = window.matchMedia(m);
30
+ return t.addEventListener("change", e), () => {
31
+ t.removeEventListener("change", e);
32
+ };
33
+ }, g = () => c(h, () => window.matchMedia(m).matches, () => null), _ = () => g() ?? !0, v = e(""), y = (e) => t(v.Provider, { value: e.prefix }, e.children), b = (e) => {
34
+ let t = n(v), r = `${e}-${i().replaceAll(/[^\w-]/gu, "")}`;
35
+ return t === "" ? r : `${t}-${r}`;
36
+ }, x = async (e) => {
37
+ let t = (e.getAnimations?.({ subtree: !0 }) ?? []).filter((e) => "animationName" in e);
38
+ await Promise.all(t.map(async (e) => {
39
+ try {
40
+ await e.finished;
41
+ } catch {}
42
+ }));
43
+ }, S = () => {}, C = (e, t) => e ? "still" : t ? "shown" : "hidden", w = (e, t) => {
44
+ let n = t.animate ?? "scroll", i = g() === !0, c = n === "off" || i, [l, u] = s(0), [d, f] = s(t.replayKey), [p, m] = s(-1), [h, _] = s(-1);
45
+ d !== t.replayKey && (f(t.replayKey), u(l + 1));
46
+ let v = p === l, y = c || h === l;
47
+ r(() => {
48
+ if (c) return S;
49
+ if (n === "mount") {
50
+ let t = requestAnimationFrame(() => {
51
+ e.current?.getBoundingClientRect(), m(l);
52
+ });
53
+ return () => {
54
+ cancelAnimationFrame(t);
55
+ };
56
+ }
57
+ let t = new IntersectionObserver(([e]) => {
58
+ e.isIntersecting && (m(l), t.disconnect());
59
+ }, { threshold: .2 });
60
+ return e.current !== null && t.observe(e.current), () => {
61
+ t.disconnect();
62
+ };
63
+ }, [
64
+ n,
65
+ l,
66
+ e,
67
+ c
68
+ ]), r(() => {
69
+ if (!v || c) return S;
70
+ let t = !0, n = async () => {
71
+ e.current !== null && await x(e.current), t && _(l);
72
+ }, r = requestAnimationFrame(() => {
73
+ n();
74
+ });
75
+ return () => {
76
+ t = !1, cancelAnimationFrame(r);
77
+ };
78
+ }, [
79
+ l,
80
+ e,
81
+ v,
82
+ c
83
+ ]);
84
+ let b = o(t.onReady);
85
+ return a(() => {
86
+ b.current = t.onReady;
87
+ }), r(() => {
88
+ y && b.current?.();
89
+ }, [y]), {
90
+ phase: C(c, v),
91
+ ready: y
92
+ };
93
+ }, T = /* @__PURE__ */ new Set([
94
+ "ArrowLeft",
95
+ "ArrowRight",
96
+ "End",
97
+ "Home"
98
+ ]), E = (e, t, n) => {
99
+ let [r, i] = s(null), a = t.map((e) => e.getTime()), o = n?.time ?? null, c = o === null ? null : l(a, o), u = n === void 0 ? r : c, d = (e) => {
100
+ n === void 0 ? i(e) : n.setTime(e === null ? null : a[e]);
101
+ }, f = u ?? e;
102
+ return {
103
+ bind: (e) => {
104
+ let t = e.length - 1, n = (e) => e === "Home" ? 0 : e === "End" ? t : e === "ArrowLeft" ? f - 1 : f + 1;
105
+ return {
106
+ onBlur: () => {
107
+ d(null);
108
+ },
109
+ onKeyDown: (e) => {
110
+ T.has(e.key) && (e.preventDefault(), d(Math.max(0, Math.min(t, n(e.key)))));
111
+ },
112
+ onPointerLeave: () => {
113
+ d(null);
114
+ },
115
+ onPointerMove: (t) => {
116
+ let n = t.clientX - t.currentTarget.getBoundingClientRect().left;
117
+ d(l(e, n));
118
+ },
119
+ style: { touchAction: "pan-y" },
120
+ tabIndex: 0
121
+ };
122
+ },
123
+ index: f,
124
+ isHovering: u !== null
125
+ };
126
+ }, D = () => {
127
+ let [e, t] = s(null), n = (e, n = 0, r = 0) => {
128
+ t((t) => t !== null && t.key === e && t.x === n && t.y === r ? t : {
129
+ key: e,
130
+ x: n,
131
+ y: r
132
+ });
133
+ };
134
+ return {
135
+ at: e,
136
+ clear: () => {
137
+ t(null);
138
+ },
139
+ dim: (t) => e !== null && e.key !== t,
140
+ enter: (e, t = 0, r = 0) => () => {
141
+ n(e, t, r);
142
+ },
143
+ key: e === null ? null : e.key,
144
+ set: (e, r = 0, i = 0) => {
145
+ e === null ? t(null) : n(e, r, i);
146
+ },
147
+ show: n,
148
+ showAt: (e) => (t, r) => {
149
+ n(e, t, r);
150
+ }
151
+ };
152
+ };
153
+ //#endregion
154
+ export { y as IdScope, w as useEntry, D as useHover, f as useMeasure, g as useMotionPreference, _ as useReducedMotion, p as useReveal, E as useScrub, b as useSvgId };
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { cx as e, dimClass as t } from "./util.js";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/charts/hover.tsx
5
+ var a = ({ className: n, dim: i, ...a }) => /* @__PURE__ */ r("g", {
6
+ className: e(t(i), n),
7
+ ...a
8
+ }), o = ({ className: t, ...n }) => /* @__PURE__ */ r("rect", {
9
+ className: e("fill-transparent", t),
10
+ ...n
11
+ }), s = ({ className: t, ...n }) => /* @__PURE__ */ r("circle", {
12
+ className: e("fill-transparent", t),
13
+ ...n
14
+ }), c = ({ className: t, ...n }) => /* @__PURE__ */ r("path", {
15
+ className: e("fill-transparent", t),
16
+ ...n
17
+ }), l = (e) => /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r("b", { children: e.lead }), e.facts === void 0 || e.facts.length === 0 ? null : ` · ${e.facts.join(" · ")}`] });
18
+ //#endregion
19
+ export { a as DimGroup, s as HitCircle, c as HitPath, o as HitRect, l as TipText };
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ var e = {
3
+ cols: [
4
+ "2014/15",
5
+ "2015/16",
6
+ "2016/17",
7
+ "2017/18",
8
+ "2018/19",
9
+ "2019/20",
10
+ "2020/21",
11
+ "2021/22",
12
+ "2022/23",
13
+ "2023/24",
14
+ "2024/25",
15
+ "2025/26"
16
+ ],
17
+ rows: [
18
+ "Scotland",
19
+ "England",
20
+ "Wales",
21
+ "Northern Ireland"
22
+ ],
23
+ values: [
24
+ [
25
+ 7560,
26
+ 4630,
27
+ 4760,
28
+ 7140,
29
+ 11210,
30
+ 11050,
31
+ 10660,
32
+ 10480,
33
+ 8190,
34
+ 15040,
35
+ 8470,
36
+ 7220
37
+ ],
38
+ [
39
+ 2430,
40
+ 820,
41
+ 1680,
42
+ 1500,
43
+ 1410,
44
+ 2340,
45
+ 2050,
46
+ 2260,
47
+ 3130,
48
+ 4590,
49
+ 5770,
50
+ 5250
51
+ ],
52
+ [
53
+ 100,
54
+ 110,
55
+ 410,
56
+ 200,
57
+ 670,
58
+ 80,
59
+ 290,
60
+ 620,
61
+ 1190,
62
+ 640,
63
+ 840,
64
+ 680
65
+ ],
66
+ [
67
+ 210,
68
+ 50,
69
+ 210,
70
+ 210,
71
+ 240,
72
+ 200,
73
+ 280,
74
+ 540,
75
+ 450,
76
+ 430,
77
+ 500,
78
+ 330
79
+ ]
80
+ ]
81
+ };
82
+ //#endregion
83
+ export { e as arcMatrixDemo };
@@ -0,0 +1,146 @@
1
+ "use client";
2
+ import { fmtInt as e } from "../../lib/format.js";
3
+ import { Plot as t, Tooltip as n } from "../core.js";
4
+ import { clamp as r, noteOf as i, noteSpace as a, sansWidth as o, stagger as s } from "../util.js";
5
+ import { HitCircle as c, TipText as l } from "../hover.js";
6
+ import { FootNote as u } from "../plot-note.js";
7
+ import { ChartSvg as d } from "../svg.js";
8
+ import { Label as f } from "../text.js";
9
+ import { arcMatrixDemo as p } from "./arc-matrix.data.js";
10
+ import { useState as m } from "react";
11
+ import { scaleSqrt as h } from "d3-scale";
12
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
13
+ //#region src/charts/lupi/arc-matrix.tsx
14
+ var v = (e, t, n, i, a) => {
15
+ let s = n.cols.length, c = Math.max(0, ...n.rows.map((e) => o(e, 11))), l = n.rows.length, u = (e) => r((t - e - 8 - a) / (l + .2), 22, 40), d = n.cols.map((e) => o(e, 11)), f = Math.max(0, ...d), p = (e) => {
16
+ let t = e < 30 ? -64 : -50, n = Math.sin(-t * Math.PI / 180), r = Math.cos(-t * Math.PI / 180), i = Math.max(70, f * n + u(70) * .85 + 6), a = u(i), o = Math.min(e, a) * .4;
17
+ return {
18
+ head: i,
19
+ left: c + 8 + o,
20
+ right: Math.max(e * (s - 1) + o, ...d.map((t, i) => i * e + 8 + t * r + 3 * n)),
21
+ rows: a,
22
+ tilt: t
23
+ };
24
+ }, m = 44, g = p(m);
25
+ for (; m > 14 && g.left + g.right > e;) m -= .25, g = p(m);
26
+ let { head: _, left: v, right: y, rows: b, tilt: x } = g, S = m * (s - 1), C = v + Math.max(0, (e - v - y) / 2), w = C + S / 2, T = b * .5, E = (e, t) => {
27
+ let n = (t - w) / (S / 2 || 1);
28
+ return _ + T + e * b + b * .3 - T * (1 - n * n);
29
+ }, D = h().domain([0, i]).range([0, Math.min(m, b) * .4]), O = Array.from({ length: 41 }, (e, t) => C + S * t / 40);
30
+ return {
31
+ arcY: E,
32
+ bottom: _ + (l + .2) * b + 8 + a,
33
+ colPitch: m,
34
+ colTilt: x,
35
+ colX: (e) => C + e * m,
36
+ curve: (e) => O.map((t, n) => `${n === 0 ? "M" : "L"}${t.toFixed(1)},${E(e, t).toFixed(1)}`).join(""),
37
+ radius: (e) => Math.max(2, D(e)),
38
+ rowLabelX: C - Math.min(m, b) * .4 - 8,
39
+ rowPitch: b,
40
+ x0: C
41
+ };
42
+ }, y = (e) => {
43
+ let { arcY: t, colTilt: n, colX: r, curve: i, rowLabelX: a, rowPitch: o, x0: c } = e.layout, { hover: l } = e;
44
+ return /* @__PURE__ */ _("g", { children: [e.data.cols.map((e, i) => /* @__PURE__ */ g(f, {
45
+ className: l !== null && l.c === i ? "fill-text" : "fill-muted",
46
+ order: i,
47
+ tier: "mark",
48
+ transform: `translate(${r(i) + 2},${t(0, r(i)) - o * 1.15}) rotate(${n})`,
49
+ voice: "label",
50
+ children: e
51
+ }, e)), e.data.rows.map((e, n) => /* @__PURE__ */ _("g", { children: [/* @__PURE__ */ g("path", {
52
+ className: "draw stroke-rule",
53
+ d: i(n),
54
+ fill: "none",
55
+ pathLength: 1,
56
+ strokeWidth: 1,
57
+ style: s(n, "series")
58
+ }), /* @__PURE__ */ g(f, {
59
+ anchor: "end",
60
+ className: l !== null && l.r === n ? "fill-text" : "fill-muted",
61
+ middle: !0,
62
+ voice: "label",
63
+ x: a,
64
+ y: t(n, c),
65
+ children: e
66
+ })] }, e))] });
67
+ }, b = (r) => {
68
+ let o = r.data ?? p, h = r.height ?? 440, b = r.format ?? ((t) => `${e(t)} ha`), x = r.noun ?? "of new woodland", [S, C] = m(null), w = o.values.flatMap((e, t) => e.map((e, n) => ({
69
+ c: n,
70
+ id: `${o.rows[t]}-${o.cols[n]}`,
71
+ r: t,
72
+ v: e
73
+ }))), T = Math.max(1, ...w.map((e) => e.v)), E = w.toSorted((e, t) => t.v - e.v).slice(0, r.top ?? 3), D = new Set(E.map((e) => e.id)), O = E.at(0)?.id, k = (e) => S === null || S.r === e.r || S.c === e.c;
74
+ return /* @__PURE__ */ g(t, {
75
+ overlay: S === null ? null : /* @__PURE__ */ g(n, {
76
+ x: S.x,
77
+ y: S.y,
78
+ children: /* @__PURE__ */ g(l, {
79
+ facts: [o.cols[S.c], `${b(o.values[S.r][S.c])} ${x}`],
80
+ lead: o.rows[S.r]
81
+ })
82
+ }),
83
+ children: (e) => {
84
+ let t = a(i(r), e - 16, 20), n = v(e, h, o, T, t), l = Math.min(h, Math.round(n.bottom));
85
+ return /* @__PURE__ */ _(d, {
86
+ height: l,
87
+ label: `Matrix of ${o.rows.length} by ${o.cols.length}. Largest: ${E.map((e) => `${o.rows[e.r]} in ${o.cols[e.c]} ${b(e.v)}`).join(", ")}`,
88
+ leave: () => {
89
+ C(null);
90
+ },
91
+ title: "Bubble matrix with bowed rows",
92
+ width: e,
93
+ children: [
94
+ /* @__PURE__ */ g(y, {
95
+ data: o,
96
+ hover: S,
97
+ layout: n
98
+ }),
99
+ w.map((e) => {
100
+ let t = n.colX(e.c), r = n.arcY(e.r, t), i = n.radius(e.v), a = D.has(e.id);
101
+ return /* @__PURE__ */ _("g", {
102
+ className: `transition-opacity ${k(e) ? "" : "opacity-30"}`,
103
+ onPointerEnter: () => {
104
+ C({
105
+ c: e.c,
106
+ r: e.r,
107
+ x: t,
108
+ y: r - i - 4
109
+ });
110
+ },
111
+ children: [
112
+ /* @__PURE__ */ g(c, {
113
+ cx: t,
114
+ cy: r,
115
+ r: Math.max(i, n.colPitch / 2.2)
116
+ }),
117
+ /* @__PURE__ */ g("circle", {
118
+ className: `pop ${e.id === O ? "fill-hero" : "fill-l4"}`,
119
+ cx: t,
120
+ cy: r,
121
+ r: i,
122
+ style: s(e.r * 3 + e.c, "dense")
123
+ }),
124
+ a ? /* @__PURE__ */ g(f, {
125
+ anchor: "middle",
126
+ className: "fade",
127
+ voice: e.id === O ? "value" : "axis",
128
+ x: t,
129
+ y: r - i - 6,
130
+ children: b(e.v)
131
+ }) : null
132
+ ]
133
+ }, e.id);
134
+ }),
135
+ /* @__PURE__ */ g(u, {
136
+ height: l,
137
+ text: i(r),
138
+ width: e
139
+ })
140
+ ]
141
+ });
142
+ }
143
+ });
144
+ };
145
+ //#endregion
146
+ export { b as ArcMatrix };
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ //#region src/charts/lupi/ballot-tally.data.ts
3
+ var e = [
4
+ {
5
+ label: "Cinema",
6
+ value: 44
7
+ },
8
+ {
9
+ label: "Live performances",
10
+ value: 41
11
+ },
12
+ {
13
+ label: "Cultural sites",
14
+ value: 41
15
+ },
16
+ {
17
+ label: "Sports events",
18
+ value: 30
19
+ }
20
+ ];
21
+ //#endregion
22
+ export { e as ballotTallyDemo };