ngwr 11.1.0 → 12.0.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 (481) hide show
  1. package/README.md +7 -7
  2. package/burger/styles/_index.scss +1 -1
  3. package/button/styles/_index.scss +2 -2
  4. package/calendar/styles/_index.scss +32 -12
  5. package/calendar-heatmap/styles/_index.scss +20 -0
  6. package/carousel/styles/_index.scss +23 -1
  7. package/cascader/styles/_index.scss +15 -3
  8. package/checkbox/styles/_index.scss +2 -2
  9. package/circular-text/styles/_index.scss +11 -0
  10. package/collapse/styles/_index.scss +2 -2
  11. package/color-picker/styles/_index.scss +3 -3
  12. package/command-palette/styles/_index.scss +12 -0
  13. package/compare/styles/_index.scss +18 -2
  14. package/context-menu/styles/_index.scss +21 -2
  15. package/date-picker/styles/_index.scss +5 -5
  16. package/descriptions/styles/_index.scss +1 -1
  17. package/drag-drop/styles/_index.scss +28 -1
  18. package/drawer/styles/_index.scss +37 -0
  19. package/dropdown/styles/_index.scss +2 -2
  20. package/event-calendar/styles/_index.scss +67 -10
  21. package/fesm2022/ngwr-action-sheet-testing.mjs +313 -0
  22. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -0
  23. package/fesm2022/ngwr-action-sheet.mjs +3 -3
  24. package/fesm2022/ngwr-affix.mjs +3 -3
  25. package/fesm2022/ngwr-alert.mjs +3 -3
  26. package/fesm2022/ngwr-anchor.mjs +3 -3
  27. package/fesm2022/ngwr-aurora.mjs +3 -3
  28. package/fesm2022/ngwr-avatar.mjs +3 -3
  29. package/fesm2022/ngwr-back-top.mjs +3 -3
  30. package/fesm2022/ngwr-badge.mjs +6 -6
  31. package/fesm2022/ngwr-bar-chart-testing.mjs +107 -0
  32. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -0
  33. package/fesm2022/ngwr-bar-chart.mjs +3 -3
  34. package/fesm2022/ngwr-blur-text-testing.mjs +203 -0
  35. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -0
  36. package/fesm2022/ngwr-blur-text.mjs +18 -4
  37. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  38. package/fesm2022/ngwr-border-glow-testing.mjs +325 -0
  39. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -0
  40. package/fesm2022/ngwr-border-glow.mjs +4 -4
  41. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  42. package/fesm2022/ngwr-breadcrumbs.mjs +29 -17
  43. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  44. package/fesm2022/ngwr-burger.mjs +3 -3
  45. package/fesm2022/ngwr-button.mjs +6 -6
  46. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +95 -0
  47. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -0
  48. package/fesm2022/ngwr-calendar-heatmap.mjs +17 -5
  49. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  50. package/fesm2022/ngwr-calendar-testing.mjs +368 -0
  51. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -0
  52. package/fesm2022/ngwr-calendar.mjs +228 -10
  53. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  54. package/fesm2022/ngwr-card.mjs +10 -10
  55. package/fesm2022/ngwr-card.mjs.map +1 -1
  56. package/fesm2022/ngwr-carousel.mjs +124 -24
  57. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  58. package/fesm2022/ngwr-cascader.mjs +60 -5
  59. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  60. package/fesm2022/ngwr-checkbox.mjs +14 -6
  61. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  62. package/fesm2022/ngwr-circular-text-testing.mjs +230 -0
  63. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -0
  64. package/fesm2022/ngwr-circular-text.mjs +4 -4
  65. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  66. package/fesm2022/ngwr-click-spark.mjs +27 -7
  67. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  68. package/fesm2022/ngwr-clipboard.mjs +3 -3
  69. package/fesm2022/ngwr-collapse.mjs +9 -9
  70. package/fesm2022/ngwr-color-picker-testing.mjs +452 -0
  71. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -0
  72. package/fesm2022/ngwr-color-picker.mjs +126 -10
  73. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  74. package/fesm2022/ngwr-command-palette.mjs +14 -5
  75. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  76. package/fesm2022/ngwr-compare.mjs +3 -3
  77. package/fesm2022/ngwr-confetti.mjs +31 -6
  78. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  79. package/fesm2022/ngwr-config.mjs +9 -0
  80. package/fesm2022/ngwr-config.mjs.map +1 -1
  81. package/fesm2022/ngwr-context-menu-testing.mjs +30 -11
  82. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  83. package/fesm2022/ngwr-context-menu.mjs +358 -48
  84. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  85. package/fesm2022/ngwr-cookie.mjs +3 -3
  86. package/fesm2022/ngwr-counter.mjs +25 -9
  87. package/fesm2022/ngwr-counter.mjs.map +1 -1
  88. package/fesm2022/{ngwr-date-adapter-fns.mjs → ngwr-date-adapters-fns.mjs} +37 -10
  89. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -0
  90. package/fesm2022/{ngwr-date-adapter-luxon.mjs → ngwr-date-adapters-luxon.mjs} +5 -5
  91. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -0
  92. package/fesm2022/ngwr-date-picker-testing.mjs +21 -85
  93. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  94. package/fesm2022/ngwr-date-picker.mjs +119 -37
  95. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  96. package/fesm2022/{ngwr-date-adapter.mjs → ngwr-date.mjs} +36 -10
  97. package/fesm2022/ngwr-date.mjs.map +1 -0
  98. package/fesm2022/ngwr-decrypt-text-testing.mjs +261 -0
  99. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -0
  100. package/fesm2022/ngwr-decrypt-text.mjs +9 -4
  101. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  102. package/fesm2022/ngwr-density.mjs +6 -6
  103. package/fesm2022/ngwr-descriptions.mjs +6 -6
  104. package/fesm2022/ngwr-dialog.mjs +73 -18
  105. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  106. package/fesm2022/ngwr-directives.mjs +12 -12
  107. package/fesm2022/ngwr-divider.mjs +52 -5
  108. package/fesm2022/ngwr-divider.mjs.map +1 -1
  109. package/fesm2022/ngwr-donut-chart-testing.mjs +97 -0
  110. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -0
  111. package/fesm2022/ngwr-donut-chart.mjs +7 -7
  112. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  113. package/fesm2022/ngwr-drag-drop.mjs +160 -11
  114. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  115. package/fesm2022/ngwr-drawer.mjs +156 -64
  116. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  117. package/fesm2022/ngwr-dropdown.mjs +58 -12
  118. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  119. package/fesm2022/ngwr-empty.mjs +3 -3
  120. package/fesm2022/ngwr-event-calendar-testing.mjs +446 -0
  121. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -0
  122. package/fesm2022/ngwr-event-calendar.mjs +66 -28
  123. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  124. package/fesm2022/ngwr-falling-text-testing.mjs +220 -0
  125. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -0
  126. package/fesm2022/ngwr-falling-text.mjs +75 -46
  127. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  128. package/fesm2022/ngwr-file-upload.mjs +3 -3
  129. package/fesm2022/ngwr-form.mjs +32 -15
  130. package/fesm2022/ngwr-form.mjs.map +1 -1
  131. package/fesm2022/ngwr-fuzzy-text-testing.mjs +134 -0
  132. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -0
  133. package/fesm2022/ngwr-fuzzy-text.mjs +21 -11
  134. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  135. package/fesm2022/ngwr-gauge-testing.mjs +86 -0
  136. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -0
  137. package/fesm2022/ngwr-gauge.mjs +3 -3
  138. package/fesm2022/ngwr-glitch-text-testing.mjs +215 -0
  139. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -0
  140. package/fesm2022/ngwr-glitch-text.mjs +7 -7
  141. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  142. package/fesm2022/ngwr-gradient-text-testing.mjs +258 -0
  143. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -0
  144. package/fesm2022/ngwr-gradient-text.mjs +4 -4
  145. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  146. package/fesm2022/ngwr-hotkey.mjs +24 -9
  147. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  148. package/fesm2022/ngwr-i18n-en.mjs +87 -1
  149. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  150. package/fesm2022/ngwr-i18n-ru.mjs +69 -1
  151. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  152. package/fesm2022/ngwr-i18n.mjs +26 -15
  153. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  154. package/fesm2022/ngwr-icon.mjs +6 -6
  155. package/fesm2022/ngwr-image-cropper-testing.mjs +200 -0
  156. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -0
  157. package/fesm2022/ngwr-image-cropper.mjs +156 -11
  158. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  159. package/fesm2022/ngwr-input-number-testing.mjs +15 -10
  160. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  161. package/fesm2022/ngwr-input-number.mjs +89 -15
  162. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  163. package/fesm2022/ngwr-input-otp-testing.mjs +12 -6
  164. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  165. package/fesm2022/ngwr-input-otp.mjs +24 -5
  166. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  167. package/fesm2022/ngwr-input.mjs +15 -15
  168. package/fesm2022/ngwr-keyboard.mjs +3 -3
  169. package/fesm2022/ngwr-knob-testing.mjs +220 -0
  170. package/fesm2022/ngwr-knob-testing.mjs.map +1 -0
  171. package/fesm2022/ngwr-knob.mjs +3 -3
  172. package/fesm2022/ngwr-layout.mjs +15 -15
  173. package/fesm2022/ngwr-lightbox-testing.mjs +223 -0
  174. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -0
  175. package/fesm2022/ngwr-lightbox.mjs +11 -4
  176. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  177. package/fesm2022/ngwr-line-chart-testing.mjs +119 -0
  178. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -0
  179. package/fesm2022/ngwr-line-chart.mjs +73 -26
  180. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  181. package/fesm2022/ngwr-list.mjs +7 -7
  182. package/fesm2022/ngwr-list.mjs.map +1 -1
  183. package/fesm2022/ngwr-loading-bar.mjs +7 -7
  184. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  185. package/fesm2022/ngwr-markdown.mjs +66 -8
  186. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  187. package/fesm2022/ngwr-marquee-testing.mjs +336 -0
  188. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -0
  189. package/fesm2022/ngwr-marquee.mjs +4 -4
  190. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  191. package/fesm2022/ngwr-media.mjs +3 -3
  192. package/fesm2022/ngwr-mention.mjs +108 -13
  193. package/fesm2022/ngwr-mention.mjs.map +1 -1
  194. package/fesm2022/ngwr-meta.mjs +6 -6
  195. package/fesm2022/ngwr-meter-group-testing.mjs +100 -0
  196. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -0
  197. package/fesm2022/ngwr-meter-group.mjs +3 -3
  198. package/fesm2022/ngwr-overlay.mjs +34 -7
  199. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  200. package/fesm2022/ngwr-page-header.mjs +3 -3
  201. package/fesm2022/ngwr-pagination-testing.mjs +6 -6
  202. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  203. package/fesm2022/ngwr-pagination.mjs +17 -13
  204. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  205. package/fesm2022/ngwr-pipes.mjs +39 -26
  206. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  207. package/fesm2022/ngwr-platform.mjs +9 -9
  208. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  209. package/fesm2022/ngwr-popover-testing.mjs +7 -2
  210. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  211. package/fesm2022/ngwr-popover.mjs +169 -33
  212. package/fesm2022/ngwr-popover.mjs.map +1 -1
  213. package/fesm2022/ngwr-progress.mjs +3 -3
  214. package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
  215. package/fesm2022/ngwr-qr.mjs +42 -5
  216. package/fesm2022/ngwr-qr.mjs.map +1 -1
  217. package/fesm2022/ngwr-radio.mjs +6 -6
  218. package/fesm2022/ngwr-rating.mjs +3 -3
  219. package/fesm2022/ngwr-result.mjs +21 -30
  220. package/fesm2022/ngwr-result.mjs.map +1 -1
  221. package/fesm2022/ngwr-rotating-text-testing.mjs +220 -0
  222. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -0
  223. package/fesm2022/ngwr-rotating-text.mjs +4 -4
  224. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  225. package/fesm2022/ngwr-scroll.mjs +3 -3
  226. package/fesm2022/ngwr-segmented-testing.mjs +14 -1
  227. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  228. package/fesm2022/ngwr-segmented.mjs +29 -6
  229. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  230. package/fesm2022/ngwr-select.mjs +227 -43
  231. package/fesm2022/ngwr-select.mjs.map +1 -1
  232. package/fesm2022/ngwr-shiny-text-testing.mjs +237 -0
  233. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -0
  234. package/fesm2022/ngwr-shiny-text.mjs +11 -9
  235. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  236. package/fesm2022/ngwr-sidebar.mjs +31 -16
  237. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  238. package/fesm2022/ngwr-skeleton.mjs +3 -3
  239. package/fesm2022/ngwr-slider.mjs +143 -14
  240. package/fesm2022/ngwr-slider.mjs.map +1 -1
  241. package/fesm2022/ngwr-sparkline-testing.mjs +76 -0
  242. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -0
  243. package/fesm2022/ngwr-sparkline.mjs +3 -3
  244. package/fesm2022/ngwr-speed-dial-testing.mjs +281 -0
  245. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -0
  246. package/fesm2022/ngwr-speed-dial.mjs +27 -12
  247. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  248. package/fesm2022/ngwr-spinner.mjs +3 -3
  249. package/fesm2022/ngwr-splash-cursor-testing.mjs +89 -0
  250. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -0
  251. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  252. package/fesm2022/ngwr-split-text-testing.mjs +224 -0
  253. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -0
  254. package/fesm2022/ngwr-split-text.mjs +31 -5
  255. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  256. package/fesm2022/ngwr-splitter-testing.mjs +245 -0
  257. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -0
  258. package/fesm2022/ngwr-splitter.mjs +3 -3
  259. package/fesm2022/ngwr-spotlight-card-testing.mjs +368 -0
  260. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -0
  261. package/fesm2022/ngwr-spotlight-card.mjs +7 -7
  262. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  263. package/fesm2022/ngwr-squircle.mjs +6 -6
  264. package/fesm2022/ngwr-star-border-testing.mjs +172 -0
  265. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -0
  266. package/fesm2022/ngwr-star-border.mjs +4 -4
  267. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  268. package/fesm2022/ngwr-statistic.mjs +9 -9
  269. package/fesm2022/ngwr-stepper-testing.mjs +8 -8
  270. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  271. package/fesm2022/ngwr-stepper.mjs +33 -8
  272. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  273. package/fesm2022/ngwr-storage.mjs +17 -5
  274. package/fesm2022/ngwr-storage.mjs.map +1 -1
  275. package/fesm2022/ngwr-switch.mjs +3 -3
  276. package/fesm2022/ngwr-table.mjs +110 -40
  277. package/fesm2022/ngwr-table.mjs.map +1 -1
  278. package/fesm2022/ngwr-tabs-testing.mjs +11 -10
  279. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  280. package/fesm2022/ngwr-tabs.mjs +51 -11
  281. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  282. package/fesm2022/ngwr-textarea.mjs +3 -3
  283. package/fesm2022/ngwr-theme.mjs +181 -4
  284. package/fesm2022/ngwr-theme.mjs.map +1 -1
  285. package/fesm2022/ngwr-tilt-card-testing.mjs +190 -0
  286. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -0
  287. package/fesm2022/ngwr-tilt-card.mjs +26 -8
  288. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  289. package/fesm2022/ngwr-timeline.mjs +6 -6
  290. package/fesm2022/ngwr-toast.mjs +44 -15
  291. package/fesm2022/ngwr-toast.mjs.map +1 -1
  292. package/fesm2022/ngwr-toolbar.mjs +3 -3
  293. package/fesm2022/ngwr-tour-testing.mjs +173 -0
  294. package/fesm2022/ngwr-tour-testing.mjs.map +1 -0
  295. package/fesm2022/ngwr-tour.mjs +34 -10
  296. package/fesm2022/ngwr-tour.mjs.map +1 -1
  297. package/fesm2022/ngwr-transfer.mjs +3 -3
  298. package/fesm2022/ngwr-tree.mjs +36 -11
  299. package/fesm2022/ngwr-tree.mjs.map +1 -1
  300. package/fesm2022/ngwr-typewriter-testing.mjs +242 -0
  301. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -0
  302. package/fesm2022/ngwr-typewriter.mjs +13 -5
  303. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  304. package/fesm2022/ngwr-typography.mjs +3 -3
  305. package/fesm2022/ngwr-utils.mjs +5 -2
  306. package/fesm2022/ngwr-utils.mjs.map +1 -1
  307. package/fesm2022/ngwr-version.mjs +1 -1
  308. package/fesm2022/ngwr-version.mjs.map +1 -1
  309. package/fesm2022/ngwr-virtual-scroll.mjs +4 -4
  310. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  311. package/fesm2022/ngwr-waves-testing.mjs +128 -0
  312. package/fesm2022/ngwr-waves-testing.mjs.map +1 -0
  313. package/fesm2022/ngwr-waves.mjs +4 -4
  314. package/fesm2022/ngwr-waves.mjs.map +1 -1
  315. package/fesm2022/ngwr-window-testing.mjs +361 -0
  316. package/fesm2022/ngwr-window-testing.mjs.map +1 -0
  317. package/fesm2022/ngwr-window.mjs +175 -31
  318. package/fesm2022/ngwr-window.mjs.map +1 -1
  319. package/file-upload/styles/_index.scss +2 -2
  320. package/glitch-text/styles/_index.scss +27 -12
  321. package/i18n/en.json +71 -7
  322. package/i18n/ru.json +71 -7
  323. package/image-cropper/styles/_index.scss +19 -0
  324. package/input/styles/_index.scss +2 -2
  325. package/input-number/styles/_index.scss +2 -2
  326. package/input-otp/styles/_index.scss +9 -2
  327. package/knob/styles/_index.scss +1 -1
  328. package/lightbox/styles/_index.scss +16 -2
  329. package/line-chart/styles/_index.scss +28 -14
  330. package/list/styles/_index.scss +1 -1
  331. package/llms-full.txt +161 -19
  332. package/llms.txt +45 -10
  333. package/markdown/styles/_index.scss +3 -3
  334. package/mcp/api.js +6 -4
  335. package/mcp/catalog.js +40 -3
  336. package/mcp/providers.js +42 -0
  337. package/mcp/tools.js +22 -30
  338. package/meter-group/styles/_index.scss +1 -1
  339. package/overlay/styles/_index.scss +33 -1
  340. package/package.json +161 -12
  341. package/pagination/styles/_index.scss +23 -1
  342. package/popover/styles/_index.scss +16 -7
  343. package/progress/styles/_index.scss +1 -1
  344. package/radio/styles/_index.scss +2 -2
  345. package/rating/styles/_index.scss +1 -1
  346. package/schematics/collection.json +1 -1
  347. package/schematics/migrations/v12/index.js +65 -0
  348. package/schematics/migrations/v7/index.js +12 -1
  349. package/schematics/migrations/v8/index.js +10 -1
  350. package/schematics/migrations.json +5 -0
  351. package/schematics/ng-add/index.js +8 -3
  352. package/schematics/provider/index.js +80 -13
  353. package/schematics/use/index.js +9 -129
  354. package/schematics/use/rule.js +206 -0
  355. package/schematics/use/symbol-map.json +4 -4
  356. package/segmented/styles/_index.scss +14 -3
  357. package/select/styles/_index.scss +14 -2
  358. package/sidebar/styles/_index.scss +12 -10
  359. package/skills/ngwr/SKILL.md +117 -0
  360. package/skills/ngwr/references/catalog.md +212 -0
  361. package/skills/ngwr/references/setup.md +78 -0
  362. package/slider/styles/_index.scss +1 -1
  363. package/speed-dial/styles/_index.scss +1 -1
  364. package/stepper/styles/_index.scss +12 -3
  365. package/switch/styles/_index.scss +2 -2
  366. package/table/styles/_index.scss +61 -12
  367. package/tabs/styles/_index.scss +1 -1
  368. package/textarea/styles/_index.scss +1 -1
  369. package/theme/styles/_colors.scss +142 -56
  370. package/theme/styles/_dark.scss +46 -3
  371. package/theme/styles/_focus.scss +28 -5
  372. package/theme/styles/_mixins.scss +1 -1
  373. package/theme/styles/_variables.scss +67 -0
  374. package/transfer/styles/_index.scss +26 -3
  375. package/tree/styles/_index.scss +29 -6
  376. package/types/ngwr-action-sheet-testing.d.ts +260 -0
  377. package/types/ngwr-bar-chart-testing.d.ts +85 -0
  378. package/types/ngwr-blur-text-testing.d.ts +180 -0
  379. package/types/ngwr-blur-text.d.ts +20 -4
  380. package/types/ngwr-border-glow-testing.d.ts +219 -0
  381. package/types/ngwr-breadcrumbs.d.ts +17 -10
  382. package/types/ngwr-calendar-heatmap-testing.d.ts +79 -0
  383. package/types/ngwr-calendar-testing.d.ts +277 -0
  384. package/types/ngwr-calendar.d.ts +76 -0
  385. package/types/ngwr-carousel.d.ts +85 -6
  386. package/types/ngwr-cascader.d.ts +17 -0
  387. package/types/ngwr-checkbox.d.ts +13 -0
  388. package/types/ngwr-circular-text-testing.d.ts +196 -0
  389. package/types/ngwr-click-spark.d.ts +4 -0
  390. package/types/ngwr-color-picker-testing.d.ts +299 -0
  391. package/types/ngwr-color-picker.d.ts +34 -2
  392. package/types/ngwr-confetti.d.ts +8 -0
  393. package/types/ngwr-config.d.ts +10 -1
  394. package/types/ngwr-context-menu-testing.d.ts +24 -11
  395. package/types/ngwr-context-menu.d.ts +71 -1
  396. package/types/ngwr-counter.d.ts +1 -0
  397. package/types/{ngwr-date-adapter-fns.d.ts → ngwr-date-adapters-fns.d.ts} +33 -6
  398. package/types/{ngwr-date-adapter-luxon.d.ts → ngwr-date-adapters-luxon.d.ts} +1 -1
  399. package/types/ngwr-date-picker-testing.d.ts +17 -72
  400. package/types/ngwr-date-picker.d.ts +8 -4
  401. package/types/{ngwr-date-adapter.d.ts → ngwr-date.d.ts} +24 -5
  402. package/types/ngwr-decrypt-text-testing.d.ts +222 -0
  403. package/types/ngwr-dialog.d.ts +38 -1
  404. package/types/ngwr-divider.d.ts +25 -0
  405. package/types/ngwr-donut-chart-testing.d.ts +83 -0
  406. package/types/ngwr-donut-chart.d.ts +3 -3
  407. package/types/ngwr-drag-drop.d.ts +56 -2
  408. package/types/ngwr-drawer.d.ts +68 -5
  409. package/types/ngwr-dropdown.d.ts +9 -0
  410. package/types/ngwr-event-calendar-testing.d.ts +301 -0
  411. package/types/ngwr-event-calendar.d.ts +17 -8
  412. package/types/ngwr-falling-text-testing.d.ts +188 -0
  413. package/types/ngwr-falling-text.d.ts +1 -1
  414. package/types/ngwr-form.d.ts +12 -2
  415. package/types/ngwr-fuzzy-text-testing.d.ts +130 -0
  416. package/types/ngwr-gauge-testing.d.ts +71 -0
  417. package/types/ngwr-glitch-text-testing.d.ts +201 -0
  418. package/types/ngwr-gradient-text-testing.d.ts +186 -0
  419. package/types/ngwr-i18n.d.ts +13 -4
  420. package/types/ngwr-image-cropper-testing.d.ts +173 -0
  421. package/types/ngwr-image-cropper.d.ts +71 -5
  422. package/types/ngwr-input-number-testing.d.ts +15 -10
  423. package/types/ngwr-input-number.d.ts +44 -5
  424. package/types/ngwr-input-otp-testing.d.ts +12 -6
  425. package/types/ngwr-input-otp.d.ts +15 -1
  426. package/types/ngwr-knob-testing.d.ts +150 -0
  427. package/types/ngwr-lightbox-testing.d.ts +154 -0
  428. package/types/ngwr-lightbox.d.ts +6 -0
  429. package/types/ngwr-line-chart-testing.d.ts +93 -0
  430. package/types/ngwr-line-chart.d.ts +20 -3
  431. package/types/ngwr-markdown.d.ts +11 -0
  432. package/types/ngwr-marquee-testing.d.ts +280 -0
  433. package/types/ngwr-mention.d.ts +32 -0
  434. package/types/ngwr-meter-group-testing.d.ts +77 -0
  435. package/types/ngwr-overlay.d.ts +20 -1
  436. package/types/ngwr-pagination-testing.d.ts +4 -4
  437. package/types/ngwr-pipes.d.ts +1 -1
  438. package/types/ngwr-popover-testing.d.ts +7 -2
  439. package/types/ngwr-popover.d.ts +1 -0
  440. package/types/ngwr-result.d.ts +6 -0
  441. package/types/ngwr-rotating-text-testing.d.ts +191 -0
  442. package/types/ngwr-segmented-testing.d.ts +9 -0
  443. package/types/ngwr-segmented.d.ts +21 -1
  444. package/types/ngwr-select.d.ts +100 -6
  445. package/types/ngwr-shiny-text-testing.d.ts +165 -0
  446. package/types/ngwr-shiny-text.d.ts +4 -2
  447. package/types/ngwr-sidebar.d.ts +14 -5
  448. package/types/ngwr-slider.d.ts +84 -1
  449. package/types/ngwr-sparkline-testing.d.ts +69 -0
  450. package/types/ngwr-speed-dial-testing.d.ts +199 -0
  451. package/types/ngwr-speed-dial.d.ts +22 -3
  452. package/types/ngwr-splash-cursor-testing.d.ts +95 -0
  453. package/types/ngwr-split-text-testing.d.ts +209 -0
  454. package/types/ngwr-split-text.d.ts +21 -0
  455. package/types/ngwr-splitter-testing.d.ts +174 -0
  456. package/types/ngwr-spotlight-card-testing.d.ts +303 -0
  457. package/types/ngwr-star-border-testing.d.ts +135 -0
  458. package/types/ngwr-stepper-testing.d.ts +5 -5
  459. package/types/ngwr-stepper.d.ts +8 -0
  460. package/types/ngwr-storage.d.ts +1 -0
  461. package/types/ngwr-table.d.ts +114 -12
  462. package/types/ngwr-tabs-testing.d.ts +11 -10
  463. package/types/ngwr-tabs.d.ts +2 -0
  464. package/types/ngwr-theme.d.ts +82 -1
  465. package/types/ngwr-tilt-card-testing.d.ts +158 -0
  466. package/types/ngwr-tilt-card.d.ts +2 -0
  467. package/types/ngwr-toast.d.ts +14 -5
  468. package/types/ngwr-tour-testing.d.ts +143 -0
  469. package/types/ngwr-tour.d.ts +22 -4
  470. package/types/ngwr-tree.d.ts +12 -4
  471. package/types/ngwr-typewriter-testing.d.ts +211 -0
  472. package/types/ngwr-utils.d.ts +5 -2
  473. package/types/ngwr-version.d.ts +1 -1
  474. package/types/ngwr-waves-testing.d.ts +121 -0
  475. package/types/ngwr-window-testing.d.ts +263 -0
  476. package/types/ngwr-window.d.ts +66 -21
  477. package/typography/styles/_index.scss +1 -1
  478. package/window/styles/_index.scss +116 -42
  479. package/fesm2022/ngwr-date-adapter-fns.mjs.map +0 -1
  480. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +0 -1
  481. package/fesm2022/ngwr-date-adapter.mjs.map +0 -1
