ngwr 10.2.1 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +39 -19
  2. package/action-sheet/styles/_index.scss +4 -1
  3. package/anchor/styles/_index.scss +6 -5
  4. package/back-top/styles/_index.scss +6 -1
  5. package/blur-text/styles/_index.scss +13 -0
  6. package/button/styles/_index.scss +11 -6
  7. package/calendar/styles/_index.scss +11 -2
  8. package/carousel/styles/_index.scss +13 -2
  9. package/cascader/styles/_index.scss +5 -3
  10. package/circular-text/styles/_index.scss +2 -0
  11. package/collapse/styles/_index.scss +1 -1
  12. package/color-picker/styles/_index.scss +6 -1
  13. package/command-palette/styles/_index.scss +2 -1
  14. package/compare/styles/_index.scss +1 -2
  15. package/context-menu/styles/_index.scss +8 -2
  16. package/descriptions/styles/_index.scss +2 -2
  17. package/dialog/styles/_index.scss +7 -0
  18. package/drawer/styles/_index.scss +20 -1
  19. package/dropdown/styles/_index.scss +19 -5
  20. package/empty/styles/_index.scss +10 -0
  21. package/falling-text/styles/_index.scss +2 -1
  22. package/fesm2022/ngwr-action-sheet.mjs +13 -3
  23. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  24. package/fesm2022/ngwr-affix.mjs +40 -13
  25. package/fesm2022/ngwr-affix.mjs.map +1 -1
  26. package/fesm2022/ngwr-anchor.mjs +18 -6
  27. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  28. package/fesm2022/ngwr-aurora.mjs +2 -2
  29. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  30. package/fesm2022/ngwr-avatar.mjs +31 -7
  31. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  32. package/fesm2022/ngwr-back-top.mjs +6 -2
  33. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  34. package/fesm2022/ngwr-badge.mjs +1 -1
  35. package/fesm2022/ngwr-badge.mjs.map +1 -1
  36. package/fesm2022/ngwr-bar-chart.mjs +30 -9
  37. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  38. package/fesm2022/ngwr-blur-text.mjs +2 -2
  39. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  40. package/fesm2022/ngwr-border-glow.mjs +2 -2
  41. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  42. package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
  43. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  44. package/fesm2022/ngwr-burger.mjs +9 -4
  45. package/fesm2022/ngwr-burger.mjs.map +1 -1
  46. package/fesm2022/ngwr-button-testing.mjs +96 -0
  47. package/fesm2022/ngwr-button-testing.mjs.map +1 -0
  48. package/fesm2022/ngwr-button.mjs +31 -14
  49. package/fesm2022/ngwr-button.mjs.map +1 -1
  50. package/fesm2022/ngwr-calendar-heatmap.mjs +40 -8
  51. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  52. package/fesm2022/ngwr-calendar.mjs +20 -1
  53. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  54. package/fesm2022/ngwr-card.mjs +2 -2
  55. package/fesm2022/ngwr-card.mjs.map +1 -1
  56. package/fesm2022/ngwr-carousel-testing.mjs +377 -0
  57. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
  58. package/fesm2022/ngwr-carousel.mjs +67 -13
  59. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  60. package/fesm2022/ngwr-cascader-testing.mjs +534 -0
  61. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -0
  62. package/fesm2022/ngwr-cascader.mjs +2 -2
  63. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  64. package/fesm2022/ngwr-checkbox-testing.mjs +90 -0
  65. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -0
  66. package/fesm2022/ngwr-checkbox.mjs +9 -3
  67. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  68. package/fesm2022/ngwr-circular-text.mjs +2 -2
  69. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  70. package/fesm2022/ngwr-click-spark.mjs +2 -2
  71. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  72. package/fesm2022/ngwr-collapse-testing.mjs +368 -0
  73. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
  74. package/fesm2022/ngwr-color-picker.mjs +134 -14
  75. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  76. package/fesm2022/ngwr-command-palette-testing.mjs +589 -0
  77. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -0
  78. package/fesm2022/ngwr-command-palette.mjs +58 -8
  79. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  80. package/fesm2022/ngwr-compare.mjs +103 -13
  81. package/fesm2022/ngwr-compare.mjs.map +1 -1
  82. package/fesm2022/ngwr-config.mjs +106 -0
  83. package/fesm2022/ngwr-config.mjs.map +1 -0
  84. package/fesm2022/ngwr-context-menu-testing.mjs +631 -0
  85. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -0
  86. package/fesm2022/ngwr-context-menu.mjs +94 -8
  87. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  88. package/fesm2022/ngwr-cookie.mjs +5 -1
  89. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  90. package/fesm2022/ngwr-counter.mjs +11 -3
  91. package/fesm2022/ngwr-counter.mjs.map +1 -1
  92. package/fesm2022/ngwr-date-adapter-luxon.mjs +52 -4
  93. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
  94. package/fesm2022/ngwr-date-adapter.mjs +54 -8
  95. package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
  96. package/fesm2022/ngwr-date-picker-testing.mjs +766 -0
  97. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -0
  98. package/fesm2022/ngwr-date-picker.mjs +73 -3
  99. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  100. package/fesm2022/ngwr-decrypt-text.mjs +27 -9
  101. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  102. package/fesm2022/ngwr-dialog-testing.mjs +89 -0
  103. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
  104. package/fesm2022/ngwr-directives.mjs +36 -12
  105. package/fesm2022/ngwr-directives.mjs.map +1 -1
  106. package/fesm2022/ngwr-donut-chart.mjs +22 -5
  107. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  108. package/fesm2022/ngwr-drag-drop.mjs +2 -2
  109. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  110. package/fesm2022/ngwr-drawer-testing.mjs +250 -0
  111. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -0
  112. package/fesm2022/ngwr-dropdown-testing.mjs +291 -0
  113. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
  114. package/fesm2022/ngwr-dropdown.mjs +10 -2
  115. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  116. package/fesm2022/ngwr-empty.mjs +24 -7
  117. package/fesm2022/ngwr-empty.mjs.map +1 -1
  118. package/fesm2022/ngwr-event-calendar.mjs +57 -10
  119. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  120. package/fesm2022/ngwr-falling-text.mjs +2 -2
  121. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  122. package/fesm2022/ngwr-file-upload-testing.mjs +332 -0
  123. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -0
  124. package/fesm2022/ngwr-form-testing.mjs +451 -0
  125. package/fesm2022/ngwr-form-testing.mjs.map +1 -0
  126. package/fesm2022/ngwr-form.mjs +19 -3
  127. package/fesm2022/ngwr-form.mjs.map +1 -1
  128. package/fesm2022/ngwr-fuzzy-text.mjs +9 -2
  129. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  130. package/fesm2022/ngwr-gauge.mjs +19 -5
  131. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  132. package/fesm2022/ngwr-glitch-text.mjs +2 -2
  133. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  134. package/fesm2022/ngwr-gradient-text.mjs +2 -2
  135. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  136. package/fesm2022/ngwr-i18n-en.mjs +50 -0
  137. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  138. package/fesm2022/ngwr-i18n-ru.mjs +48 -0
  139. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  140. package/fesm2022/ngwr-image-cropper.mjs +23 -0
  141. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  142. package/fesm2022/ngwr-input-number-testing.mjs +306 -0
  143. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -0
  144. package/fesm2022/ngwr-input-number.mjs +35 -3
  145. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  146. package/fesm2022/ngwr-input-otp-testing.mjs +419 -0
  147. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -0
  148. package/fesm2022/ngwr-input-otp.mjs +36 -5
  149. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  150. package/fesm2022/ngwr-input-testing.mjs +102 -0
  151. package/fesm2022/ngwr-input-testing.mjs.map +1 -0
  152. package/fesm2022/ngwr-input.mjs +47 -10
  153. package/fesm2022/ngwr-input.mjs.map +1 -1
  154. package/fesm2022/ngwr-knob.mjs +44 -8
  155. package/fesm2022/ngwr-knob.mjs.map +1 -1
  156. package/fesm2022/ngwr-layout.mjs +21 -5
  157. package/fesm2022/ngwr-layout.mjs.map +1 -1
  158. package/fesm2022/ngwr-lightbox.mjs +33 -6
  159. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  160. package/fesm2022/ngwr-line-chart.mjs +17 -4
  161. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  162. package/fesm2022/ngwr-list.mjs +2 -2
  163. package/fesm2022/ngwr-list.mjs.map +1 -1
  164. package/fesm2022/ngwr-loading-bar.mjs +2 -2
  165. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  166. package/fesm2022/ngwr-markdown-testing.mjs +516 -0
  167. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -0
  168. package/fesm2022/ngwr-markdown.mjs +1492 -0
  169. package/fesm2022/ngwr-markdown.mjs.map +1 -0
  170. package/fesm2022/ngwr-marquee.mjs +17 -6
  171. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  172. package/fesm2022/ngwr-mention-testing.mjs +513 -0
  173. package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
  174. package/fesm2022/ngwr-mention.mjs +10 -1
  175. package/fesm2022/ngwr-mention.mjs.map +1 -1
  176. package/fesm2022/ngwr-meta.mjs +22 -7
  177. package/fesm2022/ngwr-meta.mjs.map +1 -1
  178. package/fesm2022/ngwr-meter-group.mjs +19 -5
  179. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  180. package/fesm2022/ngwr-overlay.mjs +41 -1
  181. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  182. package/fesm2022/ngwr-pagination-testing.mjs +389 -0
  183. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
  184. package/fesm2022/ngwr-pagination.mjs +14 -2
  185. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  186. package/fesm2022/ngwr-popconfirm-testing.mjs +309 -0
  187. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
  188. package/fesm2022/ngwr-popconfirm.mjs +95 -17
  189. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  190. package/fesm2022/ngwr-popover-testing.mjs +316 -0
  191. package/fesm2022/ngwr-popover-testing.mjs.map +1 -0
  192. package/fesm2022/ngwr-popover.mjs +21 -3
  193. package/fesm2022/ngwr-popover.mjs.map +1 -1
  194. package/fesm2022/ngwr-pull-to-refresh.mjs +17 -2
  195. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  196. package/fesm2022/ngwr-qr.mjs +13 -3
  197. package/fesm2022/ngwr-qr.mjs.map +1 -1
  198. package/fesm2022/ngwr-radio-testing.mjs +392 -0
  199. package/fesm2022/ngwr-radio-testing.mjs.map +1 -0
  200. package/fesm2022/ngwr-radio.mjs +10 -3
  201. package/fesm2022/ngwr-radio.mjs.map +1 -1
  202. package/fesm2022/ngwr-rating-testing.mjs +384 -0
  203. package/fesm2022/ngwr-rating-testing.mjs.map +1 -0
  204. package/fesm2022/ngwr-rating.mjs +37 -2
  205. package/fesm2022/ngwr-rating.mjs.map +1 -1
  206. package/fesm2022/ngwr-segmented-testing.mjs +512 -0
  207. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
  208. package/fesm2022/ngwr-select-testing.mjs +268 -0
  209. package/fesm2022/ngwr-select-testing.mjs.map +1 -0
  210. package/fesm2022/ngwr-select.mjs +87 -16
  211. package/fesm2022/ngwr-select.mjs.map +1 -1
  212. package/fesm2022/ngwr-shiny-text.mjs +2 -2
  213. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  214. package/fesm2022/ngwr-sidebar.mjs +65 -12
  215. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  216. package/fesm2022/ngwr-slider-testing.mjs +478 -0
  217. package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
  218. package/fesm2022/ngwr-slider.mjs +57 -13
  219. package/fesm2022/ngwr-slider.mjs.map +1 -1
  220. package/fesm2022/ngwr-sparkline.mjs +26 -6
  221. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  222. package/fesm2022/ngwr-speed-dial.mjs +37 -4
  223. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  224. package/fesm2022/ngwr-spinner.mjs +12 -3
  225. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  226. package/fesm2022/ngwr-splash-cursor.mjs +2 -2
  227. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  228. package/fesm2022/ngwr-split-text.mjs +2 -2
  229. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  230. package/fesm2022/ngwr-splitter.mjs +70 -9
  231. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  232. package/fesm2022/ngwr-spotlight-card.mjs +2 -2
  233. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  234. package/fesm2022/ngwr-star-border.mjs +2 -2
  235. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  236. package/fesm2022/ngwr-statistic.mjs +24 -7
  237. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  238. package/fesm2022/ngwr-stepper-testing.mjs +477 -0
  239. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -0
  240. package/fesm2022/ngwr-switch-testing.mjs +77 -0
  241. package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
  242. package/fesm2022/ngwr-switch.mjs +9 -3
  243. package/fesm2022/ngwr-switch.mjs.map +1 -1
  244. package/fesm2022/ngwr-table-testing.mjs +580 -0
  245. package/fesm2022/ngwr-table-testing.mjs.map +1 -0
  246. package/fesm2022/ngwr-table.mjs +87 -14
  247. package/fesm2022/ngwr-table.mjs.map +1 -1
  248. package/fesm2022/ngwr-tabs-testing.mjs +617 -0
  249. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -0
  250. package/fesm2022/ngwr-tabs.mjs +38 -6
  251. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  252. package/fesm2022/ngwr-textarea-testing.mjs +238 -0
  253. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -0
  254. package/fesm2022/ngwr-textarea.mjs +32 -4
  255. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  256. package/fesm2022/ngwr-tilt-card.mjs +2 -2
  257. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  258. package/fesm2022/ngwr-toast-testing.mjs +101 -0
  259. package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
  260. package/fesm2022/ngwr-toast.mjs +2 -2
  261. package/fesm2022/ngwr-toast.mjs.map +1 -1
  262. package/fesm2022/ngwr-tour.mjs +61 -9
  263. package/fesm2022/ngwr-tour.mjs.map +1 -1
  264. package/fesm2022/ngwr-transfer-testing.mjs +538 -0
  265. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -0
  266. package/fesm2022/ngwr-transfer.mjs +45 -14
  267. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  268. package/fesm2022/ngwr-tree-testing.mjs +734 -0
  269. package/fesm2022/ngwr-tree-testing.mjs.map +1 -0
  270. package/fesm2022/ngwr-tree.mjs +73 -7
  271. package/fesm2022/ngwr-tree.mjs.map +1 -1
  272. package/fesm2022/ngwr-typewriter.mjs +5 -3
  273. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  274. package/fesm2022/ngwr-version.mjs +1 -1
  275. package/fesm2022/ngwr-version.mjs.map +1 -1
  276. package/fesm2022/ngwr-virtual-scroll.mjs +31 -5
  277. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  278. package/fesm2022/ngwr-waves.mjs +3 -3
  279. package/fesm2022/ngwr-waves.mjs.map +1 -1
  280. package/fesm2022/ngwr-window.mjs +8 -0
  281. package/fesm2022/ngwr-window.mjs.map +1 -1
  282. package/file-upload/styles/_index.scss +7 -2
  283. package/gauge/styles/_index.scss +1 -1
  284. package/glitch-text/styles/_index.scss +4 -0
  285. package/i18n/en.json +48 -0
  286. package/i18n/ru.json +48 -0
  287. package/image-cropper/styles/_index.scss +13 -1
  288. package/input/styles/_index.scss +2 -2
  289. package/input-number/styles/_index.scss +7 -2
  290. package/knob/styles/_index.scss +8 -1
  291. package/layout/styles/_index.scss +3 -3
  292. package/lightbox/styles/_index.scss +10 -2
  293. package/line-chart/styles/_index.scss +6 -0
  294. package/llms-full.txt +151 -4
  295. package/llms.txt +57 -8
  296. package/loading-bar/styles/_index.scss +1 -2
  297. package/markdown/styles/_index.scss +296 -0
  298. package/marquee/styles/_index.scss +12 -0
  299. package/mcp/api.js +512 -0
  300. package/mcp/catalog.js +157 -0
  301. package/mcp/server.js +273 -0
  302. package/mcp/tools.js +366 -0
  303. package/meter-group/styles/_index.scss +1 -1
  304. package/package.json +186 -35
  305. package/pagination/styles/_index.scss +6 -6
  306. package/popover/styles/_index.scss +37 -5
  307. package/rating/styles/_index.scss +10 -0
  308. package/result/styles/_index.scss +3 -1
  309. package/schematics/use/symbol-map.json +2 -0
  310. package/segmented/styles/_index.scss +12 -1
  311. package/select/styles/_index.scss +32 -10
  312. package/sidebar/styles/_index.scss +30 -5
  313. package/slider/styles/_index.scss +15 -0
  314. package/speed-dial/styles/_index.scss +20 -0
  315. package/split-text/styles/_index.scss +13 -0
  316. package/star-border/styles/_index.scss +2 -0
  317. package/stepper/styles/_index.scss +19 -3
  318. package/styles/_grid.scss +4 -4
  319. package/styles.scss +1 -0
  320. package/switch/styles/_index.scss +5 -3
  321. package/table/styles/_index.scss +25 -12
  322. package/tabs/styles/_index.scss +11 -1
  323. package/textarea/styles/_index.scss +5 -0
  324. package/theme/styles/_colors.scss +44 -15
  325. package/theme/styles/_dark.scss +35 -15
  326. package/theme/styles/_mixins.scss +3 -0
  327. package/timeline/styles/_index.scss +2 -2
  328. package/toast/styles/_index.scss +17 -8
  329. package/toolbar/styles/_index.scss +3 -3
  330. package/tour/styles/_index.scss +7 -1
  331. package/tree/styles/_index.scss +9 -5
  332. package/types/ngwr-action-sheet.d.ts +9 -1
  333. package/types/ngwr-affix.d.ts +7 -1
  334. package/types/ngwr-anchor.d.ts +8 -1
  335. package/types/ngwr-avatar.d.ts +13 -3
  336. package/types/ngwr-bar-chart.d.ts +16 -0
  337. package/types/ngwr-burger.d.ts +6 -2
  338. package/types/ngwr-button-testing.d.ts +85 -0
  339. package/types/ngwr-button.d.ts +26 -10
  340. package/types/ngwr-calendar-heatmap.d.ts +16 -2
  341. package/types/ngwr-calendar.d.ts +10 -0
  342. package/types/ngwr-carousel-testing.d.ts +257 -0
  343. package/types/ngwr-carousel.d.ts +20 -4
  344. package/types/ngwr-cascader-testing.d.ts +392 -0
  345. package/types/ngwr-checkbox-testing.d.ts +77 -0
  346. package/types/ngwr-checkbox.d.ts +7 -2
  347. package/types/ngwr-collapse-testing.d.ts +290 -0
  348. package/types/ngwr-color-picker.d.ts +20 -11
  349. package/types/ngwr-command-palette-testing.d.ts +437 -0
  350. package/types/ngwr-command-palette.d.ts +25 -2
  351. package/types/ngwr-compare.d.ts +50 -2
  352. package/types/ngwr-config.d.ts +176 -0
  353. package/types/ngwr-context-menu-testing.d.ts +401 -0
  354. package/types/ngwr-context-menu.d.ts +65 -17
  355. package/types/ngwr-counter.d.ts +6 -1
  356. package/types/ngwr-date-adapter-luxon.d.ts +26 -0
  357. package/types/ngwr-date-picker-testing.d.ts +518 -0
  358. package/types/ngwr-date-picker.d.ts +4 -0
  359. package/types/ngwr-dialog-testing.d.ts +79 -0
  360. package/types/ngwr-directives.d.ts +10 -1
  361. package/types/ngwr-donut-chart.d.ts +8 -1
  362. package/types/ngwr-drawer-testing.d.ts +196 -0
  363. package/types/ngwr-dropdown-testing.d.ts +202 -0
  364. package/types/ngwr-dropdown.d.ts +7 -1
  365. package/types/ngwr-empty.d.ts +19 -4
  366. package/types/ngwr-event-calendar.d.ts +26 -1
  367. package/types/ngwr-file-upload-testing.d.ts +194 -0
  368. package/types/ngwr-form-testing.d.ts +379 -0
  369. package/types/ngwr-form.d.ts +17 -0
  370. package/types/ngwr-gauge.d.ts +13 -1
  371. package/types/ngwr-image-cropper.d.ts +10 -0
  372. package/types/ngwr-input-number-testing.d.ts +226 -0
  373. package/types/ngwr-input-number.d.ts +29 -1
  374. package/types/ngwr-input-otp-testing.d.ts +299 -0
  375. package/types/ngwr-input-otp.d.ts +23 -2
  376. package/types/ngwr-input-testing.d.ts +84 -0
  377. package/types/ngwr-input.d.ts +20 -6
  378. package/types/ngwr-knob.d.ts +18 -0
  379. package/types/ngwr-layout.d.ts +1 -0
  380. package/types/ngwr-lightbox.d.ts +17 -3
  381. package/types/ngwr-line-chart.d.ts +9 -2
  382. package/types/ngwr-markdown-testing.d.ts +462 -0
  383. package/types/ngwr-markdown.d.ts +534 -0
  384. package/types/ngwr-marquee.d.ts +12 -2
  385. package/types/ngwr-mention-testing.d.ts +359 -0
  386. package/types/ngwr-meta.d.ts +4 -2
  387. package/types/ngwr-meter-group.d.ts +11 -1
  388. package/types/ngwr-overlay.d.ts +33 -2
  389. package/types/ngwr-pagination-testing.d.ts +291 -0
  390. package/types/ngwr-pagination.d.ts +1 -0
  391. package/types/ngwr-popconfirm-testing.d.ts +235 -0
  392. package/types/ngwr-popconfirm.d.ts +31 -21
  393. package/types/ngwr-popover-testing.d.ts +221 -0
  394. package/types/ngwr-popover.d.ts +9 -0
  395. package/types/ngwr-pull-to-refresh.d.ts +7 -0
  396. package/types/ngwr-qr.d.ts +9 -1
  397. package/types/ngwr-radio-testing.d.ts +296 -0
  398. package/types/ngwr-radio.d.ts +8 -2
  399. package/types/ngwr-rating-testing.d.ts +291 -0
  400. package/types/ngwr-rating.d.ts +23 -0
  401. package/types/ngwr-segmented-testing.d.ts +401 -0
  402. package/types/ngwr-select-testing.d.ts +175 -0
  403. package/types/ngwr-select.d.ts +45 -4
  404. package/types/ngwr-sidebar.d.ts +17 -2
  405. package/types/ngwr-slider-testing.d.ts +329 -0
  406. package/types/ngwr-slider.d.ts +35 -1
  407. package/types/ngwr-sparkline.d.ts +12 -2
  408. package/types/ngwr-speed-dial.d.ts +17 -18
  409. package/types/ngwr-spinner.d.ts +8 -1
  410. package/types/ngwr-splitter.d.ts +24 -1
  411. package/types/ngwr-statistic.d.ts +12 -2
  412. package/types/ngwr-stepper-testing.d.ts +346 -0
  413. package/types/ngwr-switch-testing.d.ts +66 -0
  414. package/types/ngwr-switch.d.ts +7 -2
  415. package/types/ngwr-table-testing.d.ts +423 -0
  416. package/types/ngwr-table.d.ts +42 -0
  417. package/types/ngwr-tabs-testing.d.ts +470 -0
  418. package/types/ngwr-tabs.d.ts +9 -0
  419. package/types/ngwr-textarea-testing.d.ts +184 -0
  420. package/types/ngwr-textarea.d.ts +7 -2
  421. package/types/ngwr-toast-testing.d.ts +80 -0
  422. package/types/ngwr-tour.d.ts +27 -0
  423. package/types/ngwr-transfer-testing.d.ts +444 -0
  424. package/types/ngwr-transfer.d.ts +16 -1
  425. package/types/ngwr-tree-testing.d.ts +501 -0
  426. package/types/ngwr-tree.d.ts +33 -0
  427. package/types/ngwr-version.d.ts +1 -1
  428. package/types/ngwr-virtual-scroll.d.ts +13 -1
  429. package/typewriter/styles/_index.scss +1 -1
  430. package/typography/styles/_index.scss +1 -1
  431. package/window/styles/_index.scss +32 -9
