ngwr 7.2.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/README.md +8 -7
  2. package/alert/styles/_index.scss +44 -17
  3. package/avatar/styles/_index.scss +2 -2
  4. package/badge/styles/_index.scss +11 -7
  5. package/badge/styles/_tag.scss +1 -1
  6. package/bar-chart/styles/_index.scss +1 -2
  7. package/breadcrumbs/styles/_index.scss +4 -2
  8. package/burger/styles/_index.scss +2 -2
  9. package/button/styles/_index.scss +30 -20
  10. package/calendar/styles/_index.scss +11 -9
  11. package/calendar-heatmap/styles/_index.scss +2 -0
  12. package/card/styles/_index.scss +1 -1
  13. package/carousel/styles/_index.scss +3 -1
  14. package/cascader/styles/_index.scss +54 -14
  15. package/checkbox/styles/_index.scss +21 -4
  16. package/collapse/styles/_index.scss +1 -1
  17. package/color-picker/styles/_index.scss +18 -12
  18. package/command-palette/styles/_index.scss +3 -3
  19. package/compare/styles/_index.scss +3 -3
  20. package/context-menu/styles/_index.scss +1 -1
  21. package/date-picker/styles/_index.scss +5 -6
  22. package/density/styles/_index.scss +13 -3
  23. package/dialog/styles/_index.scss +3 -3
  24. package/divider/styles/_index.scss +1 -1
  25. package/drawer/styles/_index.scss +13 -11
  26. package/dropdown/styles/_index.scss +2 -2
  27. package/fesm2022/ngwr-affix.mjs +3 -3
  28. package/fesm2022/ngwr-alert.mjs +22 -10
  29. package/fesm2022/ngwr-alert.mjs.map +1 -1
  30. package/fesm2022/ngwr-anchor.mjs +3 -3
  31. package/fesm2022/ngwr-aurora.mjs +3 -3
  32. package/fesm2022/ngwr-avatar.mjs +3 -3
  33. package/fesm2022/ngwr-back-top.mjs +3 -3
  34. package/fesm2022/ngwr-badge.mjs +6 -6
  35. package/fesm2022/ngwr-bar-chart.mjs +3 -3
  36. package/fesm2022/ngwr-blur-text.mjs +3 -3
  37. package/fesm2022/ngwr-border-glow.mjs +3 -3
  38. package/fesm2022/ngwr-breadcrumbs.mjs +7 -7
  39. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  40. package/fesm2022/ngwr-burger.mjs +3 -3
  41. package/fesm2022/ngwr-button.mjs +6 -6
  42. package/fesm2022/ngwr-calendar-heatmap.mjs +3 -3
  43. package/fesm2022/ngwr-calendar.mjs +4 -4
  44. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  45. package/fesm2022/ngwr-card.mjs +10 -10
  46. package/fesm2022/ngwr-card.mjs.map +1 -1
  47. package/fesm2022/ngwr-carousel.mjs +50 -9
  48. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  49. package/fesm2022/ngwr-cascader.mjs +12 -35
  50. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  51. package/fesm2022/ngwr-checkbox.mjs +13 -30
  52. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  53. package/fesm2022/ngwr-circular-text.mjs +3 -3
  54. package/fesm2022/ngwr-click-spark.mjs +25 -6
  55. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  56. package/fesm2022/ngwr-clipboard.mjs +27 -6
  57. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  58. package/fesm2022/ngwr-collapse.mjs +9 -9
  59. package/fesm2022/ngwr-color-picker.mjs +7 -7
  60. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngwr-command-palette.mjs +3 -3
  62. package/fesm2022/ngwr-compare.mjs +3 -3
  63. package/fesm2022/ngwr-confetti.mjs +3 -3
  64. package/fesm2022/ngwr-context-menu.mjs +39 -15
  65. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  66. package/fesm2022/ngwr-cookie.mjs +3 -3
  67. package/fesm2022/ngwr-counter.mjs +12 -8
  68. package/fesm2022/ngwr-counter.mjs.map +1 -1
  69. package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
  70. package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
  71. package/fesm2022/ngwr-date-adapter.mjs +3 -3
  72. package/fesm2022/ngwr-date-picker.mjs +25 -11
  73. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  74. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  75. package/fesm2022/ngwr-density.mjs +14 -14
  76. package/fesm2022/ngwr-density.mjs.map +1 -1
  77. package/fesm2022/ngwr-descriptions.mjs +6 -6
  78. package/fesm2022/ngwr-dialog.mjs +15 -15
  79. package/fesm2022/ngwr-directives.mjs +15 -87
  80. package/fesm2022/ngwr-directives.mjs.map +1 -1
  81. package/fesm2022/ngwr-divider.mjs +3 -3
  82. package/fesm2022/ngwr-donut-chart.mjs +10 -4
  83. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  84. package/fesm2022/ngwr-drag-drop.mjs +18 -8
  85. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  86. package/fesm2022/ngwr-drawer.mjs +80 -19
  87. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  88. package/fesm2022/ngwr-dropdown.mjs +9 -9
  89. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  90. package/fesm2022/ngwr-empty.mjs +3 -3
  91. package/fesm2022/ngwr-falling-text.mjs +3 -3
  92. package/fesm2022/ngwr-file-upload.mjs +3 -3
  93. package/fesm2022/ngwr-form.mjs +9 -9
  94. package/fesm2022/ngwr-fuzzy-text.mjs +8 -7
  95. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  96. package/fesm2022/ngwr-gauge.mjs +3 -3
  97. package/fesm2022/ngwr-glitch-text.mjs +15 -7
  98. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  99. package/fesm2022/ngwr-gradient-text.mjs +3 -3
  100. package/fesm2022/ngwr-hotkey.mjs +6 -6
  101. package/fesm2022/ngwr-i18n.mjs +9 -9
  102. package/fesm2022/ngwr-icon.mjs +3 -3
  103. package/fesm2022/ngwr-image-cropper.mjs +3 -3
  104. package/fesm2022/ngwr-input-number.mjs +4 -4
  105. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  106. package/fesm2022/ngwr-input-otp.mjs +10 -4
  107. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  108. package/fesm2022/ngwr-input.mjs +25 -16
  109. package/fesm2022/ngwr-input.mjs.map +1 -1
  110. package/fesm2022/ngwr-keyboard.mjs +3 -3
  111. package/fesm2022/ngwr-knob.mjs +3 -3
  112. package/fesm2022/ngwr-layout.mjs +15 -15
  113. package/fesm2022/ngwr-lightbox.mjs +60 -5
  114. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  115. package/fesm2022/ngwr-line-chart.mjs +3 -3
  116. package/fesm2022/ngwr-list.mjs +7 -7
  117. package/fesm2022/ngwr-list.mjs.map +1 -1
  118. package/fesm2022/ngwr-loading-bar.mjs +6 -6
  119. package/fesm2022/ngwr-marquee.mjs +3 -3
  120. package/fesm2022/ngwr-media.mjs +3 -3
  121. package/fesm2022/ngwr-mention.mjs +6 -6
  122. package/fesm2022/ngwr-meta.mjs +6 -6
  123. package/fesm2022/ngwr-meter-group.mjs +3 -3
  124. package/fesm2022/ngwr-overlay.mjs +3 -3
  125. package/fesm2022/ngwr-page-header.mjs +3 -3
  126. package/fesm2022/ngwr-pagination.mjs +14 -16
  127. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  128. package/fesm2022/ngwr-pipes.mjs +21 -21
  129. package/fesm2022/ngwr-platform.mjs +3 -3
  130. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  131. package/fesm2022/ngwr-popover.mjs +6 -6
  132. package/fesm2022/ngwr-progress.mjs +3 -3
  133. package/fesm2022/ngwr-qr.mjs +3 -3
  134. package/fesm2022/ngwr-radio.mjs +28 -26
  135. package/fesm2022/ngwr-radio.mjs.map +1 -1
  136. package/fesm2022/ngwr-rating.mjs +12 -23
  137. package/fesm2022/ngwr-rating.mjs.map +1 -1
  138. package/fesm2022/ngwr-result.mjs +12 -12
  139. package/fesm2022/ngwr-rotating-text.mjs +18 -7
  140. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  141. package/fesm2022/ngwr-scroll.mjs +3 -3
  142. package/fesm2022/ngwr-segmented.mjs +10 -22
  143. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  144. package/fesm2022/ngwr-select.mjs +26 -13
  145. package/fesm2022/ngwr-select.mjs.map +1 -1
  146. package/fesm2022/ngwr-shiny-text.mjs +6 -6
  147. package/fesm2022/ngwr-sidebar.mjs +3 -3
  148. package/fesm2022/ngwr-skeleton.mjs +3 -3
  149. package/fesm2022/ngwr-slider.mjs +3 -3
  150. package/fesm2022/ngwr-sparkline.mjs +3 -3
  151. package/fesm2022/ngwr-speed-dial.mjs +3 -3
  152. package/fesm2022/ngwr-spinner.mjs +3 -3
  153. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  154. package/fesm2022/ngwr-split-text.mjs +3 -3
  155. package/fesm2022/ngwr-splitter.mjs +3 -3
  156. package/fesm2022/ngwr-spotlight-card.mjs +8 -8
  157. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  158. package/fesm2022/ngwr-squircle.mjs +6 -6
  159. package/fesm2022/ngwr-star-border.mjs +3 -3
  160. package/fesm2022/ngwr-statistic.mjs +79 -10
  161. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  162. package/fesm2022/ngwr-stepper.mjs +6 -6
  163. package/fesm2022/ngwr-storage.mjs +3 -3
  164. package/fesm2022/ngwr-switch.mjs +10 -14
  165. package/fesm2022/ngwr-switch.mjs.map +1 -1
  166. package/fesm2022/ngwr-table.mjs +20 -14
  167. package/fesm2022/ngwr-table.mjs.map +1 -1
  168. package/fesm2022/ngwr-tabs.mjs +45 -11
  169. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  170. package/fesm2022/ngwr-textarea.mjs +84 -25
  171. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  172. package/fesm2022/ngwr-theme.mjs +3 -3
  173. package/fesm2022/ngwr-tilt-card.mjs +6 -6
  174. package/fesm2022/ngwr-timeline.mjs +6 -6
  175. package/fesm2022/ngwr-toast.mjs +99 -25
  176. package/fesm2022/ngwr-toast.mjs.map +1 -1
  177. package/fesm2022/ngwr-toolbar.mjs +13 -6
  178. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  179. package/fesm2022/ngwr-tree.mjs +3 -3
  180. package/fesm2022/ngwr-typewriter.mjs +3 -3
  181. package/fesm2022/ngwr-typography.mjs +3 -3
  182. package/fesm2022/ngwr-validators.mjs +41 -3
  183. package/fesm2022/ngwr-validators.mjs.map +1 -1
  184. package/fesm2022/ngwr-version.mjs +1 -1
  185. package/fesm2022/ngwr-version.mjs.map +1 -1
  186. package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
  187. package/fesm2022/ngwr-waves.mjs +3 -3
  188. package/fesm2022/ngwr-window.mjs +12 -12
  189. package/file-upload/styles/_index.scss +3 -3
  190. package/form/styles/_index.scss +5 -5
  191. package/glitch-text/styles/_index.scss +3 -6
  192. package/image-cropper/styles/_index.scss +3 -3
  193. package/input/styles/_index.scss +26 -7
  194. package/input-otp/styles/_index.scss +23 -5
  195. package/keyboard/styles/_index.scss +6 -4
  196. package/knob/styles/_index.scss +1 -1
  197. package/lightbox/styles/_index.scss +31 -10
  198. package/list/styles/_index.scss +3 -3
  199. package/llms-full.txt +668 -0
  200. package/llms.txt +106 -0
  201. package/mention/styles/_index.scss +2 -2
  202. package/overlay/styles/_index.scss +1 -1
  203. package/package.json +1 -6
  204. package/pagination/styles/_index.scss +36 -25
  205. package/popconfirm/styles/_index.scss +1 -1
  206. package/popover/styles/_index.scss +2 -2
  207. package/radio/styles/_index.scss +20 -5
  208. package/rating/styles/_index.scss +12 -1
  209. package/schematics/migrations/v8/index.js +122 -0
  210. package/schematics/migrations.json +5 -0
  211. package/schematics/ng-add/index.js +3 -3
  212. package/schematics/ng-add/schema.json +6 -6
  213. package/schematics/provider/schema.json +1 -1
  214. package/schematics/use/symbol-map.json +11 -2
  215. package/segmented/styles/_index.scss +31 -8
  216. package/select/styles/_index.scss +73 -25
  217. package/sidebar/styles/_index.scss +3 -3
  218. package/slider/styles/_index.scss +5 -3
  219. package/speed-dial/styles/_index.scss +1 -0
  220. package/splitter/styles/_index.scss +7 -4
  221. package/spotlight-card/styles/_index.scss +8 -4
  222. package/stepper/styles/_index.scss +4 -4
  223. package/styles/_animations.scss +0 -23
  224. package/styles.scss +0 -1
  225. package/switch/styles/_index.scss +25 -6
  226. package/table/styles/_index.scss +69 -8
  227. package/tabs/styles/_index.scss +46 -3
  228. package/textarea/styles/_index.scss +59 -4
  229. package/theme/styles/_colors.scss +57 -0
  230. package/theme/styles/_dark.scss +22 -8
  231. package/theme/styles/_focus.scss +5 -0
  232. package/theme/styles/_variables.scss +24 -0
  233. package/timeline/styles/_index.scss +11 -2
  234. package/toast/styles/_index.scss +15 -5
  235. package/toolbar/styles/_index.scss +30 -1
  236. package/tree/styles/_index.scss +18 -17
  237. package/types/ngwr-alert.d.ts +16 -6
  238. package/types/ngwr-carousel.d.ts +8 -1
  239. package/types/ngwr-cascader.d.ts +5 -2
  240. package/types/ngwr-checkbox.d.ts +5 -2
  241. package/types/ngwr-click-spark.d.ts +13 -1
  242. package/types/ngwr-clipboard.d.ts +12 -1
  243. package/types/ngwr-context-menu.d.ts +20 -3
  244. package/types/ngwr-date-picker.d.ts +3 -0
  245. package/types/ngwr-density.d.ts +7 -7
  246. package/types/ngwr-directives.d.ts +17 -49
  247. package/types/ngwr-drag-drop.d.ts +13 -1
  248. package/types/ngwr-drawer.d.ts +11 -3
  249. package/types/ngwr-fuzzy-text.d.ts +1 -1
  250. package/types/ngwr-glitch-text.d.ts +9 -3
  251. package/types/ngwr-input-otp.d.ts +6 -2
  252. package/types/ngwr-input.d.ts +27 -13
  253. package/types/ngwr-lightbox.d.ts +14 -1
  254. package/types/ngwr-pagination.d.ts +10 -10
  255. package/types/ngwr-radio.d.ts +14 -3
  256. package/types/ngwr-rating.d.ts +5 -1
  257. package/types/ngwr-rotating-text.d.ts +1 -0
  258. package/types/ngwr-segmented.d.ts +5 -2
  259. package/types/ngwr-select.d.ts +6 -2
  260. package/types/ngwr-spotlight-card.d.ts +1 -1
  261. package/types/ngwr-statistic.d.ts +35 -1
  262. package/types/ngwr-switch.d.ts +5 -1
  263. package/types/ngwr-table.d.ts +7 -1
  264. package/types/ngwr-tabs.d.ts +6 -0
  265. package/types/ngwr-textarea.d.ts +25 -3
  266. package/types/ngwr-toast.d.ts +7 -1
  267. package/types/ngwr-toolbar.d.ts +7 -1
  268. package/types/ngwr-validators.d.ts +3 -1
  269. package/types/ngwr-version.d.ts +1 -1
  270. package/window/styles/_index.scss +8 -8
  271. package/fesm2022/ngwr-scramble-text.mjs +0 -165
  272. package/fesm2022/ngwr-scramble-text.mjs.map +0 -1
  273. package/scramble-text/scramble-text.scss +0 -1
  274. package/scramble-text/styles/_index.scss +0 -8
  275. package/types/ngwr-scramble-text.d.ts +0 -49
