@ids-group-ltd/ids-design-system 0.1.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/README.md +114 -0
- package/fesm2022/ids-group-ltd-ids-design-system.mjs +3170 -0
- package/fesm2022/ids-group-ltd-ids-design-system.mjs.map +1 -0
- package/package.json +46 -0
- package/styles/_dropdown-overlay.scss +117 -0
- package/styles/_fonts.scss +59 -0
- package/styles/_icon-base.scss +9 -0
- package/styles/_layout-utils.scss +14 -0
- package/styles/_link.scss +77 -0
- package/styles/_page-grid.scss +68 -0
- package/styles/_reset.scss +17 -0
- package/styles/_scrollbar.scss +17 -0
- package/styles/_skeleton-shimmer.scss +32 -0
- package/styles/_toast-overlay.scss +6 -0
- package/styles/_tokens-charts.scss +71 -0
- package/styles/_tokens.scss +614 -0
- package/styles/_typography.scss +30 -0
- package/styles/ds.scss +27 -0
- package/styles/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/styles/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
- package/styles/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
- package/styles/fonts/mulish-latin-400-normal.woff2 +0 -0
- package/styles/fonts/mulish-latin-500-normal.woff2 +0 -0
- package/styles/fonts/mulish-latin-600-normal.woff2 +0 -0
- package/styles/fonts/mulish-latin-700-normal.woff2 +0 -0
- package/styles/fonts/mulish-latin-800-normal.woff2 +0 -0
- package/themes/README.md +96 -0
- package/themes/default/_palette.scss +159 -0
- package/themes/default/_theme.scss +274 -0
- package/types/ids-group-ltd-ids-design-system.d.ts +1398 -0
|
@@ -0,0 +1,1398 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, Provider, TemplateRef, ElementRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
|
|
5
|
+
declare const ICONS: {
|
|
6
|
+
readonly search: "<circle cx=\"11\" cy=\"11\" r=\"7\" /><path d=\"m20 20-3.5-3.5\" />";
|
|
7
|
+
readonly plus: "<path d=\"M12 5v14M5 12h14\" />";
|
|
8
|
+
readonly minus: "<path d=\"M5 12h14\" />";
|
|
9
|
+
readonly check: "<path d=\"m4 12 5 5L20 6\" />";
|
|
10
|
+
readonly x: "<path d=\"M6 6l12 12M18 6L6 18\" />";
|
|
11
|
+
readonly chevronDown: "<path d=\"m6 9 6 6 6-6\" />";
|
|
12
|
+
readonly chevronRight: "<path d=\"m9 6 6 6-6 6\" />";
|
|
13
|
+
readonly chevronLeft: "<path d=\"m15 6-6 6 6 6\" />";
|
|
14
|
+
readonly chevronUp: "<path d=\"m6 15 6-6 6 6\" />";
|
|
15
|
+
readonly arrowRight: "<path d=\"M5 12h14M13 6l6 6-6 6\" />";
|
|
16
|
+
readonly arrowUp: "<path d=\"M12 19V5M6 11l6-6 6 6\" />";
|
|
17
|
+
readonly arrowDown: "<path d=\"M12 5v14M6 13l6 6 6-6\" />";
|
|
18
|
+
readonly info: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M12 8v.01M11 12h1v4h1\" />";
|
|
19
|
+
readonly warn: "<path d=\"M12 3 2 21h20L12 3z\" /><path d=\"M12 10v4M12 18v.01\" />";
|
|
20
|
+
readonly error: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M12 8v4M12 16v.01\" />";
|
|
21
|
+
readonly success: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"m8 12 3 3 5-6\" />";
|
|
22
|
+
readonly bell: "<path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\" /><path d=\"M10 21a2 2 0 0 0 4 0\" />";
|
|
23
|
+
readonly settings: "<circle cx=\"12\" cy=\"12\" r=\"3\" /><path d=\"M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z\" />";
|
|
24
|
+
readonly user: "<circle cx=\"12\" cy=\"8\" r=\"4\" /><path d=\"M4 21a8 8 0 0 1 16 0\" />";
|
|
25
|
+
readonly users: "<circle cx=\"9\" cy=\"8\" r=\"4\" /><path d=\"M2 21a7 7 0 0 1 14 0\" /><path d=\"M16 4a4 4 0 0 1 0 8M22 21a6 6 0 0 0-6-6\" />";
|
|
26
|
+
readonly home: "<path d=\"m3 11 9-8 9 8\" /><path d=\"M5 10v10h14V10\" />";
|
|
27
|
+
readonly calendar: "<rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" /><path d=\"M3 10h18M8 3v4M16 3v4\" />";
|
|
28
|
+
readonly truck: "<path d=\"M3 16V6a1 1 0 0 1 1-1h11v11\" /><path d=\"M15 9h4l2 3v4h-6\" /><circle cx=\"7.5\" cy=\"17.5\" r=\"2\" /><circle cx=\"17.5\" cy=\"17.5\" r=\"2\" />";
|
|
29
|
+
readonly box: "<path d=\"m21 8-9-5-9 5 9 5 9-5z\" /><path d=\"M3 8v8l9 5 9-5V8\" /><path d=\"m12 13 .01 8\" />";
|
|
30
|
+
readonly map: "<path d=\"m9 4-6 3v13l6-3 6 3 6-3V4l-6 3-6-3z\" /><path d=\"M9 4v13M15 7v13\" />";
|
|
31
|
+
readonly activity: "<path d=\"M3 12h4l3-9 4 18 3-9h4\" />";
|
|
32
|
+
readonly folder: "<path d=\"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />";
|
|
33
|
+
readonly edit: "<path d=\"M12 20h9\" /><path d=\"M16.5 3.5a2.1 2.1 0 1 1 3 3L7 19l-4 1 1-4z\" />";
|
|
34
|
+
readonly external: "<path d=\"M14 4h6v6\" /><path d=\"M20 4 10 14\" /><path d=\"M20 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5\" />";
|
|
35
|
+
readonly trash: "<path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" /><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />";
|
|
36
|
+
readonly copy: "<rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" /><path d=\"M5 15V5a2 2 0 0 1 2-2h10\" />";
|
|
37
|
+
readonly download: "<path d=\"M12 4v12M6 12l6 6 6-6\" /><path d=\"M4 20h16\" />";
|
|
38
|
+
readonly upload: "<path d=\"M12 20V8M6 12l6-6 6 6\" /><path d=\"M4 4h16\" />";
|
|
39
|
+
readonly eye: "<path d=\"M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z\" /><circle cx=\"12\" cy=\"12\" r=\"3\" />";
|
|
40
|
+
readonly filter: "<path d=\"M3 5h18l-7 9v6l-4-2v-4z\" />";
|
|
41
|
+
readonly sort: "<path d=\"M7 4v16M3 8l4-4 4 4\" /><path d=\"M17 20V4M21 16l-4 4-4-4\" />";
|
|
42
|
+
readonly sortAsc: "<path d=\"M7 18V6M3 10l4-4 4 4\" />";
|
|
43
|
+
readonly sortDesc: "<path d=\"M7 6v12M11 14l-4 4-4-4\" />";
|
|
44
|
+
readonly grid: "<rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" /><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" /><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" /><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" />";
|
|
45
|
+
readonly list: "<path d=\"M8 6h13M8 12h13M8 18h13\" /><circle cx=\"3.5\" cy=\"6\" r=\"1.2\" /><circle cx=\"3.5\" cy=\"12\" r=\"1.2\" /><circle cx=\"3.5\" cy=\"18\" r=\"1.2\" />";
|
|
46
|
+
readonly moreH: "<circle cx=\"5\" cy=\"12\" r=\"1.5\" /><circle cx=\"12\" cy=\"12\" r=\"1.5\" /><circle cx=\"19\" cy=\"12\" r=\"1.5\" />";
|
|
47
|
+
readonly moreV: "<circle cx=\"12\" cy=\"5\" r=\"1.5\" /><circle cx=\"12\" cy=\"12\" r=\"1.5\" /><circle cx=\"12\" cy=\"19\" r=\"1.5\" />";
|
|
48
|
+
readonly link: "<path d=\"M10 14a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1\" /><path d=\"M14 10a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1\" />";
|
|
49
|
+
readonly flag: "<path d=\"M5 21V5a14 14 0 0 1 14 0v9a14 14 0 0 1-14 0z\" />";
|
|
50
|
+
readonly star: "<path d=\"m12 3 2.9 6 6.6.9-4.8 4.6 1.1 6.5L12 17.8 6.2 21l1.1-6.5L2.5 9.9 9.1 9z\" />";
|
|
51
|
+
readonly inbox: "<path d=\"M22 12h-6l-2 3h-4l-2-3H2\" /><path d=\"M5 4h14l3 8v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8z\" />";
|
|
52
|
+
readonly archive: "<rect x=\"3\" y=\"3\" width=\"18\" height=\"5\" rx=\"1\" /><path d=\"M5 8v11a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8M10 12h4\" />";
|
|
53
|
+
readonly clock: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M12 7v5l3 2\" />";
|
|
54
|
+
readonly refresh: "<path d=\"M3 12a9 9 0 0 1 15-6.7L21 8\" /><path d=\"M21 3v5h-5\" /><path d=\"M21 12a9 9 0 0 1-15 6.7L3 16\" /><path d=\"M3 21v-5h5\" />";
|
|
55
|
+
readonly play: "<path d=\"M6 4l14 8-14 8z\" />";
|
|
56
|
+
readonly pause: "<path d=\"M7 4v16M17 4v16\" />";
|
|
57
|
+
readonly cmd: "<path d=\"M9 9h6v6H9zM6 9V7a3 3 0 1 1 3 3H6zM6 15v2a3 3 0 1 0 3-3H6zM18 9V7a3 3 0 1 0-3 3h3zM18 15v2a3 3 0 1 1-3-3h3z\" />";
|
|
58
|
+
readonly paperclip: "<path d=\"m21 11-9 9a5 5 0 0 1-7-7l9-9a3 3 0 0 1 4 4l-9 9a1 1 0 0 1-1-1l8-8\" />";
|
|
59
|
+
readonly file: "<path d=\"M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" /><path d=\"M14 3v6h6\" />";
|
|
60
|
+
readonly image: "<rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" /><circle cx=\"9\" cy=\"9\" r=\"2\" /><path d=\"m21 15-5-5L5 21\" />";
|
|
61
|
+
readonly lock: "<rect x=\"4\" y=\"11\" width=\"16\" height=\"10\" rx=\"2\" /><path d=\"M8 11V7a4 4 0 0 1 8 0v4\" />";
|
|
62
|
+
readonly logout: "<path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" /><path d=\"m16 17 5-5-5-5M21 12H9\" />";
|
|
63
|
+
readonly help: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M9.5 9a2.5 2.5 0 0 1 5 0c0 1.5-2.5 2-2.5 4M12 17v.01\" />";
|
|
64
|
+
readonly pin: "<path d=\"M12 22v-7\" /><path d=\"m9 15 6 0M8 9l8 0M9 15c-2-1.5-3-4-3-7l12 0c0 3-1 5.5-3 7\" />";
|
|
65
|
+
readonly bookmark: "<path d=\"M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16l-7-4z\" />";
|
|
66
|
+
readonly sparkle: "<path d=\"M12 3v6M12 15v6M3 12h6M15 12h6M5.6 5.6l4.2 4.2M14.2 14.2l4.2 4.2M5.6 18.4l4.2-4.2M14.2 9.8l4.2-4.2\" />";
|
|
67
|
+
readonly layers: "<path d=\"m12 3 9 5-9 5-9-5z\" /><path d=\"m3 13 9 5 9-5M3 18l9 5 9-5\" />";
|
|
68
|
+
readonly chart: "<path d=\"M3 3v18h18\" /><path d=\"M7 14l4-4 4 4 5-5\" />";
|
|
69
|
+
readonly gauge: "<path d=\"M12 14l4-4\" /><circle cx=\"12\" cy=\"14\" r=\"9\" /><path d=\"M3 14a9 9 0 0 1 18 0\" />";
|
|
70
|
+
readonly package: "<path d=\"M3 7v10l9 4 9-4V7l-9-4z\" /><path d=\"m3 7 9 5 9-5M12 12v9\" />";
|
|
71
|
+
readonly git: "<circle cx=\"6\" cy=\"6\" r=\"2.5\" /><circle cx=\"6\" cy=\"18\" r=\"2.5\" /><circle cx=\"18\" cy=\"12\" r=\"2.5\" /><path d=\"M6 8.5v7M8.5 6h4a3 3 0 0 1 3 3v0\" />";
|
|
72
|
+
readonly sun: "<circle cx=\"12\" cy=\"12\" r=\"4\" /><path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\" />";
|
|
73
|
+
readonly moon: "<path d=\"M21 13a9 9 0 0 1-12-12 9 9 0 1 0 12 12z\" />";
|
|
74
|
+
readonly save: "<path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\" /><path d=\"M17 21v-8H7v8M7 3v5h8\" />";
|
|
75
|
+
readonly rotate: "<path d=\"M3 12a9 9 0 1 0 3-6.7L3 8\" /><path d=\"M3 3v5h5\" />";
|
|
76
|
+
readonly qr: "<rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" /><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" /><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" /><path d=\"M14 14h3v3h-3zM18 18h3v3h-3z\" />";
|
|
77
|
+
readonly globe: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\" />";
|
|
78
|
+
readonly phone: "<path d=\"M5 4h4l2 5-2 1a11 11 0 0 0 5 5l1-2 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z\" />";
|
|
79
|
+
readonly bin: "<rect x=\"3\" y=\"6\" width=\"18\" height=\"14\" rx=\"2\" /><path d=\"M7 6V4h10v2\" />";
|
|
80
|
+
readonly pen: "<path d=\"M3 17V21h4l11-11-4-4z\" />";
|
|
81
|
+
readonly smile: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M9 9v.01M15 9v.01M8 14a5 5 0 0 0 8 0\" />";
|
|
82
|
+
readonly frown: "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"M9 9v.01M15 9v.01M8 16a5 5 0 0 1 8 0\" />";
|
|
83
|
+
readonly mail: "<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" /><path d=\"m3 7 9 6 9-6\" />";
|
|
84
|
+
readonly 'eye-off': "<path d=\"M3 3l18 18\" /><path d=\"M10.6 6.1A10 10 0 0 1 12 6c6 0 10 7 10 7a14 14 0 0 1-2.4 3.1\" /><path d=\"M6.7 6.7A14 14 0 0 0 2 12s4 7 10 7a10 10 0 0 0 4.5-1\" /><path d=\"M9.9 14.1A3 3 0 0 1 9 12a3 3 0 0 1 3-3 3 3 0 0 1 2.1.9\" />";
|
|
85
|
+
readonly 'check-circle': "<circle cx=\"12\" cy=\"12\" r=\"9\" /><path d=\"m8 12 3 3 5-6\" />";
|
|
86
|
+
readonly drag: "<circle cx=\"9\" cy=\"6\" r=\"1.6\" /><circle cx=\"15\" cy=\"6\" r=\"1.6\" /><circle cx=\"9\" cy=\"12\" r=\"1.6\" /><circle cx=\"15\" cy=\"12\" r=\"1.6\" /><circle cx=\"9\" cy=\"18\" r=\"1.6\" /><circle cx=\"15\" cy=\"18\" r=\"1.6\" />";
|
|
87
|
+
readonly scan: "<path d=\"M4 8V5a1 1 0 0 1 1-1h3M16 4h3a1 1 0 0 1 1 1v3M20 16v3a1 1 0 0 1-1 1h-3M8 20H5a1 1 0 0 1-1-1v-3\" />";
|
|
88
|
+
readonly wifi: "<path d=\"M2 9.5a15 15 0 0 1 20 0\" /><path d=\"M5 13a10 10 0 0 1 14 0\" /><path d=\"M8.5 16.5a5 5 0 0 1 7 0\" /><path d=\"M12 20h.01\" />";
|
|
89
|
+
readonly 'wifi-off': "<path d=\"m3 3 18 18\" /><path d=\"M12 20h.01\" /><path d=\"M8.5 16.5a5 5 0 0 1 7 0\" /><path d=\"M5 13a10 10 0 0 1 3.5-2.3\" /><path d=\"M11 8.6A10 10 0 0 1 19 13\" /><path d=\"M2 9.5a15 15 0 0 1 5.7-3.2\" /><path d=\"M11.6 5.6A15 15 0 0 1 22 9.5\" />";
|
|
90
|
+
};
|
|
91
|
+
/** Built-in DS icon names. Consumers can extend the runtime set via `provideDsIcons({...})` —
|
|
92
|
+
* the type widens to `string` so any custom name is accepted at the call site (at the cost of
|
|
93
|
+
* autocomplete for those custom names). */
|
|
94
|
+
type IconName = keyof typeof ICONS | (string & {});
|
|
95
|
+
|
|
96
|
+
interface DsConfig {
|
|
97
|
+
breadcrumbs?: {
|
|
98
|
+
separator?: IconName;
|
|
99
|
+
clickable?: boolean;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
declare const DS_CONFIG: InjectionToken<DsConfig>;
|
|
103
|
+
/** Provide DS-level defaults at the app root.
|
|
104
|
+
*
|
|
105
|
+
* providers: [provideDsConfig({ card: { padding: 'sm' } })]
|
|
106
|
+
*
|
|
107
|
+
* Component inputs (e.g. `<ds-card padding="lg">`) still win over the config.
|
|
108
|
+
*/
|
|
109
|
+
declare function provideDsConfig(config: DsConfig): Provider;
|
|
110
|
+
|
|
111
|
+
/** A reference to the overlay/container the projected content lives in, used to
|
|
112
|
+
* close it from the inside — e.g. a popover (and, later, a dropdown/select)
|
|
113
|
+
* closing when a menu item is selected. The container provides it via DI;
|
|
114
|
+
* content injects it with `{ optional: true }` so the same content also works
|
|
115
|
+
* standalone (outside any overlay).
|
|
116
|
+
*
|
|
117
|
+
* Same shape as Angular Material's `MatDialogRef` (content calls `close()` on a
|
|
118
|
+
* ref), generalised so any dismissible overlay can provide it. */
|
|
119
|
+
declare abstract class DsOverlayCloseRef {
|
|
120
|
+
abstract close(): void;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
declare class IconComponent {
|
|
124
|
+
private readonly sanitizer;
|
|
125
|
+
private readonly registry;
|
|
126
|
+
readonly name: _angular_core.InputSignal<IconName>;
|
|
127
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
128
|
+
readonly stroke: _angular_core.InputSignal<number>;
|
|
129
|
+
/** When set, the icon is exposed to assistive tech as an image with this
|
|
130
|
+
* name; otherwise it is decorative and hidden (`aria-hidden`). */
|
|
131
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
132
|
+
protected readonly paths: _angular_core.Signal<SafeHtml>;
|
|
133
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
134
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "ds-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "stroke": { "alias": "stroke"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** Map of custom icon name -> raw SVG body markup.
|
|
138
|
+
*
|
|
139
|
+
* The body is what goes *inside* `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor">`
|
|
140
|
+
* — typically one or more `<path>` / `<circle>` / `<rect>` elements. Stroke width, line caps and
|
|
141
|
+
* join are applied by the host `<ds-icon>` template, so paths should use `stroke="currentColor"`
|
|
142
|
+
* implicitly (i.e. omit the stroke attribute) and rely on the parent SVG.
|
|
143
|
+
*
|
|
144
|
+
* Example:
|
|
145
|
+
* provideDsIcons({
|
|
146
|
+
* 'cloud-upload': '<path d="M12 13v8m0-8 3 3m-3-3-3 3"/><path d="..."/>',
|
|
147
|
+
* })
|
|
148
|
+
*/
|
|
149
|
+
type DsIconRegistry = Readonly<Record<string, string>>;
|
|
150
|
+
declare const DS_ICON_REGISTRY: InjectionToken<Readonly<Record<string, string>>>;
|
|
151
|
+
/** Register additional icons available to `<ds-icon [name]="...">` alongside the built-in DS set.
|
|
152
|
+
*
|
|
153
|
+
* providers: [
|
|
154
|
+
* provideDsIcons({
|
|
155
|
+
* 'cloud-upload': '<path d="..."/>',
|
|
156
|
+
* 'shield': '<path d="..."/>',
|
|
157
|
+
* }),
|
|
158
|
+
* ]
|
|
159
|
+
*
|
|
160
|
+
* Names take precedence as: built-in `ICONS` > consumer registry. Consumer names that clash with
|
|
161
|
+
* built-ins are ignored — to override a built-in, edit the DS source.
|
|
162
|
+
*/
|
|
163
|
+
declare function provideDsIcons(icons: DsIconRegistry): Provider;
|
|
164
|
+
|
|
165
|
+
type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'outline' | 'error' | 'success' | 'warning' | 'text';
|
|
166
|
+
type ButtonSize = 's' | 'm' | 'l' | 'sm' | 'md' | 'lg';
|
|
167
|
+
type ButtonType = 'button' | 'submit' | 'reset';
|
|
168
|
+
|
|
169
|
+
declare class ButtonComponent {
|
|
170
|
+
readonly variant: _angular_core.InputSignal<ButtonVariant>;
|
|
171
|
+
readonly size: _angular_core.InputSignal<ButtonSize>;
|
|
172
|
+
readonly type: _angular_core.InputSignal<ButtonType>;
|
|
173
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
174
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
175
|
+
/** Stretch the button to fill its container — the host becomes block-level
|
|
176
|
+
and 100% wide (the inner control is already full-width). Use for mobile
|
|
177
|
+
primary CTAs and full-bleed form submit buttons. */
|
|
178
|
+
readonly fullWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
179
|
+
/** Accessible name — forwarded to the inner <button> as aria-label. Use when
|
|
180
|
+
the visible label is absent or non-descriptive. */
|
|
181
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
182
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
183
|
+
readonly trailingIcon: _angular_core.InputSignal<IconName | null>;
|
|
184
|
+
readonly pressed: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
185
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
186
|
+
protected onClick(event: MouseEvent): void;
|
|
187
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
188
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ds-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; "isSignal": true; }; }, { "pressed": "pressed"; }, never, ["*", "[dsButtonSubtext]"], true, never>;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
type IconButtonVariant = 'standard' | 'filled' | 'tonal' | 'outlined';
|
|
192
|
+
type IconButtonSize = 'sm' | 'md' | 'lg';
|
|
193
|
+
type IconButtonType = 'button' | 'submit' | 'reset';
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Icon-only action button with its own variant taxonomy (standard / filled /
|
|
197
|
+
* tonal / outlined) + an optional toggle (`selected`) state. Distinct from
|
|
198
|
+
* `ds-button` — use this for square/round icon affordances; use `ds-button`
|
|
199
|
+
* for labelled actions. `ariaLabel` is REQUIRED (icon-only has no text label).
|
|
200
|
+
*/
|
|
201
|
+
declare class IconButtonComponent {
|
|
202
|
+
readonly icon: _angular_core.InputSignal<IconName>;
|
|
203
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
204
|
+
readonly variant: _angular_core.InputSignal<IconButtonVariant>;
|
|
205
|
+
readonly size: _angular_core.InputSignal<IconButtonSize>;
|
|
206
|
+
readonly type: _angular_core.InputSignal<IconButtonType>;
|
|
207
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
208
|
+
/** Toggle state — renders the pressed/active look and sets aria-pressed. */
|
|
209
|
+
readonly selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
210
|
+
readonly pressed: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
211
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
212
|
+
protected readonly iconSize: _angular_core.Signal<16 | 24 | 20>;
|
|
213
|
+
protected onClick(event: MouseEvent): void;
|
|
214
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
|
|
215
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "ds-icon-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "pressed": "pressed"; }, never, never, true, never>;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
type BadgeLifecycle = 'planning' | 'confirmed' | 'active' | 'completed';
|
|
219
|
+
type BadgeSemantic = 'info' | 'success' | 'warning' | 'error' | 'neutral';
|
|
220
|
+
type BadgeVariant = BadgeLifecycle | BadgeSemantic | 'solid' | 'count';
|
|
221
|
+
|
|
222
|
+
declare class BadgeComponent {
|
|
223
|
+
readonly variant: _angular_core.InputSignal<BadgeVariant>;
|
|
224
|
+
readonly withDot: _angular_core.InputSignal<boolean>;
|
|
225
|
+
readonly solid: _angular_core.InputSignal<boolean>;
|
|
226
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
227
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
228
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ds-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "withDot": { "alias": "withDot"; "required": false; "isSignal": true; }; "solid": { "alias": "solid"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Status dot variants — sourced from components.css `.status-dot--*` modifiers.
|
|
233
|
+
* JSX showcase exercises `active`, `warning`, `error`; CSS defines all six.
|
|
234
|
+
*/
|
|
235
|
+
type StatusValue = 'planning' | 'confirmed' | 'active' | 'completed' | 'warning' | 'error' | 'secondary';
|
|
236
|
+
|
|
237
|
+
declare class StatusDotComponent {
|
|
238
|
+
readonly status: _angular_core.InputSignal<StatusValue>;
|
|
239
|
+
/** Override the colour-only status with a human label for assistive tech. */
|
|
240
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
241
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
242
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusDotComponent, never>;
|
|
243
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusDotComponent, "ds-status-dot", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
247
|
+
|
|
248
|
+
declare class AvatarComponent {
|
|
249
|
+
readonly size: _angular_core.InputSignal<AvatarSize>;
|
|
250
|
+
readonly initials: _angular_core.InputSignal<string>;
|
|
251
|
+
readonly imageUrl: _angular_core.InputSignal<string | null>;
|
|
252
|
+
/** Accessible name. When omitted, the avatar is treated as decorative
|
|
253
|
+
* (hidden from AT) — correct when a visible name sits beside it. */
|
|
254
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
255
|
+
/** Off-token color tint. Accepts a `{ bg, fg }` pair for arbitrary palettes,
|
|
256
|
+
* the literal `'neutral'` for the neutral overflow-chip treatment, or null
|
|
257
|
+
* for the default brand-subtle tones from avatar.scss. */
|
|
258
|
+
readonly tint: _angular_core.InputSignal<"neutral" | {
|
|
259
|
+
bg: string;
|
|
260
|
+
fg: string;
|
|
261
|
+
} | null>;
|
|
262
|
+
protected readonly tintStyle: _angular_core.Signal<{
|
|
263
|
+
bg: string | null;
|
|
264
|
+
fg: string | null;
|
|
265
|
+
}>;
|
|
266
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
267
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "ds-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "tint": { "alias": "tint"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
declare class AvatarGroupComponent {
|
|
271
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
272
|
+
readonly total: _angular_core.InputSignal<number | null>;
|
|
273
|
+
protected readonly overflow: _angular_core.Signal<number | null>;
|
|
274
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarGroupComponent, never>;
|
|
275
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarGroupComponent, "ds-avatar-group", never, { "max": { "alias": "max"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
type CardElevation = 'flat' | 'raised' | 'hover' | 'interactive';
|
|
279
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
280
|
+
|
|
281
|
+
declare class CardComponent {
|
|
282
|
+
readonly elevation: _angular_core.InputSignal<CardElevation>;
|
|
283
|
+
readonly padding: _angular_core.InputSignal<CardPadding | null>;
|
|
284
|
+
readonly pressed: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
285
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
286
|
+
protected onClick(event: MouseEvent): void;
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
288
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "ds-card", never, { "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, { "pressed": "pressed"; }, never, ["*"], true, never>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
declare class StatComponent {
|
|
292
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
293
|
+
readonly value: _angular_core.InputSignal<string | number>;
|
|
294
|
+
readonly delta: _angular_core.InputSignal<number | null>;
|
|
295
|
+
readonly deltaLabel: _angular_core.InputSignal<string>;
|
|
296
|
+
readonly deltaTone: _angular_core.InputSignal<"secondary" | "neutral" | null>;
|
|
297
|
+
readonly caption: _angular_core.InputSignal<string>;
|
|
298
|
+
readonly unit: _angular_core.InputSignal<string>;
|
|
299
|
+
readonly variant: _angular_core.InputSignal<"default" | "danger">;
|
|
300
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
301
|
+
protected readonly deltaClasses: _angular_core.Signal<string>;
|
|
302
|
+
protected readonly deltaIcon: _angular_core.Signal<"arrowUp" | "arrowDown" | null>;
|
|
303
|
+
protected readonly deltaText: _angular_core.Signal<string>;
|
|
304
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatComponent, never>;
|
|
305
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatComponent, "ds-stat", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaLabel": { "alias": "deltaLabel"; "required": false; "isSignal": true; }; "deltaTone": { "alias": "deltaTone"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[delta]"], true, never>;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
declare class TabComponent {
|
|
309
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
310
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
311
|
+
readonly count: _angular_core.InputSignal<number | null>;
|
|
312
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
313
|
+
readonly content: _angular_core.Signal<TemplateRef<unknown>>;
|
|
314
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
|
|
315
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "ds-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
type TabsVariant = 'line' | 'pills';
|
|
319
|
+
|
|
320
|
+
declare class TabsComponent {
|
|
321
|
+
readonly selectedIndex: _angular_core.ModelSignal<number>;
|
|
322
|
+
readonly variant: _angular_core.InputSignal<TabsVariant>;
|
|
323
|
+
private readonly host;
|
|
324
|
+
private readonly uid;
|
|
325
|
+
protected readonly tabs: _angular_core.Signal<readonly TabComponent[]>;
|
|
326
|
+
protected tabId(index: number): string;
|
|
327
|
+
protected panelId(index: number): string;
|
|
328
|
+
protected readonly tabsClasses: _angular_core.Signal<"tabs pills" | "tabs">;
|
|
329
|
+
protected readonly selectedTemplate: _angular_core.Signal<_angular_core.TemplateRef<unknown>>;
|
|
330
|
+
protected tabClasses(index: number, disabled: boolean): string;
|
|
331
|
+
protected select(index: number, disabled: boolean): void;
|
|
332
|
+
/** Roving keyboard navigation across the tablist (APG automatic activation). */
|
|
333
|
+
protected onKeydown(event: KeyboardEvent, index: number): void;
|
|
334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
335
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ds-tabs", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; }, ["tabs"], never, true, never>;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
type InputSize = 'sm' | 'md' | 'lg';
|
|
339
|
+
type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
|
|
340
|
+
|
|
341
|
+
declare class InputComponent {
|
|
342
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
343
|
+
readonly type: _angular_core.InputSignal<InputType>;
|
|
344
|
+
readonly size: _angular_core.InputSignal<InputSize>;
|
|
345
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
346
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
347
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
348
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
349
|
+
readonly readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
350
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
351
|
+
readonly success: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
352
|
+
readonly withAddon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
353
|
+
readonly withAddonRight: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
354
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
355
|
+
readonly optional: _angular_core.InputSignal<boolean>;
|
|
356
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
357
|
+
readonly min: _angular_core.InputSignal<number | null>;
|
|
358
|
+
readonly max: _angular_core.InputSignal<number | null>;
|
|
359
|
+
readonly step: _angular_core.InputSignal<number | null>;
|
|
360
|
+
/** Native autocomplete token (e.g. "email", "current-password"). */
|
|
361
|
+
readonly autocomplete: _angular_core.InputSignal<string | null>;
|
|
362
|
+
readonly autofocus: _angular_core.InputSignal<boolean>;
|
|
363
|
+
/** Accessible name when no visible `label` is provided (falls back to the
|
|
364
|
+
* placeholder so the control is never unnamed). */
|
|
365
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
366
|
+
/** Mobile keyboard hints — forwarded to the native input as attributes. */
|
|
367
|
+
readonly enterKeyHint: _angular_core.InputSignal<"search" | "enter" | "done" | "go" | "next" | "previous" | "send" | null>;
|
|
368
|
+
readonly inputMode: _angular_core.InputSignal<"search" | "text" | "none" | "email" | "tel" | "url" | "decimal" | "numeric" | null>;
|
|
369
|
+
/** Emits when the native input loses focus. */
|
|
370
|
+
readonly blurred: _angular_core.OutputEmitterRef<void>;
|
|
371
|
+
/**
|
|
372
|
+
* Show an inline clear (×) button when the input has a non-empty value.
|
|
373
|
+
* Mirrors the Material/PrimeNG pattern: explicit button (not native search
|
|
374
|
+
* cancel) so the affordance is consistent across browsers and styled with
|
|
375
|
+
* DS tokens. Defaults to true when type='search', false otherwise — pass
|
|
376
|
+
* an explicit boolean to override.
|
|
377
|
+
*/
|
|
378
|
+
readonly clearable: _angular_core.InputSignal<boolean | null>;
|
|
379
|
+
readonly passwordToggle: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
380
|
+
readonly passwordVisible: _angular_core.ModelSignal<boolean>;
|
|
381
|
+
protected readonly canClear: _angular_core.Signal<boolean>;
|
|
382
|
+
protected readonly uid: string;
|
|
383
|
+
protected readonly hintId: _angular_core.Signal<string | null>;
|
|
384
|
+
/** Only name via aria-label when there's no visible `<label for>`. */
|
|
385
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
386
|
+
protected readonly showPasswordToggle: _angular_core.Signal<boolean>;
|
|
387
|
+
protected readonly effectiveType: _angular_core.Signal<InputType>;
|
|
388
|
+
protected togglePassword(): void;
|
|
389
|
+
protected readonly wrapperClasses: _angular_core.Signal<string>;
|
|
390
|
+
protected clear(): void;
|
|
391
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
392
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ds-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "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; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "withAddon": { "alias": "withAddon"; "required": false; "isSignal": true; }; "withAddonRight": { "alias": "withAddonRight"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "enterKeyHint": { "alias": "enterKeyHint"; "required": false; "isSignal": true; }; "inputMode": { "alias": "inputMode"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "passwordToggle": { "alias": "passwordToggle"; "required": false; "isSignal": true; }; "passwordVisible": { "alias": "passwordVisible"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "blurred": "blurred"; "passwordVisible": "passwordVisibleChange"; }, never, ["[dsInputPrefix]", "[dsInputSuffix]"], true, never>;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
type NumberStepperSize = 'sm' | 'md' | 'lg';
|
|
396
|
+
|
|
397
|
+
declare class NumberStepperComponent {
|
|
398
|
+
readonly value: _angular_core.ModelSignal<number>;
|
|
399
|
+
readonly min: _angular_core.InputSignal<number>;
|
|
400
|
+
readonly max: _angular_core.InputSignal<number | null>;
|
|
401
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
402
|
+
readonly size: _angular_core.InputSignal<NumberStepperSize>;
|
|
403
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
404
|
+
protected readonly atMin: _angular_core.Signal<boolean>;
|
|
405
|
+
protected readonly atMax: _angular_core.Signal<boolean>;
|
|
406
|
+
protected readonly stepperClass: _angular_core.Signal<string>;
|
|
407
|
+
inc(): void;
|
|
408
|
+
dec(): void;
|
|
409
|
+
protected setRaw(raw: string): void;
|
|
410
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberStepperComponent, never>;
|
|
411
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberStepperComponent, "ds-number-stepper", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
type TextareaSize = 'sm' | 'md' | 'lg';
|
|
415
|
+
type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
416
|
+
|
|
417
|
+
declare class TextareaComponent {
|
|
418
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
419
|
+
readonly size: _angular_core.InputSignal<TextareaSize>;
|
|
420
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
421
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
422
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
423
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
424
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
425
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
426
|
+
readonly optional: _angular_core.InputSignal<boolean>;
|
|
427
|
+
readonly rows: _angular_core.InputSignal<number>;
|
|
428
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
429
|
+
readonly autosize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
430
|
+
readonly minRows: _angular_core.InputSignal<number | null>;
|
|
431
|
+
readonly maxRows: _angular_core.InputSignal<number | null>;
|
|
432
|
+
readonly resize: _angular_core.InputSignal<TextareaResize>;
|
|
433
|
+
/** Accessible name when no visible `label` is provided. */
|
|
434
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
435
|
+
protected readonly uid: string;
|
|
436
|
+
protected readonly hintId: _angular_core.Signal<string | null>;
|
|
437
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
438
|
+
protected readonly wrapperClasses: _angular_core.Signal<string>;
|
|
439
|
+
protected readonly autosizeMinHeight: _angular_core.Signal<string | null>;
|
|
440
|
+
protected readonly autosizeMaxHeight: _angular_core.Signal<string | null>;
|
|
441
|
+
protected readonly effectiveResize: _angular_core.Signal<TextareaResize>;
|
|
442
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
443
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ds-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "autosize": { "alias": "autosize"; "required": false; "isSignal": true; }; "minRows": { "alias": "minRows"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
declare class SearchComponent {
|
|
447
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
448
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
449
|
+
readonly shortcut: _angular_core.InputSignal<string>;
|
|
450
|
+
readonly showIcon: _angular_core.InputSignal<boolean>;
|
|
451
|
+
/** Show an inline clear (×) button on the right when there's a value. */
|
|
452
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
453
|
+
/** Accessible name for the input (placeholder is not a reliable label). */
|
|
454
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
455
|
+
readonly submitted: _angular_core.OutputEmitterRef<string>;
|
|
456
|
+
private readonly inputEl;
|
|
457
|
+
protected onSubmit(): void;
|
|
458
|
+
protected clear(): void;
|
|
459
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchComponent, never>;
|
|
460
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchComponent, "ds-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "submitted": "submitted"; }, never, never, true, never>;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/** Showcase-only: renders the component's open/overlay surface inline in normal
|
|
464
|
+
* flow instead of its real overlay mechanics (for static docs specimens).
|
|
465
|
+
* Not part of the production contract. */
|
|
466
|
+
declare class DsStaticPreview {
|
|
467
|
+
readonly staticPreview: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
468
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsStaticPreview, never>;
|
|
469
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DsStaticPreview, never, never, { "staticPreview": { "alias": "staticPreview"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
type SelectSize = 'sm' | 'md' | 'lg';
|
|
473
|
+
interface SelectOption {
|
|
474
|
+
label: string;
|
|
475
|
+
value: string;
|
|
476
|
+
disabled?: boolean;
|
|
477
|
+
}
|
|
478
|
+
interface SelectOptionGroup {
|
|
479
|
+
label: string;
|
|
480
|
+
options: SelectOption[];
|
|
481
|
+
disabled?: boolean;
|
|
482
|
+
}
|
|
483
|
+
type SelectItem = SelectOption | SelectOptionGroup;
|
|
484
|
+
declare function isSelectOptionGroup(item: SelectItem): item is SelectOptionGroup;
|
|
485
|
+
|
|
486
|
+
declare class SelectComponent {
|
|
487
|
+
private readonly overlay;
|
|
488
|
+
private readonly vcr;
|
|
489
|
+
protected readonly preview: DsStaticPreview;
|
|
490
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
491
|
+
readonly options: _angular_core.InputSignal<SelectItem[]>;
|
|
492
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
493
|
+
readonly size: _angular_core.InputSignal<SelectSize>;
|
|
494
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
495
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
496
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
497
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
498
|
+
readonly optional: _angular_core.InputSignal<boolean>;
|
|
499
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
500
|
+
/** Accessible name when no visible `label` is provided. */
|
|
501
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
502
|
+
protected readonly uid: string;
|
|
503
|
+
protected readonly labelId: string;
|
|
504
|
+
protected readonly listboxId: string;
|
|
505
|
+
protected optionId(flatIdx: number): string;
|
|
506
|
+
/** Active option for `aria-activedescendant` (combobox keeps DOM focus). */
|
|
507
|
+
protected readonly activeDescendant: _angular_core.Signal<string | null>;
|
|
508
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
509
|
+
protected readonly trigger: _angular_core.Signal<ElementRef<HTMLButtonElement>>;
|
|
510
|
+
protected readonly panelTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
511
|
+
protected readonly panelContentTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
512
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
513
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
514
|
+
private overlayRef;
|
|
515
|
+
protected readonly flatOptions: _angular_core.Signal<{
|
|
516
|
+
option: SelectOption;
|
|
517
|
+
groupDisabled: boolean;
|
|
518
|
+
}[]>;
|
|
519
|
+
protected readonly selectedOption: _angular_core.Signal<SelectOption | null>;
|
|
520
|
+
protected readonly displayLabel: _angular_core.Signal<string>;
|
|
521
|
+
protected readonly hasValue: _angular_core.Signal<boolean>;
|
|
522
|
+
protected readonly triggerClasses: _angular_core.Signal<string>;
|
|
523
|
+
constructor();
|
|
524
|
+
protected isOptionGroup(item: SelectItem): item is SelectOptionGroup;
|
|
525
|
+
protected flatIndexOf(opt: SelectOption): number;
|
|
526
|
+
protected toggle(): void;
|
|
527
|
+
protected openPanel(): void;
|
|
528
|
+
protected close(): void;
|
|
529
|
+
protected pick(option: SelectOption, groupDisabled?: boolean): void;
|
|
530
|
+
protected isSelected(option: SelectOption): boolean;
|
|
531
|
+
protected isOptionDisabled(option: SelectOption, groupDisabled?: boolean): boolean;
|
|
532
|
+
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
533
|
+
protected isActive(index: number): boolean;
|
|
534
|
+
private moveActive;
|
|
535
|
+
private firstEnabledIndex;
|
|
536
|
+
private lastEnabledIndex;
|
|
537
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
538
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ds-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof DsStaticPreview; inputs: { "staticPreview": "staticPreview"; }; outputs: {}; }]>;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
type DropdownSize = 'sm' | 'md' | 'lg';
|
|
542
|
+
interface DropdownOption {
|
|
543
|
+
label: string;
|
|
544
|
+
value: string;
|
|
545
|
+
disabled?: boolean;
|
|
546
|
+
icon?: IconName;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
declare class DropdownComponent {
|
|
550
|
+
private readonly overlay;
|
|
551
|
+
private readonly vcr;
|
|
552
|
+
protected readonly preview: DsStaticPreview;
|
|
553
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
554
|
+
readonly options: _angular_core.InputSignal<DropdownOption[]>;
|
|
555
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
556
|
+
readonly size: _angular_core.InputSignal<DropdownSize>;
|
|
557
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
558
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
559
|
+
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
560
|
+
readonly error: _angular_core.InputSignal<boolean>;
|
|
561
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
562
|
+
/** Accessible name when no visible `label` is provided. */
|
|
563
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
564
|
+
protected readonly uid: string;
|
|
565
|
+
protected readonly labelId: string;
|
|
566
|
+
protected readonly listboxId: string;
|
|
567
|
+
protected optionId(index: number): string;
|
|
568
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
569
|
+
protected readonly trigger: _angular_core.Signal<ElementRef<HTMLButtonElement>>;
|
|
570
|
+
protected readonly panelTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
571
|
+
protected readonly panelContentTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
572
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
573
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
574
|
+
private overlayRef;
|
|
575
|
+
protected readonly selectedOption: _angular_core.Signal<DropdownOption | null>;
|
|
576
|
+
protected readonly displayLabel: _angular_core.Signal<string>;
|
|
577
|
+
protected readonly hasValue: _angular_core.Signal<boolean>;
|
|
578
|
+
protected readonly activeDescendant: _angular_core.Signal<string | null>;
|
|
579
|
+
protected readonly wrapperClasses: _angular_core.Signal<string>;
|
|
580
|
+
constructor();
|
|
581
|
+
protected toggle(): void;
|
|
582
|
+
protected openPanel(): void;
|
|
583
|
+
protected close(): void;
|
|
584
|
+
protected pick(option: DropdownOption): void;
|
|
585
|
+
protected isSelected(option: DropdownOption): boolean;
|
|
586
|
+
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
587
|
+
protected isActive(index: number): boolean;
|
|
588
|
+
private moveActive;
|
|
589
|
+
private firstEnabledIndex;
|
|
590
|
+
private lastEnabledIndex;
|
|
591
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
592
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ds-dropdown", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof DsStaticPreview; inputs: { "staticPreview": "staticPreview"; }; outputs: {}; }]>;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* Projects a custom cell template into <ds-table> for a specific column.
|
|
597
|
+
*
|
|
598
|
+
* Usage:
|
|
599
|
+
* <ds-table [data]="rows" [columns]="cols">
|
|
600
|
+
* <ng-template dsCellTemplate="product" let-row>
|
|
601
|
+
* <div>{{ asRule(row).product }}</div>
|
|
602
|
+
* </ng-template>
|
|
603
|
+
* </ds-table>
|
|
604
|
+
*
|
|
605
|
+
* The template context type is `unknown` because Angular cannot propagate
|
|
606
|
+
* the parent <ds-table>'s row type to projected templates. Consumers should
|
|
607
|
+
* narrow the row with a typed helper method on the host component.
|
|
608
|
+
*
|
|
609
|
+
* Context shape:
|
|
610
|
+
* - $implicit: the row object (typed `unknown`)
|
|
611
|
+
* - row: alias for the row object (typed `unknown`)
|
|
612
|
+
*/
|
|
613
|
+
declare class CellTemplateDirective {
|
|
614
|
+
readonly dsCellTemplate: _angular_core.InputSignal<string>;
|
|
615
|
+
readonly template: TemplateRef<any>;
|
|
616
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CellTemplateDirective, never>;
|
|
617
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CellTemplateDirective, "[dsCellTemplate]", never, { "dsCellTemplate": { "alias": "dsCellTemplate"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
interface TableColumn<T = unknown> {
|
|
621
|
+
key: string;
|
|
622
|
+
label: string;
|
|
623
|
+
sortable?: boolean;
|
|
624
|
+
filterable?: boolean;
|
|
625
|
+
truncate?: boolean;
|
|
626
|
+
width?: number;
|
|
627
|
+
align?: 'left' | 'right' | 'center';
|
|
628
|
+
cell?: (row: T) => string;
|
|
629
|
+
hideable?: boolean;
|
|
630
|
+
hidden?: boolean;
|
|
631
|
+
}
|
|
632
|
+
type SortDir = 'asc' | 'desc' | null;
|
|
633
|
+
interface SortChangeEvent {
|
|
634
|
+
key: string;
|
|
635
|
+
dir: SortDir;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
declare class TableComponent<T extends {
|
|
639
|
+
id: string;
|
|
640
|
+
}> {
|
|
641
|
+
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
642
|
+
readonly columns: _angular_core.InputSignal<readonly TableColumn<T>[]>;
|
|
643
|
+
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
644
|
+
/** Opt-in outer border + radius. Off by default so tables flush inside a
|
|
645
|
+
* `<ds-card padding="none">` (workspaces, programs-list) don't double-border.
|
|
646
|
+
* When `true`, the scroll-wrap gets a `var(--border-default)` outline and
|
|
647
|
+
* `var(--radius-md)` radius — useful when the table stands alone in a padded card. */
|
|
648
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
649
|
+
/** false — no loading state.
|
|
650
|
+
* 'skeleton' — first-load placeholder; rows are replaced with shimmer
|
|
651
|
+
* rows that read the global --skeleton-shimmer-x driver.
|
|
652
|
+
* 'overlay' — re-fetch indicator; existing rows stay visible behind
|
|
653
|
+
* a translucent overlay with a centred spinner. */
|
|
654
|
+
readonly loading: _angular_core.InputSignal<false | "skeleton" | "overlay">;
|
|
655
|
+
readonly stickyHeader: _angular_core.InputSignal<boolean>;
|
|
656
|
+
readonly selectedIds: _angular_core.ModelSignal<Set<string>>;
|
|
657
|
+
readonly sortKey: _angular_core.ModelSignal<string | null>;
|
|
658
|
+
readonly sortDir: _angular_core.ModelSignal<SortDir>;
|
|
659
|
+
readonly skeletonRows: _angular_core.InputSignal<number>;
|
|
660
|
+
/** Accessible name for the table (rendered as a visually-hidden caption).
|
|
661
|
+
* Without it, screen-reader users get an unlabelled table. */
|
|
662
|
+
readonly caption: _angular_core.InputSignal<string>;
|
|
663
|
+
/** When true, each row becomes a keyboard-operable control (role=button,
|
|
664
|
+
* tabindex, Enter/Space → rowClick) with an accessible name from the first
|
|
665
|
+
* column. Off by default so non-navigating tables don't advertise a false
|
|
666
|
+
* click affordance. */
|
|
667
|
+
readonly rowInteractive: _angular_core.InputSignal<boolean>;
|
|
668
|
+
readonly rowClick: _angular_core.OutputEmitterRef<T>;
|
|
669
|
+
readonly sortChange: _angular_core.OutputEmitterRef<SortChangeEvent>;
|
|
670
|
+
/** Cell templates supplied as an explicit map instead of (or in addition to)
|
|
671
|
+
* projected `dsCellTemplate` directives. Lets a wrapper component (e.g.
|
|
672
|
+
* ids-data-table) collect the directives itself and pass them down, since
|
|
673
|
+
* content projected through a wrapper's `<ng-content>` is not seen by this
|
|
674
|
+
* component's content query. Entries here override projected ones. */
|
|
675
|
+
readonly cellTemplateMap: _angular_core.InputSignal<Record<string, TemplateRef<{
|
|
676
|
+
$implicit: unknown;
|
|
677
|
+
row: unknown;
|
|
678
|
+
}>>>;
|
|
679
|
+
/** Empty-state template, as an alternative to the `[empty]` content slot —
|
|
680
|
+
* again for wrappers that can't rely on slot re-projection. */
|
|
681
|
+
readonly emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
|
|
682
|
+
protected readonly cellTemplateDirectives: _angular_core.Signal<readonly CellTemplateDirective[]>;
|
|
683
|
+
protected readonly cellTemplates: _angular_core.Signal<Record<string, TemplateRef<{
|
|
684
|
+
$implicit: unknown;
|
|
685
|
+
row: unknown;
|
|
686
|
+
}>>>;
|
|
687
|
+
protected cellTemplate(col: TableColumn<T>): TemplateRef<{
|
|
688
|
+
$implicit: unknown;
|
|
689
|
+
row: unknown;
|
|
690
|
+
}> | null;
|
|
691
|
+
protected readonly tableClasses: _angular_core.Signal<string>;
|
|
692
|
+
protected readonly isSkeletonLoading: _angular_core.Signal<boolean>;
|
|
693
|
+
protected readonly isOverlayLoading: _angular_core.Signal<boolean>;
|
|
694
|
+
protected readonly allSelected: _angular_core.Signal<boolean>;
|
|
695
|
+
protected readonly someSelected: _angular_core.Signal<boolean>;
|
|
696
|
+
protected readonly skeletonArray: _angular_core.Signal<any[]>;
|
|
697
|
+
protected isSelected(row: T): boolean;
|
|
698
|
+
protected onToggleAll(event: Event): void;
|
|
699
|
+
protected onToggleRow(row: T, event: Event): void;
|
|
700
|
+
protected onRowClick(row: T, event: Event): void;
|
|
701
|
+
protected onRowKey(row: T, event: Event): void;
|
|
702
|
+
/** Accessible name for an interactive row, taken from the first column. */
|
|
703
|
+
protected rowAriaLabel(row: T): string;
|
|
704
|
+
/** `aria-sort` value for a header: only meaningful on sortable columns. */
|
|
705
|
+
protected ariaSort(col: TableColumn<T>): 'ascending' | 'descending' | 'none' | null;
|
|
706
|
+
protected onSort(col: TableColumn<T>): void;
|
|
707
|
+
protected headerClasses(col: TableColumn<T>): string;
|
|
708
|
+
protected sortIcon(col: TableColumn<T>): 'sortAsc' | 'sortDesc' | 'sort';
|
|
709
|
+
protected cellValue(row: T, col: TableColumn<T>): string;
|
|
710
|
+
/** Deterministic per-cell width so skeleton rows look organic but stable
|
|
711
|
+
* across re-renders. Mixes column key + row index into one of five widths. */
|
|
712
|
+
protected skeletonWidth(col: TableColumn<T>, rowIndex: number): string;
|
|
713
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent<any>, never>;
|
|
714
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent<any>, "ds-table", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "sortKey": { "alias": "sortKey"; "required": false; "isSignal": true; }; "sortDir": { "alias": "sortDir"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "rowInteractive": { "alias": "rowInteractive"; "required": false; "isSignal": true; }; "cellTemplateMap": { "alias": "cellTemplateMap"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; }, { "selectedIds": "selectedIdsChange"; "sortKey": "sortKeyChange"; "sortDir": "sortDirChange"; "rowClick": "rowClick"; "sortChange": "sortChange"; }, ["cellTemplateDirectives"], ["[empty]", "[bulk-actions]"], true, never>;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
declare class PaginationComponent {
|
|
718
|
+
readonly total: _angular_core.InputSignal<number>;
|
|
719
|
+
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
720
|
+
readonly currentPage: _angular_core.ModelSignal<number>;
|
|
721
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
722
|
+
readonly showLabel: _angular_core.InputSignal<boolean>;
|
|
723
|
+
readonly pageChange: _angular_core.OutputEmitterRef<number>;
|
|
724
|
+
readonly pageSizeChange: _angular_core.OutputEmitterRef<number>;
|
|
725
|
+
protected readonly totalPages: _angular_core.Signal<number>;
|
|
726
|
+
protected readonly pageItems: _angular_core.Signal<(number | "ellipsis")[]>;
|
|
727
|
+
protected readonly rangeLabel: _angular_core.Signal<string>;
|
|
728
|
+
protected readonly sizeOptions: _angular_core.Signal<{
|
|
729
|
+
label: string;
|
|
730
|
+
value: string;
|
|
731
|
+
}[]>;
|
|
732
|
+
protected readonly pageSizeStr: _angular_core.Signal<string>;
|
|
733
|
+
protected goTo(page: number): void;
|
|
734
|
+
protected onSizeChange(value: string): void;
|
|
735
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginationComponent, never>;
|
|
736
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "ds-pagination", never, { "total": { "alias": "total"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; }, { "pageSize": "pageSizeChange"; "currentPage": "currentPageChange"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
type DatePickerMode = 'single' | 'range';
|
|
740
|
+
type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
741
|
+
type DateValue = Date | null;
|
|
742
|
+
type RangeValue = [Date | null, Date | null];
|
|
743
|
+
type DatePickerValue = DateValue | RangeValue;
|
|
744
|
+
|
|
745
|
+
interface DayCell {
|
|
746
|
+
date: Date;
|
|
747
|
+
day: number;
|
|
748
|
+
inMonth: boolean;
|
|
749
|
+
isToday: boolean;
|
|
750
|
+
inRange: boolean;
|
|
751
|
+
isRangeStart: boolean;
|
|
752
|
+
isRangeEnd: boolean;
|
|
753
|
+
isSelected: boolean;
|
|
754
|
+
}
|
|
755
|
+
declare class DatePickerComponent {
|
|
756
|
+
private readonly overlay;
|
|
757
|
+
private readonly vcr;
|
|
758
|
+
readonly mode: _angular_core.InputSignal<DatePickerMode>;
|
|
759
|
+
readonly size: _angular_core.InputSignal<DatePickerSize>;
|
|
760
|
+
readonly value: _angular_core.ModelSignal<Date | RangeValue | null>;
|
|
761
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
762
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
763
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
764
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
765
|
+
readonly optional: _angular_core.InputSignal<boolean>;
|
|
766
|
+
/** Accessible name when no visible `label` is provided. */
|
|
767
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
768
|
+
protected readonly uid: string;
|
|
769
|
+
protected readonly labelId: string;
|
|
770
|
+
protected readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
771
|
+
/** The day that holds keyboard focus in the open grid (roving tabindex). */
|
|
772
|
+
protected readonly gridFocus: _angular_core.WritableSignal<Date | null>;
|
|
773
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
774
|
+
protected dayKey(d: Date): string;
|
|
775
|
+
protected isFocusDay(cell: DayCell): boolean;
|
|
776
|
+
/** Arrow-key roving navigation across the calendar grid (APG date grid). */
|
|
777
|
+
protected onGridKeydown(event: KeyboardEvent, cell: DayCell): void;
|
|
778
|
+
private addDays;
|
|
779
|
+
private addMonths;
|
|
780
|
+
private focusGridDay;
|
|
781
|
+
/** Full, unambiguous date for a day cell's accessible name. */
|
|
782
|
+
protected dayLabel(cell: DayCell): string;
|
|
783
|
+
protected readonly triggerClasses: _angular_core.Signal<string>;
|
|
784
|
+
protected readonly viewMonth: _angular_core.WritableSignal<Date>;
|
|
785
|
+
protected readonly trigger: _angular_core.Signal<ElementRef<HTMLButtonElement>>;
|
|
786
|
+
protected readonly panelTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
787
|
+
private overlayRef;
|
|
788
|
+
protected readonly displayLabel: _angular_core.Signal<string>;
|
|
789
|
+
protected readonly monthLabel: _angular_core.Signal<string>;
|
|
790
|
+
protected readonly daysGrid: _angular_core.Signal<DayCell[]>;
|
|
791
|
+
private getRangeContext;
|
|
792
|
+
protected open(): void;
|
|
793
|
+
protected close(): void;
|
|
794
|
+
protected prevMonth(): void;
|
|
795
|
+
protected nextMonth(): void;
|
|
796
|
+
protected selectDay(cell: DayCell): void;
|
|
797
|
+
protected cellClasses(cell: DayCell): string;
|
|
798
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
799
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "ds-date-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
interface BreadcrumbItem {
|
|
803
|
+
label?: string;
|
|
804
|
+
href?: string;
|
|
805
|
+
icon?: IconName;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
declare class BreadcrumbsComponent {
|
|
809
|
+
private readonly cfg;
|
|
810
|
+
private readonly svc;
|
|
811
|
+
/**
|
|
812
|
+
* When omitted, the component reads from `BreadcrumbsService.items`.
|
|
813
|
+
* Pass an explicit array to opt out of the service (per-page override).
|
|
814
|
+
*/
|
|
815
|
+
readonly items: _angular_core.InputSignal<BreadcrumbItem[] | null>;
|
|
816
|
+
readonly separator: _angular_core.InputSignal<IconName | null>;
|
|
817
|
+
readonly clickable: _angular_core.InputSignal<boolean | null>;
|
|
818
|
+
readonly navigate: _angular_core.OutputEmitterRef<BreadcrumbItem>;
|
|
819
|
+
protected readonly resolvedItems: _angular_core.Signal<BreadcrumbItem[]>;
|
|
820
|
+
protected readonly effectiveSeparator: _angular_core.Signal<IconName>;
|
|
821
|
+
protected readonly effectiveClickable: _angular_core.Signal<boolean>;
|
|
822
|
+
protected onNav(event: Event, item: BreadcrumbItem): void;
|
|
823
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
|
|
824
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbsComponent, "ds-breadcrumbs", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "navigate": "navigate"; }, never, never, true, never>;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/**
|
|
828
|
+
* Library-level breadcrumb state. Apps push items either programmatically
|
|
829
|
+
* (page constructor / effect) or via a router-data driver (see app docs).
|
|
830
|
+
* `<ds-breadcrumbs>` reads from here when no `[items]` input is provided.
|
|
831
|
+
*/
|
|
832
|
+
declare class BreadcrumbsService {
|
|
833
|
+
private readonly _items;
|
|
834
|
+
readonly items: _angular_core.Signal<BreadcrumbItem[]>;
|
|
835
|
+
set(items: BreadcrumbItem[]): void;
|
|
836
|
+
push(item: BreadcrumbItem): void;
|
|
837
|
+
pop(): void;
|
|
838
|
+
replaceLast(item: BreadcrumbItem): void;
|
|
839
|
+
clear(): void;
|
|
840
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsService, never>;
|
|
841
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<BreadcrumbsService>;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
declare class SidenavComponent {
|
|
845
|
+
readonly collapsed: _angular_core.InputSignal<boolean>;
|
|
846
|
+
readonly brand: _angular_core.InputSignal<string>;
|
|
847
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidenavComponent, never>;
|
|
848
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavComponent, "ds-sidenav", never, { "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
declare class SidenavGroupComponent {
|
|
852
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
853
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
854
|
+
readonly expandable: _angular_core.InputSignal<boolean>;
|
|
855
|
+
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
856
|
+
protected toggle(): void;
|
|
857
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidenavGroupComponent, never>;
|
|
858
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavGroupComponent, "ds-sidenav-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["[ds-group-icon]", "*"], true, never>;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
declare class SidenavItemComponent {
|
|
862
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
863
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
864
|
+
readonly href: _angular_core.InputSignal<string>;
|
|
865
|
+
readonly routerLink: _angular_core.InputSignal<string | readonly unknown[] | null>;
|
|
866
|
+
readonly active: _angular_core.InputSignal<boolean>;
|
|
867
|
+
readonly badge: _angular_core.InputSignal<number | null>;
|
|
868
|
+
readonly hasAlert: _angular_core.InputSignal<boolean>;
|
|
869
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
870
|
+
protected readonly linkClasses: _angular_core.Signal<string>;
|
|
871
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidenavItemComponent, never>;
|
|
872
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavItemComponent, "ds-sidenav-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "hasAlert": { "alias": "hasAlert"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["[icon]", "[trailing]"], true, never>;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
interface SidenavItemModel {
|
|
876
|
+
id: string;
|
|
877
|
+
label: string;
|
|
878
|
+
href?: string;
|
|
879
|
+
active?: boolean;
|
|
880
|
+
badge?: number | null;
|
|
881
|
+
hasAlert?: boolean;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
declare class TopBarComponent {
|
|
885
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TopBarComponent, never>;
|
|
886
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TopBarComponent, "ds-topbar", never, {}, {}, never, ["[title]", "[breadcrumbs]", "[search]", "[actions]"], true, never>;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
declare class PageHeaderComponent {
|
|
890
|
+
readonly eyebrow: _angular_core.InputSignal<string>;
|
|
891
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
892
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
893
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
894
|
+
readonly divider: _angular_core.InputSignal<boolean>;
|
|
895
|
+
readonly metaDivider: _angular_core.InputSignal<boolean>;
|
|
896
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
897
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageHeaderComponent, never>;
|
|
898
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeaderComponent, "ds-page-header", never, { "eyebrow": { "alias": "eyebrow"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; "metaDivider": { "alias": "metaDivider"; "required": false; "isSignal": true; }; }, {}, never, ["[breadcrumbs]", "[title-badge]", "[meta]", "[actions]", "[tabs]"], true, never>;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
type ModalSize = 'sm' | 'md' | 'lg';
|
|
902
|
+
|
|
903
|
+
declare class ModalComponent {
|
|
904
|
+
private readonly doc;
|
|
905
|
+
protected readonly preview: DsStaticPreview;
|
|
906
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
907
|
+
readonly size: _angular_core.InputSignal<ModalSize>;
|
|
908
|
+
readonly danger: _angular_core.InputSignal<boolean>;
|
|
909
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
910
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
911
|
+
readonly confirmed: _angular_core.OutputEmitterRef<void>;
|
|
912
|
+
constructor();
|
|
913
|
+
protected onClose(): void;
|
|
914
|
+
protected onBackdrop(event: MouseEvent): void;
|
|
915
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
916
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "ds-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; "confirmed": "confirmed"; }, never, ["[body]", "[impact]", "[actions]"], true, [{ directive: typeof DsStaticPreview; inputs: { "staticPreview": "staticPreview"; }; outputs: {}; }]>;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
declare class ModalCardComponent {
|
|
920
|
+
readonly size: _angular_core.InputSignal<ModalSize>;
|
|
921
|
+
readonly danger: _angular_core.InputSignal<boolean>;
|
|
922
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
923
|
+
readonly showClose: _angular_core.InputSignal<boolean>;
|
|
924
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
925
|
+
protected readonly titleId: string;
|
|
926
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
927
|
+
protected onClose(): void;
|
|
928
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalCardComponent, never>;
|
|
929
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalCardComponent, "ds-modal-card", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["[body]", "[impact]", "[actions]"], true, never>;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
type BannerVariant = 'info' | 'success' | 'warning' | 'severe' | 'error' | 'neutral';
|
|
933
|
+
|
|
934
|
+
declare class BannerComponent {
|
|
935
|
+
readonly variant: _angular_core.InputSignal<BannerVariant>;
|
|
936
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
937
|
+
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
938
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
939
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
940
|
+
readonly layout: _angular_core.InputSignal<"stacked" | "row">;
|
|
941
|
+
readonly accentRail: _angular_core.InputSignal<boolean>;
|
|
942
|
+
readonly dismissed: _angular_core.OutputEmitterRef<void>;
|
|
943
|
+
protected get noRail(): boolean;
|
|
944
|
+
protected get ariaRole(): 'alert' | 'status';
|
|
945
|
+
protected get ariaLive(): 'assertive' | 'polite';
|
|
946
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
947
|
+
protected readonly defaultIcon: _angular_core.Signal<IconName>;
|
|
948
|
+
protected onDismiss(): void;
|
|
949
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BannerComponent, never>;
|
|
950
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BannerComponent, "ds-banner", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "accentRail": { "alias": "accentRail"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*", "[actions]"], true, never>;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
type DropzoneFileState = 'uploading' | 'success' | 'error';
|
|
954
|
+
interface DropzoneFile {
|
|
955
|
+
id: string;
|
|
956
|
+
name: string;
|
|
957
|
+
size: number;
|
|
958
|
+
state: DropzoneFileState;
|
|
959
|
+
progress: number;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
declare class DropzoneComponent {
|
|
963
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
964
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
965
|
+
readonly files: _angular_core.ModelSignal<DropzoneFile[]>;
|
|
966
|
+
/** Disables the dropzone: blocks all file-picking interactions and signals unavailability. */
|
|
967
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
968
|
+
/** Restricts the dropzone to a single file; narrows the panel to `--col-cap-text`. */
|
|
969
|
+
readonly single: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
970
|
+
protected readonly dragOver: _angular_core.WritableSignal<boolean>;
|
|
971
|
+
readonly filesAdded: _angular_core.OutputEmitterRef<File[]>;
|
|
972
|
+
readonly fileRemoved: _angular_core.OutputEmitterRef<DropzoneFile>;
|
|
973
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
974
|
+
protected onDragOver(event: DragEvent): void;
|
|
975
|
+
protected onDragLeave(): void;
|
|
976
|
+
protected onDrop(event: DragEvent): void;
|
|
977
|
+
protected onPickerChange(event: Event): void;
|
|
978
|
+
protected onRemove(file: DropzoneFile): void;
|
|
979
|
+
protected formatSize(bytes: number): string;
|
|
980
|
+
protected fileIcon(state: DropzoneFile['state']): 'file' | 'check' | 'error';
|
|
981
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropzoneComponent, never>;
|
|
982
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropzoneComponent, "ds-dropzone", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "single": { "alias": "single"; "required": false; "isSignal": true; }; }, { "files": "filesChange"; "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; }, never, ["[hint]"], true, never>;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
declare class MenuComponent {
|
|
986
|
+
private readonly items;
|
|
987
|
+
/** Index of the roving-focus item — the single item reachable via Tab. */
|
|
988
|
+
private readonly activeIndex;
|
|
989
|
+
constructor();
|
|
990
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
991
|
+
private typeAhead;
|
|
992
|
+
private focusItem;
|
|
993
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
|
|
994
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "ds-menu", never, {}, {}, ["items"], ["*"], true, never>;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
declare class MenuItemComponent {
|
|
998
|
+
private readonly closeRef;
|
|
999
|
+
private readonly button;
|
|
1000
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
1001
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1002
|
+
readonly danger: _angular_core.InputSignal<boolean>;
|
|
1003
|
+
readonly pressed: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
1004
|
+
/** Roving tabindex, owned by ds-menu — exactly one item is tabbable (0), the
|
|
1005
|
+
* rest -1. Defaults true so a standalone item (outside ds-menu) stays
|
|
1006
|
+
* reachable. */
|
|
1007
|
+
readonly tabbable: _angular_core.WritableSignal<boolean>;
|
|
1008
|
+
/** Move keyboard focus to this item's control. */
|
|
1009
|
+
focus(): void;
|
|
1010
|
+
/** Whether `node` lives inside this item's control (used by ds-menu to find
|
|
1011
|
+
* the currently focused item during keyboard nav). */
|
|
1012
|
+
contains(node: Node | null): boolean;
|
|
1013
|
+
/** Visible label text — used by ds-menu's type-ahead. */
|
|
1014
|
+
label(): string;
|
|
1015
|
+
protected onClick(event: MouseEvent): void;
|
|
1016
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItemComponent, never>;
|
|
1017
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItemComponent, "ds-menu-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; }, { "pressed": "pressed"; }, never, ["[icon]", "*"], true, never>;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
type EmptyStateVariant = 'none' | 'loading' | 'error' | 'locked' | 'success';
|
|
1021
|
+
|
|
1022
|
+
declare class EmptyStateComponent {
|
|
1023
|
+
readonly variant: _angular_core.InputSignal<EmptyStateVariant>;
|
|
1024
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
1025
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1026
|
+
readonly body: _angular_core.InputSignal<string>;
|
|
1027
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
1028
|
+
protected readonly resolvedIcon: _angular_core.Signal<IconName>;
|
|
1029
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
|
|
1030
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "ds-empty-state", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "body": { "alias": "body"; "required": false; "isSignal": true; }; }, {}, never, ["[actions]"], true, never>;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
type ProgressVariant = 'default' | 'success' | 'warn' | 'error' | 'indeterminate';
|
|
1034
|
+
|
|
1035
|
+
declare class ProgressComponent {
|
|
1036
|
+
readonly value: _angular_core.InputSignal<number>;
|
|
1037
|
+
readonly variant: _angular_core.InputSignal<ProgressVariant>;
|
|
1038
|
+
/** Accessible name for the progress bar (e.g. "Upload progress"). */
|
|
1039
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
1040
|
+
protected readonly clampedValue: _angular_core.Signal<number>;
|
|
1041
|
+
protected readonly isIndet: _angular_core.Signal<boolean>;
|
|
1042
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressComponent, never>;
|
|
1043
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressComponent, "ds-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
declare class AccordionComponent {
|
|
1047
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionComponent, never>;
|
|
1048
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionComponent, "ds-accordion", never, {}, {}, never, ["*"], true, never>;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
declare class AccordionItemComponent {
|
|
1052
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1053
|
+
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
1054
|
+
protected readonly uid: string;
|
|
1055
|
+
protected readonly headId: string;
|
|
1056
|
+
protected readonly bodyId: string;
|
|
1057
|
+
protected toggle(): void;
|
|
1058
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
|
|
1059
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionItemComponent, "ds-accordion-item", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["[badge]", "*"], true, never>;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
declare class StepperComponent {
|
|
1063
|
+
readonly steps: _angular_core.InputSignal<readonly string[]>;
|
|
1064
|
+
readonly current: _angular_core.InputSignal<number>;
|
|
1065
|
+
protected stepState(i: number): 'completed' | 'current' | 'upcoming';
|
|
1066
|
+
protected nodeClass(i: number): string;
|
|
1067
|
+
protected barClass(i: number): string;
|
|
1068
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepperComponent, never>;
|
|
1069
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepperComponent, "ds-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
1073
|
+
|
|
1074
|
+
declare class TooltipDirective implements OnDestroy {
|
|
1075
|
+
private readonly overlay;
|
|
1076
|
+
private readonly host;
|
|
1077
|
+
readonly dsTooltip: _angular_core.InputSignal<string>;
|
|
1078
|
+
readonly dsTooltipPlacement: _angular_core.InputSignal<TooltipPlacement>;
|
|
1079
|
+
readonly dsTooltipDelay: _angular_core.InputSignal<number>;
|
|
1080
|
+
private ref;
|
|
1081
|
+
private timer;
|
|
1082
|
+
private readonly tipId;
|
|
1083
|
+
protected onOpen(): void;
|
|
1084
|
+
protected onClose(): void;
|
|
1085
|
+
protected onEscape(): void;
|
|
1086
|
+
private show;
|
|
1087
|
+
private positionFor;
|
|
1088
|
+
ngOnDestroy(): void;
|
|
1089
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
1090
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[dsTooltip]", never, { "dsTooltip": { "alias": "dsTooltip"; "required": false; "isSignal": true; }; "dsTooltipPlacement": { "alias": "dsTooltipPlacement"; "required": false; "isSignal": true; }; "dsTooltipDelay": { "alias": "dsTooltipDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
declare class TooltipPanelComponent {
|
|
1094
|
+
readonly text: _angular_core.InputSignal<string>;
|
|
1095
|
+
readonly placement: _angular_core.InputSignal<TooltipPlacement>;
|
|
1096
|
+
readonly panelId: _angular_core.InputSignal<string>;
|
|
1097
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipPanelComponent, never>;
|
|
1098
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipPanelComponent, "ds-tooltip-panel", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": true; "isSignal": true; }; "panelId": { "alias": "panelId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
type PopoverAlign = 'start' | 'end';
|
|
1102
|
+
declare class PopoverComponent implements OnDestroy, DsOverlayCloseRef {
|
|
1103
|
+
private readonly overlay;
|
|
1104
|
+
private readonly vcr;
|
|
1105
|
+
protected readonly preview: DsStaticPreview;
|
|
1106
|
+
protected readonly panelTpl: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
1107
|
+
private ref;
|
|
1108
|
+
readonly align: _angular_core.InputSignal<PopoverAlign>;
|
|
1109
|
+
/** ARIA role for the panel (e.g. 'dialog' for interactive popovers). When set,
|
|
1110
|
+
* the panel also traps focus, auto-captures it into the panel on open, and
|
|
1111
|
+
* restores it to the trigger on close (Escape or backdrop). Leave null for
|
|
1112
|
+
* plain, non-interactive text popovers. */
|
|
1113
|
+
readonly panelRole: _angular_core.InputSignal<string | null>;
|
|
1114
|
+
/** Accessible name for the panel; pair with `panelRole`. */
|
|
1115
|
+
readonly panelLabel: _angular_core.InputSignal<string | null>;
|
|
1116
|
+
/** Open/closed state — for callers binding `aria-expanded` on the trigger. */
|
|
1117
|
+
readonly opened: _angular_core.WritableSignal<boolean>;
|
|
1118
|
+
toggle(trigger: HTMLElement): void;
|
|
1119
|
+
close(): void;
|
|
1120
|
+
ngOnDestroy(): void;
|
|
1121
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
|
|
1122
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "ds-popover", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "panelRole": { "alias": "panelRole"; "required": false; "isSignal": true; }; "panelLabel": { "alias": "panelLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof DsStaticPreview; inputs: { "staticPreview": "staticPreview"; }; outputs: {}; }]>;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
type ToastVariant = 'info' | 'success' | 'warning' | 'error';
|
|
1126
|
+
interface ToastAction {
|
|
1127
|
+
readonly label: string;
|
|
1128
|
+
readonly handler: () => void;
|
|
1129
|
+
}
|
|
1130
|
+
interface ToastOptions {
|
|
1131
|
+
readonly title?: string;
|
|
1132
|
+
readonly body: string;
|
|
1133
|
+
readonly variant?: ToastVariant;
|
|
1134
|
+
readonly dismissible?: boolean;
|
|
1135
|
+
readonly durationMs?: number;
|
|
1136
|
+
readonly action?: ToastAction;
|
|
1137
|
+
}
|
|
1138
|
+
interface ToastRef {
|
|
1139
|
+
readonly id: number;
|
|
1140
|
+
dismiss(): void;
|
|
1141
|
+
}
|
|
1142
|
+
interface ToastEntry {
|
|
1143
|
+
readonly id: number;
|
|
1144
|
+
readonly title?: string;
|
|
1145
|
+
readonly body: string;
|
|
1146
|
+
readonly variant: ToastVariant;
|
|
1147
|
+
readonly dismissible: boolean;
|
|
1148
|
+
readonly action?: ToastAction;
|
|
1149
|
+
}
|
|
1150
|
+
type DsToastHorizontalPosition = 'left' | 'center' | 'right';
|
|
1151
|
+
type DsToastVerticalPosition = 'top' | 'bottom';
|
|
1152
|
+
interface DsToastPosition {
|
|
1153
|
+
readonly horizontalPosition: DsToastHorizontalPosition;
|
|
1154
|
+
readonly verticalPosition: DsToastVerticalPosition;
|
|
1155
|
+
readonly offset: string;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
declare class ToastService {
|
|
1159
|
+
private readonly overlay;
|
|
1160
|
+
private readonly position;
|
|
1161
|
+
private overlayRef;
|
|
1162
|
+
private regionRef;
|
|
1163
|
+
private nextId;
|
|
1164
|
+
show(opts: ToastOptions): ToastRef;
|
|
1165
|
+
dismissAll(): void;
|
|
1166
|
+
private ensureRegion;
|
|
1167
|
+
private buildPositionStrategy;
|
|
1168
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastService, never>;
|
|
1169
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ToastService>;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
declare class ToastRegionComponent {
|
|
1173
|
+
protected readonly entries: _angular_core.WritableSignal<readonly ToastEntry[]>;
|
|
1174
|
+
protected readonly leaving: _angular_core.WritableSignal<ReadonlySet<number>>;
|
|
1175
|
+
add(entry: ToastEntry): void;
|
|
1176
|
+
remove(id: number): void;
|
|
1177
|
+
protected isLeaving(id: number): boolean;
|
|
1178
|
+
clear(): void;
|
|
1179
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastRegionComponent, never>;
|
|
1180
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastRegionComponent, "ds-toast-region", never, {}, {}, never, never, true, never>;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Single toast pill. Consumed by ToastRegion for service-driven runtime toasts
|
|
1185
|
+
* AND by static showcases that need to display a toast specimen inline.
|
|
1186
|
+
*/
|
|
1187
|
+
declare class ToastComponent {
|
|
1188
|
+
readonly variant: _angular_core.InputSignal<ToastVariant>;
|
|
1189
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1190
|
+
readonly message: _angular_core.InputSignal<string>;
|
|
1191
|
+
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
1192
|
+
readonly icon: _angular_core.InputSignal<IconName | null>;
|
|
1193
|
+
readonly action: _angular_core.InputSignal<ToastAction | null>;
|
|
1194
|
+
readonly dismissed: _angular_core.OutputEmitterRef<void>;
|
|
1195
|
+
protected onAction(action: ToastAction): void;
|
|
1196
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
1197
|
+
/** Errors/warnings interrupt (assertive); info/success wait their turn. */
|
|
1198
|
+
protected readonly role: _angular_core.Signal<"alert" | "status">;
|
|
1199
|
+
protected readonly defaultIcon: _angular_core.Signal<IconName>;
|
|
1200
|
+
protected onDismiss(): void;
|
|
1201
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
1202
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ds-toast", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*", "[actions]"], true, never>;
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
declare const DS_TOAST_POSITION: InjectionToken<DsToastPosition>;
|
|
1206
|
+
declare const DS_TOAST_POSITION_DEFAULT: DsToastPosition;
|
|
1207
|
+
|
|
1208
|
+
type DrawerSize = 'md' | 'lg';
|
|
1209
|
+
|
|
1210
|
+
declare class DrawerComponent {
|
|
1211
|
+
private readonly doc;
|
|
1212
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1213
|
+
readonly size: _angular_core.InputSignal<DrawerSize>;
|
|
1214
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1215
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
1216
|
+
protected readonly titleId: string;
|
|
1217
|
+
protected readonly classes: _angular_core.Signal<"drawer lg" | "drawer">;
|
|
1218
|
+
constructor();
|
|
1219
|
+
protected onClose(): void;
|
|
1220
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
|
|
1221
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "ds-drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["[drawer-body]", "[drawer-footer]"], true, never>;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
/** Bottom-anchored sheet — the mobile sibling of ds-drawer. Closes on scrim
|
|
1225
|
+
* tap, Escape, or a downward drag on the grab strip. While open it locks
|
|
1226
|
+
* body scroll. On wide viewports the panel is capped by
|
|
1227
|
+
* --ds-bottom-sheet-maxw and centred; prefer ds-modal / ds-drawer for
|
|
1228
|
+
* desktop-first layouts. position: fixed resolves against the nearest
|
|
1229
|
+
* ancestor containing block, so framed hosts contain the sheet. */
|
|
1230
|
+
declare class BottomSheetComponent {
|
|
1231
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1232
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1233
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
1234
|
+
private readonly doc;
|
|
1235
|
+
private readonly sheetRef;
|
|
1236
|
+
protected readonly dragOffset: _angular_core.WritableSignal<number | null>;
|
|
1237
|
+
private dragStartY;
|
|
1238
|
+
private lastMoveY;
|
|
1239
|
+
private lastMoveTime;
|
|
1240
|
+
private velocity;
|
|
1241
|
+
private previousBodyOverflow;
|
|
1242
|
+
constructor();
|
|
1243
|
+
protected close(): void;
|
|
1244
|
+
protected onEscape(): void;
|
|
1245
|
+
protected stop(event: Event): void;
|
|
1246
|
+
protected onGrabStart(event: PointerEvent): void;
|
|
1247
|
+
protected onGrabMove(event: PointerEvent): void;
|
|
1248
|
+
protected onGrabEnd(): void;
|
|
1249
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomSheetComponent, never>;
|
|
1250
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomSheetComponent, "ds-bottom-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[actions]"], true, never>;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
type TagVariant = 'solid' | 'neutral';
|
|
1254
|
+
|
|
1255
|
+
declare class TagComponent {
|
|
1256
|
+
readonly variant: _angular_core.InputSignal<TagVariant>;
|
|
1257
|
+
readonly closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1258
|
+
readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1259
|
+
readonly selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1260
|
+
/** Accessible label for the close button (e.g. "Remove Source filter"). */
|
|
1261
|
+
readonly closeLabel: _angular_core.InputSignal<string>;
|
|
1262
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
1263
|
+
readonly toggled: _angular_core.OutputEmitterRef<void>;
|
|
1264
|
+
protected onClick(): void;
|
|
1265
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
1266
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ds-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "toggled": "toggled"; }, never, ["*"], true, never>;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
declare class W3wComponent {
|
|
1270
|
+
readonly prefix: _angular_core.InputSignal<string>;
|
|
1271
|
+
readonly address: _angular_core.InputSignal<string>;
|
|
1272
|
+
readonly copyable: _angular_core.InputSignal<boolean>;
|
|
1273
|
+
readonly copied: _angular_core.OutputEmitterRef<string>;
|
|
1274
|
+
protected onKeyActivate(event: Event): void;
|
|
1275
|
+
protected onCopy(): void;
|
|
1276
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<W3wComponent, never>;
|
|
1277
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<W3wComponent, "ds-w3w", never, { "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "address": { "alias": "address"; "required": true; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; }, { "copied": "copied"; }, never, never, true, never>;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
type PageFooterVariant = 'default' | 'compact' | 'save';
|
|
1281
|
+
|
|
1282
|
+
declare class PageFooterComponent {
|
|
1283
|
+
readonly variant: _angular_core.InputSignal<PageFooterVariant>;
|
|
1284
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageFooterComponent, never>;
|
|
1285
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageFooterComponent, "ds-page-footer", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[brand]", "[nav]", "[actions]", "*"], true, never>;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
interface ComboboxOption<T = unknown> {
|
|
1289
|
+
readonly value: T;
|
|
1290
|
+
readonly label: string;
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
declare class ComboboxComponent<T = unknown> {
|
|
1294
|
+
private readonly overlay;
|
|
1295
|
+
private readonly vcr;
|
|
1296
|
+
readonly options: _angular_core.InputSignal<readonly ComboboxOption<T>[]>;
|
|
1297
|
+
readonly value: _angular_core.ModelSignal<T | readonly T[] | null>;
|
|
1298
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1299
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1300
|
+
/** Accessible name for the combobox input. */
|
|
1301
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
1302
|
+
protected readonly query: _angular_core.WritableSignal<string>;
|
|
1303
|
+
protected readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
1304
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
1305
|
+
protected readonly trigger: _angular_core.Signal<ElementRef<HTMLElement>>;
|
|
1306
|
+
protected readonly filterInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
|
|
1307
|
+
protected readonly panelTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
1308
|
+
private overlayRef;
|
|
1309
|
+
protected readonly uid: string;
|
|
1310
|
+
protected readonly listboxId: string;
|
|
1311
|
+
protected optionId(index: number): string;
|
|
1312
|
+
protected readonly activeDescendant: _angular_core.Signal<string | null>;
|
|
1313
|
+
protected readonly filteredOptions: _angular_core.Signal<readonly ComboboxOption<T>[]>;
|
|
1314
|
+
protected readonly selectedTags: _angular_core.Signal<ComboboxOption<T>[]>;
|
|
1315
|
+
protected readonly displayLabel: _angular_core.Signal<string>;
|
|
1316
|
+
protected readonly placeholderText: _angular_core.Signal<string>;
|
|
1317
|
+
protected isSelected(option: ComboboxOption<T>): boolean;
|
|
1318
|
+
protected optionClass(option: ComboboxOption<T>): string;
|
|
1319
|
+
protected onTriggerClick(): void;
|
|
1320
|
+
protected togglePanel(event: MouseEvent): void;
|
|
1321
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1322
|
+
protected openPanel(): void;
|
|
1323
|
+
protected close(): void;
|
|
1324
|
+
protected onFilter(event: Event): void;
|
|
1325
|
+
protected onPick(option: ComboboxOption<T>): void;
|
|
1326
|
+
protected remove(target: T): void;
|
|
1327
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComboboxComponent<any>, never>;
|
|
1328
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboboxComponent<any>, "ds-combobox", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
type DividerVariant = 'default' | 'strong' | 'vertical' | 'label';
|
|
1332
|
+
/**
|
|
1333
|
+
* Vertical breathing room around the divider. `md` is the safe default for
|
|
1334
|
+
* page-content separators. Use `sm` inside dense lists (sidenav, menus) and
|
|
1335
|
+
* `none` when the parent layout already owns the gap.
|
|
1336
|
+
*/
|
|
1337
|
+
type DividerSpacing = 'none' | 'sm' | 'md' | 'lg';
|
|
1338
|
+
|
|
1339
|
+
declare class DividerComponent {
|
|
1340
|
+
readonly variant: _angular_core.InputSignal<DividerVariant>;
|
|
1341
|
+
readonly spacing: _angular_core.InputSignal<DividerSpacing>;
|
|
1342
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
1343
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DividerComponent, "ds-divider", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
declare class SkeletonComponent {
|
|
1347
|
+
readonly width: _angular_core.InputSignal<string | undefined>;
|
|
1348
|
+
readonly height: _angular_core.InputSignal<string | undefined>;
|
|
1349
|
+
readonly circle: _angular_core.InputSignal<boolean>;
|
|
1350
|
+
readonly inline: _angular_core.InputSignal<boolean>;
|
|
1351
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
|
|
1352
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "ds-skeleton", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "circle": { "alias": "circle"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
1356
|
+
|
|
1357
|
+
declare class SpinnerComponent {
|
|
1358
|
+
readonly size: _angular_core.InputSignal<SpinnerSize>;
|
|
1359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
1360
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "ds-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
declare class CheckboxComponent {
|
|
1364
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1365
|
+
readonly indeterminate: _angular_core.InputSignal<boolean>;
|
|
1366
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1367
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
1368
|
+
readonly inputId: _angular_core.InputSignal<string | null>;
|
|
1369
|
+
protected onChange(event: Event): void;
|
|
1370
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
1371
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ds-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
declare class RadioComponent {
|
|
1375
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1376
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1377
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
1378
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
1379
|
+
readonly inputId: _angular_core.InputSignal<string | null>;
|
|
1380
|
+
protected onChange(event: Event): void;
|
|
1381
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
|
|
1382
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "ds-radio", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
declare class SwitchComponent {
|
|
1386
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1387
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1388
|
+
readonly name: _angular_core.InputSignal<string | null>;
|
|
1389
|
+
readonly variant: _angular_core.InputSignal<"error" | "success" | "default">;
|
|
1390
|
+
readonly inputId: _angular_core.InputSignal<string | null>;
|
|
1391
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
1392
|
+
protected onChange(event: Event): void;
|
|
1393
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
1394
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "ds-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
export { AccordionComponent, AccordionItemComponent, AvatarComponent, AvatarGroupComponent, BadgeComponent, BannerComponent, BottomSheetComponent, BreadcrumbsComponent, BreadcrumbsService, ButtonComponent, CardComponent, CellTemplateDirective, CheckboxComponent, ComboboxComponent, DS_CONFIG, DS_ICON_REGISTRY, DS_TOAST_POSITION, DS_TOAST_POSITION_DEFAULT, DatePickerComponent, DividerComponent, DrawerComponent, DropdownComponent, DropzoneComponent, DsOverlayCloseRef, DsStaticPreview, EmptyStateComponent, ICONS, IconButtonComponent, IconComponent, InputComponent, MenuComponent, MenuItemComponent, ModalCardComponent, ModalComponent, NumberStepperComponent, PageFooterComponent, PageHeaderComponent, PaginationComponent, PopoverComponent, ProgressComponent, RadioComponent, SearchComponent, SelectComponent, SidenavComponent, SidenavGroupComponent, SidenavItemComponent, SkeletonComponent, SpinnerComponent, StatComponent, StatusDotComponent, StepperComponent, SwitchComponent, TabComponent, TableComponent, TabsComponent, TagComponent, TextareaComponent, ToastComponent, ToastRegionComponent, ToastService, TooltipDirective, TooltipPanelComponent, TopBarComponent, W3wComponent, isSelectOptionGroup, provideDsConfig, provideDsIcons };
|
|
1398
|
+
export type { AvatarSize, BadgeLifecycle, BadgeSemantic, BadgeVariant, BannerVariant, BreadcrumbItem, ButtonSize, ButtonType, ButtonVariant, CardElevation, CardPadding, ComboboxOption, DatePickerMode, DatePickerValue, DateValue, DividerVariant, DrawerSize, DropdownOption, DropdownSize, DropzoneFile, DropzoneFileState, DsConfig, DsIconRegistry, DsToastHorizontalPosition, DsToastPosition, DsToastVerticalPosition, EmptyStateVariant, IconButtonSize, IconButtonType, IconButtonVariant, IconName, InputSize, InputType, ModalSize, NumberStepperSize, PageFooterVariant, ProgressVariant, RangeValue, SelectItem, SelectOption, SelectOptionGroup, SelectSize, SidenavItemModel, SortChangeEvent, SortDir, SpinnerSize, StatusValue, TableColumn, TabsVariant, TagVariant, TextareaResize, TextareaSize, ToastAction, ToastEntry, ToastOptions, ToastRef, ToastVariant, TooltipPlacement };
|