ng-primitives 0.121.0 → 0.123.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/fesm2022/ng-primitives-combobox.mjs +23 -4
- package/fesm2022/ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/ng-primitives-context-menu.mjs +9 -3
- package/fesm2022/ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-date-picker.mjs +1 -1
- package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
- package/fesm2022/ng-primitives-internal.mjs +184 -3
- package/fesm2022/ng-primitives-internal.mjs.map +1 -1
- package/fesm2022/ng-primitives-menu.mjs +139 -21
- package/fesm2022/ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-navigation-menu.mjs +6 -2
- package/fesm2022/ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-popover.mjs +8 -3
- package/fesm2022/ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/ng-primitives-portal.mjs +74 -12
- package/fesm2022/ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/ng-primitives-select.mjs +17 -3
- package/fesm2022/ng-primitives-select.mjs.map +1 -1
- package/fesm2022/ng-primitives-toast.mjs +15 -12
- package/fesm2022/ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/ng-primitives-tooltip.mjs +28 -123
- package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs +40 -23
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +2 -2
- package/types/ng-primitives-combobox.d.ts +11 -1
- package/types/ng-primitives-context-menu.d.ts +16 -3
- package/types/ng-primitives-internal.d.ts +95 -3
- package/types/ng-primitives-menu.d.ts +58 -11
- package/types/ng-primitives-navigation-menu.d.ts +22 -9
- package/types/ng-primitives-popover.d.ts +9 -2
- package/types/ng-primitives-portal.d.ts +31 -1
- package/types/ng-primitives-select.d.ts +9 -2
- package/types/ng-primitives-toast.d.ts +4 -3
- package/types/ng-primitives-tooltip.d.ts +24 -17
- package/types/ng-primitives-utils.d.ts +12 -9
|
@@ -7,6 +7,8 @@ import { Placement } from '@floating-ui/dom';
|
|
|
7
7
|
import { NumberInput, BooleanInput } from '@angular/cdk/coercion';
|
|
8
8
|
import * as ng_primitives_state from 'ng-primitives/state';
|
|
9
9
|
import { StateInjectionOptions } from 'ng-primitives/state';
|
|
10
|
+
import * as ng_primitives_internal from 'ng-primitives/internal';
|
|
11
|
+
import { HoverBridgePoint } from 'ng-primitives/internal';
|
|
10
12
|
|
|
11
13
|
interface NgpTooltipConfig {
|
|
12
14
|
/**
|
|
@@ -115,16 +117,11 @@ declare const provideTooltipArrowState: (opts?: {
|
|
|
115
117
|
inherit?: boolean;
|
|
116
118
|
}) => _angular_core.FactoryProvider;
|
|
117
119
|
|
|
118
|
-
interface TooltipHoverBridgePoint {
|
|
119
|
-
x: number;
|
|
120
|
-
y: number;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
120
|
interface NgpTooltipTriggerState<T> {
|
|
124
121
|
/** Access the tooltip template ref. */
|
|
125
122
|
readonly tooltip: WritableSignal<NgpOverlayContent<T> | string | null>;
|
|
126
123
|
/**
|
|
127
|
-
*
|
|
124
|
+
* Whether the tooltip is disabled. This allows the tooltip to be enabled or disabled dynamically.
|
|
128
125
|
* @default false
|
|
129
126
|
*/
|
|
130
127
|
readonly disabled: Signal<boolean>;
|
|
@@ -165,7 +162,7 @@ interface NgpTooltipTriggerState<T> {
|
|
|
165
162
|
* Define the container in which the tooltip should be attached.
|
|
166
163
|
* @default document.body
|
|
167
164
|
*/
|
|
168
|
-
readonly container:
|
|
165
|
+
readonly container: WritableSignal<HTMLElement | string | null>;
|
|
169
166
|
/**
|
|
170
167
|
* Define whether the tooltip should only show when the trigger element overflows.
|
|
171
168
|
* @default false
|
|
@@ -240,7 +237,7 @@ interface NgpTooltipTriggerState<T> {
|
|
|
240
237
|
/**
|
|
241
238
|
* Current pointer grace polygon used while crossing trigger -> tooltip.
|
|
242
239
|
*/
|
|
243
|
-
readonly hoverBridgePolygon: Signal<
|
|
240
|
+
readonly hoverBridgePolygon: Signal<HoverBridgePoint[] | null>;
|
|
244
241
|
/**
|
|
245
242
|
* Show the tooltip programmatically (skips cooldown so multiple tooltips can coexist).
|
|
246
243
|
*/
|
|
@@ -253,6 +250,13 @@ interface NgpTooltipTriggerState<T> {
|
|
|
253
250
|
* Set the tooltip id.
|
|
254
251
|
*/
|
|
255
252
|
setTooltipId: (id: string) => void;
|
|
253
|
+
/**
|
|
254
|
+
* Set the container in which the tooltip should be attached. Takes effect the
|
|
255
|
+
* next time the tooltip is shown; it does not move a tooltip that is already
|
|
256
|
+
* visible.
|
|
257
|
+
* @param container - The new container
|
|
258
|
+
*/
|
|
259
|
+
setContainer: (container: HTMLElement | string | null) => void;
|
|
256
260
|
/**
|
|
257
261
|
* Called by tooltip content when pointer enters the tooltip.
|
|
258
262
|
* @internal
|
|
@@ -269,7 +273,7 @@ interface NgpTooltipTriggerProps<T> {
|
|
|
269
273
|
/** Access the tooltip template ref. */
|
|
270
274
|
readonly tooltip?: Signal<NgpOverlayContent<T> | string | null>;
|
|
271
275
|
/**
|
|
272
|
-
*
|
|
276
|
+
* Whether the tooltip is disabled. This allows the tooltip to be enabled or disabled dynamically.
|
|
273
277
|
* @default false
|
|
274
278
|
*/
|
|
275
279
|
readonly disabled?: Signal<boolean>;
|
|
@@ -370,7 +374,7 @@ declare const NgpTooltipTriggerStateToken: _angular_core.InjectionToken<Writable
|
|
|
370
374
|
hideDelay: Signal<number>;
|
|
371
375
|
flip: Signal<NgpFlip>;
|
|
372
376
|
shift: Signal<NgpShift>;
|
|
373
|
-
container:
|
|
377
|
+
container: WritableSignal<string | HTMLElement | null>;
|
|
374
378
|
showOnOverflow: Signal<boolean>;
|
|
375
379
|
anchor: Signal<HTMLElement | null>;
|
|
376
380
|
context: Signal<unknown>;
|
|
@@ -385,15 +389,16 @@ declare const NgpTooltipTriggerStateToken: _angular_core.InjectionToken<Writable
|
|
|
385
389
|
open: Signal<boolean>;
|
|
386
390
|
hasOverflow: Signal<boolean>;
|
|
387
391
|
contentHovered: WritableSignal<boolean>;
|
|
388
|
-
hoverBridgePolygon:
|
|
392
|
+
hoverBridgePolygon: Signal<HoverBridgePoint[] | null>;
|
|
389
393
|
show: () => void;
|
|
390
394
|
hide: () => void;
|
|
391
395
|
setTooltipId: (id: string) => void;
|
|
396
|
+
setContainer: (newContainer: HTMLElement | string | null) => void;
|
|
392
397
|
onTooltipHoverStart: () => void;
|
|
393
398
|
onTooltipHoverEnd: () => void;
|
|
394
399
|
destroy: () => void;
|
|
395
400
|
}>>;
|
|
396
|
-
declare const ngpTooltipTrigger: <T>({ tooltip: _tooltip, disabled, placement, offset, showDelay, hideDelay, flip, shift, container, showOnOverflow, anchor, context, useTextContent, trackPosition, position, scrollBehavior, cooldown, hoverableContent, }: NgpTooltipTriggerProps<T>) => {
|
|
401
|
+
declare const ngpTooltipTrigger: <T>({ tooltip: _tooltip, disabled, placement, offset, showDelay, hideDelay, flip, shift, container: _container, showOnOverflow, anchor, context, useTextContent, trackPosition, position, scrollBehavior, cooldown, hoverableContent, }: NgpTooltipTriggerProps<T>) => {
|
|
397
402
|
tooltip: WritableSignal<string | NgpOverlayContent<T> | null>;
|
|
398
403
|
disabled: Signal<boolean>;
|
|
399
404
|
placement: Signal<NgpTooltipPlacement>;
|
|
@@ -402,7 +407,7 @@ declare const ngpTooltipTrigger: <T>({ tooltip: _tooltip, disabled, placement, o
|
|
|
402
407
|
hideDelay: Signal<number>;
|
|
403
408
|
flip: Signal<NgpFlip>;
|
|
404
409
|
shift: Signal<NgpShift>;
|
|
405
|
-
container:
|
|
410
|
+
container: WritableSignal<string | HTMLElement | null>;
|
|
406
411
|
showOnOverflow: Signal<boolean>;
|
|
407
412
|
anchor: Signal<HTMLElement | null>;
|
|
408
413
|
context: Signal<T | undefined>;
|
|
@@ -417,10 +422,11 @@ declare const ngpTooltipTrigger: <T>({ tooltip: _tooltip, disabled, placement, o
|
|
|
417
422
|
open: Signal<boolean>;
|
|
418
423
|
hasOverflow: Signal<boolean>;
|
|
419
424
|
contentHovered: WritableSignal<boolean>;
|
|
420
|
-
hoverBridgePolygon:
|
|
425
|
+
hoverBridgePolygon: Signal<HoverBridgePoint[] | null>;
|
|
421
426
|
show: () => void;
|
|
422
427
|
hide: () => void;
|
|
423
428
|
setTooltipId: (id: string) => void;
|
|
429
|
+
setContainer: (newContainer: HTMLElement | string | null) => void;
|
|
424
430
|
onTooltipHoverStart: () => void;
|
|
425
431
|
onTooltipHoverEnd: () => void;
|
|
426
432
|
destroy: () => void;
|
|
@@ -445,7 +451,7 @@ declare class NgpTooltipTrigger<T = null> implements OnDestroy {
|
|
|
445
451
|
*/
|
|
446
452
|
readonly tooltip: _angular_core.InputSignalWithTransform<string | NgpOverlayContent<T> | null, TooltipInput<T>>;
|
|
447
453
|
/**
|
|
448
|
-
*
|
|
454
|
+
* Whether the tooltip is disabled. This allows the tooltip to be enabled or disabled dynamically.
|
|
449
455
|
* @default false
|
|
450
456
|
*/
|
|
451
457
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
@@ -545,7 +551,7 @@ declare class NgpTooltipTrigger<T = null> implements OnDestroy {
|
|
|
545
551
|
hideDelay: _angular_core.Signal<number>;
|
|
546
552
|
flip: _angular_core.Signal<NgpFlip>;
|
|
547
553
|
shift: _angular_core.Signal<NgpShift>;
|
|
548
|
-
container: _angular_core.
|
|
554
|
+
container: _angular_core.WritableSignal<string | HTMLElement | null>;
|
|
549
555
|
showOnOverflow: _angular_core.Signal<boolean>;
|
|
550
556
|
anchor: _angular_core.Signal<HTMLElement | null>;
|
|
551
557
|
context: _angular_core.Signal<T | undefined>;
|
|
@@ -560,10 +566,11 @@ declare class NgpTooltipTrigger<T = null> implements OnDestroy {
|
|
|
560
566
|
open: _angular_core.Signal<boolean>;
|
|
561
567
|
hasOverflow: _angular_core.Signal<boolean>;
|
|
562
568
|
contentHovered: _angular_core.WritableSignal<boolean>;
|
|
563
|
-
hoverBridgePolygon: _angular_core.
|
|
569
|
+
hoverBridgePolygon: _angular_core.Signal<ng_primitives_internal.HoverBridgePoint[] | null>;
|
|
564
570
|
show: () => void;
|
|
565
571
|
hide: () => void;
|
|
566
572
|
setTooltipId: (id: string) => void;
|
|
573
|
+
setContainer: (newContainer: HTMLElement | string | null) => void;
|
|
567
574
|
onTooltipHoverStart: () => void;
|
|
568
575
|
onTooltipHoverEnd: () => void;
|
|
569
576
|
destroy: () => void;
|
|
@@ -33,6 +33,11 @@ declare function booleanAttributeBinding(element: HTMLElement, attribute: string
|
|
|
33
33
|
* Disposable functions are a way to manage timers, intervals, and event listeners
|
|
34
34
|
* that should be cleared when a component is destroyed.
|
|
35
35
|
*
|
|
36
|
+
* Each disposable releases its DestroyRef registration as soon as the resource
|
|
37
|
+
* is gone (the timer fires or the returned cleanup runs), so repeated calls -
|
|
38
|
+
* e.g. rescheduling a timeout on every pointermove - don't accumulate destroy
|
|
39
|
+
* callbacks for the lifetime of the host.
|
|
40
|
+
*
|
|
36
41
|
* This is heavily inspired by Headless UI disposables:
|
|
37
42
|
* https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/utils/disposables.ts
|
|
38
43
|
*/
|
|
@@ -45,20 +50,18 @@ declare function injectDisposables(): {
|
|
|
45
50
|
*/
|
|
46
51
|
setTimeout: (callback: () => void, delay: number) => () => void;
|
|
47
52
|
/**
|
|
48
|
-
*
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @
|
|
54
|
-
* @param options
|
|
55
|
-
* @returns A function to clear the interval
|
|
53
|
+
* Add an event listener that will be removed when the component is destroyed.
|
|
54
|
+
* @param target The event target
|
|
55
|
+
* @param type The event type
|
|
56
|
+
* @param listener The event listener
|
|
57
|
+
* @param options The event listener options
|
|
58
|
+
* @returns A function to remove the event listener
|
|
56
59
|
*/
|
|
57
60
|
addEventListener: <K extends keyof HTMLElementEventMap>(target: EventTarget, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => () => void;
|
|
58
61
|
/**
|
|
59
62
|
* Set an interval that will be cleared when the component is destroyed.
|
|
60
63
|
* @param callback The callback to execute
|
|
61
|
-
* @param delay The delay
|
|
64
|
+
* @param delay The delay between executions
|
|
62
65
|
* @returns A function to clear the interval
|
|
63
66
|
*/
|
|
64
67
|
setInterval: (callback: () => void, delay: number) => () => void;
|