@radix-ng/primitives 0.51.0 → 1.0.0-beta.1
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/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
- package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-button.mjs +123 -0
- package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-calendar.mjs +95 -83
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
- package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +845 -744
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-cropper.mjs +288 -308
- package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +104 -58
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-drawer.mjs +960 -0
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-editable.mjs +304 -23
- package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +363 -0
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
- package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-input.mjs +172 -0
- package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-label.mjs +6 -6
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +1907 -363
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
- package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +111 -44
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
- package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
- package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
- package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +923 -0
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-select.mjs +791 -509
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +390 -108
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toast.mjs +839 -0
- package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +699 -1072
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/meter/README.md +3 -0
- package/navigation-menu/README.md +2 -1
- package/package.json +39 -18
- package/portal/README.md +2 -0
- package/preview-card/README.md +3 -0
- package/schematics/collection.json +1 -0
- package/schematics/ng-add/index.d.ts +3 -2
- package/schematics/ng-add/index.js +62 -31
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/package-config.d.ts +4 -2
- package/schematics/ng-add/package-config.js +10 -2
- package/schematics/ng-add/package-config.js.map +1 -1
- package/schematics/ng-add/schema.d.ts +3 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +14 -0
- package/select/README.md +2 -0
- package/types/radix-ng-primitives-accordion.d.ts +51 -16
- package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
- package/types/radix-ng-primitives-arrow.d.ts +1 -1
- package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
- package/types/radix-ng-primitives-avatar.d.ts +7 -11
- package/types/radix-ng-primitives-button.d.ts +73 -0
- package/types/radix-ng-primitives-calendar.d.ts +39 -20
- package/types/radix-ng-primitives-checkbox.d.ts +204 -35
- package/types/radix-ng-primitives-collapsible.d.ts +114 -40
- package/types/radix-ng-primitives-collection.d.ts +38 -34
- package/types/radix-ng-primitives-config.d.ts +1 -1
- package/types/radix-ng-primitives-context-menu.d.ts +61 -116
- package/types/radix-ng-primitives-core.d.ts +345 -235
- package/types/radix-ng-primitives-cropper.d.ts +89 -56
- package/types/radix-ng-primitives-date-field.d.ts +49 -28
- package/types/radix-ng-primitives-dialog.d.ts +283 -165
- package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
- package/types/radix-ng-primitives-drawer.d.ts +426 -0
- package/types/radix-ng-primitives-editable.d.ts +91 -14
- package/types/radix-ng-primitives-field.d.ts +374 -0
- package/types/radix-ng-primitives-fieldset.d.ts +49 -0
- package/types/radix-ng-primitives-focus-scope.d.ts +15 -6
- package/types/radix-ng-primitives-input.d.ts +87 -0
- package/types/radix-ng-primitives-label.d.ts +0 -1
- package/types/radix-ng-primitives-menu.d.ts +584 -99
- package/types/radix-ng-primitives-menubar.d.ts +61 -50
- package/types/radix-ng-primitives-meter.d.ts +194 -0
- package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
- package/types/radix-ng-primitives-number-field.d.ts +405 -145
- package/types/radix-ng-primitives-pagination.d.ts +2 -2
- package/types/radix-ng-primitives-popover.d.ts +366 -351
- package/types/radix-ng-primitives-popper.d.ts +68 -11
- package/types/radix-ng-primitives-portal.d.ts +14 -6
- package/types/radix-ng-primitives-presence.d.ts +28 -76
- package/types/radix-ng-primitives-preview-card.d.ts +359 -0
- package/types/radix-ng-primitives-progress.d.ts +175 -48
- package/types/radix-ng-primitives-radio.d.ts +55 -25
- package/types/radix-ng-primitives-roving-focus.d.ts +33 -23
- package/types/radix-ng-primitives-scroll-area.d.ts +253 -0
- package/types/radix-ng-primitives-select.d.ts +475 -177
- package/types/radix-ng-primitives-separator.d.ts +7 -32
- package/types/radix-ng-primitives-slider.d.ts +315 -201
- package/types/radix-ng-primitives-stepper.d.ts +5 -7
- package/types/radix-ng-primitives-switch.d.ts +86 -71
- package/types/radix-ng-primitives-tabs.d.ts +213 -79
- package/types/radix-ng-primitives-time-field.d.ts +42 -27
- package/types/radix-ng-primitives-toast.d.ts +378 -0
- package/types/radix-ng-primitives-toggle-group.d.ts +86 -164
- package/types/radix-ng-primitives-toggle.d.ts +43 -53
- package/types/radix-ng-primitives-toolbar.d.ts +164 -38
- package/types/radix-ng-primitives-tooltip.d.ts +348 -384
- package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
- package/dropdown-menu/README.md +0 -1
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
- package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
- package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
- package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
- package/hover-card/README.md +0 -3
- package/select2/README.md +0 -3
- package/tooltip2/README.md +0 -3
- package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
- package/types/radix-ng-primitives-hover-card.d.ts +0 -471
- package/types/radix-ng-primitives-select2.d.ts +0 -511
- package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal, Provider } from '@angular/core';
|
|
3
|
+
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
+
import { BooleanInput } from '@radix-ng/primitives/core';
|
|
5
|
+
export { RdxPointerDragHandlers, usePointerDrag } from '@radix-ng/primitives/core';
|
|
6
|
+
import * as i1 from '@radix-ng/primitives/dialog';
|
|
7
|
+
import { RdxDialogHandle } from '@radix-ng/primitives/dialog';
|
|
8
|
+
import * as _radix_ng_primitives_drawer from '@radix-ng/primitives/drawer';
|
|
9
|
+
|
|
10
|
+
/** A single open drawer's registration with the {@link RdxDrawerProvider}. */
|
|
11
|
+
interface RdxDrawerRegistration {
|
|
12
|
+
/** Stable id of the registered drawer root. */
|
|
13
|
+
id: string;
|
|
14
|
+
/** The drawer popup's measured size (px) along its dismiss axis. */
|
|
15
|
+
height: Signal<number>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* App-level coordinator that tracks every open drawer so background content can react to them
|
|
19
|
+
* (the page-scale / indent effect). Provide it once near the app root with
|
|
20
|
+
* {@link provideRdxDrawerProvider} or the `[rdxDrawerProvider]` directive; drawers that find it in
|
|
21
|
+
* their injector register while open. It is optional — drawers work without it.
|
|
22
|
+
*/
|
|
23
|
+
declare class RdxDrawerProvider {
|
|
24
|
+
private readonly stack;
|
|
25
|
+
/** Number of open drawers. */
|
|
26
|
+
readonly count: Signal<number>;
|
|
27
|
+
/** Whether any drawer is open. */
|
|
28
|
+
readonly active: Signal<boolean>;
|
|
29
|
+
/** The most recently opened (frontmost) drawer, or `null`. */
|
|
30
|
+
readonly frontmost: Signal<RdxDrawerRegistration | null>;
|
|
31
|
+
/** The frontmost drawer's measured size (px), or `0` when none is open. */
|
|
32
|
+
readonly frontmostHeight: Signal<number>;
|
|
33
|
+
/** Register an open drawer; returns a disposer that removes it. */
|
|
34
|
+
register(registration: RdxDrawerRegistration): () => void;
|
|
35
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerProvider, never>;
|
|
36
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RdxDrawerProvider>;
|
|
37
|
+
}
|
|
38
|
+
/** Provide a {@link RdxDrawerProvider} for an app (e.g. in `app.config.ts`). */
|
|
39
|
+
declare function provideRdxDrawerProvider(): Provider[];
|
|
40
|
+
/**
|
|
41
|
+
* Hosts a {@link RdxDrawerProvider} for its subtree. Put it on a wrapping element so descendant
|
|
42
|
+
* drawer roots and `rdxDrawerIndent*` parts share one coordinator.
|
|
43
|
+
*/
|
|
44
|
+
declare class RdxDrawerProviderDirective {
|
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerProviderDirective, never>;
|
|
46
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerProviderDirective, "[rdxDrawerProvider]", ["rdxDrawerProvider"], {}, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Direction a swipe travels to dismiss the drawer. Mirrors Base UI's `swipeDirection`:
|
|
51
|
+
* `'down'` is the default (bottom sheet). The *visual* side of the drawer is consumer CSS;
|
|
52
|
+
* this only controls the dismiss gesture and the data/CSS-variable contract below.
|
|
53
|
+
*/
|
|
54
|
+
type RdxDrawerSwipeDirection = 'up' | 'down' | 'left' | 'right';
|
|
55
|
+
/** The decision a release resolves to: dismiss the drawer, or rest at a snap offset (px). */
|
|
56
|
+
type RdxDrawerRelease = {
|
|
57
|
+
type: 'dismiss';
|
|
58
|
+
} | {
|
|
59
|
+
type: 'snap';
|
|
60
|
+
offset: number;
|
|
61
|
+
};
|
|
62
|
+
interface RdxDrawerSwipeConfig {
|
|
63
|
+
/** The popup element the gesture lives on (CSS variables + data attributes are written here). */
|
|
64
|
+
element: () => HTMLElement;
|
|
65
|
+
/** Active swipe direction. */
|
|
66
|
+
direction: Signal<RdxDrawerSwipeDirection>;
|
|
67
|
+
/** Whether the gesture is currently armed (typically `open`). */
|
|
68
|
+
enabled: Signal<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Resting translate magnitude (px toward dismissal) of the active snap point; `0` is fully open
|
|
71
|
+
* and the default when there are no snap points. The popup keeps this in sync with snap state.
|
|
72
|
+
*/
|
|
73
|
+
restingOffset: Signal<number>;
|
|
74
|
+
/**
|
|
75
|
+
* Decide where a release lands. `projected` is the resting offset the drag reached (px toward
|
|
76
|
+
* dismissal, may be negative past fully-open); `velocity` is signed px/ms toward dismissal;
|
|
77
|
+
* `canDismiss` is false for a cancelled gesture or a closed drawer.
|
|
78
|
+
*/
|
|
79
|
+
resolveRelease: (projected: number, velocity: number, canDismiss: boolean) => RdxDrawerRelease;
|
|
80
|
+
/** Called once per release that resolves to dismissal. */
|
|
81
|
+
onDismiss: (event: PointerEvent) => void;
|
|
82
|
+
/** Called with the 0..1 live dismiss progress so siblings (backdrop) can react; `0` at rest. */
|
|
83
|
+
onProgress?: (strength: number) => void;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Headless swipe gesture for the drawer popup: dismiss, snap-back, and movement between snap points.
|
|
87
|
+
*
|
|
88
|
+
* Writes a small contract the consumer styles against (no transform is applied for you, keeping the
|
|
89
|
+
* primitive headless):
|
|
90
|
+
* - `--drawer-swipe-movement-x` / `--drawer-swipe-movement-y` — signed px offset along the axis,
|
|
91
|
+
* including the active snap point's resting offset while idle.
|
|
92
|
+
* - `--drawer-swipe-strength` — 0..1 live dismiss progress (`0` at rest).
|
|
93
|
+
* - `[data-swiping]` — present while a gesture is active (drive `transition: none` off this).
|
|
94
|
+
* - `[data-swipe-direction]` — the active direction.
|
|
95
|
+
* - `[data-swipe-dismiss]` — present briefly when a release commits to dismissal.
|
|
96
|
+
*
|
|
97
|
+
* While idle the movement variables hold the active snap offset; releasing without dismissing writes
|
|
98
|
+
* the target offset so the consumer's `transition` animates between snap points and home.
|
|
99
|
+
*
|
|
100
|
+
* Must be called from an injection context (a directive/component constructor).
|
|
101
|
+
*/
|
|
102
|
+
declare function useDrawerSwipe(config: RdxDrawerSwipeConfig): void;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* A resting position for the drawer along the dismiss axis.
|
|
106
|
+
*
|
|
107
|
+
* - a number in `(0, 1]` — a fraction of the drawer's size (`1` = fully open);
|
|
108
|
+
* - a number `> 1` — an absolute amount of the drawer revealed, in pixels;
|
|
109
|
+
* - a string — `'148px'` (pixels), `'30rem'` (root-em), `'40%'` (fraction of size), or a bare number
|
|
110
|
+
* as above.
|
|
111
|
+
*
|
|
112
|
+
* Order the `snapPoints` array ascending by openness; the last entry is treated as "most open" and
|
|
113
|
+
* is the default the drawer opens to when `defaultSnapPoint` is not set.
|
|
114
|
+
*/
|
|
115
|
+
type RdxDrawerSnapPoint = number | string;
|
|
116
|
+
/**
|
|
117
|
+
* Resolve a snap point to the number of pixels of the drawer revealed at that point. `rootFontSize`
|
|
118
|
+
* (px) resolves `rem` units; it defaults to the CSS initial value of `16`.
|
|
119
|
+
*/
|
|
120
|
+
declare function snapPointReveal(value: RdxDrawerSnapPoint, size: number, rootFontSize?: number): number;
|
|
121
|
+
interface RdxDrawerSnapEntry {
|
|
122
|
+
value: RdxDrawerSnapPoint;
|
|
123
|
+
/** Pixels of the drawer revealed at this point. */
|
|
124
|
+
reveal: number;
|
|
125
|
+
/** Translate magnitude (px) toward dismissal from fully-open; `0` is fully open. */
|
|
126
|
+
offset: number;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Build the snap entries for a given drawer size, sorted by openness (most open / smallest offset
|
|
130
|
+
* first). `offset = size - reveal`, so a fully-revealed point sits at offset `0`.
|
|
131
|
+
*/
|
|
132
|
+
declare function buildSnapEntries(values: readonly RdxDrawerSnapPoint[], size: number, rootFontSize?: number): RdxDrawerSnapEntry[];
|
|
133
|
+
type RdxDrawerSnapTarget = {
|
|
134
|
+
dismiss: true;
|
|
135
|
+
} | {
|
|
136
|
+
index: number;
|
|
137
|
+
};
|
|
138
|
+
interface RdxDrawerSnapResolveOptions {
|
|
139
|
+
/** Snap offsets (px), ascending; index-aligned to the sorted entries. */
|
|
140
|
+
offsets: readonly number[];
|
|
141
|
+
/** Index of the currently active offset. */
|
|
142
|
+
activeIndex: number;
|
|
143
|
+
/** Projected resting offset (px toward dismissal) at release. */
|
|
144
|
+
projected: number;
|
|
145
|
+
/** Signed release velocity (px/ms), positive toward dismissal. */
|
|
146
|
+
velocity: number;
|
|
147
|
+
/** Drawer size (px); the dismiss target sits here (fully hidden). */
|
|
148
|
+
size: number;
|
|
149
|
+
/** Step at most one snap point per release instead of velocity-skipping. */
|
|
150
|
+
sequential: boolean;
|
|
151
|
+
/** Whether passing the most-closed point may dismiss the drawer. */
|
|
152
|
+
canDismiss: boolean;
|
|
153
|
+
}
|
|
154
|
+
/** Pick the snap point (or dismissal) a release lands on. */
|
|
155
|
+
declare function resolveSnapTarget(options: RdxDrawerSnapResolveOptions): RdxDrawerSnapTarget;
|
|
156
|
+
/** The unit translate vector pointing toward dismissal for a direction. */
|
|
157
|
+
declare function dismissUnitVector(direction: RdxDrawerSwipeDirection): {
|
|
158
|
+
x: number;
|
|
159
|
+
y: number;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
interface RdxDrawerRootContext {
|
|
163
|
+
/** Direction a swipe travels to dismiss the drawer. */
|
|
164
|
+
swipeDirection: Signal<RdxDrawerSwipeDirection>;
|
|
165
|
+
/** 0..1 progress of the active dismiss gesture; siblings (e.g. backdrop) react to it. */
|
|
166
|
+
swipeProgress: Signal<number>;
|
|
167
|
+
/** Reports gesture progress from the popup's swipe engine. */
|
|
168
|
+
setSwipeProgress: (value: number) => void;
|
|
169
|
+
/** Configured snap points (empty when the drawer has none). */
|
|
170
|
+
snapPoints: Signal<readonly RdxDrawerSnapPoint[]>;
|
|
171
|
+
/** Whether the drawer rests at discrete snap points. */
|
|
172
|
+
hasSnapPoints: Signal<boolean>;
|
|
173
|
+
/** The active snap point, or `null` when none is set / the drawer is closed. */
|
|
174
|
+
activeSnapPoint: Signal<RdxDrawerSnapPoint | null>;
|
|
175
|
+
/** Step at most one snap point per release instead of velocity-skipping. */
|
|
176
|
+
sequentialSnap: Signal<boolean>;
|
|
177
|
+
/** Sets the active snap point, optionally emitting `onSnapPointChange`. */
|
|
178
|
+
setActiveSnapPoint: (value: RdxDrawerSnapPoint, emit: boolean) => void;
|
|
179
|
+
/** Whether a drawer nested inside this one is open. */
|
|
180
|
+
nestedDrawerOpen: Signal<boolean>;
|
|
181
|
+
/** Number of drawers nested inside this one that are open. */
|
|
182
|
+
nestedDrawerCount: Signal<number>;
|
|
183
|
+
/** The app-wide frontmost drawer's measured size (px), via the optional provider. */
|
|
184
|
+
frontmostHeight: Signal<number>;
|
|
185
|
+
/** Reports the popup's measured size (px) so the provider can expose it. */
|
|
186
|
+
reportPopupHeight: (height: number) => void;
|
|
187
|
+
}
|
|
188
|
+
declare const injectRdxDrawerRootContext: _radix_ng_primitives_core.InjectContext<RdxDrawerRootContext>;
|
|
189
|
+
declare const provideRdxDrawerRootContext: (useFactory: () => RdxDrawerRootContext) => i0.Provider;
|
|
190
|
+
/**
|
|
191
|
+
* Groups all parts of the drawer.
|
|
192
|
+
*
|
|
193
|
+
* Composes the Dialog primitive directly (modal-by-default but user-overridable) and layers the
|
|
194
|
+
* drawer-specific swipe and snap-point contract on top via {@link RdxDrawerRootContext}. Modality,
|
|
195
|
+
* dismissal and detached-trigger handling are the dialog's: the `modal`, `disablePointerDismissal`
|
|
196
|
+
* and `handle` inputs are proxied straight through, so a drawer is a modal dialog the user can make
|
|
197
|
+
* non-modal.
|
|
198
|
+
*/
|
|
199
|
+
declare class RdxDrawerRoot {
|
|
200
|
+
private readonly dialog;
|
|
201
|
+
private readonly provider;
|
|
202
|
+
/** The popup's measured size (px) along its dismiss axis, reported by the popup. */
|
|
203
|
+
readonly popupHeight: i0.WritableSignal<number>;
|
|
204
|
+
/**
|
|
205
|
+
* Direction a swipe travels to dismiss the drawer. The visual side of the drawer is consumer
|
|
206
|
+
* CSS; this controls the dismiss gesture and the `data-swipe-direction` styling hook.
|
|
207
|
+
*/
|
|
208
|
+
readonly swipeDirection: i0.InputSignal<RdxDrawerSwipeDirection>;
|
|
209
|
+
/**
|
|
210
|
+
* Resting positions the drawer snaps to along the dismiss axis. Order ascending by openness; the
|
|
211
|
+
* last entry is the default the drawer opens to. Omit for a plain open/closed drawer.
|
|
212
|
+
*/
|
|
213
|
+
readonly snapPoints: i0.InputSignal<readonly RdxDrawerSnapPoint[] | undefined>;
|
|
214
|
+
/** The active snap point (controlled / uncontrolled with `[(snapPoint)]`). */
|
|
215
|
+
readonly snapPoint: i0.ModelSignal<RdxDrawerSnapPoint | null>;
|
|
216
|
+
/** The snap point the drawer opens to when uncontrolled; defaults to the most open point. */
|
|
217
|
+
readonly defaultSnapPoint: i0.InputSignal<RdxDrawerSnapPoint | undefined>;
|
|
218
|
+
/** Step at most one snap point per release instead of letting velocity skip points. */
|
|
219
|
+
readonly snapToSequentialPoints: i0.InputSignalWithTransform<boolean, BooleanInput>;
|
|
220
|
+
/** Emits when the active snap point changes through a gesture. */
|
|
221
|
+
readonly onSnapPointChange: i0.OutputEmitterRef<RdxDrawerSnapPoint>;
|
|
222
|
+
/** 0..1 progress of the active dismiss gesture, written by the popup's swipe engine. */
|
|
223
|
+
readonly swipeProgress: i0.WritableSignal<number>;
|
|
224
|
+
readonly normalizedSnapPoints: Signal<readonly RdxDrawerSnapPoint[]>;
|
|
225
|
+
readonly hasSnapPoints: Signal<boolean>;
|
|
226
|
+
/** Whether a drawer nested inside this one is open (reuses the dialog's nesting detection). */
|
|
227
|
+
readonly nestedDrawerOpen: Signal<boolean>;
|
|
228
|
+
/** Number of open drawers nested inside this one. */
|
|
229
|
+
readonly nestedDrawerCount: Signal<number>;
|
|
230
|
+
/** The app-wide frontmost drawer's measured size (px); `0` without a provider. */
|
|
231
|
+
readonly frontmostHeight: Signal<number>;
|
|
232
|
+
/** Whether the drawer is open (read-only mirror of the composed dialog state). */
|
|
233
|
+
readonly open: i0.ModelSignal<boolean>;
|
|
234
|
+
/** The active trigger's id. */
|
|
235
|
+
readonly triggerId: i0.ModelSignal<string | null>;
|
|
236
|
+
/** Payload of the active trigger. */
|
|
237
|
+
readonly payload: i0.WritableSignal<unknown>;
|
|
238
|
+
constructor();
|
|
239
|
+
setActiveSnapPoint(value: RdxDrawerSnapPoint, emit: boolean): void;
|
|
240
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerRoot, never>;
|
|
241
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerRoot, "[rdxDrawerRoot]", ["rdxDrawerRoot"], { "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "snapPoints": { "alias": "snapPoints"; "required": false; "isSignal": true; }; "snapPoint": { "alias": "snapPoint"; "required": false; "isSignal": true; }; "defaultSnapPoint": { "alias": "defaultSnapPoint"; "required": false; "isSignal": true; }; "snapToSequentialPoints": { "alias": "snapToSequentialPoints"; "required": false; "isSignal": true; }; }, { "snapPoint": "snapPointChange"; "onSnapPointChange": "onSnapPointChange"; }, never, never, true, [{ directive: typeof i1.RdxDialogRoot; inputs: { "open": "open"; "defaultOpen": "defaultOpen"; "triggerId": "triggerId"; "defaultTriggerId": "defaultTriggerId"; "handle": "handle"; "modal": "modal"; "disablePointerDismissal": "disablePointerDismissal"; }; outputs: { "openChange": "openChange"; "triggerIdChange": "triggerIdChange"; "onOpenChange": "onOpenChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }; }]>;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* A button that opens the drawer. Behaves exactly like the dialog trigger.
|
|
246
|
+
*/
|
|
247
|
+
declare class RdxDrawerTrigger {
|
|
248
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerTrigger, never>;
|
|
249
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerTrigger, "button[rdxDrawerTrigger]", ["rdxDrawerTrigger"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogTrigger; inputs: { "handle": "handle"; "payload": "payload"; "id": "id"; "disabled": "disabled"; }; outputs: {}; }]>;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* An off-canvas region (typically pinned to a screen edge) that opens the drawer when swiped inward.
|
|
254
|
+
*
|
|
255
|
+
* Phase 1 opens on a threshold crossing rather than following the pointer live (the popup is not
|
|
256
|
+
* mounted while closed); the live-follow open will land with snap points. Shares the drawer's
|
|
257
|
+
* pointer-drag lifecycle so capture/cancel handling stays consistent with the popup gesture.
|
|
258
|
+
*/
|
|
259
|
+
declare class RdxDrawerSwipeArea {
|
|
260
|
+
private readonly drawerContext;
|
|
261
|
+
private readonly dialogContext;
|
|
262
|
+
/** Direction the swipe area opens from; defaults to the root's `swipeDirection`. */
|
|
263
|
+
readonly swipeDirection: i0.InputSignal<RdxDrawerSwipeDirection | undefined>;
|
|
264
|
+
/** Whether the swipe area should ignore user interaction. */
|
|
265
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
|
|
266
|
+
protected readonly isOpen: i0.Signal<boolean>;
|
|
267
|
+
protected readonly direction: i0.Signal<RdxDrawerSwipeDirection>;
|
|
268
|
+
protected readonly swiping: i0.WritableSignal<boolean>;
|
|
269
|
+
private startX;
|
|
270
|
+
private startY;
|
|
271
|
+
constructor();
|
|
272
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerSwipeArea, never>;
|
|
273
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerSwipeArea, "[rdxDrawerSwipeArea]", ["rdxDrawerSwipeArea"], { "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Mounts the portal while the drawer is open and waits for CSS exit keyframes before unmounting.
|
|
278
|
+
*/
|
|
279
|
+
declare class RdxDrawerPortalPresence {
|
|
280
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerPortalPresence, never>;
|
|
281
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerPortalPresence, "ng-template[rdxDrawerPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogPortalPresence; inputs: {}; outputs: {}; }]>;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Moves the drawer to a different part of the DOM. Defaults to `document.body`.
|
|
286
|
+
*/
|
|
287
|
+
declare class RdxDrawerPortal {
|
|
288
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerPortal, never>;
|
|
289
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerPortal, "[rdxDrawerPortal]", ["rdxDrawerPortal"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* An overlay displayed beneath the drawer popup.
|
|
294
|
+
*
|
|
295
|
+
* Composes the dialog backdrop and additionally exposes `--drawer-swipe-progress` (0..1) so the
|
|
296
|
+
* consumer can fade it in step with the dismiss gesture.
|
|
297
|
+
*/
|
|
298
|
+
declare class RdxDrawerBackdrop {
|
|
299
|
+
protected readonly drawerContext: _radix_ng_primitives_drawer.RdxDrawerRootContext;
|
|
300
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerBackdrop, never>;
|
|
301
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerBackdrop, "[rdxDrawerBackdrop]", ["rdxDrawerBackdrop"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogBackdrop; inputs: {}; outputs: {}; }]>;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* A positioning container for the drawer popup that can be made scrollable.
|
|
306
|
+
*
|
|
307
|
+
* Exposes the dialog viewport's `data-nested` / `data-nested-dialog-open` state for styling.
|
|
308
|
+
*/
|
|
309
|
+
declare class RdxDrawerViewport {
|
|
310
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerViewport, never>;
|
|
311
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerViewport, "[rdxDrawerViewport]", ["rdxDrawerViewport"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogViewport; inputs: {}; outputs: {}; }]>;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* A container for the drawer contents.
|
|
316
|
+
*
|
|
317
|
+
* Composes the dialog popup (focus trap, dismissal, scroll lock, a11y wiring) and owns the drawer
|
|
318
|
+
* gesture on top of it: swipe-to-dismiss, snap-back, and movement between snap points. The gesture
|
|
319
|
+
* publishes a CSS-variable / data-attribute contract (see {@link useDrawerSwipe}); the consumer
|
|
320
|
+
* styles the actual transform and snap-back transition off it, keeping the primitive headless.
|
|
321
|
+
*/
|
|
322
|
+
declare class RdxDrawerPopup {
|
|
323
|
+
protected readonly drawerContext: _radix_ng_primitives_drawer.RdxDrawerRootContext;
|
|
324
|
+
private readonly dialogContext;
|
|
325
|
+
private readonly elementRef;
|
|
326
|
+
private readonly element;
|
|
327
|
+
/** Live popup size (px); a ResizeObserver keeps it current so snap geometry never goes stale. */
|
|
328
|
+
private readonly size;
|
|
329
|
+
/** Snap entries for the current size; built once and shared by the offset/expanded reads. */
|
|
330
|
+
private readonly snapEntries;
|
|
331
|
+
/** Resting translate magnitude (px) of the active snap point; `0` when fully open / no snaps. */
|
|
332
|
+
readonly restingOffset: i0.Signal<number>;
|
|
333
|
+
/** Whether the active snap point is the most open one. */
|
|
334
|
+
protected readonly expanded: i0.Signal<boolean>;
|
|
335
|
+
/** The frontmost nested drawer's height for `--drawer-frontmost-height`, or unset when none. */
|
|
336
|
+
protected readonly frontmostHeightPx: i0.Signal<string | null>;
|
|
337
|
+
constructor();
|
|
338
|
+
private axisSize;
|
|
339
|
+
private resolveRelease;
|
|
340
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerPopup, never>;
|
|
341
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerPopup, "[rdxDrawerPopup]", ["rdxDrawerPopup"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogPopup; inputs: {}; outputs: { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "openAutoFocus": "openAutoFocus"; "closeAutoFocus": "closeAutoFocus"; }; }]>;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* The scrollable body of the drawer.
|
|
346
|
+
*
|
|
347
|
+
* A structural marker so the anatomy matches Base UI. The popup's swipe engine yields to scrolling
|
|
348
|
+
* inside this region automatically (it only starts a dismiss gesture when the scroll is at its
|
|
349
|
+
* edge), so no extra wiring is needed. Opt individual elements out of swiping with the
|
|
350
|
+
* `data-base-ui-swipe-ignore` attribute.
|
|
351
|
+
*/
|
|
352
|
+
declare class RdxDrawerContent {
|
|
353
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerContent, never>;
|
|
354
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerContent, "[rdxDrawerContent]", ["rdxDrawerContent"], {}, {}, never, never, true, never>;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* An accessible title announced when the drawer is opened.
|
|
359
|
+
*/
|
|
360
|
+
declare class RdxDrawerTitle {
|
|
361
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerTitle, never>;
|
|
362
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerTitle, "[rdxDrawerTitle]", ["rdxDrawerTitle"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogTitle; inputs: {}; outputs: {}; }]>;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* An accessible description announced when the drawer is opened.
|
|
367
|
+
*/
|
|
368
|
+
declare class RdxDrawerDescription {
|
|
369
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerDescription, never>;
|
|
370
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerDescription, "[rdxDrawerDescription]", ["rdxDrawerDescription"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogDescription; inputs: {}; outputs: {}; }]>;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* A button that closes the drawer.
|
|
375
|
+
*/
|
|
376
|
+
declare class RdxDrawerClose {
|
|
377
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerClose, never>;
|
|
378
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerClose, "button[rdxDrawerClose]", ["rdxDrawerClose"], {}, {}, never, never, true, [{ directive: typeof i1.RdxDialogClose; inputs: {}; outputs: {}; }]>;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Background content that scales/indents while any drawer is open.
|
|
383
|
+
*
|
|
384
|
+
* Reads the nearest {@link RdxDrawerProvider} and exposes styling hooks; the visual transform is
|
|
385
|
+
* consumer CSS (headless):
|
|
386
|
+
* - `[data-active]` — present while at least one drawer is open.
|
|
387
|
+
* - `--nested-drawers` — the number of open drawers.
|
|
388
|
+
* - `--drawer-frontmost-height` — the frontmost drawer's measured size, in pixels.
|
|
389
|
+
*/
|
|
390
|
+
declare class RdxDrawerIndent {
|
|
391
|
+
protected readonly provider: RdxDrawerProvider | null;
|
|
392
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerIndent, never>;
|
|
393
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerIndent, "[rdxDrawerIndent]", ["rdxDrawerIndent"], {}, {}, never, never, true, never>;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* The page background layer that scales/indents while any drawer is open.
|
|
398
|
+
*
|
|
399
|
+
* Behaves like {@link RdxDrawerIndent} (same `[data-active]` / `--nested-drawers` /
|
|
400
|
+
* `--drawer-frontmost-height` contract); kept as a distinct part so the page backdrop and the
|
|
401
|
+
* indented content can be styled independently, mirroring Base UI.
|
|
402
|
+
*/
|
|
403
|
+
declare class RdxDrawerIndentBackground {
|
|
404
|
+
protected readonly provider: RdxDrawerProvider | null;
|
|
405
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerIndentBackground, never>;
|
|
406
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDrawerIndentBackground, "[rdxDrawerIndentBackground]", ["rdxDrawerIndentBackground"], {}, {}, never, never, true, never>;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* Connects a drawer root with trigger elements rendered elsewhere in the DOM.
|
|
411
|
+
*
|
|
412
|
+
* Drawers reuse the dialog handle implementation unchanged.
|
|
413
|
+
*/
|
|
414
|
+
declare const RdxDrawerHandle: typeof RdxDialogHandle;
|
|
415
|
+
type RdxDrawerHandle<Payload = unknown> = RdxDialogHandle<Payload>;
|
|
416
|
+
declare function createRdxDrawerHandle<Payload = unknown>(): RdxDrawerHandle<Payload>;
|
|
417
|
+
|
|
418
|
+
declare const drawerImports: (typeof RdxDrawerProviderDirective)[];
|
|
419
|
+
declare class RdxDrawerModule {
|
|
420
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDrawerModule, never>;
|
|
421
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxDrawerModule, never, [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortalPresence, typeof RdxDrawerPortal, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground], [typeof RdxDrawerProviderDirective, typeof RdxDrawerRoot, typeof RdxDrawerTrigger, typeof RdxDrawerSwipeArea, typeof RdxDrawerPortalPresence, typeof RdxDrawerPortal, typeof RdxDrawerBackdrop, typeof RdxDrawerViewport, typeof RdxDrawerPopup, typeof RdxDrawerContent, typeof RdxDrawerTitle, typeof RdxDrawerDescription, typeof RdxDrawerClose, typeof RdxDrawerIndent, typeof RdxDrawerIndentBackground]>;
|
|
422
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<RdxDrawerModule>;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export { RdxDrawerBackdrop, RdxDrawerClose, RdxDrawerContent, RdxDrawerDescription, RdxDrawerHandle, RdxDrawerIndent, RdxDrawerIndentBackground, RdxDrawerModule, RdxDrawerPopup, RdxDrawerPortal, RdxDrawerPortalPresence, RdxDrawerProvider, RdxDrawerProviderDirective, RdxDrawerRoot, RdxDrawerSwipeArea, RdxDrawerTitle, RdxDrawerTrigger, RdxDrawerViewport, buildSnapEntries, createRdxDrawerHandle, dismissUnitVector, drawerImports, injectRdxDrawerRootContext, provideRdxDrawerProvider, provideRdxDrawerRootContext, resolveSnapTarget, snapPointReveal, useDrawerSwipe };
|
|
426
|
+
export type { RdxDrawerRegistration, RdxDrawerRelease, RdxDrawerRootContext, RdxDrawerSnapEntry, RdxDrawerSnapPoint, RdxDrawerSnapResolveOptions, RdxDrawerSnapTarget, RdxDrawerSwipeConfig, RdxDrawerSwipeDirection };
|
|
@@ -1,70 +1,147 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal, WritableSignal } from '@angular/core';
|
|
3
|
-
import
|
|
3
|
+
import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
|
|
4
|
+
import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
|
|
4
5
|
import * as i1 from '@radix-ng/primitives/dismissable-layer';
|
|
5
|
-
import
|
|
6
|
+
import * as _radix_ng_primitives_editable from '@radix-ng/primitives/editable';
|
|
6
7
|
|
|
8
|
+
type EditableActivationMode = 'focus' | 'dblclick' | 'none';
|
|
9
|
+
type EditableSubmitMode = 'blur' | 'enter' | 'none' | 'both';
|
|
7
10
|
type EditableRootContext = {
|
|
8
11
|
disabled: Signal<boolean>;
|
|
9
|
-
value: Signal<string |
|
|
12
|
+
value: Signal<string | undefined>;
|
|
10
13
|
inputValue: WritableSignal<string | undefined>;
|
|
11
14
|
placeholder: Signal<{
|
|
12
15
|
edit: string;
|
|
13
16
|
preview: string;
|
|
14
17
|
}>;
|
|
15
18
|
isEditing: Signal<boolean>;
|
|
16
|
-
submitMode: Signal<
|
|
17
|
-
activationMode: Signal<
|
|
19
|
+
submitMode: Signal<EditableSubmitMode>;
|
|
20
|
+
activationMode: Signal<EditableActivationMode>;
|
|
18
21
|
edit: () => void;
|
|
19
22
|
cancel: () => void;
|
|
20
23
|
submit: () => void;
|
|
21
24
|
maxLength: Signal<number | undefined>;
|
|
25
|
+
required: Signal<boolean>;
|
|
22
26
|
startWithEditMode: Signal<boolean>;
|
|
23
27
|
isEmpty: Signal<boolean>;
|
|
24
28
|
readonly: Signal<boolean>;
|
|
25
29
|
selectOnFocus: Signal<boolean>;
|
|
26
30
|
autoResize: Signal<boolean>;
|
|
27
31
|
inputRef: WritableSignal<HTMLInputElement | undefined>;
|
|
32
|
+
previewRef: WritableSignal<HTMLElement | undefined>;
|
|
33
|
+
canActivateOnFocus: () => boolean;
|
|
28
34
|
};
|
|
29
|
-
declare const injectEditableRootContext:
|
|
35
|
+
declare const injectEditableRootContext: _radix_ng_primitives_core.InjectContext<EditableRootContext>;
|
|
30
36
|
declare const provideEditableRootContext: (useFactory: () => EditableRootContext) => _angular_core.Provider;
|
|
31
|
-
type ActivationMode = 'focus' | 'dblclick' | 'none';
|
|
32
|
-
type SubmitMode = 'blur' | 'enter' | 'none' | 'both';
|
|
33
37
|
/**
|
|
34
38
|
* @group Components
|
|
35
39
|
*/
|
|
36
40
|
declare class RdxEditableRoot {
|
|
37
41
|
private readonly focusOutside;
|
|
38
|
-
readonly pointerDownOutside
|
|
42
|
+
private readonly pointerDownOutside;
|
|
39
43
|
readonly value: _angular_core.ModelSignal<string | undefined>;
|
|
44
|
+
/** Uncontrolled initial value. */
|
|
45
|
+
readonly defaultValue: _angular_core.InputSignal<string | undefined>;
|
|
40
46
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
41
47
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
42
48
|
readonly readonly: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
43
49
|
readonly selectOnFocus: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
44
|
-
readonly submitMode: _angular_core.InputSignal<
|
|
50
|
+
readonly submitMode: _angular_core.InputSignal<EditableSubmitMode>;
|
|
45
51
|
readonly maxLength: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
|
|
46
52
|
/**
|
|
47
53
|
* Whether to start with the edit mode active
|
|
48
54
|
*/
|
|
49
55
|
readonly startWithEditMode: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
50
|
-
readonly activationMode: _angular_core.InputSignal<
|
|
56
|
+
readonly activationMode: _angular_core.InputSignal<EditableActivationMode>;
|
|
51
57
|
readonly autoResize: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
52
58
|
readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
59
|
+
/** Emitted when the value is committed (on submit). */
|
|
60
|
+
readonly onValueChange: _angular_core.OutputEmitterRef<string>;
|
|
53
61
|
readonly isEmpty: Signal<boolean>;
|
|
54
|
-
readonly $placeholder: Signal<
|
|
62
|
+
readonly $placeholder: Signal<{
|
|
55
63
|
edit: string;
|
|
56
64
|
preview: string;
|
|
57
65
|
}>;
|
|
66
|
+
/** Seeded from `startWithEditMode`; flipped imperatively by edit/submit/cancel. */
|
|
58
67
|
readonly isEditing: WritableSignal<boolean>;
|
|
68
|
+
/** Working copy of the value while editing; reseeded whenever the committed value changes. */
|
|
59
69
|
readonly inputValue: WritableSignal<string | undefined>;
|
|
60
70
|
readonly inputRef: WritableSignal<HTMLInputElement | undefined>;
|
|
71
|
+
readonly previewRef: WritableSignal<HTMLElement | undefined>;
|
|
72
|
+
private restoreFocusOnExit;
|
|
73
|
+
/** True while focus is being restored programmatically, to avoid re-entering edit mode. */
|
|
74
|
+
private suppressFocusActivation;
|
|
61
75
|
constructor();
|
|
76
|
+
canActivateOnFocus(): boolean;
|
|
62
77
|
handleDismiss(): void;
|
|
63
78
|
submit(): void;
|
|
64
79
|
cancel(): void;
|
|
65
80
|
edit(): void;
|
|
66
81
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableRoot, never>;
|
|
67
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableRoot, "[rdxEditableRoot]", ["rdxEditableRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "selectOnFocus": { "alias": "selectOnFocus"; "required": false; "isSignal": true; }; "submitMode": { "alias": "submitMode"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "startWithEditMode": { "alias": "startWithEditMode"; "required": false; "isSignal": true; }; "activationMode": { "alias": "activationMode"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof i1.RdxFocusOutside; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxPointerDownOutside; inputs: {}; outputs: {}; }]>;
|
|
82
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableRoot, "[rdxEditableRoot]", ["rdxEditableRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "selectOnFocus": { "alias": "selectOnFocus"; "required": false; "isSignal": true; }; "submitMode": { "alias": "submitMode"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "startWithEditMode": { "alias": "startWithEditMode"; "required": false; "isSignal": true; }; "activationMode": { "alias": "activationMode"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, [{ directive: typeof i1.RdxFocusOutside; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxPointerDownOutside; inputs: {}; outputs: {}; }]>;
|
|
68
83
|
}
|
|
69
84
|
|
|
70
|
-
|
|
85
|
+
declare class RdxEditableArea {
|
|
86
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
87
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableArea, never>;
|
|
88
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableArea, "[rdxEditableArea]", never, {}, {}, never, never, true, never>;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
declare class RdxEditablePreview {
|
|
92
|
+
private readonly elementRef;
|
|
93
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
94
|
+
readonly placeholder: _angular_core.Signal<string>;
|
|
95
|
+
constructor();
|
|
96
|
+
handleFocus(): void;
|
|
97
|
+
handleDoubleClick(): void;
|
|
98
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditablePreview, never>;
|
|
99
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditablePreview, "span[rdxEditablePreview]", ["rdxEditablePreview"], {}, {}, never, never, true, never>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
declare class RdxEditableInput {
|
|
103
|
+
private readonly inputRef;
|
|
104
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
105
|
+
/** Accessible label for the input. Override to localize. */
|
|
106
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
107
|
+
readonly placeholder: _angular_core.Signal<string>;
|
|
108
|
+
readonly disabled: _angular_core.Signal<boolean>;
|
|
109
|
+
constructor();
|
|
110
|
+
handleInput(event: Event): void;
|
|
111
|
+
handleSubmitKeyDown(event: Event): void;
|
|
112
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableInput, never>;
|
|
113
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableInput, "input[rdxEditableInput]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
declare class RdxEditableEditTrigger {
|
|
117
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
118
|
+
/** Accessible label for the trigger. Override to localize. */
|
|
119
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
120
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableEditTrigger, never>;
|
|
121
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableEditTrigger, "button[rdxEditableEditTrigger]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
declare class RdxEditableSubmitTrigger {
|
|
125
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
126
|
+
/** Accessible label for the trigger. Override to localize. */
|
|
127
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
128
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableSubmitTrigger, never>;
|
|
129
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableSubmitTrigger, "button[rdxEditableSubmitTrigger]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
declare class RdxEditableCancelTrigger {
|
|
133
|
+
protected readonly rootContext: _radix_ng_primitives_editable.EditableRootContext;
|
|
134
|
+
/** Accessible label for the trigger. Override to localize. */
|
|
135
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
136
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableCancelTrigger, never>;
|
|
137
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxEditableCancelTrigger, "button[rdxEditableCancelTrigger]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
declare class RdxEditableModule {
|
|
141
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxEditableModule, never>;
|
|
142
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<RdxEditableModule, never, [typeof RdxEditableRoot, typeof RdxEditableArea, typeof RdxEditablePreview, typeof RdxEditableInput, typeof RdxEditableEditTrigger, typeof RdxEditableSubmitTrigger, typeof RdxEditableCancelTrigger], [typeof RdxEditableRoot, typeof RdxEditableArea, typeof RdxEditablePreview, typeof RdxEditableInput, typeof RdxEditableEditTrigger, typeof RdxEditableSubmitTrigger, typeof RdxEditableCancelTrigger]>;
|
|
143
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<RdxEditableModule>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export { RdxEditableArea, RdxEditableCancelTrigger, RdxEditableEditTrigger, RdxEditableInput, RdxEditableModule, RdxEditablePreview, RdxEditableRoot, RdxEditableSubmitTrigger, injectEditableRootContext, provideEditableRootContext };
|
|
147
|
+
export type { EditableActivationMode, EditableRootContext, EditableSubmitMode };
|