@flyos/design-system 1.1.0 → 1.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyos/design-system",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "FlyOS design system — shared components, directives, pipes, services, and models for Business App developers.",
5
5
  "keywords": [
6
6
  "flyos",
@@ -19,61 +19,27 @@
19
19
  font-variant-numeric: tabular-nums;
20
20
  }
21
21
 
22
- // ── Tooltip (CSS-only, no JS dependency) ─────────────────────────────────────
23
- // Add `data-tooltip="text"` to any element to show a floating label on hover or
24
- // keyboard focus. Always pair with `aria-label` for screen-reader users —
25
- // data-tooltip is a *visual* affordance only (the flyTooltip directive wires
26
- // both together). Consumers should use `data-tooltip` *instead of* `title`.
22
+ // ── Tooltip ──────────────────────────────────────────────────────────────────
23
+ // `data-tooltip="text"` still shows a floating label on hover / keyboard focus, but the
24
+ // SURFACE is no longer drawn here. It used to be a `::before` + `::after` pair on this
25
+ // selector, and a pseudo-element is a child box of its host: every scrolling or
26
+ // `overflow: hidden` ancestor clipped it. The boards toolbar rail (an `overflow-y: auto`
27
+ // plate ~47px wide) cut every tool's tip off inside its own column, and no z-index could
28
+ // help — clipping is not a stacking question, and `position: fixed` on the pseudo would
29
+ // still be trapped by those plates' `backdrop-filter` containing block.
30
+ //
31
+ // `FlyTooltipDirective` now owns the surface for BOTH `[flyTooltip]` and `[data-tooltip]`:
32
+ // a `position: fixed` node parented to `<body>`, so it escapes every clip, flips placement
33
+ // and clamps to the viewport. Components that write `data-tooltip` imperatively (the DS
34
+ // icon button) list the directive in `hostDirectives`; templates with a static or bound
35
+ // `data-tooltip` must IMPORT `FlyTooltipDirective` for the label to appear.
36
+ //
37
+ // Only the positioning context the attribute implied is kept, since callers may still hang
38
+ // their own absolutely-positioned adornments (badges, dots) off a tooltip'd control.
27
39
  [data-tooltip] {
28
40
  position: relative;
29
41
  }
30
42
 
31
- [data-tooltip]::before,
32
- [data-tooltip]::after {
33
- position: absolute;
34
- left: 50%;
35
- pointer-events: none;
36
- opacity: 0;
37
- transition: opacity 0.14s ease, transform 0.14s ease;
38
- z-index: var(--z-tooltip);
39
- }
40
-
41
- [data-tooltip]::before {
42
- content: attr(data-tooltip);
43
- bottom: calc(100% + 8px);
44
- transform: translateX(-50%) translateY(3px);
45
- background: var(--ink);
46
- color: var(--ink-inverse);
47
- font-family: var(--font-sans, system-ui, sans-serif);
48
- font-size: var(--text-xs);
49
- font-weight: var(--fw-medium);
50
- line-height: 1.3;
51
- letter-spacing: 0;
52
- padding: 5px 9px;
53
- border-radius: var(--r-sm);
54
- white-space: nowrap;
55
- box-shadow: var(--shadow-tooltip);
56
- }
57
-
58
- [data-tooltip]::after {
59
- content: '';
60
- bottom: calc(100% + 3px);
61
- transform: translateX(-50%) translateY(3px);
62
- width: 0;
63
- height: 0;
64
- border-left: 5px solid transparent;
65
- border-right: 5px solid transparent;
66
- border-top: 5px solid var(--ink);
67
- }
68
-
69
- [data-tooltip]:hover::before,
70
- [data-tooltip]:hover::after,
71
- [data-tooltip]:focus-visible::before,
72
- [data-tooltip]:focus-visible::after {
73
- opacity: 1;
74
- transform: translateX(-50%) translateY(0);
75
- }
76
-
77
43
  // ── CDK overlay container ────────────────────────────────────────────────────
78
44
  // Styled entirely by @angular/cdk/overlay-prebuilt.css (imported by the global
79
45
  // stylesheet). Its default z-index 1000 is correct here: a connected dropdown
@@ -6990,6 +6990,22 @@ type FlyTooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
6990
6990
  * host's `getBoundingClientRect()`, so it escapes every overflow-clip and app-window
6991
6991
  * bound. It flips placement + clamps to the viewport so it's always fully visible.