package/llms-full.txt CHANGED
@@ -13,6 +13,10 @@
13
13
  - exports: WrActionSheet, WrActionSheetAction
14
14
  - An iOS-style bottom sheet of choices — a data-driven preset over the drawer, with destructive and cancel roles.
15
15
 
16
+ ## ngwr/action-sheet/testing
17
+ - import: `import { WrActionSheetActionHarness } from 'ngwr/action-sheet/testing'`
18
+ - exports: WrActionSheetActionHarness, WrActionSheetHarness, WrActionSheetActionHarnessFilters, WrActionSheetHarnessFilters
19
+
16
20
  ## ngwr/affix
17
21
  - import: `import { WrAffix } from 'ngwr/affix'`
18
22
  - selector: `[wrAffix]`
@@ -61,18 +65,30 @@
61
65
  - exports: WrBarChart, WrBarChartDatum
62
66
  - Vertical bars, one series. Per-bar color overrides via the `color` field.
63
67
 
68
+ ## ngwr/bar-chart/testing
69
+ - import: `import { WrBarChartHarness } from 'ngwr/bar-chart/testing'`
70
+ - exports: WrBarChartHarness, WrBarChartBar, WrBarChartHarnessFilters
71
+
64
72
  ## ngwr/blur-text
65
73
  - import: `import { WrBlurText } from 'ngwr/blur-text'`