package/llms-full.txt CHANGED
@@ -91,6 +91,10 @@
91
91
  - exports: WrButton, WrButtonGroup, WrButtonSize, WrButtonShape, WrButtonIconPosition
92
92
  - Trigger an action. Renders as <wr-btn>, button[wr-btn], or a[wr-btn].
93
93
 
94
+ ## ngwr/button/testing
95
+ - import: `import { WrButtonHarness } from 'ngwr/button/testing'`
96
+ - exports: WrButtonHarness, WrButtonHarnessFilters
97
+
94
98
  ## ngwr/calendar
95
99
  - import: `import { WrCalendar } from 'ngwr/calendar'`
96
100
  - selector: `wr-calendar`
@@ -113,7 +117,11 @@
113
117
  - import: `import { WrCarousel } from 'ngwr/carousel'`
114
118
  - selector: `wr-carousel-slide`, `wr-carousel`
115
119
  - exports: WrCarousel, WrCarouselSlide
116
- - Slide carousel with prev/next, dots, and optional autoplay. Pause on hover.
120
+ - 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
+
122
+ ## ngwr/carousel/testing
123
+ - import: `import { WrCarouselHarness } from 'ngwr/carousel/testing'`
124
+ - exports: WrCarouselHarness, WrCarouselHarnessFilters
117
125
 
