ngwr 11.1.0 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/circular-text/styles/_index.scss +11 -0
  2. package/command-palette/styles/_index.scss +12 -0
  3. package/fesm2022/ngwr-action-sheet-testing.mjs +313 -0
  4. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -0
  5. package/fesm2022/ngwr-bar-chart-testing.mjs +89 -0
  6. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -0
  7. package/fesm2022/ngwr-blur-text-testing.mjs +203 -0
  8. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -0
  9. package/fesm2022/ngwr-blur-text.mjs +15 -1
  10. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  11. package/fesm2022/ngwr-border-glow-testing.mjs +325 -0
  12. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -0
  13. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +95 -0
  14. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -0
  15. package/fesm2022/ngwr-calendar-testing.mjs +368 -0
  16. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -0
  17. package/fesm2022/ngwr-calendar.mjs +43 -3
  18. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  19. package/fesm2022/ngwr-cascader.mjs +12 -0
  20. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  21. package/fesm2022/ngwr-checkbox.mjs +8 -0
  22. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  23. package/fesm2022/ngwr-circular-text-testing.mjs +230 -0
  24. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -0
  25. package/fesm2022/ngwr-circular-text.mjs +2 -2
  26. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  27. package/fesm2022/ngwr-color-picker-testing.mjs +432 -0
  28. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -0
  29. package/fesm2022/ngwr-color-picker.mjs +29 -3
  30. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  31. package/fesm2022/ngwr-context-menu.mjs +25 -5
  32. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  33. package/fesm2022/ngwr-date-picker-testing.mjs +10 -79
  34. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  35. package/fesm2022/ngwr-decrypt-text-testing.mjs +261 -0
  36. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -0
  37. package/fesm2022/ngwr-decrypt-text.mjs +6 -1
  38. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  39. package/fesm2022/ngwr-donut-chart-testing.mjs +93 -0
  40. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -0
  41. package/fesm2022/ngwr-drawer.mjs +36 -7
  42. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  43. package/fesm2022/ngwr-dropdown.mjs +32 -2
  44. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  45. package/fesm2022/ngwr-event-calendar-testing.mjs +446 -0
  46. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -0
  47. package/fesm2022/ngwr-event-calendar.mjs +43 -18
  48. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  49. package/fesm2022/ngwr-falling-text-testing.mjs +218 -0
  50. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -0
  51. package/fesm2022/ngwr-fuzzy-text-testing.mjs +134 -0
  52. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -0
  53. package/fesm2022/ngwr-gauge-testing.mjs +86 -0
  54. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -0
  55. package/fesm2022/ngwr-glitch-text-testing.mjs +181 -0
  56. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -0
  57. package/fesm2022/ngwr-gradient-text-testing.mjs +223 -0
  58. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -0
  59. package/fesm2022/ngwr-i18n-en.mjs +14 -0
  60. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  61. package/fesm2022/ngwr-i18n-ru.mjs +14 -0
  62. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  63. package/fesm2022/ngwr-image-cropper-testing.mjs +156 -0
  64. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -0
  65. package/fesm2022/ngwr-image-cropper.mjs +10 -3
  66. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  67. package/fesm2022/ngwr-input-number.mjs +73 -6
  68. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  69. package/fesm2022/ngwr-knob-testing.mjs +220 -0
  70. package/fesm2022/ngwr-knob-testing.mjs.map +1 -0
  71. package/fesm2022/ngwr-lightbox-testing.mjs +223 -0
  72. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -0
  73. package/fesm2022/ngwr-lightbox.mjs +9 -2
  74. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  75. package/fesm2022/ngwr-line-chart-testing.mjs +119 -0
  76. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -0
  77. package/fesm2022/ngwr-marquee-testing.mjs +336 -0
  78. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -0
  79. package/fesm2022/ngwr-meter-group-testing.mjs +80 -0
  80. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -0
  81. package/fesm2022/ngwr-overlay.mjs +28 -1
  82. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  83. package/fesm2022/ngwr-popover.mjs +14 -0
  84. package/fesm2022/ngwr-popover.mjs.map +1 -1
  85. package/fesm2022/ngwr-rotating-text-testing.mjs +220 -0
  86. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -0
  87. package/fesm2022/ngwr-rotating-text.mjs +2 -2
  88. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  89. package/fesm2022/ngwr-select.mjs +70 -11
  90. package/fesm2022/ngwr-select.mjs.map +1 -1
  91. package/fesm2022/ngwr-shiny-text-testing.mjs +237 -0
  92. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -0
  93. package/fesm2022/ngwr-slider.mjs +44 -6
  94. package/fesm2022/ngwr-slider.mjs.map +1 -1
  95. package/fesm2022/ngwr-sparkline-testing.mjs +76 -0
  96. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -0
  97. package/fesm2022/ngwr-speed-dial-testing.mjs +279 -0
  98. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -0
  99. package/fesm2022/ngwr-splash-cursor-testing.mjs +89 -0
  100. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -0
  101. package/fesm2022/ngwr-split-text-testing.mjs +224 -0
  102. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -0
  103. package/fesm2022/ngwr-split-text.mjs +15 -1
  104. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  105. package/fesm2022/ngwr-splitter-testing.mjs +245 -0
  106. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -0
  107. package/fesm2022/ngwr-spotlight-card-testing.mjs +368 -0
  108. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -0
  109. package/fesm2022/ngwr-star-border-testing.mjs +172 -0
  110. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -0
  111. package/fesm2022/ngwr-table.mjs +13 -3
  112. package/fesm2022/ngwr-table.mjs.map +1 -1
  113. package/fesm2022/ngwr-tabs.mjs +15 -1
  114. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  115. package/fesm2022/ngwr-tilt-card-testing.mjs +190 -0
  116. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -0
  117. package/fesm2022/ngwr-tilt-card.mjs +19 -1
  118. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  119. package/fesm2022/ngwr-toast.mjs +36 -7
  120. package/fesm2022/ngwr-toast.mjs.map +1 -1
  121. package/fesm2022/ngwr-tour-testing.mjs +173 -0
  122. package/fesm2022/ngwr-tour-testing.mjs.map +1 -0
  123. package/fesm2022/ngwr-tour.mjs +2 -2
  124. package/fesm2022/ngwr-tour.mjs.map +1 -1
  125. package/fesm2022/ngwr-tree.mjs +10 -3
  126. package/fesm2022/ngwr-tree.mjs.map +1 -1
  127. package/fesm2022/ngwr-typewriter-testing.mjs +228 -0
  128. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -0
  129. package/fesm2022/ngwr-version.mjs +1 -1
  130. package/fesm2022/ngwr-version.mjs.map +1 -1
  131. package/fesm2022/ngwr-waves-testing.mjs +128 -0
  132. package/fesm2022/ngwr-waves-testing.mjs.map +1 -0
  133. package/fesm2022/ngwr-window-testing.mjs +361 -0
  134. package/fesm2022/ngwr-window-testing.mjs.map +1 -0
  135. package/fesm2022/ngwr-window.mjs +84 -10
  136. package/fesm2022/ngwr-window.mjs.map +1 -1
  137. package/i18n/en.json +16 -2
  138. package/i18n/ru.json +16 -2
  139. package/llms-full.txt +147 -0
  140. package/llms.txt +27 -8
  141. package/mcp/providers.js +29 -0
  142. package/mcp/tools.js +1 -29
  143. package/package.json +145 -1
  144. package/skills/ngwr/SKILL.md +115 -0
  145. package/skills/ngwr/references/catalog.md +212 -0
  146. package/skills/ngwr/references/setup.md +73 -0
  147. package/types/ngwr-action-sheet-testing.d.ts +260 -0
  148. package/types/ngwr-bar-chart-testing.d.ts +77 -0
  149. package/types/ngwr-blur-text-testing.d.ts +180 -0
  150. package/types/ngwr-blur-text.d.ts +12 -0
  151. package/types/ngwr-border-glow-testing.d.ts +219 -0
  152. package/types/ngwr-calendar-heatmap-testing.d.ts +79 -0
  153. package/types/ngwr-calendar-testing.d.ts +277 -0
  154. package/types/ngwr-calendar.d.ts +10 -0
  155. package/types/ngwr-checkbox.d.ts +13 -0
  156. package/types/ngwr-circular-text-testing.d.ts +196 -0
  157. package/types/ngwr-color-picker-testing.d.ts +291 -0
  158. package/types/ngwr-color-picker.d.ts +13 -1
  159. package/types/ngwr-context-menu.d.ts +15 -1
  160. package/types/ngwr-date-picker-testing.d.ts +6 -66
  161. package/types/ngwr-decrypt-text-testing.d.ts +222 -0
  162. package/types/ngwr-donut-chart-testing.d.ts +79 -0
  163. package/types/ngwr-drawer.d.ts +12 -0
  164. package/types/ngwr-dropdown.d.ts +9 -0
  165. package/types/ngwr-event-calendar-testing.d.ts +301 -0
  166. package/types/ngwr-event-calendar.d.ts +9 -6
  167. package/types/ngwr-falling-text-testing.d.ts +186 -0
  168. package/types/ngwr-fuzzy-text-testing.d.ts +130 -0
  169. package/types/ngwr-gauge-testing.d.ts +71 -0
  170. package/types/ngwr-glitch-text-testing.d.ts +172 -0
  171. package/types/ngwr-gradient-text-testing.d.ts +173 -0
  172. package/types/ngwr-image-cropper-testing.d.ts +134 -0
  173. package/types/ngwr-image-cropper.d.ts +1 -0
  174. package/types/ngwr-input-number.d.ts +33 -1
  175. package/types/ngwr-knob-testing.d.ts +150 -0
  176. package/types/ngwr-lightbox-testing.d.ts +154 -0
  177. package/types/ngwr-lightbox.d.ts +6 -0
  178. package/types/ngwr-line-chart-testing.d.ts +93 -0
  179. package/types/ngwr-marquee-testing.d.ts +280 -0
  180. package/types/ngwr-meter-group-testing.d.ts +67 -0
  181. package/types/ngwr-overlay.d.ts +19 -1
  182. package/types/ngwr-rotating-text-testing.d.ts +191 -0
  183. package/types/ngwr-select.d.ts +32 -0
  184. package/types/ngwr-shiny-text-testing.d.ts +165 -0
  185. package/types/ngwr-slider.d.ts +15 -0
  186. package/types/ngwr-sparkline-testing.d.ts +69 -0
  187. package/types/ngwr-speed-dial-testing.d.ts +195 -0
  188. package/types/ngwr-splash-cursor-testing.d.ts +95 -0
  189. package/types/ngwr-split-text-testing.d.ts +209 -0
  190. package/types/ngwr-split-text.d.ts +12 -0
  191. package/types/ngwr-splitter-testing.d.ts +174 -0
  192. package/types/ngwr-spotlight-card-testing.d.ts +303 -0
  193. package/types/ngwr-star-border-testing.d.ts +135 -0
  194. package/types/ngwr-table.d.ts +10 -1
  195. package/types/ngwr-tilt-card-testing.d.ts +158 -0
  196. package/types/ngwr-tilt-card.d.ts +2 -0
  197. package/types/ngwr-toast.d.ts +14 -5
  198. package/types/ngwr-tour-testing.d.ts +143 -0
  199. package/types/ngwr-tree.d.ts +7 -0
  200. package/types/ngwr-typewriter-testing.d.ts +201 -0
  201. package/types/ngwr-version.d.ts +1 -1
  202. package/types/ngwr-waves-testing.d.ts +121 -0
  203. package/types/ngwr-window-testing.d.ts +263 -0
  204. package/types/ngwr-window.d.ts +27 -10
  205. package/window/styles/_index.scss +44 -16
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
75
  - exports: WrBlurText
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`
@@ -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,11 @@
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
+ - selector: `.wr-color-picker__tabs`
210
+ - exports: WrColorPickerHarness, WrColorPickerTriggerHarness, WrColorPickerHarnessFilters, WrColorPickerTab, WrColorPickerThumbs, WrColorPickerTriggerHarnessFilters
211
+
179
212
  ## ngwr/command-palette
180
213
  - import: `import { WrCommandPalette } from 'ngwr/command-palette'`
181
214
  - selector: `wr-command-palette`
@@ -250,6 +283,10 @@
250
283
  - exports: WrDecryptText, WrDecryptTextAnimateOn, WrDecryptTextClickMode, WrDecryptTextRevealDirection
251
284
  - 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
285
 
286
+ ## ngwr/decrypt-text/testing
287
+ - import: `import { WrDecryptTextHarness } from 'ngwr/decrypt-text/testing'`
288
+ - exports: WrDecryptTextHarness, WrDecryptTextHarnessFilters
289
+
253
290
  ## ngwr/density
254
291
  - import: `import { WrDensity } from 'ngwr/density'`
255
292
  - selector: `[wrDensity]`
@@ -289,6 +326,10 @@
289
326
  - exports: WrDonutChart, WrDonutSegment
290
327
  - Ring chart with optional center label / value. Set `thickness="0"` for a solid pie.
291
328
 
329
+ ## ngwr/donut-chart/testing
330
+ - import: `import { WrDonutChartHarness } from 'ngwr/donut-chart/testing'`
331
+ - exports: WrDonutChartHarness, WrDonutChartHarnessFilters, WrDonutChartLegendEntry
332
+
292
333
  ## ngwr/drag-drop
293
334
  - import: `import { WrSortableList } from 'ngwr/drag-drop'`
294
335
  - selector: `[wrDragHandle]`, `wr-sortable-list`
@@ -327,12 +368,21 @@
327
368
  - exports: WrEventCalendar, WrCalendarEventTemplate, WrCalendarEvent, WrCalendarEventChange, WrCalendarEventContext, WrCalendarSlot, WrCalendarView
328
369
  - Month, week and day views of a set of events — draggable, resizable, keyboard-operable.
329
370
 
371
+ ## ngwr/event-calendar/testing
372
+ - import: `import { WrEventCalendarChipHarness } from 'ngwr/event-calendar/testing'`
373
+ - selector: `.wr-event-calendar__view`
374
+ - exports: WrEventCalendarChipHarness, WrEventCalendarHarness, WrEventCalendarChipHarnessFilters, WrEventCalendarHarnessFilters
375
+
330
376
  ## ngwr/falling-text
331
377
  - import: `import { WrFallingText } from 'ngwr/falling-text'`
332
378
  - selector: `wr-falling-text`
333
379
  - exports: WrFallingText, WrFallingTextTrigger
334
380
  - 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
381
 
382
+ ## ngwr/falling-text/testing
383
+ - import: `import { WrFallingTextHarness } from 'ngwr/falling-text/testing'`
384
+ - exports: WrFallingTextHarness, WrFallingTextHarnessFilters
385
+
336
386
  ## ngwr/file-upload
337
387
  - import: `import { WrFileUpload } from 'ngwr/file-upload'`
338
388
  - selector: `wr-file-upload`
@@ -359,24 +409,40 @@
359
409
  - exports: WrFuzzyText, WrFuzzyTextDirection
360
410
  - 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
411
 
412
+ ## ngwr/fuzzy-text/testing
413
+ - import: `import { WrFuzzyTextHarness } from 'ngwr/fuzzy-text/testing'`
414
+ - exports: WrFuzzyTextHarness, WrFuzzyTextHarnessFilters
415
+
362
416
  ## ngwr/gauge
363
417
  - import: `import { WrGauge } from 'ngwr/gauge'`
364
418
  - selector: `wr-gauge`
365
419
  - exports: WrGauge
366
420
  - Semicircle progress display — read-only, perfect for utilisation and score widgets.
367
421
 
422
+ ## ngwr/gauge/testing
423
+ - import: `import { WrGaugeHarness } from 'ngwr/gauge/testing'`
424
+ - exports: WrGaugeHarness, WrGaugeHarnessFilters
425
+
368
426
  ## ngwr/glitch-text
369
427
  - import: `import { WrGlitchText } from 'ngwr/glitch-text'`
370
428
  - selector: `wr-glitch-text`
371
429
  - exports: WrGlitchText
372
430
  - 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
431
 
432
+ ## ngwr/glitch-text/testing
433
+ - import: `import { WrGlitchTextHarness } from 'ngwr/glitch-text/testing'`
434
+ - exports: WrGlitchTextHarness, WrGlitchTextColourSplit, WrGlitchTextDurations, WrGlitchTextHarnessFilters
435
+
374
436
  ## ngwr/gradient-text
375
437
  - import: `import { WrGradientText } from 'ngwr/gradient-text'`
376
438
  - selector: `wr-gradient-text`
377
439
  - exports: WrGradientText, WrGradientTextDirection
378
440
  - 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
441
 
442
+ ## ngwr/gradient-text/testing
443
+ - import: `import { WrGradientTextHarness } from 'ngwr/gradient-text/testing'`
444
+ - exports: WrGradientTextHarness, WrGradientTextHarnessFilters
445
+
380
446
  ## ngwr/hotkey
381
447
  - import: `import { WrHotkey } from 'ngwr/hotkey'`
382
448
  - selector: `[wrHotkey]`
@@ -417,6 +483,10 @@
417
483
  - exports: WrImageCropper, WrCropRect, WrCropHandle, WrImageOutputType
418
484
  - 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
485
 
486
+ ## ngwr/image-cropper/testing
487
+ - import: `import { WrImageCropperHarness } from 'ngwr/image-cropper/testing'`
488
+ - exports: WrImageCropperHarness, WrImageCropperHarnessFilters
489
+
420
490
  ## ngwr/input
421
491
  - import: `import { WrInput } from 'ngwr/input'`
422
492
  - selector: `[wrInputPrefix]`, `[wrInputSuffix]`, `input[wrInput]`, `textarea[wrInput]`, `wr-input-group`, `wr-password-toggle`
@@ -459,6 +529,10 @@
459
529
  - exports: WrKnob
460
530
  - 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
531
 
532
+ ## ngwr/knob/testing
533
+ - import: `import { WrKnobHarness } from 'ngwr/knob/testing'`
534
+ - exports: WrKnobHarness, WrKnobHarnessFilters
535
+
462
536
  ## ngwr/layout
463
537
  - import: `import { WrLayout } from 'ngwr/layout'`
464
538
  - selector: `wr-layout-content`, `wr-layout-footer`, `wr-layout-header`, `wr-layout-sider`, `wr-layout`
@@ -471,12 +545,20 @@
471
545
  - exports: WrLightbox
472
546
  - Image with click-to-zoom lightbox. Renders a thumbnail; clicking opens a full-size overlay viewer with backdrop, ESC + click-out to close.
473
547
 
548
+ ## ngwr/lightbox/testing
549
+ - import: `import { WrLightboxHarness } from 'ngwr/lightbox/testing'`
550
+ - exports: WrLightboxHarness, WrLightboxHarnessFilters
551
+
474
552
  ## ngwr/line-chart
475
553
  - import: `import { WrLineChart } from 'ngwr/line-chart'`
476
554
  - selector: `wr-line-chart`
477
555
  - exports: WrLineChart, WrLineSeries
478
556
  - Multi-series line chart with a hover tooltip that snaps to the nearest x-axis tick.
479
557
 
558
+ ## ngwr/line-chart/testing
559
+ - import: `import { WrLineChartHarness } from 'ngwr/line-chart/testing'`
560
+ - exports: WrLineChartHarness, WrLineChartHarnessFilters, WrLineChartTooltipRow
561
+
480
562
  ## ngwr/list
481
563
  - import: `import { WrList } from 'ngwr/list'`
482
564
  - selector: `wr-list-item`, `wr-list`
@@ -505,6 +587,10 @@
505
587
  - exports: WrMarquee, WrMarqueeItem, WrMarqueeImage, WrMarqueeNode
506
588
  - 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
589
 
590
+ ## ngwr/marquee/testing
591
+ - import: `import { WrMarqueeHarness } from 'ngwr/marquee/testing'`
592
+ - exports: WrMarqueeHarness, WrMarqueeItemHarness, WrMarqueeHarnessFilters, WrMarqueeItemHarnessFilters, WrMarqueeLink
593
+
508
594
  ## ngwr/media
509
595
  - import: `import { WrMedia } from 'ngwr/media'`
510
596
  - exports: WrMedia, provideWrMedia, WR_BREAKPOINTS, DEFAULT_WR_BREAKPOINTS, WrBreakpoint, WrBreakpointMap
@@ -532,6 +618,10 @@
532
618
  - exports: WrMeterGroup, WrMeterSegment
533
619
  - Stacked-segment progress bar. Each segment is sized proportionally to its `value` relative to the sum (or the explicit `max`); legend listed underneath.
534
620
 
621
+ ## ngwr/meter-group/testing
622
+ - import: `import { WrMeterGroupHarness } from 'ngwr/meter-group/testing'`
623
+ - exports: WrMeterGroupHarness, WrMeterGroupHarnessFilters, WrMeterGroupSlice
624
+
535
625
  ## ngwr/overlay
536
626
  - import: `import { WrOutsideClick } from 'ngwr/overlay'`
537
627
  - exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
@@ -632,6 +722,10 @@
632
722
  - exports: WrRotatingText, WrRotatingTextSplit, WrRotatingTextStaggerFrom
633
723
  - 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
724
 
725
+ ## ngwr/rotating-text/testing
726
+ - import: `import { WrRotatingTextHarness } from 'ngwr/rotating-text/testing'`
727
+ - exports: WrRotatingTextHarness, WrRotatingTextHarnessFilters
728
+
635
729
  ## ngwr/scroll
636
730
  - import: `import { WrScroll } from 'ngwr/scroll'`
637
731
  - exports: WrScroll, WrScrollTarget, WrScrollOptions
@@ -663,6 +757,10 @@
663
757
  - exports: WrShinyText, WrShimmer
664
758
  - 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
759
 
760
+ ## ngwr/shiny-text/testing
761
+ - import: `import { WrShinyTextHarness } from 'ngwr/shiny-text/testing'`
762
+ - exports: WrShinyTextHarness, WrShinyTextHarnessFilters, WrShinyTextSweepDirection
763
+
666
764
  ## ngwr/sidebar
667
765
  - import: `import { WrSidebar } from 'ngwr/sidebar'`
668
766
  - selector: `wr-sidebar`
@@ -691,12 +789,20 @@
691
789
  - exports: WrSparkline
692
790
  - Tiny inline trend line — no axes, no labels. Drop it next to a number to give context at a glance.
693
791
 
792
+ ## ngwr/sparkline/testing
793
+ - import: `import { WrSparklineHarness } from 'ngwr/sparkline/testing'`
794
+ - exports: WrSparklineHarness, WrSparklineHarnessFilters
795
+
694
796
  ## ngwr/speed-dial
695
797
  - import: `import { WrSpeedDial } from 'ngwr/speed-dial'`
696
798
  - selector: `wr-speed-dial`
697
799
  - exports: WrSpeedDial, WrSpeedDialAction, WrSpeedDialDirection
698
800
  - Floating action button that fans out a set of secondary actions on click.
699
801
 
802
+ ## ngwr/speed-dial/testing
803
+ - import: `import { WrSpeedDialActionHarness } from 'ngwr/speed-dial/testing'`
804
+ - exports: WrSpeedDialActionHarness, WrSpeedDialHarness, WrSpeedDialActionHarnessFilters, WrSpeedDialHarnessFilters
805
+
700
806
  ## ngwr/spinner
701
807
  - import: `import { WrSpinner } from 'ngwr/spinner'`
702
808
  - selector: `wr-spinner`
@@ -709,24 +815,40 @@
709
815
  - exports: WrSplashCursor, WrFluidConfig
710
816
  - 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
817
 
818
+ ## ngwr/splash-cursor/testing
819
+ - import: `import { WrSplashCursorHarness } from 'ngwr/splash-cursor/testing'`
820
+ - exports: WrSplashCursorHarness, WrSplashCursorHarnessFilters
821
+
712
822
  ## ngwr/split-text
713
823
  - import: `import { WrSplitText } from 'ngwr/split-text'`
714
824
  - selector: `wr-split-text`
715
825
  - exports: WrSplitText, WrSplitTextMotion, WrSplitTextUnit
716
826
  - 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
827
 
828
+ ## ngwr/split-text/testing
829
+ - import: `import { WrSplitTextHarness } from 'ngwr/split-text/testing'`
830
+ - exports: WrSplitTextHarness, WrSplitTextHarnessAlign, WrSplitTextHarnessFilters
831
+
718
832
  ## ngwr/splitter
719
833
  - import: `import { WrSplitter } from 'ngwr/splitter'`
720
834
  - selector: `wr-splitter`
721
835
  - exports: WrSplitter
722
836
  - Resizable two-pane split. Drag the divider or focus it and use arrows. Two-way `[(position)]` (0–100).
723
837
 
838
+ ## ngwr/splitter/testing
839
+ - import: `import { WrSplitterHarness } from 'ngwr/splitter/testing'`
840
+ - exports: WrSplitterHarness, WrSplitterHarnessFilters, WrSplitterPaneSizes
841
+
724
842
  ## ngwr/spotlight-card
725
843
  - import: `import { WrSpotlightCard } from 'ngwr/spotlight-card'`
726
844
  - selector: `wr-spotlight-card`, `[wrSpotlight]`
727
845
  - exports: WrSpotlightCard, WrSpotlight
728
846
  - Cursor-tracked spotlight card. A soft radial highlight follows the pointer, fading in on hover.
729
847
 
848
+ ## ngwr/spotlight-card/testing
849
+ - import: `import { WrSpotlightCardHarness } from 'ngwr/spotlight-card/testing'`
850
+ - exports: WrSpotlightCardHarness, WrSpotlightHarness, WrSpotlightCardHarnessFilters, WrSpotlightHarnessFilters
851
+
730
852
  ## ngwr/squircle
731
853
  - import: `import { WrSquircle } from 'ngwr/squircle'`
732
854
  - selector: `wr-squircle`, `[wrSquircle]`
@@ -739,6 +861,10 @@
739
861
  - exports: WrStarBorder, WrStarBorderMode, WrStarBorderRays
740
862
  - 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
863
 
864
+ ## ngwr/star-border/testing
865
+ - import: `import { WrStarBorderHarness } from 'ngwr/star-border/testing'`
866
+ - exports: WrStarBorderHarness, WrStarBorderHarnessFilters
867
+
742
868
  ## ngwr/statistic
743
869
  - import: `import { WrStatistic } from 'ngwr/statistic'`
744
870
  - selector: `wr-statistic-countdown`, `wr-statistic-group`, `wr-statistic`
@@ -811,6 +937,10 @@
811
937
  - exports: WrTiltCard, WrTilt
812
938
  - 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
939
 
940
+ ## ngwr/tilt-card/testing
941
+ - import: `import { WrTiltHarness } from 'ngwr/tilt-card/testing'`
942
+ - exports: WrTiltHarness, WrTiltHarnessFilters, WrTiltRotation
943
+
814
944
  ## ngwr/timeline
815
945
  - import: `import { WrTimeline } from 'ngwr/timeline'`
816
946
  - selector: `wr-timeline-item`, `wr-timeline`
@@ -839,6 +969,11 @@
839
969
  - exports: WrTour, WrTourPopup, WrTourPlacement, WrTourStep
840
970
  - Guided product tour — a spotlight over one element at a time plus a popup explaining it.
841
971
 
972
+ ## ngwr/tour/testing
973
+ - import: `import { WrTourHarness } from 'ngwr/tour/testing'`
974
+ - selector: `.wr-tour-popup__action--next`, `.wr-tour-popup__action--skip`, `.wr-tour-popup__action--back`
975
+ - exports: WrTourHarness, WrTourHarnessFilters, WrTourProgress
976
+
842
977
  ## ngwr/transfer
843
978
  - import: `import { WrTransfer } from 'ngwr/transfer'`
844
979
  - selector: `wr-transfer`
@@ -865,6 +1000,10 @@
865
1000
  - exports: WrTypewriter, WrTypewriterVariableSpeed
866
1001
  - 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
1002
 
1003
+ ## ngwr/typewriter/testing
1004
+ - import: `import { WrTypewriterHarness } from 'ngwr/typewriter/testing'`
1005
+ - exports: WrTypewriterHarness, WrTypewriterHarnessFilters
1006
+
868
1007
  ## ngwr/typography
869
1008
  - import: `import { WrTypography } from 'ngwr/typography'`
870
1009
  - selector: `[wrTypography]`
@@ -895,8 +1034,16 @@
895
1034
  - exports: WrWaves
896
1035
  - 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
1036
 
1037
+ ## ngwr/waves/testing
1038
+ - import: `import { WrWavesHarness } from 'ngwr/waves/testing'`
1039
+ - exports: WrWavesHarness, WrWavesHarnessFilters
1040
+
898
1041
  ## ngwr/window
899
1042
  - import: `import { WrWindowManager } from 'ngwr/window'`
900
1043
  - selector: `wr-window-container`, `wr-window-taskbar`, `wr-window`
901
1044
  - exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
902
1045
  - 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.
1046
+
1047
+ ## ngwr/window/testing
1048
+ - import: `import { WrWindowHarness } from 'ngwr/window/testing'`
1049
+ - 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, 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
 
@@ -140,16 +140,21 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
140
140
  `wr-tree` and `wr-select` (search mode), alongside the standalone
141
141
  `wr-virtual-scroll` wrapper.
142
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
143
+ `ngwr/<name>/testing`. 70 entry points so far, 104 harness classes, covering the
144
144
  form controls, the overlays, both data views, the navigation / disclosure set
145
145
  (`tabs`, `stepper`, `carousel`, `pagination`, `segmented`, `collapse`,
146
146
  `transfer`) and `markdown`: the form controls
147
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.
148
+ `input-number`, `input-otp`, `slider`, `rating`, `file-upload`, `color-picker`,
149
+ `knob`, `form` for `<wr-form-field>`), the overlays (`date-picker`, `dropdown`,
150
+ `popover`, `dialog`, `drawer`, `action-sheet`, `toast`, `context-menu`, `popconfirm`,
151
+ `command-palette`, `cascader`, `mention`), the data views (`table`, `tree`),
152
+ `splitter`, `speed-dial`, `lightbox`, `tour`, `calendar`, `event-calendar`,
153
+ `window`, `image-cropper`, every chart and eighteen of the twenty-one animations —
154
+ every control, every overlay and every chart has one. `aurora`, `click-spark`,
155
+ `confetti` and `virtual-scroll` deliberately have none: what they do is a canvas or
156
+ a measured viewport, so every honest method would read the same for a working
157
+ component and a broken one.
153
158
  Load them with `TestbedHarnessEnvironment` and narrow with
154
159
  `WrButtonHarness.with({ text: 'Save' })` instead of querying ngwr's markup.
155
160
  Dialog, toast and a service-opened drawer render outside the fixture — load
@@ -192,7 +197,21 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
192
197
  listed here rather than embedding a copy of them. Client config for Claude
193
198
  Code / Claude Desktop / Cursor, and a worked example of each tool:
194
199
  https://ngwr.dev/guides/mcp
200
+ - **Agent skill — the rules, not the catalog.** `skills/ngwr/SKILL.md` in the
201
+ installed package (also at https://ngwr.dev/skills/ngwr/SKILL.md) is about a
202
+ page of the things this library does that a reasonable guess gets wrong: the
203
+ button's selector is `wr-btn`, a checkbox's group identity is `checkboxValue`,
204
+ there is no `ControlValueAccessor`, imports come from the entry point rather
205
+ than a barrel. `references/catalog.md` and `references/setup.md` sit beside it
206
+ for the long tail. Generated from the same pass as `llms-full.txt`:
207
+ https://ngwr.dev/guides/agent-skill
208
+ - **Registry — an open format for shareable theme presets and blocks.** One
209
+ installable unit per JSON file, hosted anywhere; the contract is
210
+ https://ngwr.dev/registry/schema.json and two worked examples sit beside it at
211
+ `/registry/items/`. `cssVars` keys are `--wr-*` tokens, `entryPoints` names
212
+ `ngwr/*` subpaths, and a `files[].target` is always relative:
213
+ https://ngwr.dev/guides/registry
195
214
  - All site URLs (for crawlers): https://ngwr.dev/sitemap.xml
196
215
  - Source, README, per-component `.d.ts` types: https://github.com/thekhegay/ngwr
197
216
  (installed at `node_modules/ngwr/types/ngwr-<name>.d.ts`; the package also
198
- ships `README.md`, `llms.txt`, and `llms-full.txt`)
217
+ ships `README.md`, `llms.txt`, `llms-full.txt` and `skills/ngwr/`)
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ const REQUIRED_PROVIDERS = [
8
+ {
9
+ test: /^Wr(Dialog|Drawer|Toast|Popover|Popconfirm|ContextMenu|Select|Dropdown|CommandPalette|Cascader|Mention|DatePicker|Tour|Lightbox)/,
10
+ provider: "provideWrOverlay() // from 'ngwr/overlay'",
11
+ why: 'overlays render into an ngwr-owned container; without it they never appear',
12
+ },
13
+ {
14
+ test: /^WrIcon/,
15
+ provider: "provideWrIcons(lucideIcons({ … })) // from 'ngwr/icon' + 'ngwr/icon/adapters/lucide'",
16
+ why: 'icons resolve by name from a registry you populate',
17
+ },
18
+ {
19
+ test: /^WrDatePicker|^WrCalendar|^WrEventCalendar/,
20
+ provider: "provideWrDateAdapter(wrDateFnsAdapter) // from 'ngwr/date-adapter-fns'",
21
+ why: 'every date mode goes through an adapter; there is no built-in default',
22
+ },
23
+ {
24
+ test: /^WrT$|^WrI18n/,
25
+ provider: "provideWrI18n() + provideWrI18nStaticLoader({ en: wrEn }) // from 'ngwr/i18n'",
26
+ why: 'the pipe and directive read from a catalog you provide',
27
+ },
28
+ ];
29
+ export { REQUIRED_PROVIDERS };
package/mcp/tools.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
6
  */