66
74
  - selector: `wr-blur-text`
67
- - exports: WrBlurText
75
+ - exports: WrBlurText, WrBlurTextDirection, WrBlurTextUnit
68
76
  - Reveals text by blurring each piece in from a coloured offset, through a half-blurred mid-step, into the steady state. Triggers on viewport entry. Dependency-free port — uses `IntersectionObserver` + Web Animations API.
69
77
 
78
+ ## ngwr/blur-text/testing
79
+ - import: `import { WrBlurTextHarness } from 'ngwr/blur-text/testing'`
80
+ - exports: WrBlurTextHarness, WrBlurTextHarnessFilters
81
+
70
82
  ## ngwr/border-glow
71
83
  - import: `import { WrBorderGlow } from 'ngwr/border-glow'`
72
84
  - selector: `wr-border-glow`
73
85
  - exports: WrBorderGlow
74
86
  - Cursor-tracked glowing border card. A cone of light follows the pointer along the perimeter, brightening as the cursor approaches an edge. Optional `[animated]` mode plays a one-shot sweep on mount.
75
87
 
88
+ ## ngwr/border-glow/testing
89
+ - import: `import { WrBorderGlowHarness } from 'ngwr/border-glow/testing'`
90
+ - exports: WrBorderGlowHarness, WrBorderGlowHarnessFilters
91
+
76
92
  ## ngwr/breadcrumbs