118
126
  ## ngwr/cascader
119
127
  - import: `import { WrCascader } from 'ngwr/cascader'`
@@ -121,12 +129,20 @@
121
129
  - exports: WrCascader, WrCascaderOption, WrCascaderSize
122
130
  - Multi-level select. Drills through hierarchical categories one column at a time; picking a leaf commits the full path. A signal-forms native control — it implements `FormValueControl`, so `[formField]` binds straight to its `value` model (`readonly T[]`). `[(value)]` works standalone, and `[(ngModel)]` / reactive forms keep working through Angular's bridge.
123
131
 
132
+ ## ngwr/cascader/testing
133
+ - import: `import { WrCascaderColumnHarness } from 'ngwr/cascader/testing'`
134
+ - exports: WrCascaderColumnHarness, WrCascaderHarness, WrCascaderOptionHarness, WrCascaderColumnHarnessFilters, WrCascaderHarnessFilters, WrCascaderOptionHarnessFilters
135
+
124
136
  ## ngwr/checkbox
125
137
  - import: `import { WrCheckbox } from 'ngwr/checkbox'`
126
138
  - selector: `wr-checkbox-group`, `wr-checkbox`
127
139
  - exports: WrCheckbox, WrCheckboxSize, WrCheckboxGroup, WR_CHECKBOX_GROUP, WrCheckboxGroupContext
