@rblabs-dev/axiom 1.2.1 → 1.2.3
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/README.md +39 -13
- package/app-shell/package.json +4 -0
- package/brand-lockup/package.json +4 -0
- package/central-sign-in/package.json +4 -0
- package/cli/build-brand-assets.mjs +12 -18
- package/cli/project.mjs +6 -0
- package/cli/verify-production-assets.mjs +71 -6
- package/confirm-dialog/package.json +4 -0
- package/core/package.json +4 -0
- package/empty-state/package.json +4 -0
- package/fesm2022/rblabs-dev-axiom-app-shell.mjs +375 -0
- package/fesm2022/rblabs-dev-axiom-app-shell.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-brand-lockup.mjs +154 -0
- package/fesm2022/rblabs-dev-axiom-brand-lockup.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-central-sign-in.mjs +375 -0
- package/fesm2022/rblabs-dev-axiom-central-sign-in.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-confirm-dialog.mjs +329 -0
- package/fesm2022/rblabs-dev-axiom-confirm-dialog.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-core.mjs +181 -0
- package/fesm2022/rblabs-dev-axiom-core.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-empty-state.mjs +252 -0
- package/fesm2022/rblabs-dev-axiom-empty-state.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-message.mjs +194 -0
- package/fesm2022/rblabs-dev-axiom-message.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-monogram.mjs +102 -0
- package/fesm2022/rblabs-dev-axiom-monogram.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-page-header.mjs +199 -0
- package/fesm2022/rblabs-dev-axiom-page-header.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-panel.mjs +207 -0
- package/fesm2022/rblabs-dev-axiom-panel.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-public-shell.mjs +165 -0
- package/fesm2022/rblabs-dev-axiom-public-shell.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-shell-footer.mjs +73 -0
- package/fesm2022/rblabs-dev-axiom-shell-footer.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-status-chip.mjs +161 -0
- package/fesm2022/rblabs-dev-axiom-status-chip.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-technical-value.mjs +173 -0
- package/fesm2022/rblabs-dev-axiom-technical-value.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom-theme-toggle.mjs +117 -0
- package/fesm2022/rblabs-dev-axiom-theme-toggle.mjs.map +1 -0
- package/fesm2022/rblabs-dev-axiom.mjs +15 -2955
- package/fonts/LICENSE +93 -0
- package/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/message/package.json +4 -0
- package/monogram/package.json +4 -0
- package/package.json +77 -2
- package/page-header/package.json +4 -0
- package/panel/package.json +4 -0
- package/public-shell/package.json +4 -0
- package/shell-footer/package.json +4 -0
- package/status-chip/package.json +4 -0
- package/styles/_fonts.scss +7 -7
- package/styles/_index.scss +1 -1
- package/technical-value/package.json +4 -0
- package/theme-toggle/package.json +4 -0
- package/types/rblabs-dev-axiom-app-shell.d.ts +50 -0
- package/types/rblabs-dev-axiom-brand-lockup.d.ts +35 -0
- package/types/rblabs-dev-axiom-central-sign-in.d.ts +82 -0
- package/types/rblabs-dev-axiom-confirm-dialog.d.ts +76 -0
- package/types/rblabs-dev-axiom-core.d.ts +116 -0
- package/types/rblabs-dev-axiom-empty-state.d.ts +55 -0
- package/types/rblabs-dev-axiom-message.d.ts +48 -0
- package/types/rblabs-dev-axiom-monogram.d.ts +12 -0
- package/types/rblabs-dev-axiom-page-header.d.ts +44 -0
- package/types/rblabs-dev-axiom-panel.d.ts +44 -0
- package/types/rblabs-dev-axiom-public-shell.d.ts +28 -0
- package/types/rblabs-dev-axiom-shell-footer.d.ts +17 -0
- package/types/rblabs-dev-axiom-status-chip.d.ts +40 -0
- package/types/rblabs-dev-axiom-technical-value.d.ts +35 -0
- package/types/rblabs-dev-axiom-theme-toggle.d.ts +12 -0
- package/types/rblabs-dev-axiom.d.ts +15 -675
- package/fesm2022/rblabs-dev-axiom.mjs.map +0 -1
|
@@ -1,675 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly compact: import("@angular/core").InputSignalWithTransform<RbBrandLockupCompact, "" | RbBrandLockupCompact>;
|
|
17
|
-
protected readonly accessibleName: import("@angular/core").Signal<string>;
|
|
18
|
-
protected readonly compactAttribute: import("@angular/core").Signal<"below-sm" | "always" | null>;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbBrandLockupComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbBrandLockupComponent, "rb-brand-lockup", never, {
|
|
21
|
-
"appName": {
|
|
22
|
-
"alias": "appName";
|
|
23
|
-
"required": true;
|
|
24
|
-
"isSignal": true;
|
|
25
|
-
};
|
|
26
|
-
"link": {
|
|
27
|
-
"alias": "link";
|
|
28
|
-
"required": false;
|
|
29
|
-
"isSignal": true;
|
|
30
|
-
};
|
|
31
|
-
"compact": {
|
|
32
|
-
"alias": "compact";
|
|
33
|
-
"required": false;
|
|
34
|
-
"isSignal": true;
|
|
35
|
-
};
|
|
36
|
-
}, {}, never, never, true, never>;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* The RB monogram (docs/design-system.md, section 12.1), drawn inline from the brand tokens so it
|
|
40
|
-
* needs no request and is identical in both themes. Decorative: the element that contains it (the
|
|
41
|
-
* brand lockup link) carries the accessible name. Size it with `inline-size` on the host.
|
|
42
|
-
*/
|
|
43
|
-
export declare class RbMonogramComponent {
|
|
44
|
-
/** Unique per instance: several monograms can share a page. */
|
|
45
|
-
protected readonly gradientId: string;
|
|
46
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbMonogramComponent, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbMonogramComponent, "rb-monogram", never, {}, {}, never, never, true, never>;
|
|
48
|
-
}
|
|
49
|
-
/** Breakpoint widths (docs/design-system.md, section 8). Mirrors `$breakpoints` in _breakpoints.scss. */
|
|
50
|
-
export declare const RB_BREAKPOINT_WIDTHS: {
|
|
51
|
-
readonly xs: "30rem";
|
|
52
|
-
readonly sm: "40rem";
|
|
53
|
-
readonly md: "48rem";
|
|
54
|
-
readonly lg: "60rem";
|
|
55
|
-
readonly xl: "75rem";
|
|
56
|
-
readonly '2xl': "87.5rem";
|
|
57
|
-
};
|
|
58
|
-
export type RbBreakpoint = keyof typeof RB_BREAKPOINT_WIDTHS;
|
|
59
|
-
/** Media queries for the CDK `BreakpointObserver`, e.g. `observe(RB_BREAKPOINTS.belowLg)`. */
|
|
60
|
-
export declare const RB_BREAKPOINTS: {
|
|
61
|
-
readonly belowXs: "(width < 30rem)";
|
|
62
|
-
readonly belowSm: "(width < 40rem)";
|
|
63
|
-
readonly belowMd: "(width < 48rem)";
|
|
64
|
-
readonly belowLg: "(width < 60rem)";
|
|
65
|
-
readonly belowXl: "(width < 75rem)";
|
|
66
|
-
readonly below2xl: "(width < 87.5rem)";
|
|
67
|
-
readonly aboveXs: "(width >= 30rem)";
|
|
68
|
-
readonly aboveSm: "(width >= 40rem)";
|
|
69
|
-
readonly aboveMd: "(width >= 48rem)";
|
|
70
|
-
readonly aboveLg: "(width >= 60rem)";
|
|
71
|
-
readonly aboveXl: "(width >= 75rem)";
|
|
72
|
-
readonly above2xl: "(width >= 87.5rem)";
|
|
73
|
-
};
|
|
74
|
-
export type RbConfirmDialogTone = 'primary' | 'danger';
|
|
75
|
-
export interface RbConfirmDialogReason {
|
|
76
|
-
/** Visible label of the reason field. Defaults to "Reason". */
|
|
77
|
-
label?: string;
|
|
78
|
-
/** Helper text under the field. */
|
|
79
|
-
hint?: string;
|
|
80
|
-
/** Minimum length of the trimmed reason. Defaults to 3. */
|
|
81
|
-
minimumLength?: number;
|
|
82
|
-
}
|
|
83
|
-
export interface RbConfirmDialogData {
|
|
84
|
-
title: string;
|
|
85
|
-
description: string;
|
|
86
|
-
confirmLabel: string;
|
|
87
|
-
/** Defaults to "Cancel". */
|
|
88
|
-
cancelLabel?: string;
|
|
89
|
-
/** `danger` is for destructive or irreversible actions. Defaults to `primary`. */
|
|
90
|
-
tone?: RbConfirmDialogTone;
|
|
91
|
-
/** Asks for a required reason, returned trimmed in the result. */
|
|
92
|
-
reason?: RbConfirmDialogReason;
|
|
93
|
-
}
|
|
94
|
-
export interface RbConfirmDialogResult {
|
|
95
|
-
confirmed: boolean;
|
|
96
|
-
reason?: string;
|
|
97
|
-
}
|
|
98
|
-
/** Data the service adds so the dialog container can reference the description. */
|
|
99
|
-
export interface RbConfirmDialogInternalData extends RbConfirmDialogData {
|
|
100
|
-
descriptionId?: string;
|
|
101
|
-
}
|
|
102
|
-
/** Generates the ids shared by the service (dialog config) and the dialog content. */
|
|
103
|
-
export declare function rbConfirmDialogId(): string;
|
|
104
|
-
/**
|
|
105
|
-
* Confirmation content opened by `RbConfirmDialogService` (docs/design-system.md, section 15.7).
|
|
106
|
-
* Use the service rather than opening this component directly.
|
|
107
|
-
*/
|
|
108
|
-
export declare class RbConfirmDialogComponent {
|
|
109
|
-
protected readonly data: RbConfirmDialogInternalData;
|
|
110
|
-
private readonly dialogRef;
|
|
111
|
-
private readonly reasonInput;
|
|
112
|
-
private readonly id;
|
|
113
|
-
protected readonly descriptionId: string;
|
|
114
|
-
protected readonly reasonId: string;
|
|
115
|
-
protected readonly tone: RbConfirmDialogTone;
|
|
116
|
-
protected readonly minimumReasonLength: number;
|
|
117
|
-
private readonly trimmedMinLength;
|
|
118
|
-
protected readonly reason: FormControl<string>;
|
|
119
|
-
private readonly submitted;
|
|
120
|
-
protected showReasonError(): boolean;
|
|
121
|
-
protected reasonDescribedBy(): string | null;
|
|
122
|
-
cancel(): void;
|
|
123
|
-
confirm(): void;
|
|
124
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbConfirmDialogComponent, never>;
|
|
125
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbConfirmDialogComponent, "rb-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Asks the user to confirm an action (docs/design-system.md, section 15.7):
|
|
129
|
-
*
|
|
130
|
-
* ```ts
|
|
131
|
-
* const { confirmed, reason } = await confirmDialog.confirm({
|
|
132
|
-
* title: 'Revoke credential?',
|
|
133
|
-
* description: 'Clients using it stop working immediately.',
|
|
134
|
-
* confirmLabel: 'Revoke credential',
|
|
135
|
-
* tone: 'danger',
|
|
136
|
-
* reason: { label: 'Reason for revoking' },
|
|
137
|
-
* });
|
|
138
|
-
* ```
|
|
139
|
-
*
|
|
140
|
-
* Closing the dialog in any other way (Cancel, Escape, the backdrop) resolves `confirmed: false`.
|
|
141
|
-
*/
|
|
142
|
-
export declare class RbConfirmDialogService {
|
|
143
|
-
private readonly dialog;
|
|
144
|
-
confirm(data: RbConfirmDialogData): Promise<RbConfirmDialogResult>;
|
|
145
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbConfirmDialogService, never>;
|
|
146
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
147
|
-
}
|
|
148
|
-
export type RbPanelVariant = 'default' | 'soft' | 'elevated' | 'danger';
|
|
149
|
-
export type RbHeadingLevel = 2 | 3 | 4 | 5 | 6;
|
|
150
|
-
/**
|
|
151
|
-
* Content container with an optional header (docs/design-system.md, section 15.2). Elements marked
|
|
152
|
-
* `rbActions` are projected into the header next to the title.
|
|
153
|
-
*/
|
|
154
|
-
export declare class RbPanelComponent {
|
|
155
|
-
readonly title: import("@angular/core").InputSignal<string>;
|
|
156
|
-
readonly description: import("@angular/core").InputSignal<string>;
|
|
157
|
-
readonly variant: import("@angular/core").InputSignal<RbPanelVariant>;
|
|
158
|
-
/** Heading level of the title; follows the document outline, not the visual size. */
|
|
159
|
-
readonly headingLevel: import("@angular/core").InputSignal<RbHeadingLevel>;
|
|
160
|
-
/** Removes the body padding, for a table or list that runs to the panel's edges. */
|
|
161
|
-
readonly flush: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
162
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbPanelComponent, never>;
|
|
163
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbPanelComponent, "rb-panel", never, {
|
|
164
|
-
"title": {
|
|
165
|
-
"alias": "title";
|
|
166
|
-
"required": false;
|
|
167
|
-
"isSignal": true;
|
|
168
|
-
};
|
|
169
|
-
"description": {
|
|
170
|
-
"alias": "description";
|
|
171
|
-
"required": false;
|
|
172
|
-
"isSignal": true;
|
|
173
|
-
};
|
|
174
|
-
"variant": {
|
|
175
|
-
"alias": "variant";
|
|
176
|
-
"required": false;
|
|
177
|
-
"isSignal": true;
|
|
178
|
-
};
|
|
179
|
-
"headingLevel": {
|
|
180
|
-
"alias": "headingLevel";
|
|
181
|
-
"required": false;
|
|
182
|
-
"isSignal": true;
|
|
183
|
-
};
|
|
184
|
-
"flush": {
|
|
185
|
-
"alias": "flush";
|
|
186
|
-
"required": false;
|
|
187
|
-
"isSignal": true;
|
|
188
|
-
};
|
|
189
|
-
}, {}, never, ["[rbActions]", "*"], true, never>;
|
|
190
|
-
}
|
|
191
|
-
export type RbEmptyStateLayout = 'centered' | 'inline';
|
|
192
|
-
/**
|
|
193
|
-
* Explains why a region has no content and, when there is one, offers the next step
|
|
194
|
-
* (docs/design-system.md, section 15.4). `actionLabel` renders an outlined button that emits
|
|
195
|
-
* `action`; elements marked `rbActions` are projected next to it, for links or several actions.
|
|
196
|
-
*/
|
|
197
|
-
export declare class RbEmptyStateComponent {
|
|
198
|
-
readonly title: import("@angular/core").InputSignal<string>;
|
|
199
|
-
readonly description: import("@angular/core").InputSignal<string>;
|
|
200
|
-
readonly icon: import("@angular/core").InputSignal<string>;
|
|
201
|
-
/** Heading level of the title; follows the document outline, not the visual size. */
|
|
202
|
-
readonly headingLevel: import("@angular/core").InputSignal<RbHeadingLevel>;
|
|
203
|
-
/** `inline` is the compact variant for sidebars and narrow panels. */
|
|
204
|
-
readonly layout: import("@angular/core").InputSignal<RbEmptyStateLayout>;
|
|
205
|
-
/** Label of the recovery button; leave empty for a purely informational state. */
|
|
206
|
-
readonly actionLabel: import("@angular/core").InputSignal<string>;
|
|
207
|
-
readonly action: import("@angular/core").OutputEmitterRef<void>;
|
|
208
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbEmptyStateComponent, never>;
|
|
209
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbEmptyStateComponent, "rb-empty-state", never, {
|
|
210
|
-
"title": {
|
|
211
|
-
"alias": "title";
|
|
212
|
-
"required": true;
|
|
213
|
-
"isSignal": true;
|
|
214
|
-
};
|
|
215
|
-
"description": {
|
|
216
|
-
"alias": "description";
|
|
217
|
-
"required": false;
|
|
218
|
-
"isSignal": true;
|
|
219
|
-
};
|
|
220
|
-
"icon": {
|
|
221
|
-
"alias": "icon";
|
|
222
|
-
"required": false;
|
|
223
|
-
"isSignal": true;
|
|
224
|
-
};
|
|
225
|
-
"headingLevel": {
|
|
226
|
-
"alias": "headingLevel";
|
|
227
|
-
"required": false;
|
|
228
|
-
"isSignal": true;
|
|
229
|
-
};
|
|
230
|
-
"layout": {
|
|
231
|
-
"alias": "layout";
|
|
232
|
-
"required": false;
|
|
233
|
-
"isSignal": true;
|
|
234
|
-
};
|
|
235
|
-
"actionLabel": {
|
|
236
|
-
"alias": "actionLabel";
|
|
237
|
-
"required": false;
|
|
238
|
-
"isSignal": true;
|
|
239
|
-
};
|
|
240
|
-
}, {
|
|
241
|
-
"action": "action";
|
|
242
|
-
}, never, ["[rbActions]"], true, never>;
|
|
243
|
-
}
|
|
244
|
-
/** Tones of `rb-message` (docs/design-system.md, section 15.3). */
|
|
245
|
-
export type RbMessageTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
246
|
-
/** Tones of `rb-status-chip` and page header metrics (15.1, 15.5). `active` means in progress. */
|
|
247
|
-
export type RbStatusTone = 'neutral' | 'active' | 'success' | 'warning' | 'danger';
|
|
248
|
-
/**
|
|
249
|
-
* Default icon per tone, so state is never carried by color alone (section 9.4). Neutral status
|
|
250
|
-
* chips and metrics have no default icon: their label is the whole message.
|
|
251
|
-
*/
|
|
252
|
-
export declare const RB_TONE_ICONS: Readonly<Record<RbMessageTone | RbStatusTone, string | null>>;
|
|
253
|
-
/** Visually hidden prefix that names a message's tone for screen reader users. */
|
|
254
|
-
export declare const RB_MESSAGE_TONE_LABELS: Readonly<Record<RbMessageTone, string | null>>;
|
|
255
|
-
/**
|
|
256
|
-
* How the message is announced. `auto` makes a danger message an assertive alert and every other
|
|
257
|
-
* tone a polite status; `off` renders a static message with no live region.
|
|
258
|
-
*/
|
|
259
|
-
export type RbMessageLive = 'auto' | 'polite' | 'assertive' | 'off';
|
|
260
|
-
/**
|
|
261
|
-
* Inline status message (docs/design-system.md, section 15.3). The host is the live region, so keep
|
|
262
|
-
* the component mounted and change its content: a region inserted together with its text is not
|
|
263
|
-
* announced by most screen readers (section 9.5).
|
|
264
|
-
*/
|
|
265
|
-
export declare class RbMessageComponent {
|
|
266
|
-
readonly tone: import("@angular/core").InputSignal<RbMessageTone>;
|
|
267
|
-
/** Optional bold first line. */
|
|
268
|
-
readonly title: import("@angular/core").InputSignal<string>;
|
|
269
|
-
/** Overrides the tone's default icon. */
|
|
270
|
-
readonly icon: import("@angular/core").InputSignal<string>;
|
|
271
|
-
readonly live: import("@angular/core").InputSignal<RbMessageLive>;
|
|
272
|
-
protected readonly resolvedIcon: import("@angular/core").Signal<string>;
|
|
273
|
-
protected readonly toneLabel: import("@angular/core").Signal<string | null>;
|
|
274
|
-
private readonly politeness;
|
|
275
|
-
protected readonly role: import("@angular/core").Signal<"alert" | "status" | null>;
|
|
276
|
-
protected readonly ariaLive: import("@angular/core").Signal<"polite" | "assertive" | null>;
|
|
277
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbMessageComponent, never>;
|
|
278
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbMessageComponent, "rb-message", never, {
|
|
279
|
-
"tone": {
|
|
280
|
-
"alias": "tone";
|
|
281
|
-
"required": false;
|
|
282
|
-
"isSignal": true;
|
|
283
|
-
};
|
|
284
|
-
"title": {
|
|
285
|
-
"alias": "title";
|
|
286
|
-
"required": false;
|
|
287
|
-
"isSignal": true;
|
|
288
|
-
};
|
|
289
|
-
"icon": {
|
|
290
|
-
"alias": "icon";
|
|
291
|
-
"required": false;
|
|
292
|
-
"isSignal": true;
|
|
293
|
-
};
|
|
294
|
-
"live": {
|
|
295
|
-
"alias": "live";
|
|
296
|
-
"required": false;
|
|
297
|
-
"isSignal": true;
|
|
298
|
-
};
|
|
299
|
-
}, {}, never, ["*"], true, never>;
|
|
300
|
-
}
|
|
301
|
-
export interface RbPageHeaderMetric {
|
|
302
|
-
label: string;
|
|
303
|
-
value: string | number;
|
|
304
|
-
/** Adds a tone color and icon to the value; the label and value carry the meaning. */
|
|
305
|
-
tone?: RbStatusTone;
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* The page's single `<h1>` with its eyebrow, description, summary metrics and page actions
|
|
309
|
-
* (docs/design-system.md, section 15.1). Elements marked `rbActions` are projected next to the
|
|
310
|
-
* title.
|
|
311
|
-
*/
|
|
312
|
-
export declare class RbPageHeaderComponent {
|
|
313
|
-
readonly title: import("@angular/core").InputSignal<string>;
|
|
314
|
-
/** Short context line above the title, such as the app area. */
|
|
315
|
-
readonly eyebrow: import("@angular/core").InputSignal<string>;
|
|
316
|
-
readonly description: import("@angular/core").InputSignal<string>;
|
|
317
|
-
readonly metrics: import("@angular/core").InputSignal<readonly RbPageHeaderMetric[]>;
|
|
318
|
-
protected toneIcon(metric: RbPageHeaderMetric): string | null;
|
|
319
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbPageHeaderComponent, never>;
|
|
320
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbPageHeaderComponent, "rb-page-header", never, {
|
|
321
|
-
"title": {
|
|
322
|
-
"alias": "title";
|
|
323
|
-
"required": true;
|
|
324
|
-
"isSignal": true;
|
|
325
|
-
};
|
|
326
|
-
"eyebrow": {
|
|
327
|
-
"alias": "eyebrow";
|
|
328
|
-
"required": false;
|
|
329
|
-
"isSignal": true;
|
|
330
|
-
};
|
|
331
|
-
"description": {
|
|
332
|
-
"alias": "description";
|
|
333
|
-
"required": false;
|
|
334
|
-
"isSignal": true;
|
|
335
|
-
};
|
|
336
|
-
"metrics": {
|
|
337
|
-
"alias": "metrics";
|
|
338
|
-
"required": false;
|
|
339
|
-
"isSignal": true;
|
|
340
|
-
};
|
|
341
|
-
}, {}, never, ["[rbActions]"], true, never>;
|
|
342
|
-
}
|
|
343
|
-
export type RbStatusChipSize = 'default' | 'compact';
|
|
344
|
-
/**
|
|
345
|
-
* Read-only status label (docs/design-system.md, section 15.5). The label is always visible and
|
|
346
|
-
* every non-neutral tone has an icon, so the state is never carried by color alone. It is not
|
|
347
|
-
* interactive and not a live region: announce changes through `rb-message` or a status region.
|
|
348
|
-
*/
|
|
349
|
-
export declare class RbStatusChipComponent {
|
|
350
|
-
readonly label: import("@angular/core").InputSignal<string>;
|
|
351
|
-
readonly tone: import("@angular/core").InputSignal<RbStatusTone>;
|
|
352
|
-
/** Overrides the tone's default icon. */
|
|
353
|
-
readonly icon: import("@angular/core").InputSignal<string>;
|
|
354
|
-
/** `compact` fits a single table row line. */
|
|
355
|
-
readonly size: import("@angular/core").InputSignal<RbStatusChipSize>;
|
|
356
|
-
protected readonly resolvedIcon: import("@angular/core").Signal<string | null>;
|
|
357
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbStatusChipComponent, never>;
|
|
358
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbStatusChipComponent, "rb-status-chip", never, {
|
|
359
|
-
"label": {
|
|
360
|
-
"alias": "label";
|
|
361
|
-
"required": true;
|
|
362
|
-
"isSignal": true;
|
|
363
|
-
};
|
|
364
|
-
"tone": {
|
|
365
|
-
"alias": "tone";
|
|
366
|
-
"required": false;
|
|
367
|
-
"isSignal": true;
|
|
368
|
-
};
|
|
369
|
-
"icon": {
|
|
370
|
-
"alias": "icon";
|
|
371
|
-
"required": false;
|
|
372
|
-
"isSignal": true;
|
|
373
|
-
};
|
|
374
|
-
"size": {
|
|
375
|
-
"alias": "size";
|
|
376
|
-
"required": false;
|
|
377
|
-
"isSignal": true;
|
|
378
|
-
};
|
|
379
|
-
}, {}, never, never, true, never>;
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Identifier, key, hash or path in monospace on one line (docs/design-system.md, section 15.6).
|
|
383
|
-
* A value that does not fit is truncated with an ellipsis and the full value appears in a tooltip.
|
|
384
|
-
* Screen readers and copying always get the full value, even when `displayValue` shortens it.
|
|
385
|
-
*/
|
|
386
|
-
export declare class RbTechnicalValueComponent {
|
|
387
|
-
readonly value: import("@angular/core").InputSignal<string>;
|
|
388
|
-
/** Shorter text to show instead of the value, such as the first characters of a hash. */
|
|
389
|
-
readonly displayValue: import("@angular/core").InputSignal<string>;
|
|
390
|
-
private readonly host;
|
|
391
|
-
private readonly destroyRef;
|
|
392
|
-
private readonly text;
|
|
393
|
-
private readonly truncated;
|
|
394
|
-
protected readonly shownValue: import("@angular/core").Signal<string>;
|
|
395
|
-
protected readonly shortened: import("@angular/core").Signal<boolean>;
|
|
396
|
-
protected readonly tooltipEnabled: import("@angular/core").Signal<boolean>;
|
|
397
|
-
constructor();
|
|
398
|
-
/** Copying a selection inside the component copies the full value, not the shortened text. */
|
|
399
|
-
protected copyFullValue(event: ClipboardEvent): void;
|
|
400
|
-
private measure;
|
|
401
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbTechnicalValueComponent, never>;
|
|
402
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbTechnicalValueComponent, "rb-technical-value", never, {
|
|
403
|
-
"value": {
|
|
404
|
-
"alias": "value";
|
|
405
|
-
"required": true;
|
|
406
|
-
"isSignal": true;
|
|
407
|
-
};
|
|
408
|
-
"displayValue": {
|
|
409
|
-
"alias": "displayValue";
|
|
410
|
-
"required": false;
|
|
411
|
-
"isSignal": true;
|
|
412
|
-
};
|
|
413
|
-
}, {}, never, never, true, never>;
|
|
414
|
-
}
|
|
415
|
-
export type RbTheme = 'light' | 'dark';
|
|
416
|
-
/** localStorage key holding the user's explicit choice (docs/design-system.md, section 11). */
|
|
417
|
-
export declare const RB_THEME_STORAGE_KEY = "rb-theme";
|
|
418
|
-
/** `--rb-color-bg` per theme; also the `<meta name="theme-color">` value. */
|
|
419
|
-
export declare const RB_THEME_COLORS: Readonly<Record<RbTheme, string>>;
|
|
420
|
-
export interface RbThemeOptions {
|
|
421
|
-
/**
|
|
422
|
-
* Forces a theme regardless of the stored choice and the OS, without persisting anything. Used by
|
|
423
|
-
* apps that only support one theme until their migration is done. The theme toggle hides itself
|
|
424
|
-
* while a theme is forced.
|
|
425
|
-
*/
|
|
426
|
-
forcedTheme?: RbTheme | null;
|
|
427
|
-
/** Storage keys an app used before adopting the kit; a valid value is moved to `rb-theme` once. */
|
|
428
|
-
legacyStorageKeys?: readonly string[];
|
|
429
|
-
}
|
|
430
|
-
export declare const RB_THEME_OPTIONS: InjectionToken<RbThemeOptions>;
|
|
431
|
-
/**
|
|
432
|
-
* Owns the light/dark theme contract (docs/design-system.md, section 11):
|
|
433
|
-
*
|
|
434
|
-
* - an explicit choice is stored under `rb-theme` and wins over the OS;
|
|
435
|
-
* - without one, the theme follows `prefers-color-scheme` and tracks OS changes live;
|
|
436
|
-
* - the resolved theme is written to `<html>` as `data-theme`, and every
|
|
437
|
-
* `<meta name="theme-color">` is kept in sync;
|
|
438
|
-
* - `color-scheme` is only set inline for an explicit or forced theme; otherwise the stylesheet's
|
|
439
|
-
* `color-scheme: light dark` already follows the OS before any script runs.
|
|
440
|
-
*
|
|
441
|
-
* `provideRbDesignSystem()` calls `initialize()` from an app initializer, before first paint.
|
|
442
|
-
*/
|
|
443
|
-
export declare class ThemeService {
|
|
444
|
-
private readonly document;
|
|
445
|
-
private readonly options;
|
|
446
|
-
private readonly window;
|
|
447
|
-
private readonly darkScheme;
|
|
448
|
-
private readonly systemTheme;
|
|
449
|
-
private readonly storedTheme;
|
|
450
|
-
private readonly forcedTheme;
|
|
451
|
-
private initialized;
|
|
452
|
-
/** The user's explicit choice, or `null` while the theme follows the OS. */
|
|
453
|
-
readonly preference: import("@angular/core").Signal<RbTheme | null>;
|
|
454
|
-
/** The theme in effect: forced, then stored, then the OS preference. */
|
|
455
|
-
readonly theme: import("@angular/core").Signal<RbTheme>;
|
|
456
|
-
readonly isDark: import("@angular/core").Signal<boolean>;
|
|
457
|
-
/** True while a theme is forced; the toggle is hidden then. */
|
|
458
|
-
readonly isForced: import("@angular/core").Signal<boolean>;
|
|
459
|
-
constructor();
|
|
460
|
-
/** Reads the stored choice and applies the theme to the document. Safe to call more than once. */
|
|
461
|
-
initialize(): void;
|
|
462
|
-
/** Switches between light and dark and stores the result as an explicit choice. */
|
|
463
|
-
toggle(): void;
|
|
464
|
-
/** Stores an explicit choice; OS changes are ignored from now on. */
|
|
465
|
-
setTheme(theme: RbTheme): void;
|
|
466
|
-
/** Forgets the explicit choice, so the theme follows the OS again. */
|
|
467
|
-
clearPreference(): void;
|
|
468
|
-
/** Forces a theme (or releases it with `null`) without touching the stored choice. */
|
|
469
|
-
forceTheme(theme: RbTheme | null): void;
|
|
470
|
-
private apply;
|
|
471
|
-
private readStoredTheme;
|
|
472
|
-
private read;
|
|
473
|
-
private write;
|
|
474
|
-
private remove;
|
|
475
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
|
|
476
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
477
|
-
}
|
|
478
|
-
/** Font set class of the self-hosted Material Symbols subset (docs/design-system.md, section 10). */
|
|
479
|
-
export declare const RB_ICON_FONT_SET = "material-symbols-outlined";
|
|
480
|
-
export type RbDesignSystemOptions = RbThemeOptions;
|
|
481
|
-
/**
|
|
482
|
-
* Registers the kit's runtime pieces in `app.config.ts`:
|
|
483
|
-
*
|
|
484
|
-
* - applies the theme before the root component renders (no flash for a stored choice);
|
|
485
|
-
* - makes `material-symbols-outlined` the default `<mat-icon>` font set.
|
|
486
|
-
*/
|
|
487
|
-
export declare function provideRbDesignSystem(options?: RbDesignSystemOptions): EnvironmentProviders;
|
|
488
|
-
/**
|
|
489
|
-
* `sidenav`: a navigation rail beside the content that becomes a drawer below `lg`.
|
|
490
|
-
* `modules`: a short list of sections beside the content that becomes a row, then a tab bar.
|
|
491
|
-
* `none`: top-level links, if any, go in the `[rbShellActions]` slot.
|
|
492
|
-
*/
|
|
493
|
-
export type RbAppShellNavigation = 'none' | 'sidenav' | 'modules';
|
|
494
|
-
/**
|
|
495
|
-
* Frame for authenticated and operational areas (docs/design-system.md, section 16.1): skip link,
|
|
496
|
-
* top bar with the brand lockup, title, actions and theme toggle, optional navigation, the content
|
|
497
|
-
* column and the standard footer.
|
|
498
|
-
*/
|
|
499
|
-
export declare class RbAppShellComponent {
|
|
500
|
-
/** Shown in the lockup and the footer: `Admin`, `Auth`, `Rover`, `Photogrammetry`… */
|
|
501
|
-
readonly appName: import("@angular/core").InputSignal<string>;
|
|
502
|
-
/** The lockup's link target, as a `routerLink` value. */
|
|
503
|
-
readonly homeLink: import("@angular/core").InputSignal<string | readonly unknown[]>;
|
|
504
|
-
readonly navigation: import("@angular/core").InputSignal<RbAppShellNavigation>;
|
|
505
|
-
protected readonly hasSidenav: import("@angular/core").Signal<boolean>;
|
|
506
|
-
private readonly breakpointObserver;
|
|
507
|
-
/** Below `lg` the sidenav is an overlay drawer (section 8.1). */
|
|
508
|
-
readonly isDrawer: import("@angular/core").WritableSignal<boolean>;
|
|
509
|
-
readonly drawerOpen: import("@angular/core").WritableSignal<boolean>;
|
|
510
|
-
private readonly main;
|
|
511
|
-
constructor();
|
|
512
|
-
toggleDrawer(): void;
|
|
513
|
-
/**
|
|
514
|
-
* Moves focus to `<main>` without changing the URL: with `<base href="/">` a bare `#main-content`
|
|
515
|
-
* link would resolve to the root route instead of the current page.
|
|
516
|
-
*/
|
|
517
|
-
protected skipToMain(event: Event): void;
|
|
518
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbAppShellComponent, never>;
|
|
519
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbAppShellComponent, "rb-app-shell", never, {
|
|
520
|
-
"appName": {
|
|
521
|
-
"alias": "appName";
|
|
522
|
-
"required": true;
|
|
523
|
-
"isSignal": true;
|
|
524
|
-
};
|
|
525
|
-
"homeLink": {
|
|
526
|
-
"alias": "homeLink";
|
|
527
|
-
"required": false;
|
|
528
|
-
"isSignal": true;
|
|
529
|
-
};
|
|
530
|
-
"navigation": {
|
|
531
|
-
"alias": "navigation";
|
|
532
|
-
"required": false;
|
|
533
|
-
"isSignal": true;
|
|
534
|
-
};
|
|
535
|
-
}, {}, never, ["[rbShellTitle]", "[rbShellActions]", "[rbShellSidenav]", "[rbShellModuleNav]", "*", "[rbShellFooter]"], true, never>;
|
|
536
|
-
}
|
|
537
|
-
/**
|
|
538
|
-
* The central sign-in page (docs/design-system.md, section 16.3): one card that hands the user off
|
|
539
|
-
* to RB Labs Auth. Apps that sign in through Auth place it alone in `rb-public-shell`; it renders
|
|
540
|
-
* the page's single `<h1>`, collects no credentials and emits `signIn` for the app to start the
|
|
541
|
-
* handoff with its own return path.
|
|
542
|
-
*/
|
|
543
|
-
export declare class RbCentralSignInComponent {
|
|
544
|
-
/** The app the user signs in to: `Admin`, `Rover`, `Photogrammetry`… */
|
|
545
|
-
readonly appName: import("@angular/core").InputSignal<string>;
|
|
546
|
-
/** Overrides the default title, `Sign in to RB Labs <appName>`. */
|
|
547
|
-
readonly title: import("@angular/core").InputSignal<string>;
|
|
548
|
-
/** Short context above the title, such as the workspace the page protects. */
|
|
549
|
-
readonly eyebrow: import("@angular/core").InputSignal<string>;
|
|
550
|
-
/** Overrides the default sentence about where the user is sent. */
|
|
551
|
-
readonly description: import("@angular/core").InputSignal<string>;
|
|
552
|
-
/** Material Symbols name of the app's icon in the card header. */
|
|
553
|
-
readonly icon: import("@angular/core").InputSignal<string>;
|
|
554
|
-
/** Host shown in the identity row. */
|
|
555
|
-
readonly authHost: import("@angular/core").InputSignal<string>;
|
|
556
|
-
/** Optional closing note, such as who may enter the app. */
|
|
557
|
-
readonly note: import("@angular/core").InputSignal<string>;
|
|
558
|
-
/** A safe, non-disclosing message for the failure the app was sent back with. */
|
|
559
|
-
readonly error: import("@angular/core").InputSignal<string | null>;
|
|
560
|
-
/** The "Back to home" target, as a `routerLink` value. */
|
|
561
|
-
readonly backLink: import("@angular/core").InputSignal<string | readonly unknown[]>;
|
|
562
|
-
/** The primary action: the app starts the Auth handoff with its return path. */
|
|
563
|
-
readonly signIn: import("@angular/core").OutputEmitterRef<void>;
|
|
564
|
-
protected readonly titleId: string;
|
|
565
|
-
protected readonly resolvedTitle: import("@angular/core").Signal<string>;
|
|
566
|
-
protected readonly resolvedDescription: import("@angular/core").Signal<string>;
|
|
567
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbCentralSignInComponent, never>;
|
|
568
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbCentralSignInComponent, "rb-central-sign-in", never, {
|
|
569
|
-
"appName": {
|
|
570
|
-
"alias": "appName";
|
|
571
|
-
"required": true;
|
|
572
|
-
"isSignal": true;
|
|
573
|
-
};
|
|
574
|
-
"title": {
|
|
575
|
-
"alias": "title";
|
|
576
|
-
"required": false;
|
|
577
|
-
"isSignal": true;
|
|
578
|
-
};
|
|
579
|
-
"eyebrow": {
|
|
580
|
-
"alias": "eyebrow";
|
|
581
|
-
"required": false;
|
|
582
|
-
"isSignal": true;
|
|
583
|
-
};
|
|
584
|
-
"description": {
|
|
585
|
-
"alias": "description";
|
|
586
|
-
"required": false;
|
|
587
|
-
"isSignal": true;
|
|
588
|
-
};
|
|
589
|
-
"icon": {
|
|
590
|
-
"alias": "icon";
|
|
591
|
-
"required": false;
|
|
592
|
-
"isSignal": true;
|
|
593
|
-
};
|
|
594
|
-
"authHost": {
|
|
595
|
-
"alias": "authHost";
|
|
596
|
-
"required": false;
|
|
597
|
-
"isSignal": true;
|
|
598
|
-
};
|
|
599
|
-
"note": {
|
|
600
|
-
"alias": "note";
|
|
601
|
-
"required": false;
|
|
602
|
-
"isSignal": true;
|
|
603
|
-
};
|
|
604
|
-
"error": {
|
|
605
|
-
"alias": "error";
|
|
606
|
-
"required": false;
|
|
607
|
-
"isSignal": true;
|
|
608
|
-
};
|
|
609
|
-
"backLink": {
|
|
610
|
-
"alias": "backLink";
|
|
611
|
-
"required": false;
|
|
612
|
-
"isSignal": true;
|
|
613
|
-
};
|
|
614
|
-
}, {
|
|
615
|
-
"signIn": "signIn";
|
|
616
|
-
}, never, never, true, never>;
|
|
617
|
-
}
|
|
618
|
-
/**
|
|
619
|
-
* Frame for landing, sign-in and other public pages (docs/design-system.md, section 16.2): skip
|
|
620
|
-
* link, a header with the brand lockup and theme toggle, a centered content area on the brand
|
|
621
|
-
* background, and the standard footer.
|
|
622
|
-
*/
|
|
623
|
-
export declare class RbPublicShellComponent {
|
|
624
|
-
/** Shown in the lockup and the footer: `Admin`, `Auth`, `Rover`, `Photogrammetry`… */
|
|
625
|
-
readonly appName: import("@angular/core").InputSignal<string>;
|
|
626
|
-
/** The lockup's link target, as a `routerLink` value. */
|
|
627
|
-
readonly homeLink: import("@angular/core").InputSignal<string | readonly unknown[]>;
|
|
628
|
-
private readonly main;
|
|
629
|
-
/** See RbAppShellComponent: keeps the skip link on the current route. */
|
|
630
|
-
protected skipToMain(event: Event): void;
|
|
631
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbPublicShellComponent, never>;
|
|
632
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbPublicShellComponent, "rb-public-shell", never, {
|
|
633
|
-
"appName": {
|
|
634
|
-
"alias": "appName";
|
|
635
|
-
"required": true;
|
|
636
|
-
"isSignal": true;
|
|
637
|
-
};
|
|
638
|
-
"homeLink": {
|
|
639
|
-
"alias": "homeLink";
|
|
640
|
-
"required": false;
|
|
641
|
-
"isSignal": true;
|
|
642
|
-
};
|
|
643
|
-
}, {}, never, ["[rbShellActions]", "*", "[rbShellFooter]"], true, never>;
|
|
644
|
-
}
|
|
645
|
-
/**
|
|
646
|
-
* The standard footer of every shell (docs/design-system.md, section 12.5): "© <year> RB Labs ·
|
|
647
|
-
* <App name>", followed on the same line by any projected links or status.
|
|
648
|
-
*/
|
|
649
|
-
export declare class RbShellFooterComponent {
|
|
650
|
-
readonly appName: import("@angular/core").InputSignal<string>;
|
|
651
|
-
protected readonly year: number;
|
|
652
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbShellFooterComponent, never>;
|
|
653
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbShellFooterComponent, "rb-shell-footer", never, {
|
|
654
|
-
"appName": {
|
|
655
|
-
"alias": "appName";
|
|
656
|
-
"required": true;
|
|
657
|
-
"isSignal": true;
|
|
658
|
-
};
|
|
659
|
-
}, {}, never, ["*"], true, never>;
|
|
660
|
-
}
|
|
661
|
-
/**
|
|
662
|
-
* Light/dark switch for the app shell (docs/design-system.md, section 11). The accessible name stays
|
|
663
|
-
* "Dark theme" and `aria-pressed` carries the state, so the label never rewrites itself into the
|
|
664
|
-
* opposite action. Renders nothing while the app forces a theme.
|
|
665
|
-
*/
|
|
666
|
-
export declare class RbThemeToggleComponent {
|
|
667
|
-
protected readonly theme: ThemeService;
|
|
668
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RbThemeToggleComponent, never>;
|
|
669
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RbThemeToggleComponent, "rb-theme-toggle", never, {}, {}, never, never, true, never>;
|
|
670
|
-
}
|
|
671
|
-
/**
|
|
672
|
-
* Kit version. The build stamps it from projects/axiom/package.json (scripts/stamp-version.mjs);
|
|
673
|
-
* source and development builds show the placeholder.
|
|
674
|
-
*/
|
|
675
|
-
export declare const RB_DESIGN_SYSTEM_VERSION: string;
|
|
1
|
+
export * from "@rblabs-dev/axiom/app-shell";
|
|
2
|
+
export * from "@rblabs-dev/axiom/brand-lockup";
|
|
3
|
+
export * from "@rblabs-dev/axiom/central-sign-in";
|
|
4
|
+
export * from "@rblabs-dev/axiom/confirm-dialog";
|
|
5
|
+
export * from "@rblabs-dev/axiom/core";
|
|
6
|
+
export * from "@rblabs-dev/axiom/empty-state";
|
|
7
|
+
export * from "@rblabs-dev/axiom/message";
|
|
8
|
+
export * from "@rblabs-dev/axiom/monogram";
|
|
9
|
+
export * from "@rblabs-dev/axiom/page-header";
|
|
10
|
+
export * from "@rblabs-dev/axiom/panel";
|
|
11
|
+
export * from "@rblabs-dev/axiom/public-shell";
|
|
12
|
+
export * from "@rblabs-dev/axiom/shell-footer";
|
|
13
|
+
export * from "@rblabs-dev/axiom/status-chip";
|
|
14
|
+
export * from "@rblabs-dev/axiom/technical-value";
|
|
15
|
+
export * from "@rblabs-dev/axiom/theme-toggle";
|