@flyos/design-system 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/flyos-design-system.mjs +310 -33
- package/fesm2022/flyos-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/scss/_ink-baseline.scss +29 -29
- package/scss/_shell-embed-bridge.scss +81 -81
- package/scss/_vos-button-mixins.scss +28 -28
- package/types/flyos-design-system.d.ts +133 -2
- package/types/flyos-design-system.d.ts.map +1 -1
package/package.json
CHANGED
package/scss/_ink-baseline.scss
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
// ─── Inherited-ink baseline ──────────────────────────────────────────────────
|
|
2
|
-
//
|
|
3
|
-
// Establishes the document's inherited `color`. Until this existed, NOTHING in
|
|
4
|
-
// the shell ever set `color` on `html` or `body` — `_theme-light.scss` and
|
|
5
|
-
// `_theme-dark.scss` declare custom properties only. So the inherited colour was
|
|
6
|
-
// the user-agent default, **black**, and every component that says
|
|
7
|
-
// `color: inherit` (fly-tree-nav rows, fly-breadcrumb's current crumb,
|
|
8
|
-
// fly-search-input's typed text, fly-card's meta slot, and any consumer markup
|
|
9
|
-
// that simply doesn't mention colour) rendered black ink on the smoked glass.
|
|
10
|
-
//
|
|
11
|
-
// That is why the "text is invisible in light theme" bug kept coming back app
|
|
12
|
-
// after app: it was never really an app's mistake. There was no baseline to
|
|
13
|
-
// inherit, so *forgetting* to set a colour was the failure mode, and the fix
|
|
14
|
-
// kept being applied one component at a time. `--text-color` is white in BOTH
|
|
15
|
-
// themes since the Liquid-Glass flip, so one declaration settles it everywhere.
|
|
16
|
-
//
|
|
17
|
-
// Scoped to the two theme classes on purpose — NOT `:root`. A business app
|
|
18
|
-
// running STANDALONE renders on its own opaque paper (`--bg`, near-black
|
|
19
|
-
// `--ink`) and does not load `fly-theme` at all; keying on the class means a
|
|
20
|
-
// surface that never opted into a shell theme is never repainted white.
|
|
21
|
-
//
|
|
22
|
-
// A deliberate paper surface inside the shell (the documents editor) still
|
|
23
|
-
// brings its own dark ink locally — a component rule beats this baseline, which
|
|
24
|
-
// is exactly the intended precedence.
|
|
25
|
-
|
|
26
|
-
html.light-theme,
|
|
27
|
-
html.dark-theme {
|
|
28
|
-
color: var(--text-color);
|
|
29
|
-
}
|
|
1
|
+
// ─── Inherited-ink baseline ──────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Establishes the document's inherited `color`. Until this existed, NOTHING in
|
|
4
|
+
// the shell ever set `color` on `html` or `body` — `_theme-light.scss` and
|
|
5
|
+
// `_theme-dark.scss` declare custom properties only. So the inherited colour was
|
|
6
|
+
// the user-agent default, **black**, and every component that says
|
|
7
|
+
// `color: inherit` (fly-tree-nav rows, fly-breadcrumb's current crumb,
|
|
8
|
+
// fly-search-input's typed text, fly-card's meta slot, and any consumer markup
|
|
9
|
+
// that simply doesn't mention colour) rendered black ink on the smoked glass.
|
|
10
|
+
//
|
|
11
|
+
// That is why the "text is invisible in light theme" bug kept coming back app
|
|
12
|
+
// after app: it was never really an app's mistake. There was no baseline to
|
|
13
|
+
// inherit, so *forgetting* to set a colour was the failure mode, and the fix
|
|
14
|
+
// kept being applied one component at a time. `--text-color` is white in BOTH
|
|
15
|
+
// themes since the Liquid-Glass flip, so one declaration settles it everywhere.
|
|
16
|
+
//
|
|
17
|
+
// Scoped to the two theme classes on purpose — NOT `:root`. A business app
|
|
18
|
+
// running STANDALONE renders on its own opaque paper (`--bg`, near-black
|
|
19
|
+
// `--ink`) and does not load `fly-theme` at all; keying on the class means a
|
|
20
|
+
// surface that never opted into a shell theme is never repainted white.
|
|
21
|
+
//
|
|
22
|
+
// A deliberate paper surface inside the shell (the documents editor) still
|
|
23
|
+
// brings its own dark ink locally — a component rule beats this baseline, which
|
|
24
|
+
// is exactly the intended precedence.
|
|
25
|
+
|
|
26
|
+
html.light-theme,
|
|
27
|
+
html.dark-theme {
|
|
28
|
+
color: var(--text-color);
|
|
29
|
+
}
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
// ─── Shell-embed bridge — app-surface tokens re-tinted onto shell glass ──────
|
|
2
|
-
// MIXIN ONLY. This partial emits no CSS on import; it exists so the mapping
|
|
3
|
-
// below lives in ONE place instead of being retyped per feature app.
|
|
4
|
-
//
|
|
5
|
-
// WHY IT IS NEEDED
|
|
6
|
-
// The DS carries two token families on purpose (see `_app-surface-tokens.scss`'s
|
|
7
|
-
// header). `--ink-*`/`--bg-*`/`--line-*` dress BUSINESS-APP CONTENT: an opaque
|
|
8
|
-
// reading surface, dark ink on white in light mode. `--label-*`/`--surface-*`
|
|
9
|
-
// dress SHELL CHROME: white ink on translucent glass over the user's wallpaper.
|
|
10
|
-
//
|
|
11
|
-
// A desktop-shell feature app renders inside a glass window, so its chrome is
|
|
12
|
-
// necessarily the second family — but the moment it mounts a component from the
|
|
13
|
-
// `fly-*` app-surface kit (or `@flyos/design-system-board`), that component
|
|
14
|
-
// themes itself from the FIRST family and paints an opaque white slab with
|
|
15
|
-
// near-black ink. One region, two families: the app's own header ink is white,
|
|
16
|
-
// the slab beneath it is white, and the header goes invisible.
|
|
17
|
-
//
|
|
18
|
-
// That is not hypothetical. It shipped in canvas-boards and was measured live:
|
|
19
|
-
// `.cbe__export-btn` computed `color: rgb(255,255,255)` sitting on a board whose
|
|
20
|
-
// `--_surface` resolved to `oklch(100% 0 0deg)`. `core/theme/feature-app-surface-tokens.ts`
|
|
21
|
-
// documents the same class of trap ("a dark-mode-only review passes while light
|
|
22
|
-
// mode renders a white slab") — and note the failure is LIGHT-mode-only, because
|
|
23
|
-
// in dark mode both families happen to agree on light-ink-on-dark.
|
|
24
|
-
//
|
|
25
|
-
// THE FIX is the seam the tokens file already names: an app that embeds in the
|
|
26
|
-
// shell re-tints the content family onto glass. help-center (`.hc-shell`) and
|
|
27
|
-
// dashboard-app hand-rolled identical copies of this map before it lived here.
|
|
28
|
-
//
|
|
29
|
-
// ALIASES ONLY — every value is another token, never a literal, so the whole map
|
|
30
|
-
// follows the shell's theme automatically. The ONE exception is `--on-ink`, and
|
|
31
|
-
// its reason is written at the declaration.
|
|
32
|
-
@mixin app-surface-on-glass {
|
|
33
|
-
// Surfaces: the window chrome supplies the material, so the app's own page
|
|
34
|
-
// background is nothing at all; cards/tracks are lifts ON that plate.
|
|
35
|
-
--bg: transparent;
|
|
36
|
-
--bg-2: var(--surface-card);
|
|
37
|
-
--bg-3: var(--fill-tertiary);
|
|
38
|
-
--bg-hover: var(--surface-active);
|
|
39
|
-
|
|
40
|
-
// Hairlines.
|
|
41
|
-
--line: var(--separator);
|
|
42
|
-
--line-2: var(--surface-border);
|
|
43
|
-
--line-3: var(--separator);
|
|
44
|
-
|
|
45
|
-
// Ink — opaque label tokens, never a surface token. Aliasing a translucent
|
|
46
|
-
// surface onto an ink slot is what turns a control into an empty coloured
|
|
47
|
-
// square (see the note in help-center.component.scss).
|
|
48
|
-
--ink: var(--label-primary);
|
|
49
|
-
--ink-2: var(--label-secondary);
|
|
50
|
-
--ink-3: var(--label-secondary);
|
|
51
|
-
--ink-4: var(--label-tertiary);
|
|
52
|
-
|
|
53
|
-
// CONTRACT (`_app-surface-tokens.scss`): anything that redefines `--ink` MUST
|
|
54
|
-
// redefine `--on-ink`, and it must be OPAQUE. `--on-ink` labels a fill of
|
|
55
|
-
// `--ink` itself — the primary button. Above we pin `--ink` to the shell's
|
|
56
|
-
// white label ink in BOTH themes, so its counter-ink is a fixed DARK value in
|
|
57
|
-
// both. It cannot alias a shell token: the shell is glass and owns no
|
|
58
|
-
// dark-opaque ink. This literal is the same value `--ink` carries in the
|
|
59
|
-
// app-surface light theme, i.e. the colour a white pill is designed to label.
|
|
60
|
-
//
|
|
61
|
-
// `app-surface-conventions.spec.ts` can only police the DS token file itself;
|
|
62
|
-
// its doc says consumers that remap `--ink` "carry the same obligation".
|
|
63
|
-
// Routing every consumer through this mixin is how that obligation is met.
|
|
64
|
-
--on-ink: oklch(18% 0.005 250deg);
|
|
65
|
-
|
|
66
|
-
// `--ink-inverse` carries the SAME obligation as `--on-ink` and was missed.
|
|
67
|
-
//
|
|
68
|
-
// The app-surface family defines it once, as "text on dark / gradient fills" — near-white, which
|
|
69
|
-
// is correct while `--ink` is near-black. This mixin flips `--ink` to the shell's WHITE label ink
|
|
70
|
-
// and updated `--on-ink` accordingly, but left `--ink-inverse` at its near-white resting value.
|
|
71
|
-
// Every `background: var(--ink); color: var(--ink-inverse)` pair inside an embedded app therefore
|
|
72
|
-
// became WHITE ON WHITE at a contrast ratio of about 1:1.
|
|
73
|
-
//
|
|
74
|
-
// That is not hypothetical: it is what made `[data-tooltip]` (the CSS tooltip behind every
|
|
75
|
-
// `fly-icon-button`'s `tooltipKey`) invisible across the board editor — measured live at
|
|
76
|
-
// background rgb(255,255,255) with colour oklch(0.99 0 0). The same pair is used by the button,
|
|
77
|
-
// icon-button, checkbox and card components, so this was never a Boards-only bug.
|
|
78
|
-
//
|
|
79
|
-
// Pinned to `--on-ink` rather than restated, so the two counter-inks cannot drift apart again.
|
|
80
|
-
--ink-inverse: var(--on-ink);
|
|
81
|
-
}
|
|
1
|
+
// ─── Shell-embed bridge — app-surface tokens re-tinted onto shell glass ──────
|
|
2
|
+
// MIXIN ONLY. This partial emits no CSS on import; it exists so the mapping
|
|
3
|
+
// below lives in ONE place instead of being retyped per feature app.
|
|
4
|
+
//
|
|
5
|
+
// WHY IT IS NEEDED
|
|
6
|
+
// The DS carries two token families on purpose (see `_app-surface-tokens.scss`'s
|
|
7
|
+
// header). `--ink-*`/`--bg-*`/`--line-*` dress BUSINESS-APP CONTENT: an opaque
|
|
8
|
+
// reading surface, dark ink on white in light mode. `--label-*`/`--surface-*`
|
|
9
|
+
// dress SHELL CHROME: white ink on translucent glass over the user's wallpaper.
|
|
10
|
+
//
|
|
11
|
+
// A desktop-shell feature app renders inside a glass window, so its chrome is
|
|
12
|
+
// necessarily the second family — but the moment it mounts a component from the
|
|
13
|
+
// `fly-*` app-surface kit (or `@flyos/design-system-board`), that component
|
|
14
|
+
// themes itself from the FIRST family and paints an opaque white slab with
|
|
15
|
+
// near-black ink. One region, two families: the app's own header ink is white,
|
|
16
|
+
// the slab beneath it is white, and the header goes invisible.
|
|
17
|
+
//
|
|
18
|
+
// That is not hypothetical. It shipped in canvas-boards and was measured live:
|
|
19
|
+
// `.cbe__export-btn` computed `color: rgb(255,255,255)` sitting on a board whose
|
|
20
|
+
// `--_surface` resolved to `oklch(100% 0 0deg)`. `core/theme/feature-app-surface-tokens.ts`
|
|
21
|
+
// documents the same class of trap ("a dark-mode-only review passes while light
|
|
22
|
+
// mode renders a white slab") — and note the failure is LIGHT-mode-only, because
|
|
23
|
+
// in dark mode both families happen to agree on light-ink-on-dark.
|
|
24
|
+
//
|
|
25
|
+
// THE FIX is the seam the tokens file already names: an app that embeds in the
|
|
26
|
+
// shell re-tints the content family onto glass. help-center (`.hc-shell`) and
|
|
27
|
+
// dashboard-app hand-rolled identical copies of this map before it lived here.
|
|
28
|
+
//
|
|
29
|
+
// ALIASES ONLY — every value is another token, never a literal, so the whole map
|
|
30
|
+
// follows the shell's theme automatically. The ONE exception is `--on-ink`, and
|
|
31
|
+
// its reason is written at the declaration.
|
|
32
|
+
@mixin app-surface-on-glass {
|
|
33
|
+
// Surfaces: the window chrome supplies the material, so the app's own page
|
|
34
|
+
// background is nothing at all; cards/tracks are lifts ON that plate.
|
|
35
|
+
--bg: transparent;
|
|
36
|
+
--bg-2: var(--surface-card);
|
|
37
|
+
--bg-3: var(--fill-tertiary);
|
|
38
|
+
--bg-hover: var(--surface-active);
|
|
39
|
+
|
|
40
|
+
// Hairlines.
|
|
41
|
+
--line: var(--separator);
|
|
42
|
+
--line-2: var(--surface-border);
|
|
43
|
+
--line-3: var(--separator);
|
|
44
|
+
|
|
45
|
+
// Ink — opaque label tokens, never a surface token. Aliasing a translucent
|
|
46
|
+
// surface onto an ink slot is what turns a control into an empty coloured
|
|
47
|
+
// square (see the note in help-center.component.scss).
|
|
48
|
+
--ink: var(--label-primary);
|
|
49
|
+
--ink-2: var(--label-secondary);
|
|
50
|
+
--ink-3: var(--label-secondary);
|
|
51
|
+
--ink-4: var(--label-tertiary);
|
|
52
|
+
|
|
53
|
+
// CONTRACT (`_app-surface-tokens.scss`): anything that redefines `--ink` MUST
|
|
54
|
+
// redefine `--on-ink`, and it must be OPAQUE. `--on-ink` labels a fill of
|
|
55
|
+
// `--ink` itself — the primary button. Above we pin `--ink` to the shell's
|
|
56
|
+
// white label ink in BOTH themes, so its counter-ink is a fixed DARK value in
|
|
57
|
+
// both. It cannot alias a shell token: the shell is glass and owns no
|
|
58
|
+
// dark-opaque ink. This literal is the same value `--ink` carries in the
|
|
59
|
+
// app-surface light theme, i.e. the colour a white pill is designed to label.
|
|
60
|
+
//
|
|
61
|
+
// `app-surface-conventions.spec.ts` can only police the DS token file itself;
|
|
62
|
+
// its doc says consumers that remap `--ink` "carry the same obligation".
|
|
63
|
+
// Routing every consumer through this mixin is how that obligation is met.
|
|
64
|
+
--on-ink: oklch(18% 0.005 250deg);
|
|
65
|
+
|
|
66
|
+
// `--ink-inverse` carries the SAME obligation as `--on-ink` and was missed.
|
|
67
|
+
//
|
|
68
|
+
// The app-surface family defines it once, as "text on dark / gradient fills" — near-white, which
|
|
69
|
+
// is correct while `--ink` is near-black. This mixin flips `--ink` to the shell's WHITE label ink
|
|
70
|
+
// and updated `--on-ink` accordingly, but left `--ink-inverse` at its near-white resting value.
|
|
71
|
+
// Every `background: var(--ink); color: var(--ink-inverse)` pair inside an embedded app therefore
|
|
72
|
+
// became WHITE ON WHITE at a contrast ratio of about 1:1.
|
|
73
|
+
//
|
|
74
|
+
// That is not hypothetical: it is what made `[data-tooltip]` (the CSS tooltip behind every
|
|
75
|
+
// `fly-icon-button`'s `tooltipKey`) invisible across the board editor — measured live at
|
|
76
|
+
// background rgb(255,255,255) with colour oklch(0.99 0 0). The same pair is used by the button,
|
|
77
|
+
// icon-button, checkbox and card components, so this was never a Boards-only bug.
|
|
78
|
+
//
|
|
79
|
+
// Pinned to `--on-ink` rather than restated, so the two counter-inks cannot drift apart again.
|
|
80
|
+
--ink-inverse: var(--on-ink);
|
|
81
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
// visionOS button pseudo-element layers (used by _business-app-buttons.scss).
|
|
2
|
-
// Kept separate from desktop-app glass mixins so Business Apps only pull button-related SCSS.
|
|
3
|
-
|
|
4
|
-
@mixin vos-platter-layers($radius) {
|
|
5
|
-
content: '';
|
|
6
|
-
position: absolute;
|
|
7
|
-
inset: 0;
|
|
8
|
-
border-radius: $radius;
|
|
9
|
-
pointer-events: none;
|
|
10
|
-
background:
|
|
11
|
-
linear-gradient(var(--btn-platter-lighten), var(--btn-platter-lighten)),
|
|
12
|
-
linear-gradient(var(--btn-platter-dodge), var(--btn-platter-dodge));
|
|
13
|
-
background-blend-mode: lighten, color-dodge;
|
|
14
|
-
mix-blend-mode: screen;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@mixin vos-disabled-layers($radius) {
|
|
18
|
-
content: '';
|
|
19
|
-
position: absolute;
|
|
20
|
-
inset: 0;
|
|
21
|
-
border-radius: $radius;
|
|
22
|
-
pointer-events: none;
|
|
23
|
-
background:
|
|
24
|
-
linear-gradient(var(--btn-disabled-lighten), var(--btn-disabled-lighten)),
|
|
25
|
-
linear-gradient(var(--btn-disabled-dodge), var(--btn-disabled-dodge));
|
|
26
|
-
background-blend-mode: lighten, color-dodge;
|
|
27
|
-
mix-blend-mode: screen;
|
|
28
|
-
}
|
|
1
|
+
// visionOS button pseudo-element layers (used by _business-app-buttons.scss).
|
|
2
|
+
// Kept separate from desktop-app glass mixins so Business Apps only pull button-related SCSS.
|
|
3
|
+
|
|
4
|
+
@mixin vos-platter-layers($radius) {
|
|
5
|
+
content: '';
|
|
6
|
+
position: absolute;
|
|
7
|
+
inset: 0;
|
|
8
|
+
border-radius: $radius;
|
|
9
|
+
pointer-events: none;
|
|
10
|
+
background:
|
|
11
|
+
linear-gradient(var(--btn-platter-lighten), var(--btn-platter-lighten)),
|
|
12
|
+
linear-gradient(var(--btn-platter-dodge), var(--btn-platter-dodge));
|
|
13
|
+
background-blend-mode: lighten, color-dodge;
|
|
14
|
+
mix-blend-mode: screen;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@mixin vos-disabled-layers($radius) {
|
|
18
|
+
content: '';
|
|
19
|
+
position: absolute;
|
|
20
|
+
inset: 0;
|
|
21
|
+
border-radius: $radius;
|
|
22
|
+
pointer-events: none;
|
|
23
|
+
background:
|
|
24
|
+
linear-gradient(var(--btn-disabled-lighten), var(--btn-disabled-lighten)),
|
|
25
|
+
linear-gradient(var(--btn-disabled-dodge), var(--btn-disabled-dodge));
|
|
26
|
+
background-blend-mode: lighten, color-dodge;
|
|
27
|
+
mix-blend-mode: screen;
|
|
28
|
+
}
|
|
@@ -9136,6 +9136,137 @@ declare class FlySectionHeaderComponent {
|
|
|
9136
9136
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlySectionHeaderComponent, "fly-section-header", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; }, {}, never, ["[section-title]", "[section-actions]"], true, never>;
|
|
9137
9137
|
}
|
|
9138
9138
|
|
|
9139
|
+
/**
|
|
9140
|
+
* Detail-page content card — the surface every panel and sidebar block on a detail
|
|
9141
|
+
* screen sits on: `card-surface` fill/hairline/radius/shadow, an optional
|
|
9142
|
+
* `fly-section-header`, and a padded body.
|
|
9143
|
+
*
|
|
9144
|
+
* Extracted because four detail screens (Circles signal + trend, Thoughts idea +
|
|
9145
|
+
* the six sibling detail pages) had each hand-rolled the identical
|
|
9146
|
+
* `.card` / `.card__body` / `.card__body--flush` recipe, and they drifted: some
|
|
9147
|
+
* carried the shadow, some didn't, and on the shell's translucent glass the ones
|
|
9148
|
+
* without it lost their edge and read as a lighter surface than their neighbours.
|
|
9149
|
+
*
|
|
9150
|
+
* ```html
|
|
9151
|
+
* <fly-detail-card titleKey="common.label.metadata">
|
|
9152
|
+
* <fly-meta [items]="rows()" />
|
|
9153
|
+
* </fly-detail-card>
|
|
9154
|
+
*
|
|
9155
|
+
* <!-- A child with its own list chrome shouldn't sit inside body padding. -->
|
|
9156
|
+
* <fly-detail-card titleKey="common.label.evidence" [flush]="true">
|
|
9157
|
+
* <button card-actions type="button" (click)="add()">Add</button>
|
|
9158
|
+
* <fly-evidence-panel [hideHeader]="true" />
|
|
9159
|
+
* </fly-detail-card>
|
|
9160
|
+
* ```
|
|
9161
|
+
*
|
|
9162
|
+
* With no `titleKey` and nothing projected into `[card-title]` the header is
|
|
9163
|
+
* omitted entirely, so the card also serves as a bare framed surface (a cover
|
|
9164
|
+
* image, a chart) without an empty header rule above it.
|
|
9165
|
+
*/
|
|
9166
|
+
declare class FlyDetailCardComponent {
|
|
9167
|
+
/** i18n key for the card title; alternatively project `[card-title]`. */
|
|
9168
|
+
readonly titleKey: _angular_core.InputSignal<string | undefined>;
|
|
9169
|
+
/**
|
|
9170
|
+
* Set when the title arrives through `[card-title]` rather than `titleKey`.
|
|
9171
|
+
* Content projection cannot be *queried* for presence without a `contentChild`
|
|
9172
|
+
* on a directive the caller would also have to import, so this stays an
|
|
9173
|
+
* explicit flag — a header with neither is omitted rather than rendered empty.
|
|
9174
|
+
*/
|
|
9175
|
+
readonly hasProjectedTitle: _angular_core.InputSignal<boolean>;
|
|
9176
|
+
/** Drop the body padding — for a child that brings its own list/table chrome. */
|
|
9177
|
+
readonly flush: _angular_core.InputSignal<boolean>;
|
|
9178
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyDetailCardComponent, never>;
|
|
9179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyDetailCardComponent, "fly-detail-card", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "hasProjectedTitle": { "alias": "hasProjectedTitle"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; }, {}, never, ["[card-title]", "[card-actions]", "*"], true, never>;
|
|
9180
|
+
}
|
|
9181
|
+
|
|
9182
|
+
/** One section in a detail shell's icon rail. */
|
|
9183
|
+
interface DetailSection {
|
|
9184
|
+
/** Stable id — what `selected` names. */
|
|
9185
|
+
id: string;
|
|
9186
|
+
/** i18n key for the rail label / tooltip. */
|
|
9187
|
+
labelKey: string;
|
|
9188
|
+
/**
|
|
9189
|
+
* Icon class for the rail glyph (e.g. a PrimeIcons `pi-info-circle`). Optional:
|
|
9190
|
+
* with none, the rail renders labels only.
|
|
9191
|
+
*/
|
|
9192
|
+
icon?: string;
|
|
9193
|
+
}
|
|
9194
|
+
/**
|
|
9195
|
+
* Resolve which section is active.
|
|
9196
|
+
*
|
|
9197
|
+
* The fallback is the point of this function. A detail page's section list is
|
|
9198
|
+
* derived from the record — a scorecard tab only exists while the record has a
|
|
9199
|
+
* scorecard, an approvals tab only while an approval is open — so a selection made
|
|
9200
|
+
* on one record can name a section the NEXT record does not have. The remote-router
|
|
9201
|
+
* outlet reuses the component instance across `/x/:id` → `/x/:id` navigations, so
|
|
9202
|
+
* that is a routine occurrence, not an edge case, and the symptom is an empty panel
|
|
9203
|
+
* with no indication why.
|
|
9204
|
+
*
|
|
9205
|
+
* Returns the selection when it still exists, otherwise the first section, or null
|
|
9206
|
+
* when there are none.
|
|
9207
|
+
*/
|
|
9208
|
+
declare function resolveActiveSection(sections: readonly DetailSection[], selected: string | undefined): string | null;
|
|
9209
|
+
|
|
9210
|
+
/**
|
|
9211
|
+
* Detail-page body scaffold — an aside (icon rail + pinned cards) beside a panel
|
|
9212
|
+
* showing the active section.
|
|
9213
|
+
*
|
|
9214
|
+
* The anatomy comes from the Circles signal-detail screen and had been hand-copied
|
|
9215
|
+
* onto every detail page that wanted it, CSS and all. Each copy re-derived the same
|
|
9216
|
+
* four decisions and got a different subset right, so this owns them:
|
|
9217
|
+
*
|
|
9218
|
+
* - **The rail sits at the top of the aside, but AFTER the content in the DOM** —
|
|
9219
|
+
* a screen reader meets the record before its navigation, while sighted readers
|
|
9220
|
+
* get the rail where a sidebar nav belongs. `order` does the visual half.
|
|
9221
|
+
* - **The panel stretches to the grid row** (already `max(aside, panel)`), so a
|
|
9222
|
+
* short section's card ends where the aside ends at every window size. A `vh`
|
|
9223
|
+
* floor cannot do this — it ignores the aside and mismatches at every size.
|
|
9224
|
+
* - **Below 980px the rail becomes a horizontal bar** above the panel rather than
|
|
9225
|
+
* a 300px column squeezing the content.
|
|
9226
|
+
* - **The active tab is a solid accent plate with `--on-accent-fill` ink** — NOT
|
|
9227
|
+
* `--accent` on `--accent-soft`: the shell paints `--accent-soft` as a tint of
|
|
9228
|
+
* `--accent`, so that pairing renders the label in its own background colour.
|
|
9229
|
+
*
|
|
9230
|
+
* It also supplies the tablist a11y both hand-rolled rails were missing: proper
|
|
9231
|
+
* `role="tablist"`/`tab`/`tabpanel` wiring, a roving tabindex, and RTL-aware arrow
|
|
9232
|
+
* keys with Home/End (shared with `fly-tabs` via `nextSegmentIndex`).
|
|
9233
|
+
*
|
|
9234
|
+
* ```html
|
|
9235
|
+
* <fly-detail-shell [sections]="sections()" [(selected)]="section">
|
|
9236
|
+
* <ng-container detail-aside>
|
|
9237
|
+
* <fly-detail-card titleKey="common.label.summary">…</fly-detail-card>
|
|
9238
|
+
* </ng-container>
|
|
9239
|
+
*
|
|
9240
|
+
* @switch (activeSection()) {
|
|
9241
|
+
* @case ('metadata') { <fly-detail-card …/> }
|
|
9242
|
+
* }
|
|
9243
|
+
* </fly-detail-shell>
|
|
9244
|
+
* ```
|
|
9245
|
+
*
|
|
9246
|
+
* The default slot is the panel. Read back the resolved section with the two-way
|
|
9247
|
+
* `selected` — it self-corrects when the bound id names a section that no longer
|
|
9248
|
+
* exists (see {@link resolveActiveSection}).
|
|
9249
|
+
*/
|
|
9250
|
+
declare class FlyDetailShellComponent {
|
|
9251
|
+
private readonly i18n;
|
|
9252
|
+
private readonly uid;
|
|
9253
|
+
private readonly rail;
|
|
9254
|
+
/** The rail's sections, in order. Empty renders the aside + panel with no rail. */
|
|
9255
|
+
readonly sections: _angular_core.InputSignal<readonly DetailSection[]>;
|
|
9256
|
+
/** Active section id (two-way). Unset/unknown resolves to the first section. */
|
|
9257
|
+
readonly selected: _angular_core.ModelSignal<string | undefined>;
|
|
9258
|
+
/** i18n key for the rail's `aria-label`. */
|
|
9259
|
+
readonly sectionsLabelKey: _angular_core.InputSignal<string>;
|
|
9260
|
+
/** The section actually rendered — self-corrects, see {@link resolveActiveSection}. */
|
|
9261
|
+
readonly activeId: _angular_core.Signal<string | null>;
|
|
9262
|
+
tabId(id: string): string;
|
|
9263
|
+
panelId(): string;
|
|
9264
|
+
protected select(id: string): void;
|
|
9265
|
+
protected onKey(event: KeyboardEvent): void;
|
|
9266
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyDetailShellComponent, never>;
|
|
9267
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyDetailShellComponent, "fly-detail-shell", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "sectionsLabelKey": { "alias": "sectionsLabelKey"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; }, never, ["[detail-aside]", "*"], true, never>;
|
|
9268
|
+
}
|
|
9269
|
+
|
|
9139
9270
|
/**
|
|
9140
9271
|
* A single destination in the app's module switcher.
|
|
9141
9272
|
*
|
|
@@ -9950,6 +10081,6 @@ declare const AUDIENCE_ERROR_CODES: {
|
|
|
9950
10081
|
};
|
|
9951
10082
|
type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
|
|
9952
10083
|
|
|
9953
|
-
export { AGENT_DRAG_MIME, AGENT_PAYLOAD_VERSION, APP_LOOKUP, AUDIENCE_ERROR_CODES, AUDIENCE_LIMITS, AUDIENCE_PRESETS, AUDIENCE_TERM_KINDS, AgentActionBus, AgentActionUnsupportedDispatchError, AgentCommandRegistry, AgentDropRegistry, AgentFlightAnimator, AgentLookupRegistry, AgentPayloadOversizeError, AudienceBuilderComponent, AuthService, BilingualFieldComponent, CRON_MODES, CRON_WEEKDAYS, ContextMenuComponent, DEFAULT_AGENT_PAYLOAD_LIMITS, DEFAULT_FLY_THEME_MODE, DS_BASELINE_LOCALES, DashboardKpiComponent, DialogResult, EntityLookupComponent, FLYOS_LAUNCH_EVENT, FLYOS_LAUNCH_REQUEST_EVENT, FLYOS_REMOTE_ROUTE_EVENT, FLY_ACCENT_PROPERTY, FLY_ADMIN_ROLES, FLY_CHUNK_RELOAD_FLAG, FLY_COMPACT_THRESHOLD, FLY_COUNTRIES, FLY_EMOJI_BY_ID, FLY_EMOJI_CATEGORIES, FLY_EMOJI_CATEGORY_BY_ID, FLY_EMOJI_DEFAULT_CATEGORIES, FLY_EMOJI_PACK, FLY_EMOJI_PACK_MISSING_MESSAGE, FLY_EMOJI_PREVIEW_COUNT, FLY_EMPTY_VALUE, FLY_LOCALE_CATALOG, FLY_NF_CACHE_HEAL_FLAG, FLY_RELOAD_DEBOUNCE_MS, FLY_REMOTE_BASE_PATH, FLY_REMOTE_CONTEXT_EVENT, FLY_REMOTE_CONTEXT_STORE_KEY, FLY_REMOTE_ROUTES, FLY_SEARCH_DEBOUNCE_MS, FLY_SKIN_TONES, FLY_STANDALONE_AUTH_CONFIG, FLY_THEME_MODE_IDS, FLY_WINDOW_HELP_HINT_EVENT, FLY_WINDOW_PAGE_TITLE_EVENT, FlyAchievementProgressComponent, FlyActionMenuComponent, FlyActionStackComponent, FlyAgentDraggableDirective, FlyAnimatedEmojiComponent, FlyAppTopbarComponent, FlyAuthLiveRefresh, FlyBadgeWallComponent, FlyBlockUiComponent, FlyBreadcrumbComponent, FlyButtonComponent, FlyBytesPipe, FlyCaptchaComponent, FlyCardActionsComponent, FlyCardBodyComponent, FlyCardComponent, FlyCardFooterComponent, FlyCardGridComponent, FlyCardMediaComponent, FlyCardMetaComponent, FlyCardStatusComponent, FlyCardTitleComponent, FlyCellDirective, FlyCheckboxComponent, FlyChipComponent, FlyChunkReloadErrorHandler, FlyClickOutsideDirective, FlyCollapsibleComponent, FlyCommentThreadComponent, FlyCompactNumberPipe, FlyConfirmDialogComponent, FlyControlDirective, FlyCronBuilderComponent, FlyDataTableComponent, FlyDatePipe, FlyDateTimePipe, FlyDebouncer, FlyDecimalNumberPipe, FlyDrawerComponent, FlyDurationPipe, FlyDynamicFormComponent, FlyEmojiPickerComponent, FlyFieldComponent, FlyFileUploadComponent, FlyFilterPanelComponent, FlyFormBannerComponent, FlyFormFooterComponent, FlyFormGridComponent, FlyFormSectionComponent, FlyFullNumberPipe, FlyGanttComponent, FlyHubClient, FlyIconButtonComponent, FlyIfAdminDirective, FlyIfRoleDirective, FlyImageUploadComponent, FlyLeaderboardComponent, FlyMetaListComponent, FlyModalComponent, FlyModerationQueueComponent, FlyModuleIconDirective, FlyPaginationComponent, FlyPeoplePickerComponent, FlyPointsTierComponent, FlyProgressComponent, FlyRelativeTimePipe, FlyRemoteContextService, FlyRemoteRouter, FlyRemoteRouterOutletComponent, FlySearchInputComponent, FlySectionHeaderComponent, FlySecureSrcDirective, FlySegmentedComponent, FlySelectComponent, FlySkeletonComponent, FlySliderComponent, FlySparklineComponent, FlySpinnerComponent, FlyStandaloneAuthCallbackComponent, FlyStandaloneAuthService, FlyStateMessageComponent, FlyDynamicFormComponent as FlySurveyFormComponent, FlyTabComponent, FlyTabsComponent, FlyTagsInputComponent, FlyThemeService, FlyTimePipe, FlyToastService, FlyToggleComponent, FlyTooltipDirective, FlyTreeNavComponent, FlyTypeaheadComponent, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_ZOOMS, I18nService, LAUNCH_CONTEXT, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, OverlayStack, PRESENCE_COLORS, PageHeaderComponent, RTL_LOCALE_SET, SHARE_ORG_CHART_SYSTEM_KEY_APPS, SHARE_ORG_CHART_SYSTEM_KEY_DEFAULT, SHARE_PANEL_DEFAULT_FILE_LEVELS, STATE_DEFAULT_ICONS, STATE_DEFAULT_MESSAGE_KEYS, STEP_UP_CODE, STEP_UP_REAUTH_HANDLER, STEP_UP_RETURN_KEY, SUPPORTED_AGENT_PAYLOAD_VERSIONS, SharePanelComponent, SourceAppResolver, StandaloneWindowManagerService, StatusBadgeComponent, StepUpService, ToastHostComponent, TranslatePipe, WINDOW_DATA, WINDOW_HELP_HINT, WindowManagerService, applySkinTone, applySuggestion, ariaSort, buildCron, canConfirm, canGoNext, canGoPrev, captureFocus, clampPage, clampSliderValue, connectRemoteLaunch, enterActivatesNatively, filterGroup, filterSuggestions, findLocaleByDialect, findLocaleByPrefix, firstEnabledIndex, firstModuleIndex, flattenModules, flyAdminGuard, flyCaptchaBase64Utf8, flyCaptchaBuildToken, flyCaptchaSha256Hex, flyCompactNumber, flyDebounced, flyDecimalNumber, flyDownloadBlob, flyDuration, flyEmojiFor, flyEmojiIsTonable, flyEmojiPackUrl, flyExportFileName, flyFirstEnabledIndex, flyFormatBytes, flyFormatDate, flyFormatDateTime, flyFormatTime, flyFullNumber, flyNextEnabledIndex, flyNextSegmentIndex, flyRelativeTime, flyResolveActiveTab, flyRoleGuard, flySignedCompact, flySkinToneLabelKey, flyStandaloneAuthGuard, flyStandaloneAuthInterceptor, flyToDateOnly, hasAnyRoleIn, healNativeFederationCacheOnce, isAccentColor, isChunkLoadError, isFlyAuthStorePopulated, isNativeFederationCacheError, isRtlLocale, isRtlLocaleEntry, isValidCron, isValidSingleField, loadRemoteStyles, matchFlyRoutePattern, nextEnabledIndex, nextModuleIndex, nextSegmentIndex, nextSort, normalizeFlyTheme, normalizeRoles, overlayStack, parseCron, parseStepUpChallenge, parseTags, presenceColorFor, printConsoleSecurityWarning, provideFlyChunkReloadRecovery, provideFlyEmojiPack, provideFlyStandaloneAuth, reloadOnceForChunkError, requestAppLaunch, resolveActiveModule, resolveActiveTab, resolveCellValue, resolveStateIcon, resolveStateMessageKey, restoreFocus, sameTags, sliderTrackGradient, sparklinePath, sparklinePoints, stepUpInterceptor, stepUpReturnKey, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload, warnIfEmbeddedSessionMissing };
|
|
9954
|
-
export type { ActionMenuItem, AgentAction, AgentActionDispatch, AgentActionVerb, AgentChipHostInputs, AgentCommand, AgentCommandContextBinding, AgentCommandHandle, AgentCommandRegistration, AgentCommandScope, AgentCommandSlashSpec, AgentDragPayload, AgentDraggableItem, AgentDropChipMode, AgentDropRendererRegistration, AgentEnvelopeAttachment, AgentMcpScope, AgentMessageEnvelope, AgentPayloadLimits, AgentPayloadValidationResult, AppEveryonePrincipal, AppEveryoneTerm, AppLookup, AppLookupEntry, AudienceEditTarget, AudienceErrorCode, AudienceFilter, AudienceOptions, AudiencePresetKind, AudienceTerm, AudienceTermKind, BreadcrumbItem, ButtonSize, ButtonVariant, CardLayout, ChartTerm, ChildWindowData, ChipTone, ConfirmKind, ConnectRemoteLaunchOptions, ContextMenuAlign, ContextMenuItem, ContextMenuSection, CronAdvancedFieldDef, CronMode, CronParts, CronWeekday, DesktopApp, DesktopAppCategory, DesktopAppKind, DialogResultWithAcknowledgement, EmbeddedSessionProbe, EntityLinkSelection, FilterGroup, FlyAchievementRow, FlyAppModule, FlyAppModuleSection, FlyAuthRefreshPayload, FlyAuthStoreReadable, FlyBadgeTile, FlyBreadcrumbItem, FlyCaptchaChallenge, FlyCaptchaSolution, FlyCaptchaState, FlyCellContext, FlyColumn, FlyColumnKind, FlyComment, FlyCommentDeleteRequest, FlyCommentEditRequest, FlyCommentLoadMoreRequest, FlyCommentLoadRepliesRequest, FlyCommentLockToggleRequest, FlyCommentPage, FlyCommentReportReason, FlyCommentReportRequest, FlyCommentReportStatus, FlyCommentSubmitRequest, FlyCountry, FlyDrawerSide, FlyDrawerSize, FlyEmojiCategory, FlyEmojiCell, FlyEmojiEntry, FlyEmojiPack, FlyEmojiPackEntry, FlyEmojiPackManifest, FlyEmojiPickerSize, FlyEmojiPickerTab, FlyEmojiSection, FlyFileInfo, FlyFileSelection, FlyFormAnswer, FlyFormAnswerValue, FlyFormDefinition, FlyFormFieldOptions, FlyFormOption, FlyFormQuestion, FlyFormQuestionType, FlyFormScoreDisplay, FlyLaunchEventDetail, FlyLaunchRequestDetail, FlyLeaderboardRow, FlyLiveRefreshOptions, FlyLocaleEntry, FlyMetaItem, FlyModerationLoadPageRequest, FlyModerationLockThreadRequest, FlyModerationOpenSubjectRequest, FlyModerationReport, FlyModerationReportPage, FlyModerationResolutionStatus, FlyModerationResolveRequest, FlyNavigableItem, FlyPeoplePickerMode, FlyPeoplePickerOption, FlyPointsSummary, FlyRemoteContext, FlyRemoteMatch, FlyRemoteRoute, FlyRemoteRouteEventDetail, FlySearchExpandTrigger, FlySearchInputSize, FlySecureSrcState, FlySelectOption, FlySelectValue, FlySkeletonAnimation, FlySkeletonLayout, FlySkeletonShape, FlySkinTone, FlySort, FlyStandaloneAuthConfig, FlyFileSelection as FlySurveyFileSelection, FlyFormAnswer as FlySurveyFormAnswer, FlyFormAnswerValue as FlySurveyFormAnswerValue, FlyFormDefinition as FlySurveyFormDefinition, FlyFormFieldOptions as FlySurveyFormFieldOptions, FlyFormOption as FlySurveyFormOption, FlyFormQuestion as FlySurveyFormQuestion, FlyFormQuestionType as FlySurveyQuestionType, FlyThemeMode, FlyTooltipPlacement, FlyTreeNavNode, FlyTypeaheadOption, FlyWindowHelpHintEventDetail, FlyWindowHelpPublisher, FlyWindowPageTitleEventDetail, FlyWindowTitlePublisher, FlyosPendingLaunches, FocusRestore, FormBannerKind, GanttDependency, GanttDependencyCreate, GanttRow, GanttRowDatesChange, GanttRowKind, GanttZoom, IconButtonVariant, LaunchContext, LoadBundleOptions, LookupDescriptor, LookupHandle, LookupRegistration, LookupResult, LookupSearch, MessageBoxButton, MessageBoxDontAskAgainConfig, MessageBoxOptions, MessageBoxOptionsWithAcknowledgement, MockAuthConfig, OpenWindowOptions, OuPrincipal, OuTerm, OverlayHandle, PageHeaderVariant, PresetTerm, ProgressTone, RemoteAppDef, RequestAppLaunchOptions, RoleOuLookupRow, RolePrincipal, RolesTerm, SegmentedOption, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, StateMessageKind, StepUpChallenge, StepUpReauthHandler, StepUpReauthRequest, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
|
|
10084
|
+
export { AGENT_DRAG_MIME, AGENT_PAYLOAD_VERSION, APP_LOOKUP, AUDIENCE_ERROR_CODES, AUDIENCE_LIMITS, AUDIENCE_PRESETS, AUDIENCE_TERM_KINDS, AgentActionBus, AgentActionUnsupportedDispatchError, AgentCommandRegistry, AgentDropRegistry, AgentFlightAnimator, AgentLookupRegistry, AgentPayloadOversizeError, AudienceBuilderComponent, AuthService, BilingualFieldComponent, CRON_MODES, CRON_WEEKDAYS, ContextMenuComponent, DEFAULT_AGENT_PAYLOAD_LIMITS, DEFAULT_FLY_THEME_MODE, DS_BASELINE_LOCALES, DashboardKpiComponent, DialogResult, EntityLookupComponent, FLYOS_LAUNCH_EVENT, FLYOS_LAUNCH_REQUEST_EVENT, FLYOS_REMOTE_ROUTE_EVENT, FLY_ACCENT_PROPERTY, FLY_ADMIN_ROLES, FLY_CHUNK_RELOAD_FLAG, FLY_COMPACT_THRESHOLD, FLY_COUNTRIES, FLY_EMOJI_BY_ID, FLY_EMOJI_CATEGORIES, FLY_EMOJI_CATEGORY_BY_ID, FLY_EMOJI_DEFAULT_CATEGORIES, FLY_EMOJI_PACK, FLY_EMOJI_PACK_MISSING_MESSAGE, FLY_EMOJI_PREVIEW_COUNT, FLY_EMPTY_VALUE, FLY_LOCALE_CATALOG, FLY_NF_CACHE_HEAL_FLAG, FLY_RELOAD_DEBOUNCE_MS, FLY_REMOTE_BASE_PATH, FLY_REMOTE_CONTEXT_EVENT, FLY_REMOTE_CONTEXT_STORE_KEY, FLY_REMOTE_ROUTES, FLY_SEARCH_DEBOUNCE_MS, FLY_SKIN_TONES, FLY_STANDALONE_AUTH_CONFIG, FLY_THEME_MODE_IDS, FLY_WINDOW_HELP_HINT_EVENT, FLY_WINDOW_PAGE_TITLE_EVENT, FlyAchievementProgressComponent, FlyActionMenuComponent, FlyActionStackComponent, FlyAgentDraggableDirective, FlyAnimatedEmojiComponent, FlyAppTopbarComponent, FlyAuthLiveRefresh, FlyBadgeWallComponent, FlyBlockUiComponent, FlyBreadcrumbComponent, FlyButtonComponent, FlyBytesPipe, FlyCaptchaComponent, FlyCardActionsComponent, FlyCardBodyComponent, FlyCardComponent, FlyCardFooterComponent, FlyCardGridComponent, FlyCardMediaComponent, FlyCardMetaComponent, FlyCardStatusComponent, FlyCardTitleComponent, FlyCellDirective, FlyCheckboxComponent, FlyChipComponent, FlyChunkReloadErrorHandler, FlyClickOutsideDirective, FlyCollapsibleComponent, FlyCommentThreadComponent, FlyCompactNumberPipe, FlyConfirmDialogComponent, FlyControlDirective, FlyCronBuilderComponent, FlyDataTableComponent, FlyDatePipe, FlyDateTimePipe, FlyDebouncer, FlyDecimalNumberPipe, FlyDetailCardComponent, FlyDetailShellComponent, FlyDrawerComponent, FlyDurationPipe, FlyDynamicFormComponent, FlyEmojiPickerComponent, FlyFieldComponent, FlyFileUploadComponent, FlyFilterPanelComponent, FlyFormBannerComponent, FlyFormFooterComponent, FlyFormGridComponent, FlyFormSectionComponent, FlyFullNumberPipe, FlyGanttComponent, FlyHubClient, FlyIconButtonComponent, FlyIfAdminDirective, FlyIfRoleDirective, FlyImageUploadComponent, FlyLeaderboardComponent, FlyMetaListComponent, FlyModalComponent, FlyModerationQueueComponent, FlyModuleIconDirective, FlyPaginationComponent, FlyPeoplePickerComponent, FlyPointsTierComponent, FlyProgressComponent, FlyRelativeTimePipe, FlyRemoteContextService, FlyRemoteRouter, FlyRemoteRouterOutletComponent, FlySearchInputComponent, FlySectionHeaderComponent, FlySecureSrcDirective, FlySegmentedComponent, FlySelectComponent, FlySkeletonComponent, FlySliderComponent, FlySparklineComponent, FlySpinnerComponent, FlyStandaloneAuthCallbackComponent, FlyStandaloneAuthService, FlyStateMessageComponent, FlyDynamicFormComponent as FlySurveyFormComponent, FlyTabComponent, FlyTabsComponent, FlyTagsInputComponent, FlyThemeService, FlyTimePipe, FlyToastService, FlyToggleComponent, FlyTooltipDirective, FlyTreeNavComponent, FlyTypeaheadComponent, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_ZOOMS, I18nService, LAUNCH_CONTEXT, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, OverlayStack, PRESENCE_COLORS, PageHeaderComponent, RTL_LOCALE_SET, SHARE_ORG_CHART_SYSTEM_KEY_APPS, SHARE_ORG_CHART_SYSTEM_KEY_DEFAULT, SHARE_PANEL_DEFAULT_FILE_LEVELS, STATE_DEFAULT_ICONS, STATE_DEFAULT_MESSAGE_KEYS, STEP_UP_CODE, STEP_UP_REAUTH_HANDLER, STEP_UP_RETURN_KEY, SUPPORTED_AGENT_PAYLOAD_VERSIONS, SharePanelComponent, SourceAppResolver, StandaloneWindowManagerService, StatusBadgeComponent, StepUpService, ToastHostComponent, TranslatePipe, WINDOW_DATA, WINDOW_HELP_HINT, WindowManagerService, applySkinTone, applySuggestion, ariaSort, buildCron, canConfirm, canGoNext, canGoPrev, captureFocus, clampPage, clampSliderValue, connectRemoteLaunch, enterActivatesNatively, filterGroup, filterSuggestions, findLocaleByDialect, findLocaleByPrefix, firstEnabledIndex, firstModuleIndex, flattenModules, flyAdminGuard, flyCaptchaBase64Utf8, flyCaptchaBuildToken, flyCaptchaSha256Hex, flyCompactNumber, flyDebounced, flyDecimalNumber, flyDownloadBlob, flyDuration, flyEmojiFor, flyEmojiIsTonable, flyEmojiPackUrl, flyExportFileName, flyFirstEnabledIndex, flyFormatBytes, flyFormatDate, flyFormatDateTime, flyFormatTime, flyFullNumber, flyNextEnabledIndex, flyNextSegmentIndex, flyRelativeTime, flyResolveActiveTab, flyRoleGuard, flySignedCompact, flySkinToneLabelKey, flyStandaloneAuthGuard, flyStandaloneAuthInterceptor, flyToDateOnly, hasAnyRoleIn, healNativeFederationCacheOnce, isAccentColor, isChunkLoadError, isFlyAuthStorePopulated, isNativeFederationCacheError, isRtlLocale, isRtlLocaleEntry, isValidCron, isValidSingleField, loadRemoteStyles, matchFlyRoutePattern, nextEnabledIndex, nextModuleIndex, nextSegmentIndex, nextSort, normalizeFlyTheme, normalizeRoles, overlayStack, parseCron, parseStepUpChallenge, parseTags, presenceColorFor, printConsoleSecurityWarning, provideFlyChunkReloadRecovery, provideFlyEmojiPack, provideFlyStandaloneAuth, reloadOnceForChunkError, requestAppLaunch, resolveActiveModule, resolveActiveSection, resolveActiveTab, resolveCellValue, resolveStateIcon, resolveStateMessageKey, restoreFocus, sameTags, sliderTrackGradient, sparklinePath, sparklinePoints, stepUpInterceptor, stepUpReturnKey, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload, warnIfEmbeddedSessionMissing };
|
|
10085
|
+
export type { ActionMenuItem, AgentAction, AgentActionDispatch, AgentActionVerb, AgentChipHostInputs, AgentCommand, AgentCommandContextBinding, AgentCommandHandle, AgentCommandRegistration, AgentCommandScope, AgentCommandSlashSpec, AgentDragPayload, AgentDraggableItem, AgentDropChipMode, AgentDropRendererRegistration, AgentEnvelopeAttachment, AgentMcpScope, AgentMessageEnvelope, AgentPayloadLimits, AgentPayloadValidationResult, AppEveryonePrincipal, AppEveryoneTerm, AppLookup, AppLookupEntry, AudienceEditTarget, AudienceErrorCode, AudienceFilter, AudienceOptions, AudiencePresetKind, AudienceTerm, AudienceTermKind, BreadcrumbItem, ButtonSize, ButtonVariant, CardLayout, ChartTerm, ChildWindowData, ChipTone, ConfirmKind, ConnectRemoteLaunchOptions, ContextMenuAlign, ContextMenuItem, ContextMenuSection, CronAdvancedFieldDef, CronMode, CronParts, CronWeekday, DesktopApp, DesktopAppCategory, DesktopAppKind, DetailSection, DialogResultWithAcknowledgement, EmbeddedSessionProbe, EntityLinkSelection, FilterGroup, FlyAchievementRow, FlyAppModule, FlyAppModuleSection, FlyAuthRefreshPayload, FlyAuthStoreReadable, FlyBadgeTile, FlyBreadcrumbItem, FlyCaptchaChallenge, FlyCaptchaSolution, FlyCaptchaState, FlyCellContext, FlyColumn, FlyColumnKind, FlyComment, FlyCommentDeleteRequest, FlyCommentEditRequest, FlyCommentLoadMoreRequest, FlyCommentLoadRepliesRequest, FlyCommentLockToggleRequest, FlyCommentPage, FlyCommentReportReason, FlyCommentReportRequest, FlyCommentReportStatus, FlyCommentSubmitRequest, FlyCountry, FlyDrawerSide, FlyDrawerSize, FlyEmojiCategory, FlyEmojiCell, FlyEmojiEntry, FlyEmojiPack, FlyEmojiPackEntry, FlyEmojiPackManifest, FlyEmojiPickerSize, FlyEmojiPickerTab, FlyEmojiSection, FlyFileInfo, FlyFileSelection, FlyFormAnswer, FlyFormAnswerValue, FlyFormDefinition, FlyFormFieldOptions, FlyFormOption, FlyFormQuestion, FlyFormQuestionType, FlyFormScoreDisplay, FlyLaunchEventDetail, FlyLaunchRequestDetail, FlyLeaderboardRow, FlyLiveRefreshOptions, FlyLocaleEntry, FlyMetaItem, FlyModerationLoadPageRequest, FlyModerationLockThreadRequest, FlyModerationOpenSubjectRequest, FlyModerationReport, FlyModerationReportPage, FlyModerationResolutionStatus, FlyModerationResolveRequest, FlyNavigableItem, FlyPeoplePickerMode, FlyPeoplePickerOption, FlyPointsSummary, FlyRemoteContext, FlyRemoteMatch, FlyRemoteRoute, FlyRemoteRouteEventDetail, FlySearchExpandTrigger, FlySearchInputSize, FlySecureSrcState, FlySelectOption, FlySelectValue, FlySkeletonAnimation, FlySkeletonLayout, FlySkeletonShape, FlySkinTone, FlySort, FlyStandaloneAuthConfig, FlyFileSelection as FlySurveyFileSelection, FlyFormAnswer as FlySurveyFormAnswer, FlyFormAnswerValue as FlySurveyFormAnswerValue, FlyFormDefinition as FlySurveyFormDefinition, FlyFormFieldOptions as FlySurveyFormFieldOptions, FlyFormOption as FlySurveyFormOption, FlyFormQuestion as FlySurveyFormQuestion, FlyFormQuestionType as FlySurveyQuestionType, FlyThemeMode, FlyTooltipPlacement, FlyTreeNavNode, FlyTypeaheadOption, FlyWindowHelpHintEventDetail, FlyWindowHelpPublisher, FlyWindowPageTitleEventDetail, FlyWindowTitlePublisher, FlyosPendingLaunches, FocusRestore, FormBannerKind, GanttDependency, GanttDependencyCreate, GanttRow, GanttRowDatesChange, GanttRowKind, GanttZoom, IconButtonVariant, LaunchContext, LoadBundleOptions, LookupDescriptor, LookupHandle, LookupRegistration, LookupResult, LookupSearch, MessageBoxButton, MessageBoxDontAskAgainConfig, MessageBoxOptions, MessageBoxOptionsWithAcknowledgement, MockAuthConfig, OpenWindowOptions, OuPrincipal, OuTerm, OverlayHandle, PageHeaderVariant, PresetTerm, ProgressTone, RemoteAppDef, RequestAppLaunchOptions, RoleOuLookupRow, RolePrincipal, RolesTerm, SegmentedOption, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, StateMessageKind, StepUpChallenge, StepUpReauthHandler, StepUpReauthRequest, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
|
|
9955
10086
|
//# sourceMappingURL=flyos-design-system.d.ts.map
|