128
140
  - Two-state checkbox. Standalone (boolean) or inside <wr-checkbox-group> (array of values).
129
141
 
142
+ ## ngwr/checkbox/testing
143
+ - import: `import { WrCheckboxHarness } from 'ngwr/checkbox/testing'`
144
+ - exports: WrCheckboxHarness, WrCheckboxHarnessFilters
145
+
130
146
  ## ngwr/circular-text
131
147
  - import: `import { WrCircularText } from 'ngwr/circular-text'`
132
148
  - selector: `wr-circular-text`
@@ -150,6 +166,10 @@
150
166
  - exports: WrCollapse, WrCollapseGroup, WrAccordion, WR_COLLAPSE_GROUP, WrCollapseGroupContext
151
167
  - Expandable panel with a clickable header. Two-way binds `open`. Wrap in `<wr-collapse-group accordion>` for single-open behavior.
152
168
 
169
+ ## ngwr/collapse/testing
170
+ - import: `import { WrCollapseGroupHarness } from 'ngwr/collapse/testing'`
171
+ - exports: WrCollapseGroupHarness, WrCollapseHarness, WrCollapseGroupHarnessFilters, WrCollapseHarnessFilters
172
+
153
173
  ## ngwr/color-picker
154
174
  - import: `import { WrColorPicker } from 'ngwr/color-picker'`
155
175
  - selector: `[wrColorPickerTrigger]`, `wr-color-picker`
@@ -162,6 +182,10 @@
162
182
  - exports: WrCommandPalette, WrCommandItem, WrCommandGroup
163
183
  - ⌘K-style centred modal with a search input and filtered list of actions. Items group automatically, support icons, descriptions, and shortcut hints. Bind a global hotkey (default `mod+k`) or open it programmatically.
164
184
 
185
+ ## ngwr/command-palette/testing
186
+ - import: `import { WrCommandPaletteGroupHarness } from 'ngwr/command-palette/testing'`
187
+ - exports: WrCommandPaletteGroupHarness, WrCommandPaletteHarness, WrCommandPaletteItemHarness, WrCommandPaletteGroupHarnessFilters, WrCommandPaletteHarnessFilters, WrCommandPaletteItemHarnessFilters
188
+
165
189
  ## ngwr/compare
166
190
  - import: `import { WrCompare } from 'ngwr/compare'`
167
191
  - selector: `wr-compare`
@@ -173,12 +197,20 @@
173
197
  - exports: WrConfetti, WrConfettiOptions
174
198
  - Imperative confetti service. Inject `WrConfetti` and call `.fire()` on a celebration event.
175
199
 
200
+ ## ngwr/config
201
+ - import: `import { provideWrConfig } from 'ngwr/config'`
202
+ - exports: provideWrConfig, useConfigValue, WR_CONFIG, WrConfig, WrControlDefaults, WrControlSize
203
+
176
204
  ## ngwr/context-menu
177
205
  - import: `import { WrContextMenu } from 'ngwr/context-menu'`
178
206
  - selector: `wr-context-menu-divider`, `wr-context-menu-item`, `wr-context-menu`, `[wrContextMenu]`
179
207
  - exports: WrContextMenu, WrContextMenuPanel, WrContextMenuItem, WrContextMenuDivider
180
208
  - Attach `[wrContextMenu]` to any element to open a `<wr-context-menu>` at the pointer position on right-click. Native browser menu is suppressed on the host.
181
209
 
210
+ ## ngwr/context-menu/testing
211
+ - import: `import { WrContextMenuHarness } from 'ngwr/context-menu/testing'`
212
+ - exports: WrContextMenuHarness, WrContextMenuItemHarness, WrContextMenuHarnessFilters, WrContextMenuItemHarnessFilters
213
+
182
214
  ## ngwr/cookie
183
215
  - import: `import { WrCookie } from 'ngwr/cookie'`
184
216
  - exports: WrCookie, WrCookieOptions
@@ -208,6 +240,10 @@
208
240
  - exports: WrDatePicker, WrDateRangePicker, WrDateRange
209
241
  - Unified date / time / date-time picker. `<input>` + popover for every mode — overlay content swaps based on `[mode]`. Parses on every keystroke (silently — only emits when valid), reformats canonical on blur. Format driven by `WrDateAdapter`.
210
242
 
243
+ ## ngwr/date-picker/testing
244
+ - import: `import { WrDatePickerDayHarness } from 'ngwr/date-picker/testing'`
245
+ - exports: WrDatePickerDayHarness, WrDatePickerHarness, WrDateRangePickerHarness, WrDatePickerDayHarnessFilters, WrDatePickerHarnessFilters, WrDatePickerTimeFields, WrDateRangePickerHarnessFilters
246
+
211
247
  ## ngwr/decrypt-text
212
248
  - import: `import { WrDecryptText } from 'ngwr/decrypt-text'`
213
249
  - selector: `wr-decrypt-text`
@@ -218,7 +254,7 @@
218
254
  - import: `import { WrDensity } from 'ngwr/density'`
