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,321 @@
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. With `dataTable`, the
5
+ // figures render as a `<wr-chart-table>` beside the plot, which its own sheet clips out of
6
+ // sight.
7
+ @use '../../core/styles' as core-styles; // WrChartTable
8
+
9
+ .wr-waterfall-chart {
10
+ --wr-waterfall-chart-font-family: var(--wr-font-family-base);
11
+ --wr-waterfall-chart-color: var(--wr-color-on-surface);
12
+ // Between two bars, and so the length of the connector that crosses it. Held to a
13
+ // quarter of one step's share of the drawing (see `$gap-in-row` below).
14
+ --wr-waterfall-chart-gap: var(--wr-space-sm);
15
+ // The room over and under the drawing with no figures printed; with them it grows to a
16
+ // figure's line (see `$value-room` below).
17
+ --wr-waterfall-chart-plot-inset-y: var(--wr-space-sm);
18
+ // Nearly square: a connector meets a bar at its corner, and a rounder corner leaves the
19
+ // line ending in mid-air beside the curve.
20
+ --wr-waterfall-chart-bar-radius: calc(var(--wr-border-radius-sm) / 3);
21
+ --wr-waterfall-chart-grid-color: color-mix(in srgb, var(--wr-border-base) 70%, transparent);
22
+ --wr-waterfall-chart-baseline-color: var(--wr-border-base);
23
+ // Dashed, so a connector is never read as a gridline: both are thin horizontal lines, and
24
+ // a connector stops at the next bar where a gridline crosses the plot.
25
+ --wr-waterfall-chart-connector-color: var(--wr-color-on-surface-muted);
26
+ --wr-waterfall-chart-connector-width: 1px;
27
+ // The hairline of a change of zero: neither an increase nor a decrease, so no intent —
28
+ // the running total carried through, in the connectors' neutral.
29
+ --wr-waterfall-chart-flat-color: var(--wr-color-on-surface-muted);
30
+ --wr-waterfall-chart-tick-gap: var(--wr-space-xs);
31
+ --wr-waterfall-chart-tick-font-size: var(--wr-text-xs);
32
+ --wr-waterfall-chart-tick-line-height: var(--wr-text-xs-leading);
33
+ --wr-waterfall-chart-tick-color: var(--wr-color-on-surface-muted);
34
+ // The figure past a bar's end sits on the surface, not on the bar, so it takes the
35
+ // surface's text colour whatever the bar's.
36
+ --wr-waterfall-chart-value-font-size: var(--wr-text-xs);
37
+ --wr-waterfall-chart-value-line-height: var(--wr-text-xs-leading);
38
+ --wr-waterfall-chart-value-color: var(--wr-color-on-surface);
39
+ --wr-waterfall-chart-value-gap: var(--wr-space-xs);
40
+ --wr-waterfall-chart-label-font-size: var(--wr-text-xs);
41
+ --wr-waterfall-chart-label-color: var(--wr-color-on-surface-muted);
42
+ --wr-waterfall-chart-labels-margin-top: var(--wr-space-sm);
43
+ // A total's figure and label, a step heavier than a change's: one of the cues that tells
44
+ // a total apart without its colour.
45
+ --wr-waterfall-chart-total-font-weight: var(--wr-font-weight-medium);
46
+ // The column the tooltip is about.
47
+ --wr-waterfall-chart-active-bg: color-mix(in srgb, var(--wr-color-on-surface) 6%, transparent);
48
+
49
+ // The room over and under the drawing: a figure's line and its gap when figures are
50
+ // printed, so one past the highest or lowest bar stays inside the plot rather than over
51
+ // the legend above or the labels below.
52
+ $room: var(--wr-waterfall-chart-plot-inset-y);
53
+ $value-room: max(
54
+ var(--wr-waterfall-chart-plot-inset-y),
55
+ calc(var(--wr-waterfall-chart-value-line-height) + var(--wr-waterfall-chart-value-gap))
56
+ );
57
+
58
+ // The gap as drawn: the hook, held to a quarter of one step's share of the drawing, so
59
+ // a chart of many steps narrows its gaps with its bars instead of squeezing the bars to
60
+ // nothing and running out of its box. `--wr-waterfall-chart-steps` is the count, which
61
+ // the component writes on the host. A percentage is of the box that reads it, so the
62
+ // one length is written twice: against the row — the track and the labels, `25% / n` —
63
+ // and against a step — the connector and the figure, `n / (3n + 1)` of it. Those are
64
+ // the same: a step is an nth of the row less its share of the gaps.
65
+ $steps: var(--wr-waterfall-chart-steps, 1);
66
+ $gap-in-row: min(var(--wr-waterfall-chart-gap), calc(25% / $steps));
67
+ $gap-in-step: min(var(--wr-waterfall-chart-gap), calc(100% * $steps / (3 * $steps + 1)));
68
+
69
+ display: block;
70
+ // The containing block of the out-of-flow `dataTable` copy, as on every chart that
71
+ // renders one. No z-index, so no stacking context.
72
+ position: relative;
73
+ font-family: var(--wr-waterfall-chart-font-family);
74
+ color: var(--wr-waterfall-chart-color);
75
+
76
+ // The tick labels at inline start, the plot beside them, and the step labels under the
77
+ // plot alone. A grid follows `direction`, so the axis is on the right under RTL.
78
+ &__body {
79
+ display: grid;
80
+ grid-template-columns: auto minmax(0, 1fr);
81
+ }
82
+
83
+ // As wide as the longest label: every label is in flow, in the one cell of a one-cell
84
+ // grid, so the column sizes to the widest while its height stays one label. It carries
85
+ // the plot's block padding, so its cell is exactly the drawing's height, and each label
86
+ // moves down its gridline's share of that, then up by half itself.
87
+ &__y-axis {
88
+ grid-column: 1;
89
+ grid-row: 1;
90
+ display: grid;
91
+ grid-template-rows: minmax(0, 1fr);
92
+ padding-block: $room;
93
+ padding-inline-end: var(--wr-waterfall-chart-tick-gap);
94
+ font-size: var(--wr-waterfall-chart-tick-font-size);
95
+ line-height: var(--wr-waterfall-chart-tick-line-height);
96
+ color: var(--wr-waterfall-chart-tick-color);
97
+ text-align: end;
98
+ white-space: nowrap;
99
+ font-variant-numeric: tabular-nums;
100
+ }
101
+
102
+ // Shrunk to its text against the plot's side of the column, so its own direction can
103
+ // follow its text (`plaintext`): a negative tick is a `-` in front of digits, neither of
104
+ // which has a direction, and under RTL the sign would land on the far side — `250-`.
105
+ &__tick {
106
+ grid-area: 1 / 1;
107
+ align-self: start;
108
+ justify-self: end;
109
+ position: relative;
110
+ unicode-bidi: plaintext;
111
+ top: calc(var(--wr-waterfall-chart-y, 0) * 1%);
112
+ transform: translateY(-50%);
113
+ }
114
+
115
+ &__plot {
116
+ grid-column: 2;
117
+ grid-row: 1;
118
+ padding-block: $room;
119
+ }
120
+
121
+ &--values &__y-axis,
122
+ &--values &__plot {
123
+ padding-block: $value-room;
124
+ }
125
+
126
+ // The drawing: one column per step, side by side. The gridlines, the zero line and each
127
+ // column's parts are placed in it by percentage of its height from the bottom.
128
+ &__track {
129
+ position: relative;
130
+ display: flex;
131
+ gap: $gap-in-row;
132
+ height: 100%;
133
+ }
134
+
135
+ &__grid-line,
136
+ &__baseline {
137
+ position: absolute;
138
+ inset-inline: 0;
139
+ // Centred on its level, as the tick label beside it is.
140
+ transform: translateY(50%);
141
+ pointer-events: none;
142
+ }
143
+
144
+ &__grid-line {
145
+ bottom: calc(var(--wr-waterfall-chart-level, 0) * 1%);
146
+ border-block-start: 1px solid var(--wr-waterfall-chart-grid-color);
147
+ }
148
+
149
+ &__baseline {
150
+ bottom: calc(var(--wr-waterfall-chart-zero, 0) * 1%);
151
+ border-block-start: 1px solid var(--wr-waterfall-chart-baseline-color);
152
+ }
153
+
154
+ // The full height of the drawing, so the whole column answers the pointer, and as wide
155
+ // as a share of the plot less the gaps.
156
+ &__step {
157
+ position: relative;
158
+ flex: 1 1 0;
159
+ min-width: 0;
160
+ }
161
+
162
+ &__step--active {
163
+ background: var(--wr-waterfall-chart-active-bg);
164
+ }
165
+
166
+ // From one end to the other of what the step spans: a change from the running total
167
+ // before it to the one after, a total from zero. A change of zero keeps a hairline.
168
+ &__bar {
169
+ position: absolute;
170
+ inset-inline: 0;
171
+ bottom: calc(var(--wr-waterfall-chart-lo, 0) * 1%);
172
+ height: calc((var(--wr-waterfall-chart-hi, 0) - var(--wr-waterfall-chart-lo, 0)) * 1%);
173
+ min-height: 1px;
174
+ border-radius: var(--wr-waterfall-chart-bar-radius);
175
+ transition:
176
+ bottom var(--wr-duration-slow) var(--wr-ease-out),
177
+ height var(--wr-duration-slow) var(--wr-ease-out);
178
+ // The bar is an inline `background`, which forced colors resets to `Canvas`: every bar
179
+ // would vanish into the page and leave its figure floating. The SVG charts keep their
180
+ // fills there, so the HTML marks do too.
181
+ forced-color-adjust: none;
182
+ }
183
+
184
+ // No inline paint on a change of zero, so the hook paints it.
185
+ &__step--flat &__bar {
186
+ background: var(--wr-waterfall-chart-flat-color);
187
+ }
188
+
189
+ // Past the end the step runs to: over its top, or under its bottom with `--below`.
190
+ // Its room is its column and half the gap on either side, less a quarter of the gap of
191
+ // padding, so two neighbours' figures always stand half a gap apart.
192
+ //
193
+ // A figure is printed whole or not at all, with no measuring, as the heatmap's values
194
+ // are: the box is a wrapping flex line one figure tall, led by a zero-width item. A
195
+ // figure that fits shares that first line and is centred on it; one that does not
196
+ // cannot join it, so it wraps onto a second line, under the first, where `overflow`
197
+ // hides it. A figure cut to `+$1,…` is no figure, and `−$9…` reads as −$9; the tooltip,
198
+ // the name and the data table carry the whole figure.
199
+ &__value {
200
+ position: absolute;
201
+ inset-inline: calc($gap-in-step / -2);
202
+ bottom: calc(var(--wr-waterfall-chart-hi, 0) * 1% + var(--wr-waterfall-chart-value-gap));
203
+ display: flex;
204
+ flex-wrap: wrap;
205
+ justify-content: center;
206
+ box-sizing: border-box;
207
+ block-size: var(--wr-waterfall-chart-value-line-height);
208
+ padding-inline: calc($gap-in-step / 4);
209
+ overflow: hidden;
210
+ font-size: var(--wr-waterfall-chart-value-font-size);
211
+ line-height: var(--wr-waterfall-chart-value-line-height);
212
+ color: var(--wr-waterfall-chart-value-color);
213
+ font-variant-numeric: tabular-nums;
214
+ pointer-events: none;
215
+ transition: bottom var(--wr-duration-slow) var(--wr-ease-out);
216
+
217
+ &::before {
218
+ content: '';
219
+ flex: 0 0 0;
220
+ block-size: 100%;
221
+ }
222
+ }
223
+
224
+ // Never shrunk, so a figure too wide for the line wraps rather than squeezing. Its
225
+ // direction follows its own text (`plaintext`): a `−` in front of digits has no
226
+ // direction of its own, so under RTL it would otherwise land on the digits' far side and
227
+ // read as the opposite change.
228
+ &__value-text {
229
+ flex: none;
230
+ white-space: nowrap;
231
+ unicode-bidi: plaintext;
232
+ }
233
+
234
+ // Not past either end of the plot, where there is no gap to borrow: past the last bar
235
+ // it would reach out of the chart's own box and give a scroller 4px to scroll. The steps
236
+ // are the track's only `div`s, between the gridlines and the zero line.
237
+ &__step:first-of-type &__value {
238
+ inset-inline-start: 0;
239
+ }
240
+
241
+ &__step:last-of-type &__value {
242
+ inset-inline-end: 0;
243
+ }
244
+
245
+ &__value--below {
246
+ top: calc((100 - var(--wr-waterfall-chart-lo, 0)) * 1% + var(--wr-waterfall-chart-value-gap));
247
+ bottom: auto;
248
+ transition: top var(--wr-duration-slow) var(--wr-ease-out);
249
+ }
250
+
251
+ &__step--total &__value {
252
+ font-weight: var(--wr-waterfall-chart-total-font-weight);
253
+ }
254
+
255
+ // From this column's inline end across the gap to the next one, centred on the running
256
+ // total the next bar starts from. Logical, so under RTL it crosses to the left.
257
+ &__connector {
258
+ position: absolute;
259
+ inset-inline-start: 100%;
260
+ bottom: calc(var(--wr-waterfall-chart-level, 0) * 1%);
261
+ inline-size: $gap-in-step;
262
+ border-block-start: var(--wr-waterfall-chart-connector-width) dashed var(--wr-waterfall-chart-connector-color);
263
+ transform: translateY(50%);
264
+ pointer-events: none;
265
+ transition: bottom var(--wr-duration-slow) var(--wr-ease-out);
266
+ }
267
+
268
+ // A slot per step with the plot's own gap, so each label sits under its column.
269
+ &__labels {
270
+ grid-column: 2;
271
+ grid-row: 2;
272
+ display: flex;
273
+ gap: $gap-in-row;
274
+ margin-block-start: var(--wr-waterfall-chart-labels-margin-top);
275
+ }
276
+
277
+ // A label is the host's own text, in whatever language it is, so it takes its direction
278
+ // from that text and is ellipsised at its own end, not at the page's.
279
+ &__label {
280
+ flex: 1 1 0;
281
+ min-width: 0;
282
+ overflow: hidden;
283
+ text-overflow: ellipsis;
284
+ white-space: nowrap;
285
+ text-align: center;
286
+ unicode-bidi: plaintext;
287
+ font-size: var(--wr-waterfall-chart-label-font-size);
288
+ color: var(--wr-waterfall-chart-label-color);
289
+ }
290
+
291
+ &__label--total {
292
+ font-weight: var(--wr-waterfall-chart-total-font-weight);
293
+ }
294
+ }
295
+
296
+ // A bar that moves to its new ends is motion nothing asked for twice: the new figure is
297
+ // what matters, and it is drawn at once.
298
+ @media (prefers-reduced-motion: reduce) {
299
+ .wr-waterfall-chart__bar,
300
+ .wr-waterfall-chart__value,
301
+ .wr-waterfall-chart__connector {
302
+ transition: none;
303
+ }
304
+ }
305
+
306
+ // The bars keep their colours (see `__bar`). The lines are theme colours that mean nothing
307
+ // on a forced palette: the grid takes the system's muted colour and the connectors and a
308
+ // change of zero's hairline the text colour, and the column the tooltip is about, whose
309
+ // wash forced colors paints as the page, takes an edge instead.
310
+ @media (forced-colors: active) {
311
+ .wr-waterfall-chart {
312
+ --wr-waterfall-chart-grid-color: GrayText;
313
+ --wr-waterfall-chart-baseline-color: CanvasText;
314
+ --wr-waterfall-chart-connector-color: CanvasText;
315
+ --wr-waterfall-chart-flat-color: CanvasText;
316
+ }
317
+
318
+ .wr-waterfall-chart__step--active {
319
+ outline: 1px solid Highlight;
320
+ }
321
+ }
@@ -69,11 +69,16 @@
69
69
  grid-template-rows: 0fr;
