@gravionlabs/helix-ui 22.2.1 → 22.2.3

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.
@@ -683,6 +683,180 @@ export declare class HxCard {
683
683
  };
684
684
  }, {}, never, ["[hxCardTitle]", "[hxCardHeader]", "[hxCardSubtitle]", "*", "[hxCardFooter]"], true, never>;
685
685
  }
686
+ type HxCarouselOrientation = 'horizontal' | 'vertical';
687
+ /** How many items are visible and scrolled at a viewport width (`breakpoint` is a max-width, `'1024px'`). */
688
+ interface HxCarouselResponsiveOption {
689
+ breakpoint: string;
690
+ numVisible: number;
691
+ numScroll: number;
692
+ }
693
+ interface HxCarouselItemContext<T = unknown> {
694
+ $implicit: T;
695
+ index: number;
696
+ }
697
+ /** The template of one item: `<ng-template hxCarouselItem let-item let-index="index">`. */
698
+ export declare class HxCarouselItem {
699
+ readonly template: TemplateRef<HxCarouselItemContext<unknown>>;
700
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxCarouselItem, never>;
701
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxCarouselItem, "ng-template[hxCarouselItem]", never, {}, {}, never, never, true, never>;
702
+ }
703
+ /**
704
+ * A slider over a list of items: `numVisible` items at a time, moved by `numScroll` with the previous/next buttons,
705
+ * the page indicators or the arrow keys; optional autoplay and circular paging.
706
+ *
707
+ * ```html
708
+ * <hx-carousel [value]="products" [numVisible]="3" [numScroll]="1" [responsiveOptions]="responsive" ariaLabel="Products">
709
+ * <ng-template hxCarouselItem let-product>…</ng-template>
710
+ * </hx-carousel>
711
+ * ```
712
+ *
713
+ * The carousel is a `region` with `aria-roledescription="carousel"`; the items are `group`s named "n of m"; items
714
+ * outside the viewport are hidden from assistive technology and the tab order. Autoplay pauses while the pointer or
715
+ * the focus is inside and stays off when the user prefers reduced motion.
716
+ */
717
+ export declare class HxCarousel<T = unknown> {
718
+ readonly value: import("@angular/core").InputSignal<readonly T[]>;
719
+ readonly numVisible: import("@angular/core").InputSignalWithTransform<number, unknown>;
720
+ readonly numScroll: import("@angular/core").InputSignalWithTransform<number, unknown>;
721
+ /** After the last page comes the first again. */
722
+ readonly circular: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
723
+ /** Milliseconds between automatic page changes; 0 is off. */
724
+ readonly autoplayInterval: import("@angular/core").InputSignalWithTransform<number, unknown>;
725
+ readonly orientation: import("@angular/core").InputSignal<HxCarouselOrientation>;
726
+ /** Height of the viewport when vertical. */
727
+ readonly verticalViewPortHeight: import("@angular/core").InputSignal<string>;
728
+ readonly showIndicators: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
729
+ readonly showNavigators: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
730
+ readonly responsiveOptions: import("@angular/core").InputSignal<readonly HxCarouselResponsiveOption[] | undefined>;
731
+ /** The current page (0-based); `pageChange` is its output. */
732
+ readonly page: import("@angular/core").ModelSignal<number>;
733
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
734
+ readonly prevLabel: import("@angular/core").InputSignal<string>;
735
+ readonly nextLabel: import("@angular/core").InputSignal<string>;
736
+ /** `{page}` and `{pageCount}` are replaced. */
737
+ readonly pageLabelTemplate: import("@angular/core").InputSignal<string>;
738
+ /** `{index}` and `{count}` are replaced. */
739
+ readonly itemLabelTemplate: import("@angular/core").InputSignal<string>;
740
+ protected readonly itemTemplate: import("@angular/core").Signal<HxCarouselItem | undefined>;
741
+ protected readonly hovered: import("@angular/core").WritableSignal<boolean>;
742
+ protected readonly focused: import("@angular/core").WritableSignal<boolean>;
743
+ protected readonly id: string;
744
+ private readonly viewportWidth;
745
+ private readonly reducedMotion;
746
+ /** The visible/scroll counts for the current viewport (the smallest matching breakpoint wins). */
747
+ private readonly counts;
748
+ protected readonly visible: import("@angular/core").Signal<number>;
749
+ protected readonly scroll: import("@angular/core").Signal<number>;
750
+ protected readonly pageCount: import("@angular/core").Signal<number>;
751
+ protected readonly currentPage: import("@angular/core").Signal<number>;
752
+ /** The index of the first visible item. */
753
+ protected readonly first: import("@angular/core").Signal<number>;
754
+ protected readonly pages: import("@angular/core").Signal<number[]>;
755
+ protected readonly isFirst: import("@angular/core").Signal<boolean>;
756
+ protected readonly isLast: import("@angular/core").Signal<boolean>;
757
+ protected readonly prevDisabled: import("@angular/core").Signal<boolean>;
758
+ protected readonly nextDisabled: import("@angular/core").Signal<boolean>;
759
+ protected readonly itemSize: import("@angular/core").Signal<number>;
760
+ protected readonly offset: import("@angular/core").Signal<number>;
761
+ protected readonly transform: import("@angular/core").Signal<string>;
762
+ constructor();
763
+ protected isVisible(index: number): boolean;
764
+ protected itemLabel(index: number): string;
765
+ protected pageLabel(page: number): string;
766
+ /** Goes to a page (0-based); wraps around when `circular`, else clamps. */
767
+ goTo(page: number): void;
768
+ next(auto?: boolean): void;
769
+ prev(): void;
770
+ protected onKeydown(event: KeyboardEvent): void;
771
+ protected onIndicatorKeydown(event: KeyboardEvent): void;
772
+ protected onFocusOut(event: FocusEvent): void;
773
+ protected onResize(): void;
774
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxCarousel<any>, never>;
775
+ static ɵcmp: i0.ɵɵComponentDeclaration<HxCarousel<any>, "hx-carousel", never, {
776
+ "value": {
777
+ "alias": "value";
778
+ "required": false;
779
+ "isSignal": true;
780
+ };
781
+ "numVisible": {
782
+ "alias": "numVisible";
783
+ "required": false;
784
+ "isSignal": true;
785
+ };
786
+ "numScroll": {
787
+ "alias": "numScroll";
788
+ "required": false;
789
+ "isSignal": true;
790
+ };
791
+ "circular": {
792
+ "alias": "circular";
793
+ "required": false;
794
+ "isSignal": true;
795
+ };
796
+ "autoplayInterval": {
797
+ "alias": "autoplayInterval";
798
+ "required": false;
799
+ "isSignal": true;
800
+ };
801
+ "orientation": {
802
+ "alias": "orientation";
803
+ "required": false;
804
+ "isSignal": true;
805
+ };
806
+ "verticalViewPortHeight": {
807
+ "alias": "verticalViewPortHeight";
808
+ "required": false;
809
+ "isSignal": true;
810
+ };
811
+ "showIndicators": {
812
+ "alias": "showIndicators";
813
+ "required": false;
814
+ "isSignal": true;
815
+ };
816
+ "showNavigators": {
817
+ "alias": "showNavigators";
818
+ "required": false;
819
+ "isSignal": true;
820
+ };
821
+ "responsiveOptions": {
822
+ "alias": "responsiveOptions";
823
+ "required": false;
824
+ "isSignal": true;
825
+ };
826
+ "page": {
827
+ "alias": "page";
828
+ "required": false;
829
+ "isSignal": true;
830
+ };
831
+ "ariaLabel": {
832
+ "alias": "ariaLabel";
833
+ "required": false;
834
+ "isSignal": true;
835
+ };
836
+ "prevLabel": {
837
+ "alias": "prevLabel";
838
+ "required": false;
839
+ "isSignal": true;
840
+ };
841
+ "nextLabel": {
842
+ "alias": "nextLabel";
843
+ "required": false;
844
+ "isSignal": true;
845
+ };
846
+ "pageLabelTemplate": {
847
+ "alias": "pageLabelTemplate";
848
+ "required": false;
849
+ "isSignal": true;
850
+ };
851
+ "itemLabelTemplate": {
852
+ "alias": "itemLabelTemplate";
853
+ "required": false;
854
+ "isSignal": true;
855
+ };
856
+ }, {
857
+ "page": "pageChange";
858
+ }, ["itemTemplate"], ["[hxCarouselHeader]", "[hxCarouselFooter]"], true, never>;
859
+ }
686
860
  type HxChartType = 'bar' | 'line' | 'scatter' | 'bubble' | 'pie' | 'doughnut' | 'polarArea' | 'radar';
