@flyos/design-system 2.5.0 → 2.7.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 +362 -43
- package/fesm2022/flyos-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/scss/_app-surface-tokens.scss +3 -2
- package/scss/_nova-glass.scss +42 -29
- package/scss/_nova-tokens.scss +68 -28
- package/types/flyos-design-system.d.ts +167 -2
- package/types/flyos-design-system.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -480,8 +480,9 @@ html.dark-theme {
|
|
|
480
480
|
// active tab, `badge()`'s default, `fly-pagination`'s current-page pill.
|
|
481
481
|
|
|
482
482
|
// THE FAILURE IS THE EXTERNAL-APP ACCENT, NOT THE EMBED. A fixed near-white is
|
|
483
|
-
// right for the platform violet (5.25:1) and for
|
|
484
|
-
// (
|
|
483
|
+
// right for the platform violet (5.25:1) and for its `--accent-hi` partner
|
|
484
|
+
// (≈6.9:1 since the 2026-08-17 accent-family re-value; `plate-ink.spec.ts`
|
|
485
|
+
// recomputes it live), and catastrophic for an External App that remaps `--accent` to a
|
|
485
486
|
// light brand colour: white on a pale gold #F5C542 measures 1.58:1, on a cyan
|
|
486
487
|
// #22D3EE 1.76:1. Three tokens are deliberately absent from this file precisely
|
|
487
488
|
// because the accent is the consuming app's to choose (see the header), so this
|
package/scss/_nova-glass.scss
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
// ── Canonical import ─────────────────────────────────────────────────────────
|
|
11
11
|
// @use 'nova-glass' as glass;
|
|
12
|
-
// .fly-menu { @include glass.popover; }
|
|
13
|
-
// .
|
|
12
|
+
// .fly-menu { @include glass.popover($surface: menu); } // portaled to <body>
|
|
13
|
+
// .in-win-menu { @include glass.popover($surface: menu, $nested: true); } // inside a window
|
|
14
|
+
// .fly-drawer { @include glass.popover($shadow: drawer, $surface: chrome, $nested: true); }
|
|
14
15
|
// .app-panel { @include glass.panel; }
|
|
15
16
|
// .shell-header { @include glass.chrome; }
|
|
16
17
|
// Note the argumentless form has no parentheses — stylelint's
|
|
@@ -81,27 +82,26 @@
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
|
|
84
|
-
// The surface-context seam (skill §2
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
@function _fill($surface) {
|
|
85
|
+
// The surface-context seam (skill §2, §10).
|
|
86
|
+
// A caller DECLARES which surface it is and gets the right fill — this replaced
|
|
87
|
+
// the mock's fragile `#dc-root > … > section` structural override. The seam did
|
|
88
|
+
// its job on 2026-08-17: UX ruled the light `--glass2-bg` carrying the dark
|
|
89
|
+
// near-opaque fill was a canon-export BUG, and the one-value fix landed in
|
|
90
|
+
// `_nova-tokens.scss` (light fill = the light popover hue at 95%). `chrome`
|
|
91
|
+
// inherited it with no change here, exactly as designed.
|
|
92
|
+
|
|
93
|
+
// `chrome` is the canon's popover fill (skill §4) and — since the ruling — is
|
|
94
|
+
// legible in both themes, so panel-class floating surfaces (`fly-filter-panel`,
|
|
95
|
+
// `fly-drawer`, `fly-modal`, `fly-confirm-dialog`) sit on it, paired with
|
|
96
|
+
// `$nested: true` because they render INSIDE a window (a backdrop root — hazard
|
|
97
|
+
// 3 above — where a translucent fill + blur reads as flat mud; the dark-mode
|
|
98
|
+
// drift review of 2026-08-17 was exactly that mud being reported). The S1-era
|
|
99
|
+
// warning about `chrome` under a light floating MENU (95% black ink on a dark
|
|
100
|
+
// #38363C plate at 1.66–1.99:1) described the pre-ruling value and is history;
|
|
101
|
+
// menus stay on `menu` — its dark stops are the AA-measured alpha-1 pair, and
|
|
102
|
+
// IN-WINDOW menus add `$nested: true`, which swaps to the solid twin pair so
|
|
103
|
+
// light keeps its opacity where the blur is gone (the branch below).
|
|
104
|
+
@function _fill($surface, $nested: false) {
|
|
105
105
|
@if $surface == chrome {
|
|
106
106
|
@return var(--glass2-bg);
|
|
107
107
|
}
|
|
@@ -132,6 +132,17 @@
|
|
|
132
132
|
// so this fill does not vary with the wallpaper there at all (14.85:1), and
|
|
133
133
|
// light lands at 17.44:1. Measured table:
|
|
134
134
|
// `.workflow/plans/ux-refresh/notes/S1-review-fixes-surfaces.md`.
|
|
135
|
+
|
|
136
|
+
// Nested (in-window) menus take the SOLID twin pair: light's 58/64% stops
|
|
137
|
+
// lean on the thin blur for separation, and a nested surface has none (the
|
|
138
|
+
// window is a backdrop root), so the translucent pair inside a window read
|
|
139
|
+
// washed over the app's own content — the light half of the hazard the
|
|
140
|
+
// 2026-08-17 review fixed for dark. Alpha-1 in both themes; dark's twins are
|
|
141
|
+
// byte-identical to the base pair, so this changes nothing there.
|
|
142
|
+
@if $nested {
|
|
143
|
+
@return $glow, $sheen, linear-gradient(180deg, var(--mat-menu-solid-a), var(--mat-menu-solid-b));
|
|
144
|
+
}
|
|
145
|
+
|
|
135
146
|
@return $glow, $sheen, linear-gradient(180deg, var(--mat-menu-a), var(--mat-menu-b));
|
|
136
147
|
} @else if $surface == agent {
|
|
137
148
|
// The agent aside's own fill — the panel hue on a slightly wider alpha ramp,
|
|
@@ -217,16 +228,18 @@
|
|
|
217
228
|
// $nested `true` when this surface sits INSIDE another glass surface. Drops
|
|
218
229
|
// `backdrop-filter` entirely, because a nested backdrop root samples
|
|
219
230
|
// its parent instead of the wallpaper and reads as flat mud (hazard 3
|
|
220
|
-
// in the header). The
|
|
221
|
-
//
|
|
222
|
-
//
|
|
231
|
+
// in the header). The fill must then carry the surface on its own:
|
|
232
|
+
// `chrome` is near-opaque already, and `menu` swaps to its solid
|
|
233
|
+
// alpha-1 twins (`--mat-menu-solid-a/-b`) — which is why `$nested`
|
|
234
|
+
// with the genuinely translucent `panel`/`agent` fills is refused
|
|
235
|
+
// rather than silently rendered see-through.
|
|
223
236
|
@mixin popover($shadow: menu, $surface: chrome, $nested: false) {
|
|
224
|
-
@if $nested and $surface != chrome {
|
|
225
|
-
@error 'nova-glass: popover($nested: true) needs
|
|
237
|
+
@if $nested and $surface != chrome and $surface != menu {
|
|
238
|
+
@error 'nova-glass: popover($nested: true) needs a near-opaque fill — a nested surface has no backdrop-filter to separate it from the glass beneath, so the translucent `#{$surface}` fill renders see-through. Nestable surfaces are `chrome` (the 95% quartet plate) and `menu` (swaps to the solid --mat-menu-solid-a/-b twins). Drop $surface, or drop $nested and accept the muddy double-blur.';
|
|
226
239
|
}
|
|
227
240
|
|
|
228
241
|
border: 1px solid var(--glass2-border);
|
|
229
|
-
background-image: _fill($surface);
|
|
242
|
+
background-image: _fill($surface, $nested);
|
|
230
243
|
|
|
231
244
|
@if $shadow == menu {
|
|
232
245
|
box-shadow:
|
package/scss/_nova-tokens.scss
CHANGED
|
@@ -19,11 +19,17 @@
|
|
|
19
19
|
// · The design's `--ink` gets NO token at all. It folds into the existing
|
|
20
20
|
// `--text-color` / `--label-primary` semantics at the 2.0 flip.
|
|
21
21
|
// · `--accent` is NOT declared here. It is the existing runtime knob
|
|
22
|
-
// (`#9333EA`, re-skinnable via `FlyThemeService.applyAccent`) and
|
|
23
|
-
// re-
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
22
|
+
// (`#9333EA`, re-skinnable via `FlyThemeService.applyAccent`), and the
|
|
23
|
+
// deferred "re-value at the 2.0 flip" question was RULED 2026-08-17 in the
|
|
24
|
+
// knob's favour: `--accent` KEEPS `#9333EA`, and the canon's own purple
|
|
25
|
+
// family (the `#836ACA`/`#6A3FC0` selection washes below) now DERIVES from
|
|
26
|
+
// it via `color-mix(… var(--accent) …)`, so one purple rules a frame and a
|
|
27
|
+
// tenant re-skin carries the rail selection with it. `--accent-hi` is that
|
|
28
|
+
// accent's hover/pressed partner (a literal — `plate-ink.spec.ts` extracts
|
|
29
|
+
// a hex). `--sys-purple` deliberately does NOT derive: it is a STATUS hue
|
|
30
|
+
// (like `--sys-red`), not the brand, and must not follow a re-skin.
|
|
31
|
+
// `/design-lab` → "Tokens & Ramp" previews the accent pair together by
|
|
32
|
+
// scoping both to the panel.
|
|
27
33
|
|
|
28
34
|
// ── Notation ─────────────────────────────────────────────────────────────────
|
|
29
35
|
// The ratified table is written in the design files' legacy `rgba(r,g,b,.a)`
|
|
@@ -44,18 +50,27 @@ html.light-theme {
|
|
|
44
50
|
--chrome-ink-hover: #000;
|
|
45
51
|
--rail-ink: #353537;
|
|
46
52
|
--rail-stroke: rgb(0 0 0 / 7%);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
--
|
|
53
|
+
|
|
54
|
+
// Selection family — accent-DERIVED (the 2026-08-17 two-purples ruling; see
|
|
55
|
+
// the header). The ratified alphas are unchanged; only the hue now follows
|
|
56
|
+
// `var(--accent)`, so a tenant re-skin carries the rail. Mixing toward
|
|
57
|
+
// `transparent` is this file's own tint doctrine: the hue at that alpha.
|
|
58
|
+
// The ink is the accent itself, exactly the canon's shape (its light ink WAS
|
|
59
|
+
// its light accent).
|
|
60
|
+
--rail-on-bg: color-mix(in srgb, var(--accent) 16%, transparent);
|
|
61
|
+
--rail-on-ink: var(--accent);
|
|
62
|
+
--rail-on-stroke: color-mix(in srgb, var(--accent) 26%, transparent);
|
|
63
|
+
--rail-on-shadow: 0 2px 6px color-mix(in srgb, var(--accent) 12%, transparent);
|
|
51
64
|
|
|
52
65
|
// Hover/selection are a TINT, never an inversion (skill §9 rule 11).
|
|
53
|
-
--tint-hover:
|
|
54
|
-
--tint-sel:
|
|
66
|
+
--tint-hover: color-mix(in srgb, var(--accent) 10%, transparent);
|
|
67
|
+
--tint-sel: color-mix(in srgb, var(--accent) 15%, transparent);
|
|
55
68
|
|
|
56
|
-
// The
|
|
57
|
-
// shipped
|
|
58
|
-
|
|
69
|
+
// The accent's hover/pressed partner — `#9333EA` mixed 85% toward black,
|
|
70
|
+
// shipped as a LITERAL because `plate-ink.spec.ts` extracts a hex to run its
|
|
71
|
+
// on-accent ink math against (that table is built to follow re-values).
|
|
72
|
+
// Recompute if `--accent` ever moves: color-mix(in srgb, #9333EA 85%, #000).
|
|
73
|
+
--accent-hi: #7d2bc7;
|
|
59
74
|
|
|
60
75
|
// ── System semantics ───────────────────────────────────────────────────────
|
|
61
76
|
// `--sys-red-txt` exists because `--sys-red` fails AA as dark-theme text
|
|
@@ -220,6 +235,18 @@ html.light-theme {
|
|
|
220
235
|
--mat-menu-b-alpha: 0.64;
|
|
221
236
|
--mat-menu-b: rgb(222 229 238 / calc(var(--mat-menu-b-alpha) * 100%));
|
|
222
237
|
|
|
238
|
+
// The menu pair at ALPHA-1 — what `popover($surface: menu, $nested: true)`
|
|
239
|
+
// paints where no backdrop-filter can separate a menu from the glass beneath
|
|
240
|
+
// (inside a window, a backdrop root — `_nova-glass.scss` hazard 3). Dark's
|
|
241
|
+
// base pair is already opaque, so its solid twin is byte-identical; light's
|
|
242
|
+
// restores the opacity in-window menus had before the 2026-08-17 review moved
|
|
243
|
+
// them onto the menu material (58/64% + a nested blur sampled the app's own
|
|
244
|
+
// content and washed out). Deliberately NOT a knob+colour pair: alpha-1 IS the
|
|
245
|
+
// contract, so there is no number to adapt — `nova-tokens.spec.ts` pins
|
|
246
|
+
// hue-parity with the base pair instead of registering it as an 8th material.
|
|
247
|
+
--mat-menu-solid-a: rgb(238 242 247);
|
|
248
|
+
--mat-menu-solid-b: rgb(222 229 238);
|
|
249
|
+
|
|
223
250
|
// The agent aside — the PANEL hue on its own alpha ramp, top-to-bottom. It was a
|
|
224
251
|
// hardcoded literal inside `_nova-glass.scss`'s `agent` branch, and that literal
|
|
225
252
|
// was `rgb(56 54 60)` — byte-identical to the DARK `--mat-panel`, so the aside
|
|
@@ -248,18 +275,19 @@ html.light-theme {
|
|
|
248
275
|
--check-ink: #fff;
|
|
249
276
|
|
|
250
277
|
// ── Glass quartet (design `--glass-*`, renamed per D1) ─────────────────────
|
|
251
|
-
//
|
|
252
|
-
//
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
//
|
|
278
|
+
// RULED (2026-08-17, closing the S0.2 memo's open question): the light
|
|
279
|
+
// `--glass2-bg` carrying the DARK near-opaque fill verbatim was a BUG in the
|
|
280
|
+
// canon export, not intent — UX's dark-mode drift review re-anchored every
|
|
281
|
+
// floating surface on the quartet, which is only possible if the light fill
|
|
282
|
+
// is a light plate. The value below mirrors the dark quartet's shape exactly
|
|
283
|
+
// (glow + sheen + near-opaque fill at 95%) on the light popover hue the
|
|
284
|
+
// `--mat-menu-a` material was picked for. This is the one-value fix the
|
|
285
|
+
// `_nova-glass.scss` surface seam was built to receive: `chrome` inherits it
|
|
286
|
+
// and becomes legible in both themes with no mixin change.
|
|
259
287
|
--glass2-bg:
|
|
260
288
|
radial-gradient(70% 60% at 50% 100%, var(--w07), transparent 70%),
|
|
261
289
|
linear-gradient(180deg, var(--w08), transparent 20%),
|
|
262
|
-
linear-gradient(rgb(
|
|
290
|
+
linear-gradient(rgb(238 242 247 / 95%), rgb(238 242 247 / 95%));
|
|
263
291
|
--glass2-border: var(--w18);
|
|
264
292
|
--glass2-inset: inset 0 0.5px 0 var(--w22);
|
|
265
293
|
--glass2-blur: blur(16px) saturate(180%) brightness(.95);
|
|
@@ -273,13 +301,20 @@ html.dark-theme {
|
|
|
273
301
|
--chrome-ink-hover: #fff;
|
|
274
302
|
--rail-ink: rgb(255 255 255 / 65%);
|
|
275
303
|
--rail-stroke: rgb(255 255 255 / 12%);
|
|
276
|
-
|
|
304
|
+
|
|
305
|
+
// Selection family — accent-derived (the 2026-08-17 two-purples ruling, the
|
|
306
|
+
// light block carries the full story). The filled pill takes the accent
|
|
307
|
+
// itself; its white ink measures 5.4:1 on `#9333EA`. Stroke stays the white
|
|
308
|
+
// ramp — it was never purple here.
|
|
309
|
+
--rail-on-bg: var(--accent);
|
|
277
310
|
--rail-on-ink: #fff;
|
|
278
311
|
--rail-on-stroke: rgb(255 255 255 / 28%);
|
|
279
|
-
--rail-on-shadow: 0 8px 22px
|
|
280
|
-
--tint-hover:
|
|
281
|
-
--tint-sel:
|
|
282
|
-
|
|
312
|
+
--rail-on-shadow: 0 8px 22px color-mix(in srgb, var(--accent) 45%, transparent);
|
|
313
|
+
--tint-hover: color-mix(in srgb, var(--accent) 26%, transparent);
|
|
314
|
+
--tint-sel: color-mix(in srgb, var(--accent) 30%, transparent);
|
|
315
|
+
|
|
316
|
+
// `#9333EA` mixed 87% toward black (a literal — see the light block).
|
|
317
|
+
--accent-hi: #802ccc;
|
|
283
318
|
|
|
284
319
|
// ── System semantics ───────────────────────────────────────────────────────
|
|
285
320
|
--sys-red: #FF453A;
|
|
@@ -374,6 +409,11 @@ html.dark-theme {
|
|
|
374
409
|
--mat-menu-b-alpha: 1;
|
|
375
410
|
--mat-menu-b: rgb(26 25 30 / calc(var(--mat-menu-b-alpha) * 100%));
|
|
376
411
|
|
|
412
|
+
// The solid twins of the pair above (the light block carries the full story) —
|
|
413
|
+
// byte-identical to it here, where the menu material is already alpha-1.
|
|
414
|
+
--mat-menu-solid-a: rgb(32 31 37);
|
|
415
|
+
--mat-menu-solid-b: rgb(26 25 30);
|
|
416
|
+
|
|
377
417
|
// Translucent again (2026-08-16), on S6W's COOL hues — half of that ruling reversed, half
|
|
378
418
|
// kept, and the split is deliberate. S6W found the aside compositing muddy brown over warm
|
|
379
419
|
// wallpapers and went alpha-1 on the menu pair's stops. Two facts have changed since:
|
|
@@ -4966,6 +4966,72 @@ declare class FlyBlockUiComponent {
|
|
|
4966
4966
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyBlockUiComponent, "fly-block-ui", never, { "active": { "alias": "active"; "required": true; "isSignal": true; }; "messageKey": { "alias": "messageKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4967
4967
|
}
|
|
4968
4968
|
|
|
4969
|
+
/**
|
|
4970
|
+
* Why a cross-app surface cannot be used right now.
|
|
4971
|
+
*
|
|
4972
|
+
* These are four genuinely different situations with four different remedies, which is why they
|
|
4973
|
+
* are one input rather than four components — a caller that cannot tell them apart (an HTTP
|
|
4974
|
+
* failure, say) can still pick `unreachable` and say something true.
|
|
4975
|
+
*/
|
|
4976
|
+
type FlyAppUnavailableState =
|
|
4977
|
+
/** The tenant has no licence for the app. Remedy: an admin adds it to the plan. */
|
|
4978
|
+
'not-licensed'
|
|
4979
|
+
/** Licensed but not installed for this tenant. Remedy: an admin installs it. */
|
|
4980
|
+
| 'not-installed'
|
|
4981
|
+
/** Installed and licensed, but this user lacks the role. Remedy: an admin grants access. */
|
|
4982
|
+
| 'no-permission'
|
|
4983
|
+
/** Installed and permitted, but the call failed. Remedy: retry later. */
|
|
4984
|
+
| 'unreachable';
|
|
4985
|
+
/**
|
|
4986
|
+
* Explains that another app is not available, instead of failing at the user in the vocabulary of
|
|
4987
|
+
* whatever call happened to break.
|
|
4988
|
+
*
|
|
4989
|
+
* Cross-app integrations (a "convert this into a project" action, a deep link into another app)
|
|
4990
|
+
* have no way to say *why* nothing happened. Left alone they surface the underlying transport
|
|
4991
|
+
* error, which is usually both alarming and wrong — a decommissioned or unlicensed target reads to
|
|
4992
|
+
* the user as "your data is in the wrong state".
|
|
4993
|
+
*
|
|
4994
|
+
* Project the reason, not the exception:
|
|
4995
|
+
* ```html
|
|
4996
|
+
* <fly-app-unavailable state="not-licensed" appName="PPM">
|
|
4997
|
+
* <button fly-button (click)="requestAccess()">Request access</button>
|
|
4998
|
+
* </fly-app-unavailable>
|
|
4999
|
+
* ```
|
|
5000
|
+
*
|
|
5001
|
+
* Projected content renders as the action row and is optional — omit it when there is nothing the
|
|
5002
|
+
* user can usefully do.
|
|
5003
|
+
*/
|
|
5004
|
+
declare class FlyAppUnavailableComponent {
|
|
5005
|
+
/** Which situation this is. Drives the default icon, title and message. */
|
|
5006
|
+
state: _angular_core.InputSignal<FlyAppUnavailableState>;
|
|
5007
|
+
/**
|
|
5008
|
+
* Display name of the unavailable app, interpolated into the message as `{{app}}`.
|
|
5009
|
+
* Left empty, the message falls back to a generic "this app" phrasing that still reads correctly
|
|
5010
|
+
* in all four locales.
|
|
5011
|
+
*/
|
|
5012
|
+
appName: _angular_core.InputSignal<string>;
|
|
5013
|
+
/** Overrides the state's default title key. */
|
|
5014
|
+
titleKey: _angular_core.InputSignal<string>;
|
|
5015
|
+
/** Overrides the state's default message key. */
|
|
5016
|
+
messageKey: _angular_core.InputSignal<string>;
|
|
5017
|
+
/** Overrides the state's default PrimeIcons class (e.g. `pi-lock`). */
|
|
5018
|
+
icon: _angular_core.InputSignal<string>;
|
|
5019
|
+
/** Inline density, for showing this inside an existing panel rather than as a full empty state. */
|
|
5020
|
+
compact: _angular_core.InputSignal<boolean>;
|
|
5021
|
+
private readonly stateSlug;
|
|
5022
|
+
readonly resolvedIcon: _angular_core.Signal<string>;
|
|
5023
|
+
readonly resolvedTitleKey: _angular_core.Signal<string>;
|
|
5024
|
+
readonly resolvedMessageKey: _angular_core.Signal<string>;
|
|
5025
|
+
/**
|
|
5026
|
+
* Trimmed app name, or empty when none was given. The template substitutes the localized
|
|
5027
|
+
* `app_unavailable.fallback_app` noun phrase in that case, so the sentence never opens with a
|
|
5028
|
+
* blank — and it does so through the pipe, so it re-resolves on a locale switch.
|
|
5029
|
+
*/
|
|
5030
|
+
readonly trimmedAppName: _angular_core.Signal<string>;
|
|
5031
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyAppUnavailableComponent, never>;
|
|
5032
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyAppUnavailableComponent, "fly-app-unavailable", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; "appName": { "alias": "appName"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "messageKey": { "alias": "messageKey"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
5033
|
+
}
|
|
5034
|
+
|
|
4969
5035
|
/**
|
|
4970
5036
|
* `<fly-card-grid>` — a responsive grid for {@link FlyCardComponent} (or anything else).
|
|
4971
5037
|
*
|
|
@@ -9691,6 +9757,93 @@ declare class FlyCurrencySelectorComponent implements ControlValueAccessor {
|
|
|
9691
9757
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyCurrencySelectorComponent, "fly-currency-selector", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "currencies": { "alias": "currencies"; "required": false; "isSignal": true; }; "fetchFn": { "alias": "fetchFn"; "required": false; "isSignal": true; }; "allowedCodes": { "alias": "allowedCodes"; "required": false; "isSignal": true; }; "pinnedCodes": { "alias": "pinnedCodes"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "locked": { "alias": "locked"; "required": false; "isSignal": true; }; "lockedReasonKey": { "alias": "lockedReasonKey"; "required": false; "isSignal": true; }; "lockedReasonParams": { "alias": "lockedReasonParams"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "selectionDetailChange": "selectionDetailChange"; "openedChange": "openedChange"; }, never, never, true, never>;
|
|
9692
9758
|
}
|
|
9693
9759
|
|
|
9760
|
+
/** The platform endpoint the catalogue reads. Relative — the host's gateway + auth interceptors apply. */
|
|
9761
|
+
declare const FLY_CURRENCIES_BRIEF_ENDPOINT = "/api/currencies/brief";
|
|
9762
|
+
/**
|
|
9763
|
+
* Accepts either the platform's `ApiResponse<T>` envelope or a bare array.
|
|
9764
|
+
*
|
|
9765
|
+
* A host proxying the same reference rows through its own route may not wrap them, and making
|
|
9766
|
+
* the envelope a hidden requirement of consuming the design system would be a needless coupling.
|
|
9767
|
+
* Written as an explicit guard rather than an inline `Array.isArray` ternary because
|
|
9768
|
+
* `Array.isArray` does not narrow a `readonly T[]` union member — that compiles under the spec
|
|
9769
|
+
* transform and fails the real AOT build.
|
|
9770
|
+
*
|
|
9771
|
+
* Lives here rather than in `fly-currency-selector` because the wire contract is now read by two
|
|
9772
|
+
* surfaces (the picker and this catalogue); one copy means they cannot drift apart on what
|
|
9773
|
+
* `GET /api/currencies/brief` is allowed to return.
|
|
9774
|
+
*/
|
|
9775
|
+
declare function flyUnwrapCurrencies(res: unknown): readonly FlyCurrency[];
|
|
9776
|
+
/**
|
|
9777
|
+
* **`FlyCurrencyCatalogService`** — the one ISO-code → {@link FlyCurrency} adapter for the
|
|
9778
|
+
* platform currency catalogue (`GET /api/currencies/brief`).
|
|
9779
|
+
*
|
|
9780
|
+
* {@link flyFormatMoney} needs a `FlyCurrency` row to do its job properly: the row carries the
|
|
9781
|
+
* `symbol` a user expects to read (`$`, `د.إ`) and the `decimalDigits` that keep a dinar from
|
|
9782
|
+
* being mispriced as a dollar. Until now the only way to obtain a row was to mount
|
|
9783
|
+
* `fly-currency-selector` — so every surface that merely *displays* money (a KPI tile, a report
|
|
9784
|
+
* table, a budget column) had to pass a bare ISO code and accept the code as its label. This is
|
|
9785
|
+
* that lookup, once, next to the formatter that needs it.
|
|
9786
|
+
*
|
|
9787
|
+
* The HTTP call rides the **host's** `HttpClient`, so the host's gateway routing, auth
|
|
9788
|
+
* interceptor and correlation headers all apply — the same arrangement `fly-currency-selector`
|
|
9789
|
+
* and `FlyUserDirectoryService` use. The DS never configures a base URL of its own.
|
|
9790
|
+
*
|
|
9791
|
+
* ## `row()` is read-through — hosts do not prime
|
|
9792
|
+
*
|
|
9793
|
+
* {@link row} is a *signal-backed* accessor: on a miss it schedules the one-time catalogue load
|
|
9794
|
+
* and returns `null`, and because the read happens inside Angular's reactive context a
|
|
9795
|
+
* `computed` (or template) calling it recomputes by itself when the rows land. Callers stay
|
|
9796
|
+
* synchronous and need no `prime()` at each render site — the shape
|
|
9797
|
+
* {@link FlyUserDirectoryService} established for the user directory, minus the batching: this
|
|
9798
|
+
* catalogue is a bounded ~170-row reference list, so it is fetched whole in ONE request rather
|
|
9799
|
+
* than resolved code by code.
|
|
9800
|
+
*
|
|
9801
|
+
* ## Degrading is the point, not an edge case
|
|
9802
|
+
*
|
|
9803
|
+
* `null` means "no row available" — not loaded yet, load failed, endpoint unreachable (a
|
|
9804
|
+
* standalone External App), or a code the catalogue simply does not carry. Callers render their
|
|
9805
|
+
* own fallback; {@link flyFormatMoney} accepts the bare code string and labels with it. A
|
|
9806
|
+
* surface therefore shows `USD 620,000` for the moment before the rows arrive and `$ 620,000`
|
|
9807
|
+
* after — never a blank, and never a symbol the platform catalogue did not vouch for.
|
|
9808
|
+
*
|
|
9809
|
+
* The load is attempted **once** per session. A render-driven read must not hammer a broken
|
|
9810
|
+
* endpoint on every change-detection pass, so a failure leaves the catalogue empty for the
|
|
9811
|
+
* session; {@link reload} is the explicit retry hook for a host that surfaces one.
|
|
9812
|
+
*
|
|
9813
|
+
* @example Formatting money you only display
|
|
9814
|
+
* ```ts
|
|
9815
|
+
* private readonly currencies = inject(FlyCurrencyCatalogService);
|
|
9816
|
+
*
|
|
9817
|
+
* protected readonly amount = computed(() =>
|
|
9818
|
+
* flyFormatMoney(this.value(), this.currencies.row('AED') ?? 'AED', { locale: this.i18n.locale() }));
|
|
9819
|
+
* ```
|
|
9820
|
+
*/
|
|
9821
|
+
declare class FlyCurrencyCatalogService {
|
|
9822
|
+
private readonly http;
|
|
9823
|
+
/** Upper-cased ISO code → row. Signal-backed so {@link row} is reactive. */
|
|
9824
|
+
private readonly entries;
|
|
9825
|
+
/** Guards the once-per-session rule; see the class doc on why a failure is not retried. */
|
|
9826
|
+
private attempted;
|
|
9827
|
+
private loadScheduled;
|
|
9828
|
+
/** True once the catalogue has landed with at least one row. */
|
|
9829
|
+
readonly loaded: _angular_core.Signal<boolean>;
|
|
9830
|
+
/**
|
|
9831
|
+
* The `FlyCurrency` row for an ISO 4217 code, or `null` when none is available — on a miss the
|
|
9832
|
+
* one-time catalogue load is scheduled.
|
|
9833
|
+
*
|
|
9834
|
+
* An arrow property rather than a method so it can be bound as a value
|
|
9835
|
+
* (`[resolveCurrency]="currencies.row"`) without the host wrapping it in a closure.
|
|
9836
|
+
*/
|
|
9837
|
+
readonly row: (code: string | null | undefined) => FlyCurrency | null;
|
|
9838
|
+
/** Drops the cached rows and re-attempts the load — the retry hook behind a host's "couldn't
|
|
9839
|
+
* load currencies" affordance. Explicit callers are not subject to the once-only rule. */
|
|
9840
|
+
reload(): void;
|
|
9841
|
+
private scheduleLoad;
|
|
9842
|
+
private load;
|
|
9843
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyCurrencyCatalogService, never>;
|
|
9844
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlyCurrencyCatalogService>;
|
|
9845
|
+
}
|
|
9846
|
+
|
|
9694
9847
|
/**
|
|
9695
9848
|
* Locale-aware money formatting — the primitive `fly-currency-selector` never shipped
|
|
9696
9849
|
* (see D-B7-2 in `FlyOS.PPM/.workflow/design/DECISIONS.md`).
|
|
@@ -11323,6 +11476,18 @@ declare class FlyFilterPanelComponent {
|
|
|
11323
11476
|
readonly searched: _angular_core.OutputEmitterRef<void>;
|
|
11324
11477
|
/** Whether the `[filter-more]` advanced fields are revealed. */
|
|
11325
11478
|
protected readonly showMore: _angular_core.WritableSignal<boolean>;
|
|
11479
|
+
private readonly _host;
|
|
11480
|
+
private readonly _destroyRef;
|
|
11481
|
+
private _clipObserver;
|
|
11482
|
+
private _placeRaf;
|
|
11483
|
+
constructor();
|
|
11484
|
+
private _place;
|
|
11485
|
+
/** Nearest ancestor that clips/scrolls horizontally — the shell window's
|
|
11486
|
+
* content area when hosted, a page scroller when standalone, else null
|
|
11487
|
+
* (viewport fallback). */
|
|
11488
|
+
private _clipAncestor;
|
|
11489
|
+
private _observeClipAncestor;
|
|
11490
|
+
private _teardownPlacement;
|
|
11326
11491
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyFilterPanelComponent, never>;
|
|
11327
11492
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyFilterPanelComponent, "fly-filter-panel", never, { "open": { "alias": "open"; "required": true; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "showSearchButton": { "alias": "showSearchButton"; "required": false; "isSignal": true; }; "anchored": { "alias": "anchored"; "required": false; "isSignal": true; }; }, { "cleared": "cleared"; "closed": "closed"; "searched": "searched"; }, never, ["[filter-status]", "*", "[filter-more]"], true, never>;
|
|
11328
11493
|
}
|
|
@@ -12669,6 +12834,6 @@ declare const AUDIENCE_ERROR_CODES: {
|
|
|
12669
12834
|
};
|
|
12670
12835
|
type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
|
|
12671
12836
|
|
|
12672
|
-
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, ENTITY_LINK_LAUNCHER, 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_MAGIC_BAR_EVENT, FLY_MAGIC_BAR_ICONS, FLY_MAGIC_BAR_STORE_KEY, FLY_NF_CACHE_HEAL_FLAG, FLY_RELOAD_DEBOUNCE_MS, FLY_RELOAD_REARM_MS, FLY_REMOTE_BASE_PATH, FLY_REMOTE_CONTEXT_EVENT, FLY_REMOTE_CONTEXT_STORE_KEY, FLY_REMOTE_ROUTES, FLY_SCAN_PENDING_DEFAULT_DELAY_MS, FLY_SCAN_PENDING_MAX_RETRIES, FLY_SCAN_PENDING_STATUS, FLY_SEARCH_DEBOUNCE_MS, FLY_SKIN_TONES, FLY_STANDALONE_AUTH_CONFIG, FLY_THEME_MODE_IDS, FLY_VIEWPORT_IS_MOBILE, FLY_WINDOW_HELP_HINT_EVENT, FLY_WINDOW_PAGE_TITLE_EVENT, FlyAchievementProgressComponent, FlyActionMenuComponent, FlyActionStackComponent, FlyAgentDraggableDirective, FlyAnimatedEmojiComponent, FlyAppHomeComponent, 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, FlyCurrencySelectorComponent, FlyDataTableComponent, FlyDatePipe, FlyDateTimePipe, FlyDebouncer, FlyDecimalNumberPipe, FlyDeepLinkPrefetchService, FlyDetailCardComponent, FlyDetailShellComponent, FlyDrawerComponent, FlyDurationPipe, FlyDynamicFormComponent, FlyEmojiPickerComponent, FlyFieldComponent, FlyFileDownloadService, FlyFileUploadComponent, FlyFilterPanelComponent, FlyFormBannerComponent, FlyFormFooterComponent, FlyFormGridComponent, FlyFormSectionComponent, FlyFullNumberPipe, FlyGanttComponent, FlyHubClient, FlyIconButtonComponent, FlyIfAdminDirective, FlyIfRoleDirective, FlyImageUploadComponent, FlyLeaderboardComponent, FlyMagicActionsComponent, FlyMetaListComponent, FlyModalComponent, FlyModerationQueueComponent, FlyModuleIconDirective, FlyMoneyPipe, 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, FlyUserDirectoryService, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_ZOOMS, I18nService, LAUNCH_CONTEXT, MAGIC_BAR_SEARCH_WIDTH_DEFAULT, MAGIC_BAR_SEARCH_WIDTH_MAX, MAGIC_BAR_SEARCH_WIDTH_MIN, MagicBarRegistry, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, NOVA_PRIORITY_TONE, NOVA_STATUS_TONE, NOVA_TONE_FALLBACK, 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, clampMagicBarSearchWidth, clampPage, clampSliderValue, connectRemoteLaunch, enterActivatesNatively, filterGroup, filterSuggestions, findLocaleByDialect, findLocaleByPrefix, firstEnabledIndex, firstModuleIndex, flattenModules, flyAdminGuard, flyApiErrorMessage, flyCaptchaBase64Utf8, flyCaptchaBuildToken, flyCaptchaSha256Hex, flyCompactNumber, flyDebounced, flyDecimalNumber, flyDownloadBlob, flyDuration, flyEmojiFor, flyEmojiIsTonable, flyEmojiPackUrl, flyExportFileName, flyFirstEnabledIndex, flyFormatBytes, flyFormatDate, flyFormatDateTime, flyFormatMoney, flyFormatTime, flyFullNumber, flyNextEnabledIndex, flyNextSegmentIndex, flyRelativeTime, flyResolveActiveTab, flyRoleGuard, flyScanPendingDelayMs, flyScanRetry, flySignedCompact, flySkinToneLabelKey, flyStandaloneAuthGuard, flyStandaloneAuthInterceptor, flyToDateOnly, flyToPage, flyUnwrap, flyUnwrapLenient, hasAnyRoleIn, healNativeFederationCacheOnce, initialExpanded, isAccentColor, isChunkLoadError, isFlyAuthStorePopulated, isNativeFederationCacheError, isRtlLocale, isRtlLocaleEntry, isValidCron, isValidSingleField, loadRemoteStyles, magicBarOwnerKey, magicBarSearchText, matchFlyRoutePattern, nextEnabledIndex, nextModuleIndex, nextSegmentIndex, nextSort, normalizeFlyTheme, normalizeRoles, novaPriorityToneVar, novaStatusToneVar, overlayStack, parseCron, parseStepUpChallenge, parseTags, prefetchRemoteStyles, presenceColorFor, printConsoleSecurityWarning, provideFlyChunkReloadRecovery, provideFlyEmojiPack, provideFlyStandaloneAuth, reloadOnceForChunkError, requestAppLaunch, resolveActiveModule, resolveActiveSection, resolveActiveTab, resolveCellValue, resolveStateIcon, resolveStateMessageKey, restoreFocus, sameTags, sectionHintKey, sectionLayout, sliderTrackGradient, sparklinePath, sparklinePoints, stepUpInterceptor, stepUpReturnKey, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload, warnIfEmbeddedSessionMissing };
|
|
12673
|
-
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, CardDensity, CardLayout, ChartTerm, ChildWindowData, ChipTone, ConfirmKind, ConnectRemoteLaunchOptions, ContextMenuAlign, ContextMenuItem, ContextMenuSection, CronAdvancedFieldDef, CronMode, CronParts, CronWeekday, DesktopApp, DesktopAppCategory, DesktopAppKind, DetailSection, DialogResultWithAcknowledgement, EmbeddedSessionProbe, EntityLinkLauncher, EntityLinkSelection, FilterGroup, FlyAchievementRow, FlyApiError, FlyApiResponse, FlyAppHomeLayout, FlyAppModule, FlyAppModuleSection, FlyAuthRefreshPayload, FlyAuthStoreReadable, FlyBadgeTile, FlyBreadcrumbItem, FlyCaptchaChallenge, FlyCaptchaSolution, FlyCaptchaState, FlyCellContext, FlyColumn, FlyColumnKind, FlyComment, FlyCommentDeleteRequest, FlyCommentEditRequest, FlyCommentLoadMoreRequest, FlyCommentLoadRepliesRequest, FlyCommentLockToggleRequest, FlyCommentPage, FlyCommentReportReason, FlyCommentReportRequest, FlyCommentReportStatus, FlyCommentSubmitRequest, FlyCountry, FlyCurrency, FlyCurrencyFetchFn, FlyCurrencySelectorMode, FlyCurrencySelectorValue, FlyDeepLinkPrefetchRoute, FlyDrawerBodyPadding, FlyDrawerPosition, FlyDrawerSide, FlyDrawerSize, FlyDrawerVariant, FlyEmojiCategory, FlyEmojiCell, FlyEmojiEntry, FlyEmojiPack, FlyEmojiPackEntry, FlyEmojiPackManifest, FlyEmojiPickerSize, FlyEmojiPickerTab, FlyEmojiSection, FlyFileInfo, FlyFileSelection, FlyFormAnswer, FlyFormAnswerValue, FlyFormDefinition, FlyFormFieldOptions, FlyFormOption, FlyFormQuestion, FlyFormQuestionType, FlyFormScoreDisplay, FlyFormatMoneyOptions, FlyLaunchEventDetail, FlyLaunchRequestDetail, FlyLeaderboardRow, FlyLiveRefreshOptions, FlyLocaleEntry, FlyMagicBarIconName, FlyMetaItem, FlyModerationLoadPageRequest, FlyModerationLockThreadRequest, FlyModerationOpenSubjectRequest, FlyModerationReport, FlyModerationReportPage, FlyModerationResolutionStatus, FlyModerationResolveRequest, FlyMoneyDisplay, FlyNavigableItem, FlyPageMeta, FlyPageResult, FlyPaged, FlyPeoplePickerMode, FlyPeoplePickerOption, FlyPeopleSearchFn, FlyPointsSummary, FlyRemoteContext, FlyRemoteEagerRoute, FlyRemoteLazyRoute, FlyRemoteLoadedComponent, 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, LoadRemoteStylesOptions, LookupDescriptor, LookupHandle, LookupRegistration, LookupResult, LookupSearch, MagicBarAction, MagicBarActionKind, MagicBarActionSpec, MagicBarActionView, MagicBarContribution, MagicBarGroup, MagicBarGroupSpec, MagicBarGroupView, MagicBarOwnerRef, MagicBarPublisher, MagicBarRadioMenu, MagicBarRadioMenuSpec, MagicBarRadioMenuView, MagicBarRadioOption, MagicBarSearch, MagicBarSearchSeed, MagicBarSearchSpec, MagicBarSearchView, MagicBarTextParams, MagicBarTone, MagicBarView, 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, TabsVariant, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
|
|
12837
|
+
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, ENTITY_LINK_LAUNCHER, 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_CURRENCIES_BRIEF_ENDPOINT, 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_MAGIC_BAR_EVENT, FLY_MAGIC_BAR_ICONS, FLY_MAGIC_BAR_STORE_KEY, FLY_NF_CACHE_HEAL_FLAG, FLY_RELOAD_DEBOUNCE_MS, FLY_RELOAD_REARM_MS, FLY_REMOTE_BASE_PATH, FLY_REMOTE_CONTEXT_EVENT, FLY_REMOTE_CONTEXT_STORE_KEY, FLY_REMOTE_ROUTES, FLY_SCAN_PENDING_DEFAULT_DELAY_MS, FLY_SCAN_PENDING_MAX_RETRIES, FLY_SCAN_PENDING_STATUS, FLY_SEARCH_DEBOUNCE_MS, FLY_SKIN_TONES, FLY_STANDALONE_AUTH_CONFIG, FLY_THEME_MODE_IDS, FLY_VIEWPORT_IS_MOBILE, FLY_WINDOW_HELP_HINT_EVENT, FLY_WINDOW_PAGE_TITLE_EVENT, FlyAchievementProgressComponent, FlyActionMenuComponent, FlyActionStackComponent, FlyAgentDraggableDirective, FlyAnimatedEmojiComponent, FlyAppHomeComponent, FlyAppTopbarComponent, FlyAppUnavailableComponent, 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, FlyCurrencyCatalogService, FlyCurrencySelectorComponent, FlyDataTableComponent, FlyDatePipe, FlyDateTimePipe, FlyDebouncer, FlyDecimalNumberPipe, FlyDeepLinkPrefetchService, FlyDetailCardComponent, FlyDetailShellComponent, FlyDrawerComponent, FlyDurationPipe, FlyDynamicFormComponent, FlyEmojiPickerComponent, FlyFieldComponent, FlyFileDownloadService, FlyFileUploadComponent, FlyFilterPanelComponent, FlyFormBannerComponent, FlyFormFooterComponent, FlyFormGridComponent, FlyFormSectionComponent, FlyFullNumberPipe, FlyGanttComponent, FlyHubClient, FlyIconButtonComponent, FlyIfAdminDirective, FlyIfRoleDirective, FlyImageUploadComponent, FlyLeaderboardComponent, FlyMagicActionsComponent, FlyMetaListComponent, FlyModalComponent, FlyModerationQueueComponent, FlyModuleIconDirective, FlyMoneyPipe, 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, FlyUserDirectoryService, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_ZOOMS, I18nService, LAUNCH_CONTEXT, MAGIC_BAR_SEARCH_WIDTH_DEFAULT, MAGIC_BAR_SEARCH_WIDTH_MAX, MAGIC_BAR_SEARCH_WIDTH_MIN, MagicBarRegistry, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, NOVA_PRIORITY_TONE, NOVA_STATUS_TONE, NOVA_TONE_FALLBACK, 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, clampMagicBarSearchWidth, clampPage, clampSliderValue, connectRemoteLaunch, enterActivatesNatively, filterGroup, filterSuggestions, findLocaleByDialect, findLocaleByPrefix, firstEnabledIndex, firstModuleIndex, flattenModules, flyAdminGuard, flyApiErrorMessage, flyCaptchaBase64Utf8, flyCaptchaBuildToken, flyCaptchaSha256Hex, flyCompactNumber, flyDebounced, flyDecimalNumber, flyDownloadBlob, flyDuration, flyEmojiFor, flyEmojiIsTonable, flyEmojiPackUrl, flyExportFileName, flyFirstEnabledIndex, flyFormatBytes, flyFormatDate, flyFormatDateTime, flyFormatMoney, flyFormatTime, flyFullNumber, flyNextEnabledIndex, flyNextSegmentIndex, flyRelativeTime, flyResolveActiveTab, flyRoleGuard, flyScanPendingDelayMs, flyScanRetry, flySignedCompact, flySkinToneLabelKey, flyStandaloneAuthGuard, flyStandaloneAuthInterceptor, flyToDateOnly, flyToPage, flyUnwrap, flyUnwrapCurrencies, flyUnwrapLenient, hasAnyRoleIn, healNativeFederationCacheOnce, initialExpanded, isAccentColor, isChunkLoadError, isFlyAuthStorePopulated, isNativeFederationCacheError, isRtlLocale, isRtlLocaleEntry, isValidCron, isValidSingleField, loadRemoteStyles, magicBarOwnerKey, magicBarSearchText, matchFlyRoutePattern, nextEnabledIndex, nextModuleIndex, nextSegmentIndex, nextSort, normalizeFlyTheme, normalizeRoles, novaPriorityToneVar, novaStatusToneVar, overlayStack, parseCron, parseStepUpChallenge, parseTags, prefetchRemoteStyles, presenceColorFor, printConsoleSecurityWarning, provideFlyChunkReloadRecovery, provideFlyEmojiPack, provideFlyStandaloneAuth, reloadOnceForChunkError, requestAppLaunch, resolveActiveModule, resolveActiveSection, resolveActiveTab, resolveCellValue, resolveStateIcon, resolveStateMessageKey, restoreFocus, sameTags, sectionHintKey, sectionLayout, sliderTrackGradient, sparklinePath, sparklinePoints, stepUpInterceptor, stepUpReturnKey, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload, warnIfEmbeddedSessionMissing };
|
|
12838
|
+
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, CardDensity, CardLayout, ChartTerm, ChildWindowData, ChipTone, ConfirmKind, ConnectRemoteLaunchOptions, ContextMenuAlign, ContextMenuItem, ContextMenuSection, CronAdvancedFieldDef, CronMode, CronParts, CronWeekday, DesktopApp, DesktopAppCategory, DesktopAppKind, DetailSection, DialogResultWithAcknowledgement, EmbeddedSessionProbe, EntityLinkLauncher, EntityLinkSelection, FilterGroup, FlyAchievementRow, FlyApiError, FlyApiResponse, FlyAppHomeLayout, FlyAppModule, FlyAppModuleSection, FlyAppUnavailableState, FlyAuthRefreshPayload, FlyAuthStoreReadable, FlyBadgeTile, FlyBreadcrumbItem, FlyCaptchaChallenge, FlyCaptchaSolution, FlyCaptchaState, FlyCellContext, FlyColumn, FlyColumnKind, FlyComment, FlyCommentDeleteRequest, FlyCommentEditRequest, FlyCommentLoadMoreRequest, FlyCommentLoadRepliesRequest, FlyCommentLockToggleRequest, FlyCommentPage, FlyCommentReportReason, FlyCommentReportRequest, FlyCommentReportStatus, FlyCommentSubmitRequest, FlyCountry, FlyCurrency, FlyCurrencyFetchFn, FlyCurrencySelectorMode, FlyCurrencySelectorValue, FlyDeepLinkPrefetchRoute, FlyDrawerBodyPadding, FlyDrawerPosition, FlyDrawerSide, FlyDrawerSize, FlyDrawerVariant, FlyEmojiCategory, FlyEmojiCell, FlyEmojiEntry, FlyEmojiPack, FlyEmojiPackEntry, FlyEmojiPackManifest, FlyEmojiPickerSize, FlyEmojiPickerTab, FlyEmojiSection, FlyFileInfo, FlyFileSelection, FlyFormAnswer, FlyFormAnswerValue, FlyFormDefinition, FlyFormFieldOptions, FlyFormOption, FlyFormQuestion, FlyFormQuestionType, FlyFormScoreDisplay, FlyFormatMoneyOptions, FlyLaunchEventDetail, FlyLaunchRequestDetail, FlyLeaderboardRow, FlyLiveRefreshOptions, FlyLocaleEntry, FlyMagicBarIconName, FlyMetaItem, FlyModerationLoadPageRequest, FlyModerationLockThreadRequest, FlyModerationOpenSubjectRequest, FlyModerationReport, FlyModerationReportPage, FlyModerationResolutionStatus, FlyModerationResolveRequest, FlyMoneyDisplay, FlyNavigableItem, FlyPageMeta, FlyPageResult, FlyPaged, FlyPeoplePickerMode, FlyPeoplePickerOption, FlyPeopleSearchFn, FlyPointsSummary, FlyRemoteContext, FlyRemoteEagerRoute, FlyRemoteLazyRoute, FlyRemoteLoadedComponent, 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, LoadRemoteStylesOptions, LookupDescriptor, LookupHandle, LookupRegistration, LookupResult, LookupSearch, MagicBarAction, MagicBarActionKind, MagicBarActionSpec, MagicBarActionView, MagicBarContribution, MagicBarGroup, MagicBarGroupSpec, MagicBarGroupView, MagicBarOwnerRef, MagicBarPublisher, MagicBarRadioMenu, MagicBarRadioMenuSpec, MagicBarRadioMenuView, MagicBarRadioOption, MagicBarSearch, MagicBarSearchSeed, MagicBarSearchSpec, MagicBarSearchView, MagicBarTextParams, MagicBarTone, MagicBarView, 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, TabsVariant, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
|
|
12674
12839
|
//# sourceMappingURL=flyos-design-system.d.ts.map
|