@flyos/design-system 3.2.0 → 3.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": "3.2.0",
3
+ "version": "3.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",
@@ -7871,7 +7871,13 @@ interface MagicBarActionSpec {
7871
7871
  /** What a publisher supplies for one action. */
7872
7872
  interface MagicBarAction extends MagicBarActionSpec {
7873
7873
  readonly menu?: MagicBarRadioMenu;
7874
- readonly onSelect?: () => void;
7874
+ /**
7875
+ * Invoked on activation. The argument is the DOM element the renderer painted
7876
+ * for this action — see {@link MagicBarActionView.run} for why it is passed and
7877
+ * what a publisher may do with it. Ignore it and this is the zero-argument
7878
+ * handler it has always been.
7879
+ */
7880
+ readonly onSelect?: (trigger?: HTMLElement) => void;
7875
7881
  }
7876
7882
  /**
7877
7883
  * What the shell renders. `run()` always exists and always dispatches to the
@@ -7880,7 +7886,43 @@ interface MagicBarAction extends MagicBarActionSpec {
7880
7886
  */
7881
7887
  interface MagicBarActionView extends MagicBarActionSpec {
7882
7888
  readonly menu: MagicBarRadioMenuView | null;
7883
- run(): void;
7889
+ /**
7890
+ * Fire the publisher's newest handler for this id.
7891
+ *
7892
+ * ## Why it carries the trigger element
7893
+ * An action that opens a POPOVER the publisher owns — the canonical case is a
7894
+ * listing screen's advanced-filter panel — has to position that popover under
7895
+ * the button the user just pressed. The publisher cannot find that button:
7896
+ * embedded, it is painted by `fly-magic-actions` inside the shell's top-bar
7897
+ * pill, in the shell's DOM, several stacking contexts and one federation
7898
+ * boundary away from the remote that published the action. Before this argument
7899
+ * existed, PPM's projects register had to anchor its panel to its own page
7900
+ * header instead, which put the panel in the middle of the window while the
7901
+ * button that opened it sat in the chrome above — an affordance with no visible
7902
+ * relationship to its own trigger.
7903
+ *
7904
+ * Passing the element rather than modelling the popover is deliberate. The
7905
+ * panel's CONTENT is app schema (see {@link MagicBarSearch.onOpenFilters} for
7906
+ * the same ruling), so it must stay in the publisher's own DOM and injection
7907
+ * context; only its POSITION is chrome-relative. An element reference crosses
7908
+ * the federation boundary without any of the coupling a descriptor would need —
7909
+ * a DOM node is a DOM node in every bundle. `fly-filter-panel`'s `[anchorEl]`
7910
+ * is the intended consumer.
7911
+ *
7912
+ * ## What a publisher must not assume
7913
+ * The element is the trigger AS PAINTED RIGHT NOW. It is valid for the duration
7914
+ * of the popover, not beyond: a re-publish that drops this action id destroys it
7915
+ * (`@for (…; track action.id)`), and a mode switch repaints it in a different
7916
+ * chrome entirely. Hold it in a signal the popover's open-state clears, never in
7917
+ * long-lived state, and never mutate it.
7918
+ *
7919
+ * It is OPTIONAL because not every renderer has one to give — a keyboard-driven
7920
+ * invocation, a synthetic call in a test, an inline composer that paints no
7921
+ * button. A publisher that receives `undefined` must still work: for a popover
7922
+ * that means falling back to its own in-page anchoring, which is exactly what
7923
+ * `fly-filter-panel` does when `[anchorEl]` is null.
7924
+ */
7925
+ run(trigger?: HTMLElement): void;
7884
7926
  }
7885
7927
  /** Render surface of a group — the dedupe key for {@link MagicBarGroup}. */
7886
7928
  interface MagicBarGroupSpec {
@@ -7982,7 +8024,7 @@ interface MagicBarSearch extends MagicBarSearchSpec {
7982
8024
  * a descriptor for them would be business logic the design system cannot
7983
8025
  * validate or render honestly.
7984
8026
  */
7985
- readonly onOpenFilters?: () => void;
8027
+ readonly onOpenFilters?: (trigger?: HTMLElement) => void;
7986
8028
  }
7987
8029
  interface MagicBarSearchView extends MagicBarSearchSpec {
7988
8030
  /** True iff the publisher can open an advanced-search overlay. */
@@ -7994,7 +8036,13 @@ interface MagicBarSearchView extends MagicBarSearchSpec {
7994
8036
  * this member shipped first, and renaming it would be a ds-compat MAJOR.
7995
8037
  */
7996
8038
  query(text: string): void;
7997
- openFilters(): void;
8039
+ /**
8040
+ * Open the publisher's advanced-search overlay. Carries the Filters button the
8041
+ * shell painted, for the same reason and under the same caveats as
8042
+ * {@link MagicBarActionView.run} — a publisher whose overlay is a popover
8043
+ * anchors it there instead of guessing at a position inside its own page.
8044
+ */
8045
+ openFilters(trigger?: HTMLElement): void;
7998
8046
  }
7999
8047
  /**
8000
8048
  * One view's complete claim on the magic bar.
@@ -10340,11 +10388,29 @@ declare class FlyClickOutsideDirective {
10340
10388
  * Defaults to always-on for an always-mounted consumer.
10341
10389
  */
10342
10390
  readonly enabled: _angular_core.InputSignal<boolean>;
10391
+ /**
10392
+ * Extra element(s) that count as INSIDE even though they are not in the host —
10393
+ * the escape hatch for a popover whose TRIGGER cannot be wrapped by the host.
10394
+ *
10395
+ * The docblock's canonical shape puts the host around trigger and panel both, and
10396
+ * that is still the right answer whenever it is available. It is not always: a
10397
+ * panel anchored to a control in the desktop shell's chrome (a magic-bar filter
10398
+ * toggle) has its trigger in another component, another stacking context and
10399
+ * another bundle. Left unlisted, the trigger reads as outside, and because this
10400
+ * directive fires on `pointerdown` — strictly BEFORE the trigger's own `click` —
10401
+ * pressing an open panel's own toggle dismisses it and the toggle then reopens it.
10402
+ * The panel appears not to close at all, which reads as this directive being
10403
+ * broken rather than as an ordering problem.
10404
+ *
10405
+ * A single element or an array; `null`/empty (the default) keeps the host-only
10406
+ * behaviour byte-for-byte.
10407
+ */
10408
+ readonly ignore: _angular_core.InputSignal<HTMLElement | readonly (HTMLElement | null)[] | null>;
10343
10409
  /** Emitted once when a pointer press lands outside the host while enabled. */
10344
10410
  readonly flyClickOutside: _angular_core.OutputEmitterRef<void>;
10345
10411
  protected onDocumentPointerDown(event: Event): void;
10346
10412
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyClickOutsideDirective, never>;
10347
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FlyClickOutsideDirective, "[flyClickOutside]", never, { "enabled": { "alias": "flyClickOutsideEnabled"; "required": false; "isSignal": true; }; }, { "flyClickOutside": "flyClickOutside"; }, never, never, true, never>;
10413
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FlyClickOutsideDirective, "[flyClickOutside]", never, { "enabled": { "alias": "flyClickOutsideEnabled"; "required": false; "isSignal": true; }; "ignore": { "alias": "flyClickOutsideIgnore"; "required": false; "isSignal": true; }; }, { "flyClickOutside": "flyClickOutside"; }, never, never, true, never>;
10348
10414
  }
10349
10415
 
10350
10416
  /**
@@ -11692,6 +11758,18 @@ declare class FlyCardActionsComponent {
11692
11758
  * - Deferred pages set `showSearchButton` true, drop the per-field handlers,
11693
11759
  * and commit staged criteria on `(search)`.
11694
11760
  *
11761
+ * ## Three placements, and how to pick one
11762
+ * - **In flow** (neither `anchored` nor `anchorEl`) — a block in the page. Opening
11763
+ * it pushes the content below it down. Only right for a page whose filters are
11764
+ * part of its permanent furniture.
11765
+ * - **`[anchored]`** — a dropdown pinned to the trailing edge of a `position:
11766
+ * relative` ancestor the page supplies (the wrapper around its search box).
11767
+ * - **`[anchorEl]`** — a dropdown pinned to a specific ELEMENT anywhere on screen,
11768
+ * including one outside this component's own DOM subtree. See {@link anchorEl}.
11769
+ *
11770
+ * `anchorEl` wins when both are set, so a page can bind it optionally and fall
11771
+ * back to `anchored` in whichever mode has no element to offer.
11772
+ *
11695
11773
  * Matching the source, the panel renders nothing while `open` is false.
11696
11774
  */
11697
11775
  declare class FlyFilterPanelComponent {
@@ -11710,19 +11788,100 @@ declare class FlyFilterPanelComponent {
11710
11788
  * `[expandable]`.
11711
11789
  */
11712
11790
  readonly anchored: _angular_core.InputSignal<boolean>;
11791
+ /**
11792
+ * The element this panel hangs off — a dropdown pinned under a specific trigger
11793
+ * rather than under whichever ancestor happens to be positioned.
11794
+ *
11795
+ * ## The case it exists for
11796
+ * A listing screen's filter toggle does not necessarily live in the screen.
11797
+ * Embedded in the desktop shell, the toggle is a magic-bar action painted by
11798
+ * `fly-magic-actions` in the top-bar pill — the shell's DOM, above the window,
11799
+ * across a federation boundary. `[anchored]` cannot reach it: it pins to a
11800
+ * positioned ancestor, and the nearest one is inside the app's own page header.
11801
+ * PPM's projects register shipped exactly that way, and the result was a panel
11802
+ * floating mid-window while the button that opened it sat in the chrome above,
11803
+ * with nothing tying the two together. `MagicBarActionView.run(trigger)` hands
11804
+ * the publisher that button; binding it here is the other half.
11805
+ *
11806
+ * ## What changes when it is set
11807
+ * The host is **portalled to `<body>`** and switched to `position: fixed`. Both
11808
+ * are forced rather than chosen: a shell window establishes a containing block
11809
+ * (`transform` / `backdrop-filter`) and clips its content box, so a panel left in
11810
+ * the app's subtree resolves `fixed` against the window instead of the viewport
11811
+ * AND is clipped at the window's top edge — which is exactly where a panel
11812
+ * hanging off the chrome above it needs to paint. Placement is then measured from
11813
+ * the anchor's rect on every open, resize and scroll, mirrored under RTL, and
11814
+ * clamped so a trigger near a viewport edge still opens fully on screen.
11815
+ *
11816
+ * ## Lifetime
11817
+ * `null` (the default) restores the in-flow/`anchored` behaviour, and the host
11818
+ * returns to where it was declared. Bind it to a signal your open-state clears —
11819
+ * the element the magic bar hands you is the button AS PAINTED, and a re-publish
11820
+ * or a mode switch destroys it.
11821
+ */
11822
+ readonly anchorEl: _angular_core.InputSignal<HTMLElement | null>;
11713
11823
  /** Clear-filters pressed — the page resets its own filter state. */
11714
11824
  readonly cleared: _angular_core.OutputEmitterRef<void>;
11715
- /** Close (×) pressed — the page flips its open flag. */
11825
+ /** Close (×) pressed, or a dismissing press outside — the page flips its open flag. */
11716
11826
  readonly closed: _angular_core.OutputEmitterRef<void>;
11717
11827
  /** Search pressed — deferred pages commit staged criteria and query. */
11718
11828
  readonly searched: _angular_core.OutputEmitterRef<void>;
11719
11829
  /** Whether the `[filter-more]` advanced fields are revealed. */
11720
11830
  protected readonly showMore: _angular_core.WritableSignal<boolean>;
11831
+ /** True while the panel is a `<body>`-portalled, anchor-positioned dropdown. */
11832
+ protected readonly floating: _angular_core.Signal<boolean>;
11833
+ /**
11834
+ * Whether a press outside the panel should dismiss it.
11835
+ *
11836
+ * Only while the panel FLOATS over the page. In flow it is a block OF the page,
11837
+ * and closing it because the user clicked the table it filters would discard
11838
+ * staged criteria on an unrelated interaction. Floating, the opposite holds: an
11839
+ * overlay that survives a click elsewhere is the "panel will not collapse on
11840
+ * click-away" bug.
11841
+ */
11842
+ protected readonly dismissable: _angular_core.Signal<boolean>;
11721
11843
  private readonly _host;
11844
+ private readonly _doc;
11722
11845
  private readonly _destroyRef;
11723
11846
  private _clipObserver;
11724
11847
  private _placeRaf;
11848
+ /** Marks where the host was declared, so un-portalling puts it back exactly. */
11849
+ private _portalHome;
11850
+ private _floatTeardown;
11725
11851
  constructor();
11852
+ /**
11853
+ * Move the host to `<body>`, leaving a comment node where it was declared.
11854
+ *
11855
+ * The comment is what makes this reversible. Angular keeps rendering into the
11856
+ * host wherever it sits — relocating a DOM node does not detach a view — but the
11857
+ * component cannot ask the DOM "where were you?" after the fact, and the original
11858
+ * parent may itself be torn down while the panel is open. Un-portalling therefore
11859
+ * re-inserts before the marker while the marker is still attached, and simply
11860
+ * leaves the host where it is otherwise.
11861
+ */
11862
+ private _portal;
11863
+ private _unportal;
11864
+ /**
11865
+ * Pin the panel under {@link anchorEl}: {@link ANCHOR_GAP} below its bottom edge,
11866
+ * its trailing edge overhanging the anchor's by {@link ANCHOR_OVERHANG}, clamped
11867
+ * into the viewport on both axes.
11868
+ *
11869
+ * Trailing edge, not "right": the anchor's OWN computed direction decides which
11870
+ * physical side that is, so the panel opens inward from the trigger under both LTR
11871
+ * and RTL with nothing passed by the caller. The final clamp is in physical pixels
11872
+ * and therefore direction-agnostic — a trigger 30px from the viewport edge yields
11873
+ * the same on-screen result either way.
11874
+ */
11875
+ private _placeFloating;
11876
+ /**
11877
+ * Re-place on anything that can move the anchor under an already-open panel: the
11878
+ * viewport resizing, the shell window being dragged or resized (which moves or
11879
+ * resizes the anchor's own box), and scrolling ANYWHERE — captured, because the
11880
+ * anchor lives in the chrome and the scroller that shifts it is not necessarily an
11881
+ * ancestor of this host, which is now in `<body>`.
11882
+ */
11883
+ private _observeFloating;
11884
+ private _teardownFloating;
11726
11885
  private _place;
11727
11886
  /** Nearest ancestor that clips/scrolls horizontally — the shell window's
11728
11887
  * content area when hosted, a page scroller when standalone, else null
@@ -11731,7 +11890,7 @@ declare class FlyFilterPanelComponent {
11731
11890
  private _observeClipAncestor;
11732
11891
  private _teardownPlacement;
11733
11892
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyFilterPanelComponent, never>;
11734
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyFilterPanelComponent, "fly-filter-panel", never, { "open": { "alias": "open"; "required": true; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "showSearchButton": { "alias": "showSearchButton"; "required": false; "isSignal": true; }; "anchored": { "alias": "anchored"; "required": false; "isSignal": true; }; }, { "cleared": "cleared"; "closed": "closed"; "searched": "searched"; }, never, ["[filter-status]", "*", "[filter-more]"], true, never>;
11893
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlyFilterPanelComponent, "fly-filter-panel", never, { "open": { "alias": "open"; "required": true; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "showSearchButton": { "alias": "showSearchButton"; "required": false; "isSignal": true; }; "anchored": { "alias": "anchored"; "required": false; "isSignal": true; }; "anchorEl": { "alias": "anchorEl"; "required": false; "isSignal": true; }; }, { "cleared": "cleared"; "closed": "closed"; "searched": "searched"; }, never, ["[filter-status]", "*", "[filter-more]"], true, never>;
11735
11894
  }
11736
11895
 
11737
11896
  interface FlyCellContext {
@@ -12621,13 +12780,39 @@ interface SegmentedOption {
12621
12780
  declare function nextSegmentIndex(current: number, key: string, length: number, rtl: boolean): number | null;
12622
12781
 
12623
12782
  /**
12624
- * Segmented radiogroup one anatomy for form segmented controls (the
12625
- * llm-throttle level picker) and list status-pill filters (the legacy
12626
- * `.signals-page-statusfilter`, which is also the visual source).
12783
+ * Visual anatomy. `'track'` (default) is the enclosed pill-in-a-groove control
12784
+ * the detail-tabs recipe (D2 §1.3). `'pills'` is the canon Filters dialog's status
12785
+ * row (`Home.dc.html`, `role="radiogroup"` under the "Status" eyebrow): freestanding
12786
+ * bordered pills that wrap, with the selection filled in `--accent`.
12627
12787
  *
12628
- * a11y: `role="radiogroup"` + `role="radio"` segments, roving tabindex
12629
- * (selected segment is the tab stop), RTL-aware arrow-key navigation with
12630
- * wrap-around; arrows move both selection and focus.
12788
+ * They are one component because they are one control — same option list, same
12789
+ * selection model, same keyboard behaviour differing only in whether the group
12790
+ * paints a container around itself. They are not one STYLE because the track's
12791
+ * `--w14` selection reads as a tab among tabs, which is right inside a groove and
12792
+ * wrong for a filter row where the pills sit directly on a panel plate.
12793
+ */
12794
+ type SegmentedVariant = 'track' | 'pills';
12795
+ /**
12796
+ * Segmented control — one anatomy for form segmented controls (the llm-throttle
12797
+ * level picker), list status-pill filters (the legacy `.signals-page-statusfilter`,
12798
+ * which is also the visual source), and the canon filter-panel status row.
12799
+ *
12800
+ * ## Two selection models
12801
+ * Single-select (default) is a `role="radiogroup"` over `role="radio"` segments,
12802
+ * driven by {@link value}. Multi-select ({@link multiple}) is a `role="group"` of
12803
+ * `aria-pressed` toggle buttons, driven by {@link values}. Both are here rather than
12804
+ * split across two components because everything a reader has to learn — the option
12805
+ * list, the count badge, the two variants, the RTL handling — is shared, and a filter
12806
+ * row routinely needs the multi-select one while looking identical.
12807
+ *
12808
+ * The a11y models genuinely differ and the branch is not cosmetic: a radiogroup is
12809
+ * ONE tab stop with arrow keys moving the selection, while a group of toggle buttons
12810
+ * is individually tabbable and arrow keys must not change anything (moving selection
12811
+ * on arrow would silently toggle filters as a keyboard user walked the row).
12812
+ *
12813
+ * a11y: roving tabindex in single-select (the selected segment is the tab stop),
12814
+ * RTL-aware arrow-key navigation with wrap-around; arrows move both selection and
12815
+ * focus. Multi-select leaves the native tab order alone and binds no arrow keys.
12631
12816
  */
12632
12817
  declare class FlySegmentedComponent {
12633
12818
  private readonly i18n;
@@ -12636,12 +12821,32 @@ declare class FlySegmentedComponent {
12636
12821
  readonly value: _angular_core.ModelSignal<string | undefined>;
12637
12822
  readonly disabled: _angular_core.InputSignal<boolean>;
12638
12823
  readonly ariaLabelKey: _angular_core.InputSignal<string | undefined>;
12824
+ /** See {@link SegmentedVariant}. */
12825
+ readonly variant: _angular_core.InputSignal<SegmentedVariant>;
12826
+ /**
12827
+ * Switch to multi-select: every pressed option is carried in {@link values} and
12828
+ * clicking one toggles it. {@link value} is ignored in this mode.
12829
+ *
12830
+ * A separate model rather than widening `value` to `string | string[]`: a consumer
12831
+ * would then have to narrow on every read, and every EXISTING consumer's
12832
+ * `[(value)]` binding would stop type-checking — a ds-compat MAJOR for a feature
12833
+ * none of them asked for.
12834
+ */
12835
+ readonly multiple: _angular_core.InputSignal<boolean>;
12836
+ /**
12837
+ * The pressed options in {@link multiple} mode. Order is the consumer's; this
12838
+ * component appends on select and filters on deselect, so a caller that treats it
12839
+ * as a set is unaffected and one that treats it as a list keeps its ordering.
12840
+ */
12841
+ readonly values: _angular_core.ModelSignal<readonly string[]>;
12639
12842
  protected readonly selectedIndex: _angular_core.Signal<number>;
12843
+ /** Selected in whichever model is active. */
12844
+ protected isOn(value: string): boolean;
12640
12845
  protected tabIndexFor(index: number): number;
12641
12846
  protected select(value: string): void;
12642
12847
  protected onKey(event: KeyboardEvent): void;
12643
12848
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlySegmentedComponent, never>;
12644
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlySegmentedComponent, "fly-segmented", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabelKey": { "alias": "ariaLabelKey"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
12849
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlySegmentedComponent, "fly-segmented", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabelKey": { "alias": "ariaLabelKey"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "values": "valuesChange"; }, never, never, true, never>;
12645
12850
  }
12646
12851
 
12647
12852
  /**
@@ -13103,5 +13308,5 @@ declare const AUDIENCE_ERROR_CODES: {
13103
13308
  type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
13104
13309
 
13105
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 };
13106
- 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, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, StateMessageKind, StepUpChallenge, StepUpReauthHandler, StepUpReauthRequest, TabsVariant, ToastAction, ToastEntry, ToastOptions, ToastVariant, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
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 };
13107
13312
  //# sourceMappingURL=flyos-design-system.d.ts.map