77
93
  - import: `import { WrBreadcrumbs } from 'ngwr/breadcrumbs'`
78
94
  - selector: `wr-breadcrumbs-item`, `wr-breadcrumbs`
@@ -107,6 +123,14 @@
107
123
  - exports: WrCalendarHeatmap, WrHeatmapDatum
108
124
  - Year-grid heatmap — the classic GitHub contributions layout.
109
125
 
126
+ ## ngwr/calendar-heatmap/testing
127
+ - import: `import { WrCalendarHeatmapHarness } from 'ngwr/calendar-heatmap/testing'`
128
+ - exports: WrCalendarHeatmapHarness, WrCalendarHeatmapCell, WrCalendarHeatmapHarnessFilters
129
+
130
+ ## ngwr/calendar/testing
131
+ - import: `import { WrCalendarDayHarness } from 'ngwr/calendar/testing'`
132
+ - exports: WrCalendarDayHarness, WrCalendarHarness, WrCalendarChip, WrCalendarDayHarnessFilters, WrCalendarHarnessFilters, WrCalendarView
133
+
110
134
  ## ngwr/card
111
135
  - import: `import { WrCard } from 'ngwr/card'`
112
136
  - selector: `wr-card`, `wr-card-header`, `wr-card-footer`
@@ -116,7 +140,7 @@
116
140
  ## ngwr/carousel
117
141
  - import: `import { WrCarousel } from 'ngwr/carousel'`
118
142
  - selector: `wr-carousel-slide`, `wr-carousel`
119
- - exports: WrCarousel, WrCarouselSlide
143
+ - exports: WrCarousel, WrCarouselSlide, WR_CAROUSEL, WrCarouselContext
120
144
  - Slide carousel with prev/next, dots, and optional autoplay. Autoplay holds while the pointer is over it, while focus is inside it, and while a drag is in flight — hovering is not a way to stop moving content for someone who never uses a mouse, which is what WCAG 2.2.2 asks for.
121
145
 
122
146
  ## ngwr/carousel/testing
@@ -149,6 +173,10 @@
149
173
  - exports: WrCircularText, WrCircularTextHover
150
174
  - Text laid out around a circle, with the whole circle spinning on a keyframe. Hover behaviour swaps the spin rate (or pauses) without resetting the rotation angle. Pure CSS port — no JS animation loop.
151
175
 
176
+ ## ngwr/circular-text/testing
177
+ - import: `import { WrCircularTextHarness } from 'ngwr/circular-text/testing'`
178
+ - exports: WrCircularTextHarness, WrCircularTextHarnessFilters
179
+
152
180
  ## ngwr/click-spark
153
181
  - import: `import { WrClickSpark } from 'ngwr/click-spark'`
154
182
  - selector: `wr-click-spark`
@@ -176,6 +204,10 @@
176
204
  - exports: WrColorPicker, WrColorPickerTrigger, hslToRgb, hsvToRgb, parseHex, rgbToHsl, rgbToHsv, toHex, WrHsl, WrHsv, WrRgb, WrColorFormat
177
205
  - HSV canvas + hue / alpha sliders + HEX / RGB / HSL inputs + optional swatches. Use `<wr-color-picker>` inline or anchor it to a button with `[wrColorPickerTrigger]`.
178
206
 
207
+ ## ngwr/color-picker/testing
208
+ - import: `import { WrColorPickerHarness } from 'ngwr/color-picker/testing'`
209
+ - exports: WrColorPickerHarness, WrColorPickerTriggerHarness, WrColorPickerHarnessFilters, WrColorPickerTab, WrColorPickerThumbs, WrColorPickerTriggerHarnessFilters
210
+
179
211
  ## ngwr/command-palette
180
212
  - import: `import { WrCommandPalette } from 'ngwr/command-palette'`
181
213
  - selector: `wr-command-palette`
@@ -222,18 +254,10 @@
222
254
  - exports: WrCounter, WrCounterMode, WrCountUp, WrCountUpDirection, WrCountUpEasing, WrCountUpTrigger
223
255
  - Animated number display. Use **odometer** mode for rolling-digit motion (mechanical counter look) or **tween** mode for an eased count-up from the previous value.
224
256
 
225
- ## ngwr/date-adapter
226
- - import: `import { WrDateAdapter } from 'ngwr/date-adapter'`
257
+ ## ngwr/date
258
+ - import: `import { WrDateAdapter } from 'ngwr/date'`
227
259
  - exports: WrDateAdapter, WrNativeDateAdapter, provideWrDateAdapter, WrDateAdapterOptions, WR_DATE_LOCALE, WrDateFormat, isNamedFormat
228
260
 
229
- ## ngwr/date-adapter-fns
230
- - import: `import { WrDateFnsAdapter } from 'ngwr/date-adapter-fns'`
231
- - exports: WrDateFnsAdapter, provideWrDateFnsAdapter
232
-
233
- ## ngwr/date-adapter-luxon
234
- - import: `import { WrLuxonAdapter } from 'ngwr/date-adapter-luxon'`
235
- - exports: WrLuxonAdapter, provideWrLuxonAdapter
236
-
237
261
  ## ngwr/date-picker
238
262
  - import: `import { WrDatePicker } from 'ngwr/date-picker'`
239
263
  - selector: `wr-date-picker`, `wr-date-range-picker`
@@ -244,12 +268,24 @@
244
268
  - import: `import { WrDatePickerDayHarness } from 'ngwr/date-picker/testing'`
245
269
  - exports: WrDatePickerDayHarness, WrDatePickerHarness, WrDateRangePickerHarness, WrDatePickerDayHarnessFilters, WrDatePickerHarnessFilters, WrDatePickerTimeFields, WrDateRangePickerHarnessFilters
246
270
 
271
+ ## ngwr/date/adapters/fns
272
+ - import: `import { WrDateFnsAdapter } from 'ngwr/date/adapters/fns'`
273
+ - exports: WrDateFnsAdapter, provideWrDateFnsAdapter
274
+
275
+ ## ngwr/date/adapters/luxon
276
+ - import: `import { WrLuxonAdapter } from 'ngwr/date/adapters/luxon'`
277
+ - exports: WrLuxonAdapter, provideWrLuxonAdapter
278
+
247
279
  ## ngwr/decrypt-text
248
280
  - import: `import { WrDecryptText } from 'ngwr/decrypt-text'`
249
281
  - selector: `wr-decrypt-text`