219
255
  - selector: `[wrDensity]`
220
256
  - exports: WrDensity, WrDensityDirective, provideWrDensity, WR_DENSITY_CONFIG, DEFAULT_WR_DENSITY_CONFIG, WrDensityValue, WrDensityConfig
221
- - Density scale — `compact` / `default` / `comfortable` / `touch` — applied as CSS-variable multipliers on per-component paddings. `touch` enlarges hit areas for finger input. Persisted via WrStorage and overrideable per-subtree with the `[wrDensity]` directive.
257
+ - Density scale — `sm` / `md` / `lg` / `touch` — applied as CSS-variable multipliers on per-component paddings. `md` is the default and resolves to `1` everywhere; `touch` enlarges hit areas for finger input. Persisted via WrStorage and overrideable per-subtree with the `[wrDensity]` directive.
222
258
 
223
259
  ## ngwr/descriptions
224
260
  - import: `import { WrDescriptions } from 'ngwr/descriptions'`
@@ -232,6 +268,10 @@
232
268
  - exports: WrDialog, WrDialogRef, WR_DIALOG_DATA, WR_DIALOG_REF, WrDialogOptions, WrDialogTitle, WrDialogContent, WrDialogFooter, WrDialogClose
233
269
  - Modal dialogs via a service that wraps @angular/cdk/dialog. Open any component as a dialog and read its close result as a Promise.
234
270
 
271
+ ## ngwr/dialog/testing
272
+ - import: `import { WrDialogHarness } from 'ngwr/dialog/testing'`
273
+ - exports: WrDialogHarness, WrDialogHarnessFilters
274
+
235
275
  ## ngwr/directives
236
276
  - import: `import { WrAutofocus } from 'ngwr/directives'`
237
277
  - selector: `[wrAutofocus]`, `textarea[wrAutosize]`, `[wrClickOutside]`, `[wrCopyToClipboard]`
@@ -261,12 +301,20 @@
261
301
  - exports: WrDrawer, WrDrawerManager, WrDrawerRef, WR_DRAWER_DATA, WR_DRAWER_REF, WrDrawerTitle, WrDrawerContent, WrDrawerFooter, WrDrawerClose, WrDrawerOptions, WrDrawerPosition
262
302
  - Side panel that slides in from any edge. Use the component when the markup lives in your template, or `WrDrawerManager` to open any component as a drawer and read its close result.
263
303
 
304
+ ## ngwr/drawer/testing
305
+ - import: `import { WrDrawerHarness } from 'ngwr/drawer/testing'`
306
+ - exports: WrDrawerHarness, WrDrawerHarnessFilters
307
+
264
308
  ## ngwr/dropdown
265
309
  - import: `import { WrDropdown } from 'ngwr/dropdown'`
266
310
  - selector: `wr-dropdown-item`, `wr-dropdown-menu`, `[wrDropdown]`
267
311
  - exports: WrDropdown, WrDropdownMenu, WrDropdownItem, WrDropdownPosition, WrDropdownTrigger
268
312
  - Attach a floating menu to any trigger via the wrDropdown directive. Built on CDK Overlay — handles outside clicks, Escape, and edge collisions.
269
313
 
314
+ ## ngwr/dropdown/testing
315
+ - import: `import { WrDropdownHarness } from 'ngwr/dropdown/testing'`
316
+ - exports: WrDropdownHarness, WrDropdownItemHarness, WrDropdownHarnessFilters, WrDropdownItemHarnessFilters
317
+
270
318
  ## ngwr/empty
271
319
  - import: `import { WrEmpty } from 'ngwr/empty'`
272
320
  - selector: `wr-empty`
@@ -291,12 +339,20 @@
291
339
  - exports: WrFileUpload, WrFileUploadRejection, WrFileUploadRejectionReason
292
340
  - Drag-and-drop zone with click-to-browse and an optional file list. Value type is `File | File[] | null`. Rejected files surface through the `(rejected)` output.
293
341
 
342
+ ## ngwr/file-upload/testing
343
+ - import: `import { WrFileUploadHarness } from 'ngwr/file-upload/testing'`
344
+ - exports: WrFileUploadHarness, WrFileUploadHarnessFilters
345
+
294
346
  ## ngwr/form
295
347
  - import: `import { WrFormItem } from 'ngwr/form'`
296
348
  - selector: `wr-form-error`, `wr-form-field`, `wr-form-item`
297
349
  - exports: WrFormItem, WrFormField, WrFormError, WR_FORM_FIELD, WrFormFieldContext, WR_FORM_ERRORS, WR_FORM_ERROR_FALLBACKS, provideWrFormErrors, WrFormErrorContext, WrFormErrorMessage, WrFormErrorMessages
298
350
  - Layout helpers: <wr-form-item> wraps a label + control + error message; <wr-form-error> renders inline error text.
299
351
 
352
+ ## ngwr/form/testing
353
+ - import: `import { WrFormFieldHarness } from 'ngwr/form/testing'`
354
+ - exports: WrFormFieldHarness, WrFormItemHarness, WrFormFieldError, WrFormFieldErrorSource, WrFormFieldHarnessFilters, WrFormItemHarnessFilters
355
+
300
356
  ## ngwr/fuzzy-text
301
357
  - import: `import { WrFuzzyText } from 'ngwr/fuzzy-text'`
302
358
  - selector: `wr-fuzzy-text`
@@ -373,12 +429,24 @@
373
429
  - exports: WrInputNumber
374
430
  - Numeric input with locale-aware formatting and ▲▼ stepper buttons. Value is `number | null`. Parses leniently while typing, re-formats with grouping + fixed decimals on blur.
375
431
 
432
+ ## ngwr/input-number/testing
433
+ - import: `import { WrInputNumberHarness } from 'ngwr/input-number/testing'`
434
+ - exports: WrInputNumberHarness, WrInputNumberHarnessFilters
435
+
376
436
  ## ngwr/input-otp
377
437
  - import: `import { WrInputOtp } from 'ngwr/input-otp'`
378
438
  - selector: `wr-input-otp`
379
439
  - exports: WrInputOtp, WrInputOtpMode, WrInputOtpSize
380
440
  - Fixed-length one-time-code input. One cell per character, auto-advances focus on typing, handles paste of a full code, optional masking like a password field.
381
441
 
442
+ ## ngwr/input-otp/testing
443
+ - import: `import { WrInputOtpBoxHarness } from 'ngwr/input-otp/testing'`
444
+ - exports: WrInputOtpBoxHarness, WrInputOtpHarness, WrInputOtpBoxHarnessFilters, WrInputOtpHarnessFilters
445
+
446
+ ## ngwr/input/testing
447
+ - import: `import { WrInputHarness } from 'ngwr/input/testing'`
448
+ - exports: WrInputHarness, WrInputHarnessFilters
449
+
382
450
  ## ngwr/keyboard
383
451
  - import: `import { WrKbd } from 'ngwr/keyboard'`
384
452
  - selector: `wr-kbd`
@@ -389,7 +457,7 @@
389
457
  - import: `import { WrKnob } from 'ngwr/knob'`
390
458
  - selector: `wr-knob`
391
459
  - exports: WrKnob
392
- - Radial dial input. CVA-backed `number | null`. Drag around the dial or use arrow keys (Shift = ×10).
460
+ - 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.
393
461
 
394
462
  ## ngwr/layout
395
463
  - import: `import { WrLayout } from 'ngwr/layout'`
@@ -421,6 +489,16 @@
421
489
  - exports: WrLoadingBar, WrLoadingState, WrLoadingBarComponent
422
490
  - Top-of-page progress bar driven by router navigations out of the box, plus a manual `start()` / `complete()` slot API for HTTP interceptors or any long-running task.
423
491
 