687
861
  /** What `(dataSelect)` carries: the click and what chart.js found under it. */
688
862
  interface HxChartSelectEvent {
@@ -2441,6 +2615,213 @@ export declare class HxFloatLabel {
2441
2615
  };
2442
2616
  }, {}, never, ["*"], true, never>;
2443
2617
  }
2618
+ /** One picture of a galleria. */
2619
+ interface HxGalleriaItem {
2620
+ src: string;
2621
+ alt: string;
2622
+ /** A smaller picture for the thumbnail strip (default: `src`). */
2623
+ thumbnailSrc?: string;
2624
+ title?: string;
2625
+ caption?: string;
2626
+ }
2627
+ type HxGalleriaThumbnailsPosition = 'bottom' | 'top' | 'left' | 'right';
2628
+ interface HxGalleriaItemContext {
2629
+ $implicit: HxGalleriaItem;
2630
+ index: number;
2631
+ }
2632
+ /** The template of the stage: `<ng-template hxGalleriaItem let-item let-index="index">`. */
2633
+ export declare class HxGalleriaItemTemplate {
2634
+ readonly template: TemplateRef<HxGalleriaItemContext>;
2635
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxGalleriaItemTemplate, never>;
2636
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxGalleriaItemTemplate, "ng-template[hxGalleriaItem]", never, {}, {}, never, never, true, never>;
2637
+ }
2638
+ /** The template of a thumbnail: `<ng-template hxGalleriaThumbnail let-item>`. */
2639
+ export declare class HxGalleriaThumbnail {
2640
+ readonly template: TemplateRef<HxGalleriaItemContext>;
2641
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxGalleriaThumbnail, never>;
2642
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxGalleriaThumbnail, "ng-template[hxGalleriaThumbnail]", never, {}, {}, never, never, true, never>;
2643
+ }
2644
+ /** The template of the caption over the stage: `<ng-template hxGalleriaCaption let-item>`. */
2645
+ export declare class HxGalleriaCaption {
2646
+ readonly template: TemplateRef<HxGalleriaItemContext>;
2647
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxGalleriaCaption, never>;
2648
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxGalleriaCaption, "ng-template[hxGalleriaCaption]", never, {}, {}, never, never, true, never>;
2649
+ }
2650
+ /**
2651
+ * An image gallery: a stage with the current picture, a strip of thumbnails, previous/next buttons, captions and an
2652
+ * optional full-screen mode in a modal overlay.
2653
+ *
2654
+ * ```html
2655
+ * <hx-galleria [value]="pictures" [(activeIndex)]="index" [numVisible]="5" circular ariaLabel="Product pictures" />
2656
+ * <hx-galleria [value]="pictures" fullScreen [(visible)]="open" />
2657
+ * ```
2658
+ *
2659
+ * The stage is a `region` with `aria-roledescription="carousel"` and the arrow keys move between pictures; the
2660
+ * thumbnails are a `tablist`. Full screen is a modal dialog: the focus is trapped, Escape closes it and the focus goes
2661
+ * back to where it was.
2662
+ */
2663
+ export declare class HxGalleria {
2664
+ #private;
2665
+ readonly value: import("@angular/core").InputSignal<readonly HxGalleriaItem[]>;
2666
+ /** The picture on the stage (0-based); `activeIndexChange` is its output. */
2667
+ readonly activeIndex: import("@angular/core").ModelSignal<number>;
2668
+ /** Thumbnails shown at a time. */
2669
+ readonly numVisible: import("@angular/core").InputSignalWithTransform<number, unknown>;
2670
+ /** After the last picture comes the first again. */
2671
+ readonly circular: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2672
+ readonly autoplay: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2673
+ readonly autoplayInterval: import("@angular/core").InputSignalWithTransform<number, unknown>;
2674
+ readonly showThumbnails: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2675
+ /** Dots over the stage. */
2676
+ readonly showIndicators: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2677
+ readonly showItemNavigators: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2678
+ readonly thumbnailsPosition: import("@angular/core").InputSignal<HxGalleriaThumbnailsPosition>;
2679
+ /** The gallery is not shown inline; `visible` opens it in a modal overlay. */
2680
+ readonly fullScreen: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2681
+ /** Full screen open (with `fullScreen`); `visibleChange` is its output. */
2682
+ readonly visible: import("@angular/core").ModelSignal<boolean>;
2683
+ /** CSS height of the stage inline (full screen uses the viewport). */
2684
+ readonly height: import("@angular/core").InputSignal<string>;
2685
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
2686
+ readonly prevLabel: import("@angular/core").InputSignal<string>;
2687
+ readonly nextLabel: import("@angular/core").InputSignal<string>;
2688
+ readonly closeLabel: import("@angular/core").InputSignal<string>;
2689
+ /** `{index}` and `{count}` are replaced. */
2690
+ readonly itemLabelTemplate: import("@angular/core").InputSignal<string>;
2691
+ protected readonly itemTemplate: import("@angular/core").Signal<HxGalleriaItemTemplate | undefined>;
2692
+ protected readonly thumbnailTemplate: import("@angular/core").Signal<HxGalleriaThumbnail | undefined>;
2693
+ protected readonly captionTemplate: import("@angular/core").Signal<HxGalleriaCaption | undefined>;
2694
+ private readonly content;
2695
+ protected readonly hovered: import("@angular/core").WritableSignal<boolean>;
2696
+ protected readonly focused: import("@angular/core").WritableSignal<boolean>;
2697
+ protected readonly id: string;
2698
+ private readonly reducedMotion;
2699
+ protected readonly count: import("@angular/core").Signal<number>;
2700
+ protected readonly index: import("@angular/core").Signal<number>;
2701
+ protected readonly current: import("@angular/core").Signal<HxGalleriaItem | undefined>;
2702
+ protected readonly isFirst: import("@angular/core").Signal<boolean>;
2703
+ protected readonly isLast: import("@angular/core").Signal<boolean>;
2704
+ protected readonly prevDisabled: import("@angular/core").Signal<boolean>;
2705
+ protected readonly nextDisabled: import("@angular/core").Signal<boolean>;
2706
+ protected readonly indices: import("@angular/core").Signal<number[]>;
2707
+ protected readonly hasCaption: import("@angular/core").Signal<boolean>;
2708
+ /** The first thumbnail of the strip: the strip moves so the active picture stays visible. */
2709
+ private readonly thumbStart;
2710
+ protected readonly thumbsVisible: import("@angular/core").Signal<number>;
2711
+ protected readonly thumbNavigation: import("@angular/core").Signal<boolean>;
2712
+ protected readonly thumbs: import("@angular/core").Signal<number[]>;
2713
+ protected readonly thumbPrevDisabled: import("@angular/core").Signal<boolean>;
2714
+ protected readonly thumbNextDisabled: import("@angular/core").Signal<boolean>;
2715
+ constructor();
2716
+ protected itemLabel(index: number): string;
2717
+ protected thumbnailSrc(item: HxGalleriaItem): string;
2718
+ /** Shows a picture (0-based); wraps around when `circular`, else clamps. */
2719
+ goTo(index: number): void;
2720
+ next(auto?: boolean): void;
2721
+ prev(): void;
2722
+ protected scrollThumbs(delta: number): void;
2723
+ protected onKeydown(event: KeyboardEvent): void;
2724
+ protected onThumbKeydown(event: KeyboardEvent): void;
2725
+ protected onFocusIn(): void;
2726
+ protected onFocusOut(event: FocusEvent): void;
2727
+ protected close(): void;
2728
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxGalleria, never>;
2729
+ static ɵcmp: i0.ɵɵComponentDeclaration<HxGalleria, "hx-galleria", never, {
2730
+ "value": {
2731
+ "alias": "value";
2732
+ "required": false;
2733
+ "isSignal": true;
2734
+ };
2735
+ "activeIndex": {
2736
+ "alias": "activeIndex";
2737
+ "required": false;
2738
+ "isSignal": true;
2739
+ };
2740
+ "numVisible": {
2741
+ "alias": "numVisible";
2742
+ "required": false;
2743
+ "isSignal": true;
2744
+ };
2745
+ "circular": {
2746
+ "alias": "circular";
2747
+ "required": false;
2748
+ "isSignal": true;
2749
+ };
2750
+ "autoplay": {
2751
+ "alias": "autoplay";
2752
+ "required": false;
2753
+ "isSignal": true;
2754
+ };
2755
+ "autoplayInterval": {
2756
+ "alias": "autoplayInterval";
2757
+ "required": false;
2758
+ "isSignal": true;
2759
+ };
2760
+ "showThumbnails": {
2761
+ "alias": "showThumbnails";
2762
+ "required": false;
2763
+ "isSignal": true;
2764
+ };
2765
+ "showIndicators": {
2766
+ "alias": "showIndicators";
2767
+ "required": false;
2768
+ "isSignal": true;
2769
+ };
2770
+ "showItemNavigators": {
2771
+ "alias": "showItemNavigators";
2772
+ "required": false;
2773
+ "isSignal": true;
2774
+ };
2775
+ "thumbnailsPosition": {
2776
+ "alias": "thumbnailsPosition";
2777
+ "required": false;
2778
+ "isSignal": true;
2779
+ };
2780
+ "fullScreen": {
2781
+ "alias": "fullScreen";
2782
+ "required": false;
2783
+ "isSignal": true;
2784
+ };
2785
+ "visible": {
2786
+ "alias": "visible";
2787
+ "required": false;
2788
+ "isSignal": true;
2789
+ };
2790
+ "height": {
2791
+ "alias": "height";
2792
+ "required": false;
2793
+ "isSignal": true;
2794
+ };
2795
+ "ariaLabel": {
2796
+ "alias": "ariaLabel";
2797
+ "required": false;
2798
+ "isSignal": true;
2799
+ };
2800
+ "prevLabel": {
2801
+ "alias": "prevLabel";
2802
+ "required": false;
2803
+ "isSignal": true;
2804
+ };
2805
+ "nextLabel": {
2806
+ "alias": "nextLabel";
2807
+ "required": false;
2808
+ "isSignal": true;
2809
+ };
2810
+ "closeLabel": {
2811
+ "alias": "closeLabel";
2812
+ "required": false;
2813
+ "isSignal": true;
2814
+ };
2815
+ "itemLabelTemplate": {
2816
+ "alias": "itemLabelTemplate";
2817
+ "required": false;
2818
+ "isSignal": true;
2819
+ };
2820
+ }, {
2821
+ "activeIndex": "activeIndexChange";
2822
+ "visible": "visibleChange";
2823
+ }, ["itemTemplate", "thumbnailTemplate", "captionTemplate"], never, true, never>;
2824
+ }
2444
2825
  type HxIconPosition = 'left' | 'right';
