ngwr 15.0.1 → 15.2.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 (420) hide show
  1. package/anchor/styles/_index.scss +13 -2
  2. package/bits/aurora/styles/_rules.scss +11 -0
  3. package/bits/dot-grid/dot-grid.scss +1 -0
  4. package/bits/dot-grid/styles/_index.scss +8 -0
  5. package/bits/dot-grid/styles/_rules.scss +54 -0
  6. package/bits/iridescence/iridescence.scss +1 -0
  7. package/bits/iridescence/styles/_index.scss +8 -0
  8. package/bits/iridescence/styles/_rules.scss +72 -0
  9. package/bits/marquee/styles/_rules.scss +7 -3
  10. package/bits/ripple-grid/ripple-grid.scss +1 -0
  11. package/bits/ripple-grid/styles/_index.scss +8 -0
  12. package/bits/ripple-grid/styles/_rules.scss +63 -0
  13. package/bits/spotlight-card/styles/_rules.scss +7 -4
  14. package/bits/star-border/styles/_rules.scss +5 -2
  15. package/bits/threads/styles/_index.scss +8 -0
  16. package/bits/threads/styles/_rules.scss +76 -0
  17. package/bits/threads/threads.scss +1 -0
  18. package/bits/waves/styles/_rules.scss +8 -1
  19. package/charts/bar-chart/styles/_index.scss +607 -7
  20. package/charts/boxplot-chart/styles/_index.scss +297 -0
  21. package/charts/bullet-chart/styles/_index.scss +268 -0
  22. package/charts/calendar-heatmap/styles/_index.scss +25 -3
  23. package/charts/candlestick-chart/styles/_index.scss +307 -0
  24. package/charts/chart-legend/styles/_index.scss +143 -0
  25. package/charts/core/styles/_index.scss +30 -0
  26. package/charts/donut-chart/styles/_index.scss +39 -3
  27. package/charts/funnel-chart/styles/_index.scss +237 -0
  28. package/charts/gauge/styles/_index.scss +4 -2
  29. package/charts/heatmap-chart/styles/_index.scss +329 -0
  30. package/charts/line-chart/styles/_index.scss +141 -8
  31. package/charts/meter-group/styles/_index.scss +44 -13
  32. package/charts/radar-chart/styles/_index.scss +206 -0
  33. package/charts/scatter-chart/styles/_index.scss +245 -0
  34. package/charts/sparkline/styles/_index.scss +10 -1
  35. package/charts/treemap-chart/styles/_index.scss +215 -0
  36. package/charts/waterfall-chart/styles/_index.scss +321 -0
  37. package/collapse/styles/_index.scss +6 -1
  38. package/fesm2022/ngwr-affix.mjs +3 -3
  39. package/fesm2022/ngwr-alert.mjs +3 -3
  40. package/fesm2022/ngwr-anchor.mjs +3 -3
  41. package/fesm2022/ngwr-avatar.mjs +3 -3
  42. package/fesm2022/ngwr-back-top.mjs +3 -3
  43. package/fesm2022/ngwr-badge.mjs +6 -6
  44. package/fesm2022/ngwr-bits-aurora.mjs +30 -38
  45. package/fesm2022/ngwr-bits-aurora.mjs.map +1 -1
  46. package/fesm2022/ngwr-bits-blur-text.mjs +3 -3
  47. package/fesm2022/ngwr-bits-border-glow-testing.mjs.map +1 -1
  48. package/fesm2022/ngwr-bits-border-glow.mjs +11 -5
  49. package/fesm2022/ngwr-bits-border-glow.mjs.map +1 -1
  50. package/fesm2022/ngwr-bits-circular-text.mjs +3 -3
  51. package/fesm2022/ngwr-bits-click-spark.mjs +3 -3
  52. package/fesm2022/ngwr-bits-confetti.mjs +3 -3
  53. package/fesm2022/ngwr-bits-decrypt-text.mjs +3 -3
  54. package/fesm2022/ngwr-bits-dot-grid-testing.mjs +40 -0
  55. package/fesm2022/ngwr-bits-dot-grid-testing.mjs.map +1 -0
  56. package/fesm2022/ngwr-bits-dot-grid.mjs +482 -0
  57. package/fesm2022/ngwr-bits-dot-grid.mjs.map +1 -0
  58. package/fesm2022/ngwr-bits-falling-text.mjs +3 -3
  59. package/fesm2022/ngwr-bits-fuzzy-text.mjs +3 -3
  60. package/fesm2022/ngwr-bits-glitch-text.mjs +3 -3
  61. package/fesm2022/ngwr-bits-gradient-text.mjs +3 -3
  62. package/fesm2022/ngwr-bits-iridescence-testing.mjs +31 -0
  63. package/fesm2022/ngwr-bits-iridescence-testing.mjs.map +1 -0
  64. package/fesm2022/ngwr-bits-iridescence.mjs +591 -0
  65. package/fesm2022/ngwr-bits-iridescence.mjs.map +1 -0
  66. package/fesm2022/ngwr-bits-marquee-testing.mjs +1 -1
  67. package/fesm2022/ngwr-bits-marquee-testing.mjs.map +1 -1
  68. package/fesm2022/ngwr-bits-marquee.mjs +7 -7
  69. package/fesm2022/ngwr-bits-marquee.mjs.map +1 -1
  70. package/fesm2022/ngwr-bits-ripple-grid-testing.mjs +40 -0
  71. package/fesm2022/ngwr-bits-ripple-grid-testing.mjs.map +1 -0
  72. package/fesm2022/ngwr-bits-ripple-grid.mjs +805 -0
  73. package/fesm2022/ngwr-bits-ripple-grid.mjs.map +1 -0
  74. package/fesm2022/ngwr-bits-rotating-text.mjs +3 -3
  75. package/fesm2022/ngwr-bits-shiny-text.mjs +6 -6
  76. package/fesm2022/ngwr-bits-splash-cursor.mjs +3 -3
  77. package/fesm2022/ngwr-bits-split-text.mjs +3 -3
  78. package/fesm2022/ngwr-bits-spotlight-card-testing.mjs +1 -1
  79. package/fesm2022/ngwr-bits-spotlight-card-testing.mjs.map +1 -1
  80. package/fesm2022/ngwr-bits-spotlight-card.mjs +10 -10
  81. package/fesm2022/ngwr-bits-spotlight-card.mjs.map +1 -1
  82. package/fesm2022/ngwr-bits-star-border-testing.mjs +1 -1
  83. package/fesm2022/ngwr-bits-star-border-testing.mjs.map +1 -1
  84. package/fesm2022/ngwr-bits-star-border.mjs +7 -7
  85. package/fesm2022/ngwr-bits-star-border.mjs.map +1 -1
  86. package/fesm2022/ngwr-bits-threads-testing.mjs +41 -0
  87. package/fesm2022/ngwr-bits-threads-testing.mjs.map +1 -0
  88. package/fesm2022/ngwr-bits-threads.mjs +482 -0
  89. package/fesm2022/ngwr-bits-threads.mjs.map +1 -0
  90. package/fesm2022/ngwr-bits-tilt-card.mjs +6 -6
  91. package/fesm2022/ngwr-bits-typewriter.mjs +3 -3
  92. package/fesm2022/ngwr-bits-waves-testing.mjs.map +1 -1
  93. package/fesm2022/ngwr-bits-waves.mjs +60 -41
  94. package/fesm2022/ngwr-bits-waves.mjs.map +1 -1
  95. package/fesm2022/ngwr-breadcrumbs.mjs +8 -8
  96. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  97. package/fesm2022/ngwr-burger.mjs +3 -3
  98. package/fesm2022/ngwr-button.mjs +6 -6
  99. package/fesm2022/ngwr-calendar.mjs +3 -3
  100. package/fesm2022/ngwr-card.mjs +9 -9
  101. package/fesm2022/ngwr-carousel.mjs +6 -6
  102. package/fesm2022/ngwr-cascader.mjs +5 -5
  103. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  104. package/fesm2022/ngwr-charts-bar-chart-testing.mjs +127 -3
  105. package/fesm2022/ngwr-charts-bar-chart-testing.mjs.map +1 -1
  106. package/fesm2022/ngwr-charts-bar-chart.mjs +683 -49
  107. package/fesm2022/ngwr-charts-bar-chart.mjs.map +1 -1
  108. package/fesm2022/ngwr-charts-boxplot-chart-testing.mjs +161 -0
  109. package/fesm2022/ngwr-charts-boxplot-chart-testing.mjs.map +1 -0
  110. package/fesm2022/ngwr-charts-boxplot-chart.mjs +517 -0
  111. package/fesm2022/ngwr-charts-boxplot-chart.mjs.map +1 -0
  112. package/fesm2022/ngwr-charts-bullet-chart-testing.mjs +68 -0
  113. package/fesm2022/ngwr-charts-bullet-chart-testing.mjs.map +1 -0
  114. package/fesm2022/ngwr-charts-bullet-chart.mjs +459 -0
  115. package/fesm2022/ngwr-charts-bullet-chart.mjs.map +1 -0
  116. package/fesm2022/ngwr-charts-calendar-heatmap-testing.mjs +27 -0
  117. package/fesm2022/ngwr-charts-calendar-heatmap-testing.mjs.map +1 -1
  118. package/fesm2022/ngwr-charts-calendar-heatmap.mjs +96 -17
  119. package/fesm2022/ngwr-charts-calendar-heatmap.mjs.map +1 -1
  120. package/fesm2022/ngwr-charts-candlestick-chart-testing.mjs +107 -0
  121. package/fesm2022/ngwr-charts-candlestick-chart-testing.mjs.map +1 -0
  122. package/fesm2022/ngwr-charts-candlestick-chart.mjs +508 -0
  123. package/fesm2022/ngwr-charts-candlestick-chart.mjs.map +1 -0
  124. package/fesm2022/ngwr-charts-chart-legend-testing.mjs +126 -0
  125. package/fesm2022/ngwr-charts-chart-legend-testing.mjs.map +1 -0
  126. package/fesm2022/ngwr-charts-chart-legend.mjs +251 -0
  127. package/fesm2022/ngwr-charts-chart-legend.mjs.map +1 -0
  128. package/fesm2022/ngwr-charts-core.mjs +383 -0
  129. package/fesm2022/ngwr-charts-core.mjs.map +1 -0
  130. package/fesm2022/ngwr-charts-donut-chart-testing.mjs +10 -1
  131. package/fesm2022/ngwr-charts-donut-chart-testing.mjs.map +1 -1
  132. package/fesm2022/ngwr-charts-donut-chart.mjs +187 -31
  133. package/fesm2022/ngwr-charts-donut-chart.mjs.map +1 -1
  134. package/fesm2022/ngwr-charts-funnel-chart-testing.mjs +100 -0
  135. package/fesm2022/ngwr-charts-funnel-chart-testing.mjs.map +1 -0
  136. package/fesm2022/ngwr-charts-funnel-chart.mjs +415 -0
  137. package/fesm2022/ngwr-charts-funnel-chart.mjs.map +1 -0
  138. package/fesm2022/ngwr-charts-gauge-testing.mjs +9 -3
  139. package/fesm2022/ngwr-charts-gauge-testing.mjs.map +1 -1
  140. package/fesm2022/ngwr-charts-gauge.mjs +9 -15
  141. package/fesm2022/ngwr-charts-gauge.mjs.map +1 -1
  142. package/fesm2022/ngwr-charts-heatmap-chart-testing.mjs +120 -0
  143. package/fesm2022/ngwr-charts-heatmap-chart-testing.mjs.map +1 -0
  144. package/fesm2022/ngwr-charts-heatmap-chart.mjs +519 -0
  145. package/fesm2022/ngwr-charts-heatmap-chart.mjs.map +1 -0
  146. package/fesm2022/ngwr-charts-line-chart-testing.mjs +43 -1
  147. package/fesm2022/ngwr-charts-line-chart-testing.mjs.map +1 -1
  148. package/fesm2022/ngwr-charts-line-chart.mjs +436 -122
  149. package/fesm2022/ngwr-charts-line-chart.mjs.map +1 -1
  150. package/fesm2022/ngwr-charts-meter-group-testing.mjs +14 -2
  151. package/fesm2022/ngwr-charts-meter-group-testing.mjs.map +1 -1
  152. package/fesm2022/ngwr-charts-meter-group.mjs +101 -32
  153. package/fesm2022/ngwr-charts-meter-group.mjs.map +1 -1
  154. package/fesm2022/ngwr-charts-radar-chart-testing.mjs +98 -0
  155. package/fesm2022/ngwr-charts-radar-chart-testing.mjs.map +1 -0
  156. package/fesm2022/ngwr-charts-radar-chart.mjs +720 -0
  157. package/fesm2022/ngwr-charts-radar-chart.mjs.map +1 -0
  158. package/fesm2022/ngwr-charts-scatter-chart-testing.mjs +132 -0
  159. package/fesm2022/ngwr-charts-scatter-chart-testing.mjs.map +1 -0
  160. package/fesm2022/ngwr-charts-scatter-chart.mjs +545 -0
  161. package/fesm2022/ngwr-charts-scatter-chart.mjs.map +1 -0
  162. package/fesm2022/ngwr-charts-sparkline-testing.mjs.map +1 -1
  163. package/fesm2022/ngwr-charts-sparkline.mjs +14 -16
  164. package/fesm2022/ngwr-charts-sparkline.mjs.map +1 -1
  165. package/fesm2022/ngwr-charts-treemap-chart-testing.mjs +103 -0
  166. package/fesm2022/ngwr-charts-treemap-chart-testing.mjs.map +1 -0
  167. package/fesm2022/ngwr-charts-treemap-chart.mjs +535 -0
  168. package/fesm2022/ngwr-charts-treemap-chart.mjs.map +1 -0
  169. package/fesm2022/ngwr-charts-waterfall-chart-testing.mjs +131 -0
  170. package/fesm2022/ngwr-charts-waterfall-chart-testing.mjs.map +1 -0
  171. package/fesm2022/ngwr-charts-waterfall-chart.mjs +462 -0
  172. package/fesm2022/ngwr-charts-waterfall-chart.mjs.map +1 -0
  173. package/fesm2022/ngwr-checkbox.mjs +6 -6
  174. package/fesm2022/ngwr-clipboard.mjs +3 -3
  175. package/fesm2022/ngwr-collapse.mjs +9 -9
  176. package/fesm2022/ngwr-color-picker.mjs +6 -6
  177. package/fesm2022/ngwr-command-palette.mjs +3 -3
  178. package/fesm2022/ngwr-compare.mjs +3 -3
  179. package/fesm2022/ngwr-context-menu.mjs +12 -12
  180. package/fesm2022/ngwr-cookie.mjs +3 -3
  181. package/fesm2022/ngwr-counter.mjs +6 -6
  182. package/fesm2022/ngwr-date-picker.mjs +21 -21
  183. package/fesm2022/ngwr-date.mjs +6 -6
  184. package/fesm2022/ngwr-density.mjs +6 -6
  185. package/fesm2022/ngwr-descriptions.mjs +6 -6
  186. package/fesm2022/ngwr-dialog.mjs +15 -15
  187. package/fesm2022/ngwr-directives.mjs +12 -12
  188. package/fesm2022/ngwr-divider.mjs +3 -3
  189. package/fesm2022/ngwr-drawer.mjs +18 -18
  190. package/fesm2022/ngwr-dropdown.mjs +9 -9
  191. package/fesm2022/ngwr-editor.mjs +3 -3
  192. package/fesm2022/ngwr-empty.mjs +3 -3
  193. package/fesm2022/ngwr-event-calendar.mjs +6 -6
  194. package/fesm2022/ngwr-file-upload.mjs +3 -3
  195. package/fesm2022/ngwr-form.mjs +9 -9
  196. package/fesm2022/ngwr-graph.mjs +6 -6
  197. package/fesm2022/ngwr-hotkey.mjs +6 -6
  198. package/fesm2022/ngwr-i18n-ar.mjs +90 -4
  199. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  200. package/fesm2022/ngwr-i18n-cs.mjs +90 -4
  201. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  202. package/fesm2022/ngwr-i18n-de.mjs +90 -4
  203. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  204. package/fesm2022/ngwr-i18n-en.mjs +90 -4
  205. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  206. package/fesm2022/ngwr-i18n-es.mjs +90 -4
  207. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  208. package/fesm2022/ngwr-i18n-fr.mjs +90 -4
  209. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  210. package/fesm2022/ngwr-i18n-he.mjs +90 -4
  211. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  212. package/fesm2022/ngwr-i18n-hi.mjs +90 -4
  213. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  214. package/fesm2022/ngwr-i18n-id.mjs +90 -4
  215. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  216. package/fesm2022/ngwr-i18n-it.mjs +90 -4
  217. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  218. package/fesm2022/ngwr-i18n-ja.mjs +90 -4
  219. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  220. package/fesm2022/ngwr-i18n-ko.mjs +90 -4
  221. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  222. package/fesm2022/ngwr-i18n-nl.mjs +90 -4
  223. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  224. package/fesm2022/ngwr-i18n-pl.mjs +90 -4
  225. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  226. package/fesm2022/ngwr-i18n-pt.mjs +90 -4
  227. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  228. package/fesm2022/ngwr-i18n-ru.mjs +90 -4
  229. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  230. package/fesm2022/ngwr-i18n-sv.mjs +90 -4
  231. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  232. package/fesm2022/ngwr-i18n-tr.mjs +90 -4
  233. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  234. package/fesm2022/ngwr-i18n-uk.mjs +90 -4
  235. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  236. package/fesm2022/ngwr-i18n-vi.mjs +90 -4
  237. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  238. package/fesm2022/ngwr-i18n-zh-tw.mjs +90 -4
  239. package/fesm2022/ngwr-i18n-zh-tw.mjs.map +1 -1
  240. package/fesm2022/ngwr-i18n-zh.mjs +90 -4
  241. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  242. package/fesm2022/ngwr-i18n.mjs +9 -9
  243. package/fesm2022/ngwr-icon.mjs +6 -6
  244. package/fesm2022/ngwr-image-cropper.mjs +3 -3
  245. package/fesm2022/ngwr-input-number.mjs +3 -3
  246. package/fesm2022/ngwr-input-otp.mjs +3 -3
  247. package/fesm2022/ngwr-input.mjs +15 -15
  248. package/fesm2022/ngwr-keyboard.mjs +3 -3
  249. package/fesm2022/ngwr-knob.mjs +3 -3
  250. package/fesm2022/ngwr-layout.mjs +15 -15
  251. package/fesm2022/ngwr-lightbox.mjs +5 -5
  252. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  253. package/fesm2022/ngwr-list.mjs +8 -8
  254. package/fesm2022/ngwr-list.mjs.map +1 -1
  255. package/fesm2022/ngwr-loading-bar.mjs +6 -6
  256. package/fesm2022/ngwr-mention.mjs +6 -6
  257. package/fesm2022/ngwr-meta.mjs +6 -6
  258. package/fesm2022/ngwr-overlay.mjs +6 -6
  259. package/fesm2022/ngwr-page-header.mjs +3 -3
  260. package/fesm2022/ngwr-pagination.mjs +3 -3
  261. package/fesm2022/ngwr-pipes.mjs +21 -21
  262. package/fesm2022/ngwr-platform.mjs +6 -6
  263. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  264. package/fesm2022/ngwr-popover.mjs +43 -20
  265. package/fesm2022/ngwr-popover.mjs.map +1 -1
  266. package/fesm2022/ngwr-progress.mjs +3 -3
  267. package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
  268. package/fesm2022/ngwr-qr.mjs +4 -3
  269. package/fesm2022/ngwr-qr.mjs.map +1 -1
  270. package/fesm2022/ngwr-radio.mjs +6 -6
  271. package/fesm2022/ngwr-rating.mjs +3 -3
  272. package/fesm2022/ngwr-result.mjs +12 -12
  273. package/fesm2022/ngwr-schema-form.mjs +3 -3
  274. package/fesm2022/ngwr-scroll.mjs +3 -3
  275. package/fesm2022/ngwr-segmented.mjs +3 -3
  276. package/fesm2022/ngwr-select.mjs +12 -12
  277. package/fesm2022/ngwr-sidebar.mjs +3 -3
  278. package/fesm2022/ngwr-skeleton.mjs +3 -3
  279. package/fesm2022/ngwr-slider.mjs +3 -3
  280. package/fesm2022/ngwr-sortable-list.mjs +11 -11
  281. package/fesm2022/ngwr-sortable-list.mjs.map +1 -1
  282. package/fesm2022/ngwr-speed-dial.mjs +3 -3
  283. package/fesm2022/ngwr-spinner.mjs +3 -3
  284. package/fesm2022/ngwr-splitter.mjs +3 -3
  285. package/fesm2022/ngwr-statistic.mjs +9 -9
  286. package/fesm2022/ngwr-stepper.mjs +6 -6
  287. package/fesm2022/ngwr-storage.mjs +3 -3
  288. package/fesm2022/ngwr-switch.mjs +3 -3
  289. package/fesm2022/ngwr-table.mjs +18 -18
  290. package/fesm2022/ngwr-tabs-router.mjs +3 -3
  291. package/fesm2022/ngwr-tabs.mjs +6 -6
  292. package/fesm2022/ngwr-textarea.mjs +3 -3
  293. package/fesm2022/ngwr-theme.mjs +3 -3
  294. package/fesm2022/ngwr-timeline.mjs +6 -6
  295. package/fesm2022/ngwr-toast-testing.mjs +2 -1
  296. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  297. package/fesm2022/ngwr-toast.mjs +34 -15
  298. package/fesm2022/ngwr-toast.mjs.map +1 -1
  299. package/fesm2022/ngwr-toolbar.mjs +3 -3
  300. package/fesm2022/ngwr-tour.mjs +6 -6
  301. package/fesm2022/ngwr-transfer.mjs +3 -3
  302. package/fesm2022/ngwr-tree.mjs +3 -3
  303. package/fesm2022/ngwr-typography.mjs +3 -3
  304. package/fesm2022/ngwr-utils.mjs +31 -1
  305. package/fesm2022/ngwr-utils.mjs.map +1 -1
  306. package/fesm2022/ngwr-version.mjs +1 -1
  307. package/fesm2022/ngwr-version.mjs.map +1 -1
  308. package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
  309. package/fesm2022/ngwr-window-testing.mjs +61 -5
  310. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  311. package/fesm2022/ngwr-window.mjs +1538 -895
  312. package/fesm2022/ngwr-window.mjs.map +1 -1
  313. package/fesm2022/ngwr.mjs.map +1 -1
  314. package/i18n/ar.json +84 -4
  315. package/i18n/cs.json +84 -4
  316. package/i18n/de.json +84 -4
  317. package/i18n/en.json +84 -4
  318. package/i18n/es.json +84 -4
  319. package/i18n/fr.json +84 -4
  320. package/i18n/he.json +84 -4
  321. package/i18n/hi.json +84 -4
  322. package/i18n/id.json +84 -4
  323. package/i18n/it.json +84 -4
  324. package/i18n/ja.json +84 -4
  325. package/i18n/ko.json +84 -4
  326. package/i18n/nl.json +84 -4
  327. package/i18n/pl.json +84 -4
  328. package/i18n/pt.json +84 -4
  329. package/i18n/ru.json +84 -4
  330. package/i18n/sv.json +84 -4
  331. package/i18n/tr.json +84 -4
  332. package/i18n/uk.json +84 -4
  333. package/i18n/vi.json +84 -4
  334. package/i18n/zh-TW.json +84 -4
  335. package/i18n/zh.json +84 -4
  336. package/llms-full.txt +266 -9
  337. package/llms.txt +30 -7
  338. package/mcp/api.js +69 -1
  339. package/mcp/catalog.js +10 -1
  340. package/mcp/server.js +15 -1
  341. package/mcp/tools.js +122 -26
  342. package/package.json +132 -1
  343. package/popover/styles/_index.scss +75 -7
  344. package/schematics/component-style/index.js +3 -0
  345. package/schematics/migrations/v15/index.js +3 -26
  346. package/schematics/ng-add/index.js +2 -2
  347. package/schematics/use/symbol-map.json +14 -0
  348. package/schematics/utility/global-styles.js +19 -4
  349. package/schematics/utility/v15-moves.js +55 -0
  350. package/skills/ngwr/SKILL.md +8 -2
  351. package/skills/ngwr/references/catalog.md +28 -0
  352. package/skills/ngwr/references/setup.md +5 -4
  353. package/theme/styles/_focus.scss +8 -0
  354. package/toast/styles/_index.scss +103 -12
  355. package/types/ngwr-bits-aurora.d.ts +11 -0
  356. package/types/ngwr-bits-border-glow-testing.d.ts +5 -6
  357. package/types/ngwr-bits-border-glow.d.ts +5 -1
  358. package/types/ngwr-bits-dot-grid-testing.d.ts +92 -0
  359. package/types/ngwr-bits-dot-grid.d.ts +158 -0
  360. package/types/ngwr-bits-iridescence-testing.d.ts +85 -0
  361. package/types/ngwr-bits-iridescence.d.ts +244 -0
  362. package/types/ngwr-bits-ripple-grid-testing.d.ts +96 -0
  363. package/types/ngwr-bits-ripple-grid.d.ts +294 -0
  364. package/types/ngwr-bits-splash-cursor.d.ts +0 -1
  365. package/types/ngwr-bits-spotlight-card-testing.d.ts +3 -1
  366. package/types/ngwr-bits-star-border-testing.d.ts +7 -7
  367. package/types/ngwr-bits-threads-testing.d.ts +97 -0
  368. package/types/ngwr-bits-threads.d.ts +216 -0
  369. package/types/ngwr-bits-waves-testing.d.ts +1 -1
  370. package/types/ngwr-bits-waves.d.ts +20 -3
  371. package/types/ngwr-charts-bar-chart-testing.d.ts +193 -14
  372. package/types/ngwr-charts-bar-chart.d.ts +546 -38
  373. package/types/ngwr-charts-boxplot-chart-testing.d.ts +165 -0
  374. package/types/ngwr-charts-boxplot-chart.d.ts +308 -0
  375. package/types/ngwr-charts-bullet-chart-testing.d.ts +99 -0
  376. package/types/ngwr-charts-bullet-chart.d.ts +262 -0
  377. package/types/ngwr-charts-calendar-heatmap-testing.d.ts +32 -1
  378. package/types/ngwr-charts-calendar-heatmap.d.ts +55 -6
  379. package/types/ngwr-charts-candlestick-chart-testing.d.ts +135 -0
  380. package/types/ngwr-charts-candlestick-chart.d.ts +361 -0
  381. package/types/ngwr-charts-chart-legend-testing.d.ts +84 -0
  382. package/types/ngwr-charts-chart-legend.d.ts +178 -0
  383. package/types/ngwr-charts-core.d.ts +391 -0
  384. package/types/ngwr-charts-donut-chart-testing.d.ts +28 -5
  385. package/types/ngwr-charts-donut-chart.d.ts +124 -12
  386. package/types/ngwr-charts-funnel-chart-testing.d.ts +130 -0
  387. package/types/ngwr-charts-funnel-chart.d.ts +296 -0
  388. package/types/ngwr-charts-gauge-testing.d.ts +5 -0
  389. package/types/ngwr-charts-gauge.d.ts +6 -4
  390. package/types/ngwr-charts-heatmap-chart-testing.d.ts +148 -0
  391. package/types/ngwr-charts-heatmap-chart.d.ts +359 -0
  392. package/types/ngwr-charts-line-chart-testing.d.ts +72 -11
  393. package/types/ngwr-charts-line-chart.d.ts +291 -67
  394. package/types/ngwr-charts-meter-group-testing.d.ts +16 -2
  395. package/types/ngwr-charts-meter-group.d.ts +71 -11
  396. package/types/ngwr-charts-radar-chart-testing.d.ts +162 -0
  397. package/types/ngwr-charts-radar-chart.d.ts +461 -0
  398. package/types/ngwr-charts-scatter-chart-testing.d.ts +147 -0
  399. package/types/ngwr-charts-scatter-chart.d.ts +396 -0
  400. package/types/ngwr-charts-sparkline-testing.d.ts +4 -1
  401. package/types/ngwr-charts-sparkline.d.ts +8 -6
  402. package/types/ngwr-charts-treemap-chart-testing.d.ts +131 -0
  403. package/types/ngwr-charts-treemap-chart.d.ts +295 -0
  404. package/types/ngwr-charts-waterfall-chart-testing.d.ts +149 -0
  405. package/types/ngwr-charts-waterfall-chart.d.ts +338 -0
  406. package/types/ngwr-color-picker.d.ts +0 -21
  407. package/types/ngwr-dropdown.d.ts +0 -52
  408. package/types/ngwr-editor.d.ts +2 -84
  409. package/types/ngwr-i18n.d.ts +0 -15
  410. package/types/ngwr-mention.d.ts +0 -13
  411. package/types/ngwr-popconfirm.d.ts +0 -33
  412. package/types/ngwr-popover.d.ts +29 -53
  413. package/types/ngwr-toast-testing.d.ts +6 -1
  414. package/types/ngwr-tour.d.ts +0 -2
  415. package/types/ngwr-utils.d.ts +49 -7
  416. package/types/ngwr-version.d.ts +1 -1
  417. package/types/ngwr-window-testing.d.ts +65 -7
  418. package/types/ngwr-window.d.ts +831 -207
  419. package/types/ngwr.d.ts +1 -0
  420. package/window/styles/_index.scss +528 -82
