@flywheel-io/vision 21.3.1 → 21.5.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/global.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  @use './public-api' as vision;
2
2
 
3
+ @include vision.colors;
3
4
  @include vision.global-typography;
4
5
  @include vision.icons;
5
6
  @include vision.overlay;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flywheel-io/vision",
3
- "version": "21.3.1",
3
+ "version": "21.5.0",
4
4
  "description": "Flywheel UI elements provided as Angular components and native web components",
5
5
  "author": "Flywheel",
6
6
  "license": "MIT",
package/styles.css CHANGED
@@ -288,6 +288,66 @@ Color Palettes for use with vision's theming system
288
288
 
289
289
  /* stylelint-disable */
290
290
  /* stylelint-disable */
291
+ html {
292
+ --card-background: #ffffffff;
293
+ --card-header: #f9f9f9ff;
294
+ --green-base: #14ae5cff;
295
+ --green-border: #14ae5c66;
296
+ --green-dark: #076d37ff;
297
+ --green-focus: #14ae5c1a;
298
+ --green-hover: #14ae5c0d;
299
+ --green-light: #e9f9efff;
300
+ --green-medium: #0c924bff;
301
+ --orange-base: #c47e09ff;
302
+ --orange-border: #f59e0b66;
303
+ --orange-dark: #935f07ff;
304
+ --orange-focus: #f59e0b1a;
305
+ --orange-hover: #f59e0b0d;
306
+ --orange-light: #fef5e7ff;
307
+ --orange-medium: #ac6f08ff;
308
+ --page-light: #ffffffff;
309
+ --page-shaded: #f1f3f4ff;
310
+ --primary-base: #1b68faff;
311
+ --primary-border: #1b69fa66;
312
+ --primary-dark: #103e96ff;
313
+ --primary-focus: #1b69fa1a;
314
+ --primary-hover: #1b69fa0d;
315
+ --primary-light: #e8f0ffff;
316
+ --primary-medium: #1653c8ff;
317
+ --red-base: #d73d3dff;
318
+ --red-border: #f0434366;
319
+ --red-dark: #782222ff;
320
+ --red-focus: #f043431a;
321
+ --red-hover: #f043430d;
322
+ --red-light: #fdececff;
323
+ --red-medium: #a73030ff;
324
+ --secondary-base: #b080fcff;
325
+ --secondary-border: #b081fc66;
326
+ --secondary-dark: #6a4d97ff;
327
+ --secondary-focus: #b081fc1a;
328
+ --secondary-hover: #b081fc0d;
329
+ --secondary-light: #f7f2ffff;
330
+ --secondary-medium: #8d66caff;
331
+ --separations-base: #e3e6eaff;
332
+ --separations-divider: #00000026;
333
+ --separations-input: #00000040;
334
+ --separations-overlay: #00000040;
335
+ --separations-border: #e6e6eaff;
336
+ --sidebar-base: #0a1936ff;
337
+ --slate-base: #748295ff;
338
+ --slate-border: #74829566;
339
+ --slate-dark: #464e59ff;
340
+ --slate-focus: #7482951a;
341
+ --slate-hover: #7482950d;
342
+ --slate-light: #f1f3f4ff;
343
+ --slate-medium: #5d6877ff;
344
+ --typography-base: #000000ff;
345
+ --typography-contrast: #ffffffff;
346
+ --typography-disabled: #c4c4c4ff;
347
+ --typography-light: #8996a9ff;
348
+ --typography-muted: #5d6877ff;
349
+ }
350
+
291
351
  h1 {
292
352
  font-family: Inter, sans-serif;
293
353
  color: var(--typography-base);
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common';
4
4
  import { Location } from '@angular/common';
5
5
  import { SafeStyle } from '@angular/platform-browser';
6
6
  import * as i2 from '@angular/forms';
7
- import { ControlValueAccessor, FormControl, FormControlStatus, FormGroup, ValidatorFn, AbstractControl, NgControl } from '@angular/forms';
7
+ import { ControlValueAccessor, FormControl, FormControlStatus, FormGroup, AsyncValidatorFn, ValidatorFn, AbstractControl, NgControl } from '@angular/forms';
8
8
  import * as i2$1 from '@angular/cdk/dialog';
9
9
  import { DialogRef, DialogConfig, Dialog } from '@angular/cdk/dialog';
10
10
  import * as i3 from '@angular/cdk/overlay';
@@ -694,6 +694,149 @@ declare class FwChipModule {
694
694
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwChipModule>;
695
695
  }
696
696
 
697
+ interface RgbaColor {
698
+ r: number;
699
+ g: number;
700
+ b: number;
701
+ a: number;
702
+ }
703
+ interface HslaColor {
704
+ h: number;
705
+ s: number;
706
+ l: number;
707
+ a: number;
708
+ }
709
+ interface HsvaColor {
710
+ h: number;
711
+ s: number;
712
+ v: number;
713
+ a: number;
714
+ }
715
+ /**
716
+ * PROTOTYPE-ONLY color math. In fw-ohif-v3's CustomColorPicker this is delegated
717
+ * entirely to tinycolor2. Whether Vision takes a small color-conversion dependency
718
+ * or keeps a hand-rolled util like this is an open decision for the real port
719
+ * (see the color-picker spike doc).
720
+ */
721
+ declare function clamp(value: number, min: number, max: number): number;
722
+ declare function rgbaToHsva({ r, g, b, a }: RgbaColor): HsvaColor;
723
+ declare function hsvaToRgba({ h, s, v, a }: HsvaColor): RgbaColor;
724
+ declare function hsvaToHsla({ h, s, v, a }: HsvaColor): HslaColor;
725
+ declare function hslaToHsva({ h, s, l, a }: HslaColor): HsvaColor;
726
+ declare function rgbaToHex8(rgba: RgbaColor): string;
727
+ declare function rgbaToHex(rgba: RgbaColor): string;
728
+ /** Accepts #rgb, #rrggbb, or #rrggbbaa (with or without leading #). Returns null if unparseable. */
729
+ declare function hexToRgba(hex: string): RgbaColor | null;
730
+ declare const DEFAULT_RGBA: RgbaColor;
731
+ declare const MAX_PRESET_COLORS = 12;
732
+ declare const DEFAULT_PRESET_COLORS: string[];
733
+
734
+ type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';
735
+ /**
736
+ * Form control component for picking an RGBA color via saturation/hue/alpha pickers, hex/RGB/HSL/HSV
737
+ * text inputs, and preset swatches, with Angular forms integration. Ported from fw-ohif-v3's
738
+ * CustomColorPicker (React/react-color).
739
+ * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-color-picker--docs)
740
+ * @see [[extensions/flywheel-ui/src/components/CustomColorPicker/CustomColorPicker.tsx]] (source)
741
+ */
742
+ declare class FwColorPickerComponent implements ControlValueAccessor {
743
+ /** Bound color value, RGBA. Mirrors the source's `rgbCode` prop. */
744
+ readonly rgba: _angular_core.ModelSignal<RgbaColor>;
745
+ /** Preset swatch colors as hex/hex8 strings. Mirrors the source's `colors` prop. Capped at {@link MAX_PRESET_COLORS}. */
746
+ readonly presetColors: _angular_core.ModelSignal<string[]>;
747
+ protected readonly cappedPresetColors: _angular_core.Signal<string[]>;
748
+ /** Hides the alpha slider + opacity input, e.g. for label colors. */
749
+ readonly showAlpha: _angular_core.ModelSignal<boolean>;
750
+ /** Adds a drop shadow, for when the picker is shown in a popout/overlay so it stands out from what's behind it. */
751
+ readonly showShadow: _angular_core.InputSignal<boolean>;
752
+ /** Emits the current color as a 6-digit hex string whenever it changes. */
753
+ readonly hexChange: _angular_core.OutputEmitterRef<string>;
754
+ /** Emits the currently selected color when the Save button is clicked. */
755
+ readonly save: _angular_core.OutputEmitterRef<RgbaColor>;
756
+ /** Emits when the Cancel button is clicked. Does not revert `rgba` — the consumer decides what "cancel" means. */
757
+ readonly cancel: _angular_core.OutputEmitterRef<void>;
758
+ private readonly saturationEl;
759
+ private readonly hueEl;
760
+ private readonly alphaEl;
761
+ private readonly formatSelectEl;
762
+ /**
763
+ * The format dropdown mirrors fw-select's look (fw-text-input trigger + fw-menu-container /
764
+ * fw-menu / fw-menu-item options) but is driven by this plain signal instead of fw-select
765
+ * itself. fw-select opens its own CdkMenuTrigger overlay; when this component is shown inside
766
+ * a CdkMenuTrigger-based popout (see the "As Popout" story), CDK's outside-click handling
767
+ * doesn't recognize fw-select's overlay as part of the popout's menu stack and closes the
768
+ * popout the instant it's clicked. Revisit using fw-select directly once that's fixed upstream.
769
+ */
770
+ protected readonly formatMenuOpen: _angular_core.WritableSignal<boolean>;
771
+ protected readonly formatMenuId: string;
772
+ protected readonly colorFormat: _angular_core.WritableSignal<ColorFormat>;
773
+ protected readonly hsva: _angular_core.Signal<HsvaColor>;
774
+ protected readonly hsla: _angular_core.Signal<HslaColor>;
775
+ protected readonly hex: _angular_core.Signal<string>;
776
+ /**
777
+ * Hue and saturation become mathematically undetermined at s=0 (gray: r===g===b, so
778
+ * rgbaToHsva's delta is 0 and it always reports hue 0) and at v=0 (black: saturation is
779
+ * likewise unrecoverable from RGB alone). Since `hsva` is fully re-derived from `rgba` on every
780
+ * read, dragging the saturation pointer to the far left (or down to the bottom) would otherwise
781
+ * silently reset whatever hue/saturation was previously selected, snapping the hue track back
782
+ * to red and leaving it unresponsive. These two signals hold onto the last determinate
783
+ * hue/saturation so the hue track and saturation-area background stay put through a trip
784
+ * across the undetermined edge; `displayHsva` is what every read site (drag handlers, pointer
785
+ * positions, saturation-area background) should use instead of raw `hsva()`.
786
+ */
787
+ private readonly stickyHue;
788
+ private readonly stickySaturation;
789
+ protected readonly displayHsva: _angular_core.Signal<HsvaColor>;
790
+ protected readonly displayHsla: _angular_core.Signal<HslaColor>;
791
+ protected readonly saturationBackground: _angular_core.Signal<string>;
792
+ protected readonly saturationPointerStyle: _angular_core.Signal<{
793
+ left: string;
794
+ top: string;
795
+ }>;
796
+ protected readonly huePointerStyle: _angular_core.Signal<{
797
+ left: string;
798
+ }>;
799
+ protected readonly alphaPointerStyle: _angular_core.Signal<{
800
+ left: string;
801
+ }>;
802
+ protected readonly alphaTrackBackground: _angular_core.Signal<string>;
803
+ protected readonly draggingTrack: _angular_core.WritableSignal<"hue" | "alpha">;
804
+ protected readonly formatOptions: {
805
+ value: ColorFormat;
806
+ label: string;
807
+ }[];
808
+ protected readonly colorFormatLabel: _angular_core.Signal<string>;
809
+ private onChange;
810
+ private onTouched;
811
+ constructor();
812
+ writeValue(value: RgbaColor): void;
813
+ registerOnChange(fn: (value: RgbaColor) => void): void;
814
+ registerOnTouched(fn: () => void): void;
815
+ private commit;
816
+ private commitFromHsva;
817
+ protected onSaturationPointerDown(event: PointerEvent): void;
818
+ private dragSaturation;
819
+ protected onHuePointerDown(event: PointerEvent): void;
820
+ private dragHue;
821
+ protected onAlphaPointerDown(event: PointerEvent): void;
822
+ private dragAlpha;
823
+ protected toggleFormatMenu(): void;
824
+ protected onFormatChange(format: string | string[]): void;
825
+ protected onDocumentClick(event: MouseEvent): void;
826
+ protected onHexInput(value: string): void;
827
+ protected onRgbChannelInput(channel: 'r' | 'g' | 'b', value: string): void;
828
+ protected onHslChannelInput(channel: 'h' | 's' | 'l', value: string): void;
829
+ protected onHsvChannelInput(channel: 'h' | 's' | 'v', value: string): void;
830
+ protected onOpacityInput(value: string): void;
831
+ protected onSwatchClick(color: string): void;
832
+ protected isSwatchSelected(color: string): boolean;
833
+ protected readonly hex8: _angular_core.Signal<string>;
834
+ protected onSave(): void;
835
+ protected onCancel(): void;
836
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwColorPickerComponent, never>;
837
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwColorPickerComponent, "fw-color-picker", never, { "rgba": { "alias": "rgba"; "required": false; "isSignal": true; }; "presetColors": { "alias": "presetColors"; "required": false; "isSignal": true; }; "showAlpha": { "alias": "showAlpha"; "required": false; "isSignal": true; }; "showShadow": { "alias": "showShadow"; "required": false; "isSignal": true; }; }, { "rgba": "rgbaChange"; "presetColors": "presetColorsChange"; "showAlpha": "showAlphaChange"; "hexChange": "hexChange"; "save": "save"; "cancel": "cancel"; }, never, never, true, never>;
838
+ }
839
+
697
840
  /**
698
841
  * Form control component for a labeled row containing a switch or checkbox, toggled by clicking anywhere on the row
699
842
  * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/form-controls-contained-input--docs)
@@ -1181,7 +1324,7 @@ declare class FwFormRendererComponent {
1181
1324
  }
1182
1325
 
1183
1326
  declare class FwValidators {
1184
- static phone: ValidatorFn;
1327
+ static phone: AsyncValidatorFn;
1185
1328
  static email: ValidatorFn;
1186
1329
  static url: ValidatorFn;
1187
1330
  }
@@ -1813,6 +1956,7 @@ declare class FwMenuContainerComponent implements AfterViewInit {
1813
1956
  readonly focusFilterOnMount: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
1814
1957
  readonly offset: _angular_core.InputSignal<string>;
1815
1958
  emptyText: _angular_core.InputSignal<string>;
1959
+ readonly disableWrapperScroll: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
1816
1960
  filteredMenuItems: FwMenuItemComponent[];
1817
1961
  filteredMenuItemChange: _angular_core.OutputEmitterRef<FwMenuItemComponent[]>;
1818
1962
  private defaultFilterFn;
@@ -1827,6 +1971,7 @@ declare class FwMenuContainerComponent implements AfterViewInit {
1827
1971
  childSeparators: _angular_core.Signal<readonly FwMenuSeparatorComponent[]>;
1828
1972
  childGroups: _angular_core.Signal<readonly FwMenuItemGroupComponent[]>;
1829
1973
  private combinedMenuItems;
1974
+ noResults: _angular_core.Signal<boolean>;
1830
1975
  readonly keyHandler: _angular_core.InputSignal<(event: KeyboardEvent) => void>;
1831
1976
  get classes(): string;
1832
1977
  get style(): SafeStyle;
@@ -1835,12 +1980,11 @@ declare class FwMenuContainerComponent implements AfterViewInit {
1835
1980
  updateScrollState(): void;
1836
1981
  startScroll(direction: 'up' | 'down'): void;
1837
1982
  stopScroll(): void;
1838
- noResults: _angular_core.WritableSignal<boolean>;
1839
1983
  handleFilterClick(event: Event): void;
1840
1984
  handleFilterInput(event: Event): void;
1841
1985
  onFilterChange(filter: string): void;
1842
1986
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwMenuContainerComponent, never>;
1843
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwMenuContainerComponent, "fw-menu-container, fw-menu-filter", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "focusFilterOnMount": { "alias": "focusFilterOnMount"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "additionalMenuItems": { "alias": "additionalMenuItems"; "required": false; "isSignal": true; }; "additionalGroups": { "alias": "additionalGroups"; "required": false; "isSignal": true; }; "additionalSeparators": { "alias": "additionalSeparators"; "required": false; "isSignal": true; }; "keyHandler": { "alias": "keyHandler"; "required": false; "isSignal": true; }; }, { "filteredMenuItemChange": "filteredMenuItemChange"; "filterChanged": "filterChanged"; }, ["menu", "childMenuItems", "childSeparators", "childGroups"], [".filter-content", "*", "custom-menu-items"], true, never>;
1987
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwMenuContainerComponent, "fw-menu-container, fw-menu-filter", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "focusFilterOnMount": { "alias": "focusFilterOnMount"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "disableWrapperScroll": { "alias": "disableWrapperScroll"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "additionalMenuItems": { "alias": "additionalMenuItems"; "required": false; "isSignal": true; }; "additionalGroups": { "alias": "additionalGroups"; "required": false; "isSignal": true; }; "additionalSeparators": { "alias": "additionalSeparators"; "required": false; "isSignal": true; }; "keyHandler": { "alias": "keyHandler"; "required": false; "isSignal": true; }; }, { "filteredMenuItemChange": "filteredMenuItemChange"; "filterChanged": "filterChanged"; }, ["menu", "childMenuItems", "childSeparators", "childGroups"], [".filter-content", "*", "custom-menu-items"], true, never>;
1844
1988
  }
1845
1989
 
1846
1990
  /**
@@ -2209,9 +2353,17 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2209
2353
  maxOptionsHeight: _angular_core.InputSignal<string>;
2210
2354
  size: _angular_core.InputSignal<"large" | "medium" | "small">;
2211
2355
  placeholder: _angular_core.InputSignal<string>;
2356
+ /**
2357
+ * Renders the `options` list in a `cdk-virtual-scroll-viewport` instead of one `fw-menu-item` per
2358
+ * option, so opening the panel stays fast with large option sets.
2359
+ * ! WARNING ! only works with the `options` input, not with content-projected menu items
2360
+ */
2361
+ virtualScroll: _angular_core.InputSignal<boolean>;
2362
+ virtualScrollItemSize: _angular_core.InputSignal<number>;
2212
2363
  trigger: CdkMenuTrigger;
2213
2364
  textInput: FwTextInputComponent;
2214
2365
  menu: _angular_core.Signal<FwMenuComponent>;
2366
+ private virtualScrollViewport;
2215
2367
  /**
2216
2368
  * The control itself, which is only as wide as `width()`. The host element is a block element and
2217
2369
  * so can be considerably wider, and a click in that gap is an outside click.
@@ -2245,6 +2397,14 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2245
2397
  * ! WARNING ! only works with content-projected menu items, does not work with the `options` input
2246
2398
  */
2247
2399
  filterFn: _angular_core.InputSignal<MenuFilterFn>;
2400
+ /**
2401
+ * Height of the virtual-scroll viewport. Capped at `maxOptionsHeight()`, minus the filter box's
2402
+ * height (64px) when `showFilter()` is on since the filter box sits above the viewport inside the
2403
+ * same fixed-height panel. Below that cap, the viewport sizes down to fit the actual item count
2404
+ * (via CSS `min()`, since `maxOptionsHeight()` can be any CSS length) so a short options list
2405
+ * doesn't leave empty space under it.
2406
+ */
2407
+ virtualScrollViewportHeight: _angular_core.Signal<string>;
2248
2408
  inputDisplayValue: _angular_core.Signal<string>;
2249
2409
  get value(): any;
2250
2410
  set value(newValue: any);
@@ -2252,6 +2412,10 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2252
2412
  constructor();
2253
2413
  ngOnInit(): void;
2254
2414
  private findRenderedMenuItem;
2415
+ trackByTrackingId: (_index: number, item: {
2416
+ trackingId: string;
2417
+ }) => string;
2418
+ private scrollOptionIntoView;
2255
2419
  selectTitle: _angular_core.WritableSignal<string>;
2256
2420
  private subscribeToMenuItems;
2257
2421
  private menuItemsWatcher;
@@ -2308,7 +2472,7 @@ declare class FwSelectMenuComponent implements OnInit, OnDestroy, ControlValueAc
2308
2472
  onFilterChanged(value: string): void;
2309
2473
  onInputChange(event: Event): void;
2310
2474
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwSelectMenuComponent, never>;
2311
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwSelectMenuComponent, "fw-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "valueProperty": { "alias": "valueProperty"; "required": false; "isSignal": true; }; "useFullOptionAsValue": { "alias": "useFullOptionAsValue"; "required": false; "isSignal": true; }; "titleProperty": { "alias": "titleProperty"; "required": false; "isSignal": true; }; "iconProperty": { "alias": "iconProperty"; "required": false; "isSignal": true; }; "staticIcon": { "alias": "staticIcon"; "required": false; "isSignal": true; }; "descriptionProperty": { "alias": "descriptionProperty"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "showReset": { "alias": "showReset"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errored": { "alias": "errored"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "optionsWidth": { "alias": "optionsWidth"; "required": false; "isSignal": true; }; "minOptionsHeight": { "alias": "minOptionsHeight"; "required": false; "isSignal": true; }; "maxOptionsHeight": { "alias": "maxOptionsHeight"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueDisplayFn": { "alias": "valueDisplayFn"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "disabled": "disabledChange"; "change": "change"; "filterChanged": "filterChanged"; }, ["menuItems", "menuItemGroups", "menuSeparators"], ["[fw-menu-item, fw-menu-separator, fw-menu-item-group]"], true, never>;
2475
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwSelectMenuComponent, "fw-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "valueProperty": { "alias": "valueProperty"; "required": false; "isSignal": true; }; "useFullOptionAsValue": { "alias": "useFullOptionAsValue"; "required": false; "isSignal": true; }; "titleProperty": { "alias": "titleProperty"; "required": false; "isSignal": true; }; "iconProperty": { "alias": "iconProperty"; "required": false; "isSignal": true; }; "staticIcon": { "alias": "staticIcon"; "required": false; "isSignal": true; }; "descriptionProperty": { "alias": "descriptionProperty"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "showReset": { "alias": "showReset"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errored": { "alias": "errored"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "optionsWidth": { "alias": "optionsWidth"; "required": false; "isSignal": true; }; "minOptionsHeight": { "alias": "minOptionsHeight"; "required": false; "isSignal": true; }; "maxOptionsHeight": { "alias": "maxOptionsHeight"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "valueDisplayFn": { "alias": "valueDisplayFn"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "disabled": "disabledChange"; "change": "change"; "filterChanged": "filterChanged"; }, ["menuItems", "menuItemGroups", "menuSeparators"], ["[fw-menu-item, fw-menu-separator, fw-menu-item-group]"], true, never>;
2312
2476
  }
2313
2477
 
2314
2478
  /**
@@ -2403,7 +2567,7 @@ declare class FwPhoneInputComponent implements OnInit, OnChanges, ControlValueAc
2403
2567
  get format(): PhoneNumberFormat;
2404
2568
  set format(value: PhoneNumberFormat);
2405
2569
  countryChanged: EventEmitter<Country>;
2406
- trigger: CdkMenuTrigger;
2570
+ readonly trigger: _angular_core.Signal<CdkMenuTrigger>;
2407
2571
  phoneFormattedNational: string | undefined;
2408
2572
  allCountryList: Array<Country>;
2409
2573
  preferredCountryList: Array<Country>;
@@ -2415,7 +2579,11 @@ declare class FwPhoneInputComponent implements OnInit, OnChanges, ControlValueAc
2415
2579
  private _format;
2416
2580
  private _numberObject;
2417
2581
  private _previousFormattedNumber;
2418
- static getPhoneNumberPlaceHolder(countryISOCode: CountryCode): string | undefined;
2582
+ private _phoneLib;
2583
+ private _pendingValue;
2584
+ protected readonly libraryReady: _angular_core.WritableSignal<boolean>;
2585
+ private readonly _libraryReadyPromise;
2586
+ static getPhoneNumberPlaceHolder(countryISOCode: CountryCode): Promise<string | undefined>;
2419
2587
  onTouched: () => void;
2420
2588
  onChange: any;
2421
2589
  constructor();
@@ -2432,6 +2600,7 @@ declare class FwPhoneInputComponent implements OnInit, OnChanges, ControlValueAc
2432
2600
  registerOnTouched(fn: any): void;
2433
2601
  setDisabledState(isDisabled: boolean): void;
2434
2602
  writeValue(value: any): void;
2603
+ private applyWriteValue;
2435
2604
  private get formattedPhoneNumber();
2436
2605
  private formatAsYouTypeIfEnabled;
2437
2606
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwPhoneInputComponent, never>;
@@ -2954,7 +3123,7 @@ declare class FwTextAreaInputComponent implements ControlValueAccessor {
2954
3123
  */
2955
3124
  declare class FwTextAreaInputModule {
2956
3125
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwTextAreaInputModule, never>;
2957
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwTextAreaInputModule, never, [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3$1.TextFieldModule, typeof FwIconModule, typeof FwTextAreaInputComponent], [typeof FwTextAreaInputComponent]>;
3126
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwTextAreaInputModule, never, [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3$1.TextFieldModule, typeof FwTextAreaInputComponent], [typeof FwTextAreaInputComponent]>;
2958
3127
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwTextAreaInputModule>;
2959
3128
  }
2960
3129
 
@@ -3107,5 +3276,5 @@ declare class FwWrappedInputModule {
3107
3276
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwWrappedInputModule>;
3108
3277
  }
3109
3278
 
3110
- export { DialogWidth, FieldType, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxGroupComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwFormRendererComponent, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTagComponent, FwTagModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTimeZoneSelectComponent, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, NoopValueAccessorDirective, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
3111
- export type { CustomField, CustomForm, CustomSection, DelayLength$3 as DelayLength, FwButtonColorOption, FwDialogConfig, FwDialogRef, FwPaginatorEvent, FwSnackbarMessage, IconSize, IconType, LogicRule, MenuFilterFn, PaginationPage, PopoverPosition, SimplePosition };
3279
+ export { DEFAULT_PRESET_COLORS, DEFAULT_RGBA, DialogWidth, FieldType, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxGroupComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColorPickerComponent, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwFormRendererComponent, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTagComponent, FwTagModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTimeZoneSelectComponent, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MAX_PRESET_COLORS, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, NoopValueAccessorDirective, TranslationService, allIcons, clamp, genMessageId, hexToRgba, hslaToHsva, hsvaToHsla, hsvaToRgba, notBeforeDate, notFutureDate, rgbaToHex, rgbaToHex8, rgbaToHsva };
3280
+ export type { CustomField, CustomForm, CustomSection, DelayLength$3 as DelayLength, FwButtonColorOption, FwDialogConfig, FwDialogRef, FwPaginatorEvent, FwSnackbarMessage, HslaColor, HsvaColor, IconSize, IconType, LogicRule, MenuFilterFn, PaginationPage, PopoverPosition, RgbaColor, SimplePosition };