7
7
  import { declaredClasses, extractClass } from './api.js';
8
+ import { REQUIRED_PROVIDERS } from './providers.js';
8
9
  const DOCS = 'https://ngwr.dev';
9
10
  /**
10
11
  * The four tools, and why there are only four.
@@ -77,35 +78,6 @@ const TOOLS = [
77
78
  },
78
79
  },
79
80
  ];
80
- /**
81
- * Providers a symbol cannot work without.
82
- *
83
- * Hard-coded, and the list is short on purpose: these are the four cases where
84
- * the component compiles, renders nothing useful, and gives no error that names
85
- * the cause. Everything else is discoverable from the docs page.
86
- */
87
- const REQUIRED_PROVIDERS = [
88
- {
89
- test: /^Wr(Dialog|Drawer|Toast|Popover|Popconfirm|ContextMenu|Select|Dropdown|CommandPalette|Cascader|Mention|DatePicker|Tour|Lightbox)/,
90
- provider: "provideWrOverlay() // from 'ngwr/overlay'",
91
- why: 'overlays render into an ngwr-owned container; without it they never appear',
92
- },
93
- {
94
- test: /^WrIcon/,
95
- provider: "provideWrIcons(lucideIcons({ … })) // from 'ngwr/icon' + 'ngwr/icon/adapters/lucide'",
96
- why: 'icons resolve by name from a registry you populate',
97
- },
98
- {
99
- test: /^WrDatePicker|^WrCalendar|^WrEventCalendar/,
100
- provider: "provideWrDateAdapter(wrDateFnsAdapter) // from 'ngwr/date-adapter-fns'",
101
- why: 'every date mode goes through an adapter; there is no built-in default',
102
- },
103
- {
104
- test: /^WrT$|^WrI18n/,
105
- provider: "provideWrI18n() + provideWrI18nStaticLoader({ en: wrEn }) // from 'ngwr/i18n'",
106
- why: 'the pipe and directive read from a catalog you provide',
107
- },
108
- ];
109
81
  /**
110
82
  * The published schema, actually enforced.
111
83
  *