2445
2826
  /**
2446
2827
  * An icon inside a text field. Wrap an `hx-input` (or `hx-password`) and one `hx-input-icon` element; the
@@ -2477,6 +2858,167 @@ export declare class HxInputIcon {
2477
2858
  static ɵfac: i0.ɵɵFactoryDeclaration<HxInputIcon, never>;
2478
2859
  static ɵdir: i0.ɵɵDirectiveDeclaration<HxInputIcon, "[hx-input-icon]", never, {}, {}, never, never, true, never>;
2479
2860
  }
2861
+ /** The content of the hover indicator over a previewable image: `<ng-template hxImageIndicator>`. */
2862
+ export declare class HxImageIndicator {
2863
+ readonly template: TemplateRef<unknown>;
2864
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxImageIndicator, never>;
2865
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxImageIndicator, "ng-template[hxImageIndicator]", never, {}, {}, never, never, true, never>;
2866
+ }
2867
+ /**
2868
+ * An image, optionally with a preview: a click (or Enter on the button over it) opens the picture in a modal
2869
+ * overlay with a toolbar to rotate, zoom and close.
2870
+ *
2871
+ * ```html
2872
+ * <hx-image src="product.jpg" alt="Bamboo watch" width="250" preview />
2873
+ * <hx-image src="thumb.jpg" previewImageSrc="large.jpg" alt="Bamboo watch" preview />
2874
+ * ```
2875
+ *
2876
+ * The preview trigger is a button named "Preview {alt}"; the overlay is a modal dialog (focus trap, Escape closes,
2877
+ * focus restored); the toolbar buttons are labelled; + and - zoom from the keyboard.
2878
+ */
2879
+ export declare class HxImage {
2880
+ #private;
2881
+ readonly src: import("@angular/core").InputSignal<string>;
2882
+ readonly alt: import("@angular/core").InputSignal<string>;
2883
+ /** Width and height of the inline image (CSS or number of pixels). */
2884
+ readonly width: import("@angular/core").InputSignal<string | number | undefined>;
2885
+ readonly height: import("@angular/core").InputSignal<string | number | undefined>;
2886
+ /** A click opens the picture in an overlay. */
2887
+ readonly preview: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2888
+ /** A larger picture for the overlay (default: `src`). */
2889
+ readonly previewImageSrc: import("@angular/core").InputSignal<string | undefined>;
2890
+ readonly imageClass: import("@angular/core").InputSignal<string | undefined>;
2891
+ readonly imageStyle: import("@angular/core").InputSignal<Record<string, string> | undefined>;
2892
+ readonly showToolbar: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2893
+ readonly zoomStep: import("@angular/core").InputSignalWithTransform<number, unknown>;
2894
+ readonly zoomMin: import("@angular/core").InputSignalWithTransform<number, unknown>;
2895
+ readonly zoomMax: import("@angular/core").InputSignalWithTransform<number, unknown>;
2896
+ /** `{alt}` is replaced. */
2897
+ readonly previewLabelTemplate: import("@angular/core").InputSignal<string>;
2898
+ readonly rotateLeftLabel: import("@angular/core").InputSignal<string>;
2899
+ readonly rotateRightLabel: import("@angular/core").InputSignal<string>;
2900
+ readonly zoomOutLabel: import("@angular/core").InputSignal<string>;
2901
+ readonly zoomInLabel: import("@angular/core").InputSignal<string>;
2902
+ readonly closeLabel: import("@angular/core").InputSignal<string>;
2903
+ /** The preview opened. */
2904
+ readonly show: import("@angular/core").OutputEmitterRef<void>;
2905
+ /** The preview closed. */
2906
+ readonly hide: import("@angular/core").OutputEmitterRef<void>;
2907
+ protected readonly indicatorTemplate: import("@angular/core").Signal<HxImageIndicator | undefined>;
2908
+ private readonly overlay;
2909
+ protected readonly rotation: import("@angular/core").WritableSignal<number>;
2910
+ protected readonly scale: import("@angular/core").WritableSignal<number>;
2911
+ protected readonly transform: import("@angular/core").Signal<string>;
2912
+ protected readonly previewLabel: import("@angular/core").Signal<string>;
2913
+ protected readonly previewSrc: import("@angular/core").Signal<string>;
2914
+ protected readonly zoomOutDisabled: import("@angular/core").Signal<boolean>;
2915
+ protected readonly zoomInDisabled: import("@angular/core").Signal<boolean>;
2916
+ constructor();
2917
+ protected cssSize(value: string | number | undefined): string | null;
2918
+ /** Opens the preview. */
2919
+ open(): void;
2920
+ /** Closes the preview. */
2921
+ close(): void;
2922
+ protected rotate(degrees: number): void;
2923
+ protected zoom(direction: 1 | -1): void;
2924
+ protected onKeydown(event: KeyboardEvent): void;
2925
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxImage, never>;
2926
+ static ɵcmp: i0.ɵɵComponentDeclaration<HxImage, "hx-image", never, {
2927
+ "src": {
2928
+ "alias": "src";
2929
+ "required": true;
2930
+ "isSignal": true;
2931
+ };
2932
+ "alt": {
2933
+ "alias": "alt";
2934
+ "required": true;
2935
+ "isSignal": true;
2936
+ };
2937
+ "width": {
2938
+ "alias": "width";
2939
+ "required": false;
2940
+ "isSignal": true;
2941
+ };
2942
+ "height": {
2943
+ "alias": "height";
2944
+ "required": false;
2945
+ "isSignal": true;
2946
+ };
2947
+ "preview": {
2948
+ "alias": "preview";
2949
+ "required": false;
2950
+ "isSignal": true;
2951
+ };
2952
+ "previewImageSrc": {
2953
+ "alias": "previewImageSrc";
2954
+ "required": false;
2955
+ "isSignal": true;
2956
+ };
2957
+ "imageClass": {
2958
+ "alias": "imageClass";
2959
+ "required": false;
2960
+ "isSignal": true;
2961
+ };
2962
+ "imageStyle": {
2963
+ "alias": "imageStyle";
2964
+ "required": false;
2965
+ "isSignal": true;
2966
+ };
2967
+ "showToolbar": {
2968
+ "alias": "showToolbar";
2969
+ "required": false;
2970
+ "isSignal": true;
2971
+ };
2972
+ "zoomStep": {
2973
+ "alias": "zoomStep";
2974
+ "required": false;
2975
+ "isSignal": true;
2976
+ };
2977
+ "zoomMin": {
2978
+ "alias": "zoomMin";
2979
+ "required": false;
2980
+ "isSignal": true;
2981
+ };
2982
+ "zoomMax": {
2983
+ "alias": "zoomMax";
2984
+ "required": false;
2985
+ "isSignal": true;
2986
+ };
2987
+ "previewLabelTemplate": {
2988
+ "alias": "previewLabelTemplate";
2989
+ "required": false;
2990
+ "isSignal": true;
2991
+ };
2992
+ "rotateLeftLabel": {
2993
+ "alias": "rotateLeftLabel";
2994
+ "required": false;
2995
+ "isSignal": true;
2996
+ };
2997
+ "rotateRightLabel": {
2998
+ "alias": "rotateRightLabel";
2999
+ "required": false;
3000
+ "isSignal": true;
3001
+ };
3002
+ "zoomOutLabel": {
3003
+ "alias": "zoomOutLabel";
3004
+ "required": false;
3005
+ "isSignal": true;
3006
+ };
3007
+ "zoomInLabel": {
3008
+ "alias": "zoomInLabel";
3009
+ "required": false;
3010
+ "isSignal": true;
3011
+ };
3012
+ "closeLabel": {
3013
+ "alias": "closeLabel";
3014
+ "required": false;
3015
+ "isSignal": true;
3016
+ };
3017
+ }, {
3018
+ "show": "show";
3019
+ "hide": "hide";
3020
+ }, ["indicatorTemplate"], never, true, never>;
3021
+ }
2480
3022
  type HxInputSize = 'small' | 'medium' | 'large';