492
+ ## ngwr/markdown
493
+ - import: `import { WrMarkdown } from 'ngwr/markdown'`
494
+ - selector: `wr-markdown`
495
+ - exports: WrMarkdown, WrMarkdownHighlight, parseMarkdown, parseInlines, plainText, safeMarkdownUrl, provideWrMarkdownHighlighter, WR_MARKDOWN_HIGHLIGHTER, WrHighlightLine, WrHighlightSpan, WrMarkdownAlign, WrMarkdownBlock, WrMarkdownCell, WrMarkdownHighlighter, WrMarkdownInline, WrMarkdownListItem, WrMarkdownParseOptions
496
+ - Renders markdown as DOM, not as HTML. Built for streamed model output, and useful for any markdown an app does not write itself — comments, release notes, a README. Raw HTML in the source is escaped rather than rendered, and nothing in the pipeline is ever parsed as HTML.
497
+
498
+ ## ngwr/markdown/testing
499
+ - import: `import { WrMarkdownCodeBlockHarness } from 'ngwr/markdown/testing'`
500
+ - exports: WrMarkdownCodeBlockHarness, WrMarkdownHarness, WrMarkdownCodeBlockHarnessFilters, WrMarkdownHarnessAlign, WrMarkdownHarnessFilters, WrMarkdownHarnessHeading, WrMarkdownHarnessImage, WrMarkdownHarnessLink, WrMarkdownHarnessTable, WrMarkdownHarnessTaskItem
501
+
424
502
  ## ngwr/marquee
425
503
  - import: `import { WrMarquee } from 'ngwr/marquee'`
426
504
  - selector: `wr-marquee`
@@ -438,6 +516,10 @@
438
516
  - exports: WrMention, WrMentionPanel, WrMentionItem, WrMentionCommit
439
517
  - `@`-style mention picker for `<textarea>` and `<input>`. Detects trigger characters at word boundaries, opens an overlay at the caret, commits the selection back into the field.
440
518
 
519
+ ## ngwr/mention/testing
520
+ - import: `import { WrMentionHarness } from 'ngwr/mention/testing'`
521
+ - exports: WrMentionHarness, WrMentionOptionHarness, WrMentionHarnessFilters, WrMentionOptionHarnessFilters
522
+
441
523
  ## ngwr/meta
442
524
  - import: `import { WrMeta } from 'ngwr/meta'`
443
525
  - selector: `[wrMeta]`
@@ -452,7 +534,7 @@
452
534
 
453
535
  ## ngwr/overlay
454
536
  - import: `import { WrOutsideClick } from 'ngwr/overlay'`
455
- - exports: wrAppendOverlayClose, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
537
+ - exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
456
538
 
457
539
  ## ngwr/page-header
458
540
  - import: `import { WrPageHeader } from 'ngwr/page-header'`
@@ -466,6 +548,11 @@
466
548
  - exports: WrPagination, WrPaginationAlign, WrPaginationSize, WrPaginationShape
467
549
  - Numbered page navigator. Two-way binds currentPage and pageSize via signal models.
468
550
 
551
+ ## ngwr/pagination/testing
552
+ - 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
+ - exports: WrPaginationHarness, WrPaginationHarnessFilters
555
+
469
556
  ## ngwr/pipes
470
557
  - import: `import { WrBytes } from 'ngwr/pipes'`
471
558
  - exports: WrBytes, WrDate, WrMark, WrNumber, WrNumberStyle, WrPlural, WrPluralForms, WrPluralOptions, WrRange, WrTruncate
@@ -481,12 +568,20 @@
481
568
  - exports: WrPopconfirm, WrPopconfirmPanel, WrPopconfirmPosition
482
569
  - Small "Are you sure?" panel anchored to its trigger. Emits confirmed or cancelled.
483
570
 
571
+ ## ngwr/popconfirm/testing
572
+ - import: `import { WrPopconfirmHarness } from 'ngwr/popconfirm/testing'`
573
+ - exports: WrPopconfirmHarness, WrPopconfirmHarnessFilters
574
+
484
575
  ## ngwr/popover
485
576
  - import: `import { WrPopover } from 'ngwr/popover'`
486
577
  - selector: `[wrPopover]`
487
578
  - exports: WrPopover, WrPopoverPosition
488
579
  - Anchored content panel. Project a template (popover) or pass a plain string (tooltip — use `mode="tooltip"`). Click, hover, or focus to open. Built on CDK Overlay.
489
580
 
581
+ ## ngwr/popover/testing
582
+ - import: `import { WrPopoverHarness } from 'ngwr/popover/testing'`
583
+ - exports: WrPopoverHarness, WrPopoverHarnessFilters
584
+
490
585
  ## ngwr/progress
491
586
  - import: `import { WrProgress } from 'ngwr/progress'`
492
587
  - selector: `wr-progress`
@@ -511,12 +606,20 @@
511
606
  - exports: WrRadio, WrRadioSize, WrRadioGroup, WR_RADIO_GROUP, WrRadioGroupContext
512
607
  - Single-choice option. Always used inside <wr-radio-group>, which is the form control: it implements `FormValueControl`, so `[formField]` binds straight to its `value` model. `[(value)]` works standalone, and `[(ngModel)]` / reactive forms keep working through Angular's bridge.
513
608
 
609
+ ## ngwr/radio/testing
610
+ - import: `import { WrRadioGroupHarness } from 'ngwr/radio/testing'`
611
+ - exports: WrRadioGroupHarness, WrRadioHarness, WrRadioGroupHarnessFilters, WrRadioHarnessFilters
612
+
514
613
  ## ngwr/rating
515
614
  - import: `import { WrRating } from 'ngwr/rating'`
516
615
  - selector: `wr-rating`
517
616
  - exports: WrRating, WrRatingSize
518
617
  - Star rating input with whole or half-step granularity. Value type is `number | null` (clamped to `[0, count]`). Keyboard: arrows step by `step`, Home / End jump to 0 / max, Delete / Backspace clears.
519
618
 
619
+ ## ngwr/rating/testing
620
+ - import: `import { WrRatingHarness } from 'ngwr/rating/testing'`
621
+ - exports: WrRatingHarness, WrRatingItemHarness, WrRatingHarnessFilters, WrRatingItemHarnessFilters
622
+
520
623
  ## ngwr/result
521
624
  - import: `import { WrResult } from 'ngwr/result'`
522
625
  - selector: `wr-result-404`, `wr-result-403`, `wr-result-500`, `wr-result`
@@ -540,12 +643,20 @@
540
643
  - exports: WrSegmented, WrSegmentedOption, WrSegmentedSize
541
644
  - Single-choice picker rendered as a segmented control. Two-way binds the selected value.
542
645
 
646
+ ## ngwr/segmented/testing
647
+ - import: `import { WrSegmentedHarness } from 'ngwr/segmented/testing'`
648
+ - exports: WrSegmentedHarness, WrSegmentedOptionHarness, WrSegmentedHarnessFilters, WrSegmentedOptionHarnessFilters
649
+
543
650
  ## ngwr/select
544
651
  - import: `import { WrSelect } from 'ngwr/select'`
545
652
  - selector: `wr-option-group`, `wr-option`, `wr-select`
546
653
  - exports: WrSelect, WrOption, WrOptionGroup, WR_SELECT, WrSelectContext, WrSelectMode, WrSelectSearchLoader, WrSelectTagValidator, WrSelectSize
547
654
  - Native-like select built on CDK Overlay. A signal-forms native control — it implements `FormValueControl`, so `[formField]` binds straight to its `value` model. `[(value)]` works standalone, and `[(ngModel)]` / reactive forms keep working through Angular's bridge.
548
655
 
656
+ ## ngwr/select/testing
657
+ - import: `import { WrOptionHarness } from 'ngwr/select/testing'`
658
+ - exports: WrOptionHarness, WrSelectHarness, WrOptionHarnessFilters, WrSelectHarnessFilters
659
+
549
660
  ## ngwr/shiny-text
550
661
  - import: `import { WrShinyText } from 'ngwr/shiny-text'`
551
662
  - selector: `[wrShimmer]`, `wr-shiny-text`
@@ -570,6 +681,10 @@
570
681
  - exports: WrSlider, WrSliderValue