6992
6992
  *
6993
+ * ## `data-tooltip` is the SAME primitive now (the global clipping fix)
6994
+ * `[data-tooltip]` used to be a CSS-only `::before`/`::after` pair in
6995
+ * `_app-surface-utilities.scss`. A pseudo-element is a child box of its host, so it is
6996
+ * clipped by ANY scrolling / `overflow: hidden` ancestor — which is why the boards
6997
+ * toolbar rail (a `overflow-y: auto` plate) rendered every tool tip cut off inside its
6998
+ * own 47px-wide column. No z-index can fix that: clipping is not a stacking question.
6999
+ * `position: fixed` on the pseudo would not fix it either, because the same plates carry
7000
+ * `backdrop-filter`, and a filtered ancestor is a containing block for fixed descendants.
7001
+ *
7002
+ * The fix is to have ONE tooltip implementation, and it is this one: the selector now
7003
+ * also matches `[data-tooltip]`, and when no `flyTooltip` text is bound the directive
7004
+ * reads the host's `data-tooltip` attribute at show time. Reading it lazily (rather than
7005
+ * binding it) is what lets components that write the attribute IMPERATIVELY — the DS icon
7006
+ * button resolves an i18n key into it — participate by simply listing this directive in
7007
+ * `hostDirectives`, with no input to keep in sync.
7008
+ *
6993
7009
  * ## Behaviour
6994
7010
  * - Shows on `mouseenter` AND `focus` (keyboard users), after `flyTooltipDelay` ms.
6995
7011
  * - Hides immediately on `mouseleave` / `blur` / `Escape` / scroll / wheel / destroy.
