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,391 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Signal } from "@angular/core";
3
+ /**
4
+ * @license
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
8
+ */
9
+ /**
10
+ * The figures behind a chart, as {@link WrChartTable} renders them for assistive
11
+ * technology: a caption, a row of column headings, and the rows in groups.
12
+ *
13
+ * Every string arrives written: a value as the chart prints it, a heading as the
14
+ * chart names it. The table formats nothing and translates nothing.
15
+ *
16
+ * @internal
17
+ */
18
+ interface WrChartTableData {
19
+ /** What the table is: the chart's accessible name, rendered as the `<caption>`. */
20
+ readonly caption: string;
21
+ /**
22
+ * The heading of the row headers' column: what one row is — a day, a point, an
23
+ * axis. Omitted or empty, that cell is an empty `<td>` rather than a `<th>` with
24
+ * no name. The group headers' column, when there is one, is never headed.
25
+ */
26
+ readonly corner?: string;
27
+ /** One heading per value column, in the order of every row's `cells`. */
28
+ readonly columns: readonly string[];
29
+ /**
30
+ * The rows, one `<tbody>` per group. A chart with one set of rows — x labels down,
31
+ * series across — passes a single group with no `header`; a scatter passes a group
32
+ * per series, headed by the series' name.
33
+ */
34
+ readonly groups: readonly WrChartTableGroup[];
35
+ }
36
+ /**
37
+ * One `<tbody>` of a {@link WrChartTableData}.
38
+ *
39
+ * @internal
40
+ */
41
+ interface WrChartTableGroup {
42
+ /**
43
+ * Names the group, as a `<th scope="rowgroup">` in a leading column that spans the
44
+ * group's rows, so it heads every cell of the group. Once any group has a header the
45
+ * table carries that column, and a group without one leaves its cell there empty.
46
+ */
47
+ readonly header?: string;
48
+ /** The group's rows, in order. A group with none renders nothing. */
49
+ readonly rows: readonly WrChartTableRow[];
50
+ }
51
+ /**
52
+ * One row of a {@link WrChartTableGroup}.
53
+ *
54
+ * @internal
55
+ */
56
+ interface WrChartTableRow {
57
+ /** What the row is, rendered as its `<th scope="row">`. */
58
+ readonly header: string;
59
+ /**
60
+ * One value per column, written the way the chart prints it. A value the series
61
+ * does not have — a gap in a line — is the chart's to write, as an empty string for
62
+ * an empty cell or as its own word.
63
+ */
64
+ readonly cells: readonly string[];
65
+ }
66
+ /**
67
+ * @license
68
+ *
69
+ * Use of this source code is governed by an MIT-style license that can be
70
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
71
+ */
72
+ /**
73
+ * A marker shape, in the order the charts hand them out. Every shape has the
74
+ * same AREA as the circle at the same size, so no series looks heavier than
75
+ * another for its shape alone.
76
+ *
77
+ * @internal
78
+ */
79
+ type WrChartMarkerShape = 'circle' | 'square' | 'triangle' | 'diamond' | 'cross' | 'triangle-down';
80
+ /**
81
+ * How far a marker reaches from its centre, in px, before any stroke.
82
+ *
83
+ * @internal
84
+ */
85
+ interface WrChartMarkerExtent {
86
+ /** From the centre up to the marker's top. */
87
+ readonly top: number;
88
+ /** From the centre down to the marker's bottom. */
89
+ readonly bottom: number;
90
+ /** From the centre to either side: every shape is symmetric about its vertical. */
91
+ readonly side: number;
92
+ /** From the centre to the marker's farthest point: the circle that holds it. */
93
+ readonly radius: number;
94
+ }
95
+ /**
96
+ * A value axis snapped to a readable step.
97
+ *
98
+ * @internal
99
+ */
100
+ interface WrChartAxis {
101
+ /** The bottom of the axis, a whole multiple of `step`. */
102
+ readonly min: number;
103
+ /** The top of the axis, a whole multiple of `step`, above the data. */
104
+ readonly max: number;
105
+ /** The gap between two ticks: 1, 2, 2.5 or 5 times a power of ten. */
106
+ readonly step: number;
107
+ /**
108
+ * Every tick from the top down, the order a y axis reads, rounded to two digits past
109
+ * the step's leading one (at least six fraction digits), so a decimal step does not
110
+ * drift and a fine one is written exactly.
111
+ */
112
+ readonly ticks: readonly number[];
113
+ }
114
+ /**
115
+ * How {@link WrChartAxis} is fitted to the data.
116
+ *
117
+ * @internal
118
+ */
119
+ interface WrChartAxisOptions {
120
+ /**
121
+ * Stretch the range to zero, on whichever side of it the data lies: the
122
+ * baseline an area fills to, or a radar's centre. @default false
123
+ */
124
+ readonly includeZero?: boolean;
125
+ /**
126
+ * Keep data off BOTH frames. By default only the top is lifted a step when the
127
+ * peak lands on it, which is what a chart with a baseline wants; a scale with no
128
+ * baseline (a scatter's x and y) lifts the bottom too. A flat range is centred:
129
+ * its value becomes the middle of three ticks, a round step on either side.
130
+ * @default false
131
+ */
132
+ readonly symmetric?: boolean;
133
+ /** How many gaps the axis aims for. @default 4 */
134
+ readonly tickCount?: number;
135
+ }
136
+ /**
137
+ * The number writers one chart shares between its axis, its labels and its
138
+ * tooltip, all in `LOCALE_ID` unless the chart's `valueFormat` is given.
139
+ *
140
+ * Every method reads the format signal when it is called, so a `computed` that
141
+ * calls one follows `valueFormat`.
142
+ *
143
+ * @internal
144
+ */
145
+ interface WrChartNumbers<A extends readonly unknown[] = []> {
146
+ /**
147
+ * A value written in full, never compact: the tooltip, a legend value, an
148
+ * accessible name. Up to three fraction digits, and below one three significant
149
+ * digits rather than three fraction digits, which would write 0.0004 as `0`. Not
150
+ * the exact figure — 1.08345 is `1.083` — so a chart that has to write one to a
151
+ * known precision asks {@link exact}.
152
+ */
153
+ value(value: number, ...args: A): string;
154
+ /**
155
+ * A value printed in a tight space, such as above a bar: compact from a
156
+ * thousand up (`1.2K`), and below a thousand exactly as {@link value} writes it,
157
+ * since compact rounding would print 12.5 as `13`.
158
+ */
159
+ label(value: number, ...args: A): string;
160
+ /**
161
+ * An axis' tick labels, decided for the AXIS rather than one tick at a time:
162
+ * each tick compact to exactly the significant digits `step` needs, unless that
163
+ * makes the longest label longer than writing every tick in full.
164
+ */
165
+ ticks(values: readonly number[], step: number, ...args: A): string[];
166
+ /**
167
+ * A value written in full to at most `fractionDigits` fraction digits (0 to 20),
168
+ * trailing zeros dropped: a figure whose precision the chart knows — its axis step,
169
+ * a price's tick size — where {@link value} would round it to three. Through
170
+ * `valueFormat` when one is set, which is given `args` as every method gives them.
171
+ */
172
+ exact(value: number, fractionDigits: number, ...args: A): string;
173
+ }
174
+ /**
175
+ * A value axis for data running from `min` to `max`, SNAPPED to a readable step —
176
+ * and the snapping is the point.
177
+ *
178
+ * The line chart's axis used to be "the data's max plus 10%, divided into four",
179
+ * which lands on a round number almost never: seven integers between 3 and 35 gave
180
+ * an axis reading 38.2 / 28.7 / 19.1 / 9.6 / 0. A chart's axis is the one part of it
181
+ * a reader is supposed to do arithmetic against.
182
+ *
183
+ * So the step is rounded UP to the nearest 1, 2, 2.5 or 5 times a power of ten —
184
+ * the conventional nice-number ladder — and the bounds are then snapped outward to
185
+ * whole multiples of it. The same 3..35 reads 0 / 10 / 20 / 30 / 40. Snapping
186
+ * outward replaces the old 10% padding, and where the peak still lands exactly on
187
+ * the top it is lifted a step, since a line that ends on the frame reads as clipped.
188
+ * `symmetric` does the same at the bottom.
189
+ *
190
+ * A flat range has no span to divide, so it is given its own magnitude as one (or 1,
191
+ * at zero). With `symmetric` it is centred instead: the value is the middle of three
192
+ * ticks, a round step on either side, whatever `tickCount` asks for. Non-finite
193
+ * bounds, the `Math.min()` / `Math.max()` of no data, give the empty frame from 0 to
194
+ * 1. Bounds handed in the wrong order are swapped.
195
+ *
196
+ * The line chart's own rule, which floors its axis at zero and never lifts it to
197
+ * zero from below, is `chartAxis(Math.min(0, min), max)`: an all-negative series
198
+ * keeps an axis that ends just above its peak. `includeZero` is the other reading,
199
+ * zero inside the range on either side, which an area needs for its baseline.
200
+ *
201
+ * @internal
202
+ */
203
+ export declare function chartAxis(min: number, max: number, options?: WrChartAxisOptions): WrChartAxis;
204
+ /**
205
+ * The figures a chart draws, as a table that only assistive technology reaches.
206
+ *
207
+ * A chart's drawing is one named `role="img"`, and `img` makes everything inside it
208
+ * presentational: the name is announced and the numbers are nowhere a screen reader
209
+ * can walk. This renders them as a real `<table>` — a caption, column headers, row
210
+ * headers, and a `<tbody>` per group headed by a `<th scope="rowgroup">` down its rows
211
+ * — so a reader can move cell by cell and hear each value with its row and column.
212
+ *
213
+ * **Beside the image, never inside it.** Inside, `img` would hide it with the rest of
214
+ * the drawing. A chart renders `<wr-chart-table>` as a sibling of the element that
215
+ * carries `role="img"`, and only while its `dataTable` input asks for it. **The chart's
216
+ * host has to be positioned** (`position: relative`): the table is out of flow, and
217
+ * against a static host it resolves to an ancestor outside the chart and keeps its place
218
+ * in an unpositioned scroller's content, which grew one page by 1600px of blank scroll.
219
+ *
220
+ * **Hidden by clipping, not by `display` or `hidden`**, which would take it out of the
221
+ * accessibility tree as well: the host is clipped to nothing and taken out of flow, so
222
+ * it costs the chart no layout and still reads in full. The table inside keeps its own
223
+ * layout, because a `<table>` will not shrink to a clip box of its own — it grows to
224
+ * fit its cells whatever its width says. Nothing in it is focusable, so no tab stop
225
+ * lands on something that cannot be seen.
226
+ *
227
+ * No ids: the headers are tied to their cells by `scope`, which needs none, and an id
228
+ * minted on the server would not match the client's.
229
+ *
230
+ * @example
231
+ * ```html
232
+ * <div class="wr-line-chart__plot" role="img" [attr.aria-label]="label()">…</div>
233
+ * @if (dataTable()) {
234
+ * <wr-chart-table [data]="table()" />
235
+ * }
236
+ * ```
237
+ *
238
+ * @internal
239
+ */
240
+ export declare class WrChartTable {
241
+ /** The caption, the column headings and the rows, every string already written. */
242
+ readonly data: import("@angular/core").InputSignal<WrChartTableData>;
243
+ /** Whether any group is headed, which gives every row a leading group column. */
244
+ protected readonly hasGroupHeaders: import("@angular/core").Signal<boolean>;
245
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrChartTable, never>;
246
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrChartTable, "wr-chart-table", never, {
247
+ "data": {
248
+ "alias": "data";
249
+ "required": true;
250
+ "isSignal": true;
251
+ };
252
+ }, {}, never, never, true, never>;
253
+ }
254
+ /**
255
+ * A marker shape per series, so points are told apart by SHAPE and not only by
256
+ * hue — the dash list's job, for a chart that draws points rather than lines.
257
+ *
258
+ * The circle comes first for the reason the solid dash does: a single-series chart
259
+ * has nothing to tell apart. The order then alternates corners and points, so two
260
+ * neighbouring series never differ by a rotation alone (a square beside a diamond
261
+ * is the pair a small marker blurs into one).
262
+ *
263
+ * @internal
264
+ */
265
+ export declare const CHART_MARKERS: readonly WrChartMarkerShape[];
266
+ /**
267
+ * The marker shape for the series at `index`, wrapping past the end.
268
+ *
269
+ * @internal
270
+ */
271
+ export declare function chartMarker(index: number): WrChartMarkerShape;
272
+ /**
273
+ * The SVG path `d` of a marker centred on the origin, as large as a circle of
274
+ * radius `r` — every shape has that circle's area, so a triangle reaches past it
275
+ * and a square stays inside it, and the eye weighs them the same.
276
+ *
277
+ * Drawn about the origin so a chart can place it with a `transform`, or inside a
278
+ * nested `<svg x y overflow="visible">`, and size it in pixels whatever the plot's
279
+ * own scale. A non-finite or negative `r` draws nothing rather than a path of
280
+ * `NaN`.
281
+ *
282
+ * @internal
283
+ */
284
+ export declare function chartMarkerPath(shape: WrChartMarkerShape, r: number): string;
285
+ /**
286
+ * How far the marker {@link chartMarkerPath} draws at `r` reaches from its centre,
287
+ * in px, before any stroke: up, down, to either side, and to its farthest corner.
288
+ *
289
+ * Every shape has the circle's AREA, so `r` is not how far a marker reaches: a
290
+ * triangle's point stands 1.56 r above its centroid, a diamond's tips 1.25 r out
291
+ * and a cross's corners 1.24 r, while a square's sides sit 0.89 r in. A box, a hit
292
+ * area or a margin sized by `r` alone cuts the tips off. A non-finite or negative
293
+ * `r` reaches nowhere, as it draws nothing.
294
+ *
295
+ * @internal
296
+ */
297
+ export declare function chartMarkerExtent(shape: WrChartMarkerShape, r: number): WrChartMarkerExtent;
298
+ /**
299
+ * The number writers of one chart: its axis ticks, the labels it prints in tight
300
+ * spaces, and the figures of its tooltip and its accessible names — every one
301
+ * through the chart's `valueFormat` when it has one, else through `Intl` in
302
+ * `locale`.
303
+ *
304
+ * Seven charts kept their own copy of the `Intl` half until 15.1, each with the
305
+ * same two formatters and the same `formatValue`, and the line chart a second,
306
+ * axis-wide copy for its ticks. The rules are theirs, unchanged:
307
+ *
308
+ * - `value` is never compact, and is `Intl`'s default otherwise: up to three
309
+ * fraction digits, and below one three SIGNIFICANT digits, since three fraction
310
+ * digits write a reading of 0.0004 as `0`. It is not the exact figure: 1.08345
311
+ * is `1.083`, and an axis stepping by 0.00025 is finer than it. A chart that has
312
+ * to write a figure to a known precision asks `exact`.
313
+ * - `label` is compact from a thousand up, where a bar is too narrow for
314
+ * `1,234,567`, and below a thousand it is `value`: compact rounding would print
315
+ * 12.5 as `13`, and there is nothing to abbreviate.
316
+ * - `ticks` is decided for the AXIS. Compact, through `Intl` (`1.2K`, `3.4M`,
317
+ * `4 Mio.`, `5 тыс.`), with each tick to exactly the significant digits the step
318
+ * needs — a fixed count printed 1250 beside 1000 as `1.3k` and `1k` on an axis
319
+ * stepping by 250. And when abbreviating would make the labels LONGER (a fine
320
+ * step on large numbers, where `-1.025K` is wider than `-1,025`) the whole axis
321
+ * is written in full instead, so no axis mixes `-1K` with `-1,025`. Written in
322
+ * full, a tick has as many fraction digits as the step's last digit needs, however
323
+ * fine: they stopped at six, so an axis stepping by 2.5e-7 printed `0.000013` twice.
324
+ * - `exact` writes a figure to a precision the chart decides — the step of its axis,
325
+ * a price's tick size — never compact, through `valueFormat` when there is one.
326
+ *
327
+ * `valueFormat` takes whatever extra arguments the chart passes it, so a chart can
328
+ * tell its formatter which axis a number is for while a `(value) => string`
329
+ * written for another chart still fits. Call in an injection context: `locale`
330
+ * defaults to `LOCALE_ID`.
331
+ *
332
+ * @internal
333
+ */
334
+ export declare function useChartNumbers<A extends readonly unknown[] = []>(valueFormat: Signal<((value: number, ...args: A) => string) | null | undefined>, locale?: string): WrChartNumbers<A>;
335
+ /**
336
+ * @license
337
+ *
338
+ * Use of this source code is governed by an MIT-style license that can be
339
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
340
+ */
341
+ /**
342
+ * Default series colours, in order: what a series, a slice or a segment with no
343
+ * `color` of its own takes.
344
+ *
345
+ * Four intents and the neutral role, and `info` is deliberately absent: it is the
346
+ * same blue as `primary` to every reader (1.061:1 apart in light, 1.004:1 in
347
+ * dark, and the same hue), so two adjacent series would be one series with a
348
+ * seam. The neutral closes the list because it is the one tone here that no
349
+ * intent is near — it used to be the `medium` intent, which v15 removed, and the
350
+ * role resolves to the same step of the gray ramp.
351
+ *
352
+ * The four that sit within 1.061:1 of each other are told apart by hue alone,
353
+ * which is why a chart that draws lines pairs each with a dash
354
+ * (`CHART_DASHES`) and one that draws points with a shape (`CHART_MARKERS`).
355
+ *
356
+ * The line chart, the donut chart and the meter group each kept an identical
357
+ * copy of this list until 15.1.
358
+ *
359
+ * @internal
360
+ */
361
+ export declare const CHART_PALETTE: readonly string[];
362
+ /**
363
+ * The palette colour for the series at `index`, wrapping past the end.
364
+ *
365
+ * @internal
366
+ */
367
+ export declare function chartColor(index: number): string;
368
+ /**
369
+ * A dash pattern per series, so lines are told apart by SHAPE and not only by hue.
370
+ *
371
+ * The default palette's colours sit within about 1.06:1 of each other in relative
372
+ * luminance, which means a reader with red-green colour blindness sees several of
373
+ * these strokes as one grey. A legend that pairs a coloured square with a name
374
+ * does not rescue it: matching the square to the line is exactly the step that
375
+ * needs hue. Distinguishing series by dash is the standard remedy and the only one
376
+ * that survives greyscale, printing and a monochrome display.
377
+ *
378
+ * The FIRST entry is solid on purpose. A single-series chart is the common case
379
+ * and there is nothing to tell apart in it; the patterns only appear once a second
380
+ * series does. Each value is an SVG `stroke-dasharray`, `''` meaning none.
381
+ *
382
+ * @internal
383
+ */
384
+ export declare const CHART_DASHES: readonly string[];
385
+ /**
386
+ * The dash pattern for the series at `index`, wrapping past the end.
387
+ *
388
+ * @internal
389
+ */
390
+ export declare function chartDash(index: number): string;
391
+ export type { WrChartAxis, WrChartAxisOptions, WrChartMarkerExtent, WrChartMarkerShape, WrChartNumbers, WrChartTableData, WrChartTableGroup, WrChartTableRow };
@@ -1,4 +1,5 @@
1
1
  import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from "@angular/cdk/testing";
