@akcelik/strct 6.0.2 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/akcelik-strct.mjs +419 -44
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/_forms.scss +29 -0
- package/styles/_tokens.scss +30 -0
- package/types/akcelik-strct.d.ts +253 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akcelik/strct",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
|
|
5
5
|
"author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
package/styles/_forms.scss
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
// (which simply applies the `.strct-control` class). Kept in the theme layer so
|
|
3
3
|
// inputs / selects / textareas share one definition.
|
|
4
4
|
|
|
5
|
+
/* One height per size, for every single-line control.
|
|
6
|
+
*
|
|
7
|
+
* Each control used to work its own height out from its padding, its
|
|
8
|
+
* line-height and whatever it held: measured in Chrome, a field stood 34.9px
|
|
9
|
+
* (13px over a 1.3 line, plus 8+8 of padding and the border) beside a small
|
|
10
|
+
* button's 22px, a searchbox's 28px and a segmented control's 31px. Nothing
|
|
11
|
+
* could make them agree, because there was no height to agree on, and only
|
|
12
|
+
* two controls even had a `size` (FR-63-01). Now the height is the token,
|
|
13
|
+
* the box is border-box and the vertical padding is zero, so what a control
|
|
14
|
+
* holds — an icon, a spinner, a longer word — cannot change how tall it is.
|
|
15
|
+
*
|
|
16
|
+
* `--control-h` is what a control without a size uses; `size` and
|
|
17
|
+
* `[strctControlSize]` set it to one of the three below. A whole application
|
|
18
|
+
* changes density by overriding the tokens in one place.
|
|
19
|
+
*
|
|
20
|
+
* A textarea is not a single-line control and keeps its own height. */
|
|
5
21
|
.strct-control {
|
|
6
22
|
display: block;
|
|
7
23
|
width: 100%;
|
|
@@ -66,6 +82,19 @@ select.strct-control {
|
|
|
66
82
|
background-position: right 9px center;
|
|
67
83
|
}
|
|
68
84
|
|
|
85
|
+
.strct-control:not(textarea) {
|
|
86
|
+
box-sizing: border-box;
|
|
87
|
+
height: var(--control-h);
|
|
88
|
+
padding-block: 0;
|
|
89
|
+
}
|
|
90
|
+
/* The ones that are a box around a control rather than the control itself —
|
|
91
|
+
a select's trigger, a number's field with its steppers — centre what they
|
|
92
|
+
hold in that height instead of stretching to it. */
|
|
93
|
+
.strct-control:not(textarea, input, select) {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
}
|
|
97
|
+
|
|
69
98
|
textarea.strct-control {
|
|
70
99
|
min-height: 76px;
|
|
71
100
|
resize: vertical;
|
package/styles/_tokens.scss
CHANGED
|
@@ -99,6 +99,11 @@
|
|
|
99
99
|
--space-4: 16px;
|
|
100
100
|
--space-5: 24px;
|
|
101
101
|
--space-6: 32px;
|
|
102
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
103
|
+
--control-h-sm: 26px;
|
|
104
|
+
--control-h-md: 32px;
|
|
105
|
+
--control-h-lg: 38px;
|
|
106
|
+
--control-h: var(--control-h-md);
|
|
102
107
|
--radius-sm: 2px;
|
|
103
108
|
--radius-md: 3px;
|
|
104
109
|
--radius-lg: 4px;
|
|
@@ -164,6 +169,11 @@
|
|
|
164
169
|
--space-4: 16px;
|
|
165
170
|
--space-5: 24px;
|
|
166
171
|
--space-6: 32px;
|
|
172
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
173
|
+
--control-h-sm: 26px;
|
|
174
|
+
--control-h-md: 32px;
|
|
175
|
+
--control-h-lg: 38px;
|
|
176
|
+
--control-h: var(--control-h-md);
|
|
167
177
|
--radius-sm: 2px;
|
|
168
178
|
--radius-md: 3px;
|
|
169
179
|
--radius-lg: 4px;
|
|
@@ -229,6 +239,11 @@
|
|
|
229
239
|
--space-4: 16px;
|
|
230
240
|
--space-5: 24px;
|
|
231
241
|
--space-6: 32px;
|
|
242
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
243
|
+
--control-h-sm: 26px;
|
|
244
|
+
--control-h-md: 32px;
|
|
245
|
+
--control-h-lg: 38px;
|
|
246
|
+
--control-h: var(--control-h-md);
|
|
232
247
|
--radius-sm: 2px;
|
|
233
248
|
--radius-md: 3px;
|
|
234
249
|
--radius-lg: 4px;
|
|
@@ -294,6 +309,11 @@
|
|
|
294
309
|
--space-4: 16px;
|
|
295
310
|
--space-5: 24px;
|
|
296
311
|
--space-6: 32px;
|
|
312
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
313
|
+
--control-h-sm: 26px;
|
|
314
|
+
--control-h-md: 32px;
|
|
315
|
+
--control-h-lg: 38px;
|
|
316
|
+
--control-h: var(--control-h-md);
|
|
297
317
|
--radius-sm: 2px;
|
|
298
318
|
--radius-md: 3px;
|
|
299
319
|
--radius-lg: 4px;
|
|
@@ -359,6 +379,11 @@
|
|
|
359
379
|
--space-4: 16px;
|
|
360
380
|
--space-5: 24px;
|
|
361
381
|
--space-6: 32px;
|
|
382
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
383
|
+
--control-h-sm: 26px;
|
|
384
|
+
--control-h-md: 32px;
|
|
385
|
+
--control-h-lg: 38px;
|
|
386
|
+
--control-h: var(--control-h-md);
|
|
362
387
|
--radius-sm: 2px;
|
|
363
388
|
--radius-md: 3px;
|
|
364
389
|
--radius-lg: 4px;
|
|
@@ -424,6 +449,11 @@
|
|
|
424
449
|
--space-4: 16px;
|
|
425
450
|
--space-5: 24px;
|
|
426
451
|
--space-6: 32px;
|
|
452
|
+
/* One height per size, for every single-line control (see _forms.scss). */
|
|
453
|
+
--control-h-sm: 26px;
|
|
454
|
+
--control-h-md: 32px;
|
|
455
|
+
--control-h-lg: 38px;
|
|
456
|
+
--control-h: var(--control-h-md);
|
|
427
457
|
--radius-sm: 2px;
|
|
428
458
|
--radius-md: 3px;
|
|
429
459
|
--radius-lg: 4px;
|
package/types/akcelik-strct.d.ts
CHANGED
|
@@ -95,6 +95,46 @@ export interface StrctThresholds {
|
|
|
95
95
|
warning?: number;
|
|
96
96
|
critical?: number;
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* The one size scale every single-line control shares — a field, a button, a
|
|
100
|
+
* select's trigger, a searchbox, a segmented track.
|
|
101
|
+
*
|
|
102
|
+
* Each size is a height token (`--control-h-sm` / `-md` / `-lg`, see
|
|
103
|
+
* `_forms.scss`), so controls of one size are exactly as tall as each other
|
|
104
|
+
* whatever they hold. Before 6.2.0 only `strct-button` and `strct-segmented`
|
|
105
|
+
* had a size at all, and a `size="sm"` button stood 13px shorter than the
|
|
106
|
+
* field beside it with nothing able to close the gap (FR-63-02).
|
|
107
|
+
*/
|
|
108
|
+
export type StrctControlSize = 'sm' | 'md' | 'lg';
|
|
109
|
+
/** The custom property a size sets, for a host binding. */
|
|
110
|
+
export declare function strctControlHeight(size: StrctControlSize): string;
|
|
111
|
+
/**
|
|
112
|
+
* Sets the control size for everything inside it.
|
|
113
|
+
*
|
|
114
|
+
* ```html
|
|
115
|
+
* <div strctControlSize="sm">
|
|
116
|
+
* <input strctInput /> <strct-select /> <button strct-button>Apply</button>
|
|
117
|
+
* </div>
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* It sets `--control-h`, which every control reads, so a row of them agrees
|
|
121
|
+
* without each one being told. A control that states its own `size` wins,
|
|
122
|
+
* because that sets the same property on itself and the nearer declaration
|
|
123
|
+
* is the one that applies.
|
|
124
|
+
*/
|
|
125
|
+
export declare class StrctControlSizeDirective {
|
|
126
|
+
/** The size for the controls inside. */
|
|
127
|
+
readonly strctControlSize: import("@angular/core").InputSignal<StrctControlSize>;
|
|
128
|
+
protected readonly height: import("@angular/core").Signal<string>;
|
|
129
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StrctControlSizeDirective, never>;
|
|
130
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<StrctControlSizeDirective, "[strctControlSize]", never, {
|
|
131
|
+
"strctControlSize": {
|
|
132
|
+
"alias": "strctControlSize";
|
|
133
|
+
"required": false;
|
|
134
|
+
"isSignal": true;
|
|
135
|
+
};
|
|
136
|
+
}, {}, never, never, true, never>;
|
|
137
|
+
}
|
|
98
138
|
/**
|
|
99
139
|
* Inner markup (path/shape contents) for each icon, drawn on a 0 0 16 16
|
|
100
140
|
* viewBox with `currentColor` stroke. Keep strokes at 1.3–1.5 for crispness.
|
|
@@ -1369,8 +1409,12 @@ export declare class StrctTooltip implements OnDestroy {
|
|
|
1369
1409
|
}
|
|
1370
1410
|
/** Button visual variants. */
|
|
1371
1411
|
export type StrctButtonVariant = 'primary' | 'critical' | 'outline' | 'flat' | 'neutral' | 'link';
|
|
1372
|
-
/**
|
|
1373
|
-
|
|
1412
|
+
/**
|
|
1413
|
+
* The shared control sizes, plus the button's own `mini` — a 22px chip for a
|
|
1414
|
+
* toolbar's corner, below the scale on purpose and the one size that does not
|
|
1415
|
+
* line up with a field.
|
|
1416
|
+
*/
|
|
1417
|
+
export type StrctButtonSize = StrctControlSize | 'mini';
|
|
1374
1418
|
/**
|
|
1375
1419
|
* Styles a native `<button>` / `<a>` so it stays fully accessible and form-aware.
|
|
1376
1420
|
*
|
|
@@ -4168,6 +4212,14 @@ export declare class StrctKbd {
|
|
|
4168
4212
|
* <strct-searchbox trigger hint="⌘K" (activated)="palette.open.set(true)" />
|
|
4169
4213
|
*/
|
|
4170
4214
|
export declare class StrctSearchbox implements ControlValueAccessor {
|
|
4215
|
+
/**
|
|
4216
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
4217
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
4218
|
+
* or the default height when there is none.
|
|
4219
|
+
*/
|
|
4220
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
4221
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
4222
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
4171
4223
|
private readonly host;
|
|
4172
4224
|
/** Placeholder text (and the trigger mode's label). */
|
|
4173
4225
|
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
@@ -4217,6 +4269,11 @@ export declare class StrctSearchbox implements ControlValueAccessor {
|
|
|
4217
4269
|
setDisabledState(isDisabled: boolean): void;
|
|
4218
4270
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctSearchbox, never>;
|
|
4219
4271
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctSearchbox, "strct-searchbox", never, {
|
|
4272
|
+
"size": {
|
|
4273
|
+
"alias": "size";
|
|
4274
|
+
"required": false;
|
|
4275
|
+
"isSignal": true;
|
|
4276
|
+
};
|
|
4220
4277
|
"placeholder": {
|
|
4221
4278
|
"alias": "placeholder";
|
|
4222
4279
|
"required": false;
|
|
@@ -4809,10 +4866,23 @@ export declare class StrctField {
|
|
|
4809
4866
|
* identifier — the three things consumers were restyling by hand.
|
|
4810
4867
|
*/
|
|
4811
4868
|
export declare class StrctInput {
|
|
4869
|
+
/**
|
|
4870
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
4871
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
4872
|
+
* or the default height when there is none.
|
|
4873
|
+
*/
|
|
4874
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
4875
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
4876
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
4812
4877
|
/** Monospace text with tabular figures — a PEM block, an id, a mapping. */
|
|
4813
4878
|
readonly mono: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
4814
4879
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctInput, never>;
|
|
4815
4880
|
static ɵdir: i0.ɵɵDirectiveDeclaration<StrctInput, "input[strctInput], textarea[strctInput], select[strctInput], input[strct-input], textarea[strct-input], select[strct-input]", never, {
|
|
4881
|
+
"size": {
|
|
4882
|
+
"alias": "size";
|
|
4883
|
+
"required": false;
|
|
4884
|
+
"isSignal": true;
|
|
4885
|
+
};
|
|
4816
4886
|
"mono": {
|
|
4817
4887
|
"alias": "mono";
|
|
4818
4888
|
"required": false;
|
|
@@ -5070,7 +5140,8 @@ export interface StrctSegmentedOption {
|
|
|
5070
5140
|
countLabel?: (count: number) => string;
|
|
5071
5141
|
}
|
|
5072
5142
|
/** Segment size. */
|
|
5073
|
-
|
|
5143
|
+
/** The shared control scale, so a segmented track lines up with the row. */
|
|
5144
|
+
export type StrctSegmentedSize = StrctControlSize;
|
|
5074
5145
|
/**
|
|
5075
5146
|
* One-of-N selection rendered as a joined segmented control with managed
|
|
5076
5147
|
* selected state — distinct from `StrctTabs` (panel switching) and
|
|
@@ -5085,7 +5156,7 @@ export declare class StrctSegmented implements ControlValueAccessor {
|
|
|
5085
5156
|
/** The selectable segments. */
|
|
5086
5157
|
readonly options: import("@angular/core").InputSignal<StrctSegmentedOption[]>;
|
|
5087
5158
|
/** Segment size. */
|
|
5088
|
-
readonly size: import("@angular/core").InputSignal<
|
|
5159
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize>;
|
|
5089
5160
|
/** Stretch to the full width of the container. */
|
|
5090
5161
|
readonly block: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5091
5162
|
/** Static disable; forms' setDisabledState also drives the disabled state. */
|
|
@@ -5204,6 +5275,14 @@ export declare class StrctRange implements ControlValueAccessor {
|
|
|
5204
5275
|
* <strct-password [(ngModel)]="pw" meter />
|
|
5205
5276
|
*/
|
|
5206
5277
|
export declare class StrctPassword implements ControlValueAccessor {
|
|
5278
|
+
/**
|
|
5279
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
5280
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
5281
|
+
* or the default height when there is none.
|
|
5282
|
+
*/
|
|
5283
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
5284
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
5285
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
5207
5286
|
/** Placeholder text when empty. */
|
|
5208
5287
|
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
5209
5288
|
/** Show a strength meter. */
|
|
@@ -5235,6 +5314,11 @@ export declare class StrctPassword implements ControlValueAccessor {
|
|
|
5235
5314
|
setDisabledState(isDisabled: boolean): void;
|
|
5236
5315
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctPassword, never>;
|
|
5237
5316
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctPassword, "strct-password", never, {
|
|
5317
|
+
"size": {
|
|
5318
|
+
"alias": "size";
|
|
5319
|
+
"required": false;
|
|
5320
|
+
"isSignal": true;
|
|
5321
|
+
};
|
|
5238
5322
|
"placeholder": {
|
|
5239
5323
|
"alias": "placeholder";
|
|
5240
5324
|
"required": false;
|
|
@@ -5634,6 +5718,14 @@ export declare const STRCT_MASKS: {
|
|
|
5634
5718
|
* <strct-input-mask mask="HH:HH:HH:HH:HH:HH" uppercase [(ngModel)]="mac" />
|
|
5635
5719
|
*/
|
|
5636
5720
|
export declare class StrctInputMask implements ControlValueAccessor {
|
|
5721
|
+
/**
|
|
5722
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
5723
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
5724
|
+
* or the default height when there is none.
|
|
5725
|
+
*/
|
|
5726
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
5727
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
5728
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
5637
5729
|
/** Mask pattern (9=digit, A=letter, H=hex, *=alnum). */
|
|
5638
5730
|
readonly mask: import("@angular/core").InputSignal<string>;
|
|
5639
5731
|
/** Placeholder text when empty. */
|
|
@@ -5654,6 +5746,11 @@ export declare class StrctInputMask implements ControlValueAccessor {
|
|
|
5654
5746
|
setDisabledState(isDisabled: boolean): void;
|
|
5655
5747
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctInputMask, never>;
|
|
5656
5748
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctInputMask, "strct-input-mask", never, {
|
|
5749
|
+
"size": {
|
|
5750
|
+
"alias": "size";
|
|
5751
|
+
"required": false;
|
|
5752
|
+
"isSignal": true;
|
|
5753
|
+
};
|
|
5657
5754
|
"mask": {
|
|
5658
5755
|
"alias": "mask";
|
|
5659
5756
|
"required": true;
|
|
@@ -5710,6 +5807,14 @@ interface CbxRow {
|
|
|
5710
5807
|
* text itself can be committed as a free-form value.
|
|
5711
5808
|
*/
|
|
5712
5809
|
export declare class StrctCombobox implements ControlValueAccessor {
|
|
5810
|
+
/**
|
|
5811
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
5812
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
5813
|
+
* or the default height when there is none.
|
|
5814
|
+
*/
|
|
5815
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
5816
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
5817
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
5713
5818
|
private readonly host;
|
|
5714
5819
|
private readonly inputEl;
|
|
5715
5820
|
protected readonly listId: string;
|
|
@@ -5812,6 +5917,11 @@ export declare class StrctCombobox implements ControlValueAccessor {
|
|
|
5812
5917
|
setDisabledState(isDisabled: boolean): void;
|
|
5813
5918
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctCombobox, never>;
|
|
5814
5919
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctCombobox, "strct-combobox", never, {
|
|
5920
|
+
"size": {
|
|
5921
|
+
"alias": "size";
|
|
5922
|
+
"required": false;
|
|
5923
|
+
"isSignal": true;
|
|
5924
|
+
};
|
|
5815
5925
|
"options": {
|
|
5816
5926
|
"alias": "options";
|
|
5817
5927
|
"required": false;
|
|
@@ -5893,6 +6003,14 @@ export declare class StrctCombobox implements ControlValueAccessor {
|
|
|
5893
6003
|
* [selected]`.
|
|
5894
6004
|
*/
|
|
5895
6005
|
export declare class StrctSelect implements ControlValueAccessor {
|
|
6006
|
+
/**
|
|
6007
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
6008
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
6009
|
+
* or the default height when there is none.
|
|
6010
|
+
*/
|
|
6011
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
6012
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
6013
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
5896
6014
|
private readonly host;
|
|
5897
6015
|
protected readonly listId: string;
|
|
5898
6016
|
/** Available options (set `disabled: true` on an option to gray it out). */
|
|
@@ -5952,6 +6070,11 @@ export declare class StrctSelect implements ControlValueAccessor {
|
|
|
5952
6070
|
setDisabledState(isDisabled: boolean): void;
|
|
5953
6071
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctSelect, never>;
|
|
5954
6072
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctSelect, "strct-select", never, {
|
|
6073
|
+
"size": {
|
|
6074
|
+
"alias": "size";
|
|
6075
|
+
"required": false;
|
|
6076
|
+
"isSignal": true;
|
|
6077
|
+
};
|
|
5955
6078
|
"options": {
|
|
5956
6079
|
"alias": "options";
|
|
5957
6080
|
"required": false;
|
|
@@ -6007,6 +6130,14 @@ export declare const strctDpPad: (n: number) => string;
|
|
|
6007
6130
|
* <strct-datepicker [(ngModel)]="date" />
|
|
6008
6131
|
*/
|
|
6009
6132
|
export declare class StrctDatepicker implements ControlValueAccessor {
|
|
6133
|
+
/**
|
|
6134
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
6135
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
6136
|
+
* or the default height when there is none.
|
|
6137
|
+
*/
|
|
6138
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
6139
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
6140
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
6010
6141
|
private readonly host;
|
|
6011
6142
|
/** Placeholder text when empty. */
|
|
6012
6143
|
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
@@ -6065,6 +6196,11 @@ export declare class StrctDatepicker implements ControlValueAccessor {
|
|
|
6065
6196
|
setDisabledState(isDisabled: boolean): void;
|
|
6066
6197
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctDatepicker, never>;
|
|
6067
6198
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctDatepicker, "strct-datepicker", never, {
|
|
6199
|
+
"size": {
|
|
6200
|
+
"alias": "size";
|
|
6201
|
+
"required": false;
|
|
6202
|
+
"isSignal": true;
|
|
6203
|
+
};
|
|
6068
6204
|
"placeholder": {
|
|
6069
6205
|
"alias": "placeholder";
|
|
6070
6206
|
"required": false;
|
|
@@ -6112,6 +6248,14 @@ export declare class StrctDatepicker implements ControlValueAccessor {
|
|
|
6112
6248
|
* <strct-color-picker [(ngModel)]="color" />
|
|
6113
6249
|
*/
|
|
6114
6250
|
export declare class StrctColorPicker implements ControlValueAccessor {
|
|
6251
|
+
/**
|
|
6252
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
6253
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
6254
|
+
* or the default height when there is none.
|
|
6255
|
+
*/
|
|
6256
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
6257
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
6258
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
6115
6259
|
private readonly host;
|
|
6116
6260
|
/** Custom palette swatches. */
|
|
6117
6261
|
readonly swatches: import("@angular/core").InputSignal<string[]>;
|
|
@@ -6140,6 +6284,11 @@ export declare class StrctColorPicker implements ControlValueAccessor {
|
|
|
6140
6284
|
setDisabledState(isDisabled: boolean): void;
|
|
6141
6285
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctColorPicker, never>;
|
|
6142
6286
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctColorPicker, "strct-color-picker", never, {
|
|
6287
|
+
"size": {
|
|
6288
|
+
"alias": "size";
|
|
6289
|
+
"required": false;
|
|
6290
|
+
"isSignal": true;
|
|
6291
|
+
};
|
|
6143
6292
|
"swatches": {
|
|
6144
6293
|
"alias": "swatches";
|
|
6145
6294
|
"required": false;
|
|
@@ -6231,6 +6380,14 @@ export declare class StrctCascadeColumn {
|
|
|
6231
6380
|
* the trigger on close.
|
|
6232
6381
|
*/
|
|
6233
6382
|
export declare class StrctCascadeSelect extends StrctCascadeHost implements ControlValueAccessor {
|
|
6383
|
+
/**
|
|
6384
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
6385
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
6386
|
+
* or the default height when there is none.
|
|
6387
|
+
*/
|
|
6388
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
6389
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
6390
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
6234
6391
|
private readonly elementRef;
|
|
6235
6392
|
/** Available options. */
|
|
6236
6393
|
readonly options: import("@angular/core").InputSignal<StrctCascadeOption[]>;
|
|
@@ -6273,6 +6430,11 @@ export declare class StrctCascadeSelect extends StrctCascadeHost implements Cont
|
|
|
6273
6430
|
setDisabledState(isDisabled: boolean): void;
|
|
6274
6431
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctCascadeSelect, never>;
|
|
6275
6432
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctCascadeSelect, "strct-cascade-select", never, {
|
|
6433
|
+
"size": {
|
|
6434
|
+
"alias": "size";
|
|
6435
|
+
"required": false;
|
|
6436
|
+
"isSignal": true;
|
|
6437
|
+
};
|
|
6276
6438
|
"options": {
|
|
6277
6439
|
"alias": "options";
|
|
6278
6440
|
"required": false;
|
|
@@ -6652,6 +6814,12 @@ export interface StrctDatagridColumn {
|
|
|
6652
6814
|
label: string;
|
|
6653
6815
|
sortable?: boolean;
|
|
6654
6816
|
align?: 'start' | 'center' | 'end';
|
|
6817
|
+
/**
|
|
6818
|
+
* The column's width — a CSS length. Stating one puts the table's widths in
|
|
6819
|
+
* charge of its layout (as `resizable` does), so the column is this wide
|
|
6820
|
+
* rather than as wide as its content needs; the rest of the columns keep
|
|
6821
|
+
* the widths they were drawing. Before 6.1.0 the content could outvote it.
|
|
6822
|
+
*/
|
|
6655
6823
|
width?: string;
|
|
6656
6824
|
/** Allow the user to resize this column by dragging its right edge.
|
|
6657
6825
|
* Defaults to the global {@link StrctDatagrid#resizable} setting. */
|
|
@@ -6948,7 +7116,16 @@ export declare class StrctDatagrid {
|
|
|
6948
7116
|
readonly emptyText: import("@angular/core").InputSignal<string>;
|
|
6949
7117
|
/** Show skeleton rows while data is loading. */
|
|
6950
7118
|
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
6951
|
-
/**
|
|
7119
|
+
/**
|
|
7120
|
+
* Enable column resizing by dragging column headers.
|
|
7121
|
+
*
|
|
7122
|
+
* It also puts the widths in charge of the table's layout, because a drag
|
|
7123
|
+
* is worth nothing otherwise: under `table-layout: auto` the content could
|
|
7124
|
+
* outvote the width, so a handle could only ever widen a column and the
|
|
7125
|
+
* table could overflow its container (BUG-62-01, 6.1.0). The widths the
|
|
7126
|
+
* content asked for are measured once and kept, so the grid looks the same
|
|
7127
|
+
* until someone drags something.
|
|
7128
|
+
*/
|
|
6952
7129
|
readonly resizable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
6953
7130
|
/** Show a column-chooser dropdown in the footer. */
|
|
6954
7131
|
readonly columnChooser: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
@@ -7275,6 +7452,35 @@ export declare class StrctDatagrid {
|
|
|
7275
7452
|
private readonly onMove;
|
|
7276
7453
|
private readonly onUp;
|
|
7277
7454
|
colWidth(key: string): string | null;
|
|
7455
|
+
/**
|
|
7456
|
+
* Whether the columns' widths lay the table out instead of their content.
|
|
7457
|
+
*
|
|
7458
|
+
* Under `table-layout: auto` a width was a hint: measured in Chrome, a
|
|
7459
|
+
* column asked for 120px and drew 323px because its text did, dragging its
|
|
7460
|
+
* handle 120px to the left left it at 323px, and the table stood 836px wide
|
|
7461
|
+
* in a 600px pane with no ellipsis anywhere (BUG-62-01). With the widths in
|
|
7462
|
+
* charge the same drag lands on 88px exactly and the table is 600px in a
|
|
7463
|
+
* 600px pane. A grid opts in by being `resizable`, or by stating a width on
|
|
7464
|
+
* a column — in both cases someone has said what a width should mean.
|
|
7465
|
+
*/
|
|
7466
|
+
protected readonly fixedColumns: import("@angular/core").Signal<boolean>;
|
|
7467
|
+
/**
|
|
7468
|
+
* Fixed layout splits the space equally between columns that state no
|
|
7469
|
+
* width, which is not what this grid looked like a frame ago. So the widths
|
|
7470
|
+
* the content asked for are swept first (see {@link sweepHeaderWidths}) and
|
|
7471
|
+
* the mode waits for them: the grid draws exactly as it always did until
|
|
7472
|
+
* someone drags a handle.
|
|
7473
|
+
*/
|
|
7474
|
+
protected readonly widthsApplied: import("@angular/core").Signal<boolean>;
|
|
7475
|
+
/**
|
|
7476
|
+
* The width the header cell gets: what was dragged, else what the column
|
|
7477
|
+
* stated, else what the content asked for on the first pass. Every column
|
|
7478
|
+
* keeps its own width — the leftover goes to the filler cell at the end of
|
|
7479
|
+
* the row, which is why none of them has to give any of it back.
|
|
7480
|
+
*/
|
|
7481
|
+
protected headerWidth(col: StrctDatagridColumn): string | null;
|
|
7482
|
+
/** A utility column's swept width, under the keys the sweep stores them by. */
|
|
7483
|
+
protected utilWidth(key: string): number | null;
|
|
7278
7484
|
/**
|
|
7279
7485
|
* A focusable separator owes ARIA a value, and a column that has never been
|
|
7280
7486
|
* resized has no stored width — so the header's real width is swept after
|
|
@@ -9012,7 +9218,7 @@ export declare class StrctMetricTile {
|
|
|
9012
9218
|
* `sm` is the verdict-band size: six counters beside a one-line verdict at
|
|
9013
9219
|
* 1440px, where the dashboard size fits three.
|
|
9014
9220
|
*/
|
|
9015
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
9221
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md">;
|
|
9016
9222
|
/**
|
|
9017
9223
|
* What a plain click on an `href` tile does. `browser` follows the link, as
|
|
9018
9224
|
* today. `app` belongs to a single-page app: the click is prevented and
|
|
@@ -9456,7 +9662,7 @@ export declare class StrctEmptyState {
|
|
|
9456
9662
|
* `sm` is the inline row a 240px frame wants: a 16px icon with the title and
|
|
9457
9663
|
* description on one line. A page-sized empty state stays `md`.
|
|
9458
9664
|
*/
|
|
9459
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
9665
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md">;
|
|
9460
9666
|
readonly description: import("@angular/core").InputSignal<string>;
|
|
9461
9667
|
protected readonly resolvedIcon: import("@angular/core").Signal<string>;
|
|
9462
9668
|
protected readonly toneClass: import("@angular/core").Signal<string>;
|
|
@@ -9583,7 +9789,7 @@ export declare class StrctTimeRangePicker {
|
|
|
9583
9789
|
/** Popover alignment, as in strct-dropdown. */
|
|
9584
9790
|
readonly align: import("@angular/core").InputSignal<"end" | "start">;
|
|
9585
9791
|
/** Trigger size — match it to the toolbar's buttons (sm strips). */
|
|
9586
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
9792
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md">;
|
|
9587
9793
|
/** Localizable strings. */
|
|
9588
9794
|
readonly dialogLabel: import("@angular/core").InputSignal<string>;
|
|
9589
9795
|
readonly quickLabel: import("@angular/core").InputSignal<string>;
|
|
@@ -11989,6 +12195,14 @@ export declare class StrctChange {
|
|
|
11989
12195
|
* aria-valuemin/max/now so assistive tech announces it as a number control.
|
|
11990
12196
|
*/
|
|
11991
12197
|
export declare class StrctNumber implements ControlValueAccessor {
|
|
12198
|
+
/**
|
|
12199
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
12200
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
12201
|
+
* or the default height when there is none.
|
|
12202
|
+
*/
|
|
12203
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
12204
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
12205
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
11992
12206
|
/** Minimum allowed value; null = unbounded. */
|
|
11993
12207
|
readonly min: import("@angular/core").InputSignal<number | null>;
|
|
11994
12208
|
/** Maximum allowed value; null = unbounded. */
|
|
@@ -12036,6 +12250,11 @@ export declare class StrctNumber implements ControlValueAccessor {
|
|
|
12036
12250
|
setDisabledState(isDisabled: boolean): void;
|
|
12037
12251
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctNumber, never>;
|
|
12038
12252
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctNumber, "strct-number", never, {
|
|
12253
|
+
"size": {
|
|
12254
|
+
"alias": "size";
|
|
12255
|
+
"required": false;
|
|
12256
|
+
"isSignal": true;
|
|
12257
|
+
};
|
|
12039
12258
|
"min": {
|
|
12040
12259
|
"alias": "min";
|
|
12041
12260
|
"required": false;
|
|
@@ -12257,6 +12476,14 @@ export declare class StrctConfirmOutlet {
|
|
|
12257
12476
|
* modal/drawer stays open); focus returns to the trigger on close.
|
|
12258
12477
|
*/
|
|
12259
12478
|
export declare class StrctTreeSelect implements ControlValueAccessor {
|
|
12479
|
+
/**
|
|
12480
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
12481
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
12482
|
+
* or the default height when there is none.
|
|
12483
|
+
*/
|
|
12484
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
12485
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
12486
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
12260
12487
|
private readonly host;
|
|
12261
12488
|
/** Root nodes rendered by the embedded `<strct-tree>` (data-driven mode). */
|
|
12262
12489
|
readonly nodes: import("@angular/core").InputSignal<StrctTreeNodeData[]>;
|
|
@@ -12316,6 +12543,11 @@ export declare class StrctTreeSelect implements ControlValueAccessor {
|
|
|
12316
12543
|
setDisabledState(isDisabled: boolean): void;
|
|
12317
12544
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctTreeSelect, never>;
|
|
12318
12545
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctTreeSelect, "strct-tree-select", never, {
|
|
12546
|
+
"size": {
|
|
12547
|
+
"alias": "size";
|
|
12548
|
+
"required": false;
|
|
12549
|
+
"isSignal": true;
|
|
12550
|
+
};
|
|
12319
12551
|
"nodes": {
|
|
12320
12552
|
"alias": "nodes";
|
|
12321
12553
|
"required": false;
|
|
@@ -12363,6 +12595,14 @@ export declare class StrctTreeSelect implements ControlValueAccessor {
|
|
|
12363
12595
|
* date keeps the value empty until a date is picked.
|
|
12364
12596
|
*/
|
|
12365
12597
|
export declare class StrctDatetimePicker implements ControlValueAccessor {
|
|
12598
|
+
/**
|
|
12599
|
+
* Control size — the shared scale, so this lines up with the buttons and
|
|
12600
|
+
* fields beside it. Left unset it follows an enclosing [strctControlSize],
|
|
12601
|
+
* or the default height when there is none.
|
|
12602
|
+
*/
|
|
12603
|
+
readonly size: import("@angular/core").InputSignal<StrctControlSize | undefined>;
|
|
12604
|
+
/** The height its size asks for; nothing while it states no size. */
|
|
12605
|
+
protected readonly controlHeight: import("@angular/core").Signal<string | null>;
|
|
12366
12606
|
/** Placeholder text of the date input when empty (localizable). */
|
|
12367
12607
|
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
12368
12608
|
/** Minute granularity of the minute select (1 = every minute). */
|
|
@@ -12407,6 +12647,11 @@ export declare class StrctDatetimePicker implements ControlValueAccessor {
|
|
|
12407
12647
|
setDisabledState(isDisabled: boolean): void;
|
|
12408
12648
|
static ɵfac: i0.ɵɵFactoryDeclaration<StrctDatetimePicker, never>;
|
|
12409
12649
|
static ɵcmp: i0.ɵɵComponentDeclaration<StrctDatetimePicker, "strct-datetime-picker", never, {
|
|
12650
|
+
"size": {
|
|
12651
|
+
"alias": "size";
|
|
12652
|
+
"required": false;
|
|
12653
|
+
"isSignal": true;
|
|
12654
|
+
};
|
|
12410
12655
|
"placeholder": {
|
|
12411
12656
|
"alias": "placeholder";
|
|
12412
12657
|
"required": false;
|