ngwr 7.0.0 → 7.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.
- package/LICENSE +1 -1
- package/README.md +6 -4
- package/alert/styles/_index.scss +2 -0
- package/back-top/styles/_index.scss +4 -2
- package/burger/styles/_index.scss +101 -0
- package/cascader/styles/_index.scss +16 -0
- package/command-palette/styles/_index.scss +28 -0
- package/descriptions/styles/_index.scss +59 -0
- package/dialog/styles/_index.scss +2 -0
- package/dropdown/styles/_index.scss +1 -0
- package/fesm2022/ngwr-affix.mjs +3 -3
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bar-chart.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-border-glow.mjs +3 -3
- package/fesm2022/ngwr-breadcrumbs.mjs +6 -6
- package/fesm2022/ngwr-burger.mjs +60 -0
- package/fesm2022/ngwr-burger.mjs.map +1 -0
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar-heatmap.mjs +3 -3
- package/fesm2022/ngwr-calendar.mjs +3 -3
- package/fesm2022/ngwr-card.mjs +9 -9
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-cascader.mjs +5 -5
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +6 -6
- package/fesm2022/ngwr-circular-text.mjs +3 -3
- package/fesm2022/ngwr-click-spark.mjs +3 -3
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +6 -6
- package/fesm2022/ngwr-command-palette.mjs +19 -5
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-context-menu.mjs +12 -12
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +6 -6
- package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
- package/fesm2022/ngwr-date-adapter.mjs +3 -3
- package/fesm2022/ngwr-date-picker.mjs +9 -9
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +16 -7
- package/fesm2022/ngwr-descriptions.mjs.map +1 -1
- package/fesm2022/ngwr-dialog.mjs +26 -19
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +15 -15
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart.mjs +3 -3
- package/fesm2022/ngwr-drag-drop.mjs +6 -6
- package/fesm2022/ngwr-drawer.mjs +15 -15
- package/fesm2022/ngwr-dropdown.mjs +43 -19
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-falling-text.mjs +3 -3
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form.mjs +9 -9
- package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
- package/fesm2022/ngwr-gauge.mjs +3 -3
- package/fesm2022/ngwr-glitch-text.mjs +3 -3
- package/fesm2022/ngwr-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +3 -3
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-input-number.mjs +3 -3
- package/fesm2022/ngwr-input-otp.mjs +3 -3
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +3 -3
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +4 -4
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +3 -3
- package/fesm2022/ngwr-list.mjs +6 -6
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-marquee.mjs +3 -3
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention.mjs +6 -6
- package/fesm2022/ngwr-meta.mjs +64 -7
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +3 -3
- package/fesm2022/ngwr-overlay.mjs +73 -4
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +13 -5
- package/fesm2022/ngwr-page-header.mjs.map +1 -1
- package/fesm2022/ngwr-pagination.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +3 -3
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popover.mjs +45 -15
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +3 -3
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-rating.mjs +3 -3
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-scramble-text.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-select.mjs +43 -22
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-sidebar.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +3 -3
- package/fesm2022/ngwr-sparkline.mjs +3 -3
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-spotlight-card.mjs +6 -6
- package/fesm2022/ngwr-squircle.mjs +6 -6
- package/fesm2022/ngwr-star-border.mjs +3 -3
- package/fesm2022/ngwr-statistic.mjs +6 -6
- package/fesm2022/ngwr-stepper.mjs +16 -7
- package/fesm2022/ngwr-stepper.mjs.map +1 -1
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-table.mjs +12 -12
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs.mjs +6 -6
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast.mjs +9 -9
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tree.mjs +3 -3
- package/fesm2022/ngwr-typewriter.mjs +3 -3
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-window.mjs +12 -12
- package/lightbox/styles/_index.scss +2 -0
- package/overlay/styles/_index.scss +31 -0
- package/package.json +11 -5
- package/page-header/styles/_index.scss +16 -0
- package/popover/styles/_index.scss +17 -0
- package/schematics/use/symbol-map.json +1 -0
- package/select/styles/_index.scss +27 -0
- package/stepper/styles/_index.scss +30 -0
- package/styles.scss +2 -0
- package/theme/styles/_mixins.scss +47 -0
- package/toast/styles/_index.scss +30 -1
- package/tree/styles/_index.scss +15 -0
- package/types/ngwr-burger.d.ts +36 -0
- package/types/ngwr-command-palette.d.ts +13 -1
- package/types/ngwr-descriptions.d.ts +8 -1
- package/types/ngwr-dialog.d.ts +7 -0
- package/types/ngwr-dropdown.d.ts +10 -1
- package/types/ngwr-meta.d.ts +24 -0
- package/types/ngwr-overlay.d.ts +69 -1
- package/types/ngwr-page-header.d.ts +8 -1
- package/types/ngwr-popover.d.ts +11 -2
- package/types/ngwr-select.d.ts +10 -1
- package/types/ngwr-stepper.d.ts +8 -1
- package/types/ngwr-version.d.ts +1 -1
|
@@ -14,6 +14,13 @@
|
|
|
14
14
|
gap: 1rem;
|
|
15
15
|
font-family: var(--wr-font-family-base);
|
|
16
16
|
|
|
17
|
+
// Opt-in (`responsive`): query the box's own width so a horizontal stepper
|
|
18
|
+
// can drop to vertical when its column is too narrow. The host is already
|
|
19
|
+
// full-width, so containment is safe here.
|
|
20
|
+
&--responsive {
|
|
21
|
+
container: wr-stepper / inline-size;
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
&__headers {
|
|
18
25
|
list-style: none;
|
|
19
26
|
margin: 0;
|
|
@@ -151,6 +158,29 @@
|
|
|
151
158
|
}
|
|
152
159
|
}
|
|
153
160
|
|
|
161
|
+
// Responsive horizontal steppers fall back to the vertical layout when their
|
|
162
|
+
// own box is too narrow for the row — mirrors the `--vertical` rules above,
|
|
163
|
+
// scoped to responsive steppers that aren't already vertical.
|
|
164
|
+
@container wr-stepper (max-width: 32rem) {
|
|
165
|
+
.wr-stepper--responsive:not(.wr-stepper--vertical) .wr-stepper__headers {
|
|
166
|
+
flex-direction: column;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.wr-stepper--responsive:not(.wr-stepper--vertical) .wr-stepper__header {
|
|
170
|
+
align-items: stretch;
|
|
171
|
+
flex: 0 0 auto;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.wr-stepper--responsive:not(.wr-stepper--vertical) .wr-stepper__connector {
|
|
175
|
+
width: 1.5px;
|
|
176
|
+
min-height: 1.25rem;
|
|
177
|
+
height: auto;
|
|
178
|
+
margin: 0.25rem 0 0.25rem calc(var(--wr-stepper-indicator-size) / 2);
|
|
179
|
+
align-self: stretch;
|
|
180
|
+
flex: 0 0 auto;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
154
184
|
// `<wr-step>` itself — visibility is driven by an `--active` class
|
|
155
185
|
// the stepper toggles via host binding.
|
|
156
186
|
.wr-step {
|
package/styles.scss
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
@forward './blur-text/styles';
|
|
28
28
|
@forward './border-glow/styles';
|
|
29
29
|
@forward './breadcrumbs/styles';
|
|
30
|
+
@forward './burger/styles';
|
|
30
31
|
@forward './button/styles';
|
|
31
32
|
@forward './calendar/styles';
|
|
32
33
|
@forward './calendar-heatmap/styles';
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
@forward './marquee/styles';
|
|
74
75
|
@forward './mention/styles';
|
|
75
76
|
@forward './meter-group/styles';
|
|
77
|
+
@forward './overlay/styles';
|
|
76
78
|
@forward './page-header/styles';
|
|
77
79
|
@forward './pagination/styles';
|
|
78
80
|
@forward './popconfirm/styles';
|
|
@@ -55,3 +55,50 @@
|
|
|
55
55
|
border-radius: calc(#{$br} * 1.85);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
|
|
59
|
+
/// Expand a small control's touch hit area to a comfortable minimum on
|
|
60
|
+
/// coarse (touch) pointers, without changing how it looks. Lays an
|
|
61
|
+
/// invisible, centred `::after` over the control that's at least `$size`
|
|
62
|
+
/// square; taps on the slack still land on the host. Fine-pointer
|
|
63
|
+
/// (mouse / trackpad) layouts are left exactly as-is, so dense desktop
|
|
64
|
+
/// UIs keep their tight targets.
|
|
65
|
+
///
|
|
66
|
+
/// Use on small icon-only controls — close (×) buttons, chip removes,
|
|
67
|
+
/// tree / cascader toggles — where the visible glyph is well under the
|
|
68
|
+
/// ~44px comfortable tap size. Skip controls that are already tall
|
|
69
|
+
/// enough, and avoid it on tightly-packed rows where a 44px slack would
|
|
70
|
+
/// overlap a neighbouring target.
|
|
71
|
+
///
|
|
72
|
+
/// The pseudo is absolutely positioned, so the host must be a containing
|
|
73
|
+
/// block. For the common static control the mixin sets `position:
|
|
74
|
+
/// relative` for you; pass `$positioned: true` when the host is already
|
|
75
|
+
/// `absolute` / `fixed` / `relative` so the mixin doesn't downgrade its
|
|
76
|
+
/// positioning under the media query.
|
|
77
|
+
///
|
|
78
|
+
/// @param {Length} $size [44px] - Minimum hit-area edge (Apple HIG).
|
|
79
|
+
/// @param {Bool} $positioned [false] - Set true if the host already
|
|
80
|
+
/// establishes a positioning context (skips `position: relative`).
|
|
81
|
+
///
|
|
82
|
+
/// @example scss
|
|
83
|
+
/// .wr-alert__close {
|
|
84
|
+
/// @include touch-target;
|
|
85
|
+
/// }
|
|
86
|
+
@mixin touch-target($size: 44px, $positioned: false) {
|
|
87
|
+
@media (pointer: coarse) {
|
|
88
|
+
@if not $positioned {
|
|
89
|
+
position: relative;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&::after {
|
|
93
|
+
content: '';
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 50%;
|
|
96
|
+
left: 50%;
|
|
97
|
+
width: 100%;
|
|
98
|
+
height: 100%;
|
|
99
|
+
min-width: $size;
|
|
100
|
+
min-height: $size;
|
|
101
|
+
transform: translate(-50%, -50%);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
package/toast/styles/_index.scss
CHANGED
|
@@ -20,7 +20,11 @@ $toast-colors: (
|
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
22
|
gap: 0.5rem;
|
|
23
|
-
|
|
23
|
+
// Safe-area: fold each inset into the matching padding side so toasts clear
|
|
24
|
+
// notches / the home indicator / rounded corners on mobile, whichever edge
|
|
25
|
+
// the host is anchored to. env() is 0 without insets, so desktop stays 1rem.
|
|
26
|
+
padding: calc(1rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right))
|
|
27
|
+
calc(1rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));
|
|
24
28
|
pointer-events: none;
|
|
25
29
|
max-width: 22rem;
|
|
26
30
|
width: 100%;
|
|
@@ -261,3 +265,28 @@ $toast-colors: (
|
|
|
261
265
|
order: 99;
|
|
262
266
|
align-self: stretch;
|
|
263
267
|
}
|
|
268
|
+
|
|
269
|
+
// Touch pointers: grow the per-toast action buttons (copy / dismiss) to ~32px
|
|
270
|
+
// with a wider gap so the pair no longer sits 2px apart, and give the
|
|
271
|
+
// dismiss-all bar a taller hit area. Fine pointers keep the compact desktop
|
|
272
|
+
// sizing above.
|
|
273
|
+
@media (pointer: coarse) {
|
|
274
|
+
.wr-toast__actions {
|
|
275
|
+
gap: 0.25rem;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.wr-toast__action {
|
|
279
|
+
display: inline-flex;
|
|
280
|
+
align-items: center;
|
|
281
|
+
justify-content: center;
|
|
282
|
+
width: 2rem;
|
|
283
|
+
height: 2rem;
|
|
284
|
+
padding: 0;
|
|
285
|
+
--wr-icon-size: 1.125rem;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.wr-toast-host__close-all {
|
|
289
|
+
padding-top: 0.75rem;
|
|
290
|
+
padding-bottom: 0.75rem;
|
|
291
|
+
}
|
|
292
|
+
}
|
package/tree/styles/_index.scss
CHANGED
|
@@ -269,3 +269,18 @@
|
|
|
269
269
|
max-height: var(--wr-tree-panel-max-height, 18rem);
|
|
270
270
|
overflow-y: auto;
|
|
271
271
|
}
|
|
272
|
+
|
|
273
|
+
// Touch pointers: taller rows (~44px) and a larger expand/collapse toggle so
|
|
274
|
+
// both the row and its toggle are comfortable tap targets. Fine pointers keep
|
|
275
|
+
// the compact desktop rows above.
|
|
276
|
+
@media (pointer: coarse) {
|
|
277
|
+
.wr-tree__row {
|
|
278
|
+
padding-top: 0.5rem;
|
|
279
|
+
padding-bottom: 0.5rem;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.wr-tree__toggle {
|
|
283
|
+
width: 1.75rem;
|
|
284
|
+
height: 1.75rem;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Animated menu toggle — three SVG strokes morph between a hamburger and a
|
|
5
|
+
* close mark on `open`. Two-way bindable, so it pairs naturally with a
|
|
6
|
+
* `<wr-drawer>` or any disclosure.
|
|
7
|
+
*
|
|
8
|
+
* The morph is pure CSS (`stroke-dasharray` / `stroke-dashoffset` tweens),
|
|
9
|
+
* so it stays smooth without JS and collapses to its end state under
|
|
10
|
+
* `prefers-reduced-motion`.
|
|
11
|
+
*
|
|
12
|
+
* @example Toggle a drawer
|
|
13
|
+
* ```html
|
|
14
|
+
* <wr-burger [(open)]="menuOpen" />
|
|
15
|
+
* <wr-drawer [(open)]="menuOpen" position="right">…</wr-drawer>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @see https://ngwr.dev/components/burger
|
|
19
|
+
*/
|
|
20
|
+
declare class WrBurger {
|
|
21
|
+
/** Two-way bindable open state. Drives the hamburger ↔ close morph. @default false */
|
|
22
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
23
|
+
/** Accessible label for the toggle button. @default 'Toggle menu' */
|
|
24
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
25
|
+
/** Disable the toggle. @default false */
|
|
26
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
27
|
+
protected readonly classes: _angular_core.Signal<{
|
|
28
|
+
'wr-burger': boolean;
|
|
29
|
+
'wr-burger--opened': boolean;
|
|
30
|
+
}>;
|
|
31
|
+
protected toggle(): void;
|
|
32
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrBurger, never>;
|
|
33
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrBurger, "wr-burger", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { WrBurger };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { ElementRef } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
3
4
|
import { WrIconName } from 'ngwr/icon';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -69,10 +70,20 @@ declare class WrCommandPalette {
|
|
|
69
70
|
protected readonly resolvedEmpty: _angular_core.Signal<string>;
|
|
70
71
|
/** Auto-close on `(picked)`. Set false to keep open. @default true */
|
|
71
72
|
readonly closeOnPick: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
73
|
+
/**
|
|
74
|
+
* Present the palette full-screen on small viewports instead of a centred
|
|
75
|
+
* modal. `undefined` follows the app-wide `provideWrResponsiveOverlays()`
|
|
76
|
+
* setting; `true`/`false` overrides it. The palette docks to the top (it
|
|
77
|
+
* auto-focuses its input, so the on-screen keyboard stays clear).
|
|
78
|
+
* @default undefined
|
|
79
|
+
*/
|
|
80
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
|
|
72
81
|
/** Fires when the user commits an item (Enter / click). */
|
|
73
82
|
readonly picked: _angular_core.OutputEmitterRef<WrCommandItem>;
|
|
74
83
|
protected readonly query: _angular_core.WritableSignal<string>;
|
|
75
84
|
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
85
|
+
/** Whether the current opening is presented full-screen. Decided on open. */
|
|
86
|
+
protected readonly presentAsSheet: _angular_core.WritableSignal<boolean>;
|
|
76
87
|
protected readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
77
88
|
protected readonly panelEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
78
89
|
/** Listbox id (referenced by the input's `aria-controls`). */
|
|
@@ -82,6 +93,7 @@ declare class WrCommandPalette {
|
|
|
82
93
|
/** Id of the active option for `aria-activedescendant`. */
|
|
83
94
|
protected readonly activeOptionId: _angular_core.Signal<string | null>;
|
|
84
95
|
private readonly hotkeys;
|
|
96
|
+
private readonly responsiveConfig;
|
|
85
97
|
private readonly destroyRef;
|
|
86
98
|
private readonly focusTrapFactory;
|
|
87
99
|
private readonly isBrowser;
|
|
@@ -106,7 +118,7 @@ declare class WrCommandPalette {
|
|
|
106
118
|
close(): void;
|
|
107
119
|
private commit;
|
|
108
120
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCommandPalette, never>;
|
|
109
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCommandPalette, "wr-command-palette", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "closeOnPick": { "alias": "closeOnPick"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "picked": "picked"; }, never, never, true, never>;
|
|
121
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCommandPalette, "wr-command-palette", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "closeOnPick": { "alias": "closeOnPick"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "picked": "picked"; }, never, never, true, never>;
|
|
110
122
|
}
|
|
111
123
|
|
|
112
124
|
export { WrCommandPalette };
|
|
@@ -23,9 +23,16 @@ declare class WrDescriptions {
|
|
|
23
23
|
readonly inline: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
24
24
|
/** Add visible borders around each row. @default false */
|
|
25
25
|
readonly bordered: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
26
|
+
/**
|
|
27
|
+
* Reflow `inline` rows back to a stacked layout when the box itself is
|
|
28
|
+
* narrow (a container query on its own width, not the viewport — so it
|
|
29
|
+
* adapts inside a narrow card or side panel). Makes the box fill its
|
|
30
|
+
* container's width. @default false
|
|
31
|
+
*/
|
|
32
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
26
33
|
protected readonly classes: _angular_core.Signal<string>;
|
|
27
34
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDescriptions, never>;
|
|
28
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDescriptions, "wr-descriptions", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
35
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDescriptions, "wr-descriptions", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
29
36
|
}
|
|
30
37
|
|
|
31
38
|
/**
|
package/types/ngwr-dialog.d.ts
CHANGED
|
@@ -66,6 +66,12 @@ interface WrDialogOptions<D = unknown> {
|
|
|
66
66
|
readonly maxWidth?: string;
|
|
67
67
|
/** Extra CSS class(es) added to the panel. */
|
|
68
68
|
readonly panelClass?: string | readonly string[];
|
|
69
|
+
/**
|
|
70
|
+
* Present as a full-width bottom-sheet on small viewports instead of a
|
|
71
|
+
* centred modal. `undefined` follows the app-wide
|
|
72
|
+
* `provideWrResponsiveOverlays()` setting; `true`/`false` overrides it.
|
|
73
|
+
*/
|
|
74
|
+
readonly responsive?: boolean;
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
/**
|
|
@@ -96,6 +102,7 @@ declare class WrDialog {
|
|
|
96
102
|
private readonly parentInjector;
|
|
97
103
|
private readonly focusTrapFactory;
|
|
98
104
|
private readonly isBrowser;
|
|
105
|
+
private readonly responsiveConfig;
|
|
99
106
|
open<C, R = unknown, D = unknown>(component: ComponentType<C>, options?: WrDialogOptions<D>): WrDialogRef<C, R>;
|
|
100
107
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrDialog, never>;
|
|
101
108
|
static ɵprov: i0.ɵɵInjectableDeclaration<WrDialog>;
|
package/types/ngwr-dropdown.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Holds the menu content rendered when a {@link WrDropdown} opens.
|
|
@@ -59,12 +60,20 @@ declare class WrDropdown {
|
|
|
59
60
|
readonly trigger: _angular_core.InputSignal<WrDropdownTrigger>;
|
|
60
61
|
/** Where the menu anchors relative to the trigger. @default 'bottom-start' */
|
|
61
62
|
readonly position: _angular_core.InputSignal<WrDropdownPosition>;
|
|
63
|
+
/**
|
|
64
|
+
* Present the menu as a full-width bottom-sheet on small viewports instead
|
|
65
|
+
* of an anchored panel. `undefined` follows the app-wide
|
|
66
|
+
* `provideWrResponsiveOverlays()` setting; `true`/`false` overrides it.
|
|
67
|
+
* @default undefined
|
|
68
|
+
*/
|
|
69
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
|
|
62
70
|
/** Fires after the menu opens. */
|
|
63
71
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
64
72
|
/** Fires after the menu closes. */
|
|
65
73
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
66
74
|
private readonly host;
|
|
67
75
|
private readonly overlay;
|
|
76
|
+
private readonly responsiveConfig;
|
|
68
77
|
private readonly vcr;
|
|
69
78
|
private readonly scrollStrategies;
|
|
70
79
|
private readonly destroyRef;
|
|
@@ -95,7 +104,7 @@ declare class WrDropdown {
|
|
|
95
104
|
private focusItemAt;
|
|
96
105
|
private readonly onOverlayMouseLeave;
|
|
97
106
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDropdown, never>;
|
|
98
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrDropdown, "[wrDropdown]", never, { "menu": { "alias": "wrDropdown"; "required": true; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
107
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrDropdown, "[wrDropdown]", never, { "menu": { "alias": "wrDropdown"; "required": true; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
99
108
|
}
|
|
100
109
|
|
|
101
110
|
/**
|
package/types/ngwr-meta.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ declare class WrMeta {
|
|
|
73
73
|
private readonly meta;
|
|
74
74
|
private readonly doc;
|
|
75
75
|
private readonly defaults;
|
|
76
|
+
private readonly injector;
|
|
76
77
|
/** Stack of meta layers. Bottom = defaults, top = currently applied. */
|
|
77
78
|
private readonly stack;
|
|
78
79
|
/** Resolved (merged) metadata at the top of the stack. */
|
|
@@ -86,6 +87,29 @@ declare class WrMeta {
|
|
|
86
87
|
set(config: WrMetaConfig): void;
|
|
87
88
|
/** Push a new layer. Returns a handle whose `.pop()` removes it. */
|
|
88
89
|
push(config: WrMetaConfig): WrMetaHandle;
|
|
90
|
+
/**
|
|
91
|
+
* Reactive layer. Runs `factory` inside an effect and re-applies the
|
|
92
|
+
* resolved metadata whenever any signal it reads changes — so a title
|
|
93
|
+
* (or any field) built from {@link WrI18n}'s `t()` updates live on
|
|
94
|
+
* locale switch, with no manual re-`set()`.
|
|
95
|
+
*
|
|
96
|
+
* Returns a handle whose `.pop()` removes the layer and stops the effect.
|
|
97
|
+
* Safe to call outside an injection context.
|
|
98
|
+
*
|
|
99
|
+
* @example Locale-aware title
|
|
100
|
+
* ```ts
|
|
101
|
+
* const meta = inject(WrMeta);
|
|
102
|
+
* const i18n = inject(WrI18n);
|
|
103
|
+
*
|
|
104
|
+
* // `i18n.t(...)` tracks the active locale, so the title re-renders
|
|
105
|
+
* // every time `i18n.use(...)` switches languages.
|
|
106
|
+
* meta.bind(() => ({
|
|
107
|
+
* title: i18n.t('home.title'),
|
|
108
|
+
* description: i18n.t('home.description'),
|
|
109
|
+
* }));
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
bind(factory: () => WrMetaConfig): WrMetaHandle;
|
|
89
113
|
/** Pop the most recently pushed layer (defaults remain). */
|
|
90
114
|
pop(): void;
|
|
91
115
|
/** Clear all overrides, restore the defaults registered via `provideWrMeta`. */
|
package/types/ngwr-overlay.d.ts
CHANGED
|
@@ -68,6 +68,74 @@ declare class WrOverlayContainer extends OverlayContainer {
|
|
|
68
68
|
*/
|
|
69
69
|
declare function provideWrOverlay(): EnvironmentProviders;
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* @license
|
|
73
|
+
*
|
|
74
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
75
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/** Configuration for responsive (bottom-sheet) overlay presentation. */
|
|
79
|
+
interface WrResponsiveOverlaysConfig {
|
|
80
|
+
/**
|
|
81
|
+
* Viewport width (CSS px) at or below which overlays present as a
|
|
82
|
+
* bottom-sheet instead of a floating panel. @default 640
|
|
83
|
+
*/
|
|
84
|
+
readonly breakpoint: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* When set, overlay services (dialog, select, dropdown, …) present as a
|
|
88
|
+
* slide-up bottom-sheet on viewports at or below `breakpoint`. `null`
|
|
89
|
+
* (the default) keeps every overlay floating. Configure via
|
|
90
|
+
* {@link provideWrResponsiveOverlays}; override per call with a
|
|
91
|
+
* component's `responsive` option.
|
|
92
|
+
*
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
declare const WR_RESPONSIVE_OVERLAYS: InjectionToken<WrResponsiveOverlaysConfig | null>;
|
|
96
|
+
/**
|
|
97
|
+
* Decide whether an overlay should present as a bottom-sheet for the
|
|
98
|
+
* current viewport.
|
|
99
|
+
*
|
|
100
|
+
* - `responsive === true` — sheet on small viewports regardless of config.
|
|
101
|
+
* - `responsive === false` — never a sheet.
|
|
102
|
+
* - `responsive === undefined` — follow the global config (sheet when
|
|
103
|
+
* {@link provideWrResponsiveOverlays} is configured).
|
|
104
|
+
*
|
|
105
|
+
* SSR-safe: returns `false` when there's no `window`.
|
|
106
|
+
*
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
declare function wrPresentAsSheet(responsive: boolean | undefined, config: WrResponsiveOverlaysConfig | null): boolean;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @license
|
|
113
|
+
*
|
|
114
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
115
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Opt every NGWR overlay into responsive presentation — on viewports at or
|
|
120
|
+
* below `breakpoint`, dialogs / selects / dropdowns and friends slide up as
|
|
121
|
+
* a full-width bottom-sheet instead of a floating panel. Built on the same
|
|
122
|
+
* overlay plumbing, so focus-trap, backdrop and scroll-blocking carry over.
|
|
123
|
+
*
|
|
124
|
+
* Individual components can still opt out (or in) per instance via their
|
|
125
|
+
* `responsive` option.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* bootstrapApplication(AppComponent, {
|
|
130
|
+
* providers: [provideWrOverlay(), provideWrResponsiveOverlays()],
|
|
131
|
+
* });
|
|
132
|
+
*
|
|
133
|
+
* // Custom breakpoint:
|
|
134
|
+
* provideWrResponsiveOverlays({ breakpoint: 768 });
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
declare function provideWrResponsiveOverlays(config?: Partial<WrResponsiveOverlaysConfig>): EnvironmentProviders;
|
|
138
|
+
|
|
71
139
|
/**
|
|
72
140
|
* @license
|
|
73
141
|
*
|
|
@@ -107,4 +175,4 @@ declare const WR_OVERLAY: InjectionToken<Overlay>;
|
|
|
107
175
|
*/
|
|
108
176
|
declare const WR_OVERLAY_CONTAINER: InjectionToken<OverlayContainer>;
|
|
109
177
|
|
|
110
|
-
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WrOverlayContainer, provideWrOverlay };
|
|
178
|
+
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrPresentAsSheet };
|
|
@@ -28,8 +28,15 @@ declare class WrPageHeader {
|
|
|
28
28
|
readonly title: _angular_core.InputSignal<string>;
|
|
29
29
|
/** Secondary line below the title. */
|
|
30
30
|
readonly subtitle: _angular_core.InputSignal<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Stack the title and actions vertically when the header's own box is too
|
|
33
|
+
* narrow to sit them side by side (a container query on its own width, not
|
|
34
|
+
* the viewport — so it adapts inside a narrow column or split pane).
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
31
38
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrPageHeader, never>;
|
|
32
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrPageHeader, "wr-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; }, {}, never, ["[wrPageHeaderBreadcrumbs]", "[wrPageHeaderActions]", "[wrPageHeaderExtra]"], true, never>;
|
|
39
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrPageHeader, "wr-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, {}, never, ["[wrPageHeaderBreadcrumbs]", "[wrPageHeaderActions]", "[wrPageHeaderExtra]"], true, never>;
|
|
33
40
|
}
|
|
34
41
|
|
|
35
42
|
export { WrPageHeader };
|
package/types/ngwr-popover.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* @license
|
|
@@ -8,7 +9,7 @@ import { TemplateRef } from '@angular/core';
|
|
|
8
9
|
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
|
-
type WrPopoverPosition = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right';
|
|
12
|
+
type WrPopoverPosition = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
12
13
|
|
|
13
14
|
declare class WrPopover {
|
|
14
15
|
/**
|
|
@@ -37,12 +38,20 @@ declare class WrPopover {
|
|
|
37
38
|
readonly showDelay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
38
39
|
/** Tooltip only — delay before hiding, in ms. @default 60 */
|
|
39
40
|
readonly hideDelay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
41
|
+
/**
|
|
42
|
+
* Popover mode only — present the panel as a full-width bottom-sheet on
|
|
43
|
+
* small viewports instead of an anchored panel. `undefined` follows the
|
|
44
|
+
* app-wide `provideWrResponsiveOverlays()` setting; `true`/`false`
|
|
45
|
+
* overrides it. Tooltips never become sheets. @default undefined
|
|
46
|
+
*/
|
|
47
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
|
|
40
48
|
/** Fires after the panel opens. */
|
|
41
49
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
42
50
|
/** Fires after the panel closes. */
|
|
43
51
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
44
52
|
private readonly host;
|
|
45
53
|
private readonly overlay;
|
|
54
|
+
private readonly responsiveConfig;
|
|
46
55
|
private readonly vcr;
|
|
47
56
|
private readonly scrollStrategies;
|
|
48
57
|
private readonly destroyRef;
|
|
@@ -83,7 +92,7 @@ declare class WrPopover {
|
|
|
83
92
|
private scheduleHoverClose;
|
|
84
93
|
private clearHoverClose;
|
|
85
94
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrPopover, never>;
|
|
86
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrPopover, "[wrPopover]", never, { "content": { "alias": "wrPopover"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
95
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrPopover, "[wrPopover]", never, { "content": { "alias": "wrPopover"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
87
96
|
}
|
|
88
97
|
|
|
89
98
|
export { WrPopover };
|
package/types/ngwr-select.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as ngwr_i18n from 'ngwr/i18n';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
3
|
import { InjectionToken, Signal, TemplateRef, ElementRef } from '@angular/core';
|
|
4
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
4
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
6
|
import { Observable } from 'rxjs';
|
|
6
7
|
|
|
@@ -154,6 +155,13 @@ declare class WrSelect implements ControlValueAccessor, WrSelectContext {
|
|
|
154
155
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
155
156
|
/** Pill-shaped corners on the trigger. @default false */
|
|
156
157
|
readonly rounded: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
158
|
+
/**
|
|
159
|
+
* Present the option panel as a full-width bottom-sheet on small
|
|
160
|
+
* viewports instead of an anchored dropdown. `undefined` follows the
|
|
161
|
+
* app-wide `provideWrResponsiveOverlays()` setting; `true`/`false`
|
|
162
|
+
* overrides it. @default undefined
|
|
163
|
+
*/
|
|
164
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
|
|
157
165
|
/**
|
|
158
166
|
* Behavior mode. `<wr-select>` is the unified combobox primitive —
|
|
159
167
|
* pick the shape via `[mode]`:
|
|
@@ -309,6 +317,7 @@ declare class WrSelect implements ControlValueAccessor, WrSelectContext {
|
|
|
309
317
|
protected readonly searchDisplay: _angular_core.Signal<string>;
|
|
310
318
|
private readonly host;
|
|
311
319
|
private readonly overlay;
|
|
320
|
+
private readonly responsiveConfig;
|
|
312
321
|
private readonly vcr;
|
|
313
322
|
private readonly scrollStrategies;
|
|
314
323
|
private readonly destroyRef;
|
|
@@ -346,7 +355,7 @@ declare class WrSelect implements ControlValueAccessor, WrSelectContext {
|
|
|
346
355
|
private openOverlay;
|
|
347
356
|
private closeOverlay;
|
|
348
357
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrSelect, never>;
|
|
349
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrSelect, "wr-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "loader": { "alias": "loader"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "freeText": { "alias": "freeText"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "maxItems": { "alias": "maxItems"; "required": false; "isSignal": true; }; "maxTagCount": { "alias": "maxTagCount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
358
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrSelect, "wr-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "loader": { "alias": "loader"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "freeText": { "alias": "freeText"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "maxItems": { "alias": "maxItems"; "required": false; "isSignal": true; }; "maxTagCount": { "alias": "maxTagCount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
350
359
|
}
|
|
351
360
|
|
|
352
361
|
/**
|
package/types/ngwr-stepper.d.ts
CHANGED
|
@@ -80,6 +80,13 @@ declare class WrStepper implements WrStepperContext {
|
|
|
80
80
|
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
81
81
|
/** Lock steps after the latest completed one. @default false */
|
|
82
82
|
readonly linear: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
83
|
+
/**
|
|
84
|
+
* Drop a horizontal stepper to a vertical layout when its own box is too
|
|
85
|
+
* narrow for the row (a container query on its own width, not the
|
|
86
|
+
* viewport — so it adapts inside a narrow column or side panel). No effect
|
|
87
|
+
* when `orientation` is already `vertical`. @default false
|
|
88
|
+
*/
|
|
89
|
+
readonly responsive: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
83
90
|
protected readonly steps: _angular_core.Signal<readonly WrStep[]>;
|
|
84
91
|
protected readonly classes: _angular_core.Signal<string>;
|
|
85
92
|
constructor();
|
|
@@ -92,7 +99,7 @@ declare class WrStepper implements WrStepperContext {
|
|
|
92
99
|
next(): void;
|
|
93
100
|
prev(): void;
|
|
94
101
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrStepper, never>;
|
|
95
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrStepper, "wr-stepper", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["steps"], ["*"], true, never>;
|
|
102
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrStepper, "wr-stepper", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["steps"], ["*"], true, never>;
|
|
96
103
|
}
|
|
97
104
|
|
|
98
105
|
export { WR_STEPPER, WrStep, WrStepper };
|
package/types/ngwr-version.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
16
16
|
* Distinct from `Version` exported by `@angular/core`, which reports the
|
|
17
17
|
* loaded Angular runtime version (e.g. `'21.2.13'`), not ngwr's.
|
|
18
18
|
*/
|
|
19
|
-
declare const NGWR_VERSION = "7.
|
|
19
|
+
declare const NGWR_VERSION = "7.2.0";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @license
|