@akcelik/strct 5.12.0 → 5.13.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 +308 -74
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +110 -5
|
@@ -1139,9 +1139,16 @@ class StrctHeader {
|
|
|
1139
1139
|
/** Accessible label of the mobile drawer toggle. */
|
|
1140
1140
|
drawerToggleAriaLabel = input('Toggle navigation', /* @ts-ignore */
|
|
1141
1141
|
...(ngDevMode ? [{ debugName: "drawerToggleAriaLabel" }] : /* istanbul ignore next */ []));
|
|
1142
|
+
/**
|
|
1143
|
+
* A thin line in a product's colour under the header — a colour token or
|
|
1144
|
+
* any CSS colour. It is drawn inset, so the header keeps its height and
|
|
1145
|
+
* nothing under it moves. Empty leaves today's border alone.
|
|
1146
|
+
*/
|
|
1147
|
+
accent = input('', /* @ts-ignore */
|
|
1148
|
+
...(ngDevMode ? [{ debugName: "accent" }] : /* istanbul ignore next */ []));
|
|
1142
1149
|
shell = inject(StrctShellService);
|
|
1143
1150
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1144
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctHeader, isStandalone: true, selector: "strct-header", inputs: { drawerToggleAriaLabel: { classPropertyName: "drawerToggleAriaLabel", publicName: "drawerToggleAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "strct-header" }, ngImport: i0, template: `
|
|
1151
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctHeader, isStandalone: true, selector: "strct-header", inputs: { drawerToggleAriaLabel: { classPropertyName: "drawerToggleAriaLabel", publicName: "drawerToggleAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, accent: { classPropertyName: "accent", publicName: "accent", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-header--accent": "accent()", "style.--strct-header-accent": "accent() || null" }, classAttribute: "strct-header" }, ngImport: i0, template: `
|
|
1145
1152
|
<button
|
|
1146
1153
|
type="button"
|
|
1147
1154
|
class="strct-header__drawer-toggle"
|
|
@@ -1153,7 +1160,7 @@ class StrctHeader {
|
|
|
1153
1160
|
<strct-icon name="menu" [size]="18" />
|
|
1154
1161
|
</button>
|
|
1155
1162
|
<ng-content />
|
|
1156
|
-
`, isInline: true, styles: [".strct-vnav__backdrop{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--backdrop);animation:strct-vnav-backdrop-in .2s ease}@media(min-width:769px){.strct-vnav__backdrop{display:none}}@keyframes strct-vnav-backdrop-in{0%{opacity:0}to{opacity:1}}.strct-header{display:flex;align-items:center;gap:14px;height:56px;padding:0 18px;background:var(--hdr);border-bottom:1px solid var(--b2);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *){color:color-mix(in srgb,var(--hdr-fg) 72%,transparent)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):hover:not(:disabled){background:color-mix(in srgb,var(--hdr-fg) 12%,transparent);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):focus-visible{outline-color:color-mix(in srgb,var(--hdr-fg) 60%,transparent)}.strct-header__drawer-toggle{display:none;align-items:center;justify-content:center;padding:4px;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--hdr-fg) 85%,transparent);cursor:pointer}.strct-header__drawer-toggle:hover{background:#ffffff1f;color:var(--hdr-fg)}@media(max-width:768px){.strct-header__drawer-toggle{display:inline-flex}}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1163
|
+
`, isInline: true, styles: [".strct-vnav__backdrop{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--backdrop);animation:strct-vnav-backdrop-in .2s ease}@media(min-width:769px){.strct-vnav__backdrop{display:none}}@keyframes strct-vnav-backdrop-in{0%{opacity:0}to{opacity:1}}.strct-header{display:flex;align-items:center;gap:var(--strct-header-gap, 14px);height:56px;padding:0 var(--strct-header-pad, 18px);background:var(--hdr);border-bottom:1px solid var(--b2);color:var(--hdr-fg)}.strct-header--accent{box-shadow:inset 0 -3px 0 var(--strct-header-accent, var(--acc))}@media(max-width:600px){.strct-header{gap:var(--strct-header-gap, 4px);padding:0 var(--strct-header-pad, 6px)}}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *){color:color-mix(in srgb,var(--hdr-fg) 72%,transparent)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):hover:not(:disabled){background:color-mix(in srgb,var(--hdr-fg) 12%,transparent);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):focus-visible{outline-color:color-mix(in srgb,var(--hdr-fg) 60%,transparent)}.strct-header__drawer-toggle{display:none;align-items:center;justify-content:center;padding:4px;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--hdr-fg) 85%,transparent);cursor:pointer}.strct-header__drawer-toggle:hover{background:#ffffff1f;color:var(--hdr-fg)}@media(max-width:768px){.strct-header__drawer-toggle{display:inline-flex}}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1157
1164
|
}
|
|
1158
1165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctHeader, decorators: [{
|
|
1159
1166
|
type: Component,
|
|
@@ -1169,8 +1176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
1169
1176
|
<strct-icon name="menu" [size]="18" />
|
|
1170
1177
|
</button>
|
|
1171
1178
|
<ng-content />
|
|
1172
|
-
`, host: {
|
|
1173
|
-
|
|
1179
|
+
`, host: {
|
|
1180
|
+
class: 'strct-header',
|
|
1181
|
+
'[class.strct-header--accent]': 'accent()',
|
|
1182
|
+
'[style.--strct-header-accent]': 'accent() || null',
|
|
1183
|
+
}, styles: [".strct-vnav__backdrop{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--backdrop);animation:strct-vnav-backdrop-in .2s ease}@media(min-width:769px){.strct-vnav__backdrop{display:none}}@keyframes strct-vnav-backdrop-in{0%{opacity:0}to{opacity:1}}.strct-header{display:flex;align-items:center;gap:var(--strct-header-gap, 14px);height:56px;padding:0 var(--strct-header-pad, 18px);background:var(--hdr);border-bottom:1px solid var(--b2);color:var(--hdr-fg)}.strct-header--accent{box-shadow:inset 0 -3px 0 var(--strct-header-accent, var(--acc))}@media(max-width:600px){.strct-header{gap:var(--strct-header-gap, 4px);padding:0 var(--strct-header-pad, 6px)}}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *){color:color-mix(in srgb,var(--hdr-fg) 72%,transparent)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):hover:not(:disabled){background:color-mix(in srgb,var(--hdr-fg) 12%,transparent);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):focus-visible{outline-color:color-mix(in srgb,var(--hdr-fg) 60%,transparent)}.strct-header__drawer-toggle{display:none;align-items:center;justify-content:center;padding:4px;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--hdr-fg) 85%,transparent);cursor:pointer}.strct-header__drawer-toggle:hover{background:#ffffff1f;color:var(--hdr-fg)}@media(max-width:768px){.strct-header__drawer-toggle{display:inline-flex}}\n"] }]
|
|
1184
|
+
}], propDecorators: { drawerToggleAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawerToggleAriaLabel", required: false }] }], accent: [{ type: i0.Input, args: [{ isSignal: true, alias: "accent", required: false }] }] } });
|
|
1174
1185
|
/** Bottom status bar. */
|
|
1175
1186
|
class StrctFooter {
|
|
1176
1187
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -2323,6 +2334,9 @@ class StrctBadge {
|
|
|
2323
2334
|
const el = this.hostEl.nativeElement;
|
|
2324
2335
|
strctCheckHostInputs(el, 'strct-badge', {
|
|
2325
2336
|
status: 'neutral, accent, success, warning, critical',
|
|
2337
|
+
// A real input since 5.13.0 — a colour of its own, so it takes any
|
|
2338
|
+
// colour token or value rather than one of a list.
|
|
2339
|
+
tone: 'a colour token or value, e.g. var(--prod-acc)',
|
|
2326
2340
|
});
|
|
2327
2341
|
}
|
|
2328
2342
|
});
|
|
@@ -2330,10 +2344,25 @@ class StrctBadge {
|
|
|
2330
2344
|
/** Visual status color. */
|
|
2331
2345
|
status = input('neutral', /* @ts-ignore */
|
|
2332
2346
|
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
2347
|
+
/**
|
|
2348
|
+
* A colour of your own — `tone="var(--prod-acc)"` — for a distinction the
|
|
2349
|
+
* five statuses do not carry, such as which product a row belongs to. The
|
|
2350
|
+
* text takes it and the border a 30% wash of it; `solid` fills with it and
|
|
2351
|
+
* writes in `--strct-badge-on` (`--inv` by default). It overrides `status`.
|
|
2352
|
+
*
|
|
2353
|
+
* The same can be set from a stylesheet with `--strct-badge-fg`,
|
|
2354
|
+
* `--strct-badge-border` and `--strct-badge-on`, which is the better route
|
|
2355
|
+
* when a rule already selects the badges (`.product-badge { … }`).
|
|
2356
|
+
*
|
|
2357
|
+
* The colour is yours to pick, so its contrast is yours to check: the
|
|
2358
|
+
* library's own check covers `--acc` and the status tokens.
|
|
2359
|
+
*/
|
|
2360
|
+
tone = input('', /* @ts-ignore */
|
|
2361
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
2333
2362
|
/** Opt-in filled style instead of the default outlined style. */
|
|
2334
2363
|
solid = input(false, { ...(ngDevMode ? { debugName: "solid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
2335
2364
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2336
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctBadge, isStandalone: true, selector: "strct-badge", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, solid: { classPropertyName: "solid", publicName: "solid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-badge--accent": "status() === 'accent'", "class.strct-badge--success": "status() === 'success'", "class.strct-badge--warning": "status() === 'warning'", "class.strct-badge--warninging": "status() === 'warning'", "class.strct-badge--critical": "status() === 'critical'", "class.strct-badge--solid": "solid()" }, classAttribute: "strct-badge" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".strct-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1;letter-spacing:.2px;padding-block:3px;padding-inline:9px 7px;border-radius:var(--radius-sm);white-space:nowrap;color:var(--t2);background:transparent;border:1px solid var(--b3);border-inline-start-width:3px}.strct-badge--accent{color:var(--acc);border-color:var(--acc30)}.strct-badge--success{color:var(--success);border-color:var(--success)}.strct-badge--warning{color:var(--warning);border-color:var(--warning)}.strct-badge--critical{color:var(--critical);border-color:var(--critical)}.strct-badge--solid{color:var(--t1);background:var(--bg-a);border-color:transparent;border-inline-start-width:1px;padding-inline-start:7px}.strct-badge--solid.strct-badge--accent{background:var(--acc);color:var(--inv)}.strct-badge--solid.strct-badge--success{background:var(--success);color:var(--inv)}.strct-badge--solid.strct-badge--warning{background:var(--warning);color:var(--inv)}.strct-badge--solid.strct-badge--critical{background:var(--critical);color:var(--inv)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2365
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctBadge, isStandalone: true, selector: "strct-badge", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, solid: { classPropertyName: "solid", publicName: "solid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-badge--accent": "status() === 'accent'", "class.strct-badge--success": "status() === 'success'", "class.strct-badge--warning": "status() === 'warning'", "class.strct-badge--warninging": "status() === 'warning'", "class.strct-badge--critical": "status() === 'critical'", "class.strct-badge--solid": "solid()", "class.strct-badge--tone": "tone()", "style.--strct-badge-fg": "tone() || null" }, classAttribute: "strct-badge" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".strct-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1;letter-spacing:.2px;padding-block:3px;padding-inline:9px 7px;border-radius:var(--radius-sm);white-space:nowrap;color:var(--t2);background:transparent;border:1px solid var(--b3);border-inline-start-width:3px}.strct-badge--accent{color:var(--acc);border-color:var(--acc30)}.strct-badge--success{color:var(--success);border-color:var(--success)}.strct-badge--warning{color:var(--warning);border-color:var(--warning)}.strct-badge--critical{color:var(--critical);border-color:var(--critical)}.strct-badge--tone{color:var(--strct-badge-fg, var(--t2));border-color:var( --strct-badge-border, color-mix(in srgb, var(--strct-badge-fg, var(--b3)) 30%, transparent) )}.strct-badge--solid{color:var(--t1);background:var(--bg-a);border-color:transparent;border-inline-start-width:1px;padding-inline-start:7px}.strct-badge--solid.strct-badge--accent{background:var(--acc);color:var(--inv)}.strct-badge--solid.strct-badge--success{background:var(--success);color:var(--inv)}.strct-badge--solid.strct-badge--warning{background:var(--warning);color:var(--inv)}.strct-badge--solid.strct-badge--critical{background:var(--critical);color:var(--inv)}.strct-badge--solid.strct-badge--tone{background:var(--strct-badge-fg, var(--bg-a));color:var(--strct-badge-on, var(--inv));border-color:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2337
2366
|
}
|
|
2338
2367
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctBadge, decorators: [{
|
|
2339
2368
|
type: Component,
|
|
@@ -2346,8 +2375,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
2346
2375
|
'[class.strct-badge--warninging]': "status() === 'warning'",
|
|
2347
2376
|
'[class.strct-badge--critical]': "status() === 'critical'",
|
|
2348
2377
|
'[class.strct-badge--solid]': 'solid()',
|
|
2349
|
-
|
|
2350
|
-
|
|
2378
|
+
'[class.strct-badge--tone]': 'tone()',
|
|
2379
|
+
'[style.--strct-badge-fg]': 'tone() || null',
|
|
2380
|
+
}, styles: [".strct-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1;letter-spacing:.2px;padding-block:3px;padding-inline:9px 7px;border-radius:var(--radius-sm);white-space:nowrap;color:var(--t2);background:transparent;border:1px solid var(--b3);border-inline-start-width:3px}.strct-badge--accent{color:var(--acc);border-color:var(--acc30)}.strct-badge--success{color:var(--success);border-color:var(--success)}.strct-badge--warning{color:var(--warning);border-color:var(--warning)}.strct-badge--critical{color:var(--critical);border-color:var(--critical)}.strct-badge--tone{color:var(--strct-badge-fg, var(--t2));border-color:var( --strct-badge-border, color-mix(in srgb, var(--strct-badge-fg, var(--b3)) 30%, transparent) )}.strct-badge--solid{color:var(--t1);background:var(--bg-a);border-color:transparent;border-inline-start-width:1px;padding-inline-start:7px}.strct-badge--solid.strct-badge--accent{background:var(--acc);color:var(--inv)}.strct-badge--solid.strct-badge--success{background:var(--success);color:var(--inv)}.strct-badge--solid.strct-badge--warning{background:var(--warning);color:var(--inv)}.strct-badge--solid.strct-badge--critical{background:var(--critical);color:var(--inv)}.strct-badge--solid.strct-badge--tone{background:var(--strct-badge-fg, var(--bg-a));color:var(--strct-badge-on, var(--inv));border-color:transparent}\n"] }]
|
|
2381
|
+
}], ctorParameters: () => [], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], solid: [{ type: i0.Input, args: [{ isSignal: true, alias: "solid", required: false }] }] } });
|
|
2351
2382
|
|
|
2352
2383
|
/** Content rendered before the tag's text — a status dot, an icon. */
|
|
2353
2384
|
class StrctTagLeading {
|
|
@@ -5873,6 +5904,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
5873
5904
|
},
|
|
5874
5905
|
}]
|
|
5875
5906
|
}] });
|
|
5907
|
+
/**
|
|
5908
|
+
* A leading icon for a menu row, in a colour of its own:
|
|
5909
|
+
* `<strct-icon strctDropdownItemIcon tone="var(--prod-acc)" name="shield" />`.
|
|
5910
|
+
* The row keeps its text aligned whether or not the icon is there.
|
|
5911
|
+
*/
|
|
5912
|
+
class StrctDropdownItemIcon {
|
|
5913
|
+
/** A colour token or value — a product's accent, say. */
|
|
5914
|
+
tone = input('', /* @ts-ignore */
|
|
5915
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
5916
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5917
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: StrctDropdownItemIcon, isStandalone: true, selector: "[strctDropdownItemIcon]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.color": "tone() || null" }, classAttribute: "strct-dd__itemlead" }, ngImport: i0 });
|
|
5918
|
+
}
|
|
5919
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemIcon, decorators: [{
|
|
5920
|
+
type: Directive,
|
|
5921
|
+
args: [{
|
|
5922
|
+
selector: '[strctDropdownItemIcon]',
|
|
5923
|
+
host: { class: 'strct-dd__itemlead', '[style.color]': 'tone() || null' },
|
|
5924
|
+
}]
|
|
5925
|
+
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }] } });
|
|
5926
|
+
/**
|
|
5927
|
+
* The row's label, when the row also carries a description. A screen reader
|
|
5928
|
+
* reads a row in DOM order, and a projected slot can only be declared before
|
|
5929
|
+
* the catch-all one — so marking the label is what keeps "HyperStruct Backup"
|
|
5930
|
+
* ahead of "2 VMs past RPO" in what the row is called. A row without a
|
|
5931
|
+
* description does not need it.
|
|
5932
|
+
*/
|
|
5933
|
+
class StrctDropdownItemLabel {
|
|
5934
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5935
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctDropdownItemLabel, isStandalone: true, selector: "[strctDropdownItemLabel]", host: { classAttribute: "strct-dd__itemlabel" }, ngImport: i0 });
|
|
5936
|
+
}
|
|
5937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemLabel, decorators: [{
|
|
5938
|
+
type: Directive,
|
|
5939
|
+
args: [{
|
|
5940
|
+
selector: '[strctDropdownItemLabel]',
|
|
5941
|
+
host: { class: 'strct-dd__itemlabel' },
|
|
5942
|
+
}]
|
|
5943
|
+
}] });
|
|
5944
|
+
/**
|
|
5945
|
+
* A second, quieter line under a row's label: "● 2 VMs past RPO" under
|
|
5946
|
+
* "HyperStruct Backup". It is inside the row, so it is part of what the row
|
|
5947
|
+
* is called — put the label in `[strctDropdownItemLabel]` so it is read
|
|
5948
|
+
* first.
|
|
5949
|
+
*/
|
|
5950
|
+
class StrctDropdownItemDescription {
|
|
5951
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5952
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctDropdownItemDescription, isStandalone: true, selector: "[strctDropdownItemDescription]", host: { classAttribute: "strct-dd__itemdesc" }, ngImport: i0 });
|
|
5953
|
+
}
|
|
5954
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItemDescription, decorators: [{
|
|
5955
|
+
type: Directive,
|
|
5956
|
+
args: [{
|
|
5957
|
+
selector: '[strctDropdownItemDescription]',
|
|
5958
|
+
host: { class: 'strct-dd__itemdesc' },
|
|
5959
|
+
}]
|
|
5960
|
+
}] });
|
|
5876
5961
|
class StrctDropdownItem {
|
|
5877
5962
|
/**
|
|
5878
5963
|
* Select-like usage: bind `selected` and the item becomes a
|
|
@@ -5914,6 +5999,18 @@ class StrctDropdownItem {
|
|
|
5914
5999
|
// runs before those listeners, and stopping here also keeps the menu's own
|
|
5915
6000
|
// activate-and-close handler from seeing it.
|
|
5916
6001
|
const host = inject((ElementRef)).nativeElement;
|
|
6002
|
+
// Dev-only: a description reads before an unmarked label, which is the
|
|
6003
|
+
// one thing this slot must not do.
|
|
6004
|
+
afterNextRender(() => {
|
|
6005
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
6006
|
+
if (host.querySelector('.strct-dd__itemdesc') &&
|
|
6007
|
+
!host.querySelector('.strct-dd__itemlabel')) {
|
|
6008
|
+
strctDevWarn('dd-item-description-without-label', '[strct] strct-dropdown-item: a [strctDropdownItemDescription] row reads its ' +
|
|
6009
|
+
'description before its label, because a slot can only be declared before the ' +
|
|
6010
|
+
'catch-all one. Wrap the label in [strctDropdownItemLabel].');
|
|
6011
|
+
}
|
|
6012
|
+
}
|
|
6013
|
+
});
|
|
5917
6014
|
host.addEventListener('click', (event) => {
|
|
5918
6015
|
if (!this.disabled())
|
|
5919
6016
|
return;
|
|
@@ -5929,15 +6026,21 @@ class StrctDropdownItem {
|
|
|
5929
6026
|
}
|
|
5930
6027
|
</span>
|
|
5931
6028
|
}
|
|
5932
|
-
<!--
|
|
5933
|
-
|
|
6029
|
+
<!-- Every selective slot is declared before the catch-all, or the
|
|
6030
|
+
catch-all would swallow its content; the visual order is CSS's
|
|
6031
|
+
(the label is raw text, which only source order can place). -->
|
|
6032
|
+
<ng-content select="[strctDropdownItemIcon]" />
|
|
5934
6033
|
<ng-content select="[strctDropdownItemAction]" />
|
|
6034
|
+
<span class="strct-dd__itemtext">
|
|
6035
|
+
<ng-content select="[strctDropdownItemLabel]" />
|
|
6036
|
+
<ng-content select="[strctDropdownItemDescription]" />
|
|
6037
|
+
</span>
|
|
5935
6038
|
<ng-content />
|
|
5936
6039
|
@if (hint()) {
|
|
5937
6040
|
<!-- hidden: kept out of the item's accessible NAME, still read as its
|
|
5938
6041
|
description through aria-describedby. -->
|
|
5939
6042
|
<span [id]="hintId" hidden>{{ hint() }}</span>
|
|
5940
|
-
}`, isInline: true, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__itemaction{order:1;margin-inline-start:auto;flex:none}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}.strct-dd__item--hinted[aria-disabled=true]{pointer-events:auto;cursor:not-allowed}.strct-dd__item--hinted[aria-disabled=true]:hover{background:transparent}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6043
|
+
}`, isInline: true, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__itemaction{order:1;margin-inline-start:auto;flex:none}.strct-dd__itemlead{flex:none;display:inline-flex;align-items:center}.strct-dd__itemlabel{min-width:0;overflow:hidden;text-overflow:ellipsis}.strct-dd__itemtext{display:contents}.strct-dd__item:has(.strct-dd__itemdesc) .strct-dd__itemtext{display:flex;flex-direction:column;row-gap:2px;min-width:0}.strct-dd__itemdesc{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--t2)}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}.strct-dd__item--hinted[aria-disabled=true]{pointer-events:auto;cursor:not-allowed}.strct-dd__item--hinted[aria-disabled=true]:hover{background:transparent}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5941
6044
|
}
|
|
5942
6045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItem, decorators: [{
|
|
5943
6046
|
type: Component,
|
|
@@ -5948,9 +6051,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
5948
6051
|
}
|
|
5949
6052
|
</span>
|
|
5950
6053
|
}
|
|
5951
|
-
<!--
|
|
5952
|
-
|
|
6054
|
+
<!-- Every selective slot is declared before the catch-all, or the
|
|
6055
|
+
catch-all would swallow its content; the visual order is CSS's
|
|
6056
|
+
(the label is raw text, which only source order can place). -->
|
|
6057
|
+
<ng-content select="[strctDropdownItemIcon]" />
|
|
5953
6058
|
<ng-content select="[strctDropdownItemAction]" />
|
|
6059
|
+
<span class="strct-dd__itemtext">
|
|
6060
|
+
<ng-content select="[strctDropdownItemLabel]" />
|
|
6061
|
+
<ng-content select="[strctDropdownItemDescription]" />
|
|
6062
|
+
</span>
|
|
5954
6063
|
<ng-content />
|
|
5955
6064
|
@if (hint()) {
|
|
5956
6065
|
<!-- hidden: kept out of the item's accessible NAME, still read as its
|
|
@@ -5968,8 +6077,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
5968
6077
|
'[class.strct-dd__item--critical]': 'critical()',
|
|
5969
6078
|
'[class.strct-dd__item--selected]': 'selected() === true',
|
|
5970
6079
|
'[attr.aria-disabled]': 'disabled() || null',
|
|
5971
|
-
}, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__itemaction{order:1;margin-inline-start:auto;flex:none}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}.strct-dd__item--hinted[aria-disabled=true]{pointer-events:auto;cursor:not-allowed}.strct-dd__item--hinted[aria-disabled=true]:hover{background:transparent}\n"] }]
|
|
6080
|
+
}, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__itemaction{order:1;margin-inline-start:auto;flex:none}.strct-dd__itemlead{flex:none;display:inline-flex;align-items:center}.strct-dd__itemlabel{min-width:0;overflow:hidden;text-overflow:ellipsis}.strct-dd__itemtext{display:contents}.strct-dd__item:has(.strct-dd__itemdesc) .strct-dd__itemtext{display:flex;flex-direction:column;row-gap:2px;min-width:0}.strct-dd__itemdesc{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--t2)}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}.strct-dd__item--hinted[aria-disabled=true]{pointer-events:auto;cursor:not-allowed}.strct-dd__item--hinted[aria-disabled=true]:hover{background:transparent}\n"] }]
|
|
5972
6081
|
}], ctorParameters: () => [], propDecorators: { selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], critical: [{ type: i0.Input, args: [{ isSignal: true, alias: "critical", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }] } });
|
|
6082
|
+
/**
|
|
6083
|
+
* A named group of rows — "Create" above the create actions, where a divider
|
|
6084
|
+
* alone leaves what the group is unsaid. The label is not an item: the arrows
|
|
6085
|
+
* pass over it and it is never activated.
|
|
6086
|
+
*/
|
|
6087
|
+
class StrctDropdownGroup {
|
|
6088
|
+
/** What the group is — read when a screen reader enters it. */
|
|
6089
|
+
label = input('', /* @ts-ignore */
|
|
6090
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
6091
|
+
labelId = `strct-dd-group-${++dropdownItemCounter}-label`;
|
|
6092
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6093
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctDropdownGroup, isStandalone: true, selector: "strct-dropdown-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelId" }, classAttribute: "strct-dd__group" }, ngImport: i0, template: `<div class="strct-dd__grouplabel" [id]="labelId" role="presentation">
|
|
6094
|
+
{{ label() }}
|
|
6095
|
+
</div>
|
|
6096
|
+
<ng-content />`, isInline: true, styles: [".strct-dd__group{display:block}.strct-dd__group+.strct-dd__group{margin-top:4px;border-top:1px solid var(--b2);padding-top:4px}.strct-dd__grouplabel{padding:6px 10px 2px;font-size:var(--text-xs, 11px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6097
|
+
}
|
|
6098
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownGroup, decorators: [{
|
|
6099
|
+
type: Component,
|
|
6100
|
+
args: [{ selector: 'strct-dropdown-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `<div class="strct-dd__grouplabel" [id]="labelId" role="presentation">
|
|
6101
|
+
{{ label() }}
|
|
6102
|
+
</div>
|
|
6103
|
+
<ng-content />`, host: {
|
|
6104
|
+
class: 'strct-dd__group',
|
|
6105
|
+
role: 'group',
|
|
6106
|
+
'[attr.aria-labelledby]': 'labelId',
|
|
6107
|
+
}, styles: [".strct-dd__group{display:block}.strct-dd__group+.strct-dd__group{margin-top:4px;border-top:1px solid var(--b2);padding-top:4px}.strct-dd__grouplabel{padding:6px 10px 2px;font-size:var(--text-xs, 11px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}\n"] }]
|
|
6108
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
5973
6109
|
/** Thin separator between groups of menu items. */
|
|
5974
6110
|
class StrctDropdownDivider {
|
|
5975
6111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -7324,6 +7460,12 @@ class StrctCommandPalette {
|
|
|
7324
7460
|
* rendering.
|
|
7325
7461
|
*/
|
|
7326
7462
|
filter = input(true, { ...(ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7463
|
+
/**
|
|
7464
|
+
* The order the sections are drawn in — the product you are in first, say.
|
|
7465
|
+
* Sections not named here follow, in the order their first result arrives.
|
|
7466
|
+
*/
|
|
7467
|
+
sectionOrder = input([], /* @ts-ignore */
|
|
7468
|
+
...(ngDevMode ? [{ debugName: "sectionOrder" }] : /* istanbul ignore next */ []));
|
|
7327
7469
|
/** Show a "searching" row while server results are in flight. */
|
|
7328
7470
|
loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7329
7471
|
/** Localizable text of the loading row. */
|
|
@@ -7344,19 +7486,39 @@ class StrctCommandPalette {
|
|
|
7344
7486
|
optionId(i) {
|
|
7345
7487
|
return `${this.listId}-opt-${i}`;
|
|
7346
7488
|
}
|
|
7489
|
+
/**
|
|
7490
|
+
* The results in their drawn order, chunked into sections. The flat index
|
|
7491
|
+
* each row carries is the one the keyboard and `aria-activedescendant`
|
|
7492
|
+
* use, so what the arrows do and what the eye sees stay the same list.
|
|
7493
|
+
*/
|
|
7494
|
+
sections = computed(() => {
|
|
7495
|
+
const out = [];
|
|
7496
|
+
this.filtered().forEach((item, index) => {
|
|
7497
|
+
const label = item.section ?? '';
|
|
7498
|
+
const last = out[out.length - 1];
|
|
7499
|
+
if (last && last.label === label)
|
|
7500
|
+
last.rows.push({ item, index });
|
|
7501
|
+
else
|
|
7502
|
+
out.push({ label, id: `${this.listId}-sec-${out.length}`, rows: [{ item, index }] });
|
|
7503
|
+
});
|
|
7504
|
+
return out;
|
|
7505
|
+
}, /* @ts-ignore */
|
|
7506
|
+
...(ngDevMode ? [{ debugName: "sections" }] : /* istanbul ignore next */ []));
|
|
7347
7507
|
/** Rank: label prefix > word-start > substring; group/keyword matches last. */
|
|
7348
7508
|
filtered = computed(() => {
|
|
7349
7509
|
const items = this.items();
|
|
7350
7510
|
// Server-backed mode: the caller already filtered — render as given.
|
|
7351
7511
|
if (!this.filter())
|
|
7352
|
-
return items.slice(0, this.maxResults());
|
|
7512
|
+
return this.bySection(items.slice(0, this.maxResults()));
|
|
7353
7513
|
const q = this.query().trim().toLowerCase();
|
|
7354
7514
|
if (!q)
|
|
7355
|
-
return items.slice(0, this.maxResults());
|
|
7515
|
+
return this.bySection(items.slice(0, this.maxResults()));
|
|
7356
7516
|
const scored = [];
|
|
7357
7517
|
for (const item of items) {
|
|
7358
7518
|
const label = item.label.toLowerCase();
|
|
7359
|
-
const hay = [item.group ?? '', ...(item.keywords ?? [])]
|
|
7519
|
+
const hay = [item.group ?? '', item.section ?? '', ...(item.keywords ?? [])]
|
|
7520
|
+
.join(' ')
|
|
7521
|
+
.toLowerCase();
|
|
7360
7522
|
let score = -1;
|
|
7361
7523
|
if (label.startsWith(q))
|
|
7362
7524
|
score = 0;
|
|
@@ -7369,12 +7531,30 @@ class StrctCommandPalette {
|
|
|
7369
7531
|
if (score >= 0)
|
|
7370
7532
|
scored.push({ item, score });
|
|
7371
7533
|
}
|
|
7372
|
-
return scored
|
|
7534
|
+
return this.bySection(scored
|
|
7373
7535
|
.sort((a, b) => a.score - b.score)
|
|
7374
7536
|
.slice(0, this.maxResults())
|
|
7375
|
-
.map((s) => s.item);
|
|
7537
|
+
.map((s) => s.item));
|
|
7376
7538
|
}, /* @ts-ignore */
|
|
7377
7539
|
...(ngDevMode ? [{ debugName: "filtered" }] : /* istanbul ignore next */ []));
|
|
7540
|
+
/**
|
|
7541
|
+
* Keeps each section's results together, in `sectionOrder` where it is
|
|
7542
|
+
* given and otherwise in the order the sections first appear. The sort is
|
|
7543
|
+
* stable, so how well a result matched still orders it inside its section.
|
|
7544
|
+
*/
|
|
7545
|
+
bySection(list) {
|
|
7546
|
+
const rank = new Map();
|
|
7547
|
+
this.sectionOrder().forEach((name, i) => rank.set(name, i));
|
|
7548
|
+
let next = rank.size;
|
|
7549
|
+
for (const item of list) {
|
|
7550
|
+
const key = item.section ?? '';
|
|
7551
|
+
if (!rank.has(key))
|
|
7552
|
+
rank.set(key, next++);
|
|
7553
|
+
}
|
|
7554
|
+
if (rank.size < 2)
|
|
7555
|
+
return list;
|
|
7556
|
+
return [...list].sort((a, b) => rank.get(a.section ?? '') - rank.get(b.section ?? ''));
|
|
7557
|
+
}
|
|
7378
7558
|
constructor() {
|
|
7379
7559
|
// Async results can shrink under the cursor — keep the active option in range.
|
|
7380
7560
|
effect(() => {
|
|
@@ -7453,7 +7633,7 @@ class StrctCommandPalette {
|
|
|
7453
7633
|
this.open.set(false);
|
|
7454
7634
|
}
|
|
7455
7635
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctCommandPalette, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7456
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctCommandPalette, isStandalone: true, selector: "strct-command-palette", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, hotkey: { classPropertyName: "hotkey", publicName: "hotkey", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, maxResults: { classPropertyName: "maxResults", publicName: "maxResults", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", picked: "picked", query: "queryChange" }, host: { listeners: { "document:keydown": "onGlobalKey($event)" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7636
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctCommandPalette, isStandalone: true, selector: "strct-command-palette", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, hotkey: { classPropertyName: "hotkey", publicName: "hotkey", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, maxResults: { classPropertyName: "maxResults", publicName: "maxResults", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, sectionOrder: { classPropertyName: "sectionOrder", publicName: "sectionOrder", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", picked: "picked", query: "queryChange" }, host: { listeners: { "document:keydown": "onGlobalKey($event)" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7457
7637
|
@if (open()) {
|
|
7458
7638
|
<!-- Backdrop: pointer-only dismiss (Escape covers keyboard). -->
|
|
7459
7639
|
<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->
|
|
@@ -7489,34 +7669,61 @@ class StrctCommandPalette {
|
|
|
7489
7669
|
<span class="strct-cmdp__spin" aria-hidden="true"></span>{{ loadingText() }}
|
|
7490
7670
|
</div>
|
|
7491
7671
|
}
|
|
7492
|
-
|
|
7493
|
-
|
|
7494
|
-
|
|
7495
|
-
|
|
7496
|
-
|
|
7497
|
-
|
|
7498
|
-
|
|
7499
|
-
[
|
|
7500
|
-
tabindex="-1"
|
|
7501
|
-
(click)="pick(item)"
|
|
7502
|
-
(mousemove)="activeIndex.set(i)"
|
|
7672
|
+
<!-- A section is a group with a heading, not an option: the
|
|
7673
|
+
heading is never active and never picked, and the arrows
|
|
7674
|
+
move through every option across every section. -->
|
|
7675
|
+
@for (section of sections(); track section.id) {
|
|
7676
|
+
<div
|
|
7677
|
+
class="strct-cmdp__sec"
|
|
7678
|
+
role="group"
|
|
7679
|
+
[attr.aria-labelledby]="section.label ? section.id : null"
|
|
7503
7680
|
>
|
|
7504
|
-
@if (
|
|
7505
|
-
<strct-
|
|
7506
|
-
class="strct-cmdp__icon"
|
|
7507
|
-
[name]="item.icon"
|
|
7508
|
-
[size]="16"
|
|
7509
|
-
[strokeWidth]="1.4"
|
|
7510
|
-
/>
|
|
7511
|
-
}
|
|
7512
|
-
<span class="strct-cmdp__label">{{ item.label }}</span>
|
|
7513
|
-
@if (item.hint) {
|
|
7514
|
-
<strct-kbd>{{ item.hint }}</strct-kbd>
|
|
7681
|
+
@if (section.label) {
|
|
7682
|
+
<div class="strct-cmdp__section" [id]="section.id">{{ section.label }}</div>
|
|
7515
7683
|
}
|
|
7516
|
-
@
|
|
7517
|
-
<
|
|
7684
|
+
@for (row of section.rows; track row.item.id) {
|
|
7685
|
+
<button
|
|
7686
|
+
type="button"
|
|
7687
|
+
class="strct-cmdp__item"
|
|
7688
|
+
role="option"
|
|
7689
|
+
[id]="optionId(row.index)"
|
|
7690
|
+
[attr.aria-selected]="row.index === activeIndex()"
|
|
7691
|
+
[class.is-active]="row.index === activeIndex()"
|
|
7692
|
+
tabindex="-1"
|
|
7693
|
+
(click)="pick(row.item)"
|
|
7694
|
+
(mousemove)="activeIndex.set(row.index)"
|
|
7695
|
+
>
|
|
7696
|
+
@if (row.item.icon) {
|
|
7697
|
+
<strct-icon
|
|
7698
|
+
class="strct-cmdp__icon"
|
|
7699
|
+
[name]="row.item.icon"
|
|
7700
|
+
[size]="16"
|
|
7701
|
+
[strokeWidth]="1.4"
|
|
7702
|
+
/>
|
|
7703
|
+
}
|
|
7704
|
+
<span class="strct-cmdp__text">
|
|
7705
|
+
<span class="strct-cmdp__label">{{ row.item.label }}</span>
|
|
7706
|
+
@if (row.item.description) {
|
|
7707
|
+
<span class="strct-cmdp__desc">{{ row.item.description }}</span>
|
|
7708
|
+
}
|
|
7709
|
+
</span>
|
|
7710
|
+
@if (row.item.hint) {
|
|
7711
|
+
<strct-kbd>{{ row.item.hint }}</strct-kbd>
|
|
7712
|
+
}
|
|
7713
|
+
@if (row.item.badge; as badge) {
|
|
7714
|
+
<strct-badge
|
|
7715
|
+
class="strct-cmdp__badge"
|
|
7716
|
+
[status]="badge.status ?? 'neutral'"
|
|
7717
|
+
[tone]="badge.tone ?? ''"
|
|
7718
|
+
>{{ badge.label }}</strct-badge
|
|
7719
|
+
>
|
|
7720
|
+
}
|
|
7721
|
+
@if (row.item.group) {
|
|
7722
|
+
<span class="strct-cmdp__group">{{ row.item.group }}</span>
|
|
7723
|
+
}
|
|
7724
|
+
</button>
|
|
7518
7725
|
}
|
|
7519
|
-
</
|
|
7726
|
+
</div>
|
|
7520
7727
|
} @empty {
|
|
7521
7728
|
@if (!loading()) {
|
|
7522
7729
|
<div class="strct-cmdp__empty">{{ emptyText() }} “{{ query() }}”</div>
|
|
@@ -7526,11 +7733,11 @@ class StrctCommandPalette {
|
|
|
7526
7733
|
</div>
|
|
7527
7734
|
</div>
|
|
7528
7735
|
}
|
|
7529
|
-
`, isInline: true, styles: [".strct-cmdp__backdrop{position:fixed;inset:0;z-index:var(--z-toast);display:flex;justify-content:center;align-items:flex-start;padding:14vh 16px 16px;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-cmdp-fade .12s ease}.strct-cmdp{width:100%;max-width:560px;max-height:60vh;display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-floating);overflow:hidden;animation:strct-cmdp-rise .14s ease}.strct-cmdp__search{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--b1);color:var(--t3)}.strct-cmdp__input{flex:1;min-width:0;border:0;background:transparent;color:var(--t1);font-size:15px;font-family:var(--font);outline:none}.strct-cmdp__list{overflow-y:auto;padding:6px}.strct-cmdp__item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:0;border-radius:var(--radius-md);background:transparent;cursor:pointer;text-align:start;font-family:var(--font)}.strct-cmdp__item.is-active{background:var(--acc-m)}.strct-cmdp__icon{color:var(--t2);flex-shrink:0}.strct-cmdp__item.is-active .strct-cmdp__icon{color:var(--acc)}.strct-cmdp__label{flex:1;min-width:0;font-size:var(--text-lg);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-cmdp__group{font-size:var(--text-sm);color:var(--t3);flex-
|
|
7736
|
+
`, isInline: true, styles: [".strct-cmdp__backdrop{position:fixed;inset:0;z-index:var(--z-toast);display:flex;justify-content:center;align-items:flex-start;padding:14vh 16px 16px;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-cmdp-fade .12s ease}.strct-cmdp{width:100%;max-width:560px;max-height:60vh;display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-floating);overflow:hidden;animation:strct-cmdp-rise .14s ease}.strct-cmdp__search{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--b1);color:var(--t3)}.strct-cmdp__input{flex:1;min-width:0;border:0;background:transparent;color:var(--t1);font-size:15px;font-family:var(--font);outline:none}.strct-cmdp__list{overflow-y:auto;padding:6px}.strct-cmdp__item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:0;border-radius:var(--radius-md);background:transparent;cursor:pointer;text-align:start;font-family:var(--font)}.strct-cmdp__item.is-active{background:var(--acc-m)}.strct-cmdp__icon{color:var(--t2);flex-shrink:0}.strct-cmdp__item.is-active .strct-cmdp__icon{color:var(--acc)}.strct-cmdp__label{flex:1;min-width:0;font-size:var(--text-lg);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-cmdp__group{font-size:var(--text-sm);color:var(--t3);flex:0 20 auto;min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-cmdp__text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.strct-cmdp__desc{font-size:var(--text-sm);color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-cmdp__badge{flex:none}.strct-cmdp__section{padding:8px 12px 4px;font-size:var(--text-xs, 11px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}.strct-cmdp__loading{display:flex;align-items:center;gap:9px;padding:10px 12px;font-size:var(--text-md);color:var(--t3)}.strct-cmdp__spin{width:13px;height:13px;border:2px solid var(--acc30);border-top-color:var(--acc);border-radius:50%;flex-shrink:0}@media(prefers-reduced-motion:no-preference){.strct-cmdp__spin{animation:strct-cmdp-spin .8s linear infinite}}@keyframes strct-cmdp-spin{to{transform:rotate(360deg)}}.strct-cmdp__empty{padding:20px;text-align:center;font-size:var(--text-md);color:var(--t3)}@keyframes strct-cmdp-fade{0%{opacity:0}}@keyframes strct-cmdp-rise{0%{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.strct-cmdp__backdrop,.strct-cmdp{animation:none}}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "component", type: StrctKbd, selector: "strct-kbd" }, { kind: "component", type: StrctBadge, selector: "strct-badge", inputs: ["status", "tone", "solid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7530
7737
|
}
|
|
7531
7738
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctCommandPalette, decorators: [{
|
|
7532
7739
|
type: Component,
|
|
7533
|
-
args: [{ selector: 'strct-command-palette', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctKbd], host: { '(document:keydown)': 'onGlobalKey($event)' }, template: `
|
|
7740
|
+
args: [{ selector: 'strct-command-palette', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctKbd, StrctBadge], host: { '(document:keydown)': 'onGlobalKey($event)' }, template: `
|
|
7534
7741
|
@if (open()) {
|
|
7535
7742
|
<!-- Backdrop: pointer-only dismiss (Escape covers keyboard). -->
|
|
7536
7743
|
<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->
|
|
@@ -7566,34 +7773,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7566
7773
|
<span class="strct-cmdp__spin" aria-hidden="true"></span>{{ loadingText() }}
|
|
7567
7774
|
</div>
|
|
7568
7775
|
}
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
[
|
|
7577
|
-
tabindex="-1"
|
|
7578
|
-
(click)="pick(item)"
|
|
7579
|
-
(mousemove)="activeIndex.set(i)"
|
|
7776
|
+
<!-- A section is a group with a heading, not an option: the
|
|
7777
|
+
heading is never active and never picked, and the arrows
|
|
7778
|
+
move through every option across every section. -->
|
|
7779
|
+
@for (section of sections(); track section.id) {
|
|
7780
|
+
<div
|
|
7781
|
+
class="strct-cmdp__sec"
|
|
7782
|
+
role="group"
|
|
7783
|
+
[attr.aria-labelledby]="section.label ? section.id : null"
|
|
7580
7784
|
>
|
|
7581
|
-
@if (
|
|
7582
|
-
<strct-
|
|
7583
|
-
class="strct-cmdp__icon"
|
|
7584
|
-
[name]="item.icon"
|
|
7585
|
-
[size]="16"
|
|
7586
|
-
[strokeWidth]="1.4"
|
|
7587
|
-
/>
|
|
7588
|
-
}
|
|
7589
|
-
<span class="strct-cmdp__label">{{ item.label }}</span>
|
|
7590
|
-
@if (item.hint) {
|
|
7591
|
-
<strct-kbd>{{ item.hint }}</strct-kbd>
|
|
7785
|
+
@if (section.label) {
|
|
7786
|
+
<div class="strct-cmdp__section" [id]="section.id">{{ section.label }}</div>
|
|
7592
7787
|
}
|
|
7593
|
-
@
|
|
7594
|
-
<
|
|
7788
|
+
@for (row of section.rows; track row.item.id) {
|
|
7789
|
+
<button
|
|
7790
|
+
type="button"
|
|
7791
|
+
class="strct-cmdp__item"
|
|
7792
|
+
role="option"
|
|
7793
|
+
[id]="optionId(row.index)"
|
|
7794
|
+
[attr.aria-selected]="row.index === activeIndex()"
|
|
7795
|
+
[class.is-active]="row.index === activeIndex()"
|
|
7796
|
+
tabindex="-1"
|
|
7797
|
+
(click)="pick(row.item)"
|
|
7798
|
+
(mousemove)="activeIndex.set(row.index)"
|
|
7799
|
+
>
|
|
7800
|
+
@if (row.item.icon) {
|
|
7801
|
+
<strct-icon
|
|
7802
|
+
class="strct-cmdp__icon"
|
|
7803
|
+
[name]="row.item.icon"
|
|
7804
|
+
[size]="16"
|
|
7805
|
+
[strokeWidth]="1.4"
|
|
7806
|
+
/>
|
|
7807
|
+
}
|
|
7808
|
+
<span class="strct-cmdp__text">
|
|
7809
|
+
<span class="strct-cmdp__label">{{ row.item.label }}</span>
|
|
7810
|
+
@if (row.item.description) {
|
|
7811
|
+
<span class="strct-cmdp__desc">{{ row.item.description }}</span>
|
|
7812
|
+
}
|
|
7813
|
+
</span>
|
|
7814
|
+
@if (row.item.hint) {
|
|
7815
|
+
<strct-kbd>{{ row.item.hint }}</strct-kbd>
|
|
7816
|
+
}
|
|
7817
|
+
@if (row.item.badge; as badge) {
|
|
7818
|
+
<strct-badge
|
|
7819
|
+
class="strct-cmdp__badge"
|
|
7820
|
+
[status]="badge.status ?? 'neutral'"
|
|
7821
|
+
[tone]="badge.tone ?? ''"
|
|
7822
|
+
>{{ badge.label }}</strct-badge
|
|
7823
|
+
>
|
|
7824
|
+
}
|
|
7825
|
+
@if (row.item.group) {
|
|
7826
|
+
<span class="strct-cmdp__group">{{ row.item.group }}</span>
|
|
7827
|
+
}
|
|
7828
|
+
</button>
|
|
7595
7829
|
}
|
|
7596
|
-
</
|
|
7830
|
+
</div>
|
|
7597
7831
|
} @empty {
|
|
7598
7832
|
@if (!loading()) {
|
|
7599
7833
|
<div class="strct-cmdp__empty">{{ emptyText() }} “{{ query() }}”</div>
|
|
@@ -7603,8 +7837,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
7603
7837
|
</div>
|
|
7604
7838
|
</div>
|
|
7605
7839
|
}
|
|
7606
|
-
`, styles: [".strct-cmdp__backdrop{position:fixed;inset:0;z-index:var(--z-toast);display:flex;justify-content:center;align-items:flex-start;padding:14vh 16px 16px;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-cmdp-fade .12s ease}.strct-cmdp{width:100%;max-width:560px;max-height:60vh;display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-floating);overflow:hidden;animation:strct-cmdp-rise .14s ease}.strct-cmdp__search{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--b1);color:var(--t3)}.strct-cmdp__input{flex:1;min-width:0;border:0;background:transparent;color:var(--t1);font-size:15px;font-family:var(--font);outline:none}.strct-cmdp__list{overflow-y:auto;padding:6px}.strct-cmdp__item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:0;border-radius:var(--radius-md);background:transparent;cursor:pointer;text-align:start;font-family:var(--font)}.strct-cmdp__item.is-active{background:var(--acc-m)}.strct-cmdp__icon{color:var(--t2);flex-shrink:0}.strct-cmdp__item.is-active .strct-cmdp__icon{color:var(--acc)}.strct-cmdp__label{flex:1;min-width:0;font-size:var(--text-lg);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-cmdp__group{font-size:var(--text-sm);color:var(--t3);flex-
|
|
7607
|
-
}], ctorParameters: () => [], propDecorators: { inputRef: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], hotkey: [{ type: i0.Input, args: [{ isSignal: true, alias: "hotkey", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], maxResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxResults", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], picked: [{ type: i0.Output, args: ["picked"] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }] } });
|
|
7840
|
+
`, styles: [".strct-cmdp__backdrop{position:fixed;inset:0;z-index:var(--z-toast);display:flex;justify-content:center;align-items:flex-start;padding:14vh 16px 16px;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-cmdp-fade .12s ease}.strct-cmdp{width:100%;max-width:560px;max-height:60vh;display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-floating);overflow:hidden;animation:strct-cmdp-rise .14s ease}.strct-cmdp__search{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--b1);color:var(--t3)}.strct-cmdp__input{flex:1;min-width:0;border:0;background:transparent;color:var(--t1);font-size:15px;font-family:var(--font);outline:none}.strct-cmdp__list{overflow-y:auto;padding:6px}.strct-cmdp__item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:0;border-radius:var(--radius-md);background:transparent;cursor:pointer;text-align:start;font-family:var(--font)}.strct-cmdp__item.is-active{background:var(--acc-m)}.strct-cmdp__icon{color:var(--t2);flex-shrink:0}.strct-cmdp__item.is-active .strct-cmdp__icon{color:var(--acc)}.strct-cmdp__label{flex:1;min-width:0;font-size:var(--text-lg);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-cmdp__group{font-size:var(--text-sm);color:var(--t3);flex:0 20 auto;min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-cmdp__text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.strct-cmdp__desc{font-size:var(--text-sm);color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-cmdp__badge{flex:none}.strct-cmdp__section{padding:8px 12px 4px;font-size:var(--text-xs, 11px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}.strct-cmdp__loading{display:flex;align-items:center;gap:9px;padding:10px 12px;font-size:var(--text-md);color:var(--t3)}.strct-cmdp__spin{width:13px;height:13px;border:2px solid var(--acc30);border-top-color:var(--acc);border-radius:50%;flex-shrink:0}@media(prefers-reduced-motion:no-preference){.strct-cmdp__spin{animation:strct-cmdp-spin .8s linear infinite}}@keyframes strct-cmdp-spin{to{transform:rotate(360deg)}}.strct-cmdp__empty{padding:20px;text-align:center;font-size:var(--text-md);color:var(--t3)}@keyframes strct-cmdp-fade{0%{opacity:0}}@keyframes strct-cmdp-rise{0%{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.strct-cmdp__backdrop,.strct-cmdp{animation:none}}\n"] }]
|
|
7841
|
+
}], ctorParameters: () => [], propDecorators: { inputRef: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], hotkey: [{ type: i0.Input, args: [{ isSignal: true, alias: "hotkey", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], maxResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxResults", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], sectionOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionOrder", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], picked: [{ type: i0.Output, args: ["picked"] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }] } });
|
|
7608
7842
|
|
|
7609
7843
|
/**
|
|
7610
7844
|
* Compact search pill — the pattern from the docs header: a leading search
|
|
@@ -29449,5 +29683,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
29449
29683
|
* Generated bundle index. Do not edit.
|
|
29450
29684
|
*/
|
|
29451
29685
|
|
|
29452
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatMessageActions, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
29686
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatMessageActions, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownGroup, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownItemDescription, StrctDropdownItemIcon, StrctDropdownItemLabel, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
29453
29687
|
//# sourceMappingURL=akcelik-strct.mjs.map
|