2
+ import { WrChartLegendHarness } from "ngwr/charts/chart-legend/testing";
2
3
  /** Narrows which `<wr-donut-chart>` a harness query matches. */
3
4
  interface WrDonutChartHarnessFilters extends BaseHarnessFilters {
4
5
  /** Match the chart's accessible name. */
@@ -27,7 +28,9 @@ interface WrDonutChartLegendEntry {
27
28
  *
28
29
  * {@link getSliceCount} is therefore the one thing the ring answers: how many
29
30
  * wedges were drawn. Compare it with the legend's length to catch a slice that was
30
- * filtered out of one and not the other.
31
+ * filtered out of one and not the other — apart from a slice hidden through
32
+ * `hiddenSegments`, which keeps its legend row and draws no wedge by design;
33
+ * {@link getLegendHarness} says which rows those are.
31
34
  *
32
35
  * @example
33
36
  * ```ts
@@ -49,15 +52,35 @@ export declare class WrDonutChartHarness extends ComponentHarness {
49
52
  static with(options?: WrDonutChartHarnessFilters): HarnessPredicate<WrDonutChartHarness>;
50
53
  /** The name the ring announces — the whole chart's, since the slices announce nothing. */
51
54
  getAccessibleName(): Promise<string | null>;
52
- /** How many wedges were drawn. */
55
+ /**
56
+ * How many wedges were drawn. A hidden slice draws none. The invisible hover target a
57
+ * sliver gets over the ring (`.wr-donut-chart__hit`) is not a wedge and is not counted.
58
+ */
53
59
  getSliceCount(): Promise<number>;
60
+ /**
61
+ * Whether the chart is a pie (`pie`), read off its `wr-donut-chart--pie` modifier.
62
+ * Not whether the slices reach the centre — a `thickness` of 0 does that too, and keeps
63
+ * the centre text — since a path's `d` is not read, for the reason given in the class
64
+ * note. A pie renders no centre text: {@link getCenterValue} and {@link getCenterLabel}
65
+ * answer `null` for it whatever was bound.
66
+ */
67
+ isPie(): Promise<boolean>;
54
68
  /** Whether the legend is rendered (`showLegend`, and at least one slice). */
55
69
  hasLegend(): Promise<boolean>;
56
- /** The legend rows in order — the only textual form the data has. */
70
+ /**
71
+ * The legend as a {@link WrChartLegendHarness}: each row's key and its hidden state
72
+ * and, with `toggleableLegend`, the toggles that show and hide a slice. Not the same
73
+ * thing as {@link getLegend}, which reads the rows' text and stays as it was.
74
+ *
75
+ * Throws when the chart draws no legend (`showLegend` off, or no segments) rather
76
+ * than answering with an empty one: {@link hasLegend} is the question for that.
77
+ */
78
+ getLegendHarness(): Promise<WrChartLegendHarness>;
79
+ /** The legend rows in order — the only textual form the data has. Hidden slices included. */
57
80
  getLegend(): Promise<WrDonutChartLegendEntry[]>;
58
- /** The big number in the middle, or `null` when the chart has none. */
81
+ /** The big number in the middle, or `null` when the chart has none — a pie never has. */
59
82
  getCenterValue(): Promise<string | null>;
60
- /** The caption under the centre value, or `null`. */
83
+ /** The caption under the centre value, or `null` — a pie never has one. */
61
84
  getCenterLabel(): Promise<string | null>;
62
85
  /**
63
86
  * The chart's outer size in pixels, read off the `style` ATTRIBUTE.
@@ -1,12 +1,20 @@
1
1
  import * as i0 from "@angular/core";
2
+ import { WrChartLegendItem } from "ngwr/charts/chart-legend";
3
+ /** One slice of a `<wr-donut-chart>`: a name, a value, and optionally its own colour. */
2
4
  interface WrDonutSegment {
5
+ /** The slice's name, in the legend and the tooltip. */
3
6
  readonly label: string;
7
+ /**
8
+ * The slice's size, as its share of the segments shown. A negative value, or one that is
9
+ * not a finite number, draws no slice and takes no share; the legend keeps its row with
10
+ * the segment's own figure — none for a value that is not a number.
11
+ */
4
12
  readonly value: number;
13
+ /** Any CSS colour, `var(--wr-…)` included. Left out, the slice takes the next palette colour. */
5
14
  readonly color?: string;
6
15
  }
7
16
  /**
8
- * Donut chart. Set `thickness` to 0 for a solid pie. Optional center
9
- * text via inputs.
17
+ * Donut chart, and with `pie` a pie chart. Optional center text via inputs.
10
18
  *
11
19
  * @example
12
20
  * ```html
@@ -14,8 +22,13 @@ interface WrDonutSegment {
14
22
  * { label: 'Used', value: 60 },
15
23
  * { label: 'Free', value: 40 }
16
24
  * ]" centerLabel="Disk" centerValue="60%" />
25
+ *
26
+ * <wr-donut-chart [segments]="segments" pie />
17
27
  * ```
18
28
  *
29
+ * The legend is a `ul[wr-chart-legend]` (`ngwr/charts/chart-legend`), and with
30
+ * `toggleableLegend` its rows show and hide their slices through `hiddenSegments`.
31
+ *
19
32
  * @see https://ngwr.dev/charts/donut-chart
20
33
  */
21
34
  export declare class WrDonutChart {
@@ -27,24 +40,70 @@ export declare class WrDonutChart {
27
40
  /**
28
41
  * Accessible name of the drawing. The arcs carry no text and the legend is optional, so
29
42
  * with `showLegend: false` this and the centre text are the whole of what a screen reader
30
- * gets. Falls back to `donutChart.label`.
43
+ * gets. Falls back to `donutChart.label`, or to `donutChart.pieLabel` with `pie`.
31
44
  */
32
45
  readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
46
+ private readonly donutLabel;
47
+ private readonly pieLabel;
33
48
  protected readonly resolvedAriaLabel: import("@angular/core").Signal<string>;
34
49
  /** Diameter in CSS pixels. @default 200 */
35
50
  readonly size: import("@angular/core").InputSignalWithTransform<number, unknown>;
36
- /** Inner-ring thickness as a percent of radius (0–100). `0` = solid pie. @default 30 */
51
+ /**
52
+ * Inner-ring thickness as a percent of radius (0–100). `0` fills to the centre, and
53
+ * keeps the centre text; `pie` ignores it. @default 30
54
+ */
37
55
  readonly thickness: import("@angular/core").InputSignalWithTransform<number, unknown>;
56
+ /**
57
+ * Draw a pie chart: every slice fills to the centre, whatever `thickness` says, and
58
+ * the host takes the `wr-donut-chart--pie` modifier. A pie has no hole to print in, so
59
+ * `centerValue` and `centerLabel` are not rendered. Everything else is the donut's: the
60
+ * slices run clockwise from twelve o'clock, with the same gap between them, the legend
61
+ * and its toggle, and the tooltip — which in a pie also opens from a wider, invisible
62
+ * target over a slice too thin to point at (see `tooltip`). The drawing's name falls
63
+ * back to `donutChart.pieLabel`. @default false
64
+ */
65
+ readonly pie: import("@angular/core").InputSignalWithTransform<boolean, any>;
38
66
  /** Show the legend under the chart. @default true */
39
67
  readonly showLegend: import("@angular/core").InputSignalWithTransform<boolean, any>;
40
- /** Bold value text in the center. */
68
+ /**
69
+ * Make each legend row a toggle button that shows and hides its slice, through
70
+ * `hiddenSegments`. A row is a `<button aria-pressed>`, pressed while its slice is
71
+ * shown, so the legend becomes one tab stop per slice. @default false
72
+ */
73
+ readonly toggleableLegend: import("@angular/core").InputSignalWithTransform<boolean, any>;
74
+ /**
75
+ * The positions in `segments` of the slices that are hidden. Positions rather than
76
+ * labels, since two slices may share a label. A toggleable legend writes it, and a
77
+ * host may bind it with or without one: `[(hiddenSegments)]`.
78
+ *
79
+ * A hidden slice is left out of the ring, and the slices still shown RE-NORMALISE:
80
+ * they share the whole ring between them, each at its share of their own total. A
81
+ * donut reads as the parts of the whole it draws, so leaving the hidden slice's arc
82
+ * as a gap would show a whole that no longer adds up, and turning a slice off is how
83
+ * a reader asks "of the rest, how much is each?". The tooltip cannot open on a slice
84
+ * that is not drawn. The legend keeps the hidden slice's row, struck through and with
85
+ * its own value, so it can be shown again; the row says "hidden" to a screen reader as
86
+ * well, through `aria-pressed` on a toggle and a visually hidden word otherwise. The
87
+ * centre text is printed as given, so a host that writes a total there works it out
88
+ * from this list. A position past the end of `segments` is kept and ignored.
89
+ */
90
+ readonly hiddenSegments: import("@angular/core").ModelSignal<readonly number[]>;
91
+ /** Bold value text in the center. Not rendered with `pie`, which has no hole to hold it. */
41
92
  readonly centerValue: import("@angular/core").InputSignal<string>;
42
- /** Smaller label under the value. */
93
+ /** Smaller label under the value. Not rendered with `pie`, which has no hole to hold it. */
43
94
  readonly centerLabel: import("@angular/core").InputSignal<string>;
95
+ /** Whether the centre text renders: some is given, and there is a hole to print it in. */
96
+ protected readonly showCenter: import("@angular/core").Signal<boolean>;
44
97
  /**
45
98
  * Show a tooltip with the slice's label and value on hover. Pointer only — the
46
99
  * legend prints the same numbers, and with `showLegend` off `ariaLabel` is where
47
- * to say them. @default true
100
+ * to say them. With `pie`, a slice too thin to land a pointer on, a sliver of a few
101
+ * degrees, is hovered over a wider strip than it draws, through an invisible
102
+ * `.wr-donut-chart__hit` over the pie: widened toward 12px of outer arc (15° on a chart
103
+ * under about 92px) out of what the wider slices beside it can spare, each of which keeps
104
+ * that much of its own. A sliver whose neighbours are slivers too, or have little to
105
+ * spare, gets a narrower target or none, and is read in the legend. The ring draws no
106
+ * such target. @default true
48
107
  */
49
108
  readonly tooltip: import("@angular/core").InputSignalWithTransform<boolean, any>;
50
109
  /**
@@ -52,14 +111,13 @@ export declare class WrDonutChart {
52
111
  * in `LOCALE_ID`. The centre text is printed as given.
53
112
  */
54
113
  readonly valueFormat: import("@angular/core").InputSignal<((value: number) => string) | null>;
55
- private readonly locale;
114
+ /** Each value as the legend and the tooltip print it: exact, in `LOCALE_ID` unless `valueFormat` is given. */
56
115
  private readonly numbers;
57
- /** Below one, by significant digits, which keep 0.0004 from rounding to `0`. */
58
- private readonly smallNumbers;
59
- private formatValue;
116
+ private readonly hidden;
60
117
  private readonly svg;
61
118
  private readonly outerR;
62
119
  protected readonly innerR: import("@angular/core").Signal<number>;
120
+ /** The sum the ring is divided by: the slices still shown (see `hiddenSegments`). */
63
121
  protected readonly total: import("@angular/core").Signal<number>;
64
122
  /**
65
123
  * Resolved slices ready for the template — each carries its arc path.
@@ -74,10 +132,47 @@ export declare class WrDonutChart {
74
132
  value: number;
75
133
  text: string;
76
134
  color: string;
135
+ hidden: boolean;
77
136
  path: string;
78
137
  percent: number;
138
+ startAngle: number;
139
+ endAngle: number;
79
140
  midAngle: number;
80
141
  }[]>;
142
+ /**
143
+ * In a pie, a wider hover target for every slice too thin to land a pointer on: an
144
+ * invisible wedge over the slice, drawn above the pie, widened toward `HIT_PX` of outer
145
+ * arc (`MAX_HIT_ANGLE` at most, which binds below about 92px) out of the wider slices
146
+ * beside it.
147
+ *
148
+ * A wider slice gives away only what it can spare: it keeps `HIT_PX` of outer arc of its
149
+ * own (the same `MAX_HIT_ANGLE` cap), however many slivers reach into it, so a slice
150
+ * that was easy to point at stays easy, and its middle, where its own chip points, is
151
+ * never covered. Two slivers reaching into one slice from either side split what it
152
+ * spares. A sliver asks half its shortfall of each wider neighbour, or all of it of the
153
+ * only one; what one side cannot give, the other gives if it can. Between two slivers
154
+ * side by side the boundary stays their shared edge, so of a run of slivers only the two
155
+ * at its ends grow, and the legend is where the rest are read — as it is for a sliver
156
+ * whose neighbours have little to spare, which gets the narrower target they leave it.
157
+ * A slice that draws nothing — a zero, or a hidden slice — has nothing to point at and
158
+ * gets no target, and nor does one with no wider neighbour.
159
+ *
160
+ * Pie only, and only while the tooltip is on, which is all it is for: the ring draws
161
+ * exactly what it drew before `pie` existed. The wedge is filled with nothing and
162
+ * hit-tested through `pointer-events="fill"`, which reads its interior whatever its
163
+ * paint and never its unpainted stroke, so its edges are the ones computed here; it
164
+ * paints in no theme and in no forced-colors palette.
165
+ */
166
+ protected readonly hits: import("@angular/core").Signal<{
167
+ index: number;
168
+ path: string;
169
+ }[]>;
170
+ /**
171
+ * The legend's rows: every slice, hidden ones included, each with its own figure — a
172
+ * negative one included, which draws no slice — and no value at all for a segment whose
173
+ * value is not a number.
174
+ */
175
+ protected readonly legendItems: import("@angular/core").Signal<readonly WrChartLegendItem[]>;
81
176
  /**
82
177
  * One tooltip for the whole chart, pointing at the hovered slice: at the middle of
83
178
  * its OUTER arc, on the side that part of the ring faces — above for a slice whose
@@ -116,11 +211,26 @@ export declare class WrDonutChart {
116
211
  "required": false;
117
212
  "isSignal": true;
118
213
  };
214
+ "pie": {
215
+ "alias": "pie";
216
+ "required": false;
217
+ "isSignal": true;
218
+ };
119
219
  "showLegend": {
120
220
  "alias": "showLegend";
121
221
  "required": false;
122
222
  "isSignal": true;
123
223
  };
224
+ "toggleableLegend": {
225
+ "alias": "toggleableLegend";
226
+ "required": false;
227
+ "isSignal": true;
228
+ };
229
+ "hiddenSegments": {
230
+ "alias": "hiddenSegments";
231
+ "required": false;
232
+ "isSignal": true;
233
+ };
124
234
  "centerValue": {
125
235
  "alias": "centerValue";
126
236
  "required": false;
@@ -141,6 +251,8 @@ export declare class WrDonutChart {
141
251
  "required": false;
142
252
  "isSignal": true;
143
253
  };
144
- }, {}, never, never, true, never>;
254
+ }, {
255
+ "hiddenSegments": "hiddenSegmentsChange";
256
+ }, never, never, true, never>;
145
257
  }
146
258
  export type { WrDonutSegment };