@@ -0,0 +1,245 @@
1
+ @use '../../../theme/styles' as theme;
2
+ @use '../../../popover/styles' as popover-styles; // the `.wr-tooltip` chip the hover tooltip renders into
3
+
4
+ // Styles for the entry points this component's own markup renders. The legend is a
5
+ // `ul[wr-chart-legend]`, so `@use 'ngwr/charts/scatter-chart'` alone draws it styled.
6
+ @use '../../chart-legend/styles' as chart-legend-styles; // WrChartLegend
7
+ // With `dataTable`, the figures render as a `<wr-chart-table>` beside the plot, which
8
+ // its own sheet clips out of sight.
9
+ @use '../../core/styles' as core-styles; // WrChartTable
10
+
11
+ .wr-scatter-chart {
12
+ --wr-scatter-chart-font-family: var(--wr-font-family-base);
13
+ --wr-scatter-chart-color: var(--wr-color-on-surface);
14
+ // The room round the drawing inside the plot, which markers near either end overhang
15
+ // into — at least: it grows to the largest marker drawn (see `$inset` below). The y
16
+ // labels read the block one to meet the gridlines, the x labels the inline one to meet
17
+ // theirs.
18
+ --wr-scatter-chart-plot-inset-x: var(--wr-space-md);
19
+ --wr-scatter-chart-plot-inset-y: var(--wr-space-sm);
20
+ --wr-scatter-chart-legend-margin-bottom: var(--wr-space-md);
21
+ --wr-scatter-chart-grid-color: color-mix(in srgb, var(--wr-border-base) 70%, transparent);
22
+ --wr-scatter-chart-tick-gap: var(--wr-space-xs);
23
+ --wr-scatter-chart-tick-font-size: var(--wr-text-xs);
24
+ --wr-scatter-chart-tick-line-height: var(--wr-text-xs-leading);
25
+ --wr-scatter-chart-tick-color: var(--wr-color-on-surface-muted);
26
+ --wr-scatter-chart-title-font-size: var(--wr-text-xs);
27
+ --wr-scatter-chart-title-font-weight: var(--wr-font-weight-medium);
28
+ --wr-scatter-chart-title-color: var(--wr-color-on-surface-muted);
29
+ --wr-scatter-chart-title-gap: var(--wr-space-xs);
30
+ // Every marker is ringed in the surface colour, so two that touch stay two shapes
31
+ // rather than one blot: the palette's colours sit within about 1.06:1 of each other,
32
+ // and a ring is a shape that survives greyscale.
33
+ //
34
+ // A plain point is drawn solid. Drawn at 0.7, the primary marker measured 2.9:1 against
35
+ // the light surface and 2.6:1 against the dark one, under the 3:1 WCAG 1.4.11 asks of a
36
+ // mark a reader needs, where solid it is 4.9:1 and 4.1:1. A bubble chart is drawn at
37
+ // 0.7 all the same (`--bubbles`): its markers overlap as a rule, and a solid bubble hides
38
+ // every smaller one behind it, which costs more than the contrast does.
39
+ --wr-scatter-chart-point-opacity: 1;
40
+ --wr-scatter-chart-bubble-opacity: 0.7;
41
+ --wr-scatter-chart-point-ring: var(--wr-color-surface);
42
+ --wr-scatter-chart-point-ring-width: 1px;
43
+ --wr-scatter-chart-halo-width: 2px;
44
+
45
+ // The plot's padding: the inset tokens, or as far as the largest marker drawn reaches
46
+ // past its centre with its hover ring, if farther. The component writes that reach in
47
+ // px, sideways and up or down. The axes keep a point off the frame only when it lands
48
+ // exactly on it, so one a fraction of a step inside sits a few px from it, and a 20px
49
+ // bubble there would paint over the tick labels and past the chart's own box, where an
50
+ // `overflow: hidden` ancestor cuts it off.
51
+ $reach-x: calc(var(--wr-scatter-chart-reach-x, 0) * 1px + var(--wr-scatter-chart-halo-width) / 2);
52
+ $reach-y: calc(var(--wr-scatter-chart-reach-y, 0) * 1px + var(--wr-scatter-chart-halo-width) / 2);
53
+ $inset: max(var(--wr-scatter-chart-plot-inset-x), $reach-x);
54
+ $inset-y: max(var(--wr-scatter-chart-plot-inset-y), $reach-y);
55
+
56
+ // Where a tick is, for the x labels. The strip is as wide as the plot — the drawing
57
+ // plus its inline padding — and each label is handed its gridline's x as a percentage
58
+ // of the DRAWING, so the length from either side of the strip to the gridline is the
59
+ // padding plus that share of what is left.
60
+ $x: var(--wr-scatter-chart-x, 50);
61
+ $slot: var(--wr-scatter-chart-x-slot, 100);
62
+ $point: calc($inset + (100% - 2 * $inset) * $x / 100);
63
+ $room-start: calc($inset + (100cqw - 2 * $inset) * $x / 100);
64
+ $room-end: calc($inset + (100cqw - 2 * $inset) * (100 - $x) / 100);
65
+
66
+ display: block;
67
+ // The containing block of the out-of-flow `dataTable` copy, as on the line chart: a
68
+ // static host lets that 1px box resolve against an ancestor outside the chart and keep
69
+ // its place in an unpositioned scroller's content. No z-index, so no stacking context.
70
+ position: relative;
71
+ font-family: var(--wr-scatter-chart-font-family);
72
+ color: var(--wr-scatter-chart-color);
73
+
74
+ &__legend {
75
+ margin-block-end: var(--wr-scatter-chart-legend-margin-bottom);
76
+ }
77
+
78
+ // The y labels at inline start, the plot beside them, and the x labels under the plot
79
+ // alone. A grid follows `direction`, so the gutter is on the right under RTL with no
80
+ // rule of its own; the drawing itself keeps its x axis running left to right, as every
81
+ // SVG chart here does — the HTML layouts (bar, bullet, treemap) are the ones that mirror.
82
+ &__body {
83
+ display: grid;
84
+ grid-template-columns: auto minmax(0, 1fr);
85
+ }
86
+
87
+ // The axes' names, set horizontally: the y one above the plot at the gutter's side,
88
+ // where a reader looks first, and the x one centred under its ticks. A name turned on
89
+ // its side reads in neither direction comfortably. A name is the host's own text, in
90
+ // whatever language, so it takes its direction from that text (`plaintext`): on an RTL
91
+ // page "Revenue, k$" read "$Revenue, k", its trailing sign carried to the page's start.
92
+ &__y-title,
93
+ &__x-title {
94
+ font-size: var(--wr-scatter-chart-title-font-size);
95
+ font-weight: var(--wr-scatter-chart-title-font-weight);
96
+ color: var(--wr-scatter-chart-title-color);
97
+ overflow-wrap: anywhere;
98
+ unicode-bidi: plaintext;
99
+ }
100
+
101
+ // Shrunk to its text at the gutter's side, so following its own direction does not move
102
+ // it across the chart.
103
+ &__y-title {
104
+ grid-column: 1 / -1;
105
+ grid-row: 1;
106
+ justify-self: start;
107
+ margin-block-end: var(--wr-scatter-chart-title-gap);
108
+ text-align: start;
109
+ }
110
+
111
+ &__x-title {
112
+ grid-column: 2;
113
+ grid-row: 4;
114
+ margin-block-start: var(--wr-scatter-chart-title-gap);
115
+ text-align: center;
116
+ }
117
+
118
+ // As wide as the longest label: every label is in flow, in the one cell of a one-cell
119
+ // grid, so the column sizes to the widest while its height stays one label. Stretched
120
+ // to the plot's row, each label moves down from the top by its own gridline's share of
121
+ // the drawing, inside the plot's block padding, then up by half itself — the line
122
+ // chart's y axis, for the same reasons.
123
+ &__y-axis {
124
+ grid-column: 1;
125
+ grid-row: 2;
126
+ display: grid;
127
+ grid-template-rows: minmax(0, 1fr);
128
+ padding-inline-end: var(--wr-scatter-chart-tick-gap);
129
+ font-size: var(--wr-scatter-chart-tick-font-size);
130
+ line-height: var(--wr-scatter-chart-tick-line-height);
131
+ color: var(--wr-scatter-chart-tick-color);
132
+ text-align: end;
133
+ white-space: nowrap;
134
+ font-variant-numeric: tabular-nums;
135
+ }
136
+
137
+ // Shrunk to its text against the plot's side of the column, so its own direction can
138
+ // follow its text (`plaintext`): a negative tick is a `-` in front of digits, neither of
139
+ // which has a direction, and under RTL the sign would land on the far side — `350-`.
140
+ &__y-tick {
141
+ grid-area: 1 / 1;
142
+ align-self: start;
143
+ justify-self: end;
144
+ position: relative;
145
+ unicode-bidi: plaintext;
146
+ top: calc($inset-y + (100% - 2 * $inset-y) * var(--wr-scatter-chart-y, 0) / 100);
147
+ transform: translateY(-50%);
148
+ }
149
+
150
+ &__plot {
151
+ grid-column: 2;
152
+ grid-row: 2;
153
+ position: relative;
154
+ padding: $inset-y $inset;
155
+ }
156
+
157
+ // The plot's drawing by its class, never a bare `svg`: every point is an `<svg>` of
158
+ // its own, and the legend's keys are too. Overflow is visible because a marker near an
159
+ // end reaches past the drawing, over the plot's padding.
160
+ &__svg {
161
+ display: block;
162
+ width: 100%;
163
+ height: 100%;
164
+ overflow: visible;
165
+ }
166
+
167
+ &__grid-line {
168
+ stroke: var(--wr-scatter-chart-grid-color);
169
+ stroke-width: 1px;
170
+ }
171
+
172
+ &--bubbles {
173
+ --wr-scatter-chart-point-opacity: var(--wr-scatter-chart-bubble-opacity);
174
+ }
175
+
176
+ &__marker {
177
+ fill-opacity: var(--wr-scatter-chart-point-opacity);
178
+ stroke: var(--wr-scatter-chart-point-ring);
179
+ stroke-width: var(--wr-scatter-chart-point-ring-width);
180
+ stroke-linejoin: round;
181
+ }
182
+
183
+ // Never hittable: it is drawn under the pointer, and the points it rings are found
184
+ // by position rather than by what is under the pointer.
185
+ &__halo {
186
+ pointer-events: none;
187
+ stroke-width: var(--wr-scatter-chart-halo-width);
188
+ stroke-linejoin: round;
189
+ }
190
+
191
+ &__x-axis {
192
+ grid-column: 2;
193
+ grid-row: 3;
194
+ position: relative;
195
+ margin-block-start: var(--wr-scatter-chart-tick-gap);
196
+ font-size: var(--wr-scatter-chart-tick-font-size);
197
+ line-height: var(--wr-scatter-chart-tick-line-height);
198
+ color: var(--wr-scatter-chart-tick-color);
199
+ font-variant-numeric: tabular-nums;
200
+ // The labels are absolutely positioned onto their gridlines, so the strip has no
201
+ // content of its own to give it a height: one line of their own leading. `1.25em` is
202
+ // a pixel short of the 16px line, so each label hung that far over what came next.
203
+ height: 1lh;
204
+ // A `translateX` percentage means the LABEL's own width, so the room left beside it
205
+ // has to arrive in another unit — `cqw` is this strip's. Every label is out of flow,
206
+ // so the containment costs the layout nothing.
207
+ container-type: inline-size;
208
+ }
209
+
210
+ &__x-tick {
211
+ position: absolute;
212
+ // rtl-ok: the drawing's own x, which does not flip with `direction`
213
+ left: $point;
214
+ // Centred on its gridline, but never past either end of the strip: the shift is the
215
+ // smaller of half the label and the room left on that side, so the first and last
216
+ // ticks, which sit on the frame, move inwards and the rest stay centred.
217
+ // rtl-ok: the drawing's own x, which does not flip with `direction`
218
+ transform: translateX(clamp(calc(-1 * $room-start), -50%, calc($room-end - 100%)));
219
+ // Its own slot, half the way to a neighbour on each side, cut back to the room
220
+ // between its gridline and the end of the strip.
221
+ max-width: min(
222
+ calc((100% - 2 * $inset) * $slot / 100),
223
+ calc($inset + (100% - 2 * $inset) * ($x + $slot / 2) / 100),
224
+ calc($inset + (100% - 2 * $inset) * (100 - $x + $slot / 2) / 100)
225
+ );
226
+ overflow: hidden;
227
+ text-overflow: ellipsis;
228
+ white-space: nowrap;
229
+ // As a y tick: the sign stays before the digits. The box is as wide as its text, so
230
+ // where it sits does not move.
231
+ unicode-bidi: plaintext;
232
+ }
233
+ }
234
+
235
+ // The SVG keeps its fills and strokes under forced colors, so the points keep their
236
+ // series' colours and the legend still keys them. The ring and the grid are drawn in
237
+ // theme colours that mean nothing on a forced palette: the ring takes the page's own
238
+ // colour, which keeps touching points apart on any background, and the grid the
239
+ // system's muted one.
240
+ @media (forced-colors: active) {
241
+ .wr-scatter-chart {
242
+ --wr-scatter-chart-point-ring: Canvas;
243
+ --wr-scatter-chart-grid-color: GrayText;
244
+ }
245
+ }
@@ -1,6 +1,11 @@
1
1
  @use '../../../popover/styles'; // the `.wr-tooltip` chip the hover tooltip renders into
