@ship-ui/core 0.22.16 → 0.22.17

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.
Files changed (66) hide show
  1. package/assets/mcp/components.json +181 -39
  2. package/bin/src/subset.ts +6 -6
  3. package/bin/src/utilities.ts +14 -14
  4. package/fesm2022/ship-ui-core-ship-a11y-keybindings.mjs +4 -87
  5. package/fesm2022/ship-ui-core-ship-a11y-keybindings.mjs.map +1 -1
  6. package/fesm2022/ship-ui-core-ship-accordion.mjs +4 -3
  7. package/fesm2022/ship-ui-core-ship-accordion.mjs.map +1 -1
  8. package/fesm2022/ship-ui-core-ship-alert.mjs +1 -4
  9. package/fesm2022/ship-ui-core-ship-alert.mjs.map +1 -1
  10. package/fesm2022/ship-ui-core-ship-blueprint.mjs +8 -10
  11. package/fesm2022/ship-ui-core-ship-blueprint.mjs.map +1 -1
  12. package/fesm2022/ship-ui-core-ship-checkbox.mjs +3 -2
  13. package/fesm2022/ship-ui-core-ship-checkbox.mjs.map +1 -1
  14. package/fesm2022/ship-ui-core-ship-color-picker.mjs +66 -62
  15. package/fesm2022/ship-ui-core-ship-color-picker.mjs.map +1 -1
  16. package/fesm2022/ship-ui-core-ship-datepicker.mjs +8 -12
  17. package/fesm2022/ship-ui-core-ship-datepicker.mjs.map +1 -1
  18. package/fesm2022/ship-ui-core-ship-editor.mjs +0 -42
  19. package/fesm2022/ship-ui-core-ship-editor.mjs.map +1 -1
  20. package/fesm2022/ship-ui-core-ship-form-field.mjs +0 -1
  21. package/fesm2022/ship-ui-core-ship-form-field.mjs.map +1 -1
  22. package/fesm2022/ship-ui-core-ship-kbd.mjs +0 -6
  23. package/fesm2022/ship-ui-core-ship-kbd.mjs.map +1 -1
  24. package/fesm2022/ship-ui-core-ship-list-item-swipe.mjs +241 -0
  25. package/fesm2022/ship-ui-core-ship-list-item-swipe.mjs.map +1 -0
  26. package/fesm2022/ship-ui-core-ship-menu.mjs +7 -10
  27. package/fesm2022/ship-ui-core-ship-menu.mjs.map +1 -1
  28. package/fesm2022/ship-ui-core-ship-popover.mjs +1 -20
  29. package/fesm2022/ship-ui-core-ship-popover.mjs.map +1 -1
  30. package/fesm2022/ship-ui-core-ship-radio.mjs +3 -2
  31. package/fesm2022/ship-ui-core-ship-radio.mjs.map +1 -1
  32. package/fesm2022/ship-ui-core-ship-range-slider.mjs +7 -9
  33. package/fesm2022/ship-ui-core-ship-range-slider.mjs.map +1 -1
  34. package/fesm2022/ship-ui-core-ship-select.mjs.map +1 -1
  35. package/fesm2022/ship-ui-core-ship-sidenav.mjs +2 -2
  36. package/fesm2022/ship-ui-core-ship-sidenav.mjs.map +1 -1
  37. package/fesm2022/ship-ui-core-ship-sortable.mjs +262 -68
  38. package/fesm2022/ship-ui-core-ship-sortable.mjs.map +1 -1
  39. package/fesm2022/ship-ui-core-ship-spotlight.mjs +0 -11
  40. package/fesm2022/ship-ui-core-ship-spotlight.mjs.map +1 -1
  41. package/fesm2022/ship-ui-core-ship-stepper.mjs +1 -1
  42. package/fesm2022/ship-ui-core-ship-stepper.mjs.map +1 -1
  43. package/fesm2022/ship-ui-core-ship-table.mjs +4 -5
  44. package/fesm2022/ship-ui-core-ship-table.mjs.map +1 -1
  45. package/fesm2022/ship-ui-core-ship-toggle.mjs +3 -2
  46. package/fesm2022/ship-ui-core-ship-toggle.mjs.map +1 -1
  47. package/fesm2022/ship-ui-core-ship-tree.mjs +1 -9
  48. package/fesm2022/ship-ui-core-ship-tree.mjs.map +1 -1
  49. package/fesm2022/ship-ui-core.mjs +37 -53
  50. package/fesm2022/ship-ui-core.mjs.map +1 -1
  51. package/package.json +5 -1
  52. package/types/ship-ui-core-ship-a11y-keybindings.d.ts +0 -55
  53. package/types/ship-ui-core-ship-accordion.d.ts +7 -7
  54. package/types/ship-ui-core-ship-blueprint.d.ts +1 -1
  55. package/types/ship-ui-core-ship-checkbox.d.ts +2 -3
  56. package/types/ship-ui-core-ship-color-picker.d.ts +1 -25
  57. package/types/ship-ui-core-ship-datepicker.d.ts +0 -3
  58. package/types/ship-ui-core-ship-editor.d.ts +10 -10
  59. package/types/ship-ui-core-ship-list-item-swipe.d.ts +25 -0
  60. package/types/ship-ui-core-ship-menu.d.ts +1 -2
  61. package/types/ship-ui-core-ship-radio.d.ts +2 -3
  62. package/types/ship-ui-core-ship-range-slider.d.ts +6 -6
  63. package/types/ship-ui-core-ship-sortable.d.ts +31 -9
  64. package/types/ship-ui-core-ship-toggle.d.ts +2 -3
  65. package/types/ship-ui-core-ship-tree.d.ts +20 -25
  66. package/types/ship-ui-core.d.ts +17 -24
