@acorex/cdk 22.0.0 → 22.0.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "22.0.0",
3
+ "version": "22.0.1-next.0",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.0.0",
5
+ "@acorex/core": "22.0.1-next.0",
6
6
  "quill": ">=2.0.2",
7
7
  "qrcode": ">=1.5.4",
8
8
  "swiper": ">=11.1.15",
@@ -40,10 +40,6 @@
40
40
  "types": "./types/acorex-cdk-dom.d.ts",
41
41
  "default": "./fesm2022/acorex-cdk-dom.mjs"
42
42
  },
43
- "./double-click": {
44
- "types": "./types/acorex-cdk-double-click.d.ts",
45
- "default": "./fesm2022/acorex-cdk-double-click.mjs"
46
- },
47
43
  "./drag-drop": {
48
44
  "types": "./types/acorex-cdk-drag-drop.d.ts",
49
45
  "default": "./fesm2022/acorex-cdk-drag-drop.mjs"
@@ -64,6 +60,10 @@
64
60
  "types": "./types/acorex-cdk-gesture.d.ts",
65
61
  "default": "./fesm2022/acorex-cdk-gesture.mjs"
66
62
  },
63
+ "./highlight": {
64
+ "types": "./types/acorex-cdk-highlight.d.ts",
65
+ "default": "./fesm2022/acorex-cdk-highlight.mjs"
66
+ },
67
67
  "./horizontal-scroll": {
68
68
  "types": "./types/acorex-cdk-horizontal-scroll.d.ts",
69
69
  "default": "./fesm2022/acorex-cdk-horizontal-scroll.mjs"
@@ -100,6 +100,10 @@
100
100
  "types": "./types/acorex-cdk-selection.d.ts",
101
101
  "default": "./fesm2022/acorex-cdk-selection.mjs"
102
102
  },