571
682
  - Drag-to-pick numeric input. Single-thumb by default, optional dual-thumb range mode. A signal-forms native control — it implements `FormValueControl`, so `[formField]` binds straight to its `value` model. `[(value)]` works standalone, and template-driven `[(ngModel)]` / reactive forms keep working through Angular's bridge.
572
683
 
684
+ ## ngwr/slider/testing
685
+ - import: `import { WrSliderHarness } from 'ngwr/slider/testing'`
686
+ - exports: WrSliderHarness, WrSliderThumbHarness, WrSliderHarnessFilters, WrSliderThumbHarnessFilters, WrSliderThumbPosition
687
+
573
688
  ## ngwr/sparkline
574
689
  - import: `import { WrSparkline } from 'ngwr/sparkline'`
575
690
  - selector: `wr-sparkline`
@@ -636,6 +751,10 @@
636
751
  - exports: WrStepper, WrStep, WR_STEPPER, WrStepperContext
637
752
  - Multi-step wizard. Numbered headers with completed / active / pending states, content body for the active step. Two-way bind `[(active)]` to the step index.
638
753
 
754
+ ## ngwr/stepper/testing
755
+ - import: `import { WrStepHarness } from 'ngwr/stepper/testing'`
756
+ - exports: WrStepHarness, WrStepperHarness, WrStepHarnessFilters, WrStepperHarnessFilters
757
+
639
758
  ## ngwr/storage
640
759
  - import: `import { WrStorage } from 'ngwr/storage'`
641
760
  - exports: WrStorage, provideWrStorage, ProvideWrStorageOptions, WR_STORAGE_CONFIG, DEFAULT_WR_STORAGE_CONFIG, WrStorageConfig, WrStorageConfigResolved, WR_STORAGE_ENGINE, createMemoryStorage, WrStorageEngine
@@ -647,24 +766,40 @@
647
766
  - exports: WrSwitch, WrSwitchSize
648
767
  - Boolean toggle with an iOS-style slider. A signal-forms native control — it implements `FormCheckboxControl`, so `[formField]` binds straight to its `checked` model. `[(checked)]` works standalone, and `[(ngModel)]` / reactive forms keep working through Angular's bridge.
649
768
 
769
+ ## ngwr/switch/testing
770
+ - import: `import { WrSwitchHarness } from 'ngwr/switch/testing'`
771
+ - exports: WrSwitchHarness, WrSwitchHarnessFilters
772
+
650
773
  ## ngwr/table
651
774
  - import: `import { WrTable } from 'ngwr/table'`
652
775
  - selector: `[wrTableCell]`, `ng-template[wrTableExpand]`, `wr-table-filter`, `ng-template[wrTableGroupHeader]`, `wr-table-sort`, `wr-table`
653
776
  - exports: WrTable, WrTableCell, WrTableExpand, WrTableGroupHeader, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableCsvOptions, WrTableExpandContext, WrTableFilterChange, WrTableFilterItem, WrTableGroupContext, WrTableSortState, WrTableSortDirection, WrTableSummary
654
777
  - Data table with sortable / filterable headers and custom cell templates.
655
778
 
779
+ ## ngwr/table/testing
780
+ - import: `import { WrTableCellHarness } from 'ngwr/table/testing'`
781
+ - exports: WrTableCellHarness, WrTableHarness, WrTableHeaderCellHarness, WrTableRowHarness, WrTableCellHarnessFilters, WrTableHarnessFilters, WrTableHeaderCellHarnessFilters, WrTableRowHarnessFilters
782
+
656
783
  ## ngwr/tabs
657
784
  - import: `import { WrTabs } from 'ngwr/tabs'`
658
785
  - selector: `wr-tab`, `wr-tabs`
659
786
  - exports: WrTabs, WrTab, WR_TABS, WrTabsContext
660
787
  - Tabbed container. Use projected content for simple tabs, or set routerLink on children to switch into router mode.
661
788
 
789
+ ## ngwr/tabs/testing
790
+ - import: `import { WrTabHarness } from 'ngwr/tabs/testing'`
791
+ - exports: WrTabHarness, WrTabsHarness, WrTabHarnessFilters, WrTabsHarnessFilters, WrTabsHarnessSize
792
+
662
793
  ## ngwr/textarea
663
794
  - import: `import { WrTextarea } from 'ngwr/textarea'`
664
795
  - selector: `wr-textarea`
665
796
  - exports: WrTextarea, WrTextareaSize, WrTextareaResize
666
797
  - Multi-line text input with optional autosize. A signal-forms native control — it implements `FormValueControl`, so `[formField]` binds straight to its `value` model. `[(value)]` works standalone, and `[(ngModel)]` / reactive forms keep working through Angular's bridge.
667
798
 
799
+ ## ngwr/textarea/testing
800
+ - import: `import { WrTextareaHarness } from 'ngwr/textarea/testing'`
801
+ - exports: WrTextareaHarness, WrTextareaHarnessFilters
802
+
668
803
  ## ngwr/theme
669
804
  - import: `import { WrTheme } from 'ngwr/theme'`
670
805
  - exports: WR_COLORS, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, WrResolvedTheme, WrThemeMode, WrThemeConfig
@@ -688,6 +823,10 @@
688
823
  - exports: WrToast, WrToastRef, provideWrToastConfig, DEFAULT_TOAST_CONFIG, WR_TOAST_CONFIG, WrToastConfig, WrToastMode, WrToastOptions, WrToastPosition, WrToastType
689
824
  - Stack of dismissible notifications anchored to a viewport corner. Service-driven; rendered in a single shared CDK overlay.
690
825
 
826
+ ## ngwr/toast/testing
827
+ - import: `import { WrToastHarness } from 'ngwr/toast/testing'`
828
+ - exports: WrToastHarness, WrToastHarnessFilters
829
+
691
830
  ## ngwr/toolbar
692
831
  - import: `import { WrToolbar } from 'ngwr/toolbar'`
693
832
  - selector: `wr-toolbar`
@@ -706,12 +845,20 @@
706
845
  - exports: WrTransfer, WrTransferItem
707
846
  - Dual listbox — two panes and the buttons that move rows between them. The RIGHT pane is the value.
708
847
 
848
+ ## ngwr/transfer/testing
849
+ - import: `import { WrTransferHarness } from 'ngwr/transfer/testing'`
850
+ - exports: WrTransferHarness, WrTransferItemHarness, WrTransferPaneHarness, WrTransferHarnessFilters, WrTransferItemHarnessFilters, WrTransferPaneHarnessFilters, WrTransferSide
851
+
709
852
  ## ngwr/tree
710
853
  - import: `import { WrTree } from 'ngwr/tree'`
711
854
  - selector: `wr-tree`
712
855
  - exports: WrTree, WrTreeNode, WrTreeSelectionMode
713
856
  - Hierarchical list with expand / collapse, selection (single or multi), and full keyboard navigation. Renders inline (display widget) or as a `wr-select`-style combobox via `openOn="overlay"` (form-bound picker — replaces the standalone `wr-tree-select`).
714
857
 
858
+ ## ngwr/tree/testing
859
+ - import: `import { WrTreeHarness } from 'ngwr/tree/testing'`
860
+ - exports: WrTreeHarness, WrTreeNodeHarness, WrTreeHarnessFilters, WrTreeNodeHarnessFilters
861
+
715
862
  ## ngwr/typewriter
716
863
  - import: `import { WrTypewriter } from 'ngwr/typewriter'`
717
864
  - selector: `wr-typewriter`
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
- > 130 secondary entry points, 188 component and directive classes, built on
4
+ > 166 secondary entry points, 181 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
 
@@ -48,6 +48,13 @@ Add from their entry points as needed:
48
48
  - `provideWrIcons(lucideIcons({ check: Check }))` — icon registry (`ngwr/icon`,
49
49
  adapters under `ngwr/icon/adapters/*`).
50
50
  - `provideWrTheme()` — `--wr-*` design tokens. `provideWrDensity()` — sizing.