250
282
  - exports: WrDecryptText, WrDecryptTextAnimateOn, WrDecryptTextClickMode, WrDecryptTextRevealDirection
251
283
  - Reveals a string by scrambling characters and progressively replacing scramble glyphs with the originals. Sequential reveal in three directions, or non-sequential settle after N iterations. Four trigger modes: hover, click, view, in-view + hover. Dependency-free port — signals + `setInterval`.
252
284
 
285
+ ## ngwr/decrypt-text/testing
286
+ - import: `import { WrDecryptTextHarness } from 'ngwr/decrypt-text/testing'`
287
+ - exports: WrDecryptTextHarness, WrDecryptTextHarnessFilters
288
+
253
289
  ## ngwr/density
254
290
  - import: `import { WrDensity } from 'ngwr/density'`
255
291
  - selector: `[wrDensity]`
@@ -289,6 +325,10 @@
289
325
  - exports: WrDonutChart, WrDonutSegment
290
326
  - Ring chart with optional center label / value. Set `thickness="0"` for a solid pie.
291
327
 
328
+ ## ngwr/donut-chart/testing
329
+ - import: `import { WrDonutChartHarness } from 'ngwr/donut-chart/testing'`
330
+ - exports: WrDonutChartHarness, WrDonutChartHarnessFilters, WrDonutChartLegendEntry
331
+
292
332
  ## ngwr/drag-drop
293
333
  - import: `import { WrSortableList } from 'ngwr/drag-drop'`
294
334
  - selector: `[wrDragHandle]`, `wr-sortable-list`
@@ -327,12 +367,20 @@
327
367
  - exports: WrEventCalendar, WrCalendarEventTemplate, WrCalendarEvent, WrCalendarEventChange, WrCalendarEventContext, WrCalendarSlot, WrCalendarView
328
368
  - Month, week and day views of a set of events — draggable, resizable, keyboard-operable.
329
369
 
370
+ ## ngwr/event-calendar/testing
371
+ - import: `import { WrEventCalendarChipHarness } from 'ngwr/event-calendar/testing'`
372
+ - exports: WrEventCalendarChipHarness, WrEventCalendarHarness, WrEventCalendarChipHarnessFilters, WrEventCalendarHarnessFilters
373
+
330
374
  ## ngwr/falling-text
331
375
  - import: `import { WrFallingText } from 'ngwr/falling-text'`
332
376
  - selector: `wr-falling-text`
333
377
  - exports: WrFallingText, WrFallingTextTrigger
334
378
  - Words fall like physical bodies — gravity, wall / floor collision, body-to-body bouncing, and cursor drag-to-pick-up. Words start at their typeset position and release into the simulator on trigger. Reactbits' original uses matter-js; this port ships a minimal in-house AABB physics simulator so there's no extra runtime dependency.
335
379
 
380
+ ## ngwr/falling-text/testing
381
+ - import: `import { WrFallingTextHarness } from 'ngwr/falling-text/testing'`
382
+ - exports: WrFallingTextHarness, WrFallingTextHarnessFilters
383
+
336
384
  ## ngwr/file-upload
337
385
  - import: `import { WrFileUpload } from 'ngwr/file-upload'`
338
386
  - selector: `wr-file-upload`
@@ -359,24 +407,40 @@
359
407
  - exports: WrFuzzyText, WrFuzzyTextDirection
360
408
  - Canvas-rendered fuzzy text — each row (or column) is offset by a random amount per frame for a TV-static or motion-blur look. Intensity ramps up on hover, click, and during periodic glitch bursts.
361
409
 
410
+ ## ngwr/fuzzy-text/testing
411
+ - import: `import { WrFuzzyTextHarness } from 'ngwr/fuzzy-text/testing'`
412
+ - exports: WrFuzzyTextHarness, WrFuzzyTextHarnessFilters
413
+
362
414
  ## ngwr/gauge
363
415
  - import: `import { WrGauge } from 'ngwr/gauge'`
364
416
  - selector: `wr-gauge`
365
417
  - exports: WrGauge
366
418
  - Semicircle progress display — read-only, perfect for utilisation and score widgets.
367
419
 
420
+ ## ngwr/gauge/testing
421
+ - import: `import { WrGaugeHarness } from 'ngwr/gauge/testing'`
422
+ - exports: WrGaugeHarness, WrGaugeHarnessFilters
423
+
368
424
  ## ngwr/glitch-text
369
425
  - import: `import { WrGlitchText } from 'ngwr/glitch-text'`
370
426
  - selector: `wr-glitch-text`
371
427
  - exports: WrGlitchText
372
428
  - Colour-split horizontal-tear glitch on the provided text. Defaults to glitching on hover; flip `[enableOnHover]` to play constantly. Pure CSS port — two pseudo-element clones with offset coloured shadows and a clip-path keyframe.
373
429
 
430
+ ## ngwr/glitch-text/testing
431
+ - import: `import { WrGlitchTextHarness } from 'ngwr/glitch-text/testing'`
432
+ - exports: WrGlitchTextHarness, WrGlitchTextColourSplit, WrGlitchTextDurations, WrGlitchTextHarnessFilters
433
+
374
434
  ## ngwr/gradient-text
375
435
  - import: `import { WrGradientText } from 'ngwr/gradient-text'`
376
436
  - selector: `wr-gradient-text`
377
437
  - exports: WrGradientText, WrGradientTextDirection
378
438
  - Animated multi-stop gradient text. The gradient slides across the text via `background-clip: text`. Optional border variant wraps the text in a dark pill with the same animated gradient as a border ring. Pure CSS port — no JS animation loop.
379
439
 
440
+ ## ngwr/gradient-text/testing
441
+ - import: `import { WrGradientTextHarness } from 'ngwr/gradient-text/testing'`
442
+ - exports: WrGradientTextHarness, WrGradientTextHarnessFilters
443
+
380
444
  ## ngwr/hotkey
381
445
  - import: `import { WrHotkey } from 'ngwr/hotkey'`
382
446
  - selector: `[wrHotkey]`
@@ -417,6 +481,10 @@
417
481
  - exports: WrImageCropper, WrCropRect, WrCropHandle, WrImageOutputType
418
482
  - DOM-based crop UI. Drag the box to move, drag any of the eight handles to resize. Optional `[aspectRatio]` locks the box shape. `(cropped)` fires with a `Blob` after each drag end — wire to upload or preview.
419
483
 
484
+ ## ngwr/image-cropper/testing
485
+ - import: `import { WrImageCropperHarness } from 'ngwr/image-cropper/testing'`
486
+ - exports: WrImageCropperHarness, WrCropArrow, WrCropWindowBox, WrImageCropperHarnessFilters
487
+
420
488
  ## ngwr/input
421
489
  - import: `import { WrInput } from 'ngwr/input'`
422
490
  - selector: `[wrInputPrefix]`, `[wrInputSuffix]`, `input[wrInput]`, `textarea[wrInput]`, `wr-input-group`, `wr-password-toggle`
@@ -459,6 +527,10 @@
459
527
  - exports: WrKnob
460
528
  - Radial dial input. A signal-forms native control: the value is a `number`, snapped to `step` and clamped to `[min, max]`. Drag around the dial or use arrow keys (Shift = ×10); Home / End jump to the ends.
461
529
 
530
+ ## ngwr/knob/testing
531
+ - import: `import { WrKnobHarness } from 'ngwr/knob/testing'`
532
+ - exports: WrKnobHarness, WrKnobHarnessFilters
533
+
462
534
  ## ngwr/layout
463
535
  - import: `import { WrLayout } from 'ngwr/layout'`
464
536
  - selector: `wr-layout-content`, `wr-layout-footer`, `wr-layout-header`, `wr-layout-sider`, `wr-layout`
@@ -471,12 +543,20 @@
471
543
  - exports: WrLightbox
472
544
  - Image with click-to-zoom lightbox. Renders a thumbnail; clicking opens a full-size overlay viewer with backdrop, ESC + click-out to close.
473
545
 
546
+ ## ngwr/lightbox/testing
547
+ - import: `import { WrLightboxHarness } from 'ngwr/lightbox/testing'`
548
+ - exports: WrLightboxHarness, WrLightboxHarnessFilters
549
+
474
550
  ## ngwr/line-chart
475
551
  - import: `import { WrLineChart } from 'ngwr/line-chart'`
476
552
  - selector: `wr-line-chart`
477
553
  - exports: WrLineChart, WrLineSeries
478
554
  - Multi-series line chart with a hover tooltip that snaps to the nearest x-axis tick.
479
555
 
556
+ ## ngwr/line-chart/testing
557
+ - import: `import { WrLineChartHarness } from 'ngwr/line-chart/testing'`
558
+ - exports: WrLineChartHarness, WrLineChartHarnessFilters, WrLineChartTooltipRow
559
+
480
560
  ## ngwr/list
481
561
  - import: `import { WrList } from 'ngwr/list'`
482
562
  - selector: `wr-list-item`, `wr-list`
@@ -505,6 +585,10 @@
505
585
  - exports: WrMarquee, WrMarqueeItem, WrMarqueeImage, WrMarqueeNode
506
586
  - Endless rAF-driven horizontal carousel. Pass items as image sources or Angular templates; the track auto-duplicates to cover the container. Optional edge fades, pause/scale-on-hover, custom hover speed.
507
587
 
