@flyos/design-system 3.3.0 → 3.4.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.
@@ -5082,6 +5082,14 @@ interface FlyBreadcrumbItem {
5082
5082
  label: string;
5083
5083
  /** When set, the crumb renders as a real `<a>`. Omit for a `<button>` (e.g. a client-side handler with no addressable URL). */
5084
5084
  href?: string;
5085
+ /**
5086
+ * `<path d="…">` data for a 14px stroked icon leading the crumb
5087
+ * (`fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round;
5088
+ * stroke-linejoin:round`). `currentColor` is what makes the icon tint with
5089
+ * the label on hover/current with no extra rule. Omit for a label-only
5090
+ * crumb — mixing icon and non-icon crumbs in one trail is fine.
5091
+ */
5092
+ iconPath?: string;
5085
5093
  }
5086
5094
  /** An overflow-collapsed middle crumb — never interactive, never emitted by {@link FlyBreadcrumbComponent.navigate}. */
5087
5095
  interface FlyBreadcrumbOverflowMarker {
@@ -5148,6 +5156,100 @@ declare class FlyBreadcrumbComponent {
5148
5156
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyBreadcrumbComponent, "fly-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "hasCurrentPage": { "alias": "hasCurrentPage"; "required": false; "isSignal": true; }; }, { "navigate": "navigate"; }, never, never, true, never>;
5149
5157
  }
5150
5158
 
5159
+ /**
5160
+ * One crumb in a window's header trail.
5161
+ *
5162
+ * Extends the design-system item rather than restating it so `<fly-breadcrumb>`
5163
+ * consumes the published array directly — the shell adds a handler, nothing else.
5164
+ *
5165
+ * Labels are ALREADY LOCALIZED. The trail is an app's own nouns ("Trends",
5166
+ * "Q3 budget", a document title); the window chrome cannot localize those and must
5167
+ * not pretend to by taking a key it would resolve against the shell's bundle.
5168
+ */
5169
+ interface WindowBreadcrumb extends FlyBreadcrumbItem {
5170
+ /**
5171
+ * Invoked when this crumb is activated. The final crumb is the current page and
5172
+ * is never interactive (see `FlyBreadcrumbComponent`), so a handler on it is
5173
+ * dead weight, not a bug waiting to happen.
5174
+ */
5175
+ navigate?: () => void;
5176
+ }
5177
+ /** Cross-bundle store key + sync event — same shape as `FLY_MAGIC_BAR_STORE_KEY`. */
5178
+ declare const FLY_WINDOW_BREADCRUMBS_STORE_KEY = "__flyWindowBreadcrumbs__";
5179
+ declare const FLY_WINDOW_BREADCRUMBS_EVENT = "fly:window-breadcrumbs";
5180
+ /**
5181
+ * Where an app publishes the breadcrumb trail its window's header strip renders.
5182
+ *
5183
+ * The design puts a trail inside the window
5184
+ * (`UX/FlyOS Desktop-app/MainContent.dc.html`, `nav[aria-label="Breadcrumb"]`), and
5185
+ * the window chrome (`WindowComponent`) renders whatever this registry holds for
5186
+ * its window id, falling back to the plain window title when nothing has published.
5187
+ *
5188
+ * ## Why the state lives on `globalThis`
5189
+ *
5190
+ * Same reasoning as {@link MagicBarRegistry} (`services/magic-bar/`), and the same
5191
+ * direction of travel (remote → shell chrome). This service is `providedIn: 'root'`,
5192
+ * but a root instance is not *reliably* shared across the federation boundary: the
5193
+ * shell builds the design system from workspace source while remotes consume the
5194
+ * published package, and Native Federation collapses those into one runtime
5195
+ * instance only when version negotiation succeeds — a split there is invisible at
5196
+ * build time and would otherwise present as a window whose breadcrumb silently
5197
+ * never appears, for federated apps only. Keeping the state on the one substrate
5198
+ * every bundle shares makes this store fork-proof: whichever copy of this service
5199
+ * publishes, every copy's `trail()` agrees. Each instance mirrors the store into a
5200
+ * local signal and re-reads on the sync event, so `WindowComponent`'s template —
5201
+ * which reads `trail()` inside its own reactive context — repaints whichever
5202
+ * bundle actually published.
5203
+ *
5204
+ * Simpler than `MagicBarRegistry` on purpose: a breadcrumb trail is addressed
5205
+ * directly by the window id its publisher already has (via `WINDOW_DATA`), so
5206
+ * there is no owner-vs-active-window arbitration, no per-action indexing and no
5207
+ * publish-fingerprint dedup to carry — `publish()` just replaces the entry.
5208
+ *
5209
+ * ```ts
5210
+ * const win = inject(WINDOW_DATA);
5211
+ * const crumbs = inject(WindowBreadcrumbsRegistry);
5212
+ * crumbs.publish(win.id, [
5213
+ * { id: 'root', label: circleName, navigate: () => this.showList() },
5214
+ * { id: 'trend', label: trend.title },
5215
+ * ]);
5216
+ * ```
5217
+ */
5218
+ declare class WindowBreadcrumbsRegistry {
5219
+ private readonly _trails;
5220
+ private _syncedStore;
5221
+ private _syncedRevision;
5222
+ /** Every published trail, keyed by window id. Reactive — read it inside a template/computed/effect. */
5223
+ readonly all: Signal<ReadonlyMap<string, readonly WindowBreadcrumb[]>>;
5224
+ constructor();
5225
+ /**
5226
+ * This window's published trail, or an empty array.
5227
+ *
5228
+ * A plain method over a signal read, not a per-id `computed`: it is called from
5229
+ * the window template, where the signal read is tracked whatever the call depth,
5230
+ * and a `computed` cache keyed by a mutable window id would outlive its window.
5231
+ */
5232
+ trail(windowId: string): readonly WindowBreadcrumb[];
5233
+ /**
5234
+ * Replace a window's trail. Publishing an empty array is how an app goes back to
5235
+ * showing the plain window title — it is a state, not a clear.
5236
+ */
5237
+ publish(windowId: string, crumbs: readonly WindowBreadcrumb[]): void;
5238
+ /** Drop a window's trail entirely. The window chrome calls this when it is destroyed. */
5239
+ clear(windowId: string): void;
5240
+ /**
5241
+ * Re-read the shared store. Cheap no-op unless a real mutation landed.
5242
+ *
5243
+ * Keys on store IDENTITY as well as revision — see the identical note on
5244
+ * `MagicBarRegistry.sync`: a revision counter alone cannot distinguish "nothing
5245
+ * changed" from "the `globalThis` slot now holds a brand-new store that happens
5246
+ * to be at the same revision" (every spec's `beforeEach` replaces the store).
5247
+ */
5248
+ private sync;
5249
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WindowBreadcrumbsRegistry, never>;
5250
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<WindowBreadcrumbsRegistry>;
5251
+ }
5252
+
5151
5253
  /**
5152
5254
  * A node in a {@link import('./tree-nav.component').FlyTreeNavComponent} tree. The
5153
5255
  * component is a **two-level** disclosure list (sections with pages) — a `children`
@@ -6280,8 +6382,9 @@ interface GanttDependencyDelete {
6280
6382
  * Pure, dependency-free geometry + tree helpers for {@link FlyGanttComponent}.
6281
6383
  *
6282
6384
  * Kept out of the component so the date-scale math (date ⇄ px), the tree flatten/collapse,
6283
- * the group-span aggregation, the dependency-link resolution and the RTL coordinate mapping
6284
- * can all be unit-tested in isolation. Nothing here touches Angular, signals, the DOM, or i18n.
6385
+ * the group-span aggregation, the dependency-link resolution + elbow routing, and the RTL
6386
+ * coordinate mapping can all be unit-tested in isolation. Nothing here touches Angular,
6387
+ * signals, the DOM, or i18n.
6285
6388
  *
6286
6389
  * **Time model.** Every date is normalised to **UTC midnight** so the horizontal scale is
6287
6390
  * DST- and timezone-agnostic: one calendar day is always exactly one grid unit regardless of
@@ -6304,6 +6407,10 @@ interface GanttFlatRow {
6304
6407
  hasChildren: boolean;
6305
6408
  collapsed: boolean;
6306
6409
  }
6410
+ /** Render shape a row resolves to — decides which geometry fields on its VM are meaningful. */
6411
+ type RowShape = 'bar' | 'milestone' | 'group' | 'empty';
6412
+ /** Which end of a bar a link gesture grabbed / was dropped on. */
6413
+ type GanttLinkAnchor = 'start' | 'finish';
6307
6414
  /** A gridline / header cell: logical `x` of its left edge, its pixel `width`, and label. */
6308
6415
  interface GanttTick {
6309
6416
  x: number;
@@ -6313,9 +6420,16 @@ interface GanttTick {
6313
6420
  key: string;
6314
6421
  }
6315
6422
 
6316
- type RowShape = 'bar' | 'milestone' | 'group' | 'empty';
6317
- /** Which end of a bar a link gesture grabbed / was dropped on. */
6318
- type LinkAnchor = 'start' | 'finish';
6423
+ /** An in-flight link drag, in render space. `x0,y0` is the fixed origin; `x1,y1` follows the pointer. */
6424
+ interface GanttLinkGesture {
6425
+ readonly fromId: string;
6426
+ readonly anchor: GanttLinkAnchor;
6427
+ readonly x0: number;
6428
+ readonly y0: number;
6429
+ readonly x1: number;
6430
+ readonly y1: number;
6431
+ }
6432
+
6319
6433
  /** One fully-resolved, render-space row ready for the template. */
6320
6434
  interface GanttRowVm {
6321
6435
  flat: GanttFlatRow;
@@ -6420,36 +6534,22 @@ declare class FlyGanttComponent {
6420
6534
  readonly MIN_LABEL_W = 140;
6421
6535
  readonly MAX_LABEL_W = 720;
6422
6536
  readonly selectedId: _angular_core.WritableSignal<string | null>;
6423
- /** Key (`from~to~type`) of the dependency arrow the user has selected, if any. */
6424
- readonly selectedLinkKey: _angular_core.WritableSignal<string | null>;
6425
6537
  private readonly _collapsed;
6426
6538
  /** Live drag preview `{id,start,end}` folded into geometry while a gesture runs. */
6427
6539
  private readonly _dragPreview;
6428
- /** Rubber-band link gesture render-space anchor + cursor, and its origin row + edge. */
6429
- readonly linkGesture: _angular_core.WritableSignal<{
6430
- fromId: string;
6431
- anchor: LinkAnchor;
6432
- x0: number;
6433
- y0: number;
6434
- x1: number;
6435
- y1: number;
6436
- } | null>;
6437
6540
  readonly dragTooltip: _angular_core.WritableSignal<{
6438
6541
  x: number;
6439
6542
  y: number;
6440
6543
  text: string;
6441
6544
  } | null>;
6442
6545
  /** True while a divider drag is in flight (suppresses text selection host-wide). */
6443
- readonly resizingLabels: _angular_core.WritableSignal<boolean>;
6444
6546
  /** User-chosen pane width; `null` = still following the {@link labelWidth} input. */
6445
- private readonly _labelWidthOverride;
6446
6547
  private readonly bodyRef;
6447
6548
  readonly rtl: _angular_core.Signal<boolean>;
6448
6549
  readonly pxPerDay: _angular_core.Signal<number>;
6449
6550
  readonly domain: _angular_core.Signal<GanttDomain>;
6450
6551
  readonly innerWidth: _angular_core.Signal<number>;
6451
6552
  /** Label-pane width actually rendered — the user's dragged width, else the input. */
6452
- readonly effectiveLabelWidth: _angular_core.Signal<number>;
6453
6553
  /** Full visible list after tree flatten/collapse. */
6454
6554
  private readonly _flat;
6455
6555
  /** Capped list actually rendered. */
@@ -6482,21 +6582,19 @@ declare class FlyGanttComponent {
6482
6582
  /** Inline-start label indent for a tree depth. */
6483
6583
  indentFor(depth: number): number;
6484
6584
  /**
6485
- * Pointer-drag the divider. Forward-in-time is `+x` LTR and `-x` RTL, and the label pane sits
6486
- * on the inline-start side in both, so the same sign flip that mirrors the timeline also
6487
- * mirrors "drag outward = wider".
6585
+ * The divider's own state machine, in {@link GanttLabelPane}. It is composed rather than
6586
+ * inlined because it is the one region of this component with no coupling to the chart: give it
6587
+ * a direction, a fallback width and somewhere to report a committed value and it is complete.
6588
+ * The subtle part — that "wider" flips physical sign under RTL for BOTH the drag and the arrow
6589
+ * keys — is stated once there instead of twice here.
6488
6590
  */
6591
+ private readonly _labelPane;
6592
+ /** Painted width of the label pane — the user's dragged value, else the clamped input. */
6593
+ readonly effectiveLabelWidth: _angular_core.Signal<number>;
6594
+ /** True mid-drag; drives the host's resizing cursor/affordance. */
6595
+ readonly resizingLabels: _angular_core.WritableSignal<boolean>;
6489
6596
  onLabelResizePointerDown(ev: PointerEvent): void;
6490
- /**
6491
- * Keyboard resize on the focused divider. ArrowRight/Left grow/shrink by the *inline* meaning
6492
- * of the key, so under RTL the arrow that points away from the pane is still the one that
6493
- * widens it. `Home`/`End` jump to the bounds, Enter/Escape restore the input width.
6494
- *
6495
- * Typed `Event` for the same reason as {@link onLabelRowKeydown}: Angular's strict template
6496
- * checker types `(keydown)` `$event` as `Event`, so the cast is done here once.
6497
- */
6498
6597
  onLabelResizeKeydown(ev: Event): void;
6499
- /** Drop the user's dragged width and fall back to the {@link labelWidth} input. */
6500
6598
  resetLabelWidth(): void;
6501
6599
  isCollapsed(id: string): boolean;
6502
6600
  toggleCollapse(id: string, ev?: Event): void;
@@ -6516,13 +6614,19 @@ declare class FlyGanttComponent {
6516
6614
  private _nudgeSelected;
6517
6615
  onBarPointerDown(ev: PointerEvent, vm: GanttRowVm, mode: 'move' | 'resize-start' | 'resize-end'): void;
6518
6616
  /**
6519
- * Start a link gesture from one end of a bar. Which end it started on, plus which end of the
6520
- * target row it is dropped nearest to, is what selects the {@link GanttDependencyType}so all
6521
- * four MS-Project relationships are reachable with the same single drag.
6617
+ * The dependency-drawing gesture, in {@link GanttLinkGestures}. Composed rather than inlined
6618
+ * because it is a self-contained second gesture whose interesting part is a RULE the end you
6619
+ * start on plus the end you drop nearest, selects the relationship type — which reads far better beside
6620
+ * its own hit-testing than in the middle of this component.
6522
6621
  */
6523
- onLinkPointerDown(ev: PointerEvent, vm: GanttRowVm, anchor: LinkAnchor): void;
6622
+ private readonly _links;
6623
+ /** Key (`from~to~type`) of the dependency arrow the user has selected, if any. */
6624
+ readonly selectedLinkKey: _angular_core.WritableSignal<string | null>;
6625
+ /** The in-flight rubber-band gesture, or `null` — the template draws it when present. */
6626
+ readonly linkGesture: _angular_core.WritableSignal<GanttLinkGesture | null>;
6524
6627
  /** Rubber-band path for an in-flight link gesture (render space). */
6525
6628
  readonly linkGesturePath: _angular_core.Signal<string | null>;
6629
+ onLinkPointerDown(ev: PointerEvent, vm: GanttRowVm, anchor: GanttLinkAnchor): void;
6526
6630
  /**
6527
6631
  * Resolve a row's `backgroundColor` into the low-alpha band colour actually painted.
6528
6632
  * `color-mix` does the fade in the consumer's own colour space, so a token, a hex, an
@@ -6530,28 +6634,6 @@ declare class FlyGanttComponent {
6530
6634
  */
6531
6635
  private _tintFor;
6532
6636
  private _mapTicks;
6533
- /**
6534
- * Route a dependency elbow for any of the four relationship kinds (render space).
6535
- *
6536
- * The kind names the two endpoints, so it decides both the anchor x's and the direction the
6537
- * arrow travels: leaving a *finish* edge moves forward in time, leaving a *start* edge moves
6538
- * backward; entering a *start* edge approaches from behind, entering a *finish* edge from
6539
- * ahead. `fwd` folds RTL in, so none of that branches on direction.
6540
- *
6541
- * One turn suffices when the entry stub lies ahead of the exit stub in the approach
6542
- * direction. When it does not — overlapping or reversed bars, which SS/FF/SF hit constantly —
6543
- * a straight drop would cut back through the bars, so the elbow detours via the gap between
6544
- * the two rows instead.
6545
- */
6546
- private _route;
6547
- /** Convert a pointer event to a coordinate inside the body SVG (render space). */
6548
- private _toBodyPoint;
6549
- /**
6550
- * The row a link gesture was dropped on **and which of its ends** the drop landed nearest —
6551
- * the second half of the type derivation. A milestone has no width, so both of its ends are
6552
- * the same point and it is reported as `start`, giving the FS/SS pair anyone actually wants.
6553
- */
6554
- private _dropTargetAt;
6555
6637
  private _ariaFor;
6556
6638
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyGanttComponent, never>;
6557
6639
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyGanttComponent, "fly-gantt", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "dependencies": { "alias": "dependencies"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "showToday": { "alias": "showToday"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; "resizableLabels": { "alias": "resizableLabels"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; }, { "rowDatesChange": "rowDatesChange"; "dependencyCreate": "dependencyCreate"; "dependencyDelete": "dependencyDelete"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; "labelWidthChange": "labelWidthChange"; }, never, never, true, never>;
@@ -9843,6 +9925,15 @@ type FlyCurrencySelectorMode = 'single' | 'multi';
9843
9925
  * reference data through its own gateway route.
9844
9926
  */
9845
9927
  type FlyCurrencyFetchFn = () => Observable<readonly FlyCurrency[]>;
9928
+ /**
9929
+ * Host-supplied loader for the CALLING TENANT's default currency, used to pre-fill an empty
9930
+ * single-select. Same escape hatch as {@link FlyCurrencyFetchFn}, for the same consumers: an
9931
+ * offline surface, a fixture-driven test, or an app that proxies the platform's reference routes.
9932
+ *
9933
+ * Resolving to `null` means "this tenant has no default" and leaves the control empty — the
9934
+ * ordinary answer for a tenant with no country, not an error.
9935
+ */
9936
+ type FlyTenantDefaultCurrencyFetchFn = () => Observable<FlyCurrency | null>;
9846
9937
  /** The control's value: the picked code in single mode, the picked codes in multi mode. */
9847
9938
  type FlyCurrencySelectorValue = string | readonly string[] | null;
9848
9939
 
@@ -9917,6 +10008,30 @@ declare class FlyCurrencySelectorComponent implements ControlValueAccessor {
9917
10008
  readonly currencies: _angular_core.InputSignal<readonly FlyCurrency[] | null>;
9918
10009
  /** Host-supplied loader, used when `[currencies]` is absent. Falls back to `GET /api/currencies/brief`. */
9919
10010
  readonly fetchFn: _angular_core.InputSignal<FlyCurrencyFetchFn | null>;
10011
+ /**
10012
+ * Pre-fill an EMPTY single-select with the calling tenant's default currency
10013
+ * (`GET /api/currencies/default`, or `[tenantDefaultFetchFn]`). On by default.
10014
+ *
10015
+ * An amount is nearly always denominated in the tenant's reporting currency, and a form that
10016
+ * opens empty makes every user restate a fact the platform already holds — while an untouched
10017
+ * field silently saves null, which downstream money formatting cannot render at all.
10018
+ *
10019
+ * Deliberately narrow. It applies only when ALL of these hold, because outside them a
10020
+ * preselection would be a guess rather than a default:
10021
+ * - `mode="single"` — a multi-select accumulates a SET, and seeding one member of a set
10022
+ * states something the tenant currency does not say.
10023
+ * - not `locked()` — a frozen value is authoritative; proposing one contradicts the lock.
10024
+ * - the control is still empty — a written value always wins.
10025
+ *
10026
+ * It fires at most once per instance: clearing the field by hand latches it off, so the value
10027
+ * cannot reappear and read as the clear having not registered.
10028
+ *
10029
+ * A host that supplied `[currencies]` or `[fetchFn]` is never taken to the platform endpoint —
10030
+ * see {@link tenantDefaultFetchFn}, which is how such a host opts back in.
10031
+ */
10032
+ readonly applyTenantDefault: _angular_core.InputSignal<boolean>;
10033
+ /** Host-supplied loader for {@link applyTenantDefault}. Falls back to `GET /api/currencies/default`. */
10034
+ readonly tenantDefaultFetchFn: _angular_core.InputSignal<FlyTenantDefaultCurrencyFetchFn | null>;
9920
10035
  /** Restrict the offered set to these ISO 4217 codes (case-insensitive). Empty = offer everything. */
9921
10036
  readonly allowedCodes: _angular_core.InputSignal<readonly string[]>;
9922
10037
  /**
@@ -9975,6 +10090,12 @@ declare class FlyCurrencySelectorComponent implements ControlValueAccessor {
9975
10090
  private readonly _selectedCodes;
9976
10091
  private readonly _cvaDisabled;
9977
10092
  private _fetchStarted;
10093
+ /** Guards the once-per-instance tenant-default resolve. */
10094
+ private _tenantDefaultStarted;
10095
+ /** Latches once the default has been applied, or ruled out by any commit (pick, clear, write). */
10096
+ private _tenantDefaultSettled;
10097
+ /** The resolved row, kept so a `writeValue(null)` arriving AFTER the fetch can still use it. */
10098
+ private _tenantDefaultRow;
9978
10099
  private readonly searchEl?;
9979
10100
  private readonly triggerEl?;
9980
10101
  private _onChange;
@@ -10035,6 +10156,14 @@ declare class FlyCurrencySelectorComponent implements ControlValueAccessor {
10035
10156
  onOptionHover(index: number): void;
10036
10157
  retry(): void;
10037
10158
  private _load;
10159
+ private _loadTenantDefault;
10160
+ /**
10161
+ * Applies the resolved default to a still-empty control.
10162
+ *
10163
+ * Called from both ends of a race with no fixed winner: the fetch may land before the forms
10164
+ * layer writes, or after it writes the empty value a form is built with.
10165
+ */
10166
+ private _applyTenantDefaultIfEmpty;
10038
10167
  writeValue(value: FlyCurrencySelectorValue): void;
10039
10168
  registerOnChange(fn: (v: FlyCurrencySelectorValue) => void): void;
10040
10169
  registerOnTouched(fn: () => void): void;
@@ -10044,7 +10173,7 @@ declare class FlyCurrencySelectorComponent implements ControlValueAccessor {
10044
10173
  private _commit;
10045
10174
  private _touch;
10046
10175
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyCurrencySelectorComponent, never>;
10047
- 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>;
10176
+ 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; }; "applyTenantDefault": { "alias": "applyTenantDefault"; "required": false; "isSignal": true; }; "tenantDefaultFetchFn": { "alias": "tenantDefaultFetchFn"; "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>;
10048
10177
  }
10049
10178
 
10050
10179
  /** The platform endpoint the catalogue reads. Relative — the host's gateway + auth interceptors apply. */
@@ -10063,6 +10192,21 @@ declare const FLY_CURRENCIES_BRIEF_ENDPOINT = "/api/currencies/brief";
10063
10192
  * `GET /api/currencies/brief` is allowed to return.
10064
10193
  */
10065
10194
  declare function flyUnwrapCurrencies(res: unknown): readonly FlyCurrency[];
10195
+ /** The platform endpoint serving the CALLING TENANT's default currency. Relative, like its
10196
+ * catalogue sibling — the host's gateway + auth interceptors apply, and the answer is scoped to
10197
+ * whatever tenant that auth resolves to. */
10198
+ declare const FLY_CURRENCY_DEFAULT_ENDPOINT = "/api/currencies/default";
10199
+ /**
10200
+ * Unwraps the single-row shape of `GET /api/currencies/default`.
10201
+ *
10202
+ * `null` is a SUCCESS answer, not a failure: a tenant with no country has no default currency,
10203
+ * and a platform-scoped caller has no tenant whose currency could be meant. Anything that is not
10204
+ * recognisably a currency row — an envelope with `data: null`, an error body, an HTML login page
10205
+ * from a misrouted request — collapses to `null` for the same reason
10206
+ * {@link flyUnwrapCurrencies} returns `[]`: a picker must degrade to "no preselection", never
10207
+ * preselect something the platform did not vouch for.
10208
+ */
10209
+ declare function flyUnwrapCurrency(res: unknown): FlyCurrency | null;
10066
10210
  /**
10067
10211
  * **`FlyCurrencyCatalogService`** — the one ISO-code → {@link FlyCurrency} adapter for the
10068
10212
  * platform currency catalogue (`GET /api/currencies/brief`).
@@ -11594,9 +11738,43 @@ declare class FlyPaginationComponent {
11594
11738
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyPaginationComponent, "fly-pagination", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; "totalPages": { "alias": "totalPages"; "required": true; "isSignal": true; }; "rangeText": { "alias": "rangeText"; "required": false; "isSignal": true; }; "showEdges": { "alias": "showEdges"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
11595
11739
  }
11596
11740
 
11741
+ declare function canGoPrev$1(page: number): boolean;
11742
+ declare function canGoNext$1(page: number, totalPages: number): boolean;
11743
+ /** Clamp a requested page into `[1, max(1, totalPages)]`. */
11744
+ declare function clampPage$1(page: number, totalPages: number): number;
11745
+
11746
+ /**
11747
+ * Numbered list pager — back arrow, one pill per page, forward arrow — for the
11748
+ * lists that want every page as a target rather than `fly-pagination`'s
11749
+ * «prev / page of total / next» band. Shares the list's surface and continues
11750
+ * its border (see `COMPONENTS.md`): pair with a list container that sets
11751
+ * `border-bottom: 0` so the two read as one panel.
11752
+ *
11753
+ * <fly-pager [page]="page()" [totalPages]="totalPages()" (goToPage)="goTo($event)" />
11754
+ *
11755
+ * `page`/the emitted target are 0-indexed (array-index pagination); buttons
11756
+ * display `page + 1`. This is the opposite convention from `fly-pagination`
11757
+ * (1-indexed) — the two are separate components for separate list shapes, not
11758
+ * a shared base, so pick the one matching how the caller already indexes its
11759
+ * pages rather than converting at the call site.
11760
+ */
11761
+ declare class FlyPagerComponent {
11762
+ readonly page: _angular_core.InputSignal<number>;
11763
+ readonly totalPages: _angular_core.InputSignal<number>;
11764
+ /** Emits the target page (already clamped to bounds), 0-indexed. */
11765
+ readonly goToPage: _angular_core.OutputEmitterRef<number>;
11766
+ protected readonly prevEnabled: _angular_core.Signal<boolean>;
11767
+ protected readonly nextEnabled: _angular_core.Signal<boolean>;
11768
+ protected readonly pages: _angular_core.Signal<number[]>;
11769
+ protected goTo(target: number): void;
11770
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyPagerComponent, never>;
11771
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyPagerComponent, "fly-pager", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; "totalPages": { "alias": "totalPages"; "required": true; "isSignal": true; }; }, { "goToPage": "goToPage"; }, never, never, true, never>;
11772
+ }
11773
+
11774
+ /** 0-indexed sibling of `pagination.logic.ts` — see `pager.component.ts` for why. */
11597
11775
  declare function canGoPrev(page: number): boolean;
11598
11776
  declare function canGoNext(page: number, totalPages: number): boolean;
11599
- /** Clamp a requested page into `[1, max(1, totalPages)]`. */
11777
+ /** Clamp a requested page into `[0, max(0, totalPages - 1)]`. */
11600
11778
  declare function clampPage(page: number, totalPages: number): number;
11601
11779
 
11602
11780
  type CardLayout = 'row' | 'column';
@@ -13307,6 +13485,6 @@ declare const AUDIENCE_ERROR_CODES: {
13307
13485
  };
13308
13486
  type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
13309
13487
 
13310
- 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, FlyStandaloneMagicActionsComponent, FlyStateMessageComponent, FlyDynamicFormComponent as FlySurveyFormComponent, FlyTabComponent, FlyTabsComponent, FlyTagsInputComponent, FlyThemeService, FlyTimePipe, FlyToastService, FlyToggleComponent, FlyTooltipDirective, FlyTreeNavComponent, FlyTypeaheadComponent, FlyUserDirectoryService, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_DEPENDENCY_TYPES, GANTT_ROW_TINT_ALPHA, 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 };
13311
- 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, GanttDependencyDelete, GanttDependencyType, 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, SegmentedVariant, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, StateMessageKind, StepUpChallenge, StepUpReauthHandler, StepUpReauthRequest, TabsVariant, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
13488
+ 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_CURRENCY_DEFAULT_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_BREADCRUMBS_EVENT, FLY_WINDOW_BREADCRUMBS_STORE_KEY, 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, FlyPagerComponent, FlyPaginationComponent, FlyPeoplePickerComponent, FlyPointsTierComponent, FlyProgressComponent, FlyRelativeTimePipe, FlyRemoteContextService, FlyRemoteRouter, FlyRemoteRouterOutletComponent, FlySearchInputComponent, FlySectionHeaderComponent, FlySecureSrcDirective, FlySegmentedComponent, FlySelectComponent, FlySkeletonComponent, FlySliderComponent, FlySparklineComponent, FlySpinnerComponent, FlyStandaloneAuthCallbackComponent, FlyStandaloneAuthService, FlyStandaloneMagicActionsComponent, FlyStateMessageComponent, FlyDynamicFormComponent as FlySurveyFormComponent, FlyTabComponent, FlyTabsComponent, FlyTagsInputComponent, FlyThemeService, FlyTimePipe, FlyToastService, FlyToggleComponent, FlyTooltipDirective, FlyTreeNavComponent, FlyTypeaheadComponent, FlyUserDirectoryService, FlyWindowHelpService, FlyWindowTitleService, FlyosPendingLaunchesGlobalKey, FlyosShellHandlesLaunchRequestsGlobalKey, FlyosShellOwnsHistoryGlobalKey, GANTT_DEPENDENCY_TYPES, GANTT_ROW_TINT_ALPHA, 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, WindowBreadcrumbsRegistry, WindowManagerService, applySkinTone, applySuggestion, ariaSort, buildCron, canConfirm, canGoNext$1 as canGoNext, canGoPrev$1 as canGoPrev, captureFocus, clampMagicBarSearchWidth, clampPage$1 as 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, flyUnwrapCurrency, 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, canGoNext as pagerCanGoNext, canGoPrev as pagerCanGoPrev, clampPage as pagerClampPage, 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 };
13489
+ 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, FlyTenantDefaultCurrencyFetchFn, FlyThemeMode, FlyTooltipPlacement, FlyTreeNavNode, FlyTypeaheadOption, FlyWindowHelpHintEventDetail, FlyWindowHelpPublisher, FlyWindowPageTitleEventDetail, FlyWindowTitlePublisher, FlyosPendingLaunches, FocusRestore, FormBannerKind, GanttDependency, GanttDependencyCreate, GanttDependencyDelete, GanttDependencyType, 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, SegmentedVariant, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, StateMessageKind, StepUpChallenge, StepUpReauthHandler, StepUpReauthRequest, TabsVariant, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowBreadcrumb, WindowHelpHint, WindowInstance, WindowState };
13312
13490
  //# sourceMappingURL=flyos-design-system.d.ts.map