103
+ "./shimmer": {
104
+ "types": "./types/acorex-cdk-shimmer.d.ts",
105
+ "default": "./fesm2022/acorex-cdk-shimmer.mjs"
106
+ },
103
107
  "./sliding-item": {
104
108
  "types": "./types/acorex-cdk-sliding-item.d.ts",
105
109
  "default": "./fesm2022/acorex-cdk-sliding-item.mjs"
@@ -0,0 +1,11 @@
1
+ # @acorex/cdk/shimmer
2
+
3
+ Text shimmer directive for loading or streaming states.
4
+
5
+ ```typescript
6
+ import { AXShimmerDirective } from '@acorex/cdk/shimmer';
7
+ ```
8
+
9
+ ```html
10
+ <p class="text-sm text-neutral-500" axShimmer>Generating response…</p>
11
+ ```
@@ -7,6 +7,8 @@ declare class AXCarouselDirective {
7
7
  carousel: i0.WritableSignal<Swiper>;
8
8
  private el;
9
9
  private platformId;
10
+ private initId;
11
+ destroy(): void;
10
12
  init(option: AXCarouselOptions): Promise<void>;
11
13
  static ɵfac: i0.ɵɵFactoryDeclaration<AXCarouselDirective, never>;
12
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXCarouselDirective, "[axCarousel]", ["axCarousel"], {}, {}, never, never, true, never>;
@@ -1181,5 +1181,22 @@ declare class AXHotkeysService {
1181
1181
  static ɵprov: i0.ɵɵInjectableDeclaration<AXHotkeysService>;
1182
1182
  }
1183
1183
 
1184
- export { AXAutoFocusDirective, AXAutocompleteParentComponent, AXButtonClickEvent, AXClearableComponent, AXClickEvent, AXClosableComponent, AXCommonModule, AXComponent, AXComponentCloseEvent, AXComponentClosedPromise, AXComponentClosing, AXComponentResult, AXDataSource, AXDomService, AXEvent, AXFocusEvent, AXFocusableComponent, AXHotkeyDirective, AXHotkeysService, AXHtmlEvent, AXInfiniteScrollerDirective, AXInvertedColorDirective, AXItemClickEvent, AXItemSelectedEvent, AXListDataSource, AXNgModelDelayedValueChangedDirective, AXOptionChangedEvent, AXPagedComponent, AXRangeChangedEvent, AXResponsiveDirective, AXRippleDirective, AXSearchableComponent, AXSelectionValueChangedEvent, AXValuableComponent, AXValueChangedEvent, AX_LOCATIONS, AX_PLACEMENT_BOTTOM, AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_END, AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_MAP, AX_PLACEMENT_START, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_TOP, AX_PLACEMENT_TOP_END, AX_PLACEMENT_TOP_START, AX_SELECTION_DATA_TOKEN, AX_STYLE_COLOR_TYPES, AX_STYLE_LOOK_TYPES, MXBaseComponent, MXButtonBaseComponent, MXColorComponent, MXColorLookComponent, MXInputBaseValueComponent, MXInteractiveComponent, MXLookComponent, MXLookableComponent, MXSelectionBridgeService, MXSelectionValueComponent, MXValueComponent, NXButtonComponent, NXClickEvent, NXColorComponent, NXComponent, NXEvent, NXInteractiveComponent, NXLookComponent, NXNativeEvent, NXValueComponent, TAB_META_KEY, applyDataSourceQuery, convertArrayToDataSource, convertToPlacement };
1184
+ /**
1185
+ * Scrolls `element` into view inside `container` using nearest-edge behavior.
1186
+ * Only adjusts the container's own scrollTop — never the document — so overlay
1187
+ * dismissal on document scroll is not triggered.
1188
+ */
1189
+ declare function scrollNearestIntoView(container: HTMLElement, element: HTMLElement, topInset?: number): void;
1190
+ /**
1191
+ * Scrolls an option into view inside a scrollable container using nearest-edge behavior.
1192
+ * Uses bounding rects relative to the container so it works even when offsetParent differs.
1193
+ */
1194
+ declare function scrollOptionWithinContainer(container: HTMLElement, option: HTMLElement): void;
1195
+ /**
1196
+ * Retries `fn` on successive animation frames until it returns true or `attempts` is exhausted.
1197
+ * Used when the target element appears only after an overlay has been positioned and laid out.
1198
+ */
1199
+ declare function retryFrames(fn: () => boolean, attempts?: number): void;
1200
+
1201
+ export { AXAutoFocusDirective, AXAutocompleteParentComponent, AXButtonClickEvent, AXClearableComponent, AXClickEvent, AXClosableComponent, AXCommonModule, AXComponent, AXComponentCloseEvent, AXComponentClosedPromise, AXComponentClosing, AXComponentResult, AXDataSource, AXDomService, AXEvent, AXFocusEvent, AXFocusableComponent, AXHotkeyDirective, AXHotkeysService, AXHtmlEvent, AXInfiniteScrollerDirective, AXInvertedColorDirective, AXItemClickEvent, AXItemSelectedEvent, AXListDataSource, AXNgModelDelayedValueChangedDirective, AXOptionChangedEvent, AXPagedComponent, AXRangeChangedEvent, AXResponsiveDirective, AXRippleDirective, AXSearchableComponent, AXSelectionValueChangedEvent, AXValuableComponent, AXValueChangedEvent, AX_LOCATIONS, AX_PLACEMENT_BOTTOM, AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_END, AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_MAP, AX_PLACEMENT_START, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_TOP, AX_PLACEMENT_TOP_END, AX_PLACEMENT_TOP_START, AX_SELECTION_DATA_TOKEN, AX_STYLE_COLOR_TYPES, AX_STYLE_LOOK_TYPES, MXBaseComponent, MXButtonBaseComponent, MXColorComponent, MXColorLookComponent, MXInputBaseValueComponent, MXInteractiveComponent, MXLookComponent, MXLookableComponent, MXSelectionBridgeService, MXSelectionValueComponent, MXValueComponent, NXButtonComponent, NXClickEvent, NXColorComponent, NXComponent, NXEvent, NXInteractiveComponent, NXLookComponent, NXNativeEvent, NXValueComponent, TAB_META_KEY, applyDataSourceQuery, convertArrayToDataSource, convertToPlacement, retryFrames, scrollNearestIntoView, scrollOptionWithinContainer };
1185
1202
  export type { AXAnimationEasing, AXComponentState, AXConnectedPosition, AXDataListFetchCallbackResult, AXDataListFetchDataCallback, AXDataListItems, AXDataListQuery, AXDataSourceByKeyCallback, AXDataSourceCallbackResult, AXDataSourceChangedEvent, AXDataSourceConfig, AXDataSourceFilterOption, AXDataSourceItemExpandedEvent, AXDataSourceLoadCallback, AXDataSourceOperator, AXDataSourceQuery, AXDataSourceSortOption, AXDirection, AXExpandToggleIcons, AXFilterLogic, AXFormValidationRule, AXHotKeyAction, AXLocation, AXOrientation, AXPagedComponentInterface, AXPlacement, AXPlacementType, AXRange, AXScrollPosition, AXSelectionMode, AXSizeType, AXSortOrder, AXStyleColorClassType, AXStyleColorType, AXStyleInteractiveLookClassType, AXStyleLookClassType, AXStyleLookType, AXStyleSizeType, AXSurfaceType, DisabledCallback, MXComponentOptionChanged, MXComponentOptionChanging, MXComponentSetOption, NormalizedItem };
@@ -29,6 +29,12 @@ declare class AXDragDirective implements OnInit, OnDestroy {
29
29
  dragCursor: _angular_core.InputSignal<"move" | "grab" | "none">;
30
30
  dragBoundary: _angular_core.InputSignal<string | HTMLElement | ElementRef<HTMLElement>>;
31
31
  dragTransitionDuration: _angular_core.InputSignal<number>;
32
+ readonly isDragDisabled: _angular_core.WritableSignal<boolean>;
33
+ readonly lockAxis: _angular_core.WritableSignal<"x" | "y">;
34
+ readonly dragBoundaryOverride: _angular_core.WritableSignal<string | HTMLElement | ElementRef<HTMLElement>>;
35
+ readonly startDelay: _angular_core.WritableSignal<number>;
36
+ readonly dragTouchAction: _angular_core.WritableSignal<"none" | "pan-x" | "pan-y">;
37
+ readonly dragCursorOverride: _angular_core.WritableSignal<"move" | "grab" | "none">;
32
38
  dragPositionChanged: _angular_core.OutputEmitterRef<AXPositionType>;
33
39
  isMoving: _angular_core.WritableSignal<boolean>;
34
40
  clonedElement: _angular_core.WritableSignal<HTMLElement>;
@@ -43,10 +49,14 @@ declare class AXDragDirective implements OnInit, OnDestroy {
43
49
  private activePointerId;
44
50
  private prevDropZone;
45
51
  private dragStartOffset;
52
+ private pointerDownPosition;
46
53
  private clonePointerOffset;
47
54
  private clonedElementViewRef;
48
55
  private rafId;
49
56
  private pendingPointerEvent;
57
+ private savedBodyCursor;
58
+ private holdDelayTimer;
59
+ private holdDelayReady;
50
60
  private _parentDropList;
51
61
  private _currentDropList;
52
62
  readonly createCloneElement: _angular_core.Signal<boolean>;
@@ -61,11 +71,18 @@ declare class AXDragDirective implements OnInit, OnDestroy {
61
71
  private listenersAttached;
62
72
  ngOnInit(): void;
63
73
  ngOnDestroy(): void;
74
+ private resolveDropCursor;
75
+ private setActiveDragCursor;
76
+ private clearActiveDragCursor;
77
+ private clearHoldDelayTimer;
78
+ private scheduleHoldDelayFeedback;
79
+ private setElementDropCursor;
64
80
  private setElementTransition;
65
81
  private removeElementTransition;
66
82
  private handlePointerDown;
67
83
  private handleDblClick;
68
84
  private handlePointerMove;
85
+ private abortDragSequence;
69
86
  private startDrag;
70
87
  private handlePointerUp;
71
88
  private preventClicking;
@@ -131,6 +148,8 @@ declare class AXDropListDirective extends NXComponent implements OnInit, AfterCo
131
148
  dropListOrientation: _angular_core.InputSignal<"horizontal" | "vertical">;
132
149
  /** Emits when an item is dropped into the list. */
133
150
  dropListDropped: _angular_core.OutputEmitterRef<AXDropListDroppedEvent>;
151
+ /** Emits when the sort preview transforms change during an active drag. */
152
+ sortPreviewChanged: _angular_core.OutputEmitterRef<void>;
134
153
  /** The `axDrag` directives that are direct children of this list. */
135
154
  readonly _draggableItems: _angular_core.Signal<readonly AXDragDirective[]>;
136
155
  /** The native element of the drop list. */
@@ -145,8 +164,12 @@ declare class AXDropListDirective extends NXComponent implements OnInit, AfterCo
145
164
  private readonly _listInitialRect;
146
165
  /** The detected `gap` of the list for the current orientation. */
147
166
  private readonly _listGap;
148
- /** A signal-based alias for the orientation input for internal use. */
149
- private readonly _orientation;
167
+ /** Whether the list is in RTL direction (cached at drag start). */
168
+ private readonly _isRtl;
169
+ /** Internal orientation state; can be overridden programmatically by host components. */
170
+ readonly orientation: _angular_core.WritableSignal<"horizontal" | "vertical">;
171
+ /** Internal sorting-disabled state; can be overridden programmatically by host components. */
172
+ readonly isSortingDisabled: _angular_core.WritableSignal<boolean>;
150
173
  /** DOM placeholder element for inter-list drags */
151
174
  private _placeholderElement;
152
175
  ngOnInit(): void;
@@ -154,6 +177,8 @@ declare class AXDropListDirective extends NXComponent implements OnInit, AfterCo
154
177
  ngOnDestroy(): void;
155
178
  /** Checks if the given drag item is the one currently active in this list. */
156
179
  isDragActiveForThisList(dragItem: AXDragDirective): boolean;
180
+ /** Whether the list is horizontal and in RTL direction. */
181
+ private isHorizontalRtl;
157
182
  /**
158
183
  * Prepares the list for sorting when a drag operation starts from within this list.
159
184
  * @param dragItem The item that is being dragged.
@@ -214,7 +239,7 @@ declare class AXDropListDirective extends NXComponent implements OnInit, AfterCo
214
239
  /** Resets the internal state of the directive to its initial values. */
215
240
  resetSortState(): void;
216
241
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXDropListDirective, never>;
217
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXDropListDirective, "[axDropList]", ["axDropList"], { "axDropList": { "alias": "axDropList"; "required": false; "isSignal": true; }; "sortingDisabled": { "alias": "sortingDisabled"; "required": false; "isSignal": true; }; "dropListGroup": { "alias": "dropListGroup"; "required": false; "isSignal": true; }; "dropListOrientation": { "alias": "dropListOrientation"; "required": false; "isSignal": true; }; }, { "dropListDropped": "dropListDropped"; }, ["_draggableItems"], never, true, never>;
242
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXDropListDirective, "[axDropList]", ["axDropList"], { "axDropList": { "alias": "axDropList"; "required": false; "isSignal": true; }; "sortingDisabled": { "alias": "sortingDisabled"; "required": false; "isSignal": true; }; "dropListGroup": { "alias": "dropListGroup"; "required": false; "isSignal": true; }; "dropListOrientation": { "alias": "dropListOrientation"; "required": false; "isSignal": true; }; }, { "dropListDropped": "dropListDropped"; "sortPreviewChanged": "sortPreviewChanged"; }, ["_draggableItems"], never, true, never>;
218
243
  }
219
244
 
220
245
  interface AXDropZoneDropEvent extends NXNativeEvent<AXDropZoneDirective, MouseEvent> {
@@ -1,69 +1,44 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+ import { AXFullScreenMode } from '@acorex/core/full-screen';
2
4
 
3
5
  /**
4
- * Fullscreen directive that provides CSS-based fullscreen functionality
6
+ * Fullscreen directive with overlay and browser modes.
5
7
  * Usage: <element axFullscreen #fullscreen="axFullscreen"></element>
6
8
  * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()
7
9
  */
8
- declare class AXFullScreenDirective {
10
+ declare class AXFullScreenDirective implements OnDestroy {
9
11
  /**
10
- * Current fullscreen state
12
+ * Fullscreen implementation mode.
13
+ * @defaultValue 'overlay'
11
14
  */
12
- private readonly isFullscreenState;
15
+ readonly mode: _angular_core.InputSignal<AXFullScreenMode>;
13
16
  /**
14
- * Original element styles to restore
17
+ * Fullscreen change event for this host element.
15
18
  */
16
- private originalStyles;
17
- /**
18
- * Original parent element reference
19
- */
20
- private originalParent;
21
- /**
22
- * Fullscreen container element
23
- */
24
- private fullscreenContainer;
25
- /**
26
- * Fullscreen change event
27
- */
28
- readonly fullscreenChange: i0.OutputEmitterRef<boolean>;
29
- /**
30
- * Z-index token for this fullscreen instance
31
- */
32
- private zToken;
33
- private readonly renderer;
19
+ readonly fullscreenChange: _angular_core.OutputEmitterRef<boolean>;
34
20
  private readonly elementRef;
35
- private readonly zIndexService;
21
+ private readonly fullScreenService;
36
22
  constructor();
37
23
  /**
38
- * Toggle fullscreen state
24
+ * Toggle fullscreen state.
39
25
  */
40
26
  toggle(): void;
41
27
  /**
42
- * Enter fullscreen mode using CSS
28
+ * Enter fullscreen mode.
43
29
  */
44
30
  enter(): void;
45
31
  /**
46
- * Exit fullscreen mode
32
+ * Exit fullscreen mode.
47
33
  */
48
34
  exit(): void;
49
35
  /**
50
- * Check if currently in fullscreen mode
36
+ * Check if this host is currently in fullscreen mode.
51
37
  */
52
38
  isFullscreen(): boolean;
53
- /**
54
- * Store original element styles
55
- */
56
- private storeOriginalStyles;
57
- /**
58
- * Restore original element styles
59
- */
60
- private restoreOriginalStyles;
61
- /**
62
- * Convert camelCase to kebab-case for CSS properties
63
- */
64
- private camelToKebabCase;
65
- static ɵfac: i0.ɵɵFactoryDeclaration<AXFullScreenDirective, never>;
66
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXFullScreenDirective, "[axFullscreen]", ["axFullscreen"], {}, { "fullscreenChange": "fullscreenChange"; }, never, never, true, never>;
39
+ ngOnDestroy(): void;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFullScreenDirective, never>;
41
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXFullScreenDirective, "[axFullscreen]", ["axFullscreen"], { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "fullscreenChange": "fullscreenChange"; }, never, never, true, never>;
67
42
  }
68
43
 
69
44
  export { AXFullScreenDirective };
@@ -75,6 +75,8 @@ declare class AXGestureDirective implements OnDestroy {
75
75
  * Pan and swipe direction. Defaults to horizontal, matching Hammer.js.
76
76
  */
77
77
  direction: _angular_core.InputSignal<AXGestureDirection>;
78
+ /** Internal direction state; can be overridden programmatically by host directives. */
79
+ readonly gestureDirection: _angular_core.WritableSignal<AXGestureDirection>;
78
80
  /**
79
81
  * Enables the multi-touch pinch recognizer. Disabled by default.
80
82
  */
@@ -87,6 +89,11 @@ declare class AXGestureDirective implements OnDestroy {
87
89
  * Stops gesture recognition when true.
88
90
  */
89
91
  disabled: _angular_core.InputSignal<boolean>;
92
+ /**
93
+ * Maximum interval in milliseconds between taps for double-tap recognition.
94
+ * Maps to Hammer.js tap recognizer `interval`. Defaults to Hammer's built-in value (300ms).
95
+ */
96
+ tapInterval: _angular_core.InputSignal<number>;
90
97
  tap: OutputEmitterRef<AXGestureEvent>;
91
98
  doubletap: OutputEmitterRef<AXGestureEvent>;
92
99
  press: OutputEmitterRef<AXGestureEvent>;
@@ -106,6 +113,11 @@ declare class AXGestureDirective implements OnDestroy {
106
113
  * The underlying Hammer manager, or null when not initialized.
107
114
  */
108
115
  get manager(): AXGestureManager | null;
116
+ /**
117
+ * Suppresses native click propagation when Hammer.js is active so tap/doubletap
118
+ * outputs are the single source of click handling.
119
+ */
120
+ protected onHostClick(event: MouseEvent): void;
109
121
  ngOnDestroy(): void;
110
122
  private setup;
111
123
  private loadHammer;
@@ -113,7 +125,7 @@ declare class AXGestureDirective implements OnDestroy {
113
125
  private teardown;
114
126
  private readonly onHammerEvent;
115
127
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXGestureDirective, never>;
116
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXGestureDirective, "[axGesture]", ["axGesture"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "enablePinch": { "alias": "enablePinch"; "required": false; "isSignal": true; }; "enableRotate": { "alias": "enableRotate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "tap": "tap"; "doubletap": "doubletap"; "press": "press"; "pan": "pan"; "panstart": "panstart"; "panmove": "panmove"; "panend": "panend"; "swipe": "swipe"; "pinch": "pinch"; "rotate": "rotate"; }, never, never, true, never>;
128
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXGestureDirective, "[axGesture]", ["axGesture"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "enablePinch": { "alias": "enablePinch"; "required": false; "isSignal": true; }; "enableRotate": { "alias": "enableRotate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "tapInterval": { "alias": "tapInterval"; "required": false; "isSignal": true; }; }, { "tap": "tap"; "doubletap": "doubletap"; "press": "press"; "pan": "pan"; "panstart": "panstart"; "panmove": "panmove"; "panend": "panend"; "swipe": "swipe"; "pinch": "pinch"; "rotate": "rotate"; }, never, never, true, never>;
117
129
  }
118
130
 
119
131
  export { AXGestureDirective };
@@ -0,0 +1,54 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { PipeTransform } from '@angular/core';
3
+ import { AXHighlightOptions, AXHighlightSegment } from '@acorex/core/utils';
4
+
5
+ /**
6
+ * Directive that highlights text within the host element or its descendants.
7
+ *
8
+ * Usage:
9
+ * ```html
10
+ * <div [axHighlight]="query()">...</div>
11
+ * <table [axHighlight]="query()" highlightSelector="tbody td">...</table>
12
+ * ```
13
+ */
14
+ declare class AXHighlightDirective {
15
+ private readonly host;
16
+ private readonly destroyRef;
17
+ private readonly highlightService;
18
+ /**
19
+ * Text or list of texts to search and highlight.
20
+ */
21
+ readonly axHighlight: _angular_core.InputSignal<string | readonly string[]>;
22
+ /**
23
+ * Optional CSS selector scoped to the host element.
24
+ * When omitted, highlighting is applied to the host element itself.
25
+ */
26
+ readonly highlightSelector: _angular_core.InputSignal<string>;
27
+ /**
28
+ * Optional highlight behavior configuration.
29
+ */
30
+ readonly highlightOptions: _angular_core.InputSignal<AXHighlightOptions>;
31
+ /**
32
+ * When true, highlighting is disabled and any existing highlights are cleared.
33
+ */
34
+ readonly highlightDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
35
+ /**
36
+ * Emits the number of matches highlighted after each render cycle.
37
+ */
38
+ readonly matchCount: _angular_core.OutputEmitterRef<number>;
39
+ constructor();
40
+ private resolveTarget;
41
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHighlightDirective, never>;
42
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXHighlightDirective, "[axHighlight]", never, { "axHighlight": { "alias": "axHighlight"; "required": false; "isSignal": true; }; "highlightSelector": { "alias": "highlightSelector"; "required": false; "isSignal": true; }; "highlightOptions": { "alias": "highlightOptions"; "required": false; "isSignal": true; }; "highlightDisabled": { "alias": "highlightDisabled"; "required": false; "isSignal": true; }; }, { "matchCount": "matchCount"; }, never, never, true, never>;
43
+ }
44
+
45
+ /**
46
+ * Pure pipe that splits text into highlight segments for template rendering.
47
+ */
48
+ declare class AXHighlightTextPipe implements PipeTransform {
49
+ transform(text: string | null | undefined, query: string | readonly string[] | null | undefined, options?: AXHighlightOptions): AXHighlightSegment[];
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHighlightTextPipe, never>;
51
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<AXHighlightTextPipe, "axHighlightText", true>;
52
+ }
53
+
54
+ export { AXHighlightDirective, AXHighlightTextPipe };
@@ -3,8 +3,8 @@ import { OnDestroy } from '@angular/core';
3
3
  import * as i1 from '@acorex/cdk/gesture';
4
4
 
5
5
  /**
6
- * Converts vertical mouse-wheel scrolling and horizontal pan into horizontal scrolling on the host element.
7
- * Applies only when the host can scroll horizontally. Pan is provided by the hosted AXGestureDirective.
6
+ * Converts vertical mouse-wheel scrolling and pan gestures into scrolling on the host element.
7
+ * Supports horizontal and vertical orientations. Pan is provided by the hosted AXGestureDirective.
8
8
  *
9
9
  * Usage:
10
10
  * <div axHorizontalScroll [speed]="150" class="overflow-x-auto">
@@ -25,24 +25,41 @@ declare class AXHorizontalScrollDirective implements OnDestroy {
25
25
  */
26
26
  disabled: _angular_core.InputSignal<boolean>;
27
27
  /**
28
- * Horizontal scroll animation duration in milliseconds.
28
+ * Scroll axis. Horizontal converts wheel + pan; vertical uses pan only.
29
+ * @defaultValue 'horizontal'
30
+ */
31
+ orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
32
+ /** Internal orientation state; can be overridden programmatically by host components. */
33
+ readonly scrollOrientation: _angular_core.WritableSignal<"horizontal" | "vertical">;
34
+ /**
35
+ * Scroll animation duration in milliseconds.
29
36
  * Lower values scroll faster; `0` applies the scroll instantly.
30
37
  */
31
38
  speed: _angular_core.InputSignal<number>;
32
39
  private animationFrameId;
33
- private targetScrollLeft;
40
+ private targetScrollPosition;
34
41
  private scrollPosition;
35
42
  private lastFrameTime;
36
43
  private isPanning;
37
44
  private ignorePan;
38
- private panStartScrollLeft;
45
+ private panStartScrollPosition;
39
46
  private suppressClickListener;
40
47
  private suppressClickTimer;
48
+ private _isRtl;
41
49
  private readonly interactiveSelector;
42
50
  private readonly wheelListener;
51
+ protected touchAction(): string | null;
43
52
  constructor();
44
53
  ngOnDestroy(): void;
45
54
  private get nativeElement();
55
+ private isHorizontal;
56
+ private get rtlSign();
57
+ private refreshRtlState;
58
+ private getCurrentScrollPosition;
59
+ private getMaxScrollPosition;
60
+ private canScroll;
61
+ private applyScrollPosition;
62
+ private isDragInProgress;
46
63
  private handleWheel;
47
64
  private handlePanStart;
48
65
  private handlePanMove;
@@ -52,12 +69,9 @@ declare class AXHorizontalScrollDirective implements OnDestroy {
52
69
  private clearClickSuppression;
53
70
  private syncScrollState;
54
71
  private startAnimation;
55
- private applyScrollPosition;
56
72
  private stopAnimation;
57
- private canScrollHorizontally;
58
- private getMaxScrollLeft;
59
73
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHorizontalScrollDirective, never>;
60
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXHorizontalScrollDirective, "[axHorizontalScroll]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.AXGestureDirective; inputs: {}; outputs: {}; }]>;
74
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXHorizontalScrollDirective, "[axHorizontalScroll]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.AXGestureDirective; inputs: {}; outputs: {}; }]>;
61
75
  }
62
76
 
63
77
  export { AXHorizontalScrollDirective };
@@ -0,0 +1,68 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * Applies the shimmer text effect to a host element.
5
+ */
6
+ declare class AXShimmerDirective {
7
+ #private;
8
+ private readonly hostElement;
9
+ private readonly destroyRef;
10
+ private readonly platformId;
11
+ private readonly refresh;
12
+ /**
13
+ * Plays the shimmer animation once instead of looping.
14
+ *
15
+ * @defaultValue false
16
+ */
17
+ once: _angular_core.InputSignal<boolean>;
18
+ /**
19
+ * Reverses the shimmer sweep direction.
20
+ *
21
+ * @defaultValue false
22
+ */
23
+ reverse: _angular_core.InputSignal<boolean>;
24
+ /**
25
+ * Disables the shimmer effect and renders normal text.
26
+ *
27
+ * @defaultValue false
28
+ */
29
+ disabled: _angular_core.InputSignal<boolean>;
30
+ /**
31
+ * Duration of one shimmer sweep in milliseconds.
32
+ *
33
+ * @defaultValue 2000
34
+ */
35
+ duration: _angular_core.InputSignal<number>;
36
+ /**
37
+ * Width of the highlight band. Numbers use the spacing scale; strings accept any CSS length.
38
+ */
39
+ spread: _angular_core.InputSignal<string | number>;
40
+ /**
41
+ * Tilt of the highlight band in degrees.
42
+ *
43
+ * @defaultValue 20
44
+ */
45
+ angle: _angular_core.InputSignal<number>;
46
+ /**
47
+ * Explicit highlight color. Accepts ACoreX semantic colors (`primary`, `danger`, …) or any CSS color value.
48
+ * Falls back to a tint derived from currentColor when omitted.
49
+ */
50
+ color: _angular_core.InputSignal<string>;
51
+ constructor();
52
+ private get element();
53
+ private resolveSpread;
54
+ private isSemanticColor;
55
+ private resolveHighlightColor;
56
+ private isDarkMode;
57
+ private isRtl;
58
+ private prefersReducedMotion;
59
+ private buildBackgroundImage;
60
+ private applyShimmerStyles;
61
+ private clearShimmerStyles;
62
+ private restartShimmerAnimation;
63
+ private cancelShimmerAnimation;
64
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXShimmerDirective, never>;
65
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXShimmerDirective, "[axShimmer]", never, { "once": { "alias": "once"; "required": false; "isSignal": true; }; "reverse": { "alias": "reverse"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "spread": { "alias": "spread"; "required": false; "isSignal": true; }; "angle": { "alias": "angle"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
66
+ }
67
+
68
+ export { AXShimmerDirective };