51
+ - `provideWrConfig({ button: { size: 'sm' }, select: { rounded: true } })`
52
+ (`ngwr/config`) — app-wide component DEFAULTS. A value bound on the element always
53
+ wins, and a bound `false` beats a configured `true`, so a config never has to be
54
+ escaped. Covers `size` on the form controls, `rounded` on `input` / `inputNumber`
55
+ / `select`, and `linkTarget` / `copyable` on `markdown`. There is deliberately no
56
+ `color` key — a bound `[color]="null"` means "no intent", which a default cannot
57
+ express without inventing a sentinel.
51
58
  - `provideWrI18n(...)` + `provideWrI18nStaticLoader(...)` — localization.
52
59
  - `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date-adapter-fns`
53
60
  or `ngwr/date-adapter-luxon`).
@@ -85,19 +92,22 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
85
92
  `wr-input-number`, `wr-input-otp`, `wr-date-picker` (date/time/datetime) and
86
93
  `wr-date-range-picker` (both in ngwr/date-picker; the range value is
87
94
  `[start, end]`, hence a separate component), `wr-file-upload`,
88
- `wr-form-field`, `wr-color-picker`, `wr-transfer` (dual listbox; the value
89
- is the RIGHT pane).
95
+ `wr-form-field` (in ngwr/form), `wr-color-picker`, `wr-transfer` (dual listbox;
96
+ the value is the RIGHT pane).
90
97
  - **Data** — `wr-table` (column pin/resize/drag-reorder, row selection,
91
98
  expandable rows, grouping, tree rows (`childrenKey`), summary rows,
92
99
  CSV export, virtualized body),
93
100
  `wr-pagination`, `wr-tree`, `wr-virtual-scroll`, `wr-sortable-list`
94
- (drag-to-reorder).
101
+ (drag-to-reorder, with `[wrDragHandle]` — both in ngwr/drag-drop).
95
102
  - **Feedback** — `wr-alert`, `wr-result`, `wr-empty`, `wr-skeleton`,
96
103
  `wr-spinner`.
97
104
  - **Layout / Display** — `wr-card`, `wr-carousel`, `wr-collapse`, `wr-splitter`,
98
105
  `wr-toolbar`, `wr-descriptions`, `wr-statistic`, `wr-lightbox`,
99
- `wr-pull-to-refresh`.
100
- - **Navigation** — `wr-tabs`, `wr-stepper`, `wr-breadcrumbs`, `wr-dropdown-menu`.
106
+ `wr-pull-to-refresh`, `wr-markdown` (renders markdown as DOM, never as HTML —
107
+ raw HTML in the source is escaped; `[streaming]` for a partial document;
108
+ `provideWrMarkdownHighlighter()` takes coloured spans, not markup).
109
+ - **Navigation** — `wr-tabs`, `wr-stepper`, `wr-breadcrumbs`, `wr-dropdown-menu`
110
+ (with its `[wrDropdown]` trigger — both in ngwr/dropdown).
101
111
  - **Overlays** — `wr-drawer` (or `WrDrawerManager.open()` to open a component as
102
112
  a drawer from code), `wr-action-sheet`, `[wrPopover]` (directive; has a
103
113
  `tooltip` mode), `wr-command-palette`, `wr-context-menu`, `wr-popconfirm`.
@@ -118,14 +128,43 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
118
128
  by `provideWrTheme()`. Two contrast tokens per intent, easy to confuse:
119
129
  `--wr-color-<intent>-contrast` is the label ON a filled intent;
120
130
  `--wr-color-<intent>-ink` is the intent used AS text on a surface or its own
121
- `-soft` tint. A bare `--wr-color-<intent>` as text fails WCAG AA in light. For
122
- muted prose use `--wr-color-on-surface-muted`, not the `medium` intent.
131
+ `-soft` tint. A bare `--wr-color-<intent>` as text clears AA on a plain light
132
+ surface for every intent but `warning` and `light`, but still fails on the `-soft`
133
+ tint — which is exactly where outlined / ghost / tinted variants paint it, so use
134
+ `-ink` there. For muted prose use `--wr-color-on-surface-muted`, not the `medium`
135
+ intent.
123
136
  - **Mobile** — overlays collapse to sheets (`provideWrResponsiveOverlays()`), a
124
137
  `responsive` input reflows layout components, a `touch` density preset enlarges
125
138
  controls, and `WrHaptics` (ngwr/platform) fires vibration feedback.
126
139
  - **Large datasets** — `virtualScroll` is an opt-in input on `wr-table`,
127
140
  `wr-tree` and `wr-select` (search mode), alongside the standalone
128
141
  `wr-virtual-scroll` wrapper.
142
+ - **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
144
+ form controls, the overlays, both data views, the navigation / disclosure set
145
+ (`tabs`, `stepper`, `carousel`, `pagination`, `segmented`, `collapse`,
146
+ `transfer`) and `markdown`: the form controls
147
+ (`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.
153
+ Load them with `TestbedHarnessEnvironment` and narrow with
154
+ `WrButtonHarness.with({ text: 'Save' })` instead of querying ngwr's markup.
155
+ Dialog, toast and a service-opened drawer render outside the fixture — load
156
+ those from `documentRootLoader()`; everything else is an element in your
157
+ template, and where its panel is in the overlay the harness reaches it for you,
158
+ scoped to that instance by the id the trigger publishes.
159
+ Many are families: `WrTableHarness` + row / cell / header-cell, `WrTreeHarness`
160
+ + node, `WrCascaderHarness` + column / option, `WrCommandPaletteHarness` +
161
+ group / item, `WrRadioGroupHarness` + radio, `WrSliderHarness` + thumb,
162
+ `WrInputOtpHarness` + box, `WrRatingHarness` + item, `WrContextMenuHarness` +
163
+ item (submenus included), `WrMentionHarness` + option, `WrTransferHarness` +
164
+ pane / item, `WrMarkdownHarness` + code block.
165
+ A unit test has no layout, so anything a mouse would drag (slider, rating,
166
+ file-upload's drop zone) is driven by the KEYBOARD or by real events, never by
167
+ coordinates. Guide: https://ngwr.dev/guides/testing
129
168
  - **Scheduling** — `wr-event-calendar` covers month / week / day in one
130
169
  component. `events` is an input the calendar never writes to: a drag emits
131
170
  `eventChange` with the proposed start / end, and you apply it. Event `end` is
@@ -143,6 +182,16 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
143
182
  prose and code samples and API tables, without the site chrome. Prefer it over
144
183
  `llms-full.txt` when you already know which component you need. Each HTML page
145
184
  advertises its twin as `<link rel="alternate" type="text/markdown">`.
185
+ - **MCP server — the same files, askable.** `npx -y ngwr-mcp` (a bin in the
186
+ installed package; zero dependencies, JSON-RPC over stdio) exposes four tools:
187
+ `search_ngwr` turns a need into an entry point name, `get_ngwr_component`
188
+ summarises one entry point, `get_ngwr_api` returns a class's inputs / models /
189
+ outputs read out of the shipped `.d.ts`, and `get_ngwr_setup` returns the
190
+ install / `ng g ngwr:use` / provider commands as text — it never runs them,
191
+ and it never reaches outside its own package: no network, no commands. It reads the resources
192
+ listed here rather than embedding a copy of them. Client config for Claude
193
+ Code / Claude Desktop / Cursor, and a worked example of each tool:
194
+ https://ngwr.dev/guides/mcp
146
195
  - All site URLs (for crawlers): https://ngwr.dev/sitemap.xml
147
196
  - Source, README, per-component `.d.ts` types: https://github.com/thekhegay/ngwr
148
197
  (installed at `node_modules/ngwr/types/ngwr-<name>.d.ts`; the package also
@@ -6,8 +6,7 @@
6
6
  .wr-loading-bar {
7
7
  position: fixed;
8
8
  top: 0;
9
- left: 0;
10
- right: 0;
9
+ inset-inline: 0;
11
10
  z-index: var(--wr-z-top, 9999);
12
11
  pointer-events: none;
13
12