588
+ ## ngwr/marquee/testing
589
+ - import: `import { WrMarqueeHarness } from 'ngwr/marquee/testing'`
590
+ - exports: WrMarqueeHarness, WrMarqueeItemHarness, WrMarqueeHarnessFilters, WrMarqueeItemHarnessFilters, WrMarqueeLink
591
+
508
592
  ## ngwr/media
509
593
  - import: `import { WrMedia } from 'ngwr/media'`
510
594
  - exports: WrMedia, provideWrMedia, WR_BREAKPOINTS, DEFAULT_WR_BREAKPOINTS, WrBreakpoint, WrBreakpointMap
@@ -532,9 +616,13 @@
532
616
  - exports: WrMeterGroup, WrMeterSegment
533
617
  - Stacked-segment progress bar. Each segment is sized proportionally to its `value` relative to the sum (or the explicit `max`); legend listed underneath.
534
618
 
619
+ ## ngwr/meter-group/testing
620
+ - import: `import { WrMeterGroupHarness } from 'ngwr/meter-group/testing'`
621
+ - exports: WrMeterGroupHarness, WrMeterGroupHarnessFilters, WrMeterGroupSlice
622
+
535
623
  ## ngwr/overlay
536
624
  - import: `import { WrOutsideClick } from 'ngwr/overlay'`
537
- - exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
625
+ - exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet, WrResponsiveOverlaysConfig
538
626
 
539
627
  ## ngwr/page-header
540
628
  - import: `import { WrPageHeader } from 'ngwr/page-header'`
@@ -550,7 +638,6 @@
550
638
 
551
639
  ## ngwr/pagination/testing
552
640
  - import: `import { WrPaginationHarness } from 'ngwr/pagination/testing'`
553
- - selector: `.wr-pagination__page`, `.wr-pagination__nav > wr-btn:not(.wr-pagination__page)`, `.wr-pagination__size`, `.wr-pagination__page[aria-current="page"]`
554
641
  - exports: WrPaginationHarness, WrPaginationHarnessFilters
555
642
 
556
643
  ## ngwr/pipes
@@ -632,6 +719,10 @@
632
719
  - exports: WrRotatingText, WrRotatingTextSplit, WrRotatingTextStaggerFrom
633
720
  - Cycles through a list of strings, animating each transition character-by-character (or word/line). Auto-advances on a timer by default; also controllable imperatively via `next()` / `previous()` / `jumpTo()` / `reset()`.
634
721
 
722
+ ## ngwr/rotating-text/testing
723
+ - import: `import { WrRotatingTextHarness } from 'ngwr/rotating-text/testing'`
724
+ - exports: WrRotatingTextHarness, WrRotatingTextHarnessFilters
725
+
635
726
  ## ngwr/scroll
636
727
  - import: `import { WrScroll } from 'ngwr/scroll'`
637
728
  - exports: WrScroll, WrScrollTarget, WrScrollOptions
@@ -663,6 +754,10 @@
663
754
  - exports: WrShinyText, WrShimmer
664
755
  - Shimmer-over-text effect. A bright stripe sweeps across the text using `background-clip: text` + an animated `background-position`. Pure CSS port — no JS animation loop.
665
756
 
757
+ ## ngwr/shiny-text/testing
758
+ - import: `import { WrShinyTextHarness } from 'ngwr/shiny-text/testing'`
759
+ - exports: WrShinyTextHarness, WrShinyTextHarnessFilters, WrShinyTextSweepDirection
760
+
666
761
  ## ngwr/sidebar
667
762
  - import: `import { WrSidebar } from 'ngwr/sidebar'`
668
763
  - selector: `wr-sidebar`
@@ -691,12 +786,20 @@
691
786
  - exports: WrSparkline
692
787
  - Tiny inline trend line — no axes, no labels. Drop it next to a number to give context at a glance.
693
788
 
789
+ ## ngwr/sparkline/testing
790
+ - import: `import { WrSparklineHarness } from 'ngwr/sparkline/testing'`
791
+ - exports: WrSparklineHarness, WrSparklineHarnessFilters
792
+
694
793
  ## ngwr/speed-dial
695
794
  - import: `import { WrSpeedDial } from 'ngwr/speed-dial'`
696
795
  - selector: `wr-speed-dial`
697
796
  - exports: WrSpeedDial, WrSpeedDialAction, WrSpeedDialDirection
698
797
  - Floating action button that fans out a set of secondary actions on click.
699
798
 
799
+ ## ngwr/speed-dial/testing
800
+ - import: `import { WrSpeedDialActionHarness } from 'ngwr/speed-dial/testing'`
801
+ - exports: WrSpeedDialActionHarness, WrSpeedDialHarness, WrSpeedDialActionHarnessFilters, WrSpeedDialHarnessFilters
802
+
700
803
  ## ngwr/spinner
701
804
  - import: `import { WrSpinner } from 'ngwr/spinner'`
702
805
  - selector: `wr-spinner`
@@ -709,24 +812,40 @@
709
812
  - exports: WrSplashCursor, WrFluidConfig
710
813
  - WebGL fluid simulation that splashes colourful dye wherever the pointer moves or clicks. Fullscreen click-through overlay by default, or contained in any positioned box — where the dye collides with the walls. Renders nothing under prefers-reduced-motion or without WebGL.
711
814
 
815
+ ## ngwr/splash-cursor/testing
816
+ - import: `import { WrSplashCursorHarness } from 'ngwr/splash-cursor/testing'`
817
+ - exports: WrSplashCursorHarness, WrSplashCursorHarnessFilters
818
+
712
819
  ## ngwr/split-text
713
820
  - import: `import { WrSplitText } from 'ngwr/split-text'`
714
821
  - selector: `wr-split-text`
715
822
  - exports: WrSplitText, WrSplitTextMotion, WrSplitTextUnit
716
823
  - Reveals text by splitting it into chars or words and staggering each piece in from a `from` state to a `to` state when the element scrolls into view. GSAP-free port — uses `IntersectionObserver` + Web Animations API.
717
824
 
825
+ ## ngwr/split-text/testing
826
+ - import: `import { WrSplitTextHarness } from 'ngwr/split-text/testing'`
827
+ - exports: WrSplitTextHarness, WrSplitTextHarnessAlign, WrSplitTextHarnessFilters
828
+
718
829
  ## ngwr/splitter
719
830
  - import: `import { WrSplitter } from 'ngwr/splitter'`
720
831
  - selector: `wr-splitter`
721
832
  - exports: WrSplitter
722
833
  - Resizable two-pane split. Drag the divider or focus it and use arrows. Two-way `[(position)]` (0–100).
723
834
 
835
+ ## ngwr/splitter/testing
836
+ - import: `import { WrSplitterHarness } from 'ngwr/splitter/testing'`
837
+ - exports: WrSplitterHarness, WrSplitterHarnessFilters, WrSplitterPaneSizes
838
+
724
839
  ## ngwr/spotlight-card
725
840
  - import: `import { WrSpotlightCard } from 'ngwr/spotlight-card'`
726
841
  - selector: `wr-spotlight-card`, `[wrSpotlight]`
727
842
  - exports: WrSpotlightCard, WrSpotlight
728
843
  - Cursor-tracked spotlight card. A soft radial highlight follows the pointer, fading in on hover.
729
844
 
845
+ ## ngwr/spotlight-card/testing
846
+ - import: `import { WrSpotlightCardHarness } from 'ngwr/spotlight-card/testing'`
847
+ - exports: WrSpotlightCardHarness, WrSpotlightHarness, WrSpotlightCardHarnessFilters, WrSpotlightHarnessFilters
848
+
730
849
  ## ngwr/squircle
731
850
  - import: `import { WrSquircle } from 'ngwr/squircle'`
732
851
  - selector: `wr-squircle`, `[wrSquircle]`
@@ -739,6 +858,10 @@
739
858
  - exports: WrStarBorder, WrStarBorderMode, WrStarBorderRays
740
859
  - Radial comet rays sweeping along the edges of a rounded container. Run them forever or only on hover, mirrored on both edges or as a single ray.
741
860
 
861
+ ## ngwr/star-border/testing
862
+ - import: `import { WrStarBorderHarness } from 'ngwr/star-border/testing'`
863
+ - exports: WrStarBorderHarness, WrStarBorderHarnessFilters
864
+
742
865
  ## ngwr/statistic
743
866
  - import: `import { WrStatistic } from 'ngwr/statistic'`
744
867
  - selector: `wr-statistic-countdown`, `wr-statistic-group`, `wr-statistic`
@@ -773,7 +896,7 @@
773
896
  ## ngwr/table
774
897
  - import: `import { WrTable } from 'ngwr/table'`
775
898
  - selector: `[wrTableCell]`, `ng-template[wrTableExpand]`, `wr-table-filter`, `ng-template[wrTableGroupHeader]`, `wr-table-sort`, `wr-table`
776
- - exports: WrTable, WrTableCell, WrTableExpand, WrTableGroupHeader, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableCsvOptions, WrTableExpandContext, WrTableFilterChange, WrTableFilterItem, WrTableGroupContext, WrTableSortState, WrTableSortDirection, WrTableSummary
899
+ - exports: WrTable, WrTableCell, WrTableExpand, WrTableGroupHeader, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableCsvOptions, WrTableExpandContext, WrTableFilterChange, WrTableFilterItem, WrTableGroupContext, WrTableRow, WrTableSortState, WrTableSortDirection, WrTableSummary
777
900
  - Data table with sortable / filterable headers and custom cell templates.
