@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,1385 @@
1
+ /*
2
+ * Palettes. Charts never use hex values: only the semantic variables below.
3
+ *
4
+ * --hl-paper page and card surface
5
+ * --hl-ink strongest mark and headline colour
6
+ * --hl-text / --hl-muted / --hl-faint text hierarchy
7
+ * --hl-grid / --hl-rule hairlines: the faint grid and quiet rules
8
+ * --hl-l0 … --hl-l6 importance ladder, most important first ("lightness is data")
9
+ * --hl-hero the one highlighted element per chart
10
+ * --hl-alert thresholds, regressions, over-budget
11
+ * --hl-cat-1 … --hl-cat-4 categorical series
12
+ * --hl-heat-1 … --hl-heat-5 sequential ramp, low → high
13
+ *
14
+ * Every name is --hl- prefixed and scoped under a Hairline root (.hl-root);
15
+ * the library sets nothing on :root, so it never collides with a host's own
16
+ * variables. A host themes a root with deriveTheme (@howells/hairline/theme)
17
+ * or by overriding these on its own rule. Three house modes are set by
18
+ * data-palette on the root: paper, pink and dark. `.surface-dark` (the dark
19
+ * cell) remaps the same names, so a chart inverts without knowing it is on a
20
+ * dark card.
21
+ */
22
+
23
+ .hl-root,
24
+ .hl-root[data-palette="paper"] {
25
+ /* Paper: patternmode's paper and ink; the ramp steps evenly between them in OKLCH. */
26
+ --hl-paper: #fbfbf9;
27
+ --hl-ink: #1d1d1b;
28
+ --hl-text: #1d1d1b;
29
+ --hl-muted: #727068;
30
+ --hl-faint: #9f9e9a;
31
+ --hl-grid: #eeece7;
32
+ --hl-rule: #e3e1dc;
33
+
34
+ --hl-l0: #1d1d1b;
35
+ --hl-l1: #41403c;
36
+ --hl-l2: #5f5e5a;
37
+ --hl-l3: #7e7d79;
38
+ --hl-l4: #9f9e9a;
39
+ --hl-l5: #bfbeb9;
40
+ --hl-l6: #dad9d5;
41
+
42
+ --hl-hero: #1d1d1b;
43
+ --hl-alert: #c05951;
44
+
45
+ --hl-cat-1: var(--hl-l0);
46
+ --hl-cat-2: var(--hl-l2);
47
+ --hl-cat-3: var(--hl-l4);
48
+ --hl-cat-4: var(--hl-l6);
49
+
50
+ --hl-heat-1: #dad9d5;
51
+ --hl-heat-2: #9f9e9a;
52
+ --hl-heat-3: #7e7d79;
53
+ --hl-heat-4: #41403c;
54
+ --hl-heat-5: #1d1d1b;
55
+
56
+ /* The paper's grain: noise in the ink's colour at a whisper of opacity. */
57
+ --hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.000 0 0 0 0 0.000 0 0 0 0 0.000 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
58
+
59
+ --hl-dk-paper: #1d1d1b;
60
+ --hl-dk-ink: #fbfbf9;
61
+ --hl-dk-muted: #9f9e9a;
62
+ --hl-dk-faint: #5f5e5a;
63
+ --hl-dk-grid: #34332f;
64
+ --hl-dk-rule: #2b2a27;
65
+ --hl-dk-l0: #fbfbf9;
66
+ --hl-dk-l1: #dad9d5;
67
+ --hl-dk-l2: #bfbeb9;
68
+ --hl-dk-l3: #9f9e9a;
69
+ --hl-dk-l4: #7e7d79;
70
+ --hl-dk-l5: #5f5e5a;
71
+ --hl-dk-l6: #41403c;
72
+ --hl-dk-hero: #fbfbf9;
73
+ --hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
74
+ }
75
+
76
+ .hl-root[data-palette="pink"] {
77
+ /* Pink: a dusty, dusky broadsheet pink (a greyed rose, deeper than any trademark salmon), with a warm ink ramp drawn toward its hue. */
78
+ --hl-paper: #f1dfdc;
79
+ --hl-ink: #27201e;
80
+ --hl-text: #27201e;
81
+ --hl-muted: #6c605e;
82
+ --hl-faint: #a59895;
83
+ --hl-grid: #e4d3cf;
84
+ --hl-rule: #dccbc7;
85
+
86
+ --hl-l0: #27201e;
87
+ --hl-l1: #443b39;
88
+ --hl-l2: #635856;
89
+ --hl-l3: #837775;
90
+ --hl-l4: #a59895;
91
+ --hl-l5: #c4b5b2;
92
+ --hl-l6: #dccbc8;
93
+
94
+ --hl-hero: #27201e;
95
+ --hl-alert: #9c433e;
96
+
97
+ --hl-cat-1: var(--hl-l0);
98
+ --hl-cat-2: var(--hl-l2);
99
+ --hl-cat-3: var(--hl-l4);
100
+ --hl-cat-4: var(--hl-l6);
101
+
102
+ --hl-heat-1: #dccbc8;
103
+ --hl-heat-2: #a59895;
104
+ --hl-heat-3: #837775;
105
+ --hl-heat-4: #443b39;
106
+ --hl-heat-5: #27201e;
107
+
108
+ /* The paper's grain: noise in the ink's colour at a whisper of opacity. */
109
+ --hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.275 0 0 0 0 0.137 0 0 0 0 0.098 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
110
+
111
+ --hl-dk-paper: #1d1d1b;
112
+ --hl-dk-ink: #fbfbf9;
113
+ --hl-dk-muted: #9f9e9a;
114
+ --hl-dk-faint: #5f5e5a;
115
+ --hl-dk-grid: #34332f;
116
+ --hl-dk-rule: #2b2a27;
117
+ --hl-dk-l0: #fbfbf9;
118
+ --hl-dk-l1: #dad9d5;
119
+ --hl-dk-l2: #bfbeb9;
120
+ --hl-dk-l3: #9f9e9a;
121
+ --hl-dk-l4: #7e7d79;
122
+ --hl-dk-l5: #5f5e5a;
123
+ --hl-dk-l6: #41403c;
124
+ --hl-dk-hero: #fbfbf9;
125
+ --hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
126
+ }
127
+
128
+ .hl-root[data-palette="dark"] {
129
+ /* Dark: a warm near-black page; contrast rebuilt, not inverted. Light ink leads, the ramp descends toward the page. */
130
+ --hl-paper: #181715;
131
+ --hl-ink: #f0eeeb;
132
+ --hl-text: #f0eeeb;
133
+ --hl-muted: #888683;
134
+ --hl-faint: #686663;
135
+ --hl-grid: #242321;
136
+ --hl-rule: #2c2b29;
137
+
138
+ --hl-l0: #f0eeeb;
139
+ --hl-l1: #cccac7;
140
+ --hl-l2: #a9a7a4;
141
+ --hl-l3: #888683;
142
+ --hl-l4: #686663;
143
+ --hl-l5: #4c4a47;
144
+ --hl-l6: #373533;
145
+
146
+ /* A shade below the text ink, so large solid heroes glow rather than glare. */
147
+ --hl-hero: #d8d6d2;
148
+ --hl-alert: #d87a6e;
149
+
150
+ --hl-cat-1: var(--hl-l0);
151
+ --hl-cat-2: var(--hl-l2);
152
+ --hl-cat-3: var(--hl-l4);
153
+ --hl-cat-4: var(--hl-l6);
154
+
155
+ --hl-heat-1: #373533;
156
+ --hl-heat-2: #686663;
157
+ --hl-heat-3: #888683;
158
+ --hl-heat-4: #cccac7;
159
+ --hl-heat-5: #f0eeeb;
160
+
161
+ /* The paper's grain: noise in the ink's colour at a whisper of opacity. */
162
+ --hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
163
+ --hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
164
+
165
+ /* The one dark cell sits a step deeper than the dark page. */
166
+ --hl-dk-paper: #0e0d0b;
167
+ --hl-dk-ink: #f0eeeb;
168
+ --hl-dk-muted: #888683;
169
+ --hl-dk-faint: #4c4a47;
170
+ --hl-dk-grid: #1f1e1c;
171
+ --hl-dk-rule: #262523;
172
+ --hl-dk-l0: #f0eeeb;
173
+ --hl-dk-l1: #cccac7;
174
+ --hl-dk-l2: #a9a7a4;
175
+ --hl-dk-l3: #888683;
176
+ --hl-dk-l4: #686663;
177
+ --hl-dk-l5: #4c4a47;
178
+ --hl-dk-l6: #373533;
179
+ --hl-dk-hero: #d8d6d2;
180
+ }
181
+
182
+ /* Dark cards: same names, inverted values. */
183
+ .hl-root .surface-dark,
184
+ .hl-root.surface-dark {
185
+ --hl-paper: var(--hl-dk-paper);
186
+ --hl-ink: var(--hl-dk-ink);
187
+ --hl-text: var(--hl-dk-ink);
188
+ --hl-muted: var(--hl-dk-muted);
189
+ --hl-faint: var(--hl-dk-faint);
190
+ --hl-grid: var(--hl-dk-grid);
191
+ --hl-rule: var(--hl-dk-rule);
192
+ --hl-l0: var(--hl-dk-l0);
193
+ --hl-l1: var(--hl-dk-l1);
194
+ --hl-l2: var(--hl-dk-l2);
195
+ --hl-l3: var(--hl-dk-l3);
196
+ --hl-l4: var(--hl-dk-l4);
197
+ --hl-l5: var(--hl-dk-l5);
198
+ --hl-l6: var(--hl-dk-l6);
199
+ --hl-hero: var(--hl-dk-hero);
200
+ --hl-cat-1: var(--hl-dk-l0);
201
+ --hl-cat-2: var(--hl-dk-l2);
202
+ --hl-cat-3: var(--hl-dk-l4);
203
+ --hl-cat-4: var(--hl-dk-l6);
204
+ --hl-grain: var(--hl-dk-grain);
205
+ background: var(--hl-grain), var(--hl-paper);
206
+ color: var(--hl-text);
207
+ }
208
+
209
+ /* Derived tones, valid in every palette (and on dark cards). */
210
+ .hl-root,
211
+ .hl-root .surface-dark,
212
+ .hl-root.surface-dark {
213
+ --hl-alert-soft: color-mix(in oklab, var(--hl-alert) 22%, transparent);
214
+ --hl-alert-faded: color-mix(in oklab, var(--hl-alert) 45%, var(--hl-paper));
215
+ --hl-alert-rule: color-mix(in oklab, var(--hl-alert) 55%, var(--hl-paper));
216
+ --hl-hero-soft: color-mix(in oklab, var(--hl-hero) 25%, var(--hl-paper));
217
+ --hl-panel: color-mix(in oklab, var(--hl-paper) 96%, var(--hl-ink));
218
+ }
219
+
220
+ /*
221
+ * Dashboard boards (the dense, scrubbable style). They sit on the same paper
222
+ * as every other chart and read the palette's own text, muted, faint, grid
223
+ * and rule. Series tones are steps on the ramp: past, the cursor's month
224
+ * (active) and future.
225
+ */
226
+ .hl-root .surface-board,
227
+ .hl-root.surface-board {
228
+ --hl-bg: var(--hl-paper);
229
+ --hl-board-panel: var(--hl-paper);
230
+
231
+ /*
232
+ * Series tones: the fill taxonomy's tones only (src/charts/fills.ts): hero,
233
+ * l2, l3, l4, l5 and alert. No mixes, no alpha, no l0, l1 or l6.
234
+ */
235
+ --hl-s1: var(--hl-l2);
236
+ --hl-s1-active: var(--hl-hero);
237
+ --hl-s1-future: var(--hl-l4);
238
+ --hl-s2: var(--hl-l4);
239
+ --hl-s2-active: var(--hl-l3);
240
+ --hl-s2-future: var(--hl-l5);
241
+ --hl-s3: var(--hl-l5);
242
+ --hl-s3-active: var(--hl-l4);
243
+ --hl-s3-future: var(--hl-l5);
244
+
245
+ --hl-line1: var(--hl-hero);
246
+ --hl-line1-future: var(--hl-l4);
247
+ --hl-line2: var(--hl-l3);
248
+ --hl-line2-future: var(--hl-l5);
249
+
250
+ --hl-area1: var(--hl-l5);
251
+ --hl-area2: var(--hl-l5);
252
+ --hl-area3: var(--hl-l5);
253
+ --hl-band-past: var(--hl-l5);
254
+ --hl-band-future: var(--hl-l5);
255
+
256
+ /* Red marks one exceptional thing per chart: one solid alert tone. */
257
+ --hl-red: var(--hl-alert);
258
+ --hl-red-past: var(--hl-alert);
259
+ --hl-red-future: var(--hl-alert);
260
+ --hl-red-soft: var(--hl-alert);
261
+ --hl-red-rule: var(--hl-alert);
262
+
263
+ --hl-board-bar: var(--hl-l3);
264
+ --hl-board-label-2: var(--hl-l3);
265
+ --hl-board-swatch-3: var(--hl-l4);
266
+ --hl-board-link: var(--hl-l5);
267
+ --hl-board-link-hot: var(--hl-l4);
268
+ --hl-board-hot: var(--hl-alert);
269
+ --hl-board-heat-1: var(--hl-l5);
270
+ --hl-board-heat-2: var(--hl-l4);
271
+ --hl-board-heat-3: var(--hl-l3);
272
+ --hl-board-heat-4: var(--hl-l2);
273
+ --hl-board-heat-5: var(--hl-hero);
274
+
275
+ --hl-panel: var(--hl-board-panel);
276
+ background: var(--hl-grain), var(--hl-bg);
277
+ color: var(--hl-text);
278
+ }
279
+
280
+ /*
281
+ * Motion. Every chart moves with these and nothing else; charts/motion.ts
282
+ * mirrors them for the few charts animated from script.
283
+ */
284
+ .hl-root {
285
+ /* Arrivals: bars, dots and labels appearing in place (ease-out-quint). */
286
+ --hl-ease-enter: cubic-bezier(0.23, 1, 0.32, 1);
287
+ /* Crossing the chart: lines drawing on, wipes, marks moving (ease-in-out-quart). */
288
+ --hl-ease-travel: cubic-bezier(0.77, 0, 0.175, 1);
289
+ /* Tone changes: hover dims, highlights, palettes. */
290
+ --hl-ease-tone: ease;
291
+
292
+ --hl-duration-hover: 150ms; /* dims and highlights under the pointer */
293
+ --hl-duration-change: 400ms; /* data or palette changing in place */
294
+ --hl-duration-enter: 600ms; /* dots and text arriving */
295
+ --hl-duration-grow: 800ms; /* bars and areas rising from their baseline */
296
+ --hl-duration-long: 1200ms; /* lines drawing on, marks crossing a chart */
297
+
298
+ /* Labels and furniture trail the marks they describe. */
299
+ --hl-fade-lag: 150ms;
300
+
301
+ /* Steps between neighbours in a group, by how many there are. */
302
+ --hl-stagger-dense: 8ms; /* hundreds: cells, ticks, dots */
303
+ --hl-stagger-fine: 16ms; /* dozens */
304
+ --hl-stagger-mark: 40ms; /* a handful of bars or points */
305
+ --hl-stagger-series: 80ms; /* a few series, rows or phases */
306
+ }
307
+
308
+ .hl-root .pointer-events-none {
309
+ pointer-events: none;
310
+ }
311
+
312
+ .hl-root .visible {
313
+ visibility: visible;
314
+ }
315
+
316
+ .hl-root .sr-only {
317
+ clip-path: inset(50%);
318
+ white-space: nowrap;
319
+ border-width: 0;
320
+ width: 1px;
321
+ height: 1px;
322
+ margin: -1px;
323
+ padding: 0;
324
+ position: absolute;
325
+ overflow: hidden;
326
+ }
327
+
328
+ .hl-root .absolute {
329
+ position: absolute;
330
+ }
331
+
332
+ .hl-root .relative {
333
+ position: relative;
334
+ }
335
+
336
+ .hl-root .note-pop {
337
+ width: min(20rem, 100vw - 2rem);
338
+ }
339
+
340
+ @supports (position-area: bottom) {
341
+ .hl-root .note-pop {
342
+ position-area: bottom span-left;
343
+ position-try-fallbacks: flip-block, --hl-note-scroll;
344
+ margin: .625rem 0 0;
345
+ inset: auto;
346
+ }
347
+ }
348
+
349
+ @media (prefers-reduced-motion: no-preference) {
350
+ .hl-root .note-pop {
351
+ transition: opacity var(--hl-duration-hover) var(--hl-ease-enter), translate var(--hl-duration-hover) var(--hl-ease-enter), display var(--hl-duration-hover) allow-discrete, overlay var(--hl-duration-hover) allow-discrete;
352
+ }
353
+
354
+ .hl-root .note-pop:not(:popover-open) {
355
+ opacity: 0;
356
+ translate: 0 -4px;
357
+ }
358
+
359
+ @starting-style {
360
+ .hl-root .note-pop:popover-open {
361
+ opacity: 0;
362
+ translate: 0 -4px;
363
+ }
364
+ }
365
+ }
366
+
367
+ .hl-root .z-10 {
368
+ z-index: 10;
369
+ }
370
+
371
+ .hl-root .m-0 {
372
+ margin: 0;
373
+ }
374
+
375
+ .hl-root .-my-3 {
376
+ margin-block: -.75rem;
377
+ }
378
+
379
+ .hl-root .-mt-2\.5 {
380
+ margin-top: -.625rem;
381
+ }
382
+
383
+ .hl-root .mt-3 {
384
+ margin-top: .75rem;
385
+ }
386
+
387
+ .hl-root .-mr-3\.5 {
388
+ margin-right: -.875rem;
389
+ }
390
+
391
+ .hl-root .flex {
392
+ display: flex;
393
+ }
394
+
395
+ .hl-root .grid {
396
+ display: grid;
397
+ }
398
+
399
+ .hl-root .hidden {
400
+ display: none;
401
+ }
402
+
403
+ .hl-root .inline-flex {
404
+ display: inline-flex;
405
+ }
406
+
407
+ .hl-root .table {
408
+ display: table;
409
+ }
410
+
411
+ .hl-root .size-4 {
412
+ width: 1rem;
413
+ height: 1rem;
414
+ }
415
+
416
+ .hl-root .size-11 {
417
+ width: 2.75rem;
418
+ height: 2.75rem;
419
+ }
420
+
421
+ .hl-root .h-7 {
422
+ height: 1.75rem;
423
+ }
424
+
425
+ .hl-root .h-11 {
426
+ height: 2.75rem;
427
+ }
428
+
429
+ .hl-root .min-h-11 {
430
+ min-height: 2.75rem;
431
+ }
432
+
433
+ .hl-root .w-full {
434
+ width: 100%;
435
+ }
436
+
437
+ .hl-root .min-w-0 {
438
+ min-width: 0;
439
+ }
440
+
441
+ .hl-root .min-w-11 {
442
+ min-width: 2.75rem;
443
+ }
444
+
445
+ .hl-root .flex-1 {
446
+ flex: 1;
447
+ }
448
+
449
+ .hl-root .shrink-0 {
450
+ flex-shrink: 0;
451
+ }
452
+
453
+ .hl-root .grow {
454
+ flex-grow: 1;
455
+ }
456
+
457
+ .hl-root .border-collapse {
458
+ border-collapse: collapse;
459
+ }
460
+
461
+ .hl-root .grow-x {
462
+ transform-box: fill-box;
463
+ transform-origin: 0%;
464
+ }
465
+
466
+ @media screen and (prefers-reduced-motion: no-preference) {
467
+ :where(.is-hidden) :is(.hl-root .grow-x) {
468
+ transform: scaleX(0);
469
+ }
470
+
471
+ :where(.is-shown) :is(.hl-root .grow-x) {
472
+ animation: hl-grow-x var(--hl-duration-grow) var(--hl-ease-enter) both;
473
+ animation-delay: calc(var(--hl-i, 0) * var(--hl-stagger, var(--hl-stagger-mark)));
474
+ }
475
+ }
476
+
477
+ .hl-root .grow-y {
478
+ transform-box: fill-box;
479
+ transform-origin: 50% 100%;
480
+ }
481
+
482
+ @media screen and (prefers-reduced-motion: no-preference) {
483
+ :where(.is-hidden) :is(.hl-root .grow-y) {
484
+ transform: scaleY(0);
485
+ }
486
+
487
+ :where(.is-shown) :is(.hl-root .grow-y) {
488
+ animation: hl-grow-y var(--hl-duration-grow) var(--hl-ease-enter) both;
489
+ animation-delay: calc(var(--hl-i, 0) * var(--hl-stagger, var(--hl-stagger-mark)));
490
+ }
491
+ }
492
+
493
+ .hl-root .sweep {
494
+ transform-box: fill-box;
495
+ transform-origin: 0%;
496
+ }
497
+
498
+ @media screen and (prefers-reduced-motion: no-preference) {
499
+ :where(.is-hidden) :is(.hl-root .sweep) {
500
+ transform: scaleX(0);
501
+ }
502
+
503
+ :where(.is-shown) :is(.hl-root .sweep) {
504
+ animation: hl-grow-x var(--hl-duration-long) var(--hl-ease-travel) both;
505
+ }
506
+ }
507
+
508
+ .hl-root .pop {
509
+ transform-box: fill-box;
510
+ transform-origin: 50%;
511
+ }
512
+
513
+ @media screen and (prefers-reduced-motion: no-preference) {
514
+ :where(.is-hidden) :is(.hl-root .pop) {
515
+ opacity: 0;
516
+ }
517
+
518
+ :where(.is-shown) :is(.hl-root .pop) {
519
+ animation: hl-pop var(--hl-duration-enter) var(--hl-ease-enter) both;
520
+ animation-delay: calc(var(--hl-i, 0) * var(--hl-stagger, var(--hl-stagger-fine)));
521
+ }
522
+ }
523
+
524
+ .hl-root .from-right.grow-x {
525
+ transform-origin: 100%;
526
+ }
527
+
528
+ .hl-root .from-top.grow-y {
529
+ transform-origin: 50% 0;
530
+ }
531
+
532
+ .hl-root .-translate-x-1\/2 {
533
+ --hl-tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
534
+ translate: var(--hl-tw-translate-x) var(--hl-tw-translate-y);
535
+ }
536
+
537
+ .hl-root .-translate-y-full {
538
+ --hl-tw-translate-y: -100%;
539
+ translate: var(--hl-tw-translate-x) var(--hl-tw-translate-y);
540
+ }
541
+
542
+ .hl-root .translate-y-3 {
543
+ --hl-tw-translate-y: calc(.25rem * 3);
544
+ translate: var(--hl-tw-translate-x) var(--hl-tw-translate-y);
545
+ }
546
+
547
+ .hl-root .transform {
548
+ transform: var(--hl-tw-rotate-x, ) var(--hl-tw-rotate-y, ) var(--hl-tw-rotate-z, ) var(--hl-tw-skew-x, ) var(--hl-tw-skew-y, );
549
+ }
550
+
551
+ @media screen and (prefers-reduced-motion: no-preference) {
552
+ .hl-root :where(.is-hidden) .fade {
553
+ opacity: 0;
554
+ }
555
+
556
+ .hl-root :where(.is-shown) .fade {
557
+ animation: hl-fade-in var(--hl-duration-enter) var(--hl-ease-enter) both;
558
+ animation-delay: calc(var(--hl-i, 0) * var(--hl-stagger, var(--hl-stagger-mark)) + var(--hl-fade-lag));
559
+ }
560
+
561
+ .hl-root :where(.is-hidden) .draw {
562
+ stroke-dasharray: 1;
563
+ stroke-dashoffset: 1px;
564
+ }
565
+
566
+ .hl-root :where(.is-shown) .draw {
567
+ animation: hl-draw var(--hl-duration-long) var(--hl-ease-travel) backwards;
568
+ animation-delay: calc(var(--hl-i, 0) * var(--hl-stagger, var(--hl-stagger-series)));
569
+ }
570
+ }
571
+
572
+ .hl-root .cursor-ew-resize {
573
+ cursor: ew-resize;
574
+ }
575
+
576
+ .hl-root .cursor-grab {
577
+ cursor: grab;
578
+ }
579
+
580
+ .hl-root .cursor-grabbing {
581
+ cursor: grabbing;
582
+ }
583
+
584
+ .hl-root .cursor-pointer {
585
+ cursor: pointer;
586
+ }
587
+
588
+ .hl-root .touch-pan-y {
589
+ --hl-tw-pan-y: pan-y;
590
+ touch-action: var(--hl-tw-pan-x, ) var(--hl-tw-pan-y, ) var(--hl-tw-pinch-zoom, );
591
+ }
592
+
593
+ .hl-root .touch-none {
594
+ touch-action: none;
595
+ }
596
+
597
+ .hl-root .flex-col {
598
+ flex-direction: column;
599
+ }
600
+
601
+ .hl-root .items-center {
602
+ align-items: center;
603
+ }
604
+
605
+ .hl-root .justify-between {
606
+ justify-content: space-between;
607
+ }
608
+
609
+ .hl-root .justify-center {
610
+ justify-content: center;
611
+ }
612
+
613
+ .hl-root .gap-1 {
614
+ gap: .25rem;
615
+ }
616
+
617
+ .hl-root .gap-1\.5 {
618
+ gap: .375rem;
619
+ }
620
+
621
+ .hl-root .gap-4 {
622
+ gap: 1rem;
623
+ }
624
+
625
+ .hl-root .gap-8 {
626
+ gap: 2rem;
627
+ }
628
+
629
+ .hl-root .rounded-full {
630
+ border-radius: 3.40282e38px;
631
+ }
632
+
633
+ .hl-root .rounded-tip {
634
+ border-radius: 10px;
635
+ }
636
+
637
+ .hl-root .rounded-xs {
638
+ border-radius: .125rem;
639
+ }
640
+
641
+ .hl-root .border {
642
+ border-style: var(--hl-tw-border-style);
643
+ border-width: 1px;
644
+ }
645
+
646
+ .hl-root .border-0 {
647
+ border-style: var(--hl-tw-border-style);
648
+ border-width: 0;
649
+ }
650
+
651
+ .hl-root .border-ink {
652
+ border-color: var(--hl-ink);
653
+ }
654
+
655
+ .hl-root .border-rule {
656
+ border-color: var(--hl-rule);
657
+ }
658
+
659
+ .hl-root .bg-ink {
660
+ background-color: var(--hl-ink);
661
+ }
662
+
663
+ .hl-root .bg-panel {
664
+ background-color: var(--hl-panel);
665
+ }
666
+
667
+ .hl-root .bg-paper {
668
+ background-color: var(--hl-paper);
669
+ }
670
+
671
+ .hl-root .bg-transparent {
672
+ background-color: #0000;
673
+ }
674
+
675
+ .hl-root .t-figure {
676
+ fill: var(--hl-ink);
677
+ font-family: var(--hl-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
678
+ letter-spacing: -.02em;
679
+ font-variant-numeric: tabular-nums;
680
+ font-size: 30px;
681
+ font-weight: 600;
682
+ }
683
+
684
+ .hl-root .t-axis {
685
+ fill: var(--hl-muted);
686
+ font-family: var(--hl-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
687
+ font-variant-numeric: tabular-nums;
688
+ font-size: 11px;
689
+ font-weight: 400;
690
+ }
691
+
692
+ .hl-root .t-value {
693
+ fill: var(--hl-ink);
694
+ font-family: var(--hl-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
695
+ font-variant-numeric: tabular-nums;
696
+ font-size: 11px;
697
+ font-weight: 600;
698
+ }
699
+
700
+ .hl-root .t-label {
701
+ fill: var(--hl-text);
702
+ font-family: var(--hl-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
703
+ font-size: 11px;
704
+ font-weight: 500;
705
+ }
706
+
707
+ .hl-root .fill-alert {
708
+ fill: var(--hl-alert);
709
+ }
710
+
711
+ .hl-root .fill-current {
712
+ fill: currentColor;
713
+ }
714
+
715
+ .hl-root .fill-faint {
716
+ fill: var(--hl-faint);
717
+ }
718
+
719
+ .hl-root .fill-hero {
720
+ fill: var(--hl-hero);
721
+ }
722
+
723
+ .hl-root .fill-ink {
724
+ fill: var(--hl-ink);
725
+ }
726
+
727
+ .hl-root .fill-l2 {
728
+ fill: var(--hl-l2);
729
+ }
730
+
731
+ .hl-root .fill-l3 {
732
+ fill: var(--hl-l3);
733
+ }
734
+
735
+ .hl-root .fill-l4 {
736
+ fill: var(--hl-l4);
737
+ }
738
+
739
+ .hl-root .fill-l5 {
740
+ fill: var(--hl-l5);
741
+ }
742
+
743
+ .hl-root .fill-muted {
744
+ fill: var(--hl-muted);
745
+ }
746
+
747
+ .hl-root .fill-none {
748
+ fill: none;
749
+ }
750
+
751
+ .hl-root .fill-paper {
752
+ fill: var(--hl-paper);
753
+ }
754
+
755
+ .hl-root .fill-text {
756
+ fill: var(--hl-text);
757
+ }
758
+
759
+ .hl-root .fill-transparent {
760
+ fill: #0000;
761
+ }
762
+
763
+ .hl-root .t-halo {
764
+ paint-order: stroke;
765
+ stroke: var(--hl-paper);
766
+ stroke-width: 3px;
767
+ stroke-linejoin: round;
768
+ }
769
+
770
+ .hl-root .grid-line {
771
+ stroke: var(--hl-grid);
772
+ stroke-width: 1px;
773
+ shape-rendering: crispedges;
774
+ }
775
+
776
+ .hl-root .hairline {
777
+ stroke: var(--hl-ink);
778
+ stroke-width: 1px;
779
+ shape-rendering: crispedges;
780
+ }
781
+
782
+ .hl-root .rule {
783
+ stroke: var(--hl-rule);
784
+ stroke-width: 1px;
785
+ shape-rendering: crispedges;
786
+ }
787
+
788
+ .hl-root .stroke-alert {
789
+ stroke: var(--hl-alert);
790
+ }
791
+
792
+ .hl-root .stroke-current {
793
+ stroke: currentColor;
794
+ }
795
+
796
+ .hl-root .stroke-faint {
797
+ stroke: var(--hl-faint);
798
+ }
799
+
800
+ .hl-root .stroke-grid {
801
+ stroke: var(--hl-grid);
802
+ }
803
+
804
+ .hl-root .stroke-hero {
805
+ stroke: var(--hl-hero);
806
+ }
807
+
808
+ .hl-root .stroke-ink {
809
+ stroke: var(--hl-ink);
810
+ }
811
+
812
+ .hl-root .stroke-l0 {
813
+ stroke: var(--hl-l0);
814
+ }
815
+
816
+ .hl-root .stroke-l1 {
817
+ stroke: var(--hl-l1);
818
+ }
819
+
820
+ .hl-root .stroke-l2 {
821
+ stroke: var(--hl-l2);
822
+ }
823
+
824
+ .hl-root .stroke-l3 {
825
+ stroke: var(--hl-l3);
826
+ }
827
+
828
+ .hl-root .stroke-l4 {
829
+ stroke: var(--hl-l4);
830
+ }
831
+
832
+ .hl-root .stroke-l5 {
833
+ stroke: var(--hl-l5);
834
+ }
835
+
836
+ .hl-root .stroke-l6 {
837
+ stroke: var(--hl-l6);
838
+ }
839
+
840
+ .hl-root .stroke-muted {
841
+ stroke: var(--hl-muted);
842
+ }
843
+
844
+ .hl-root .stroke-none {
845
+ stroke: none;
846
+ }
847
+
848
+ .hl-root .stroke-paper {
849
+ stroke: var(--hl-paper);
850
+ }
851
+
852
+ .hl-root .stroke-rule {
853
+ stroke: var(--hl-rule);
854
+ }
855
+
856
+ .hl-root .stroke-transparent {
857
+ stroke: #0000;
858
+ }
859
+
860
+ .hl-root .stroke-medium {
861
+ stroke-width: 1.5px;
862
+ }
863
+
864
+ .hl-root .p-0 {
865
+ padding: 0;
866
+ }
867
+
868
+ .hl-root .p-4 {
869
+ padding: 1rem;
870
+ }
871
+
872
+ .hl-root .px-2 {
873
+ padding-inline: .5rem;
874
+ }
875
+
876
+ .hl-root .px-2\.5 {
877
+ padding-inline: .625rem;
878
+ }
879
+
880
+ .hl-root .px-3 {
881
+ padding-inline: .75rem;
882
+ }
883
+
884
+ .hl-root .py-1\.75 {
885
+ padding-block: .4375rem;
886
+ }
887
+
888
+ .hl-root .py-3 {
889
+ padding-block: .75rem;
890
+ }
891
+
892
+ .hl-root .text-left {
893
+ text-align: left;
894
+ }
895
+
896
+ .hl-root .text-tick\/normal {
897
+ font-size: 11px;
898
+ line-height: 1.5;
899
+ }
900
+
901
+ .hl-root .text-small {
902
+ font-size: 13.5px;
903
+ }
904
+
905
+ .hl-root .text-tick {
906
+ font-size: 11px;
907
+ }
908
+
909
+ .hl-root .font-medium {
910
+ --hl-tw-font-weight: 500;
911
+ font-weight: 500;
912
+ }
913
+
914
+ .hl-root .whitespace-nowrap {
915
+ white-space: nowrap;
916
+ }
917
+
918
+ .hl-root .text-muted {
919
+ color: var(--hl-muted);
920
+ }
921
+
922
+ .hl-root .text-paper {
923
+ color: var(--hl-paper);
924
+ }
925
+
926
+ .hl-root .text-text {
927
+ color: var(--hl-text);
928
+ }
929
+
930
+ .hl-root .tabular-nums {
931
+ --hl-tw-numeric-spacing: tabular-nums;
932
+ font-variant-numeric: var(--hl-tw-ordinal, ) var(--hl-tw-slashed-zero, ) var(--hl-tw-numeric-figure, ) var(--hl-tw-numeric-spacing, ) var(--hl-tw-numeric-fraction, );
933
+ }
934
+
935
+ .hl-root .opacity-30 {
936
+ opacity: .3;
937
+ }
938
+
939
+ .hl-root .opacity-55 {
940
+ opacity: .55;
941
+ }
942
+
943
+ .hl-root .shadow {
944
+ --hl-tw-shadow: 0 1px 3px 0 var(--hl-tw-shadow-color, #0000001a), 0 1px 2px -1px var(--hl-tw-shadow-color, #0000001a);
945
+ box-shadow: var(--hl-tw-inset-shadow), var(--hl-tw-inset-ring-shadow), var(--hl-tw-ring-offset-shadow), var(--hl-tw-ring-shadow), var(--hl-tw-shadow);
946
+ }
947
+
948
+ .hl-root .ring {
949
+ --hl-tw-ring-shadow: var(--hl-tw-ring-inset, ) 0 0 0 calc(1px + var(--hl-tw-ring-offset-width)) var(--hl-tw-ring-color, currentcolor);
950
+ box-shadow: var(--hl-tw-inset-shadow), var(--hl-tw-inset-ring-shadow), var(--hl-tw-ring-offset-shadow), var(--hl-tw-ring-shadow), var(--hl-tw-shadow);
951
+ }
952
+
953
+ .hl-root .outline {
954
+ outline-style: var(--hl-tw-outline-style);
955
+ outline-width: 1px;
956
+ }
957
+
958
+ .hl-root .transition-colors {
959
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --hl-tw-gradient-from, --hl-tw-gradient-via, --hl-tw-gradient-to;
960
+ transition-timing-function: var(--hl-tw-ease, cubic-bezier(.4, 0, .2, 1));
961
+ transition-duration: var(--hl-tw-duration, .15s);
962
+ }
963
+
964
+ .hl-root .transition-opacity {
965
+ transition-property: opacity;
966
+ transition-timing-function: var(--hl-tw-ease, cubic-bezier(.4, 0, .2, 1));
967
+ transition-duration: var(--hl-tw-duration, .15s);
968
+ }
969
+
970
+ .hl-root .transition-radius {
971
+ transition-property: r;
972
+ transition-timing-function: var(--hl-tw-ease, var(--hl-ease-tone));
973
+ transition-duration: var(--hl-tw-duration, var(--hl-duration-hover));
974
+ }
975
+
976
+ .hl-root .transition-tone {
977
+ transition-property: color, fill, stroke, opacity;
978
+ transition-timing-function: var(--hl-tw-ease, var(--hl-ease-tone));
979
+ transition-duration: var(--hl-tw-duration, var(--hl-duration-hover));
980
+ }
981
+
982
+ .hl-root .transition-transform {
983
+ transition-property: transform, translate, scale, rotate;
984
+ transition-timing-function: var(--hl-tw-ease, cubic-bezier(.4, 0, .2, 1));
985
+ transition-duration: var(--hl-tw-duration, .15s);
986
+ }
987
+
988
+ .hl-root .duration-change {
989
+ --hl-tw-duration: var(--hl-duration-change);
990
+ transition-duration: var(--hl-duration-change);
991
+ }
992
+
993
+ .hl-root .ease-enter {
994
+ --hl-tw-ease: var(--hl-ease-enter);
995
+ transition-timing-function: var(--hl-ease-enter);
996
+ }
997
+
998
+ .hl-root .ease-travel {
999
+ --hl-tw-ease: var(--hl-ease-travel);
1000
+ transition-timing-function: var(--hl-ease-travel);
1001
+ }
1002
+
1003
+ .hl-root .cap-round {
1004
+ stroke-linecap: round;
1005
+ stroke-linejoin: round;
1006
+ }
1007
+
1008
+ .hl-root .dash-rule {
1009
+ stroke-dasharray: 4 3;
1010
+ }
1011
+
1012
+ .hl-root .shape-crisp {
1013
+ shape-rendering: crispedges;
1014
+ }
1015
+
1016
+ .hl-root .shape-smooth {
1017
+ shape-rendering: auto;
1018
+ }
1019
+
1020
+ @media (hover: hover) {
1021
+ .hl-root .group-hover\:border-faint:is(:where(.group):hover *) {
1022
+ border-color: var(--hl-faint);
1023
+ }
1024
+ }
1025
+
1026
+ .hl-root .group-focus-visible\:outline-1:is(:where(.group):focus-visible *) {
1027
+ outline-style: var(--hl-tw-outline-style);
1028
+ outline-width: 1px;
1029
+ }
1030
+
1031
+ .hl-root .group-focus-visible\:outline-offset-2:is(:where(.group):focus-visible *) {
1032
+ outline-offset: 2px;
1033
+ }
1034
+
1035
+ .hl-root .group-focus-visible\:outline-muted:is(:where(.group):focus-visible *) {
1036
+ outline-color: var(--hl-muted);
1037
+ }
1038
+
1039
+ .hl-root .group-data-\[focus\=true\]\/galaxy\:not-data-\[on\=true\]\:opacity-5:is(:where(.group\/galaxy)[data-focus="true"] *):not([data-on="true"]) {
1040
+ opacity: .05;
1041
+ }
1042
+
1043
+ .hl-root .group-data-\[focus\=true\]\/galaxy\:not-data-\[on\=true\]\:opacity-30:is(:where(.group\/galaxy)[data-focus="true"] *):not([data-on="true"]) {
1044
+ opacity: .3;
1045
+ }
1046
+
1047
+ .hl-root .group-data-\[focus\=true\]\/map\:opacity-30:is(:where(.group\/map)[data-focus="true"] *) {
1048
+ opacity: .3;
1049
+ }
1050
+
1051
+ .hl-root .group-data-\[focus\=true\]\/ring\:opacity-30:is(:where(.group\/ring)[data-focus="true"] *) {
1052
+ opacity: .3;
1053
+ }
1054
+
1055
+ .hl-root .group-data-\[focus\=true\]\/threads\:opacity-30:is(:where(.group\/threads)[data-focus="true"] *) {
1056
+ opacity: .3;
1057
+ }
1058
+
1059
+ .hl-root .group-data-\[plate\=true\]\/hub\:hidden:is(:where(.group\/hub)[data-plate="true"] *) {
1060
+ display: none;
1061
+ }
1062
+
1063
+ .hl-root .group-data-\[plate\=true\]\/hub\:inline:is(:where(.group\/hub)[data-plate="true"] *) {
1064
+ display: inline;
1065
+ }
1066
+
1067
+ @media (hover: hover) {
1068
+ .hl-root .hover\:text-text:hover {
1069
+ color: var(--hl-text);
1070
+ }
1071
+ }
1072
+
1073
+ .hl-root .focus-visible\:outline-1:focus-visible {
1074
+ outline-style: var(--hl-tw-outline-style);
1075
+ outline-width: 1px;
1076
+ }
1077
+
1078
+ .hl-root .focus-visible\:-outline-offset-8:focus-visible {
1079
+ outline-offset: calc(8px * -1);
1080
+ }
1081
+
1082
+ .hl-root .focus-visible\:outline-muted:focus-visible {
1083
+ outline-color: var(--hl-muted);
1084
+ }
1085
+
1086
+ .hl-root .focus-visible\:outline-none:focus-visible {
1087
+ --hl-tw-outline-style: none;
1088
+ outline-style: none;
1089
+ }
1090
+
1091
+ .hl-root .focus-visible\:outline-solid:focus-visible {
1092
+ --hl-tw-outline-style: solid;
1093
+ outline-style: solid;
1094
+ }
1095
+
1096
+ .hl-root .active\:cursor-grabbing:active {
1097
+ cursor: grabbing;
1098
+ }
1099
+
1100
+ .hl-root .data-\[dragging\=true\]\:cursor-grabbing[data-dragging="true"] {
1101
+ cursor: grabbing;
1102
+ }
1103
+
1104
+ .hl-root .data-\[on\=true\]\:stroke-ink[data-on="true"] {
1105
+ stroke: var(--hl-ink);
1106
+ }
1107
+
1108
+ .hl-root .\[\&_b\]\:font-semibold b {
1109
+ --hl-tw-font-weight: 600;
1110
+ font-weight: 600;
1111
+ }
1112
+
1113
+ .hl-root .\[\&_svg\]\:block svg {
1114
+ display: block;
1115
+ }
1116
+
1117
+ .hl-root .\[\&_svg\]\:overflow-visible svg {
1118
+ overflow: visible;
1119
+ }
1120
+
1121
+ .hl-root .\[\&_svg\]\:select-none svg {
1122
+ -webkit-user-select: none;
1123
+ user-select: none;
1124
+ }
1125
+
1126
+ .hl-root .\[\&_svg\:focus\]\:outline-none svg:focus {
1127
+ --hl-tw-outline-style: none;
1128
+ outline-style: none;
1129
+ }
1130
+
1131
+ .hl-root .\[\&_svg\:focus-visible\]\:outline-1 svg:focus-visible {
1132
+ outline-style: var(--hl-tw-outline-style);
1133
+ outline-width: 1px;
1134
+ }
1135
+
1136
+ .hl-root .\[\&_svg\:focus-visible\]\:outline-offset-4 svg:focus-visible {
1137
+ outline-offset: 4px;
1138
+ }
1139
+
1140
+ .hl-root .\[\&_svg\:focus-visible\]\:outline-muted svg:focus-visible {
1141
+ outline-color: var(--hl-muted);
1142
+ }
1143
+
1144
+ .hl-root .\[\&_svg\:focus-visible\]\:outline-solid svg:focus-visible {
1145
+ --hl-tw-outline-style: solid;
1146
+ outline-style: solid;
1147
+ }
1148
+
1149
+ .hl-root .\[\&\:has\(\+\:popover-open\)\]\:text-text:has( + :popover-open) {
1150
+ color: var(--hl-text);
1151
+ }
1152
+
1153
+ @keyframes hl-grow-y {
1154
+ from {
1155
+ transform: scaleY(0);
1156
+ }
1157
+ }
1158
+
1159
+ @keyframes hl-grow-x {
1160
+ from {
1161
+ transform: scaleX(0);
1162
+ }
1163
+ }
1164
+
1165
+ @keyframes hl-pop {
1166
+ from {
1167
+ opacity: 0;
1168
+ transform: scale(.95);
1169
+ }
1170
+ }
1171
+
1172
+ @keyframes hl-fade-in {
1173
+ from {
1174
+ opacity: 0;
1175
+ }
1176
+ }
1177
+
1178
+ @keyframes hl-draw {
1179
+ from {
1180
+ stroke-dasharray: 1;
1181
+ stroke-dashoffset: 1px;
1182
+ }
1183
+
1184
+ to {
1185
+ stroke-dasharray: 1;
1186
+ stroke-dashoffset: 0;
1187
+ }
1188
+ }
1189
+
1190
+ .hl-root .is-still {
1191
+ animation: none;
1192
+ }
1193
+
1194
+ @position-try --hl-note-scroll {
1195
+ position-area: bottom span-left;
1196
+ max-height: calc(100% - 1.5rem);
1197
+ }
1198
+
1199
+ .hl-root svg[data-hl-strokes="device"] * {
1200
+ vector-effect: non-scaling-stroke;
1201
+ }
1202
+
1203
+ @property --hl-tw-translate-x {
1204
+ syntax: "*";
1205
+ inherits: false;
1206
+ initial-value: 0;
1207
+ }
1208
+
1209
+ @property --hl-tw-translate-y {
1210
+ syntax: "*";
1211
+ inherits: false;
1212
+ initial-value: 0;
1213
+ }
1214
+
1215
+ @property --hl-tw-translate-z {
1216
+ syntax: "*";
1217
+ inherits: false;
1218
+ initial-value: 0;
1219
+ }
1220
+
1221
+ @property --hl-tw-rotate-x {
1222
+ syntax: "*";
1223
+ inherits: false
1224
+ }
1225
+
1226
+ @property --hl-tw-rotate-y {
1227
+ syntax: "*";
1228
+ inherits: false
1229
+ }
1230
+
1231
+ @property --hl-tw-rotate-z {
1232
+ syntax: "*";
1233
+ inherits: false
1234
+ }
1235
+
1236
+ @property --hl-tw-skew-x {
1237
+ syntax: "*";
1238
+ inherits: false
1239
+ }
1240
+
1241
+ @property --hl-tw-skew-y {
1242
+ syntax: "*";
1243
+ inherits: false
1244
+ }
1245
+
1246
+ @property --hl-tw-pan-x {
1247
+ syntax: "*";
1248
+ inherits: false
1249
+ }
1250
+
1251
+ @property --hl-tw-pan-y {
1252
+ syntax: "*";
1253
+ inherits: false
1254
+ }
1255
+
1256
+ @property --hl-tw-pinch-zoom {
1257
+ syntax: "*";
1258
+ inherits: false
1259
+ }
1260
+
1261
+ @property --hl-tw-border-style {
1262
+ syntax: "*";
1263
+ inherits: false;
1264
+ initial-value: solid;
1265
+ }
1266
+
1267
+ @property --hl-tw-font-weight {
1268
+ syntax: "*";
1269
+ inherits: false
1270
+ }
1271
+
1272
+ @property --hl-tw-ordinal {
1273
+ syntax: "*";
1274
+ inherits: false
1275
+ }
1276
+
1277
+ @property --hl-tw-slashed-zero {
1278
+ syntax: "*";
1279
+ inherits: false
1280
+ }
1281
+
1282
+ @property --hl-tw-numeric-figure {
1283
+ syntax: "*";
1284
+ inherits: false
1285
+ }
1286
+
1287
+ @property --hl-tw-numeric-spacing {
1288
+ syntax: "*";
1289
+ inherits: false
1290
+ }
1291
+
1292
+ @property --hl-tw-numeric-fraction {
1293
+ syntax: "*";
1294
+ inherits: false
1295
+ }
1296
+
1297
+ @property --hl-tw-shadow {
1298
+ syntax: "*";
1299
+ inherits: false;
1300
+ initial-value: 0 0 #0000;
1301
+ }
1302
+
1303
+ @property --hl-tw-shadow-color {
1304
+ syntax: "*";
1305
+ inherits: false
1306
+ }
1307
+
1308
+ @property --hl-tw-shadow-alpha {
1309
+ syntax: "<percentage>";
1310
+ inherits: false;
1311
+ initial-value: 100%;
1312
+ }
1313
+
1314
+ @property --hl-tw-inset-shadow {
1315
+ syntax: "*";
1316
+ inherits: false;
1317
+ initial-value: 0 0 #0000;
1318
+ }
1319
+
1320
+ @property --hl-tw-inset-shadow-color {
1321
+ syntax: "*";
1322
+ inherits: false
1323
+ }
1324
+
1325
+ @property --hl-tw-inset-shadow-alpha {
1326
+ syntax: "<percentage>";
1327
+ inherits: false;
1328
+ initial-value: 100%;
1329
+ }
1330
+
1331
+ @property --hl-tw-ring-color {
1332
+ syntax: "*";
1333
+ inherits: false
1334
+ }
1335
+
1336
+ @property --hl-tw-ring-shadow {
1337
+ syntax: "*";
1338
+ inherits: false;
1339
+ initial-value: 0 0 #0000;
1340
+ }
1341
+
1342
+ @property --hl-tw-inset-ring-color {
1343
+ syntax: "*";
1344
+ inherits: false
1345
+ }
1346
+
1347
+ @property --hl-tw-inset-ring-shadow {
1348
+ syntax: "*";
1349
+ inherits: false;
1350
+ initial-value: 0 0 #0000;
1351
+ }
1352
+
1353
+ @property --hl-tw-ring-inset {
1354
+ syntax: "*";
1355
+ inherits: false
1356
+ }
1357
+
1358
+ @property --hl-tw-ring-offset-width {
1359
+ syntax: "<length>";
1360
+ inherits: false;
1361
+ initial-value: 0;
1362
+ }
1363
+
1364
+ @property --hl-tw-ring-offset-color {
1365
+ syntax: "*";
1366
+ inherits: false;
1367
+ initial-value: #fff;
1368
+ }
1369
+
1370
+ @property --hl-tw-ring-offset-shadow {
1371
+ syntax: "*";
1372
+ inherits: false;
1373
+ initial-value: 0 0 #0000;
1374
+ }
1375
+
1376
+ @property --hl-tw-outline-style {
1377
+ syntax: "*";
1378
+ inherits: false;
1379
+ initial-value: solid;
1380
+ }
1381
+
1382
+ @property --hl-tw-ease {
1383
+ syntax: "*";
1384
+ inherits: false
1385
+ }