package/llms-full.txt ADDED
@@ -0,0 +1,668 @@
1
+ # ngwr — full reference
2
+
3
+ > Generated from the library source: every entry point with its import path,
4
+ > selector(s), public exports, and description. For exact input / output
5
+ > signatures read the bundled `.d.ts` types. Concise quick-ref: /llms.txt
6
+
7
+ ## ngwr/affix
8
+ - import: `import { WrAffix } from 'ngwr/affix'`
9
+ - selector: `[wrAffix]`
10
+ - exports: WrAffix
11
+
12
+ ## ngwr/alert
13
+ - import: `import { WrAlert } from 'ngwr/alert'`
14
+ - selector: `wr-alert`
15
+ - exports: WrAlert, WrAlertType
16
+ - Inline status banner — info, success, warning, danger, neutral, offline.
17
+
18
+ ## ngwr/anchor
19
+ - import: `import { WrAnchor } from 'ngwr/anchor'`
20
+ - selector: `wr-anchor`
21
+ - exports: WrAnchor, type WrAnchorLink
22
+ - Scroll-spy in-page navigation. Click a link to smooth-scroll; the closest visible heading auto-highlights.
23
+
24
+ ## ngwr/aurora
25
+ - import: `import { WrAurora } from 'ngwr/aurora'`
26
+ - selector: `wr-aurora`
27
+ - exports: WrAurora
28
+
29
+ ## ngwr/avatar
30
+ - import: `import { WrAvatar } from 'ngwr/avatar'`
31
+ - selector: `wr-avatar`
32
+ - exports: WrAvatar, WrAvatarSize
33
+ - Image avatar with a fixed square or rounded shape. Shows a spinner while the image loads.
34
+
35
+ ## ngwr/back-top
36
+ - import: `import { WrBackTop } from 'ngwr/back-top'`
37
+ - selector: `wr-back-top`
38
+ - exports: WrBackTop
39
+ - Pinned floating button that appears once the user has scrolled past `visibilityThreshold` and scrolls to the top on click.
40
+
41
+ ## ngwr/badge
42
+ - import: `import { WrBadge } from 'ngwr/badge'`
43
+ - selector: `wr-badge`, `wr-tag`
44
+ - exports: WrBadge, WrTag, WrBadgeSize, WrTagIconPosition
45
+ - Small status indicator with color variants and optional pill shape. Reach for `<wr-tag>` (in the same entry) when you need a richer label — icons, loading state, outlined / transparent styles.
46
+
47
+ ## ngwr/bar-chart
48
+ - import: `import { WrBarChart } from 'ngwr/bar-chart'`
49
+ - selector: `wr-bar-chart`
50
+ - exports: WrBarChart, type WrBarChartDatum
51
+ - Vertical bars, one series. Per-bar color overrides via the `color` field.
52
+
53
+ ## ngwr/blur-text
54
+ - import: `import { WrBlurText } from 'ngwr/blur-text'`
55
+ - selector: `wr-blur-text`
56
+ - exports: WrBlurText
57
+
58
+ ## ngwr/border-glow
59
+ - import: `import { WrBorderGlow } from 'ngwr/border-glow'`
60
+ - selector: `wr-border-glow`
61
+ - exports: WrBorderGlow
62
+
63
+ ## ngwr/breadcrumbs
64
+ - import: `import { WrBreadcrumbs } from 'ngwr/breadcrumbs'`
65
+ - selector: `wr-breadcrumbs-item`, `wr-breadcrumbs`
66
+ - exports: WrBreadcrumbs, WrBreadcrumbsItem
67
+ - Navigation trail showing the user's location in the site hierarchy. `<wr-breadcrumbs-item>` renders as a `<li>` containing either an `<a>` (when linked) or a `<span aria-current=&quot;page&quot;>` (the final crumb). Separator is a CSS pseudo-element so it doesn't pollute the accessibility tree. Each item accepts an optional leading icon.
68
+
69
+ ## ngwr/burger
70
+ - import: `import { WrBurger } from 'ngwr/burger'`
71
+ - selector: `wr-burger`
72
+ - exports: WrBurger
73
+ - Animated menu toggle — three SVG strokes morph between a hamburger and a close mark. Two-way bindable, so it pairs naturally with a `<wr-drawer>`.
74
+
75
+ ## ngwr/button
76
+ - import: `import { WrButton } from 'ngwr/button'`
77
+ - selector: `wr-btn-group`, `wr-btn, button[wr-btn], a[wr-btn]`
78
+ - exports: WrButton, WrButtonGroup, WrButtonSize, WrButtonShape, WrButtonIconPosition
79
+ - Trigger an action. Renders as <wr-btn>, button[wr-btn], or a[wr-btn].
80
+
81
+ ## ngwr/calendar
82
+ - import: `import { WrCalendar } from 'ngwr/calendar'`
83
+ - selector: `wr-calendar`
84
+ - exports: WrCalendar, WrCalendarMode, WrCalendarRange
85
+ - Month-view calendar — standalone widget for picking a single date or a date range. Built on the `WrDateAdapter` abstraction. Click the header label to zoom into month / year quick-pick views.
86
+
87
+ ## ngwr/calendar-heatmap
88
+ - import: `import { WrCalendarHeatmap } from 'ngwr/calendar-heatmap'`
89
+ - selector: `wr-calendar-heatmap`
90
+ - exports: WrCalendarHeatmap, type WrHeatmapDatum
91
+ - Year-grid heatmap — the classic GitHub contributions layout.
92
+
93
+ ## ngwr/card
94
+ - import: `import { WrCard } from 'ngwr/card'`
95
+ - selector: `wr-card`, `wr-card-header`, `wr-card-footer`
96
+ - exports: WrCard, WrCardHeader, WrCardFooter
97
+ - Surface container with optional header / footer slots. Bordered by default; toggle hoverable for clickable lists and loading for in-place data refresh.
98
+
99
+ ## ngwr/carousel
100
+ - import: `import { WrCarousel } from 'ngwr/carousel'`
101
+ - selector: `wr-carousel-slide`, `wr-carousel`
102
+ - exports: WrCarousel, WrCarouselSlide
103
+ - Slide carousel with prev/next, dots, and optional autoplay. Pause on hover.
104
+
105
+ ## ngwr/cascader
106
+ - import: `import { WrCascader } from 'ngwr/cascader'`
107
+ - selector: `wr-cascader`
108
+ - exports: WrCascader, type WrCascaderOption, type WrCascaderSize
109
+ - Multi-level select. Drills through hierarchical categories one column at a time; picking a leaf commits the full path. Implements `ControlValueAccessor` — model is `readonly T[]`.
110
+
111
+ ## ngwr/checkbox
112
+ - import: `import { WrCheckbox } from 'ngwr/checkbox'`
113
+ - selector: `wr-checkbox-group`, `wr-checkbox`
114
+ - exports: WrCheckbox, WrCheckboxSize, WrCheckboxGroup, WR_CHECKBOX_GROUP, type WrCheckboxGroupContext
115
+ - Two-state checkbox. Standalone (boolean) or inside <wr-checkbox-group> (array of values).
116
+
117
+ ## ngwr/circular-text
118
+ - import: `import { WrCircularText } from 'ngwr/circular-text'`
119
+ - selector: `wr-circular-text`
120
+ - exports: WrCircularText, type WrCircularTextHover
121
+
122
+ ## ngwr/click-spark
123
+ - import: `import { WrClickSpark } from 'ngwr/click-spark'`
124
+ - selector: `wr-click-spark`
125
+ - exports: WrClickSpark, type WrClickSparkEasing
126
+
127
+ ## ngwr/clipboard
128
+ - import: `import { WrClipboard } from 'ngwr/clipboard'`
129
+ - exports: WrClipboard, type WrClipboardPermission
130
+
131
+ ## ngwr/collapse
132
+ - import: `import { WrCollapse } from 'ngwr/collapse'`
133
+ - selector: `wr-accordion`, `wr-collapse-group`, `wr-collapse`
134
+ - exports: WrCollapse, WrCollapseGroup, WrAccordion, WR_COLLAPSE_GROUP, type WrCollapseGroupContext
135
+ - Expandable panel with a clickable header. Two-way binds `open`. Wrap in `<wr-collapse-group accordion>` for single-open behavior.
136
+
137
+ ## ngwr/color-picker
138
+ - import: `import { WrColorPicker } from 'ngwr/color-picker'`
139
+ - selector: `[wrColorPickerTrigger]`, `wr-color-picker`
140
+ - exports: WrColorPicker, WrColorPickerTrigger, hslToRgb, hsvToRgb, parseHex, rgbToHsl, rgbToHsv, toHex, type WrHsl, type WrHsv, type WrRgb, WrColorFormat
141
+ - HSV canvas + hue / alpha sliders + HEX / RGB / HSL inputs + optional swatches. Use `<wr-color-picker>` inline or anchor it to a button with `[wrColorPickerTrigger]`.
142
+
143
+ ## ngwr/command-palette
144
+ - import: `import { WrCommandPalette } from 'ngwr/command-palette'`
145
+ - selector: `wr-command-palette`
146
+ - exports: WrCommandPalette, WrCommandItem, WrCommandGroup
147
+ - ⌘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.
148
+
149
+ ## ngwr/compare
150
+ - import: `import { WrCompare } from 'ngwr/compare'`
151
+ - selector: `wr-compare`
152
+ - exports: WrCompare
153
+ - Before/after split with a draggable divider. Project anything (images, text, divs, components) via `[wrCompareBefore]` and `[wrCompareAfter]` attributes — the component stacks them and clips the after side.
154
+
155
+ ## ngwr/confetti
156
+ - import: `import { WrConfetti } from 'ngwr/confetti'`
157
+ - exports: WrConfetti, WrConfettiOptions
158
+
159
+ ## ngwr/context-menu
160
+ - import: `import { WrContextMenu } from 'ngwr/context-menu'`
161
+ - selector: `wr-context-menu-divider`, `wr-context-menu-item`, `wr-context-menu`, `[wrContextMenu]`
162
+ - exports: WrContextMenu, WrContextMenuPanel, WrContextMenuItem, WrContextMenuDivider
163
+ - 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.
164
+
165
+ ## ngwr/cookie
166
+ - import: `import { WrCookie } from 'ngwr/cookie'`
167
+ - exports: WrCookie, type WrCookieOptions
168
+
169
+ ## ngwr/counter
170
+ - import: `import { WrCounter } from 'ngwr/counter'`
171
+ - selector: `wr-count-up`, `wr-counter`
172
+ - exports: WrCounter, WrCounterMode, WrCountUp, type WrCountUpDirection, type WrCountUpEasing, type WrCountUpTrigger
173
+ - Animated number display. Use **odometer** mode for rolling-digit motion (mechanical counter look) or **tween** mode for an eased count-up from the previous value.
174
+
175
+ ## ngwr/date-adapter
176
+ - import: `import { WrDateAdapter } from 'ngwr/date-adapter'`
177
+ - exports: WrDateAdapter, WrNativeDateAdapter, provideWrDateAdapter, type WrDateAdapterOptions, WR_DATE_LOCALE, WrDateFormat, isNamedFormat
178
+
179
+ ## ngwr/date-adapter-fns
180
+ - import: `import { WrDateFnsAdapter } from 'ngwr/date-adapter-fns'`
181
+ - exports: WrDateFnsAdapter, provideWrDateFnsAdapter
182
+
183
+ ## ngwr/date-adapter-luxon
184
+ - import: `import { WrLuxonAdapter } from 'ngwr/date-adapter-luxon'`
185
+ - exports: WrLuxonAdapter, provideWrLuxonAdapter
186
+
187
+ ## ngwr/date-picker
188
+ - import: `import { WrDatePicker } from 'ngwr/date-picker'`
189
+ - selector: `wr-date-picker`
190
+ - exports: WrDatePicker
191
+ - 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`.
192
+
193
+ ## ngwr/decrypt-text
194
+ - import: `import { WrDecryptText } from 'ngwr/decrypt-text'`
195
+ - selector: `wr-decrypt-text`
196
+ - exports: WrDecryptText, type WrDecryptTextAnimateOn, type WrDecryptTextClickMode, type WrDecryptTextRevealDirection
197
+
198
+ ## ngwr/density
199
+ - import: `import { WrDensity } from 'ngwr/density'`
200
+ - selector: `[wrDensity]`
201
+ - exports: WrDensity, WrDensityDirective, provideWrDensity, WR_DENSITY_CONFIG, DEFAULT_WR_DENSITY_CONFIG, type WrDensityValue, type WrDensityConfig
202
+
203
+ ## ngwr/descriptions
204
+ - import: `import { WrDescriptions } from 'ngwr/descriptions'`
205
+ - selector: `wr-description-item`, `wr-descriptions`
206
+ - exports: WrDescriptions, WrDescriptionItem
207
+ - Read-only labeled key/value list. `inline` for label-left / value-right, `bordered` for a card.
208
+
209
+ ## ngwr/dialog
210
+ - import: `import { WrDialog } from 'ngwr/dialog'`
211
+ - exports: WrDialog, WrDialogRef, WR_DIALOG_DATA, WrDialogOptions, WrDialogTitle, WrDialogContent, WrDialogFooter, WrDialogClose
212
+ - Modal dialogs via a service that wraps @angular/cdk/dialog. Open any component as a dialog and read its close result as a Promise.
213
+
214
+ ## ngwr/directives
215
+ - import: `import { WrAutofocus } from 'ngwr/directives'`
216
+ - selector: `[wrAutofocus]`, `textarea[wrAutosize]`, `[wrClickOutside]`, `[wrCopyToClipboard]`
217
+ - exports: WrAutofocus, WrAutosize, WrClickOutside, WrCopyToClipboard
218
+
219
+ ## ngwr/divider
220
+ - import: `import { WrDivider } from 'ngwr/divider'`
221
+ - selector: `wr-divider`
222
+ - exports: WrDivider, WrDividerType
223
+ - Horizontal separator. Solid, dashed, or dotted; tinted with any theme color.
224
+
225
+ ## ngwr/donut-chart
226
+ - import: `import { WrDonutChart } from 'ngwr/donut-chart'`
227
+ - selector: `wr-donut-chart`
228
+ - exports: WrDonutChart, type WrDonutSegment
229
+ - Data shapes used by the inputs and outputs above.
230
+
231
+ ## ngwr/drag-drop
232
+ - import: `import { WrSortableList } from 'ngwr/drag-drop'`
233
+ - selector: `[wrDragHandle]`, `wr-sortable-list`
234
+ - exports: WrSortableList, type WrSortableReorderEvent, WrDragHandle
235
+ - `<wr-sortable-list>` wraps CDK's `cdkDropList` + `cdkDrag` with a signal-based two-way `[(items)]` binding. Includes the `[wrDragHandle]` helper and themed `.cdk-drag-preview` / `.cdk-drag-placeholder` defaults. Touch-ready: a default touch start-delay lets a quick swipe scroll the list while a hold begins a drag.
236
+
237
+ ## ngwr/drawer
238
+ - import: `import { WrDrawer } from 'ngwr/drawer'`
239
+ - selector: `wr-drawer`
240
+ - exports: WrDrawer, WrDrawerTitle, WrDrawerContent, WrDrawerFooter, WrDrawerClose, WrDrawerPosition
241
+ - Side panel that slides in from any edge. Two-way binds `open`; renders into a CDK overlay so it sits above page content.
242
+
243
+ ## ngwr/dropdown
244
+ - import: `import { WrDropdown } from 'ngwr/dropdown'`
245
+ - selector: `wr-dropdown-item`, `wr-dropdown-menu`, `[wrDropdown]`
246
+ - exports: WrDropdown, WrDropdownMenu, WrDropdownItem, WrDropdownPosition, WrDropdownTrigger
247
+ - Attach a floating menu to any trigger via the wrDropdown directive. Built on CDK Overlay — handles outside clicks, Escape, and edge collisions.
248
+
249
+ ## ngwr/empty
250
+ - import: `import { WrEmpty } from 'ngwr/empty'`
251
+ - selector: `wr-empty`
252
+ - exports: WrEmpty
253
+ - Empty-state placeholder for when the underlying data is missing. Project a description and an optional `[wrEmptyActions]` row.
254
+
255
+ ## ngwr/falling-text
256
+ - import: `import { WrFallingText } from 'ngwr/falling-text'`
257
+ - selector: `wr-falling-text`
258
+ - exports: WrFallingText, type WrFallingTextTrigger
259
+
260
+ ## ngwr/file-upload
261
+ - import: `import { WrFileUpload } from 'ngwr/file-upload'`
262
+ - selector: `wr-file-upload`
263
+ - exports: WrFileUpload, WrFileUploadRejection, WrFileUploadRejectionReason
264
+ - 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.
265
+
266
+ ## ngwr/form
267
+ - import: `import { WrFormItem } from 'ngwr/form'`
268
+ - selector: `wr-form-field`, `wr-form-error`, `wr-form-item`
269
+ - exports: WrFormItem, WrFormField, WrFormError
270
+ - Layout helpers: <wr-form-item> wraps a label + control + error message; <wr-form-error> renders inline error text.
271
+
272
+ ## ngwr/fuzzy-text
273
+ - import: `import { WrFuzzyText } from 'ngwr/fuzzy-text'`
274
+ - selector: `wr-fuzzy-text`
275
+ - exports: WrFuzzyText, type WrFuzzyTextDirection
276
+
277
+ ## ngwr/gauge
278
+ - import: `import { WrGauge } from 'ngwr/gauge'`
279
+ - selector: `wr-gauge`
280
+ - exports: WrGauge
281
+ - Semicircle progress display — read-only, perfect for utilisation and score widgets.
282
+
283
+ ## ngwr/glitch-text
284
+ - import: `import { WrGlitchText } from 'ngwr/glitch-text'`
285
+ - selector: `wr-glitch-text`
286
+ - exports: WrGlitchText
287
+
288
+ ## ngwr/gradient-text
289
+ - import: `import { WrGradientText } from 'ngwr/gradient-text'`
290
+ - selector: `wr-gradient-text`
291
+ - exports: WrGradientText, type WrGradientTextDirection
292
+
293
+ ## ngwr/hotkey
294
+ - import: `import { WrHotkey } from 'ngwr/hotkey'`
295
+ - selector: `[wrHotkey]`
296
+ - exports: WrHotkey, WrHotkeyBinding, parseHotkeySpec, matchesHotkey, type WrParsedHotkey, WrHotkeyHandle, WrHotkeyOptions, WrHotkeySpec
297
+
298
+ ## ngwr/i18n
299
+ - import: `import { WrI18n } from 'ngwr/i18n'`
300
+ - selector: `[wrT]`
301
+ - exports: WrI18n, WrTPipe, WrTDirective, WR_I18N_CONFIG, DEFAULT_WR_I18N_CONFIG, type WrI18nCatalog, type WrI18nConfig, type WrI18nConfigResolved, type WrI18nParams, type WrI18nMissingHandler, WR_I18N_LOADER, type WrI18nLoader, WrI18nStaticLoader, type WrI18nStaticCatalogs, type WrI18nStaticScopedCatalogs, WrI18nHttpLoader, type WrI18nHttpLoaderConfig, provideWrI18n, provideWrI18nStaticLoader, provideWrI18nHttpLoader, type ProvideWrI18nOptions, useI18nText, readI18nText, useI18nFormatter
302
+
303
+ ## ngwr/icon
304
+ - import: `import { WrIcon } from 'ngwr/icon'`
305
+ - selector: `wr-icon`
306
+ - exports: WrIcon, provideWrIcons, svgIcon, WrIconDef, WrIconName
307
+ - The icon renderer. Resolves a registered name from the `provideWrIcons` registry and inlines its SVG. ngwr ships no built-in icons — bring your own via an adapter or `svgIcon()`.
308
+
309
+ ## ngwr/image-cropper
310
+ - import: `import { WrImageCropper } from 'ngwr/image-cropper'`
311
+ - selector: `wr-image-cropper`
312
+ - exports: WrImageCropper, WrCropRect, WrCropHandle, WrImageOutputType
313
+ - 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.
314
+
315
+ ## ngwr/input
316
+ - import: `import { WrInput } from 'ngwr/input'`
317
+ - selector: `wr-input-group`, `wr-password-toggle`
318
+ - exports: WrInput, WrInputPrefix, WrInputSuffix, WrInputGroup, WrPasswordToggle, WrInputType, WrInputSize
319
+ - Attribute directive applied to a native `<input>` (or `<textarea>`). Because the styling lives on the real input, third-party directives like `ngx-mask`, custom validators, and `[(ngModel)]` compose naturally on the same element.
320
+
321
+ ## ngwr/input-number
322
+ - import: `import { WrInputNumber } from 'ngwr/input-number'`
323
+ - selector: `wr-input-number`
324
+ - exports: WrInputNumber
325
+ - 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.
326
+
327
+ ## ngwr/input-otp
328
+ - import: `import { WrInputOtp } from 'ngwr/input-otp'`
329
+ - selector: `wr-input-otp`
330
+ - exports: WrInputOtp, WrInputOtpMode, WrInputOtpSize
331
+ - 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.
332
+
333
+ ## ngwr/keyboard
334
+ - import: `import { WrKbd } from 'ngwr/keyboard'`
335
+ - selector: `wr-kbd`
336
+ - exports: WrKbd, WrKbdSize
337
+ - Keycap chip for rendering keyboard shortcuts in copy. Stack with a plain `+` between caps for chords.
338
+
339
+ ## ngwr/knob
340
+ - import: `import { WrKnob } from 'ngwr/knob'`
341
+ - selector: `wr-knob`
342
+ - exports: WrKnob
343
+ - Radial dial input. CVA-backed `number | null`. Drag around the dial or use arrow keys (Shift = ×10).
344
+
345
+ ## ngwr/layout
346
+ - import: `import { WrLayout } from 'ngwr/layout'`
347
+ - selector: `wr-layout-content`, `wr-layout-footer`, `wr-layout-header`, `wr-layout-sider`, `wr-layout`
348
+ - exports: WrLayout, WrLayoutHeader, WrLayoutSider, WrLayoutContent, WrLayoutFooter
349
+ - App-shell layout primitives. Container switches to row automatically when a sider is among its children — drop in header / sider / content / footer and it falls into place.
350
+
351
+ ## ngwr/lightbox
352
+ - import: `import { WrLightbox } from 'ngwr/lightbox'`
353
+ - selector: `wr-lightbox`
354
+ - exports: WrLightbox
355
+ - Image with click-to-zoom lightbox. Renders a thumbnail; clicking opens a full-size overlay viewer with backdrop, ESC + click-out to close.
356
+
357
+ ## ngwr/line-chart
358
+ - import: `import { WrLineChart } from 'ngwr/line-chart'`
359
+ - selector: `wr-line-chart`
360
+ - exports: WrLineChart, type WrLineSeries
361
+ - Multi-series line chart with a hover tooltip that snaps to the nearest x-axis tick.
362
+
363
+ ## ngwr/list
364
+ - import: `import { WrList } from 'ngwr/list'`
365
+ - selector: `wr-list-item`, `wr-list`
366
+ - exports: WrList, WrListItem
367
+ - Generic list with leading / body / trailing slots. Bordered or flat, with optional dividers + dense padding. Items can be plain or interactive (hover + Enter/Space activation).
368
+
369
+ ## ngwr/loading-bar
370
+ - import: `import { WrLoadingBar } from 'ngwr/loading-bar'`
371
+ - selector: `wr-loading-bar`
372
+ - exports: WrLoadingBar, type WrLoadingState, WrLoadingBarComponent
373
+
374
+ ## ngwr/marquee
375
+ - import: `import { WrMarquee } from 'ngwr/marquee'`
376
+ - selector: `wr-marquee`
377
+ - exports: WrMarquee, type WrMarqueeItem, type WrMarqueeImage, type WrMarqueeNode
378
+
379
+ ## ngwr/media
380
+ - import: `import { WrMedia } from 'ngwr/media'`
381
+ - exports: WrMedia, provideWrMedia, WR_BREAKPOINTS, DEFAULT_WR_BREAKPOINTS, WrBreakpoint, WrBreakpointMap
382
+
383
+ ## ngwr/mention
384
+ - import: `import { WrMention } from 'ngwr/mention'`
385
+ - selector: `wr-mention-panel`, `[wrMention]`
386
+ - exports: WrMention, WrMentionPanel, WrMentionItem, WrMentionCommit
387
+ - `@`-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.
388
+
389
+ ## ngwr/meta
390
+ - import: `import { WrMeta } from 'ngwr/meta'`
391
+ - selector: `[wrMeta]`
392
+ - exports: WrMeta, WrMetaBinding, provideWrMeta, WR_META_DEFAULTS, WrMetaConfig, WrMetaHandle, WrMetaOg, WrMetaTwitter
393
+
394
+ ## ngwr/meter-group
395
+ - import: `import { WrMeterGroup } from 'ngwr/meter-group'`
396
+ - selector: `wr-meter-group`
397
+ - exports: WrMeterGroup, WrMeterSegment
398
+ - Stacked-segment progress bar. Each segment is sized proportionally to its `value` relative to the sum (or the explicit `max`); legend listed underneath.
399
+
400
+ ## ngwr/overlay
401
+ - import: `import { WrOverlayContainer } from 'ngwr/overlay'`
402
+ - exports: WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
403
+
404
+ ## ngwr/page-header
405
+ - import: `import { WrPageHeader } from 'ngwr/page-header'`
406
+ - selector: `wr-page-header`
407
+ - exports: WrPageHeader
408
+ - Top-of-page heading block with three projected slots — breadcrumbs, actions, extra (tags / metadata).
409
+
410
+ ## ngwr/pagination
411
+ - import: `import { WrPagination } from 'ngwr/pagination'`
412
+ - selector: `wr-pagination`
413
+ - exports: WrPagination, WrPaginationAlign
414
+ - Numbered page navigator. Two-way binds currentPage and pageSize via signal models.
415
+
416
+ ## ngwr/pipes
417
+ - import: `import { WrBytes } from 'ngwr/pipes'`
418
+ - exports: WrBytes, WrDate, WrMark, WrNumber, type WrNumberStyle, WrPlural, type WrPluralForms, type WrPluralOptions, WrRange, WrTruncate
419
+
420
+ ## ngwr/platform
421
+ - import: `import { WrPlatform } from 'ngwr/platform'`
422
+ - exports: WrPlatform
423
+
424
+ ## ngwr/popconfirm
425
+ - import: `import { WrPopconfirm } from 'ngwr/popconfirm'`
426
+ - selector: `wr-popconfirm`, `[wrPopconfirm]`
427
+ - exports: WrPopconfirm, WrPopconfirmPanel, WrPopconfirmPosition
428
+
429
+ ## ngwr/popover
430
+ - import: `import { WrPopover } from 'ngwr/popover'`
431
+ - selector: `[wrPopover]`
432
+ - exports: WrPopover, WrPopoverPosition
433
+ - Popover mode only — with `responsive` (or app-wide via `provideWrResponsiveOverlays()`) the panel slides up as a full-width bottom-sheet with a backdrop on small viewports. Tooltips never become sheets. Open this on a phone (or narrow the window below 640px).
434
+
435
+ ## ngwr/progress
436
+ - import: `import { WrProgress } from 'ngwr/progress'`
437
+ - selector: `wr-progress`
438
+ - exports: WrProgress
439
+ - Horizontal progress bar with theme colors and an animated fill.
440
+
441
+ ## ngwr/qr
442
+ - import: `import { WrQr } from 'ngwr/qr'`
443
+ - selector: `wr-qr`
444
+ - exports: WrQr, WrQrErrorLevel
445
+ - Renders a QR code on a canvas. Optional center icon overlay. Encoding is handled by [Project Nayuki's QR Code generator library](https://www.nayuki.io/page/qr-code-generator-library) (MIT) vendored inline — no runtime dependency.
446
+
447
+ ## ngwr/radio
448
+ - import: `import { WrRadio } from 'ngwr/radio'`
449
+ - selector: `wr-radio-group`, `wr-radio`
450
+ - exports: WrRadio, WrRadioSize, WrRadioGroup, WR_RADIO_GROUP, type WrRadioGroupContext
451
+ - Single-choice option. Always used inside <wr-radio-group>, which implements ControlValueAccessor.
452
+
453
+ ## ngwr/rating
454
+ - import: `import { WrRating } from 'ngwr/rating'`
455
+ - selector: `wr-rating`
456
+ - exports: WrRating, WrRatingSize
457
+ - 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.
458
+
459
+ ## ngwr/result
460
+ - import: `import { WrResult } from 'ngwr/result'`
461
+ - selector: `wr-result-404`, `wr-result-403`, `wr-result-500`, `wr-result`
462
+ - exports: WrResult, type WrResultStatus, WrResult404, WrResult403, WrResult500
463
+ - Large-illustration result / empty-state. Built-in statuses: success / warning / error / info / empty. Plus ready-made `<wr-result-404>`, `<wr-result-403>`, `<wr-result-500>` presets.
464
+
465
+ ## ngwr/rotating-text
466
+ - import: `import { WrRotatingText } from 'ngwr/rotating-text'`
467
+ - selector: `wr-rotating-text`
468
+ - exports: WrRotatingText, type WrRotatingTextSplit, type WrRotatingTextStaggerFrom
469
+
470
+ ## ngwr/scroll
471
+ - import: `import { WrScroll } from 'ngwr/scroll'`
472
+ - exports: WrScroll, WrScrollTarget, WrScrollOptions
473
+
474
+ ## ngwr/segmented
475
+ - import: `import { WrSegmented } from 'ngwr/segmented'`
476
+ - selector: `wr-segmented`
477
+ - exports: WrSegmented, WrSegmentedOption, WrSegmentedSize
478
+ - Single-choice picker rendered as a segmented control. Two-way binds the selected value.
479
+
480
+ ## ngwr/select
481
+ - import: `import { WrSelect } from 'ngwr/select'`
482
+ - selector: `wr-option-group`, `wr-option`, `wr-select`
483
+ - exports: WrSelect, WrOption, WrOptionGroup, WR_SELECT, type WrSelectContext, WrSelectMode, WrSelectSearchLoader, WrSelectTagValidator, WrSelectSize
484
+ - Native-like select built on CDK Overlay. Implements ControlValueAccessor.
485
+
486
+ ## ngwr/shiny-text
487
+ - import: `import { WrShinyText } from 'ngwr/shiny-text'`
488
+ - selector: `[wrShimmer]`, `wr-shiny-text`
489
+ - exports: WrShinyText, WrShimmer
490
+
491
+ ## ngwr/sidebar
492
+ - import: `import { WrSidebar } from 'ngwr/sidebar'`
493
+ - selector: `wr-sidebar`
494
+ - exports: WrSidebar, WrSidebarItem, WrSidebarGroup, WrSidebarEntry
495
+ - Data-driven nav with flat links and expandable groups. Active route auto-expands its containing group. Icons, trailing badges, and disabled state all opt-in per entry.
496
+
497
+ ## ngwr/skeleton
498
+ - import: `import { WrSkeleton } from 'ngwr/skeleton'`
499
+ - selector: `wr-skeleton`
500
+ - exports: WrSkeleton
501
+ - Placeholder block shown while content is loading. Default height matches the surrounding line height (1lh).
502
+
503
+ ## ngwr/slider
504
+ - import: `import { WrSlider } from 'ngwr/slider'`
505
+ - selector: `wr-slider`
506
+ - exports: WrSlider, WrSliderValue
507
+ - Drag-to-pick numeric input. Single-thumb by default, optional dual-thumb range mode. Implements `ControlValueAccessor` so it plays nicely with template-driven and reactive forms.
508
+
509
+ ## ngwr/sparkline
510
+ - import: `import { WrSparkline } from 'ngwr/sparkline'`
511
+ - selector: `wr-sparkline`
512
+ - exports: WrSparkline
513
+ - Tiny inline trend line — no axes, no labels. Drop it next to a number to give context at a glance.
514
+
515
+ ## ngwr/speed-dial
516
+ - import: `import { WrSpeedDial } from 'ngwr/speed-dial'`
517
+ - selector: `wr-speed-dial`
518
+ - exports: WrSpeedDial, type WrSpeedDialAction, type WrSpeedDialDirection
519
+ - Floating action button that fans out a set of secondary actions on click.
520
+
521
+ ## ngwr/spinner
522
+ - import: `import { WrSpinner } from 'ngwr/spinner'`
523
+ - selector: `wr-spinner`
524
+ - exports: WrSpinner, WrSpinnerSize
525
+ - Inline loading indicator. Em-based sizing and inherits color from surrounding text.
526
+
527
+ ## ngwr/splash-cursor
528
+ - import: `import { WrSplashCursor } from 'ngwr/splash-cursor'`
529
+ - selector: `wr-splash-cursor`
530
+ - exports: WrSplashCursor, WrFluidConfig
531
+
532
+ ## ngwr/split-text
533
+ - import: `import { WrSplitText } from 'ngwr/split-text'`
534
+ - selector: `wr-split-text`
535
+ - exports: WrSplitText, type WrSplitTextMotion, type WrSplitTextUnit
536
+
537
+ ## ngwr/splitter
538
+ - import: `import { WrSplitter } from 'ngwr/splitter'`
539
+ - selector: `wr-splitter`
540
+ - exports: WrSplitter
541
+ - Resizable two-pane split. Drag the divider or focus it and use arrows. Two-way `[(position)]` (0–100).
542
+
543
+ ## ngwr/spotlight-card
544
+ - import: `import { WrSpotlightCard } from 'ngwr/spotlight-card'`
545
+ - selector: `wr-spotlight-card`, `[wrSpotlight]`
546
+ - exports: WrSpotlightCard, WrSpotlight
547
+
548
+ ## ngwr/squircle
549
+ - import: `import { squirclePath } from 'ngwr/squircle'`
550
+ - selector: `wr-squircle`, `[wrSquircle]`
551
+ - exports: squirclePath, type WrSquircleCorners, WrSquircle, type WrSquircleCornerMask, WrSquircleHost
552
+ - Figma-style smooth-corner rectangle. Standalone `<wr-squircle>` or `[wrSquircle]` directive that clips any element with a superellipse path. Re-computes on resize. The CSS-`corner-shape` route (via the `smooth-br` SCSS mixin) is also wired into most ngwr components — both paths are considered **experimental** while the underlying CSS spec stabilises.
553
+
554
+ ## ngwr/star-border
555
+ - import: `import { WrStarBorder } from 'ngwr/star-border'`
556
+ - selector: `wr-star-border, [wr-star-border]`
557
+ - exports: WrStarBorder, type WrStarBorderMode, type WrStarBorderRays
558
+
559
+ ## ngwr/statistic
560
+ - import: `import { WrStatistic } from 'ngwr/statistic'`
561
+ - selector: `wr-statistic-countdown`, `wr-statistic`
562
+ - exports: WrStatistic, WrStatisticCountdown
563
+ - KPI card — label + big number + optional prefix / suffix + delta.
564
+
565
+ ## ngwr/stepper
566
+ - import: `import { WrStepper } from 'ngwr/stepper'`
567
+ - selector: `wr-step`, `wr-stepper`
568
+ - exports: WrStepper, WrStep, WR_STEPPER, type WrStepperContext
569
+ - Multi-step wizard. Numbered headers with completed / active / pending states, content body for the active step. Two-way bind `[(active)]` to the step index.
570
+
571
+ ## ngwr/storage
572
+ - import: `import { WrStorage } from 'ngwr/storage'`
573
+ - exports: WrStorage, provideWrStorage, type ProvideWrStorageOptions, WR_STORAGE_CONFIG, DEFAULT_WR_STORAGE_CONFIG, type WrStorageConfig, type WrStorageConfigResolved, WR_STORAGE_ENGINE, createMemoryStorage, type WrStorageEngine
574
+
575
+ ## ngwr/switch
576
+ - import: `import { WrSwitch } from 'ngwr/switch'`
577
+ - selector: `wr-switch`
578
+ - exports: WrSwitch, WrSwitchSize
579
+ - Boolean toggle with an iOS-style slider. Implements ControlValueAccessor.
580
+
581
+ ## ngwr/table
582
+ - import: `import { WrTable } from 'ngwr/table'`
583
+ - selector: `[wrTableCell]`, `wr-table-filter`, `wr-table-sort`, `wr-table`
584
+ - exports: WrTable, WrTableCell, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableFilterChange, WrTableFilterItem, WrTableSortState, WrTableSortDirection
585
+ - Data table with sortable / filterable headers and custom cell templates.
586
+
587
+ ## ngwr/tabs
588
+ - import: `import { WrTabs } from 'ngwr/tabs'`
589
+ - selector: `wr-tab`, `wr-tabs`
590
+ - exports: WrTabs, WrTab, WR_TABS, type WrTabsContext
591
+ - Tabbed container. Use projected content for simple tabs, or set routerLink on children to switch into router mode.
592
+
593
+ ## ngwr/textarea
594
+ - import: `import { WrTextarea } from 'ngwr/textarea'`
595
+ - selector: `wr-textarea`
596
+ - exports: WrTextarea, WrTextareaSize, WrTextareaResize
597
+ - Multi-line text input. Implements ControlValueAccessor. Optional autosize.
598
+
599
+ ## ngwr/theme
600
+ - import: `import { WR_COLORS } from 'ngwr/theme'`
601
+ - exports: WR_COLORS, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, type WrResolvedTheme, type WrThemeMode, type WrThemeConfig
602
+
603
+ ## ngwr/tilt-card
604
+ - import: `import { WrTiltCard } from 'ngwr/tilt-card'`
605
+ - selector: `wr-tilt-card`, `[wrTilt]`
606
+ - exports: WrTiltCard, WrTilt
607
+
608
+ ## ngwr/timeline
609
+ - import: `import { WrTimeline } from 'ngwr/timeline'`
610
+ - selector: `wr-timeline-item`, `wr-timeline`
611
+ - exports: WrTimeline, WrTimelineItem, type WrTimelineColor
612
+ - Event ladder with markers. Vertical (default) or horizontal. Dot colors: primary / success / warning / danger / medium.
613
+
614
+ ## ngwr/toast
615
+ - import: `import { WrToast } from 'ngwr/toast'`
616
+ - selector: `wr-toast-host`, `wr-toast`
617
+ - exports: WrToast, WrToastRef, provideWrToastConfig, DEFAULT_TOAST_CONFIG, WR_TOAST_CONFIG, WrToastConfig, WrToastMode, WrToastOptions, WrToastPosition, WrToastType
618
+ - Stack of dismissible notifications anchored to a viewport corner. Service-driven; rendered in a single shared CDK overlay.
619
+
620
+ ## ngwr/toolbar
621
+ - import: `import { WrToolbar } from 'ngwr/toolbar'`
622
+ - selector: `wr-toolbar`
623
+ - exports: WrToolbar
624
+ - Three-zone action bar — start / center / end. Each zone collapses when empty.
625
+
626
+ ## ngwr/tree
627
+ - import: `import { WrTree } from 'ngwr/tree'`
628
+ - selector: `wr-tree`
629
+ - exports: WrTree, WrTreeNode, WrTreeSelectionMode
630
+ - Click a row to select. Arrow keys navigate, ←/→ collapse/expand, Enter or Space selects, Home/End jump to ends.
631
+
632
+ ## ngwr/typewriter
633
+ - import: `import { WrTypewriter } from 'ngwr/typewriter'`
634
+ - selector: `wr-typewriter`
635
+ - exports: WrTypewriter, type WrTypewriterVariableSpeed
636
+
637
+ ## ngwr/typography
638
+ - import: `import { WrTypography } from 'ngwr/typography'`
639
+ - selector: `[wrTypography]`
640
+ - exports: WrTypography, WrTypographyVariant, WrTypographyAlign, WrTypographyTone
641
+
642
+ ## ngwr/utils
643
+ - import: `import { Maybe } from 'ngwr/utils'`
644
+ - exports: Maybe, SafeAny, isDefined, isNonEmptyArray, isObservable, clamp, round, numAttr, resolveCssSize, ResolveCssSizeOptions, ResolvedCssSize, getRootFontSize, getFocusableElements, trapFocus, randomId, noop, debounce, throttle, WrDebouncedFn, WrThrottledFn, KEYS, hasModifier, isPrintableKey, WrKey, badgeLog
645
+
646
+ ## ngwr/validators
647
+ - import: `import { WrValidators } from 'ngwr/validators'`
648
+ - exports: WrValidators
649
+
650
+ ## ngwr/version
651
+ - import: `import { … } from 'ngwr/version'`
652
+
653
+ ## ngwr/virtual-scroll
654
+ - import: `import { WrVirtualScroll } from 'ngwr/virtual-scroll'`
655
+ - selector: `wr-virtual-scroll`
656
+ - exports: WrVirtualScroll
657
+ - Fixed-size virtual scroll viewport. Thin wrapper around CDK's `cdk-virtual-scroll-viewport` with ngwr theming + sensible buffer defaults. Renders only the rows actually on screen, so a 100k-row list costs the same as a 30-row list.
658
+
659
+ ## ngwr/waves
660
+ - import: `import { WrWaves } from 'ngwr/waves'`
661
+ - selector: `wr-waves`
662
+ - exports: WrWaves
663
+
664
+ ## ngwr/window
665
+ - import: `import { WR_WINDOW_DATA } from 'ngwr/window'`
666
+ - selector: `wr-window-container`, `wr-window-taskbar`, `wr-window`
667
+ - exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, type WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
668
+ - 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.