778
901
 
779
902
  ## ngwr/table/testing
@@ -802,7 +925,7 @@
802
925
 
803
926
  ## ngwr/theme
804
927
  - import: `import { WrTheme } from 'ngwr/theme'`
805
- - exports: WR_COLORS, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, WrResolvedTheme, WrThemeMode, WrThemeConfig
928
+ - exports: WR_COLORS, wrContrastFor, wrIntentTokens, wrThemeTokens, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, WrResolvedTheme, WrThemeMode, WrThemeConfig
806
929
  - Light / dark theme manager. Writes `[data-theme]` on `<html>`, persists the chosen mode to localStorage. `auto` mode follows `WrPlatform.prefersDark`.
807
930
 
808
931
  ## ngwr/tilt-card
@@ -811,6 +934,10 @@
811
934
  - exports: WrTiltCard, WrTilt
812
935
  - Cursor-tracked 3D tilt. Use `<wr-tilt-card>` for a ready-made card host, or `[wrTilt]` to add the tilt behaviour to any element.
813
936
 
937
+ ## ngwr/tilt-card/testing
938
+ - import: `import { WrTiltHarness } from 'ngwr/tilt-card/testing'`
939
+ - exports: WrTiltHarness, WrTiltHarnessFilters, WrTiltRotation
940
+
814
941
  ## ngwr/timeline
815
942
  - import: `import { WrTimeline } from 'ngwr/timeline'`
816
943
  - selector: `wr-timeline-item`, `wr-timeline`
@@ -819,7 +946,6 @@
819
946
 
820
947
  ## ngwr/toast
821
948
  - import: `import { WrToast } from 'ngwr/toast'`
822
- - selector: `wr-toast-host`, `wr-toast`
823
949
  - exports: WrToast, WrToastRef, provideWrToastConfig, DEFAULT_TOAST_CONFIG, WR_TOAST_CONFIG, WrToastConfig, WrToastMode, WrToastOptions, WrToastPosition, WrToastType
824
950
  - Stack of dismissible notifications anchored to a viewport corner. Service-driven; rendered in a single shared CDK overlay.
825
951
 
@@ -839,6 +965,10 @@
839
965
  - exports: WrTour, WrTourPopup, WrTourPlacement, WrTourStep
840
966
  - Guided product tour — a spotlight over one element at a time plus a popup explaining it.
841
967
 
968
+ ## ngwr/tour/testing
969
+ - import: `import { WrTourHarness } from 'ngwr/tour/testing'`
970
+ - exports: WrTourHarness, WrTourHarnessFilters, WrTourProgress
971
+
842
972
  ## ngwr/transfer
843
973
  - import: `import { WrTransfer } from 'ngwr/transfer'`
844
974
  - selector: `wr-transfer`
@@ -865,6 +995,10 @@
865
995
  - exports: WrTypewriter, WrTypewriterVariableSpeed
866
996
  - Classic typewriter — types out a string char-by-char, optionally deletes it, then types the next string. Cycles through `[texts]` (or a single string) with a blinking cursor. Pure JS (no GSAP), pure CSS cursor blink.
867
997
 
998
+ ## ngwr/typewriter/testing
999
+ - import: `import { WrTypewriterHarness } from 'ngwr/typewriter/testing'`
1000
+ - exports: WrTypewriterHarness, WrTypewriterHarnessFilters
1001
+
868
1002
  ## ngwr/typography
869
1003
  - import: `import { WrTypography } from 'ngwr/typography'`
870
1004
  - selector: `[wrTypography]`
@@ -895,8 +1029,16 @@
895
1029
  - exports: WrWaves
896
1030
  - Wave-field background — a grid of lines drifting on perlin noise, nudged by the pointer. Line colour follows the theme out of the box. Use behind hero copy or section content.
897
1031
 
1032
+ ## ngwr/waves/testing
1033
+ - import: `import { WrWavesHarness } from 'ngwr/waves/testing'`
1034
+ - exports: WrWavesHarness, WrWavesHarnessFilters
1035
+
898
1036
  ## ngwr/window
899
1037
  - import: `import { WrWindowManager } from 'ngwr/window'`
900
- - selector: `wr-window-container`, `wr-window-taskbar`, `wr-window`
901
- - exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
1038
+ - selector: `wr-window-taskbar`
1039
+ - exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowLayoutSnapshot, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
902
1040
  - Free-floating OS-style window opened programmatically via `WrWindowManager`. Drag the header to move, drag any edge or corner to resize, minimize to the taskbar. There is no declarative `<wr-window>` component — the manager is the only entry point so the API stays single-track. Need a backdrop + focus trap? That's `WrDialog`, not this.
1041
+
1042
+ ## ngwr/window/testing
1043
+ - import: `import { WrWindowHarness } from 'ngwr/window/testing'`
1044
+ - exports: WrWindowHarness, WrWindowTaskbarHarness, WrWindowBox, WrWindowHarnessFilters, WrWindowTaskbarHarnessFilters
package/llms.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # ngwr
2
2
 
3
3
  > Angular UI library — standalone, signals-first, zoneless, fully tree-shakable.
4
- > 166 secondary entry points, 181 component and directive classes, built on
4
+ > 202 secondary entry points, 187 component and directive classes, built on
5
5
  > `@angular/cdk` primitives. The only runtime dependency is `tslib`. Docs and
6
6
  > live demos: https://ngwr.dev — source: https://github.com/thekhegay/ngwr
7
7
 
@@ -56,8 +56,8 @@ Add from their entry points as needed:
56
56
  `color` key — a bound `[color]="null"` means "no intent", which a default cannot
57
57
  express without inventing a sentinel.
58
58
  - `provideWrI18n(...)` + `provideWrI18nStaticLoader(...)` — localization.
59
- - `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date-adapter-fns`
60
- or `ngwr/date-adapter-luxon`).
59
+ - `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date/adapters/fns`
60
+ or `ngwr/date/adapters/luxon`).
61
61
 
62
62
  Injected rather than provided: `WrTour` (`ngwr/tour`) runs a guided onboarding
63
63
  tour — `tour.start([{ target: '[data-tour="save"]', content: '…' }])` spotlights
@@ -75,6 +75,21 @@ one element at a time; a step whose target is missing is skipped, not floated.
75
75
  - `ng g ngwr:page <form|table|dashboard>` — starter page wired with ngwr.
76
76
  - `ng update ngwr` — runs upgrade migrations.
77
77
 
78
+ ## Upgrading to v12
79
+
80
+ Two breaking changes, and only one is codemoddable.
81
+
82
+ - **Date entry points nest under `ngwr/date`.** `ngwr/date-adapter` →
83
+ `ngwr/date`, `ngwr/date-adapter-fns` → `ngwr/date/adapters/fns`,
84
+ `ngwr/date-adapter-luxon` → `ngwr/date/adapters/luxon`. Import paths only —
85
+ every symbol keeps its name. `ng update ngwr@12` rewrites them.
86
+ - **`readI18nText()` returns `Signal<string>`.** Add `()` at every read. No
87
+ codemod: adding the call means knowing which identifiers hold the result, and
88
+ the type error already names every site. `useI18nText`, the `wrT` pipe and the
89
+ `[wrT]` directive are unchanged.
90
+
91
+ Full guide, with diffs: https://ngwr.dev/start/migration
92
+
78
93
  ## Use ngwr — don't hand-roll
79
94
 
80
95
  The catalog is large: prefer an ngwr component, util, pipe, or validator over raw
@@ -140,16 +155,21 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
140
155
  `wr-tree` and `wr-select` (search mode), alongside the standalone
141
156
  `wr-virtual-scroll` wrapper.
142
157
  - **Testing** — CDK component harnesses ship beside the components they drive, at
143
- `ngwr/<name>/testing`. 34 entry points so far, 61 harness classes, covering the
158
+ `ngwr/<name>/testing`. 70 entry points so far, 104 harness classes, covering the
144
159
  form controls, the overlays, both data views, the navigation / disclosure set
145
160
  (`tabs`, `stepper`, `carousel`, `pagination`, `segmented`, `collapse`,
146
161
  `transfer`) and `markdown`: the form controls
147
162
  (`button`, `input`, `textarea`, `checkbox`, `switch`, `radio`, `select`,
148
- `input-number`, `input-otp`, `slider`, `rating`, `file-upload`, `form` for
149
- `<wr-form-field>`), the overlays (`date-picker`, `dropdown`, `popover`, `dialog`,
150
- `drawer`, `toast`, `context-menu`, `popconfirm`, `command-palette`, `cascader`,
151
- `mention`) and the data views (`table`, `tree`). `color-picker` and
152
- `action-sheet` are the two that have none yet.
163
+ `input-number`, `input-otp`, `slider`, `rating`, `file-upload`, `color-picker`,
164
+ `knob`, `form` for `<wr-form-field>`), the overlays (`date-picker`, `dropdown`,
165
+ `popover`, `dialog`, `drawer`, `action-sheet`, `toast`, `context-menu`, `popconfirm`,
166
+ `command-palette`, `cascader`, `mention`), the data views (`table`, `tree`),
167
+ `splitter`, `speed-dial`, `lightbox`, `tour`, `calendar`, `event-calendar`,
168
+ `window`, `image-cropper`, every chart and eighteen of the twenty-one animations —
169
+ every control, every overlay and every chart has one. `aurora`, `click-spark`,
170
+ `confetti` and `virtual-scroll` deliberately have none: what they do is a canvas or
171
+ a measured viewport, so every honest method would read the same for a working
172
+ component and a broken one.
153
173
  Load them with `TestbedHarnessEnvironment` and narrow with
