@akcelik/strct 4.8.0 → 4.9.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.
|
@@ -7438,6 +7438,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7438
7438
|
}], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: true }] }], loadingLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingLabel", required: false }] }] } });
|
|
7439
7439
|
|
|
7440
7440
|
let fieldCounter = 0;
|
|
7441
|
+
/** Text or a control rendered inside the field's box, before the input. */
|
|
7442
|
+
class StrctFieldPrefix {
|
|
7443
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7444
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctFieldPrefix, isStandalone: true, selector: "[strctFieldPrefix]", ngImport: i0 });
|
|
7445
|
+
}
|
|
7446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldPrefix, decorators: [{
|
|
7447
|
+
type: Directive,
|
|
7448
|
+
args: [{ selector: '[strctFieldPrefix]' }]
|
|
7449
|
+
}] });
|
|
7450
|
+
/** Text or a control rendered inside the field's box, after the input. */
|
|
7451
|
+
class StrctFieldSuffix {
|
|
7452
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7453
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctFieldSuffix, isStandalone: true, selector: "[strctFieldSuffix]", ngImport: i0 });
|
|
7454
|
+
}
|
|
7455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldSuffix, decorators: [{
|
|
7456
|
+
type: Directive,
|
|
7457
|
+
args: [{ selector: '[strctFieldSuffix]' }]
|
|
7458
|
+
}] });
|
|
7459
|
+
/**
|
|
7460
|
+
* A hint with markup in it, rendered where the string `hint` renders and
|
|
7461
|
+
* carrying the same id, so it is still the control's description.
|
|
7462
|
+
*
|
|
7463
|
+
* <ng-template strctFieldHint>Hosts with a switch named <strong>{{ n }}</strong> join it.</ng-template>
|
|
7464
|
+
*/
|
|
7465
|
+
class StrctFieldHint {
|
|
7466
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7467
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctFieldHint, isStandalone: true, selector: "ng-template[strctFieldHint]", ngImport: i0 });
|
|
7468
|
+
}
|
|
7469
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldHint, decorators: [{
|
|
7470
|
+
type: Directive,
|
|
7471
|
+
args: [{ selector: 'ng-template[strctFieldHint]' }]
|
|
7472
|
+
}] });
|
|
7473
|
+
/**
|
|
7474
|
+
* Wrapper that opts a run of `layout="inline"` fields out of the hairlines
|
|
7475
|
+
* between them — for settings that belong together and should read as one
|
|
7476
|
+
* block.
|
|
7477
|
+
*/
|
|
7478
|
+
class StrctFieldGroup {
|
|
7479
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7480
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctFieldGroup, isStandalone: true, selector: "[strctFieldGroup]", host: { classAttribute: "strct-field-group" }, ngImport: i0 });
|
|
7481
|
+
}
|
|
7482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFieldGroup, decorators: [{
|
|
7483
|
+
type: Directive,
|
|
7484
|
+
args: [{ selector: '[strctFieldGroup]', host: { class: 'strct-field-group' } }]
|
|
7485
|
+
}] });
|
|
7441
7486
|
/**
|
|
7442
7487
|
* Form-field wrapper: a label (with optional required marker), the projected
|
|
7443
7488
|
* control, and a hint or error message. It auto-links the control via
|
|
@@ -7459,6 +7504,13 @@ class StrctField {
|
|
|
7459
7504
|
/** Error message (string or first-of array); falsy clears the error state. */
|
|
7460
7505
|
error = input(null, /* @ts-ignore */
|
|
7461
7506
|
...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
|
|
7507
|
+
/**
|
|
7508
|
+
* `'inline'` puts the label and its hint in a fixed-width column
|
|
7509
|
+
* (`--strct-field-label-w`, 220px) and the control beside them — how a long
|
|
7510
|
+
* settings form reads. Below 480px of field width it falls back to stacked.
|
|
7511
|
+
*/
|
|
7512
|
+
layout = input('stacked', /* @ts-ignore */
|
|
7513
|
+
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
7462
7514
|
/**
|
|
7463
7515
|
* Async-validation state rendered as a trailing adornment (spinner / check /
|
|
7464
7516
|
* warning) plus its message in the hint/error slot — so apps stop composing a
|
|
@@ -7470,8 +7522,15 @@ class StrctField {
|
|
|
7470
7522
|
n = ++fieldCounter;
|
|
7471
7523
|
hintId = `strct-field-hint-${this.n}`;
|
|
7472
7524
|
errorId = `strct-field-err-${this.n}`;
|
|
7525
|
+
prefixId = `strct-field-pre-${this.n}`;
|
|
7526
|
+
suffixId = `strct-field-suf-${this.n}`;
|
|
7473
7527
|
controlId = signal('', /* @ts-ignore */
|
|
7474
7528
|
...(ngDevMode ? [{ debugName: "controlId" }] : /* istanbul ignore next */ []));
|
|
7529
|
+
hintTpl = contentChild(StrctFieldHint, { ...(ngDevMode ? { debugName: "hintTpl" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
7530
|
+
hasPrefix = contentChild(StrctFieldPrefix, /* @ts-ignore */
|
|
7531
|
+
...(ngDevMode ? [{ debugName: "hasPrefix" }] : /* istanbul ignore next */ []));
|
|
7532
|
+
hasSuffix = contentChild(StrctFieldSuffix, /* @ts-ignore */
|
|
7533
|
+
...(ngDevMode ? [{ debugName: "hasSuffix" }] : /* istanbul ignore next */ []));
|
|
7475
7534
|
errorText = computed(() => {
|
|
7476
7535
|
const e = this.error();
|
|
7477
7536
|
return (Array.isArray(e) ? e[0] : e) ?? '';
|
|
@@ -7497,6 +7556,9 @@ class StrctField {
|
|
|
7497
7556
|
effect(() => {
|
|
7498
7557
|
this.errorText();
|
|
7499
7558
|
this.hint();
|
|
7559
|
+
this.hintTpl();
|
|
7560
|
+
this.hasPrefix();
|
|
7561
|
+
this.hasSuffix();
|
|
7500
7562
|
this.stateStatus();
|
|
7501
7563
|
this.stateMessage();
|
|
7502
7564
|
this.applyAria();
|
|
@@ -7514,15 +7576,37 @@ class StrctField {
|
|
|
7514
7576
|
this.controlId.set(el.id);
|
|
7515
7577
|
this.applyAria();
|
|
7516
7578
|
}
|
|
7579
|
+
/**
|
|
7580
|
+
* A text addon belongs to the control's description — "Minimum memory, MB" —
|
|
7581
|
+
* while an addon holding its own control (a send button) is a tab stop of its
|
|
7582
|
+
* own and says nothing about the value.
|
|
7583
|
+
*/
|
|
7584
|
+
addonDescription(sel, id) {
|
|
7585
|
+
const el = this.host.nativeElement.querySelector(sel);
|
|
7586
|
+
if (!el || !el.textContent?.trim())
|
|
7587
|
+
return '';
|
|
7588
|
+
if (el.matches('button, a, input, select, textarea'))
|
|
7589
|
+
return '';
|
|
7590
|
+
if (el.querySelector('button, a, input, select, textarea'))
|
|
7591
|
+
return '';
|
|
7592
|
+
return id;
|
|
7593
|
+
}
|
|
7517
7594
|
applyAria() {
|
|
7518
7595
|
const el = this.control();
|
|
7519
7596
|
if (!el)
|
|
7520
7597
|
return;
|
|
7521
|
-
const
|
|
7598
|
+
const message = this.errorText()
|
|
7522
7599
|
? this.errorId
|
|
7523
|
-
: this.stateMessage() || this.hint()
|
|
7600
|
+
: this.stateMessage() || this.hintTpl() || this.hint()
|
|
7524
7601
|
? this.hintId
|
|
7525
7602
|
: '';
|
|
7603
|
+
const describedBy = [
|
|
7604
|
+
this.addonDescription('[strctFieldPrefix]', this.prefixId),
|
|
7605
|
+
this.addonDescription('[strctFieldSuffix]', this.suffixId),
|
|
7606
|
+
message,
|
|
7607
|
+
]
|
|
7608
|
+
.filter(Boolean)
|
|
7609
|
+
.join(' ');
|
|
7526
7610
|
if (describedBy)
|
|
7527
7611
|
el.setAttribute('aria-describedby', describedBy);
|
|
7528
7612
|
else
|
|
@@ -7533,7 +7617,7 @@ class StrctField {
|
|
|
7533
7617
|
el.removeAttribute('aria-invalid');
|
|
7534
7618
|
}
|
|
7535
7619
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctField, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7536
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctField, isStandalone: true, selector: "strct-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, validationState: { classPropertyName: "validationState", publicName: "validationState", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-field--invalid": "isInvalid()", "class.strct-field--validating": "stateActive()" }, classAttribute: "strct-field" }, ngImport: i0, template: `
|
|
7620
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctField, isStandalone: true, selector: "strct-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, validationState: { classPropertyName: "validationState", publicName: "validationState", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-field--invalid": "isInvalid()", "class.strct-field--validating": "stateActive()", "class.strct-field--inline": "layout() === 'inline'", "class.strct-field--prefix": "hasPrefix()", "class.strct-field--suffix": "hasSuffix()" }, classAttribute: "strct-field" }, queries: [{ propertyName: "hintTpl", first: true, predicate: StrctFieldHint, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "hasPrefix", first: true, predicate: StrctFieldPrefix, descendants: true, isSignal: true }, { propertyName: "hasSuffix", first: true, predicate: StrctFieldSuffix, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7537
7621
|
@if (label()) {
|
|
7538
7622
|
<label class="strct-field__label" [attr.for]="controlId() || null">
|
|
7539
7623
|
{{ label() }}
|
|
@@ -7543,6 +7627,15 @@ class StrctField {
|
|
|
7543
7627
|
</label>
|
|
7544
7628
|
}
|
|
7545
7629
|
<div class="strct-field__control">
|
|
7630
|
+
<!-- The addon slots come first so their selectors win over the catch-all
|
|
7631
|
+
below (Angular matches in template order); CSS order puts them
|
|
7632
|
+
either side of the control. -->
|
|
7633
|
+
<span class="strct-field__addon strct-field__addon--prefix" [id]="prefixId">
|
|
7634
|
+
<ng-content select="[strctFieldPrefix]" />
|
|
7635
|
+
</span>
|
|
7636
|
+
<span class="strct-field__addon strct-field__addon--suffix" [id]="suffixId">
|
|
7637
|
+
<ng-content select="[strctFieldSuffix]" />
|
|
7638
|
+
</span>
|
|
7546
7639
|
<ng-content />
|
|
7547
7640
|
@if (stateActive()) {
|
|
7548
7641
|
<span class="strct-field__adorn strct-field__adorn--{{ stateStatus() }}" aria-hidden="true">
|
|
@@ -7567,14 +7660,18 @@ class StrctField {
|
|
|
7567
7660
|
>
|
|
7568
7661
|
{{ stateMessage() }}
|
|
7569
7662
|
</div>
|
|
7663
|
+
} @else if (hintTpl()) {
|
|
7664
|
+
<div class="strct-field__msg strct-field__msg--hint" [id]="hintId">
|
|
7665
|
+
<ng-container [ngTemplateOutlet]="hintTpl()!" />
|
|
7666
|
+
</div>
|
|
7570
7667
|
} @else if (hint()) {
|
|
7571
7668
|
<div class="strct-field__msg strct-field__msg--hint" [id]="hintId">{{ hint() }}</div>
|
|
7572
7669
|
}
|
|
7573
|
-
`, isInline: true, styles: [".strct-field{display:flex;flex-direction:column;gap:6px}.strct-field__label{font-size:12px;font-weight:600;color:var(--t2)}.strct-field__req{color:var(--critical);margin-inline-start:2px}.strct-field__control{position:relative;display:flex;flex-direction:column}.strct-field__adorn{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}.strct-field__adorn--ok{color:var(--success)}.strct-field__adorn--warning{color:var(--warning)}.strct-field__adorn--error{color:var(--critical)}.strct-field--validating .strct-control{padding-inline-end:32px}.strct-field__msg{font-size:12px;line-height:1.4}.strct-field__msg--hint,.strct-field__msg--checking{color:var(--t3)}.strct-field__msg--ok{color:var(--success)}.strct-field__msg--warning{color:var(--warning)}.strct-field__msg--error{color:var(--critical)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label", "caption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7670
|
+
`, isInline: true, styles: [".strct-field{display:flex;flex-direction:column;gap:6px}.strct-field__label{font-size:12px;font-weight:600;color:var(--t2)}.strct-field__req{color:var(--critical);margin-inline-start:2px}.strct-field__control{position:relative;display:flex;flex-direction:column}.strct-field__adorn{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}.strct-field__adorn--ok{color:var(--success)}.strct-field__adorn--warning{color:var(--warning)}.strct-field__adorn--error{color:var(--critical)}.strct-field--validating .strct-control{padding-inline-end:32px}.strct-field__msg{font-size:12px;line-height:1.4}.strct-field__msg--hint,.strct-field__msg--checking{color:var(--t3)}.strct-field__msg--ok{color:var(--success)}.strct-field__msg--warning{color:var(--warning)}.strct-field__msg--error{color:var(--critical)}.strct-field__addon{display:none;align-items:center;flex:none;font-size:13px;color:var(--t3)}.strct-field__addon--prefix{order:-1;padding-inline-start:var(--space-3)}.strct-field__addon--suffix{order:1;padding-inline-end:var(--space-3)}.strct-field--prefix .strct-field__addon--prefix,.strct-field--suffix .strct-field__addon--suffix{display:inline-flex}.strct-field__addon:has(.strct-btn){padding:3px}.strct-field--prefix .strct-field__control,.strct-field--suffix .strct-field__control{flex-direction:row;align-items:center;background:var(--bg-2);border:1px solid var(--b2);border-radius:var(--radius-md);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.strct-field--prefix .strct-field__control:hover,.strct-field--suffix .strct-field__control:hover{border-color:var(--b3)}.strct-field--prefix .strct-field__control:focus-within,.strct-field--suffix .strct-field__control:focus-within{border-color:var(--acc50);box-shadow:0 0 0 3px var(--acc18);background:var(--bg-1)}.strct-field--invalid.strct-field--prefix .strct-field__control,.strct-field--invalid.strct-field--suffix .strct-field__control{border-color:var(--critical)}.strct-field--prefix .strct-control,.strct-field--suffix .strct-control{flex:1;min-width:0;border:0;background:transparent}.strct-field--prefix .strct-control:focus,.strct-field--prefix .strct-control:focus-visible,.strct-field--suffix .strct-control:focus,.strct-field--suffix .strct-control:focus-visible{box-shadow:none;background:transparent}.strct-field--prefix textarea.strct-control,.strct-field--suffix textarea.strct-control{min-height:0}.strct-field--inline{container-type:inline-size;display:grid;grid-template-columns:var(--strct-field-label-w, 220px) minmax(0,1fr);column-gap:var(--space-3);row-gap:4px;align-items:start}.strct-field--inline>.strct-field__label{grid-column:1;grid-row:1;padding-block-start:9px}.strct-field--inline>.strct-field__control{grid-column:2;grid-row:1}.strct-field--inline>.strct-field__msg{grid-column:2;grid-row:2}.strct-field--inline>.strct-field__msg--hint{grid-column:1;padding-block-end:var(--space-2)}.strct-field--inline+.strct-field--inline{border-block-start:1px solid var(--b1);margin-block-start:var(--space-3);padding-block-start:var(--space-3)}.strct-field-group .strct-field--inline+.strct-field--inline{border-block-start:0;padding-block-start:0}@container (max-width: 480px){.strct-field--inline>.strct-field__label,.strct-field--inline>.strct-field__control,.strct-field--inline>.strct-field__msg{grid-column:1 / -1;grid-row:auto}.strct-field--inline>.strct-field__label{padding-block-start:0}.strct-field--inline>.strct-field__msg--hint{padding-block-end:0}}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label", "caption"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7574
7671
|
}
|
|
7575
7672
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctField, decorators: [{
|
|
7576
7673
|
type: Component,
|
|
7577
|
-
args: [{ selector: 'strct-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctSpinner], template: `
|
|
7674
|
+
args: [{ selector: 'strct-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctSpinner, NgTemplateOutlet], template: `
|
|
7578
7675
|
@if (label()) {
|
|
7579
7676
|
<label class="strct-field__label" [attr.for]="controlId() || null">
|
|
7580
7677
|
{{ label() }}
|
|
@@ -7584,6 +7681,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7584
7681
|
</label>
|
|
7585
7682
|
}
|
|
7586
7683
|
<div class="strct-field__control">
|
|
7684
|
+
<!-- The addon slots come first so their selectors win over the catch-all
|
|
7685
|
+
below (Angular matches in template order); CSS order puts them
|
|
7686
|
+
either side of the control. -->
|
|
7687
|
+
<span class="strct-field__addon strct-field__addon--prefix" [id]="prefixId">
|
|
7688
|
+
<ng-content select="[strctFieldPrefix]" />
|
|
7689
|
+
</span>
|
|
7690
|
+
<span class="strct-field__addon strct-field__addon--suffix" [id]="suffixId">
|
|
7691
|
+
<ng-content select="[strctFieldSuffix]" />
|
|
7692
|
+
</span>
|
|
7587
7693
|
<ng-content />
|
|
7588
7694
|
@if (stateActive()) {
|
|
7589
7695
|
<span class="strct-field__adorn strct-field__adorn--{{ stateStatus() }}" aria-hidden="true">
|
|
@@ -7608,6 +7714,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7608
7714
|
>
|
|
7609
7715
|
{{ stateMessage() }}
|
|
7610
7716
|
</div>
|
|
7717
|
+
} @else if (hintTpl()) {
|
|
7718
|
+
<div class="strct-field__msg strct-field__msg--hint" [id]="hintId">
|
|
7719
|
+
<ng-container [ngTemplateOutlet]="hintTpl()!" />
|
|
7720
|
+
</div>
|
|
7611
7721
|
} @else if (hint()) {
|
|
7612
7722
|
<div class="strct-field__msg strct-field__msg--hint" [id]="hintId">{{ hint() }}</div>
|
|
7613
7723
|
}
|
|
@@ -7615,8 +7725,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7615
7725
|
class: 'strct-field',
|
|
7616
7726
|
'[class.strct-field--invalid]': 'isInvalid()',
|
|
7617
7727
|
'[class.strct-field--validating]': 'stateActive()',
|
|
7618
|
-
|
|
7619
|
-
|
|
7728
|
+
'[class.strct-field--inline]': "layout() === 'inline'",
|
|
7729
|
+
'[class.strct-field--prefix]': 'hasPrefix()',
|
|
7730
|
+
'[class.strct-field--suffix]': 'hasSuffix()',
|
|
7731
|
+
}, styles: [".strct-field{display:flex;flex-direction:column;gap:6px}.strct-field__label{font-size:12px;font-weight:600;color:var(--t2)}.strct-field__req{color:var(--critical);margin-inline-start:2px}.strct-field__control{position:relative;display:flex;flex-direction:column}.strct-field__adorn{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}.strct-field__adorn--ok{color:var(--success)}.strct-field__adorn--warning{color:var(--warning)}.strct-field__adorn--error{color:var(--critical)}.strct-field--validating .strct-control{padding-inline-end:32px}.strct-field__msg{font-size:12px;line-height:1.4}.strct-field__msg--hint,.strct-field__msg--checking{color:var(--t3)}.strct-field__msg--ok{color:var(--success)}.strct-field__msg--warning{color:var(--warning)}.strct-field__msg--error{color:var(--critical)}.strct-field__addon{display:none;align-items:center;flex:none;font-size:13px;color:var(--t3)}.strct-field__addon--prefix{order:-1;padding-inline-start:var(--space-3)}.strct-field__addon--suffix{order:1;padding-inline-end:var(--space-3)}.strct-field--prefix .strct-field__addon--prefix,.strct-field--suffix .strct-field__addon--suffix{display:inline-flex}.strct-field__addon:has(.strct-btn){padding:3px}.strct-field--prefix .strct-field__control,.strct-field--suffix .strct-field__control{flex-direction:row;align-items:center;background:var(--bg-2);border:1px solid var(--b2);border-radius:var(--radius-md);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.strct-field--prefix .strct-field__control:hover,.strct-field--suffix .strct-field__control:hover{border-color:var(--b3)}.strct-field--prefix .strct-field__control:focus-within,.strct-field--suffix .strct-field__control:focus-within{border-color:var(--acc50);box-shadow:0 0 0 3px var(--acc18);background:var(--bg-1)}.strct-field--invalid.strct-field--prefix .strct-field__control,.strct-field--invalid.strct-field--suffix .strct-field__control{border-color:var(--critical)}.strct-field--prefix .strct-control,.strct-field--suffix .strct-control{flex:1;min-width:0;border:0;background:transparent}.strct-field--prefix .strct-control:focus,.strct-field--prefix .strct-control:focus-visible,.strct-field--suffix .strct-control:focus,.strct-field--suffix .strct-control:focus-visible{box-shadow:none;background:transparent}.strct-field--prefix textarea.strct-control,.strct-field--suffix textarea.strct-control{min-height:0}.strct-field--inline{container-type:inline-size;display:grid;grid-template-columns:var(--strct-field-label-w, 220px) minmax(0,1fr);column-gap:var(--space-3);row-gap:4px;align-items:start}.strct-field--inline>.strct-field__label{grid-column:1;grid-row:1;padding-block-start:9px}.strct-field--inline>.strct-field__control{grid-column:2;grid-row:1}.strct-field--inline>.strct-field__msg{grid-column:2;grid-row:2}.strct-field--inline>.strct-field__msg--hint{grid-column:1;padding-block-end:var(--space-2)}.strct-field--inline+.strct-field--inline{border-block-start:1px solid var(--b1);margin-block-start:var(--space-3);padding-block-start:var(--space-3)}.strct-field-group .strct-field--inline+.strct-field--inline{border-block-start:0;padding-block-start:0}@container (max-width: 480px){.strct-field--inline>.strct-field__label,.strct-field--inline>.strct-field__control,.strct-field--inline>.strct-field__msg{grid-column:1 / -1;grid-row:auto}.strct-field--inline>.strct-field__label{padding-block-start:0}.strct-field--inline>.strct-field__msg--hint{padding-block-end:0}}\n"] }]
|
|
7732
|
+
}], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], validationState: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationState", required: false }] }], hintTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctFieldHint), { ...{ read: TemplateRef }, isSignal: true }] }], hasPrefix: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctFieldPrefix), { isSignal: true }] }], hasSuffix: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctFieldSuffix), { isSignal: true }] }] } });
|
|
7620
7733
|
|
|
7621
7734
|
/**
|
|
7622
7735
|
* Applies the shared `.strct-control` look to a native input / textarea / select.
|
|
@@ -23001,5 +23114,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
23001
23114
|
* Generated bundle index. Do not edit.
|
|
23002
23115
|
*/
|
|
23003
23116
|
|
|
23004
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
23117
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
23005
23118
|
//# sourceMappingURL=akcelik-strct.mjs.map
|