ngwr 7.2.0 → 7.3.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 (54) hide show
  1. package/README.md +3 -3
  2. package/carousel/styles/_index.scss +2 -0
  3. package/color-picker/styles/_index.scss +7 -0
  4. package/density/styles/_index.scss +10 -0
  5. package/drawer/styles/_index.scss +2 -0
  6. package/fesm2022/ngwr-carousel.mjs +45 -4
  7. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  8. package/fesm2022/ngwr-context-menu.mjs +77 -5
  9. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  10. package/fesm2022/ngwr-density.mjs +3 -3
  11. package/fesm2022/ngwr-density.mjs.map +1 -1
  12. package/fesm2022/ngwr-drag-drop.mjs +13 -3
  13. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  14. package/fesm2022/ngwr-drawer.mjs +66 -5
  15. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  16. package/fesm2022/ngwr-lightbox.mjs +45 -2
  17. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  18. package/fesm2022/ngwr-pagination.mjs +11 -3
  19. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  20. package/fesm2022/ngwr-rotating-text.mjs +15 -4
  21. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  22. package/fesm2022/ngwr-table.mjs +9 -3
  23. package/fesm2022/ngwr-table.mjs.map +1 -1
  24. package/fesm2022/ngwr-tabs.mjs +38 -6
  25. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  26. package/fesm2022/ngwr-toast.mjs +54 -2
  27. package/fesm2022/ngwr-toast.mjs.map +1 -1
  28. package/fesm2022/ngwr-toolbar.mjs +11 -4
  29. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  30. package/fesm2022/ngwr-version.mjs +1 -1
  31. package/fesm2022/ngwr-version.mjs.map +1 -1
  32. package/lightbox/styles/_index.scss +2 -0
  33. package/llms-full.txt +673 -0
  34. package/llms.txt +106 -0
  35. package/package.json +1 -1
  36. package/pagination/styles/_index.scss +34 -0
  37. package/slider/styles/_index.scss +3 -0
  38. package/splitter/styles/_index.scss +3 -0
  39. package/table/styles/_index.scss +61 -0
  40. package/tabs/styles/_index.scss +24 -0
  41. package/toast/styles/_index.scss +2 -0
  42. package/toolbar/styles/_index.scss +29 -0
  43. package/types/ngwr-carousel.d.ts +8 -1
  44. package/types/ngwr-context-menu.d.ts +25 -3
  45. package/types/ngwr-density.d.ts +2 -2
  46. package/types/ngwr-drag-drop.d.ts +13 -1
  47. package/types/ngwr-drawer.d.ts +11 -3
  48. package/types/ngwr-lightbox.d.ts +5 -0
  49. package/types/ngwr-pagination.d.ts +7 -1
  50. package/types/ngwr-rotating-text.d.ts +1 -0
  51. package/types/ngwr-table.d.ts +7 -1
  52. package/types/ngwr-tabs.d.ts +6 -0
  53. package/types/ngwr-toolbar.d.ts +7 -1
  54. package/types/ngwr-version.d.ts +1 -1