154
174
  `WrButtonHarness.with({ text: 'Save' })` instead of querying ngwr's markup.
155
175
  Dialog, toast and a service-opened drawer render outside the fixture — load
@@ -192,7 +212,22 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
192
212
  listed here rather than embedding a copy of them. Client config for Claude
193
213
  Code / Claude Desktop / Cursor, and a worked example of each tool:
194
214
  https://ngwr.dev/guides/mcp
215
+ - **Agent skill — the rules, not the catalog.** `skills/ngwr/SKILL.md` in the
216
+ installed package (also at https://ngwr.dev/skills/ngwr/SKILL.md) is about a
217
+ page of the things this library does that a reasonable guess gets wrong: the
218
+ button's selector is `wr-btn`, a checkbox's group identity is `checkboxValue`,
219
+ there is no `ControlValueAccessor`, imports come from the entry point rather
220
+ than a barrel. `references/catalog.md` and `references/setup.md` sit beside it
221
+ for the long tail. Generated from the same pass as `llms-full.txt`:
222
+ https://ngwr.dev/guides/agent-skill
223
+ - **Registry — an open format for shareable theme presets and blocks.** One
224
+ installable unit per JSON file, hosted anywhere; the contract is
225
+ https://ngwr.dev/registry/schema.json and four worked examples sit beside it
226
+ at `/registry/items/` — three theme presets and one block. `cssVars` keys are
227
+ `--wr-*` tokens, `entryPoints` names `ngwr/*` subpaths, and a `files[].target`
228
+ is always relative:
229
+ https://ngwr.dev/guides/registry
195
230
  - All site URLs (for crawlers): https://ngwr.dev/sitemap.xml
196
231
  - Source, README, per-component `.d.ts` types: https://github.com/thekhegay/ngwr
197
232
  (installed at `node_modules/ngwr/types/ngwr-<name>.d.ts`; the package also
198
- ships `README.md`, `llms.txt`, and `llms-full.txt`)
233
+ ships `README.md`, `llms.txt`, `llms-full.txt` and `skills/ngwr/`)
@@ -77,7 +77,7 @@
77
77
  &__code-inline {
78
78
  padding: 0.15em 0.35em;
79
79
  border-radius: var(--wr-border-radius-sm);
80
- background: rgb(var(--wr-color-light-rgb) / 25%);
80
+ background: var(--wr-color-fill);
81
81
  // `-ink`, not the bare intent: code on a tint is text, and the bare colour
82
82
  // fails AA there. The share in `$ink-mix` is calibrated against this tint.
83
83
  color: var(--wr-color-dark-ink);
@@ -95,7 +95,7 @@
95
95
  padding: 0.75rem;
96
96
  overflow-x: auto;
97
97
  border-radius: var(--wr-border-radius-base);
98
- background: rgb(var(--wr-color-light-rgb) / 25%);
98
+ background: var(--wr-color-fill);
99
99
  tab-size: 2;
100
100
  }
101
101
 
@@ -257,7 +257,7 @@
257
257
  }
258
258
 
259
259
  &__th {
260
- background: rgb(var(--wr-color-light-rgb) / 25%);
260
+ background: var(--wr-color-fill);
261
261
  font-weight: var(--wr-font-weight-semibold);
262
262
  }
263
263
 
package/mcp/api.js CHANGED
@@ -7,10 +7,12 @@
7
7
  /**
8
8
  * Angular's signal wrappers, behind whichever namespace alias ng-packagr used.
9
9
  *
10
- * BOTH aliases, which is not decoration: of the 167 shipped declaration files, 99
11
- * import Angular as `_angular_core` and 25 as `i0`. Matching only the first hid
12
- * every binding in those 25 files — including `WrIcon`, whose single required
13
- * input is the entire component.
10
+ * BOTH aliases, which is not decoration: ng-packagr writes `_angular_core` for
11
+ * most of the shipped declarations and `i0` for a couple of dozen of them, and
12
+ * which file gets which moves with every entry point added — so the rule is here
13
+ * and the census deliberately is not. Matching the first alias alone hid every
14
+ * binding in the `i0` files, `WrIcon` among them, whose single required input is
15
+ * the entire component.
14
16
  */
15
17
  const SIGNAL_WRAPPER = /^(?:[A-Za-z_$][\w$]*\.)?(InputSignal|InputSignalWithTransform|ModelSignal|OutputEmitterRef)</;
16
18
  /** Modifiers that may precede a member name in a `.d.ts`. */
package/mcp/catalog.js CHANGED
@@ -11,7 +11,7 @@ import { fileURLToPath } from 'node:url';
11
11
  * The catalog, read from the files the package already ships.
12
12
  *
13
13
  * **No second copy of anything, and that is the design constraint this whole
14
- * server was built under.** `llms-full.txt` (51 KB, 166 entry points) and
14
+ * server was built under.** `llms-full.txt` (~57 KB, 202 entry points) and
15
15
  * `schematics/use/symbol-map.json` (215 symbols) are already in the tarball for
16
16
  * other reasons, and the `.d.ts` bundle carries every signature. A server that
17
17
  * embedded its own index would be a fourth copy to keep in step with the library,
@@ -19,7 +19,7 @@ import { fileURLToPath } from 'node:url';
19
19
  *
20
20
  * What it adds on top is the part none of those files have: a way to ASK. An
21
21
  * agent that does not already know an entry point's name cannot use a `.d.ts`,
22
- * and reading 51 KB of catalog to answer "what renders markdown" is the cost this
22
+ * and reading ~57 KB of catalog to answer "what renders markdown" is the cost this
23
23
  * exists to remove.
24
24
  */
25
25
  class Catalog {
@@ -51,10 +51,15 @@ class Catalog {
51
51
  /**
52
52
  * Does this entry point ship a stylesheet?
53
53
  *
54
- * Read from the package's own `exports` map rather than assumed: 58 of the 166
54
+ * Read from the package's own `exports` map rather than assumed: 94 of the 202
55
55
  * entry points ship no `styles/_index.scss` — the testing harnesses, the
56
56
  * services, the adapters — and telling a consumer to `@use` one of those breaks
57
57
  * their Sass build.
58
+ *
59
+ * Count them with `hasStyles()` rather than by tallying `sass` conditions in the
60
+ * `exports` map: six of those keys are not catalog entry points at all (the root
61
+ * plus `animations`, `breakpoints`, `grid`, `reset`, `typography-utilities`), so
62
+ * that arithmetic comes out six short.
58
63
  */
59
64
  hasStyles(path) {
60
65
  this.exports ??= (() => {
@@ -94,6 +99,38 @@ class Catalog {
94
99
  const file = join('types', `${path.replace(/\//g, '-')}.d.ts`);
95
100
  return this.read(file);
96
101
  }
102
+ /**
103
+ * Whether `symbol` is something Angular accepts in `imports: []`.
104
+ *
105
+ * Read from the SHIPPED declaration file rather than from a table, because the
106
+ * compiler already wrote the answer there: a component, directive or pipe gets
107
+ * a `static ɵcmp` / `ɵdir` / `ɵpipe` whose first type argument is the class. A
108
+ * service gets `ɵprov` instead. So this needs no second copy of anything, and
109
+ * cannot drift — which matters, because the alternative was a hand-kept list
110
+ * and `ng g ngwr:use` now REFUSES a non-declarable: recommending the command
111
+ * for `WrDialog` would hand an agent a line that errors.
112
+ *
113
+ * `null` when the types are not there to read, so a caller can tell "not
114
+ * declarable" from "cannot say".
115
+ */
116
+ declarable(symbol, path) {
117
+ const source = this.types(path);
118
+ if (!source)
119
+ return null;
120
+ // Ask for the declarable markers FIRST and separately. A single alternation
121
+ // over all five answers with whichever appears earliest in the file, and
122
+ // `ɵfac` is always emitted above `ɵcmp` — so the combined form calls every
123
+ // component a non-declarable, while a fixture with no markers at all hides
124
+ // it. Two passes, no ordering assumption.
125
+ const declarable = new RegExp(`static ɵ(?:cmp|dir|pipe): [^;]*<${symbol}[,>]`);
126
+ if (declarable.test(source))
127
+ return true;
128
+ // Only claim "no" for a symbol this file actually declares; a `.d.ts` that
129
+ // merely mentions the name is not evidence, which is the difference between
130
+ // "not declarable" and "cannot say".
131
+ const declared = new RegExp(`static ɵ(?:prov|fac): [^;]*<${symbol}[,>]`);
132
+ return declared.test(source) ? false : null;
133
+ }
97
134
  read(relative) {
98
135
  const file = join(this.root, relative);
99
136
  return existsSync(file) ? readFileSync(file, 'utf8') : null;