@@ -7,7 +7,7 @@ type B = number;
7
7
  type A = number;
8
8
  declare class ShipColorPicker {
9
9
  #private;
10
- readonly canvasRef: _angular_core.Signal<ElementRef<HTMLCanvasElement>>;
10
+ canvasRef: _angular_core.Signal<ElementRef<HTMLCanvasElement>>;
11
11
  showDarkColors: _angular_core.InputSignal<boolean>;
12
12
  renderingType: _angular_core.InputSignal<"hsl" | "grid" | "hue" | "rgb" | "saturation" | "alpha">;
13
13
  gridSize: _angular_core.InputSignal<number>;
@@ -43,29 +43,10 @@ declare class ShipColorPicker {
43
43
  alphaEffect: _angular_core.EffectRef;
44
44
  _prevColorStr: string;
45
45
  selectedColorEffect: _angular_core.EffectRef;
46
- private alphaColorRedrawEffect;
47
46
  onResize(): void;
48
- private previousLayoutHash;
49
- private previousHue;
50
- private getLayoutHash;
51
- private renderingTypeEffect;
52
47
  initColor: [R, G, B, A?] | null;
53
48
  ngAfterViewInit(): void;
54
49
  ngOnDestroy(): void;
55
- private updateMarkerFromColor;
56
- private findPositionByColor;
57
- private adjustMarkerPosition;
58
- private initCanvasEvents;
59
- private setCanvasSize;
60
- private getColorAtPosition;
61
- private updateColorAndMarker;
62
- private drawColorPicker;
63
- private drawAlpha;
64
- private drawRgb;
65
- private drawSaturation;
66
- private drawHue;
67
- private drawColorWheel;
68
- private drawGrid;
69
50
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipColorPicker, never>;
70
51
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipColorPicker, "sh-color-picker", never, { "showDarkColors": { "alias": "showDarkColors"; "required": false; "isSignal": true; }; "renderingType": { "alias": "renderingType"; "required": false; "isSignal": true; }; "gridSize": { "alias": "gridSize"; "required": false; "isSignal": true; }; "hue": { "alias": "hue"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "selectedColor": { "alias": "selectedColor"; "required": false; "isSignal": true; }; "alpha": { "alias": "alpha"; "required": false; "isSignal": true; }; }, { "hue": "hueChange"; "selectedColor": "selectedColorChange"; "alpha": "alphaChange"; "currentColor": "currentColor"; }, never, never, true, never>;
71
52
  }
@@ -93,11 +74,6 @@ declare class ShipColorPickerInput {
93
74
  onHuePickerChange(colorObj: any): void;
94
75
  openEyeDropper(event: MouseEvent): Promise<void>;
95
76
  close(): void;
96
- private parseAndSetColor;
97
- private hslToRgbExact;
98
- private rgbToHex;
99
- private rgbaToHex8;
100
- private rgbToHsl;
101
77
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipColorPickerInput, never>;
102
78
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipColorPickerInput, "sh-color-picker-input", never, { "renderingType": { "alias": "renderingType"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "showEyeDropper": { "alias": "showEyeDropper"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "isOpen": "isOpenChange"; }, never, ["label", "[prefix]", "[textPrefix]", "input", "[textSuffix]", "[suffix]"], true, never>;
103
79
  }
@@ -84,12 +84,9 @@ declare class ShipDaterangeInput {
84
84
  _maskedStartDate: _angular_core.Signal<string | null>;
85
85
  _maskedEndDate: _angular_core.Signal<string | null>;
86
86
  constructor();
87
- private setupInput;
88
87
  onFocusOut(event: FocusEvent): void;
89
88
  onStartDateChange(date: Date | null): void;
90
89
  onEndDateChange(date: Date | null): void;
91
- private updateInputValue;
92
- private dispatchInputEvent;
93
90
  close(): void;
94
91
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipDaterangeInput, never>;
95
92
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipDaterangeInput, "sh-daterange-input", never, { "monthsToShow": { "alias": "monthsToShow"; "required": false; "isSignal": true; }; "masking": { "alias": "masking"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "isOpen": "isOpenChange"; }, never, ["label", "[prefix]", "[textPrefix]", "input", "[textSuffix]", "[suffix]"], true, never>;
@@ -112,10 +112,10 @@ declare class ShipEditor implements ControlValueAccessor, OnInit, OnDestroy, Aft
112
112
  registerOnChange(fn: (value: ShipEditorValue) => void): void;
113
113
  registerOnTouched(fn: () => void): void;
114
114
  setDisabledState(isDisabled: boolean): void;
115
- protected onDOMInput(): void;
116
- protected onDOMBlur(): void;
117
- protected onCodeInput(event: Event): void;
118
- protected onCodeBlur(event: Event): void;
115
+ onDOMInput(): void;
116
+ onDOMBlur(): void;
117
+ onCodeInput(event: Event): void;
118
+ onCodeBlur(event: Event): void;
119
119
  formatText(command: string, value?: string): void;
120
120
  applyInlineStyle(tag: string): void;
121
121
  toggleLink(url: string): void;
@@ -126,12 +126,12 @@ declare class ShipEditor implements ControlValueAccessor, OnInit, OnDestroy, Aft
126
126
  removeFormat(): void;
127
127
  undo(): void;
128
128
  redo(): void;
129
- protected toggleViewMode(): void;
130
- protected onSelectionChange(): void;
129
+ toggleViewMode(): void;
130
+ onSelectionChange(): void;
131
131
  openLinkModal(): void;
132
- protected applyLink(url: string): void;
132
+ applyLink(url: string): void;
133
133
  openImageModal(): void;
134
- protected applyImage(url: string): void;
134
+ applyImage(url: string): void;
135
135
  selectedImage: _angular_core.Signal<HTMLImageElement | null>;
136
136
  onComponentFocusIn(event: FocusEvent): void;
137
137
  onComponentClick(event: MouseEvent): void;
@@ -141,8 +141,8 @@ declare class ShipEditor implements ControlValueAccessor, OnInit, OnDestroy, Aft
141
141
  getBlockLabel(): string;
142
142
  toggleBlockMenu(): void;
143
143
  selectBlockType(tag: string): void;
144
- protected onToolbarKeyDown(event: KeyboardEvent): void;
145
- protected onToolbarFocusIn(event: FocusEvent): void;
144
+ onToolbarKeyDown(event: KeyboardEvent): void;
145
+ onToolbarFocusIn(event: FocusEvent): void;
146
146
  onComponentScroll(event: Event): void;
147
147
  onWindowResize(): void;
148
148
  updateImgToolbarPosition(): void;
@@ -0,0 +1,25 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, ElementRef } from '@angular/core';
3
+
4
+ declare class ShipListItemSwipeService {
5
+ activeSwipeItem: ShipListItemSwipe | null;
6
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipListItemSwipeService, never>;
7
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ShipListItemSwipeService>;
8
+ }
9
+ declare class ShipListItemSwipe implements OnDestroy {
10
+ #private;
11
+ contentEl: _angular_core.Signal<ElementRef<HTMLElement>>;
12
+ actionsLeftEl: _angular_core.Signal<ElementRef<HTMLElement>>;
13
+ actionsRightEl: _angular_core.Signal<ElementRef<HTMLElement>>;
14
+ swipeThreshold: _angular_core.InputSignal<number>;
15
+ swipeOpen: _angular_core.OutputEmitterRef<"left" | "right">;
16
+ swipeClose: _angular_core.OutputEmitterRef<void>;
17
+ onTouchStart(e: TouchEvent): void;
18
+ open(side: 'left' | 'right'): void;
19
+ close(): void;
20
+ ngOnDestroy(): void;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipListItemSwipe, never>;
22
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipListItemSwipe, "sh-list-item-swipe", never, { "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; }, { "swipeOpen": "swipeOpen"; "swipeClose": "swipeClose"; }, never, ["button[actionLeft]", "button[actionRight]", "*"], true, never>;
23
+ }
24
+
25
+ export { ShipListItemSwipe, ShipListItemSwipeService };
@@ -17,7 +17,6 @@ declare class ShipMenu {
17
17
  activeOptionIndex: _angular_core.WritableSignal<number>;
18
18
  inputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
19
19
  optionsRef: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
20
- private static openMenus;
21
20
  openMenusEffect: _angular_core.EffectRef;
22
21
  options: {
23
22
  signal: _angular_core.Signal<HTMLButtonElement[]>;
@@ -25,7 +24,7 @@ declare class ShipMenu {
25
24
  };
26
25
  optionsEl: _angular_core.Signal<HTMLButtonElement[]>;
27
26
  inputValue: _angular_core.WritableSignal<string | undefined>;
28
- readonly optionsId: string;
27
+ optionsId: string;
29
28
  activeOptionId: _angular_core.WritableSignal<string | undefined>;
30
29
  abortController: AbortController | null;
31
30
  optionsEffect: _angular_core.EffectRef;
@@ -3,7 +3,6 @@ import { ElementRef } from '@angular/core';
3
3
 
4
4
  declare class ShipRadio {
5
5
  #private;
6
- private readonly _elementRef;
7
6
  internalInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
8
7
  projectedInputs: _angular_core.Signal<HTMLInputElement[]>;
9
8
  checked: _angular_core.ModelSignal<boolean>;
@@ -13,9 +12,9 @@ declare class ShipRadio {
13
12
  readonly: _angular_core.InputSignal<boolean>;
14
13
  disabled: _angular_core.InputSignal<boolean>;
15
14
  noInternalInput: _angular_core.InputSignal<boolean>;
16
- protected onInternalInputChange(event: Event): void;
15
+ onInternalInputChange(event: Event): void;
17
16
  hostClasses: _angular_core.Signal<string>;
18
- protected onKeyDown(event: KeyboardEvent): void;
17
+ onKeyDown(event: KeyboardEvent): void;
19
18
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipRadio, never>;
20
19
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipRadio, "sh-radio", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "noInternalInput": { "alias": "noInternalInput"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
21
20
  }
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
 
3
3
  declare class ShipRangeSlider {
4
4
  #private;
5
+ hasInput: _angular_core.WritableSignal<boolean>;
5
6
  unit: _angular_core.InputSignal<string>;
6
7
  value: _angular_core.ModelSignal<number>;
7
8
  inputState: _angular_core.WritableSignal<{
@@ -9,17 +10,16 @@ declare class ShipRangeSlider {
9
10
  max: number;
10
11
  step: number;
11
12
  }>;
12
- readonly color: _angular_core.InputSignal<"" | "primary" | "accent" | "warn" | "error" | "success" | null>;
13
- readonly variant: _angular_core.InputSignal<"" | "simple" | "base" | "thick" | "outlined" | "flat" | "raised" | null>;
14
- readonly size: _angular_core.InputSignal<"" | "small" | "xsmall" | null>;
15
- readonly sharp: _angular_core.InputSignal<boolean | undefined>;
16
- readonly alwaysShow: _angular_core.InputSignal<boolean | undefined>;
13
+ color: _angular_core.InputSignal<"" | "primary" | "accent" | "warn" | "error" | "success" | null>;
14
+ variant: _angular_core.InputSignal<"" | "simple" | "base" | "thick" | "outlined" | "flat" | "raised" | null>;
15
+ size: _angular_core.InputSignal<"" | "small" | "xsmall" | null>;
16
+ sharp: _angular_core.InputSignal<boolean | undefined>;
17
+ alwaysShow: _angular_core.InputSignal<boolean | undefined>;
17
18
  hostClasses: _angular_core.Signal<string>;
18
19
  valuePercentage: _angular_core.Signal<number>;
19
20
  trackFilledPercentage: _angular_core.Signal<number>;
20
21
  thumbPositionPercentage: _angular_core.Signal<number>;
21
22
  syncModelToInputEffect: _angular_core.EffectRef;
22
- get hasInputElement(): boolean;
23
23
  ngAfterViewInit(): void;
24
24
  setNewInputValue(value: string): void;
25
25
  trackEvent(e: MouseEvent): void;
@@ -2,6 +2,14 @@ import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnDestroy, WritableSignal } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
4
 
5
+ declare class ShipSortableService {
6
+ activeSource: ShipSortable | null;
7
+ activeDraggedElement: HTMLElement | null;
8
+ activeTarget: ShipSortable | null;
9
+ activeInstances: Set<ShipSortable>;
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipSortableService, never>;
11
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ShipSortableService>;
12
+ }
5
13
  type AfterDropResponse = {
6
14
  fromIndex: number;
7
15
  toIndex: number;
@@ -24,10 +32,6 @@ type ShipTreeDropEvent = {
24
32
  position: 'before' | 'after' | 'inside';
25
33
  };
26
34
  interface SortableManagerConfig {
27
- /**
28
- * If provided, this hook is evaluated before the Signals are modified.
29
- * Return `true`/`Observable<true>` to accept the drop, or false to reject.
30
- */
31
35
  onBeforeDrop?: (event: ShipDropEvent) => boolean | Promise<boolean> | Observable<boolean>;
32
36
  }
33
37
  declare function createSortableManager<T>(signals: WritableSignal<T[]> | Record<string, WritableSignal<T[]>>, config?: SortableManagerConfig): {
@@ -39,6 +43,8 @@ declare class ShipSortable implements OnInit, OnDestroy {
39
43
  sortableGroup: _angular_core.InputSignal<string | undefined>;
40
44
  sortingMode: _angular_core.InputSignal<"list" | "grid" | "tree">;
41
45
  treeItems: _angular_core.ModelSignal<any[]>;
46
+ touchEnabled: _angular_core.InputSignal<boolean>;
47
+ touchActivation: _angular_core.InputSignal<"longpress" | "handle" | "none">;
42
48
  sortDrop: _angular_core.OutputEmitterRef<ShipDropEvent>;
43
49
  afterDrop: _angular_core.OutputEmitterRef<AfterDropResponse>;
44
50
  crossDrop: _angular_core.OutputEmitterRef<CrossDropResponse>;
@@ -54,26 +60,42 @@ declare class ShipSortable implements OnInit, OnDestroy {
54
60
  height: number;
55
61
  }[]>;
56
62
  dragables: WritableSignal<HTMLElement[]>;
57
- static activeSource: ShipSortable | null;
58
- static activeDraggedElement: HTMLElement | null;
59
- static activeTarget: ShipSortable | null;
60
63
  abortController: AbortController | null;
61
64
  isDropping: boolean;
62
65
  isCrossTarget: boolean;
66
+ touchDragTimer: any;
67
+ touchStartCoordinates: {
68
+ x: number;
69
+ y: number;
70
+ } | null;
71
+ isTouchDragging: boolean;
72
+ touchGhostEl: HTMLElement | null;
73
+ touchOffset: {
74
+ x: number;
75
+ y: number;
76
+ };
63
77
  draggingEffect: _angular_core.EffectRef;
64
78
  draggablesEffect: _angular_core.EffectRef;
65
79
  getIndexOfElement(element: HTMLElement): number;
66
80
  dragStart(e: DragEvent): void;
67
81
  ngOnInit(): void;
68
82
  dragEnter(e: DragEvent): void;
83
+ processDragEnter(): void;
69
84
  dragLeave(e: DragEvent): void;
85
+ processDragLeave(clientX: number, clientY: number, relatedTarget: Node | null, force?: boolean): void;
70
86
  dragOver(e: DragEvent): void;
87
+ processDragOver(clientX: number, clientY: number, targetElementUnderTouch?: HTMLElement): void;
88
+ onTouchStart(e: TouchEvent, el: HTMLElement): void;
89
+ startTouchDrag(touch: Touch, el: HTMLElement): void;
90
+ onTouchMove(e: TouchEvent): void;
91
+ onTouchEnd(e: TouchEvent): void;
92
+ cancelTouchDrag(): void;
71
93
  getVisualIndexOfElement(i: number): number;
72
94
  drop(): void;
73
95
  dragEnd(): void;
74
96
  ngOnDestroy(): void;
75
97
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipSortable, never>;
76
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipSortable, "[shSortable]", never, { "shSortable": { "alias": "shSortable"; "required": false; "isSignal": true; }; "sortableGroup": { "alias": "sortableGroup"; "required": false; "isSignal": true; }; "sortingMode": { "alias": "sortingMode"; "required": false; "isSignal": true; }; "treeItems": { "alias": "treeItems"; "required": false; "isSignal": true; }; }, { "treeItems": "treeItemsChange"; "sortDrop": "sortDrop"; "afterDrop": "afterDrop"; "crossDrop": "crossDrop"; "treeDrop": "treeDrop"; }, never, never, true, never>;
98
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipSortable, "[shSortable]", never, { "shSortable": { "alias": "shSortable"; "required": false; "isSignal": true; }; "sortableGroup": { "alias": "sortableGroup"; "required": false; "isSignal": true; }; "sortingMode": { "alias": "sortingMode"; "required": false; "isSignal": true; }; "treeItems": { "alias": "treeItems"; "required": false; "isSignal": true; }; "touchEnabled": { "alias": "touchEnabled"; "required": false; "isSignal": true; }; "touchActivation": { "alias": "touchActivation"; "required": false; "isSignal": true; }; }, { "treeItems": "treeItemsChange"; "sortDrop": "sortDrop"; "afterDrop": "afterDrop"; "crossDrop": "crossDrop"; "treeDrop": "treeDrop"; }, never, never, true, never>;
77
99
  }
78
100
  declare function moveIndex<T = any>(array: T[], event: Pick<ShipDropEvent, 'previousIndex' | 'currentIndex'> | Pick<AfterDropResponse, 'fromIndex' | 'toIndex'>): T[];
79
101
  declare function transferArrayItem<T = any>(currentArray: T[], targetArray: T[], currentIndex: number, targetIndex: number): void;
@@ -92,5 +114,5 @@ declare function createTreeSortableManager<T>(nodesSignal: WritableSignal<T[]>,
92
114
  drop(event: ShipTreeDropEvent, visibleNodesList: T[]): void;
93
115
  };
94
116
 
95
- export { ShipSortable, createSortableManager, createTreeSortableManager, moveIndex, transferArrayItem };
117
+ export { ShipSortable, ShipSortableService, createSortableManager, createTreeSortableManager, moveIndex, transferArrayItem };
96
118
  export type { AfterDropResponse, CrossDropResponse, ShipDropEvent, ShipTreeDropEvent, SortableManagerConfig, TreeSortableManagerConfig };
@@ -3,7 +3,6 @@ import { ElementRef } from '@angular/core';
3
3
 
4
4
  declare class ShipToggle {
5
5
  #private;
6
- private readonly _elementRef;
7
6
  internalInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
8
7
  projectedInputs: _angular_core.Signal<HTMLInputElement[]>;
9
8
  checked: _angular_core.ModelSignal<boolean>;
@@ -12,9 +11,9 @@ declare class ShipToggle {
12
11
  readonly: _angular_core.InputSignal<boolean>;
13
12
  disabled: _angular_core.InputSignal<boolean>;
14
13
  noInternalInput: _angular_core.InputSignal<boolean>;
15
- protected onInternalInputChange(event: Event): void;
14
+ onInternalInputChange(event: Event): void;
16
15
  hostClasses: _angular_core.Signal<string>;
17
- protected onKeyDown(event: KeyboardEvent): void;
16
+ onKeyDown(event: KeyboardEvent): void;
18
17
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipToggle, never>;
19
18
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipToggle, "sh-toggle", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "noInternalInput": { "alias": "noInternalInput"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
20
19
  }
@@ -2,49 +2,44 @@ import * as _angular_core from '@angular/core';
2
2
  import { ElementRef, TemplateRef } from '@angular/core';
3
3
 
4
4
  declare class ShipTreeOpenIcon {
5
- readonly el: ElementRef<any>;
5
+ el: ElementRef<any>;
6
6
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipTreeOpenIcon, never>;
7
7
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipTreeOpenIcon, "sh-icon[openIcon]", never, {}, {}, never, never, true, never>;
8
8
  }
9
9
  declare class ShipTreeClosedIcon {
10
- readonly el: ElementRef<any>;
10
+ el: ElementRef<any>;
11
11
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipTreeClosedIcon, never>;
12
12
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipTreeClosedIcon, "sh-icon[closedIcon]", never, {}, {}, never, never, true, never>;
13
13
  }
14
14
  declare class ShipTreeItemIcon {
15
- readonly el: ElementRef<any>;
15
+ el: ElementRef<any>;
16
16
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipTreeItemIcon, never>;
17
17
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipTreeItemIcon, "sh-icon[itemIcon]", never, {}, {}, never, never, true, never>;
18
18
  }
19
19
  declare class ShipTree {
20
- /** The flat list of all tree nodes. */
21
- readonly items: _angular_core.ModelSignal<any[]>;
22
- /** Optional Writable/Readable WritableSignal manager created by createTreeSortableManager. */
23
- readonly sortableManager: _angular_core.InputSignal<any>;
24
- /** Currently selected node ID. */
25
- readonly selectedId: _angular_core.ModelSignal<string | null>;
26
- readonly getId: _angular_core.InputSignal<(item: any) => string>;
27
- readonly getName: _angular_core.InputSignal<(item: any) => string>;
28
- readonly getParentId: _angular_core.InputSignal<(item: any) => string | null>;
29
- readonly isFolder: _angular_core.InputSignal<(item: any) => boolean>;
30
- readonly getIsOpen: _angular_core.InputSignal<(item: any) => boolean>;
31
- readonly setIsOpen: _angular_core.InputSignal<(item: any, isOpen: boolean) => void>;
32
- /** Function returning a custom icon name for a node. */
33
- readonly getIcon: _angular_core.InputSignal<(item: any) => string | null>;
34
- readonly openIconDir: _angular_core.Signal<ShipTreeOpenIcon | undefined>;
35
- readonly closedIconDir: _angular_core.Signal<ShipTreeClosedIcon | undefined>;
36
- readonly itemIconDir: _angular_core.Signal<ShipTreeItemIcon | undefined>;
20
+ items: _angular_core.ModelSignal<any[]>;
21
+ sortableManager: _angular_core.InputSignal<any>;
22
+ selectedId: _angular_core.ModelSignal<string | null>;
23
+ getId: _angular_core.InputSignal<(item: any) => string>;
24
+ getName: _angular_core.InputSignal<(item: any) => string>;
25
+ getParentId: _angular_core.InputSignal<(item: any) => string | null>;
26
+ isFolder: _angular_core.InputSignal<(item: any) => boolean>;
27
+ getIsOpen: _angular_core.InputSignal<(item: any) => boolean>;
28
+ setIsOpen: _angular_core.InputSignal<(item: any, isOpen: boolean) => void>;
29
+ getIcon: _angular_core.InputSignal<(item: any) => string | null>;
30
+ openIconDir: _angular_core.Signal<ShipTreeOpenIcon | undefined>;
31
+ closedIconDir: _angular_core.Signal<ShipTreeClosedIcon | undefined>;
32
+ itemIconDir: _angular_core.Signal<ShipTreeItemIcon | undefined>;
37
33
  openIconName: _angular_core.Signal<any>;
38
34
  closedIconName: _angular_core.Signal<any>;
39
35
  itemIconName: _angular_core.Signal<any>;
40
- readonly nodeClick: _angular_core.OutputEmitterRef<any>;
41
- readonly nodeToggle: _angular_core.OutputEmitterRef<{
36
+ nodeClick: _angular_core.OutputEmitterRef<any>;
37
+ nodeToggle: _angular_core.OutputEmitterRef<{
42
38
  node: any;
43
39
  isOpen: boolean;
44
40
  }>;
45
- readonly nodeTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
46
- readonly dirTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
47
- /** Filter the full flat array down to only visible nodes (whose parents are all expanded). */
41
+ nodeTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
42
+ dirTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
48
43
  visibleNodes: _angular_core.Signal<any>;
49
44
  toggleNode(node: any, event: MouseEvent): void;
50
45
  handleNodeClick(node: any, event: MouseEvent): void;
@@ -34,33 +34,26 @@ declare class ShipTooltipWrapper {
34
34
  isOpen: _angular_core.InputSignal<boolean>;
35
35
  content: _angular_core.InputSignal<string | TemplateRef<any> | null | undefined>;
36
36
  close: _angular_core.InputSignal<() => void>;
37
- protected tooltipContext: {
37
+ tooltipContext: {
38
38
  close: () => void;
39
39
  };
40
40
  isTemplate: _angular_core.Signal<boolean>;
41
- readonly SUPPORTS_ANCHOR: boolean;
41
+ SUPPORTS_ANCHOR: boolean;
42
42
  isBelow: _angular_core.WritableSignal<boolean>;
43
43
  openEffect: _angular_core.EffectRef;
44
44
  ngOnDestroy(): void;
45
- private calculateTooltipPosition;
46
45
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipTooltipWrapper, never>;
47
46
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipTooltipWrapper, "ship-tooltip-wrapper", never, { "positionAnchorName": { "alias": "positionAnchorName"; "required": true; "isSignal": true; }; "anchorEl": { "alias": "anchorEl"; "required": true; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "close": { "alias": "close"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
48
47
  }
49
48
  declare class ShipTooltip implements OnDestroy {
50
49
  #private;
51
50
  shTooltip: _angular_core.InputSignal<string | TemplateRef<any> | null | undefined>;
52
- private debounceTimer;
53
- private readonly DEBOUNCE_DELAY;
54
- readonly anchorName: string;
51
+ anchorName: string;
55
52
  isOpen: _angular_core.WritableSignal<boolean>;
56
53
  onMouseEnter(event: MouseEvent): void;
57
54
  onMouseLeave(event: MouseEvent): void;
58
55
  ngOnDestroy(): void;
59
- private startCleanupTimer;
60
- private cancelCleanupTimer;
61
- private showTooltip;
62
56
  destroyTimeout: Timeout | null;
63
- private cleanupTooltip;
64
57
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipTooltip, never>;
65
58
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipTooltip, "[shTooltip]", never, { "shTooltip": { "alias": "shTooltip"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
66
59
  }
@@ -219,25 +212,25 @@ interface ShipConfig {
219
212
 
220
213
  declare abstract class ShipSelectionGroup<T = any> {
221
214
  #private;
222
- protected readonly itemSelector: string;
223
- protected readonly activeClass: string;
224
- protected readonly options?: {
215
+ hostElement: any;
216
+ items: _angular_core.Signal<HTMLElement[]>;
217
+ value: _angular_core.ModelSignal<T | null>;
218
+ closable: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
219
+ manualActivation: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
220
+ itemSelector: string;
221
+ activeClass: string;
222
+ options?: {
225
223
  hostRole?: string;
226
224
  itemRole?: string;
227
- activeAttribute?: "aria-selected" | "aria-pressed" | "aria-checked";
228
- } | undefined;
229
- protected readonly hostElement: any;
230
- protected items: _angular_core.Signal<HTMLElement[]>;
231
- readonly value: _angular_core.ModelSignal<T | null>;
232
- readonly closable: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
233
- readonly manualActivation: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
225
+ activeAttribute?: 'aria-selected' | 'aria-pressed' | 'aria-checked';
226
+ };
234
227
  constructor(itemSelector: string, activeClass: string, options?: {
235
228
  hostRole?: string;
236
229
  itemRole?: string;
237
- activeAttribute?: "aria-selected" | "aria-pressed" | "aria-checked";
238
- } | undefined);
239
- protected onClick(target: EventTarget | null): void;
240
- protected onKeyDown(event: KeyboardEvent): void;
230
+ activeAttribute?: 'aria-selected' | 'aria-pressed' | 'aria-checked';
231
+ });
232
+ onClick(target: EventTarget | null): void;
233
+ onKeyDown(event: KeyboardEvent): void;
241
234
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipSelectionGroup<any>, never>;
242
235
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShipSelectionGroup<any>, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "manualActivation": { "alias": "manualActivation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
243
236
  }