2
2
 
3
3
  .wr-sparkline {
4
+ // How much of the line's colour the `showArea` fill takes, and the ring round the hover
5
+ // marker: the surface the sparkline sits on, so the marker reads on the line under it.
6
+ --wr-sparkline-area-opacity: 0.15;
7
+ --wr-sparkline-marker-ring: var(--wr-color-surface);
8
+
4
9
  display: inline-block;
5
10
  // The hover marker is placed from this box's padding edge, measured off the drawing.
6
11
  position: relative;
@@ -11,6 +16,10 @@
11
16
  overflow: visible;
12
17
  }
13
18
 
19
+ &__area {
20
+ fill-opacity: var(--wr-sparkline-area-opacity);
21
+ }
22
+
14
23
  // The point the hover tooltip is reading. Placed by the component in SVG
15
24
  // coordinates, which do not flip with `direction`, and never hittable: it sits
16
25
  // under the pointer, and taking the `mousemove` would lose the line.
@@ -18,7 +27,7 @@
18
27
  position: absolute;
19
28
  width: 0.5rem;
20
29
  height: 0.5rem;
21
- border: 2px solid var(--wr-color-surface);
30
+ border: 2px solid var(--wr-sparkline-marker-ring);
22
31
  border-radius: 50%;
23
32
  box-sizing: content-box;