@@ -7034,7 +7050,14 @@ declare class FlyTooltipDirective implements OnDestroy {
7034
7050
  private readonly onKeydown;
7035
7051
  constructor();
7036
7052
  ngOnDestroy(): void;
7037
- /** Trimmed text, or `''` when there's nothing meaningful to show. */
7053
+ /**
7054
+ * Trimmed text, or `''` when there's nothing meaningful to show.
7055
+ *
7056
+ * Falls back to the host's `data-tooltip` attribute — read from the DOM rather than through an
7057
+ * input, because the DS icon button writes it imperatively from a resolved i18n key (and re-writes
7058
+ * it on every locale change). A signal input could not see that; an attribute read at show time
7059
+ * always reports the current label.
7060
+ */
7038
7061
  private normalizedText;
7039
7062
  scheduleShow(): void;
7040
7063
  private show;
@@ -7055,7 +7078,7 @@ declare class FlyTooltipDirective implements OnDestroy {
7055
7078
  */
7056
7079
  private ensureStyles;
7057
7080
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyTooltipDirective, never>;
7058
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FlyTooltipDirective, "[flyTooltip]", never, { "text": { "alias": "flyTooltip"; "required": false; "isSignal": true; }; "flyTooltipPlacement": { "alias": "flyTooltipPlacement"; "required": false; "isSignal": true; }; "flyTooltipDisabled": { "alias": "flyTooltipDisabled"; "required": false; "isSignal": true; }; "flyTooltipDelay": { "alias": "flyTooltipDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7081
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FlyTooltipDirective, "[flyTooltip], [data-tooltip]", never, { "text": { "alias": "flyTooltip"; "required": false; "isSignal": true; }; "flyTooltipPlacement": { "alias": "flyTooltipPlacement"; "required": false; "isSignal": true; }; "flyTooltipDisabled": { "alias": "flyTooltipDisabled"; "required": false; "isSignal": true; }; "flyTooltipDelay": { "alias": "flyTooltipDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7059
7082
  }
7060
7083
 
7061
7084
  /**
@@ -8536,8 +8559,14 @@ declare class FlyButtonComponent {
8536
8559
  * Circular 34px icon-only button (ported from the legacy global
8537
8560
  * `.circles-iconbtn` disc — both render identically until the P6 sweep).
8538
8561
  *
8539
- * `tooltipKey` resolves through {@link I18nService} and wires BOTH
8540
- * `data-tooltip` (CSS tooltip) and `aria-label`, re-resolving on locale change.
8562
+ * `tooltipKey` resolves through {@link I18nService} and wires BOTH `data-tooltip` and
8563
+ * `aria-label`, re-resolving on locale change.
8564
+ *
8565
+ * The label is FLOATED by {@link FlyTooltipDirective} (a body-parented `position: fixed`
8566
+ * node), listed here as a host directive. It used to be a CSS `::before` on
8567
+ * `[data-tooltip]`, which any scrolling or `overflow: hidden` ancestor clipped — the
8568
+ * boards toolbar rail cut every tip off inside its own column. The directive reads the
8569
+ * attribute this component writes, so there is no input to keep in sync.
8541
8570
  */
8542
8571
  declare class FlyIconButtonComponent {
8543
8572
  private readonly i18n;
@@ -8549,7 +8578,7 @@ declare class FlyIconButtonComponent {
8549
8578
  readonly tooltipKey: _angular_core.InputSignal<string | undefined>;
8550
8579
  constructor();
8551
8580
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyIconButtonComponent, never>;
8552
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyIconButtonComponent, "button[fly-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "tooltipKey": { "alias": "tooltipKey"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8581
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyIconButtonComponent, "button[fly-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "tooltipKey": { "alias": "tooltipKey"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof FlyTooltipDirective; inputs: {}; outputs: {}; }]>;
8553
8582
  }
8554
8583
 
8555
8584
  type ChipTone = 'neutral' | 'accent' | 'success' | 'warning' | 'danger';
@@ -9136,6 +9165,137 @@ declare class FlySectionHeaderComponent {
9136
9165
  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
9166
  }
9138
9167
 
9168
+ /**
9169
+ * Detail-page content card — the surface every panel and sidebar block on a detail
9170
+ * screen sits on: `card-surface` fill/hairline/radius/shadow, an optional
9171
+ * `fly-section-header`, and a padded body.
9172
+ *
9173
+ * Extracted because four detail screens (Circles signal + trend, Thoughts idea +
9174
+ * the six sibling detail pages) had each hand-rolled the identical
9175
+ * `.card` / `.card__body` / `.card__body--flush` recipe, and they drifted: some
9176
+ * carried the shadow, some didn't, and on the shell's translucent glass the ones
9177
+ * without it lost their edge and read as a lighter surface than their neighbours.
9178
+ *
9179
+ * ```html
9180
+ * <fly-detail-card titleKey="common.label.metadata">
9181
+ * <fly-meta [items]="rows()" />
9182
+ * </fly-detail-card>
9183
+ *
9184
+ * <!-- A child with its own list chrome shouldn't sit inside body padding. -->
9185
+ * <fly-detail-card titleKey="common.label.evidence" [flush]="true">
9186
+ * <button card-actions type="button" (click)="add()">Add</button>
9187
+ * <fly-evidence-panel [hideHeader]="true" />
9188
+ * </fly-detail-card>
9189
+ * ```
9190
+ *
9191
+ * With no `titleKey` and nothing projected into `[card-title]` the header is
9192
+ * omitted entirely, so the card also serves as a bare framed surface (a cover
9193
+ * image, a chart) without an empty header rule above it.
9194
+ */
9195
+ declare class FlyDetailCardComponent {
9196
+ /** i18n key for the card title; alternatively project `[card-title]`. */
9197
+ readonly titleKey: _angular_core.InputSignal<string | undefined>;
9198
+ /**
9199
+ * Set when the title arrives through `[card-title]` rather than `titleKey`.
9200
+ * Content projection cannot be *queried* for presence without a `contentChild`
9201
+ * on a directive the caller would also have to import, so this stays an
9202
+ * explicit flag — a header with neither is omitted rather than rendered empty.
9203
+ */
9204
+ readonly hasProjectedTitle: _angular_core.InputSignal<boolean>;
9205
+ /** Drop the body padding — for a child that brings its own list/table chrome. */
9206
+ readonly flush: _angular_core.InputSignal<boolean>;
9207
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyDetailCardComponent, never>;
9208
+ 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>;
9209
+ }
9210
+
9211
+ /** One section in a detail shell's icon rail. */
9212
+ interface DetailSection {
9213
+ /** Stable id — what `selected` names. */
9214
+ id: string;
9215
+ /** i18n key for the rail label / tooltip. */
9216
+ labelKey: string;
9217
+ /**
9218
+ * Icon class for the rail glyph (e.g. a PrimeIcons `pi-info-circle`). Optional:
9219
+ * with none, the rail renders labels only.
9220
+ */
9221
+ icon?: string;
9222
+ }
9223
+ /**
9224
+ * Resolve which section is active.
9225
+ *
9226
+ * The fallback is the point of this function. A detail page's section list is
9227
+ * derived from the record — a scorecard tab only exists while the record has a
9228
+ * scorecard, an approvals tab only while an approval is open — so a selection made
9229
+ * on one record can name a section the NEXT record does not have. The remote-router
9230
+ * outlet reuses the component instance across `/x/:id` → `/x/:id` navigations, so
9231
+ * that is a routine occurrence, not an edge case, and the symptom is an empty panel
9232
+ * with no indication why.
9233
+ *
9234
+ * Returns the selection when it still exists, otherwise the first section, or null
9235
+ * when there are none.
9236
+ */
9237
+ declare function resolveActiveSection(sections: readonly DetailSection[], selected: string | undefined): string | null;
9238
+
9239
+ /**
9240
+ * Detail-page body scaffold — an aside (icon rail + pinned cards) beside a panel
9241
+ * showing the active section.
9242
+ *
9243
+ * The anatomy comes from the Circles signal-detail screen and had been hand-copied
9244
+ * onto every detail page that wanted it, CSS and all. Each copy re-derived the same
9245
+ * four decisions and got a different subset right, so this owns them:
9246
+ *
9247
+ * - **The rail sits at the top of the aside, but AFTER the content in the DOM** —
9248
+ * a screen reader meets the record before its navigation, while sighted readers
9249
+ * get the rail where a sidebar nav belongs. `order` does the visual half.
9250
+ * - **The panel stretches to the grid row** (already `max(aside, panel)`), so a
9251
+ * short section's card ends where the aside ends at every window size. A `vh`
9252
+ * floor cannot do this — it ignores the aside and mismatches at every size.
9253
+ * - **Below 980px the rail becomes a horizontal bar** above the panel rather than
9254
+ * a 300px column squeezing the content.
9255
+ * - **The active tab is a solid accent plate with `--on-accent-fill` ink** — NOT
9256
+ * `--accent` on `--accent-soft`: the shell paints `--accent-soft` as a tint of
9257
+ * `--accent`, so that pairing renders the label in its own background colour.
9258
+ *
9259
+ * It also supplies the tablist a11y both hand-rolled rails were missing: proper
9260
+ * `role="tablist"`/`tab`/`tabpanel` wiring, a roving tabindex, and RTL-aware arrow
9261
+ * keys with Home/End (shared with `fly-tabs` via `nextSegmentIndex`).
9262
+ *
9263
+ * ```html
9264
+ * <fly-detail-shell [sections]="sections()" [(selected)]="section">
9265
+ * <ng-container detail-aside>
9266
+ * <fly-detail-card titleKey="common.label.summary">…</fly-detail-card>
9267
+ * </ng-container>
9268
+ *
9269
+ * @switch (activeSection()) {
9270
+ * @case ('metadata') { <fly-detail-card …/> }
9271
+ * }
9272
+ * </fly-detail-shell>
9273
+ * ```
9274
+ *
9275
+ * The default slot is the panel. Read back the resolved section with the two-way
9276
+ * `selected` — it self-corrects when the bound id names a section that no longer
9277
+ * exists (see {@link resolveActiveSection}).
9278
+ */
9279
+ declare class FlyDetailShellComponent {
9280
+ private readonly i18n;
9281
+ private readonly uid;
9282
+ private readonly rail;
9283
+ /** The rail's sections, in order. Empty renders the aside + panel with no rail. */
9284
+ readonly sections: _angular_core.InputSignal<readonly DetailSection[]>;
9285
+ /** Active section id (two-way). Unset/unknown resolves to the first section. */
9286
+ readonly selected: _angular_core.ModelSignal<string | undefined>;
9287
+ /** i18n key for the rail's `aria-label`. */
9288
+ readonly sectionsLabelKey: _angular_core.InputSignal<string>;
9289
+ /** The section actually rendered — self-corrects, see {@link resolveActiveSection}. */
9290
+ readonly activeId: _angular_core.Signal<string | null>;
9291
+ tabId(id: string): string;
9292
+ panelId(): string;
9293
+ protected select(id: string): void;
9294
+ protected onKey(event: KeyboardEvent): void;
9295
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyDetailShellComponent, never>;
9296
+ 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>;
9297
+ }
9298
+
9139
9299
  /**
9140
9300
  * A single destination in the app's module switcher.
9141
9301
  *
@@ -9169,6 +9329,18 @@ interface FlyAppModuleSection {
9169
9329
  /** i18n key for the column heading. Omit for an untitled column. */
9170
9330
  titleKey?: string;
9171
9331
  modules: FlyAppModule[];
9332
+ /**
9333
+ * Card shape on the landing. `feature` is the tall icon-over-title card,
9334
+ * `compact` the short horizontal row. Defaults to `feature` for the first
9335
+ * section and `compact` for the rest.
9336
+ */
9337
+ layout?: 'feature' | 'compact';
9338
+ /** Renders the section behind a disclosure, collapsed initially. */
9339
+ collapsible?: boolean;
9340
+ /** i18n key for the aside shown beside a collapsible section's heading when OPEN. */
9341
+ hintKey?: string;
9342
+ /** i18n key for that aside when the section is COLLAPSED. Falls back to `hintKey`. */
9343
+ collapsedHintKey?: string;
9172
9344
  }
9173
9345
 
9174
9346
  /**
@@ -9285,6 +9457,113 @@ declare function nextModuleIndex(modules: readonly FlyAppModule[], from: number,
9285
9457
  /** First focusable row, or -1 when every row is disabled. */
9286
9458
  declare function firstModuleIndex(modules: readonly FlyAppModule[]): number;
9287
9459
 
9460
+ /**
9461
+ * `<fly-app-home>` — a business app's landing page: brand strip, hero, and one card
9462
+ * per module.
9463
+ *
9464
+ * The sibling of {@link FlyAppTopbarComponent}, and deliberately fed by the SAME
9465
+ * `FlyAppModuleSection[]`. An app declares its modules once; the switcher is how you
9466
+ * move between them once you are inside, this is the front door you arrive at. Two
9467
+ * registries would drift, and the drift would show as a module reachable from one and
9468
+ * not the other.
9469
+ *
9470
+ * ```html
9471
+ * <fly-app-home
9472
+ * brandLabelKey="common.label.thoughts"
9473
+ * titleKey="thoughts.home.title"
9474
+ * subtitleKey="thoughts.home.subtitle"
9475
+ * [sections]="navSections"
9476
+ * (moduleSelected)="open($event)">
9477
+ * <span app-home-brand><fly-thoughts-logo /></span>
9478
+ * <div app-home-actions><!-- locale / theme / profile --></div>
9479
+ * <ng-template flyModuleIcon="ideas"><svg …></svg></ng-template>
9480
+ * </fly-app-home>
9481
+ * ```
9482
+ *
9483
+ * Generalized from the Circles landing, whose layout was sound but whose content was
9484
+ * hardcoded — one inline `<svg>` and one `@if` per module, plus a bespoke card for each
9485
+ * non-module destination. Here every card is data, and a destination that is not really
9486
+ * a module (a gallery, a cross-cutting control room) is just another {@link FlyAppModule}
9487
+ * with a projected icon. That was the test of whether this abstraction was real.
9488
+ *
9489
+ * Icons reuse `flyModuleIcon` — the SAME directive the topbar takes — so an app that
9490
+ * renders both declares its icon templates once per surface, in the same syntax.
9491
+ *
9492
+ * a11y: cards are real `<button>`s in a labelled group; a collapsible section is a
9493
+ * disclosure (`aria-expanded` + `aria-controls`), and the region carries the section
9494
+ * heading. Layout is logical-property only, so it mirrors under `dir="rtl"` on its own —
9495
+ * the one exception is the chevron/arrow glyphs, which are directional by meaning and
9496
+ * flip explicitly.
9497
+ */
9498
+ declare class FlyAppHomeComponent {
9499
+ /** i18n key for the brand name beside the mark. Omit to render the mark alone. */
9500
+ readonly brandLabelKey: _angular_core.InputSignal<string | undefined>;
9501
+ /** i18n key for the hero headline. */
9502
+ readonly titleKey: _angular_core.InputSignal<string | undefined>;
9503
+ /** i18n key for the hero sub-line. */
9504
+ readonly subtitleKey: _angular_core.InputSignal<string | undefined>;
9505
+ /** The app's modules, grouped. Same array the topbar takes. */
9506
+ readonly sections: _angular_core.InputSignal<readonly FlyAppModuleSection[]>;
9507
+ /** i18n key for the card group's `aria-label`. */
9508
+ readonly modulesLabelKey: _angular_core.InputSignal<string>;
9509
+ /** Emits the selected module's `key`. Disabled modules never emit. */
9510
+ readonly moduleSelected: _angular_core.OutputEmitterRef<string>;
9511
+ /** Emits when the brand is activated. */
9512
+ readonly brandSelected: _angular_core.OutputEmitterRef<void>;
9513
+ private readonly icons;
9514
+ /**
9515
+ * Expanded section indices. Seeded from the inputs and then owned by the user —
9516
+ * `linkedSignal` semantics on purpose: re-declaring `sections` (a locale switch
9517
+ * re-evaluating labels, say) must not slam a section the user opened shut again.
9518
+ */
9519
+ private readonly userToggled;
9520
+ private readonly expandedSet;
9521
+ /** Presentation-resolved sections, so the template stays declarative. */
9522
+ readonly rows: _angular_core.Signal<{
9523
+ index: number;
9524
+ section: FlyAppModuleSection;
9525
+ layout: _flyos_design_system.FlyAppHomeLayout;
9526
+ expanded: boolean;
9527
+ hintKey: string | null;
9528
+ }[]>;
9529
+ protected iconFor(key: string): _angular_core.TemplateRef<unknown> | undefined;
9530
+ protected toggle(index: number): void;
9531
+ protected select(module: FlyAppModule): void;
9532
+ protected sectionId(index: number): string;
9533
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyAppHomeComponent, never>;
9534
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyAppHomeComponent, "fly-app-home", never, { "brandLabelKey": { "alias": "brandLabelKey"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "modulesLabelKey": { "alias": "modulesLabelKey"; "required": false; "isSignal": true; }; }, { "moduleSelected": "moduleSelected"; "brandSelected": "brandSelected"; }, ["icons"], ["[app-home-brand]", "[app-home-actions]"], true, never>;
9535
+ }
9536
+
9537
+ /** Card shape a section renders with on the landing. */
9538
+ type FlyAppHomeLayout = 'feature' | 'compact';
9539
+ /**
9540
+ * The section's card shape, applying the default when it declares none: the FIRST
9541
+ * section is the app's front door and gets tall feature cards; everything after it is
9542
+ * secondary and gets compact rows.
9543
+ *
9544
+ * Positional rather than required because the common case — one prominent section plus
9545
+ * a "supporting" tail — should need no configuration at all, and an app that wants
9546
+ * something else says so explicitly.
9547
+ */
9548
+ declare function sectionLayout(section: Pick<FlyAppModuleSection, 'layout'>, index: number): FlyAppHomeLayout;
9549
+ /**
9550
+ * Which sections start expanded: every non-collapsible one, plus none of the
9551
+ * collapsible ones.
9552
+ *
9553
+ * Returned as a `Set` of indices rather than mutating the sections, so the input array
9554
+ * stays the app's immutable declaration and re-rendering with new data cannot resurrect
9555
+ * a stale open/closed state.
9556
+ */
9557
+ declare function initialExpanded(sections: readonly Pick<FlyAppModuleSection, 'collapsible'>[]): ReadonlySet<number>;
9558
+ /**
9559
+ * The hint key for a collapsible section in its current state, or null when it has none.
9560
+ *
9561
+ * `collapsedHintKey` falls back to `hintKey` so an app that wants one message in both
9562
+ * states declares one key. A non-collapsible section never shows a hint — the hint
9563
+ * exists to explain what is hidden.
9564
+ */
9565
+ declare function sectionHintKey(section: Pick<FlyAppModuleSection, 'collapsible' | 'hintKey' | 'collapsedHintKey'>, expanded: boolean): string | null;
9566
+
9288
9567
  /**
9289
9568
  * Underline tab row + panels — visual port of the signal-detail sidecard tab
9290
9569
  * row (`.llc__tabs` / `.llc__tab`); also replaces the job-profile
@@ -9950,6 +10229,6 @@ declare const AUDIENCE_ERROR_CODES: {
9950
10229
  };
9951
10230
  type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
9952
10231
 
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 };
10232
+ 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, 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, 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, initialExpanded, 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, sectionHintKey, sectionLayout, sliderTrackGradient, sparklinePath, sparklinePoints, stepUpInterceptor, stepUpReturnKey, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload, warnIfEmbeddedSessionMissing };
10233
+ 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, 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, 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
10234
  //# sourceMappingURL=flyos-design-system.d.ts.map