2481
3023
  type HxInputVariant = 'outlined' | 'filled';
2482
3024
  /**
@@ -3783,6 +4325,13 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
3783
4325
  readonly optionDisabled: import("@angular/core").InputSignal<Accessor<never, boolean>>;
3784
4326
  readonly placeholder: import("@angular/core").InputSignal<string>;
3785
4327
  readonly emptyMessage: import("@angular/core").InputSignal<string>;
4328
+ /** A search field above the list that narrows the options (case-insensitive "contains"). */
4329
+ readonly filter: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
4330
+ readonly filterPlaceholder: import("@angular/core").InputSignal<string>;
4331
+ /** What the filter matches: a property name or accessor of an option; default the label. */
4332
+ readonly filterBy: import("@angular/core").InputSignal<Accessor<never, string> | undefined>;
4333
+ /** Shown when the filter matches nothing. */
4334
+ readonly emptyFilterMessage: import("@angular/core").InputSignal<string>;
3786
4335
  readonly size: import("@angular/core").InputSignal<HxSelectSize>;
3787
4336
  readonly variant: import("@angular/core").InputSignal<HxSelectVariant>;
3788
4337
  readonly fluid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -3804,8 +4353,12 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
3804
4353
  protected readonly positions: ConnectedPosition[];
3805
4354
  private readonly trigger;