24
33
  // rtl-ok: SVG coordinates, see above
@@ -0,0 +1,215 @@
1
+ @use '../../../theme/styles' as theme;
2
+ @use '../../../popover/styles'; // the `.wr-tooltip` chip the hover tooltip renders into
3
+
4
+ // Styles for the entry points this component's own markup renders. With `dataTable`, the
5
+ // figures render as a `<wr-chart-table>` beside the drawing, which its own sheet clips
6
+ // out of sight.
7
+ @use '../../core/styles' as core-styles; // WrChartTable
8
+
9
+ .wr-treemap-chart {
10
+ --wr-treemap-chart-font-family: var(--wr-font-family-base);
11
+ // What the tiles' tints mix towards, and what shows behind them.
12
+ --wr-treemap-chart-bg: var(--wr-color-surface);
13
+ // The gap round every tile: an inset line in the surface colour on each, so two
14
+ // neighbours sit twice this apart. Drawn as an inset shadow, never a border or a margin:
15
+ // a margin takes area from the layout, and a border on a `border-box` tile is a floor
16
+ // under its size, so a sliver worth a fraction of a pixel would be drawn two wide and
17
+ // cover its group's edge. A faint separator by default, not a 3:1 boundary: the names,
18
+ // the nesting and the data table carry the reading, and `prefers-contrast: more` below
19
+ // turns it into a line that is one.
20
+ --wr-treemap-chart-gap: 1px;
21
+ --wr-treemap-chart-gap-color: var(--wr-color-surface);
22
+ --wr-treemap-chart-radius: var(--wr-border-radius-sm);
23
+ // How much of its colour a tile carries, mixed into the surface: a leaf more than a
24
+ // group, so the leaves stand on their group's strip and edge. Tints rather than the
25
+ // solid colour, so the names on them read in `on-surface` whatever the colour — a
26
+ // node's own `color` can be anything — and in both schemes, since the surface they mix
27
+ // into is a `light-dark()` pair.
28
+ --wr-treemap-chart-leaf-tint: 34%;
29
+ --wr-treemap-chart-group-tint: 14%;
30
+ // The names and values written inside the tiles. The layout leaves a tile its name
31
+ // only from about 36 × 22 px, and its value under it from 38 px tall, measured for
32
+ // this type and padding; a larger type is clipped by the tile rather than spilling.
33
+ --wr-treemap-chart-label-font-size: var(--wr-text-xs);
34
+ --wr-treemap-chart-label-line-height: var(--wr-text-xs-leading);
35
+ --wr-treemap-chart-label-color: var(--wr-color-on-surface);
36
+ --wr-treemap-chart-label-font-weight: var(--wr-font-weight-medium);
37
+ --wr-treemap-chart-header-font-weight: var(--wr-font-weight-semibold);
38
+ --wr-treemap-chart-value-font-weight: var(--wr-font-weight-regular);
39
+ // Between a group's name and its figure, in its strip.
40
+ --wr-treemap-chart-header-gap: var(--wr-space-xs);
41
+ --wr-treemap-chart-label-padding-x: var(--wr-space-xs);
42
+ --wr-treemap-chart-label-padding-y: calc(var(--wr-space-xs) / 2);
43
+ // The tile the tooltip is about, ringed inside its own edge so it covers no neighbour.
44
+ --wr-treemap-chart-active-ring: var(--wr-color-on-surface);
45
+ --wr-treemap-chart-active-ring-width: 2px;
46
+
47
+ display: block;
48
+ // The containing block of the out-of-flow `dataTable` copy, as on the line chart: a
49
+ // static host lets that 1px box resolve against an ancestor outside the chart and keep
50
+ // its place in an unpositioned scroller's content. No z-index, so no stacking context.
51
+ position: relative;
52
+ font-family: var(--wr-treemap-chart-font-family);
53
+
54
+ // The tiles are positioned in percentages of this box, which is as wide as the chart
55
+ // and as tall as `height`.
56
+ &__plot {
57
+ position: relative;
58
+ width: 100%;
59
+ overflow: hidden;
60
+ border-radius: var(--wr-treemap-chart-radius);
61
+ background: var(--wr-treemap-chart-bg);
62
+ }
63
+
64
+ &__tile {
65
+ position: absolute;
66
+ box-sizing: border-box;
67
+ display: flex;
68
+ flex-direction: column;
69
+ // The name and the value sit at the tile's inline-start edge as boxes of their own
70
+ // width, so each can take its direction from its own text and still line up with the
71
+ // tile's corner. `text-align: start` would resolve against the NAME's direction and
72
+ // put a Latin name on the left of an RTL tile.
73
+ align-items: flex-start;
74
+ overflow: hidden;
75
+ // No padding and no border: the tile is drawn at exactly the rectangle the layout gave
76
+ // it. The text carries its own padding, below, and the gap is a shadow inside the edge.
77
+ border-radius: var(--wr-treemap-chart-radius);
78
+ box-shadow: inset 0 0 0 var(--wr-treemap-chart-gap) var(--wr-treemap-chart-gap-color);
79
+ background: color-mix(
80
+ in srgb,
81
+ var(--wr-treemap-chart-tile-color, var(--wr-color-primary)) var(--wr-treemap-chart-leaf-tint),
82
+ var(--wr-treemap-chart-bg)
83
+ );
84
+ color: var(--wr-treemap-chart-label-color);
85
+ font-size: var(--wr-treemap-chart-label-font-size);
86
+ line-height: var(--wr-treemap-chart-label-line-height);
87
+
88
+ &--group {
89
+ background: color-mix(
90
+ in srgb,
91
+ var(--wr-treemap-chart-tile-color, var(--wr-color-primary)) var(--wr-treemap-chart-group-tint),
92
+ var(--wr-treemap-chart-bg)
93
+ );
94
+ }
95
+
96
+ &--active {
97
+ outline: var(--wr-treemap-chart-active-ring-width) solid var(--wr-treemap-chart-active-ring);
98
+ outline-offset: calc(-1 * var(--wr-treemap-chart-active-ring-width));
99
+ }
100
+ }
101
+
102
+ // A group's name and figure, in the strip the layout left above its children. Its
103
+ // height is written inline from the layout's own number. The figure WRAPS rather than
104
+ // shrinks when the two do not fit on one line, onto a second line the strip clips: the
105
+ // name is what tells the group apart, so it keeps the line, and a figure cut to `1…` says
106
+ // nothing the tooltip does not say in full.
107
+ &__header {
108
+ position: absolute;
109
+ inset-inline: 0;
110
+ top: 0;
111
+ display: flex;
112
+ flex-wrap: wrap;
113
+ align-content: flex-start;
114
+ column-gap: var(--wr-treemap-chart-header-gap);
115
+ box-sizing: border-box;
116
+ overflow: hidden;
117
+ padding: var(--wr-treemap-chart-label-padding-y) var(--wr-treemap-chart-label-padding-x) 0;
118
+ font-weight: var(--wr-treemap-chart-header-font-weight);
119
+ }
120
+
121
+ // A name and a value set their own direction (`dir="auto"` in the template), so a name's
122
+ // ellipsis lands at its own end. Held to the tile's width, since a box of its own width
123
+ // that will not wrap would otherwise be as wide as its text.
124
+ &__label,
125
+ &__value {
126
+ min-width: 0;
127
+ max-width: 100%;
128
+ overflow: hidden;
129
+ white-space: nowrap;
130
+ }
131
+
132
+ // A name is cut with an ellipsis; a value never is (see below).
133
+ &__label {
134
+ text-overflow: ellipsis;
135
+ }
136
+
137
+ // A leaf's name and value, in its corner. The padding is theirs rather than the tile's,
138
+ // so it can never make a tile bigger than its value: on a tile too small to be written
139
+ // in there is no text, and so no padding. The strip carries its own.
140
+ &__tile > &__label,
141
+ &__tile > &__value {
142
+ box-sizing: border-box;
143
+ padding-inline: var(--wr-treemap-chart-label-padding-x);
144
+ }
145
+
146
+ &__tile > &__label {
147
+ padding-block-start: var(--wr-treemap-chart-label-padding-y);
148
+ }
149
+
150
+ &__label {
151
+ flex: 0 1 auto;
152
+ font-weight: var(--wr-treemap-chart-label-font-weight);
153
+ }
154
+
155
+ &__header &__label {
156
+ font-weight: inherit;
157
+ }
158
+
159
+ &__value {
160
+ flex: none;
161
+ font-weight: var(--wr-treemap-chart-value-font-weight);
162
+ font-variant-numeric: tabular-nums;
163
+ }
164
+
165
+ // A leaf's value is printed whole or not at all, with no measuring, as the heatmap's
166
+ // values are: a wrapping flex line one line tall, led by a zero-width item. A value
167
+ // that fits its tile shares that first line; one that does not cannot join it, so it
168
+ // wraps onto a second line, under the first, where `overflow` hides it. `$12…` for
169
+ // $120K would print another number, and the tooltip and the data table carry it whole.
170
+ // The value in a group's strip already wraps out of sight past the name (see `__header`).
171
+ &__tile > &__value {
172
+ display: flex;
173
+ flex-wrap: wrap;
174
+ block-size: var(--wr-treemap-chart-label-line-height);
175
+
176
+ &::before {
177
+ content: '';
178
+ flex: 0 0 0;
179
+ block-size: 100%;
180
+ }
181
+ }
182
+ }
183
+
184
+ // A reader who asked for more contrast gets the gap as a line rather than a separator:
185
+ // the muted ink, which the theme deepens under the same query. Measured in Chromium on
186
+ // every tile of the docs page's charts, against the tile's own tint: 4.64:1 at the lowest
187
+ // in light and 3.47:1 in dark — the warning tint, the brightest there — where the
188
+ // surface-coloured gap reads 1.08–1.73:1 and 1.12–2.39:1. That holds for the palette and
189
+ // the theme's own colours; a node's `color` can be anything. Not the theme's hairline:
190
+ // it is solved against the page and its lightest fill, a tint is darker than either, and
191
+ // it measured 1.97:1 and 1.49:1 on the same tiles.
192
+ @media (prefers-contrast: more) {
193
+ .wr-treemap-chart {
194
+ --wr-treemap-chart-gap-color: var(--wr-color-on-surface-muted);
195
+ }
196
+ }
197
+
198
+ // Forced colors resets every tile's tinted background to `Canvas`, and that is left to
199
+ // happen rather than opted out of, as the bars are: a bar painted as the page vanishes,
200
+ // while a tile keeps its edge, its name and its place inside its group, which are what
201
+ // tell the groups apart anyway. The edge is what has to survive, and the shadow that
202
+ // draws the gap is dropped here, so it is an inset OUTLINE in the text colour — an outline
203
+ // because, like the shadow, it takes no room and sets no floor under a tile's size. The
204
+ // tile the tooltip is about keeps its wider outline, in the highlight colour.
205
+ @media (forced-colors: active) {
206
+ .wr-treemap-chart__tile {
207
+ outline: var(--wr-treemap-chart-gap) solid CanvasText;
208
+ outline-offset: calc(-1 * var(--wr-treemap-chart-gap));
209
+ }
210
+
211
+ .wr-treemap-chart__tile--active {
212
+ outline: var(--wr-treemap-chart-active-ring-width) solid Highlight;
213
+ outline-offset: calc(-1 * var(--wr-treemap-chart-active-ring-width));
214
+ }
215
+ }