70
70
  transition:
71
71
  grid-template-rows var(--wr-transition-base),
72
+ border-top-width var(--wr-transition-base),
72
73
  border-top-color var(--wr-transition-base);
73
- border-top: 1px solid transparent;
74
+ // No width while closed: a transparent 1px border still took a row under
75
+ // the header, where a hovered header's fill stopped short of the panel's
76
+ // edge and left a stripe of the panel's own background.
77
+ border-top: 0 solid transparent;
74
78
 
75
79
  &--open {
76
80
  grid-template-rows: 1fr;
81
+ border-top-width: 1px;
77
82
  border-top-color: var(--wr-collapse-border);
78
83
  }
79
84
  }
@@ -129,7 +129,7 @@ var WrAffix = class WrAffix {
129
129
  }
130
130
  static ɵfac = i0.ɵɵngDeclareFactory({
131
131
  minVersion: "12.0.0",
132
- version: "22.2.3",
132
+ version: "22.2.4",
133
133
  ngImport: i0,
134
134
  type: WrAffix,
135
135
  deps: [],
@@ -137,7 +137,7 @@ var WrAffix = class WrAffix {
137
137
  });
138
138
  static ɵdir = i0.ɵɵngDeclareDirective({
139
139
  minVersion: "17.1.0",
140
- version: "22.2.3",
140
+ version: "22.2.4",
141
141
  type: WrAffix,
142
142
  isStandalone: true,
143
143
  selector: "[wrAffix]",
@@ -161,7 +161,7 @@ var WrAffix = class WrAffix {
161
161
  };
162
162
  i0.ɵɵngDeclareClassMetadata({
163
163
  minVersion: "12.0.0",
164
- version: "22.2.3",
164
+ version: "22.2.4",
165
165
  ngImport: i0,
166
166
  type: WrAffix,
167
167
  decorators: [{
@@ -54,7 +54,7 @@ var WrAlert = class WrAlert {
54
54
  }
55
55
  static ɵfac = i0.ɵɵngDeclareFactory({
56
56
  minVersion: "12.0.0",
57
- version: "22.2.3",
57
+ version: "22.2.4",
58
58
  ngImport: i0,
59
59
  type: WrAlert,
60
60
  deps: [],
@@ -62,7 +62,7 @@ var WrAlert = class WrAlert {
62
62
  });
63
63
  static ɵcmp = i0.ɵɵngDeclareComponent({
64
64
  minVersion: "17.0.0",
65
- version: "22.2.3",
65
+ version: "22.2.4",
66
66
  type: WrAlert,
67
67
  isStandalone: true,
68
68
  selector: "wr-alert",
@@ -137,7 +137,7 @@ var WrAlert = class WrAlert {
137
137
  };
138
138
  i0.ɵɵngDeclareClassMetadata({
139
139
  minVersion: "12.0.0",
140
- version: "22.2.3",
140
+ version: "22.2.4",
141
141
  ngImport: i0,
142
142
  type: WrAlert,
143
143
  decorators: [{
@@ -84,7 +84,7 @@ var WrAnchor = class WrAnchor {
84
84
  }
85
85
  static ɵfac = i0.ɵɵngDeclareFactory({
86
86
  minVersion: "12.0.0",
87
- version: "22.2.3",
87
+ version: "22.2.4",
88
88
  ngImport: i0,
89
89
  type: WrAnchor,
90
90
  deps: [],
@@ -92,7 +92,7 @@ var WrAnchor = class WrAnchor {
92
92
  });
93
93
  static ɵcmp = i0.ɵɵngDeclareComponent({
94
94
  minVersion: "17.0.0",
95
- version: "22.2.3",
95
+ version: "22.2.4",
96
96
  type: WrAnchor,
97
97
  isStandalone: true,
98
98
  selector: "wr-anchor",
@@ -138,7 +138,7 @@ var WrAnchor = class WrAnchor {
138
138
  };
139
139
  i0.ɵɵngDeclareClassMetadata({
140
140
  minVersion: "12.0.0",
141
- version: "22.2.3",
141
+ version: "22.2.4",
142
142
  ngImport: i0,
143
143
  type: WrAnchor,
144
144
  decorators: [{
@@ -64,7 +64,7 @@ var WrAvatar = class WrAvatar {
64
64
  }
65
65
  static ɵfac = i0.ɵɵngDeclareFactory({
66
66
  minVersion: "12.0.0",
67
- version: "22.2.3",
67
+ version: "22.2.4",
68
68
  ngImport: i0,
69
69
  type: WrAvatar,
70
70
  deps: [],
@@ -72,7 +72,7 @@ var WrAvatar = class WrAvatar {
72
72
  });
73
73
  static ɵcmp = i0.ɵɵngDeclareComponent({
74
74
  minVersion: "17.0.0",
75
- version: "22.2.3",
75
+ version: "22.2.4",
76
76
  type: WrAvatar,
77
77
  isStandalone: true,
78
78
  selector: "wr-avatar",
@@ -132,7 +132,7 @@ var WrAvatar = class WrAvatar {
132
132
  };
133
133
  i0.ɵɵngDeclareClassMetadata({
134
134
  minVersion: "12.0.0",
135
- version: "22.2.3",
135
+ version: "22.2.4",
136
136
  ngImport: i0,
137
137
  type: WrAvatar,
138
138
  decorators: [{
@@ -46,7 +46,7 @@ var WrBackTop = class WrBackTop {
46
46
  }
47
47
  static ɵfac = i0.ɵɵngDeclareFactory({
48
48
  minVersion: "12.0.0",
49
- version: "22.2.3",
49
+ version: "22.2.4",
50
50
  ngImport: i0,
51
51
  type: WrBackTop,
52
52
  deps: [],
@@ -54,7 +54,7 @@ var WrBackTop = class WrBackTop {
54
54
  });
55
55
  static ɵcmp = i0.ɵɵngDeclareComponent({
56
56
  minVersion: "17.1.0",
57
- version: "22.2.3",
57
+ version: "22.2.4",
58
58
  type: WrBackTop,
59
59
  isStandalone: true,
60
60
  selector: "wr-back-top",
@@ -93,7 +93,7 @@ var WrBackTop = class WrBackTop {
93
93
  };
94
94
  i0.ɵɵngDeclareClassMetadata({
95
95
  minVersion: "12.0.0",
96
- version: "22.2.3",
96
+ version: "22.2.4",
97
97
  ngImport: i0,
98
98
  type: WrBackTop,
99
99
  decorators: [{
@@ -30,7 +30,7 @@ var WrBadge = class WrBadge {
30
30
  }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
31
31
  static ɵfac = i0.ɵɵngDeclareFactory({
32
32
  minVersion: "12.0.0",
33
- version: "22.2.3",
33
+ version: "22.2.4",
34
34
  ngImport: i0,
35
35
  type: WrBadge,
36
36
  deps: [],
@@ -38,7 +38,7 @@ var WrBadge = class WrBadge {
38
38
  });
39
39
  static ɵcmp = i0.ɵɵngDeclareComponent({
40
40
  minVersion: "17.1.0",
41
- version: "22.2.3",
41
+ version: "22.2.4",
42
42
  type: WrBadge,
43
43
  isStandalone: true,
44
44
  selector: "wr-badge",
@@ -81,7 +81,7 @@ var WrBadge = class WrBadge {
81
81
  };
82
82
  i0.ɵɵngDeclareClassMetadata({
83
83
  minVersion: "12.0.0",
84
- version: "22.2.3",
84
+ version: "22.2.4",
85
85
  ngImport: i0,
86
86
  type: WrBadge,
87
87
  decorators: [{
@@ -172,7 +172,7 @@ var WrTag = class WrTag {
172
172
  }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
173
173
  static ɵfac = i0.ɵɵngDeclareFactory({
174
174
  minVersion: "12.0.0",
175
- version: "22.2.3",
175
+ version: "22.2.4",
176
176
  ngImport: i0,
177
177
  type: WrTag,
178
178
  deps: [],
@@ -180,7 +180,7 @@ var WrTag = class WrTag {
180
180
  });
181
181
  static ɵcmp = i0.ɵɵngDeclareComponent({
182
182
  minVersion: "17.0.0",
183
- version: "22.2.3",
183
+ version: "22.2.4",
184
184
  type: WrTag,
185
185
  isStandalone: true,
186
186
  selector: "wr-tag",
@@ -261,7 +261,7 @@ var WrTag = class WrTag {
261
261
  };
262
262
  i0.ɵɵngDeclareClassMetadata({
263
263
  minVersion: "12.0.0",
264
- version: "22.2.3",
264
+ version: "22.2.4",
265
265
  ngImport: i0,
266
266
  type: WrTag,
267
267
  decorators: [{
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { Component, DestroyRef, ElementRef, NgZone, PLATFORM_ID, ViewEncapsulation, afterNextRender, effect, inject, input, signal, viewChild } from "@angular/core";
3
3
  import { isPlatformBrowser } from "@angular/common";
4
- import { numAttr, resolveCssColor, watchColorScheme } from "ngwr/utils";
4
+ import { numAttr, resolveCssColorChannels, watchColorScheme } from "ngwr/utils";
5
5
  import { WrPlatform } from "ngwr/platform";
6
6
  /**
7
7
  * @license
@@ -133,24 +133,6 @@ const STOP_HOOKS = [
133
133
  "var(--wr-aurora-stop-2)",
134
134
  "var(--wr-aurora-stop-3)"
135
135
  ];
136
- function toRgb01(color) {
137
- const value = color.trim().toLowerCase();
138
- const fn = /^(rgba?|color)\(\s*(srgb\s+)?([^)]*)\)$/.exec(value);
139
- if (fn && (fn[1] !== "color" || fn[2] !== void 0)) {
140
- const scale = fn[1] === "color" ? 1 : 255;
141
- const channels = fn[3].split(/[\s,/]+/).slice(0, 3).map((part) => part === "none" ? 0 : Number.parseFloat(part) / scale);
142
- if (channels.length !== 3 || !channels.every(Number.isFinite)) return null;
143
- return channels.map((channel) => Math.min(1, Math.max(0, channel)));
144
- }
145
- const hex = /^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/.exec(value)?.[1];
146
- if (hex === void 0) return null;
147
- const full = hex.length <= 4 ? [...hex].map((digit) => digit + digit).join("") : hex;
148
- return [
149
- 0,
150
- 2,
151
- 4
152
- ].map((at) => Number.parseInt(full.slice(at, at + 2), 16) / 255);
153
- }
154
136
  var WrAurora = class WrAurora {
155
137
  colorStops = input(null, ...ngDevMode ? [{ debugName: "colorStops" }] : /* istanbul ignore next */ []);
156
138
  amplitude = input(1, {
@@ -174,8 +156,10 @@ var WrAurora = class WrAurora {
174
156
  gl = null;
175
157
  uniforms = {};
176
158
  rafId = 0;
159
+ time = 0;
177
160
  booted = signal(false, ...ngDevMode ? [{ debugName: "booted" }] : /* istanbul ignore next */ []);
178
161
  onScreen = signal(true, ...ngDevMode ? [{ debugName: "onScreen" }] : /* istanbul ignore next */ []);
162
+ hasBox = signal(false, ...ngDevMode ? [{ debugName: "hasBox" }] : /* istanbul ignore next */ []);
179
163
  constructor() {
180
164
  if (!this.isBrowser) return;
181
165
  afterNextRender(() => this.zone.runOutsideAngular(() => this.boot()));
@@ -193,7 +177,7 @@ var WrAurora = class WrAurora {
193
177
  this.draw(0);
194
178
  });
195
179
  effect((onCleanup) => {
196
- if (!this.booted() || !this.onScreen() || this.platform.prefersReducedMotion()) return;
180
+ if (!this.booted() || !this.onScreen() || !this.hasBox() || this.platform.prefersReducedMotion()) return;
197
181
  const loop = (t) => {
198
182
  this.rafId = requestAnimationFrame(loop);
199
183
  this.pushUniforms();
@@ -247,22 +231,31 @@ var WrAurora = class WrAurora {
247
231
  const position = gl.getAttribLocation(program, "position");
248
232
  gl.enableVertexAttribArray(position);
249
233
  gl.vertexAttribPointer(position, 2, gl.FLOAT, false, 0, 0);
250
- const resize = () => {
251
- const rect = this.host.nativeElement.getBoundingClientRect();
252
- canvas.width = Math.max(1, Math.round(rect.width));
253
- canvas.height = Math.max(1, Math.round(rect.height));
234
+ const hostEl = this.host.nativeElement;
235
+ const fit = () => {
236
+ const width = hostEl.clientWidth;
237
+ const height = hostEl.clientHeight;
238
+ this.hasBox.set(width > 0 && height > 0);
239
+ canvas.width = Math.max(1, width);
240
+ canvas.height = Math.max(1, height);
254
241
  gl.viewport(0, 0, canvas.width, canvas.height);
255
242
  gl.uniform2f(this.uniforms["uResolution"], canvas.width, canvas.height);
256
- if (this.platform.prefersReducedMotion()) this.draw(0);
243
+ };
244
+ const resize = () => {
245
+ fit();
246
+ this.draw(this.platform.prefersReducedMotion() ? 0 : this.time);
257
247
  };
258
248
  window.addEventListener("resize", resize);
259
249
  const ro = new ResizeObserver(resize);
260
- ro.observe(this.host.nativeElement);
261
- resize();
250
+ ro.observe(hostEl);
251
+ fit();
262
252
  this.pushUniforms();
263
253
  this.draw(0);
264
- const io = typeof IntersectionObserver === "undefined" ? null : new IntersectionObserver((entries) => this.onScreen.set(entries[entries.length - 1].isIntersecting));
265
- io?.observe(this.host.nativeElement);
254
+ const io = typeof IntersectionObserver === "undefined" ? null : new IntersectionObserver((entries) => {
255
+ const { isIntersecting, intersectionRatio } = entries[entries.length - 1];
256
+ this.onScreen.set(isIntersecting && intersectionRatio > 0);
257
+ }, { threshold: [0, 1e-9] });
258
+ io?.observe(canvas);
266
259
  this.destroyRef.onDestroy(() => {
267
260
  window.removeEventListener("resize", resize);
268
261
  ro.disconnect();
@@ -283,20 +276,19 @@ var WrAurora = class WrAurora {
283
276
  const explicit = this.colorStops();
284
277
  const fallback = DEFAULT_STOPS[index];
285
278
  const expression = explicit === null ? STOP_HOOKS[index] : explicit[Math.min(index, explicit.length - 1)] ?? fallback;
286
- const canvas = this.canvasRef().nativeElement;
287
- const resolved = resolveCssColor(canvas, expression, fallback);
288
- return toRgb01(resolved) ?? toRgb01(resolveCssColor(canvas, `color-mix(in srgb, ${resolved} 100%, transparent)`, fallback)) ?? toRgb01(fallback);
279
+ return resolveCssColorChannels(this.canvasRef().nativeElement, expression, fallback);
289
280
  }
290
281
  draw(time) {
291
282
  const gl = this.gl;
292
- if (!gl) return;
283
+ if (!gl || !this.hasBox()) return;
284
+ this.time = time;
293
285
  gl.uniform1f(this.uniforms["uTime"], time);
294
286
  gl.clear(gl.COLOR_BUFFER_BIT);
295
287
  gl.drawArrays(gl.TRIANGLES, 0, 3);
296
288
  }
297
289
  static ɵfac = i0.ɵɵngDeclareFactory({
298
290
  minVersion: "12.0.0",
299
- version: "22.2.3",
291
+ version: "22.2.4",
300
292
  ngImport: i0,
301
293
  type: WrAurora,
302
294
  deps: [],
@@ -304,7 +296,7 @@ var WrAurora = class WrAurora {
304
296
  });
305
297
  static ɵcmp = i0.ɵɵngDeclareComponent({
306
298
  minVersion: "17.2.0",
307
- version: "22.2.3",
299
+ version: "22.2.4",
308
300
  type: WrAurora,
309
301
  isStandalone: true,
310
302
  selector: "wr-aurora",
@@ -349,13 +341,13 @@ var WrAurora = class WrAurora {
349
341
  ngImport: i0,
350
342
  template: "<canvas #canvas class=\"wr-aurora__canvas\" aria-hidden=\"true\"></canvas>",
351
343
  isInline: true,
352
- styles: [".wr-aurora{--wr-aurora-stop-1: light-dark(#6366f1, #5227ff);--wr-aurora-stop-2: light-dark(#10b981, #7cff67);--wr-aurora-stop-3: light-dark(#6366f1, #5227ff);position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none;z-index:0}.wr-aurora__canvas{display:block;width:100%;height:100%}\n"],
344
+ styles: [".wr-aurora{--wr-aurora-stop-1: light-dark(#6366f1, #5227ff);--wr-aurora-stop-2: light-dark(#10b981, #7cff67);--wr-aurora-stop-3: light-dark(#6366f1, #5227ff);position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none;z-index:0}.wr-aurora__canvas{display:block;width:100%;height:100%}@media(forced-colors:active){.wr-aurora__canvas{display:none;forced-color-adjust:none}}\n"],
353
345
  encapsulation: i0.ViewEncapsulation.None
354
346
  });
355
347
  };
356
348
  i0.ɵɵngDeclareClassMetadata({
357
349
  minVersion: "12.0.0",
358
- version: "22.2.3",
350
+ version: "22.2.4",
359
351
  ngImport: i0,
360
352
  type: WrAurora,
361
353
  decorators: [{
@@ -365,7 +357,7 @@ i0.ɵɵngDeclareClassMetadata({
365
357
  template: "<canvas #canvas class=\"wr-aurora__canvas\" aria-hidden=\"true\"></canvas>",
366
358
  encapsulation: ViewEncapsulation.None,
367
359
  host: { class: "wr-aurora" },
368
- styles: [".wr-aurora{--wr-aurora-stop-1: light-dark(#6366f1, #5227ff);--wr-aurora-stop-2: light-dark(#10b981, #7cff67);--wr-aurora-stop-3: light-dark(#6366f1, #5227ff);position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none;z-index:0}.wr-aurora__canvas{display:block;width:100%;height:100%}\n"]
360
+ styles: [".wr-aurora{--wr-aurora-stop-1: light-dark(#6366f1, #5227ff);--wr-aurora-stop-2: light-dark(#10b981, #7cff67);--wr-aurora-stop-3: light-dark(#6366f1, #5227ff);position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none;z-index:0}.wr-aurora__canvas{display:block;width:100%;height:100%}@media(forced-colors:active){.wr-aurora__canvas{display:none;forced-color-adjust:none}}\n"]
369
361
  }]
370
362
  }],
371
363
  ctorParameters: () => [],