3806
4355
  private readonly listbox;
4356
+ private readonly filterField;
4357
+ protected readonly query: import("@angular/core").WritableSignal<string>;
3807
4358
  protected readonly isDisabled: import("@angular/core").Signal<boolean>;
3808
4359
  protected readonly items: import("@angular/core").Signal<HxSelectItem<unknown>[]>;
4360
+ protected readonly visibleItems: import("@angular/core").Signal<HxSelectItem<unknown>[]>;
4361
+ protected readonly resultsLabel: import("@angular/core").Signal<string>;
3809
4362
  protected readonly selected: import("@angular/core").Signal<HxSelectItem<unknown> | undefined>;
3810
4363
  protected readonly canClear: import("@angular/core").Signal<boolean>;
3811
4364
  protected readonly selectedValues: import("@angular/core").Signal<unknown[]>;
@@ -3819,6 +4372,7 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
3819
4372
  protected show(): void;
3820
4373
  protected close(refocus?: boolean): void;
3821
4374
  protected onAttach(): void;
4375
+ protected onFilterKeydown(event: KeyboardEvent): void;
3822
4376
  protected onTriggerKeydown(event: KeyboardEvent): void;
3823
4377
  protected onOverlayKeydown(event: KeyboardEvent): void;
3824
4378
  protected onOutsideClick(event: MouseEvent): void;