package/llms-full.txt ADDED
@@ -0,0 +1,673 @@
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.
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
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, 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 — or a long-press on touch. 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]`, `[wrReveal]`
217
+ - exports: WrAutofocus, WrAutosize, WrClickOutside, WrCopyToClipboard, WrReveal
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
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
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, 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
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/scramble-text
471
+ - import: `import { WrScrambleText } from 'ngwr/scramble-text'`
472
+ - selector: `wr-scramble-text`
473
+ - exports: WrScrambleText
474
+
475
+ ## ngwr/scroll
476
+ - import: `import { WrScroll } from 'ngwr/scroll'`
477
+ - exports: WrScroll, WrScrollTarget, WrScrollOptions
478
+
479
+ ## ngwr/segmented
480
+ - import: `import { WrSegmented } from 'ngwr/segmented'`
481
+ - selector: `wr-segmented`
482
+ - exports: WrSegmented, WrSegmentedOption
483
+ - Single-choice picker rendered as a segmented control. Two-way binds the selected value.
484
+
485
+ ## ngwr/select
486
+ - import: `import { WrSelect } from 'ngwr/select'`
487
+ - selector: `wr-option-group`, `wr-option`, `wr-select`
488
+ - exports: WrSelect, WrOption, WrOptionGroup, WR_SELECT, type WrSelectContext, WrSelectMode, WrSelectSearchLoader, WrSelectTagValidator
489
+ - Native-like select built on CDK Overlay. Implements ControlValueAccessor.
490
+
491
+ ## ngwr/shiny-text
492
+ - import: `import { WrShinyText } from 'ngwr/shiny-text'`
493
+ - selector: `[wrShimmer]`, `wr-shiny-text`
494
+ - exports: WrShinyText, WrShimmer
495
+
496
+ ## ngwr/sidebar
497
+ - import: `import { WrSidebar } from 'ngwr/sidebar'`
498
+ - selector: `wr-sidebar`
499
+ - exports: WrSidebar, WrSidebarItem, WrSidebarGroup, WrSidebarEntry
500
+ - 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.
501
+
502
+ ## ngwr/skeleton
503
+ - import: `import { WrSkeleton } from 'ngwr/skeleton'`
504
+ - selector: `wr-skeleton`
505
+ - exports: WrSkeleton
506
+ - Placeholder block shown while content is loading. Default height matches the surrounding line height (1lh).
507
+
508
+ ## ngwr/slider
509
+ - import: `import { WrSlider } from 'ngwr/slider'`
510
+ - selector: `wr-slider`
511
+ - exports: WrSlider, WrSliderValue
512
+ - 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.
513
+
514
+ ## ngwr/sparkline
515
+ - import: `import { WrSparkline } from 'ngwr/sparkline'`
516
+ - selector: `wr-sparkline`
517
+ - exports: WrSparkline
518
+ - Tiny inline trend line — no axes, no labels. Drop it next to a number to give context at a glance.
519
+
520
+ ## ngwr/speed-dial
521
+ - import: `import { WrSpeedDial } from 'ngwr/speed-dial'`
522
+ - selector: `wr-speed-dial`
523
+ - exports: WrSpeedDial, type WrSpeedDialAction, type WrSpeedDialDirection
524
+ - Floating action button that fans out a set of secondary actions on click.
525
+
526
+ ## ngwr/spinner
527
+ - import: `import { WrSpinner } from 'ngwr/spinner'`
528
+ - selector: `wr-spinner`
529
+ - exports: WrSpinner, WrSpinnerSize
530
+ - Inline loading indicator. Em-based sizing and inherits color from surrounding text.
531
+
532
+ ## ngwr/splash-cursor
533
+ - import: `import { WrSplashCursor } from 'ngwr/splash-cursor'`
534
+ - selector: `wr-splash-cursor`
535
+ - exports: WrSplashCursor, WrFluidConfig
536
+
537
+ ## ngwr/split-text
538
+ - import: `import { WrSplitText } from 'ngwr/split-text'`
539
+ - selector: `wr-split-text`
540
+ - exports: WrSplitText, type WrSplitTextMotion, type WrSplitTextUnit
541
+
542
+ ## ngwr/splitter
543
+ - import: `import { WrSplitter } from 'ngwr/splitter'`
544
+ - selector: `wr-splitter`
545
+ - exports: WrSplitter
546
+ - Resizable two-pane split. Drag the divider or focus it and use arrows. Two-way `[(position)]` (0–100).
547
+
548
+ ## ngwr/spotlight-card
549
+ - import: `import { WrSpotlightCard } from 'ngwr/spotlight-card'`
550
+ - selector: `wr-spotlight-card`, `[wrSpotlight]`
551
+ - exports: WrSpotlightCard, WrSpotlight
552
+
553
+ ## ngwr/squircle
554
+ - import: `import { squirclePath } from 'ngwr/squircle'`
555
+ - selector: `wr-squircle`, `[wrSquircle]`
556
+ - exports: squirclePath, type WrSquircleCorners, WrSquircle, type WrSquircleCornerMask, WrSquircleHost
557
+ - 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.
558
+
559
+ ## ngwr/star-border
560
+ - import: `import { WrStarBorder } from 'ngwr/star-border'`
561
+ - selector: `wr-star-border, [wr-star-border]`
562
+ - exports: WrStarBorder, type WrStarBorderMode, type WrStarBorderRays
563
+
564
+ ## ngwr/statistic
565
+ - import: `import { WrStatistic } from 'ngwr/statistic'`
566
+ - selector: `wr-statistic-countdown`, `wr-statistic`
567
+ - exports: WrStatistic, WrStatisticCountdown
568
+ - KPI card — label + big number + optional prefix / suffix + delta.
569
+
570
+ ## ngwr/stepper
571
+ - import: `import { WrStepper } from 'ngwr/stepper'`
572
+ - selector: `wr-step`, `wr-stepper`
573
+ - exports: WrStepper, WrStep, WR_STEPPER, type WrStepperContext
574
+ - Multi-step wizard. Numbered headers with completed / active / pending states, content body for the active step. Two-way bind `[(active)]` to the step index.
575
+
576
+ ## ngwr/storage
577
+ - import: `import { WrStorage } from 'ngwr/storage'`
578
+ - exports: WrStorage, provideWrStorage, type ProvideWrStorageOptions, WR_STORAGE_CONFIG, DEFAULT_WR_STORAGE_CONFIG, type WrStorageConfig, type WrStorageConfigResolved, WR_STORAGE_ENGINE, createMemoryStorage, type WrStorageEngine
579
+
580
+ ## ngwr/switch
581
+ - import: `import { WrSwitch } from 'ngwr/switch'`
582
+ - selector: `wr-switch`
583
+ - exports: WrSwitch
584
+ - Boolean toggle with an iOS-style slider. Implements ControlValueAccessor.
585
+
586
+ ## ngwr/table
587
+ - import: `import { WrTable } from 'ngwr/table'`
588
+ - selector: `[wrTableCell]`, `wr-table-filter`, `wr-table-sort`, `wr-table`
589
+ - exports: WrTable, WrTableCell, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableFilterChange, WrTableFilterItem, WrTableSortState, WrTableSortDirection
590
+ - Data table with sortable / filterable headers and custom cell templates.
591
+
592
+ ## ngwr/tabs
593
+ - import: `import { WrTabs } from 'ngwr/tabs'`
594
+ - selector: `wr-tab`, `wr-tabs`
595
+ - exports: WrTabs, WrTab, WR_TABS, type WrTabsContext
596
+ - Tabbed container. Use projected content for simple tabs, or set routerLink on children to switch into router mode.
597
+
598
+ ## ngwr/textarea
599
+ - import: `import { WrTextarea } from 'ngwr/textarea'`
600
+ - selector: `wr-textarea`
601
+ - exports: WrTextarea
602
+ - Multi-line text input. Implements ControlValueAccessor. Optional autosize.
603
+
604
+ ## ngwr/theme
605
+ - import: `import { WR_COLORS } from 'ngwr/theme'`
606
+ - exports: WR_COLORS, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, type WrResolvedTheme, type WrThemeMode, type WrThemeConfig
607
+
608
+ ## ngwr/tilt-card
609
+ - import: `import { WrTiltCard } from 'ngwr/tilt-card'`
610
+ - selector: `wr-tilt-card`, `[wrTilt]`
611
+ - exports: WrTiltCard, WrTilt
612
+
613
+ ## ngwr/timeline
614
+ - import: `import { WrTimeline } from 'ngwr/timeline'`
615
+ - selector: `wr-timeline-item`, `wr-timeline`
616
+ - exports: WrTimeline, WrTimelineItem, type WrTimelineColor
617
+ - Event ladder with markers. Vertical (default) or horizontal. Dot colors: primary / success / warning / danger / medium.
618
+
619
+ ## ngwr/toast
620
+ - import: `import { WrToast } from 'ngwr/toast'`
621
+ - selector: `wr-toast-host`, `wr-toast`
622
+ - exports: WrToast, WrToastRef, provideWrToastConfig, DEFAULT_TOAST_CONFIG, WR_TOAST_CONFIG, WrToastConfig, WrToastMode, WrToastOptions, WrToastPosition, WrToastType
623
+ - Stack of dismissible notifications anchored to a viewport corner. Service-driven; rendered in a single shared CDK overlay.
624
+
625
+ ## ngwr/toolbar
626
+ - import: `import { WrToolbar } from 'ngwr/toolbar'`
627
+ - selector: `wr-toolbar`
628
+ - exports: WrToolbar
629
+ - Three-zone action bar — start / center / end. Each zone collapses when empty.
630
+
631
+ ## ngwr/tree
632
+ - import: `import { WrTree } from 'ngwr/tree'`
633
+ - selector: `wr-tree`
634
+ - exports: WrTree, WrTreeNode, WrTreeSelectionMode
635
+ - Click a row to select. Arrow keys navigate, ←/→ collapse/expand, Enter or Space selects, Home/End jump to ends.
636
+
637
+ ## ngwr/typewriter
638
+ - import: `import { WrTypewriter } from 'ngwr/typewriter'`
639
+ - selector: `wr-typewriter`
640
+ - exports: WrTypewriter, type WrTypewriterVariableSpeed
641
+
642
+ ## ngwr/typography
643
+ - import: `import { WrTypography } from 'ngwr/typography'`
644
+ - selector: `[wrTypography]`
645
+ - exports: WrTypography, WrTypographyVariant, WrTypographyAlign, WrTypographyTone
646
+
647
+ ## ngwr/utils
648
+ - import: `import { Maybe } from 'ngwr/utils'`
649
+ - 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
650
+
651
+ ## ngwr/validators
652
+ - import: `import { WrValidators } from 'ngwr/validators'`
653
+ - exports: WrValidators
654
+
655
+ ## ngwr/version
656
+ - import: `import { … } from 'ngwr/version'`
657
+
658
+ ## ngwr/virtual-scroll
659
+ - import: `import { WrVirtualScroll } from 'ngwr/virtual-scroll'`
660
+ - selector: `wr-virtual-scroll`
661
+ - exports: WrVirtualScroll
662
+ - 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.
663
+
664
+ ## ngwr/waves
665
+ - import: `import { WrWaves } from 'ngwr/waves'`
666
+ - selector: `wr-waves`
667
+ - exports: WrWaves
668
+
669
+ ## ngwr/window
670
+ - import: `import { WR_WINDOW_DATA } from 'ngwr/window'`
671
+ - selector: `wr-window-container`, `wr-window-taskbar`, `wr-window`
672
+ - exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, type WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
673
+ - 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.