@gravionlabs/helix-ui 22.2.0 → 22.2.2

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 {
@@ -1264,6 +1438,12 @@ export declare class HxTableCaption {
1264
1438
  static ɵfac: i0.ɵɵFactoryDeclaration<HxTableCaption, never>;
1265
1439
  static ɵdir: i0.ɵɵDirectiveDeclaration<HxTableCaption, "ng-template[hxTableCaption]", never, {}, {}, never, never, true, never>;
1266
1440
  }
1441
+ /** The content of the empty row, replacing `emptyMessage`: `<ng-template hxTableEmpty>`. */
1442
+ export declare class HxTableEmpty {
1443
+ readonly template: TemplateRef<unknown>;
1444
+ static ɵfac: i0.ɵɵFactoryDeclaration<HxTableEmpty, never>;
1445
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HxTableEmpty, "ng-template[hxTableEmpty]", never, {}, {}, never, never, true, never>;
1446
+ }
1267
1447
  /** The content of the row that opens below a row: `<ng-template hxRowExpansion let-row>`. */
1268
1448
  export declare class HxRowExpansion {
1269
1449
  readonly template: TemplateRef<HxTableRowContext>;
@@ -1367,6 +1547,7 @@ export declare class HxDataTable implements OnInit {
1367
1547
  protected readonly footerTemplate: import("@angular/core").Signal<HxTableFooter | undefined>;
1368
1548
  protected readonly captionTemplate: import("@angular/core").Signal<HxTableCaption | undefined>;
1369
1549
  protected readonly expansionTemplate: import("@angular/core").Signal<HxRowExpansion | undefined>;
1550
+ protected readonly emptyTemplate: import("@angular/core").Signal<HxTableEmpty | undefined>;
1370
1551
  /** The sort state as a list, whichever the mode. */
1371
1552
  protected readonly sortMeta: import("@angular/core").Signal<HxSortMeta[]>;
1372
1553
  private readonly filtered;
@@ -1615,7 +1796,7 @@ export declare class HxDataTable implements OnInit {
1615
1796
  "selection": "selectionChange";
1616
1797
  "filters": "filtersChange";
1617
1798
  "expandedRowKeys": "expandedRowKeysChange";
1618
- }, ["cellTemplates", "headerTemplate", "bodyTemplate", "footerTemplate", "captionTemplate", "expansionTemplate"], never, true, never>;
1799
+ }, ["cellTemplates", "headerTemplate", "bodyTemplate", "footerTemplate", "captionTemplate", "expansionTemplate", "emptyTemplate"], never, true, never>;
1619
1800
  }
1620
1801
  type HxDatePickerSelectionMode = 'single' | 'range' | 'multiple';
1621
1802
  type HxDatePickerValue = Date | Date[] | null;
@@ -2434,6 +2615,213 @@ export declare class HxFloatLabel {
2434
2615
  };
2435
2616
  }, {}, never, ["*"], true, never>;
2436
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
+ }
2437
2825
  type HxIconPosition = 'left' | 'right';
2438
2826
  /**
2439
2827
  * An icon inside a text field. Wrap an `hx-input` (or `hx-password`) and one `hx-input-icon` element; the
@@ -2470,6 +2858,167 @@ export declare class HxInputIcon {
2470
2858
  static ɵfac: i0.ɵɵFactoryDeclaration<HxInputIcon, never>;
2471
2859
  static ɵdir: i0.ɵɵDirectiveDeclaration<HxInputIcon, "[hx-input-icon]", never, {}, {}, never, never, true, never>;
2472
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
+ }
2473
3022
  type HxInputSize = 'small' | 'medium' | 'large';
2474
3023
  type HxInputVariant = 'outlined' | 'filled';
2475
3024
  /**
@@ -5300,4 +5849,4 @@ export declare class HxTree {
5300
5849
  "nodeCollapse": "nodeCollapse";
5301
5850
  }, ["template"], never, true, never>;
5302
5851
  }
5303
- 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 };
5852
+ 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 };