@@ -3857,6 +4411,26 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
3857
4411
  "required": false;
3858
4412
  "isSignal": true;
3859
4413
  };
4414
+ "filter": {
4415
+ "alias": "filter";
4416
+ "required": false;
4417
+ "isSignal": true;
4418
+ };
4419
+ "filterPlaceholder": {
4420
+ "alias": "filterPlaceholder";
4421
+ "required": false;
4422
+ "isSignal": true;
4423
+ };
4424
+ "filterBy": {
4425
+ "alias": "filterBy";
4426
+ "required": false;
4427
+ "isSignal": true;
4428
+ };
4429
+ "emptyFilterMessage": {
4430
+ "alias": "emptyFilterMessage";
4431
+ "required": false;
4432
+ "isSignal": true;
4433
+ };
3860
4434
  "size": {
3861
4435
  "alias": "size";
3862
4436
  "required": false;
@@ -5307,4 +5881,4 @@ export declare class HxTree {
5307
5881
  "nodeCollapse": "nodeCollapse";
5308
5882
  }, ["template"], never, true, never>;
5309
5883
  }
5310
- export type { HxAccordionValue, HxAutoCompleteEvent, HxAutoCompleteSize, HxAvatarShape, HxAvatarSize, HxBadgeSeverity, HxBadgeSize, HxBreadcrumbItem, HxButtonSeverity, HxButtonSize, HxButtonVariant, HxCellContext, HxChartInstance, HxChartModule, HxChartSelectEvent, HxChartType, HxCheckboxSize, HxColumn, HxColumnAlign, HxConfirmation, HxDatePickerSelectionMode, HxDatePickerValue, HxDialogConfig, HxDialogPosition, HxDividerAlign, HxDividerLayout, HxDividerType, HxDrawerPosition, HxFileUploadMode, HxFloatLabelVariant, HxIconPosition, HxInputNumberButtonLayout, HxInputNumberMode, HxInputNumberSize, HxInputNumberVariant, HxInputSize, HxInputVariant, HxLazyLoadEvent, HxMenuItem, HxMenuItemCommandEvent, HxMessageSeverity, HxMessageSize, HxMessageVariant, HxMultiSelectDisplay, HxMultiSelectSize, HxMultiSelectVariant, HxPageEvent, HxPrimaryColor, HxProgressMode, HxRadioSize, HxSelectButtonSize, HxSelectItem, HxSelectSize, HxSelectVariant, HxSelectionMode, HxSkeletonAnimation, HxSkeletonShape, HxSliderOrientation, HxSliderValue, HxSortFunction, HxSortMeta, HxSortMode, HxStepContentContext, HxStepValue, HxSurface, HxTableColumnsContext, HxTableRowContext, HxTableSize, HxTagSeverity, HxThemeOptions, HxTimelineAlign, HxTimelineContext, HxTimelineLayout, HxToastMessage, HxToastMessageInput, HxToastPosition, HxToastSeverity, HxToggleButtonSize, HxTooltipEvent, HxTooltipPosition, HxTreeFilterMode, HxTreeNode, HxTreeNodeContext, HxTreeNodeEvent, HxTreeSelection, HxTreeSelectionMode };
5884
+ export type { HxAccordionValue, HxAutoCompleteEvent, HxAutoCompleteSize, HxAvatarShape, HxAvatarSize, HxBadgeSeverity, HxBadgeSize, HxBreadcrumbItem, HxButtonSeverity, HxButtonSize, HxButtonVariant, HxCarouselItemContext, HxCarouselOrientation, HxCarouselResponsiveOption, HxCellContext, HxChartInstance, HxChartModule, HxChartSelectEvent, HxChartType, HxCheckboxSize, HxColumn, HxColumnAlign, HxConfirmation, HxDatePickerSelectionMode, HxDatePickerValue, HxDialogConfig, HxDialogPosition, HxDividerAlign, HxDividerLayout, HxDividerType, HxDrawerPosition, HxFileUploadMode, HxFloatLabelVariant, HxGalleriaItem, HxGalleriaItemContext, HxGalleriaThumbnailsPosition, HxIconPosition, HxInputNumberButtonLayout, HxInputNumberMode, HxInputNumberSize, HxInputNumberVariant, HxInputSize, HxInputVariant, HxLazyLoadEvent, HxMenuItem, HxMenuItemCommandEvent, HxMessageSeverity, HxMessageSize, HxMessageVariant, HxMultiSelectDisplay, HxMultiSelectSize, HxMultiSelectVariant, HxPageEvent, HxPrimaryColor, HxProgressMode, HxRadioSize, HxSelectButtonSize, HxSelectItem, HxSelectSize, HxSelectVariant, HxSelectionMode, HxSkeletonAnimation, HxSkeletonShape, HxSliderOrientation, HxSliderValue, HxSortFunction, HxSortMeta, HxSortMode, HxStepContentContext, HxStepValue, HxSurface, HxTableColumnsContext, HxTableRowContext, HxTableSize, HxTagSeverity, HxThemeOptions, HxTimelineAlign, HxTimelineContext, HxTimelineLayout, HxToastMessage, HxToastMessageInput, HxToastPosition, HxToastSeverity, HxToggleButtonSize, HxTooltipEvent, HxTooltipPosition, HxTreeFilterMode, HxTreeNode, HxTreeNodeContext, HxTreeNodeEvent, HxTreeSelection, HxTreeSelectionMode };