@radix-ng/primitives 1.0.0-beta.0 → 1.0.0-beta.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.
Files changed (117) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +2 -2
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-calendar.mjs +109 -84
  4. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-checkbox.mjs +2 -2
  6. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-collapsible.mjs +1 -1
  8. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-combobox.mjs +1923 -0
  10. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -0
  11. package/fesm2022/radix-ng-primitives-context-menu.mjs +1 -1
  12. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-core.mjs +591 -470
  14. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-cropper.mjs +287 -308
  16. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-date-field.mjs +66 -15
  18. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-dialog.mjs +1 -1
  20. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-drawer.mjs +7 -106
  22. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-editable.mjs +305 -24
  24. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-field.mjs +86 -6
  26. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-fieldset.mjs +1 -1
  28. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-focus-scope.mjs +1 -1
  30. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-form.mjs +207 -0
  32. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -0
  33. package/fesm2022/radix-ng-primitives-input.mjs +85 -4
  34. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-menu.mjs +413 -5
  36. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-menubar.mjs +1 -1
  38. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  39. package/fesm2022/radix-ng-primitives-meter.mjs +1 -1
  40. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1 -1
  42. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-number-field.mjs +2 -2
  44. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-popover.mjs +1 -1
  46. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-popper.mjs +22 -5
  48. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-preview-card.mjs +1 -1
  51. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-progress.mjs +1 -1
  53. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-roving-focus.mjs +1 -1
  55. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-scroll-area.mjs +923 -0
  57. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-select.mjs +421 -224
  59. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-slider.mjs +1 -1
  61. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  63. package/fesm2022/radix-ng-primitives-switch.mjs +3 -2
  64. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-tabs.mjs +12 -3
  66. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  67. package/fesm2022/radix-ng-primitives-time-field.mjs +27 -3
  68. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-toast.mjs +839 -0
  70. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -0
  71. package/fesm2022/radix-ng-primitives-toggle-group.mjs +1 -1
  72. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  73. package/fesm2022/radix-ng-primitives-toolbar.mjs +2 -2
  74. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  75. package/fesm2022/radix-ng-primitives-tooltip.mjs +11 -3
  76. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  77. package/package.json +18 -2
  78. package/schematics/ng-add/index.js +57 -0
  79. package/schematics/ng-add/index.js.map +1 -1
  80. package/schematics/ng-add/schema.d.ts +1 -0
  81. package/schematics/ng-add/schema.json +6 -0
  82. package/types/radix-ng-primitives-accordion.d.ts +3 -2
  83. package/types/radix-ng-primitives-calendar.d.ts +38 -18
  84. package/types/radix-ng-primitives-checkbox.d.ts +5 -5
  85. package/types/radix-ng-primitives-collapsible.d.ts +2 -1
  86. package/types/radix-ng-primitives-combobox.d.ts +1265 -0
  87. package/types/radix-ng-primitives-context-menu.d.ts +3 -2
  88. package/types/radix-ng-primitives-core.d.ts +187 -56
  89. package/types/radix-ng-primitives-cropper.d.ts +89 -56
  90. package/types/radix-ng-primitives-date-field.d.ts +11 -5
  91. package/types/radix-ng-primitives-dialog.d.ts +2 -1
  92. package/types/radix-ng-primitives-drawer.d.ts +5 -27
  93. package/types/radix-ng-primitives-editable.d.ts +90 -13
  94. package/types/radix-ng-primitives-field.d.ts +74 -4
  95. package/types/radix-ng-primitives-fieldset.d.ts +3 -2
  96. package/types/radix-ng-primitives-focus-scope.d.ts +2 -1
  97. package/types/radix-ng-primitives-form.d.ts +124 -0
  98. package/types/radix-ng-primitives-input.d.ts +75 -5
  99. package/types/radix-ng-primitives-menu.d.ts +16 -4
  100. package/types/radix-ng-primitives-menubar.d.ts +2 -1
  101. package/types/radix-ng-primitives-meter.d.ts +3 -2
  102. package/types/radix-ng-primitives-navigation-menu.d.ts +1 -1
  103. package/types/radix-ng-primitives-number-field.d.ts +6 -6
  104. package/types/radix-ng-primitives-popover.d.ts +2 -1
  105. package/types/radix-ng-primitives-popper.d.ts +19 -2
  106. package/types/radix-ng-primitives-preview-card.d.ts +1 -1
  107. package/types/radix-ng-primitives-progress.d.ts +3 -2
  108. package/types/radix-ng-primitives-roving-focus.d.ts +4 -3
  109. package/types/radix-ng-primitives-scroll-area.d.ts +253 -0
  110. package/types/radix-ng-primitives-select.d.ts +296 -136
  111. package/types/radix-ng-primitives-slider.d.ts +1 -1
  112. package/types/radix-ng-primitives-switch.d.ts +1 -1
  113. package/types/radix-ng-primitives-tabs.d.ts +1 -1
  114. package/types/radix-ng-primitives-toast.d.ts +378 -0
  115. package/types/radix-ng-primitives-toggle-group.d.ts +2 -1
  116. package/types/radix-ng-primitives-toolbar.d.ts +3 -2
  117. package/types/radix-ng-primitives-tooltip.d.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip.config.ts","../../../packages/primitives/tooltip/src/utils.ts","../../../packages/primitives/tooltip/src/tooltip-provider.ts","../../../packages/primitives/tooltip/src/tooltip.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.ts","../../../packages/primitives/tooltip/src/tooltip-popup.ts","../../../packages/primitives/tooltip/src/tooltip-portal.ts","../../../packages/primitives/tooltip/src/tooltip-portal-presence.ts","../../../packages/primitives/tooltip/src/tooltip-positioner.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.ts","../../../packages/primitives/tooltip/src/tooltip-handle.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport type RdxTrackCursorAxis = 'none' | 'x' | 'y' | 'both';\n\nexport type RdxTooltipConfig = {\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * @defaultValue 600\n */\n delay?: number;\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n * @defaultValue 0\n */\n closeDelay?: number;\n /**\n * Another tooltip within the same provider opens instantly when this window\n * has not yet elapsed since the previous one closed. Specified in milliseconds.\n * @defaultValue 400\n */\n timeout?: number;\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n * @defaultValue false\n */\n disableHoverablePopup?: boolean;\n};\n\nexport const defaultTooltipConfig: Required<RdxTooltipConfig> = {\n delay: 600,\n closeDelay: 0,\n timeout: 400,\n disableHoverablePopup: false\n};\n\nexport const RdxTooltipDefaultsToken = new InjectionToken<RdxTooltipConfig>('RdxTooltipDefaultsToken');\n\nexport function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[] {\n return [\n {\n provide: RdxTooltipDefaultsToken,\n useValue: { ...defaultTooltipConfig, ...config }\n }\n ];\n}\n\nexport function injectRdxTooltipConfig(): Required<RdxTooltipConfig> {\n return { ...defaultTooltipConfig, ...inject(RdxTooltipDefaultsToken, { optional: true }) };\n}\n","import { DestroyRef, signal, Signal } from '@angular/core';\n\nexport type TimeoutController = {\n start: () => void;\n stop: () => void;\n isPending: () => boolean;\n};\n\nexport type TooltipInstantController = {\n /** Whether the next tooltip in the group should open without waiting for the delay. */\n isInstant: Signal<boolean>;\n /** Call when a tooltip opens — leaves the group in the instant phase. */\n onOpen: () => void;\n /** Call when a tooltip closes — keeps the group instant for `timeout` ms, then re-arms the delay. */\n onClose: () => void;\n};\n\n/**\n * Tracks the shared \"instant\" window for a group of tooltips. Once one tooltip\n * opens, sibling tooltips open instantly until `timeout` ms after the last close.\n */\nexport function createTooltipInstantController(\n timeout: () => number,\n destroyRef?: DestroyRef\n): TooltipInstantController {\n const instant = signal(false);\n\n const timer = useTimeoutFn(() => instant.set(false), timeout, { immediate: false }, destroyRef);\n\n return {\n isInstant: instant.asReadonly(),\n onOpen: () => {\n timer.stop();\n instant.set(true);\n },\n onClose: () => {\n timer.start();\n }\n };\n}\n\nexport function useTimeoutFn(\n cb: () => void,\n delay: number | (() => number),\n options: { immediate?: boolean } = {},\n destroyRef?: DestroyRef\n): TimeoutController {\n let id: number | null = null;\n\n const resolveDelay = () => (typeof delay === 'function' ? (delay as () => number)() : delay);\n\n const stop = () => {\n if (id != null) {\n clearTimeout(id);\n id = null;\n }\n };\n\n const start = () => {\n stop();\n const ms = resolveDelay();\n if (ms <= 0) {\n queueMicrotask(cb);\n return;\n }\n id = window.setTimeout(() => {\n id = null;\n cb();\n }, ms);\n };\n\n if (options.immediate) {\n start();\n }\n if (destroyRef) {\n destroyRef.onDestroy(stop);\n }\n\n return { start, stop, isPending: () => id != null };\n}\n","import { DestroyRef, Directive, inject, input, numberAttribute, Signal } from '@angular/core';\nimport { createContext, NumberInput } from '@radix-ng/primitives/core';\nimport { injectRdxTooltipConfig } from './tooltip.config';\nimport { createTooltipInstantController } from './utils';\n\nexport interface RdxTooltipProviderContext {\n /** Default open delay for tooltips in this group, in milliseconds. */\n delay: Signal<number | undefined>;\n /** Default close delay for tooltips in this group, in milliseconds. */\n closeDelay: Signal<number | undefined>;\n /** Whether sibling tooltips should currently open instantly. */\n isInstant: Signal<boolean>;\n /** Notifies the group that a tooltip has opened. */\n onOpen: () => void;\n /** Notifies the group that a tooltip has closed. */\n onClose: () => void;\n}\n\nexport const [injectRdxTooltipProviderContext, provideRdxTooltipProviderContext] =\n createContext<RdxTooltipProviderContext>('RdxTooltipProviderContext');\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\n\nconst providerContext = (): RdxTooltipProviderContext => {\n const provider = inject(RdxTooltipProvider);\n\n return {\n delay: provider.delay,\n closeDelay: provider.closeDelay,\n isInstant: provider.instant.isInstant,\n onOpen: () => provider.instant.onOpen(),\n onClose: () => provider.instant.onClose()\n };\n};\n\n/**\n * Shares delay configuration and an instant-open window across a group of tooltips.\n * Once one tooltip opens, adjacent ones open instantly until `timeout` ms after the last close.\n */\n@Directive({\n selector: '[rdxTooltipProvider]',\n exportAs: 'rdxTooltipProvider',\n providers: [provideRdxTooltipProviderContext(providerContext)]\n})\nexport class RdxTooltipProvider {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * How long to wait before opening tooltips in this group. Specified in milliseconds.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, { transform: numberOrUndefined });\n\n /**\n * How long to wait before closing tooltips in this group. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: numberOrUndefined\n });\n\n /**\n * The window during which an adjacent tooltip opens instantly. Specified in milliseconds.\n */\n readonly timeout = input<number, NumberInput>(this.defaultConfig.timeout, { transform: numberAttribute });\n\n readonly instant = createTooltipInstantController(() => this.timeout(), this.destroyRef);\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { BooleanInput, createContext, injectId, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxTooltipHandle } from './tooltip-handle';\nimport { injectRdxTooltipProviderContext } from './tooltip-provider';\nimport { injectRdxTooltipConfig, RdxTrackCursorAxis } from './tooltip.config';\nimport { createTooltipInstantController, TooltipInstantController, useTimeoutFn } from './utils';\n\nexport interface RdxTooltipContext {\n contentId: string;\n isOpen: Signal<boolean>;\n /** Whether the tooltip opened/closed without waiting for the delay. */\n instant: Signal<boolean>;\n disabled: Signal<boolean>;\n disableHoverablePopup: Signal<boolean>;\n trackCursorAxis: Signal<RdxTrackCursorAxis>;\n /** The active trigger element. */\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n payload: Signal<unknown>;\n open: (trigger?: HTMLElement, payload?: unknown) => void;\n close: () => void;\n /** Closes after the resolved close delay (used when hover/focus is lost). */\n closeDelayed: () => void;\n registerTrigger: (trigger: HTMLElement) => () => void;\n /** Hover entered a trigger — opens after the resolved delay (or instantly). */\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;\n /** Hover left a trigger — cancels a pending open and closes when appropriate. */\n onTriggerLeave: () => void;\n setCursorPosition: (position: { x: number; y: number } | undefined) => void;\n setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;\n}\n\nexport const [injectRdxTooltipContext, provideRdxTooltipContext] =\n createContext<RdxTooltipContext>('RdxTooltipContext');\n\nconst context = () => contextFor(inject(RdxTooltip));\n\n@Directive({\n selector: '[rdxTooltip]',\n exportAs: 'rdxTooltip',\n providers: [provideRdxTooltipContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxTooltip {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly provider = injectRdxTooltipProviderContext(true);\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n private hasAppliedDefaultOpen = false;\n\n /**\n * Whether the tooltip is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the tooltip is initially open. Uncontrolled.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * Falls back to the surrounding provider, then to the global config.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n */\n readonly disableHoverablePopup = input<boolean, BooleanInput>(this.defaultConfig.disableHoverablePopup, {\n transform: booleanAttribute\n });\n\n /**\n * Determines which axis the tooltip should track the cursor on.\n */\n readonly trackCursorAxis = input<RdxTrackCursorAxis>('none');\n\n /**\n * When `true`, the tooltip will not open.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Event handler called when the open state changes.\n */\n readonly onOpenChange = output<boolean>();\n\n readonly contentId = injectId('rdx-tooltip-content-');\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly cursorPosition = signal<{ x: number; y: number } | undefined>(undefined);\n\n private readonly openedInstant = signal(false);\n\n /** Local instant window used when this tooltip is not inside a provider. */\n private readonly localInstant: TooltipInstantController = createTooltipInstantController(\n () => this.defaultConfig.timeout,\n this.destroyRef\n );\n\n private readonly instantGroup = this.provider ?? this.localInstant;\n\n /** Per-trigger overrides set by the active trigger, taking precedence over the root/provider. */\n private readonly triggerDelay = signal<number | undefined>(undefined);\n private readonly triggerCloseDelay = signal<number | undefined>(undefined);\n\n private readonly resolvedDelay = computed(\n () => this.triggerDelay() ?? this.delay() ?? this.provider?.delay() ?? this.defaultConfig.delay\n );\n private readonly resolvedCloseDelay = computed(\n () =>\n this.triggerCloseDelay() ??\n this.closeDelay() ??\n this.provider?.closeDelay() ??\n this.defaultConfig.closeDelay\n );\n\n /** Whether the most recent open happened without the delay. */\n readonly instant = this.openedInstant.asReadonly();\n\n private readonly virtualAnchor = computed<ReferenceElement | undefined>(() => {\n const axis = this.trackCursorAxis();\n const element = this.trigger();\n\n if (axis === 'none' || !element) {\n return element;\n }\n\n const position = this.cursorPosition();\n\n if (!position) {\n return element;\n }\n\n const followX = axis === 'x' || axis === 'both';\n const followY = axis === 'y' || axis === 'both';\n\n return {\n getBoundingClientRect: () => {\n const rect = element.getBoundingClientRect();\n const width = followX ? 0 : rect.width;\n const height = followY ? 0 : rect.height;\n const x = followX ? position.x : rect.x;\n const y = followY ? position.y : rect.y;\n\n return { width, height, x, y, top: y, left: x, right: x + width, bottom: y + height };\n }\n };\n });\n\n private readonly openTimer = useTimeoutFn(\n () => this.applyOpen(false),\n () => this.resolvedDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n private readonly closeTimer = useTimeoutFn(\n () => this.applyClose(),\n () => this.resolvedCloseDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n constructor() {\n effect(() => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n });\n\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n });\n\n // Keep the popper anchored to the active trigger, or to the cursor while tracking.\n effect(() => this.popper.anchorOverride.set(this.virtualAnchor()));\n\n watch(\n [this.open],\n ([isOpen]) => {\n this.onOpenChange.emit(isOpen);\n\n if (isOpen) {\n this.instantGroup.onOpen();\n } else {\n this.instantGroup.onClose();\n this.openedInstant.set(false);\n }\n },\n { defer: true }\n );\n }\n\n /** Opens immediately, optionally switching the active trigger/payload. */\n show(trigger = this.trigger(), payload?: unknown) {\n this.applyOpen(true, trigger, payload);\n }\n\n close() {\n this.openTimer.stop();\n this.closeTimer.stop();\n this.applyClose();\n }\n\n /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */\n scheduleClose() {\n this.openTimer.stop();\n\n if (this.resolvedCloseDelay()! <= 0) {\n this.applyClose();\n } else {\n this.closeTimer.start();\n }\n }\n\n /** Hover/focus entered — open after the delay, or instantly within the instant window. */\n onTriggerEnter(trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n this.payload.set(payload);\n this.closeTimer.stop();\n\n if (this.instantGroup.isInstant() || this.resolvedDelay()! <= 0) {\n this.applyOpen(true, trigger, payload);\n } else {\n this.openTimer.start();\n }\n }\n\n onTriggerLeave() {\n this.openTimer.stop();\n\n if (this.disableHoverablePopup()) {\n this.scheduleClose();\n }\n // Otherwise the positioner's grace area decides when to close.\n }\n\n registerTrigger(trigger: HTMLElement) {\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n\n if (!this.trigger()) {\n this.trigger.set(trigger);\n }\n\n return () => {\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n\n if (this.trigger() === trigger) {\n const nextTrigger = this.triggers()[0];\n this.trigger.set(nextTrigger);\n\n if (!nextTrigger && !this.destroyRef.destroyed) {\n this.applyClose();\n }\n }\n };\n }\n\n setCursorPosition(position: { x: number; y: number } | undefined) {\n this.cursorPosition.set(position);\n }\n\n /** Applies per-trigger delay overrides from the trigger that is becoming active. */\n setDelays(delay: number | undefined, closeDelay: number | undefined) {\n this.triggerDelay.set(delay);\n this.triggerCloseDelay.set(closeDelay);\n }\n\n private applyOpen(instant: boolean, trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n this.openTimer.stop();\n this.closeTimer.stop();\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n if (payload !== undefined) {\n this.payload.set(payload);\n }\n\n this.openedInstant.set(instant || this.instantGroup.isInstant());\n this.open.set(true);\n }\n\n private applyClose() {\n this.openedInstant.set(this.instantGroup.isInstant());\n this.open.set(false);\n }\n}\n\nfunction contextFor(root: RdxTooltip): RdxTooltipContext {\n return {\n contentId: root.contentId,\n isOpen: root.open,\n instant: root.instant,\n disabled: root.disabled,\n disableHoverablePopup: root.disableHoverablePopup,\n trackCursorAxis: root.trackCursorAxis,\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n open: (trigger?: HTMLElement, payload?: unknown) => root.show(trigger, payload),\n close: () => root.close(),\n closeDelayed: () => root.scheduleClose(),\n registerTrigger: (trigger: HTMLElement) => root.registerTrigger(trigger),\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => root.onTriggerEnter(trigger, payload),\n onTriggerLeave: () => root.onTriggerLeave(),\n setCursorPosition: (position) => root.setCursorPosition(position),\n setDelays: (delay, closeDelay) => root.setDelays(delay, closeDelay)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { RdxVisuallyHiddenDirective } from '@radix-ng/primitives/visually-hidden';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[hidden]': 'isVisuallyHidden',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxTooltipArrow {\n protected readonly rootContext = injectRdxTooltipContext()!;\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n\n protected readonly isVisuallyHidden = !!inject(RdxVisuallyHiddenDirective, {\n optional: true\n });\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * The tooltip popup. Renders the content with `role=\"tooltip\"`.\n */\n@Directive({\n selector: '[rdxTooltipPopup]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'tooltip',\n '[id]': 'rootContext.contentId',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()'\n }\n})\nexport class RdxTooltipPopup {\n protected readonly rootContext = injectRdxTooltipContext()!;\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n/**\n * Moves the tooltip to a different part of the DOM.\n */\n@Directive({\n selector: '[rdxTooltipPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxTooltipPortal {\n readonly container = input.required<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: 'ng-template[rdxTooltipPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectRdxTooltipContext()!;\n\n return { present: context.isOpen };\n })\n ]\n})\nexport class RdxTooltipPortalPresence {}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput, useGraceArea } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * Positions the tooltip popup against its trigger (or a custom anchor).\n */\n@Directive({\n selector: '[rdxTooltipPositioner]',\n providers: [provideRdxPopperContentConfig({ side: 'top', arrowPadding: 5, collisionPadding: 5 })],\n hostDirectives: [\n RdxDismissableLayer,\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'anchor',\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'positionStrategy',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'wrapper.placedSide()',\n '[attr.data-align]': 'wrapper.placedAlign()',\n '[style]': `{\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)'\n }`\n }\n})\nexport class RdxTooltipPositioner {\n protected readonly rootContext = injectRdxTooltipContext()!;\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * An element to position the popup against. Defaults to the trigger.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n */\n readonly side = input<Side>('top');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor.\n */\n readonly align = input<Align>('center');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The padding between the arrow and the edges of the content.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\n */\n readonly avoidCollisions = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(5);\n\n /**\n * The sticky behavior on the `align` axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The CSS position strategy used by Floating UI.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>('fixed');\n\n /**\n * Whether to update the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(this.wrapper.placed));\n\n /**\n * Event handler called when the escape key is down. Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(null);\n\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl, 300);\n\n private readonly afterNextRender = afterNextRender(() => {\n this.triggerEl.set(this.rootContext.trigger() ?? null);\n this.containerEl.set(this.elementRef.nativeElement);\n\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const trigger = this.rootContext.trigger();\n\n if (trigger && target?.contains(trigger)) {\n this.rootContext.close();\n }\n };\n\n window.addEventListener('scroll', handleScroll, { capture: true });\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('scroll', handleScroll, { capture: true });\n });\n\n this.graceArea.onPointerExit(() => {\n if (this.rootContext.disableHoverablePopup()) return;\n this.rootContext.closeDelayed();\n });\n });\n\n constructor() {\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.close());\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n untracked\n} from '@angular/core';\nimport { BooleanInput, injectId, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\nimport { RdxTooltipHandle } from './tooltip-handle';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n 'data-grace-area-trigger': \"''\",\n '[id]': 'triggerId()',\n '[attr.aria-describedby]': 'isOpen() ? rootContext()?.contentId : undefined',\n '[attr.data-popup-open]': 'isOpen() ? \"\" : undefined',\n '[attr.data-trigger-disabled]': 'isDisabled() ? \"\" : undefined',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerleave)': 'handlePointerLeave()',\n '(pointerdown)': 'handlePointerDown($event)',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()',\n '(click)': 'handleClick()'\n }\n})\nexport class RdxTooltipTrigger {\n private readonly parentRootContext = injectRdxTooltipContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly generatedId = injectId('rdx-tooltip-trigger-');\n\n /**\n * Associates this trigger with a detached tooltip root.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Data associated with this trigger while it is active.\n */\n readonly payload = input<unknown>();\n\n /**\n * ID used to identify this trigger when opening a detached tooltip imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the tooltip should close when the trigger is clicked.\n * @defaultValue true\n */\n readonly closeOnClick = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether this trigger is disabled. A disabled trigger never opens the tooltip.\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Overrides the open delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * Overrides the close delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n readonly userOnPointerDown = input<(event: PointerEvent) => void | boolean | Promise<void | boolean> | undefined>(\n undefined,\n { alias: 'rdxOnPointerDown' }\n );\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n\n /** Disabled if either the root or this trigger is disabled. */\n protected readonly isDisabled = computed(() => (this.rootContext()?.disabled() ?? false) || this.disabled());\n\n /** Whether this specific trigger is the active anchor of an open tooltip. */\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n\n private readonly isPointerDown = signal(false);\n private readonly hasPointerMoveOpened = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(\n untracked(() =>\n handle.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () => this.payload())\n )\n );\n } else if (this.parentRootContext) {\n onCleanup(untracked(() => this.parentRootContext!.registerTrigger(this.elementRef.nativeElement)));\n }\n });\n }\n\n protected handleFocus() {\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled() || this.isPointerDown()) {\n return;\n }\n\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.open(this.elementRef.nativeElement, this.payload());\n }\n\n protected handleBlur() {\n this.rootContext()?.closeDelayed();\n }\n\n protected handleClick() {\n const rootContext = this.rootContext();\n\n if (rootContext?.isOpen() && this.closeOnClick()) {\n rootContext.close();\n }\n }\n\n protected handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n return;\n }\n\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled()) {\n return;\n }\n\n if (rootContext.trackCursorAxis() !== 'none') {\n rootContext.setCursorPosition({ x: event.clientX, y: event.clientY });\n }\n\n if (!this.hasPointerMoveOpened()) {\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.onTriggerEnter(this.elementRef.nativeElement, this.payload());\n this.hasPointerMoveOpened.set(true);\n }\n }\n\n protected handlePointerLeave() {\n this.rootContext()?.onTriggerLeave();\n this.hasPointerMoveOpened.set(false);\n }\n\n protected async handlePointerDown(event: PointerEvent) {\n const user = this.userOnPointerDown();\n let result: unknown;\n\n if (user) {\n result = user(event);\n if (result instanceof Promise) result = await result;\n }\n\n if (event.defaultPrevented || result === false) {\n return;\n }\n\n this.isPointerDown.set(true);\n\n const handlePointerUp = () => {\n setTimeout(() => this.isPointerDown.set(false), 1);\n };\n\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n }\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxTooltipContext } from './tooltip';\n\n/**\n * Connects a tooltip root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxTooltipHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxTooltipHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxTooltipContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxTooltipHandleTrigger<Payload>>();\n private readonly rootTriggerCleanups = new Map<string, () => void>();\n\n readonly isOpen = computed(() => this.rootContext()?.isOpen() ?? false);\n\n open(triggerId: string) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No tooltip trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(trigger.element, trigger.payload());\n }\n\n close() {\n this.rootContext()?.close();\n }\n\n registerRoot(rootContext: RdxTooltipContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(trigger.element));\n });\n\n return () => {\n if (this.rootContext() === rootContext) {\n this.rootTriggerCleanups.forEach((cleanup) => cleanup());\n this.rootTriggerCleanups.clear();\n this.rootContext.set(undefined);\n }\n };\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined) {\n this.rootTriggerCleanups.get(id)?.();\n this.triggers.set(id, { element: trigger, payload });\n const unregisterFromRoot = this.rootContext()?.registerTrigger(trigger);\n\n if (unregisterFromRoot) {\n this.rootTriggerCleanups.set(id, unregisterFromRoot);\n }\n\n return () => {\n this.rootTriggerCleanups.get(id)?.();\n this.rootTriggerCleanups.delete(id);\n\n if (this.triggers.get(id)?.element === trigger) {\n this.triggers.delete(id);\n }\n };\n }\n\n context() {\n return this.rootContext();\n }\n}\n\nexport function createRdxTooltipHandle<Payload = unknown>() {\n return new RdxTooltipHandle<Payload>();\n}\n","import { RdxTooltip } from './src/tooltip';\nimport { RdxTooltipArrow } from './src/tooltip-arrow';\nimport { RdxTooltipPopup } from './src/tooltip-popup';\nimport { RdxTooltipPortal } from './src/tooltip-portal';\nimport { RdxTooltipPortalPresence } from './src/tooltip-portal-presence';\nimport { RdxTooltipPositioner } from './src/tooltip-positioner';\nimport { RdxTooltipProvider } from './src/tooltip-provider';\nimport { RdxTooltipTrigger } from './src/tooltip-trigger';\n\nexport * from './src/tooltip';\nexport * from './src/tooltip-arrow';\nexport * from './src/tooltip-handle';\nexport * from './src/tooltip-popup';\nexport * from './src/tooltip-portal';\nexport * from './src/tooltip-portal-presence';\nexport * from './src/tooltip-positioner';\nexport * from './src/tooltip-provider';\nexport * from './src/tooltip-trigger';\nexport * from './src/tooltip.config';\n\nexport const tooltipImports = [\n RdxTooltip,\n RdxTooltipArrow,\n RdxTooltipPopup,\n RdxTooltipPortal,\n RdxTooltipPortalPresence,\n RdxTooltipPositioner,\n RdxTooltipProvider,\n RdxTooltipTrigger\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip.config.ts","../../../packages/primitives/tooltip/src/utils.ts","../../../packages/primitives/tooltip/src/tooltip-provider.ts","../../../packages/primitives/tooltip/src/tooltip.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.ts","../../../packages/primitives/tooltip/src/tooltip-popup.ts","../../../packages/primitives/tooltip/src/tooltip-portal.ts","../../../packages/primitives/tooltip/src/tooltip-portal-presence.ts","../../../packages/primitives/tooltip/src/tooltip-positioner.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.ts","../../../packages/primitives/tooltip/src/tooltip-handle.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport type RdxTrackCursorAxis = 'none' | 'x' | 'y' | 'both';\n\nexport type RdxTooltipConfig = {\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * @defaultValue 600\n */\n delay?: number;\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n * @defaultValue 0\n */\n closeDelay?: number;\n /**\n * Another tooltip within the same provider opens instantly when this window\n * has not yet elapsed since the previous one closed. Specified in milliseconds.\n * @defaultValue 400\n */\n timeout?: number;\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n * @defaultValue false\n */\n disableHoverablePopup?: boolean;\n};\n\nexport const defaultTooltipConfig: Required<RdxTooltipConfig> = {\n delay: 600,\n closeDelay: 0,\n timeout: 400,\n disableHoverablePopup: false\n};\n\nexport const RdxTooltipDefaultsToken = new InjectionToken<RdxTooltipConfig>('RdxTooltipDefaultsToken');\n\nexport function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[] {\n return [\n {\n provide: RdxTooltipDefaultsToken,\n useValue: { ...defaultTooltipConfig, ...config }\n }\n ];\n}\n\nexport function injectRdxTooltipConfig(): Required<RdxTooltipConfig> {\n return { ...defaultTooltipConfig, ...inject(RdxTooltipDefaultsToken, { optional: true }) };\n}\n","import { DestroyRef, signal, Signal } from '@angular/core';\n\nexport type TimeoutController = {\n start: () => void;\n stop: () => void;\n isPending: () => boolean;\n};\n\nexport type TooltipInstantController = {\n /** Whether the next tooltip in the group should open without waiting for the delay. */\n isInstant: Signal<boolean>;\n /** Call when a tooltip opens — leaves the group in the instant phase. */\n onOpen: () => void;\n /** Call when a tooltip closes — keeps the group instant for `timeout` ms, then re-arms the delay. */\n onClose: () => void;\n};\n\n/**\n * Tracks the shared \"instant\" window for a group of tooltips. Once one tooltip\n * opens, sibling tooltips open instantly until `timeout` ms after the last close.\n */\nexport function createTooltipInstantController(\n timeout: () => number,\n destroyRef?: DestroyRef\n): TooltipInstantController {\n const instant = signal(false);\n\n const timer = useTimeoutFn(() => instant.set(false), timeout, { immediate: false }, destroyRef);\n\n return {\n isInstant: instant.asReadonly(),\n onOpen: () => {\n timer.stop();\n instant.set(true);\n },\n onClose: () => {\n timer.start();\n }\n };\n}\n\nexport function useTimeoutFn(\n cb: () => void,\n delay: number | (() => number),\n options: { immediate?: boolean } = {},\n destroyRef?: DestroyRef\n): TimeoutController {\n let id: number | null = null;\n\n const resolveDelay = () => (typeof delay === 'function' ? delay() : delay);\n\n const stop = () => {\n if (id != null) {\n clearTimeout(id);\n id = null;\n }\n };\n\n const start = () => {\n stop();\n const ms = resolveDelay();\n if (ms <= 0) {\n queueMicrotask(cb);\n return;\n }\n id = window.setTimeout(() => {\n id = null;\n cb();\n }, ms);\n };\n\n if (options.immediate) {\n start();\n }\n if (destroyRef) {\n destroyRef.onDestroy(stop);\n }\n\n return { start, stop, isPending: () => id != null };\n}\n","import { DestroyRef, Directive, inject, input, numberAttribute, Signal } from '@angular/core';\nimport { createContext, NumberInput } from '@radix-ng/primitives/core';\nimport { injectRdxTooltipConfig } from './tooltip.config';\nimport { createTooltipInstantController } from './utils';\n\nexport interface RdxTooltipProviderContext {\n /** Default open delay for tooltips in this group, in milliseconds. */\n delay: Signal<number | undefined>;\n /** Default close delay for tooltips in this group, in milliseconds. */\n closeDelay: Signal<number | undefined>;\n /** Whether sibling tooltips should currently open instantly. */\n isInstant: Signal<boolean>;\n /** Notifies the group that a tooltip has opened. */\n onOpen: () => void;\n /** Notifies the group that a tooltip has closed. */\n onClose: () => void;\n}\n\nexport const [injectRdxTooltipProviderContext, provideRdxTooltipProviderContext] =\n createContext<RdxTooltipProviderContext>('RdxTooltipProviderContext', 'components/tooltip');\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\n\nconst providerContext = (): RdxTooltipProviderContext => {\n const provider = inject(RdxTooltipProvider);\n\n return {\n delay: provider.delay,\n closeDelay: provider.closeDelay,\n isInstant: provider.instant.isInstant,\n onOpen: () => provider.instant.onOpen(),\n onClose: () => provider.instant.onClose()\n };\n};\n\n/**\n * Shares delay configuration and an instant-open window across a group of tooltips.\n * Once one tooltip opens, adjacent ones open instantly until `timeout` ms after the last close.\n */\n@Directive({\n selector: '[rdxTooltipProvider]',\n exportAs: 'rdxTooltipProvider',\n providers: [provideRdxTooltipProviderContext(providerContext)]\n})\nexport class RdxTooltipProvider {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * How long to wait before opening tooltips in this group. Specified in milliseconds.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, { transform: numberOrUndefined });\n\n /**\n * How long to wait before closing tooltips in this group. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: numberOrUndefined\n });\n\n /**\n * The window during which an adjacent tooltip opens instantly. Specified in milliseconds.\n */\n readonly timeout = input<number, NumberInput>(this.defaultConfig.timeout, { transform: numberAttribute });\n\n readonly instant = createTooltipInstantController(() => this.timeout(), this.destroyRef);\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { BooleanInput, createContext, injectId, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxTooltipHandle } from './tooltip-handle';\nimport { injectRdxTooltipProviderContext } from './tooltip-provider';\nimport { injectRdxTooltipConfig, RdxTrackCursorAxis } from './tooltip.config';\nimport { createTooltipInstantController, TooltipInstantController, useTimeoutFn } from './utils';\n\nexport interface RdxTooltipContext {\n contentId: string;\n isOpen: Signal<boolean>;\n /** Whether the tooltip opened/closed without waiting for the delay. */\n instant: Signal<boolean>;\n disabled: Signal<boolean>;\n disableHoverablePopup: Signal<boolean>;\n trackCursorAxis: Signal<RdxTrackCursorAxis>;\n /** The active trigger element. */\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n payload: Signal<unknown>;\n open: (trigger?: HTMLElement, payload?: unknown) => void;\n close: () => void;\n /** Closes after the resolved close delay (used when hover/focus is lost). */\n closeDelayed: () => void;\n registerTrigger: (trigger: HTMLElement) => () => void;\n /** Hover entered a trigger — opens after the resolved delay (or instantly). */\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;\n /** Hover left a trigger — cancels a pending open and closes when appropriate. */\n onTriggerLeave: () => void;\n setCursorPosition: (position: { x: number; y: number } | undefined) => void;\n setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;\n}\n\nexport const [injectRdxTooltipContext, provideRdxTooltipContext] = createContext<RdxTooltipContext>(\n 'RdxTooltipContext',\n 'components/tooltip'\n);\n\nconst context = () => contextFor(inject(RdxTooltip));\n\n@Directive({\n selector: '[rdxTooltip]',\n exportAs: 'rdxTooltip',\n providers: [provideRdxTooltipContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxTooltip {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly provider = injectRdxTooltipProviderContext(true);\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n private hasAppliedDefaultOpen = false;\n\n /**\n * Whether the tooltip is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the tooltip is initially open. Uncontrolled.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * Falls back to the surrounding provider, then to the global config.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n */\n readonly disableHoverablePopup = input<boolean, BooleanInput>(this.defaultConfig.disableHoverablePopup, {\n transform: booleanAttribute\n });\n\n /**\n * Determines which axis the tooltip should track the cursor on.\n */\n readonly trackCursorAxis = input<RdxTrackCursorAxis>('none');\n\n /**\n * When `true`, the tooltip will not open.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Event handler called when the open state changes.\n */\n readonly onOpenChange = output<boolean>();\n\n readonly contentId = injectId('rdx-tooltip-content-');\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly cursorPosition = signal<{ x: number; y: number } | undefined>(undefined);\n\n private readonly openedInstant = signal(false);\n\n /** Local instant window used when this tooltip is not inside a provider. */\n private readonly localInstant: TooltipInstantController = createTooltipInstantController(\n () => this.defaultConfig.timeout,\n this.destroyRef\n );\n\n private readonly instantGroup = this.provider ?? this.localInstant;\n\n /** Per-trigger overrides set by the active trigger, taking precedence over the root/provider. */\n private readonly triggerDelay = signal<number | undefined>(undefined);\n private readonly triggerCloseDelay = signal<number | undefined>(undefined);\n\n private readonly resolvedDelay = computed(\n () => this.triggerDelay() ?? this.delay() ?? this.provider?.delay() ?? this.defaultConfig.delay\n );\n private readonly resolvedCloseDelay = computed(\n () =>\n this.triggerCloseDelay() ??\n this.closeDelay() ??\n this.provider?.closeDelay() ??\n this.defaultConfig.closeDelay\n );\n\n /** Whether the most recent open happened without the delay. */\n readonly instant = this.openedInstant.asReadonly();\n\n private readonly virtualAnchor = computed<ReferenceElement | undefined>(() => {\n const axis = this.trackCursorAxis();\n const element = this.trigger();\n\n if (axis === 'none' || !element) {\n return element;\n }\n\n const position = this.cursorPosition();\n\n if (!position) {\n return element;\n }\n\n const followX = axis === 'x' || axis === 'both';\n const followY = axis === 'y' || axis === 'both';\n\n return {\n getBoundingClientRect: () => {\n const rect = element.getBoundingClientRect();\n const width = followX ? 0 : rect.width;\n const height = followY ? 0 : rect.height;\n const x = followX ? position.x : rect.x;\n const y = followY ? position.y : rect.y;\n\n return { width, height, x, y, top: y, left: x, right: x + width, bottom: y + height };\n }\n };\n });\n\n private readonly openTimer = useTimeoutFn(\n () => this.applyOpen(false),\n () => this.resolvedDelay(),\n { immediate: false },\n this.destroyRef\n );\n\n private readonly closeTimer = useTimeoutFn(\n () => this.applyClose(),\n () => this.resolvedCloseDelay(),\n { immediate: false },\n this.destroyRef\n );\n\n constructor() {\n effect(() => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n });\n\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n });\n\n // Keep the popper anchored to the active trigger, or to the cursor while tracking.\n effect(() => this.popper.anchorOverride.set(this.virtualAnchor()));\n\n watch(\n [this.open],\n ([isOpen]) => {\n this.onOpenChange.emit(isOpen);\n\n if (isOpen) {\n this.instantGroup.onOpen();\n } else {\n this.instantGroup.onClose();\n this.openedInstant.set(false);\n }\n },\n { defer: true }\n );\n }\n\n /** Opens immediately, optionally switching the active trigger/payload. */\n show(trigger = this.trigger(), payload?: unknown) {\n this.applyOpen(true, trigger, payload);\n }\n\n close() {\n this.openTimer.stop();\n this.closeTimer.stop();\n this.applyClose();\n }\n\n /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */\n scheduleClose() {\n this.openTimer.stop();\n\n if (this.resolvedCloseDelay() <= 0) {\n this.applyClose();\n } else {\n this.closeTimer.start();\n }\n }\n\n /** Hover/focus entered — open after the delay, or instantly within the instant window. */\n onTriggerEnter(trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n this.payload.set(payload);\n this.closeTimer.stop();\n\n if (this.instantGroup.isInstant() || this.resolvedDelay() <= 0) {\n this.applyOpen(true, trigger, payload);\n } else {\n this.openTimer.start();\n }\n }\n\n onTriggerLeave() {\n this.openTimer.stop();\n\n if (this.disableHoverablePopup()) {\n this.scheduleClose();\n }\n // Otherwise the positioner's grace area decides when to close.\n }\n\n registerTrigger(trigger: HTMLElement) {\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n\n if (!this.trigger()) {\n this.trigger.set(trigger);\n }\n\n return () => {\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n\n if (this.trigger() === trigger) {\n const nextTrigger = this.triggers()[0];\n this.trigger.set(nextTrigger);\n\n if (!nextTrigger && !this.destroyRef.destroyed) {\n this.applyClose();\n }\n }\n };\n }\n\n setCursorPosition(position: { x: number; y: number } | undefined) {\n this.cursorPosition.set(position);\n }\n\n /** Applies per-trigger delay overrides from the trigger that is becoming active. */\n setDelays(delay: number | undefined, closeDelay: number | undefined) {\n this.triggerDelay.set(delay);\n this.triggerCloseDelay.set(closeDelay);\n }\n\n private applyOpen(instant: boolean, trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n this.openTimer.stop();\n this.closeTimer.stop();\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n if (payload !== undefined) {\n this.payload.set(payload);\n }\n\n this.openedInstant.set(instant || this.instantGroup.isInstant());\n this.open.set(true);\n }\n\n private applyClose() {\n this.openedInstant.set(this.instantGroup.isInstant());\n this.open.set(false);\n }\n}\n\nfunction contextFor(root: RdxTooltip): RdxTooltipContext {\n return {\n contentId: root.contentId,\n isOpen: root.open,\n instant: root.instant,\n disabled: root.disabled,\n disableHoverablePopup: root.disableHoverablePopup,\n trackCursorAxis: root.trackCursorAxis,\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n open: (trigger?: HTMLElement, payload?: unknown) => root.show(trigger, payload),\n close: () => root.close(),\n closeDelayed: () => root.scheduleClose(),\n registerTrigger: (trigger: HTMLElement) => root.registerTrigger(trigger),\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => root.onTriggerEnter(trigger, payload),\n onTriggerLeave: () => root.onTriggerLeave(),\n setCursorPosition: (position) => root.setCursorPosition(position),\n setDelays: (delay, closeDelay) => root.setDelays(delay, closeDelay)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { RdxVisuallyHiddenDirective } from '@radix-ng/primitives/visually-hidden';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[hidden]': 'isVisuallyHidden',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxTooltipArrow {\n protected readonly rootContext = injectRdxTooltipContext();\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n\n protected readonly isVisuallyHidden = !!inject(RdxVisuallyHiddenDirective, {\n optional: true\n });\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * The tooltip popup. Renders the content with `role=\"tooltip\"`.\n */\n@Directive({\n selector: '[rdxTooltipPopup]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'tooltip',\n '[id]': 'rootContext.contentId',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()'\n }\n})\nexport class RdxTooltipPopup {\n protected readonly rootContext = injectRdxTooltipContext();\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n/**\n * Moves the tooltip to a different part of the DOM.\n */\n@Directive({\n selector: '[rdxTooltipPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxTooltipPortal {\n readonly container = input.required<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: 'ng-template[rdxTooltipPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectRdxTooltipContext();\n\n return { present: context.isOpen };\n })\n ]\n})\nexport class RdxTooltipPortalPresence {}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput, useGraceArea } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * Positions the tooltip popup against its trigger (or a custom anchor).\n */\n@Directive({\n selector: '[rdxTooltipPositioner]',\n providers: [provideRdxPopperContentConfig({ side: 'top', arrowPadding: 5, collisionPadding: 5 })],\n hostDirectives: [\n RdxDismissableLayer,\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'anchor',\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'positionStrategy',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'wrapper.placedSide()',\n '[attr.data-align]': 'wrapper.placedAlign()',\n '[style]': `{\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)'\n }`\n }\n})\nexport class RdxTooltipPositioner {\n protected readonly rootContext = injectRdxTooltipContext();\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * An element to position the popup against. Defaults to the trigger.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n */\n readonly side = input<Side>('top');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor.\n */\n readonly align = input<Align>('center');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The padding between the arrow and the edges of the content.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\n */\n readonly avoidCollisions = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(5);\n\n /**\n * The sticky behavior on the `align` axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The CSS position strategy used by Floating UI.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>('fixed');\n\n /**\n * Whether to update the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(this.wrapper.placed));\n\n /**\n * Event handler called when the escape key is down. Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(null);\n\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl, 300);\n\n private readonly afterNextRender = afterNextRender(() => {\n this.triggerEl.set(this.rootContext.trigger() ?? null);\n this.containerEl.set(this.elementRef.nativeElement);\n\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const trigger = this.rootContext.trigger();\n\n if (trigger && target?.contains(trigger)) {\n this.rootContext.close();\n }\n };\n\n window.addEventListener('scroll', handleScroll, { capture: true });\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('scroll', handleScroll, { capture: true });\n });\n\n this.graceArea.onPointerExit(() => {\n // A disabled root is fully controlled by the consumer (e.g. the slider thumb drives\n // `open` while dragging). Hover never opens it, so the hover grace area must not close\n // it either — otherwise a drag that leaves the grace polygon would dismiss it and the\n // one-way `open` binding could not bring it back.\n if (this.rootContext.disabled() || this.rootContext.disableHoverablePopup()) return;\n this.rootContext.closeDelayed();\n });\n });\n\n constructor() {\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.close());\n\n // While following the cursor the popup sits right under the pointer; if it could intercept\n // the pointer it would steal hover from the trigger and the tooltip would flicker. Render it\n // pointer-events: none so the pointer always passes through to the trigger underneath.\n effect(() => this.wrapper.nonInteractive.set(this.rootContext.trackCursorAxis() !== 'none'));\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n untracked\n} from '@angular/core';\nimport { BooleanInput, injectId, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\nimport { RdxTooltipHandle } from './tooltip-handle';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n 'data-grace-area-trigger': \"''\",\n '[id]': 'triggerId()',\n '[attr.aria-describedby]': 'isOpen() ? rootContext()?.contentId : undefined',\n '[attr.data-popup-open]': 'isOpen() ? \"\" : undefined',\n '[attr.data-trigger-disabled]': 'isDisabled() ? \"\" : undefined',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerleave)': 'handlePointerLeave()',\n '(pointerdown)': 'handlePointerDown($event)',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()',\n '(click)': 'handleClick()'\n }\n})\nexport class RdxTooltipTrigger {\n private readonly parentRootContext = injectRdxTooltipContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly generatedId = injectId('rdx-tooltip-trigger-');\n\n /**\n * Associates this trigger with a detached tooltip root.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Data associated with this trigger while it is active.\n */\n readonly payload = input<unknown>();\n\n /**\n * ID used to identify this trigger when opening a detached tooltip imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the tooltip should close when the trigger is clicked.\n * @defaultValue true\n */\n readonly closeOnClick = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether this trigger is disabled. A disabled trigger never opens the tooltip.\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Overrides the open delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * Overrides the close delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n readonly userOnPointerDown = input<(event: PointerEvent) => void | boolean | Promise<void | boolean> | undefined>(\n undefined,\n { alias: 'rdxOnPointerDown' }\n );\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n\n /** Disabled if either the root or this trigger is disabled. */\n protected readonly isDisabled = computed(() => (this.rootContext()?.disabled() ?? false) || this.disabled());\n\n /** Whether this specific trigger is the active anchor of an open tooltip. */\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n\n private readonly isPointerDown = signal(false);\n private readonly hasPointerMoveOpened = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(\n untracked(() =>\n handle.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () => this.payload())\n )\n );\n } else if (this.parentRootContext) {\n onCleanup(untracked(() => this.parentRootContext!.registerTrigger(this.elementRef.nativeElement)));\n }\n });\n }\n\n protected handleFocus() {\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled() || this.isPointerDown()) {\n return;\n }\n\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.open(this.elementRef.nativeElement, this.payload());\n }\n\n protected handleBlur() {\n this.rootContext()?.closeDelayed();\n }\n\n protected handleClick() {\n const rootContext = this.rootContext();\n\n if (rootContext?.isOpen() && this.closeOnClick()) {\n rootContext.close();\n }\n }\n\n protected handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n return;\n }\n\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled()) {\n return;\n }\n\n if (rootContext.trackCursorAxis() !== 'none') {\n rootContext.setCursorPosition({ x: event.clientX, y: event.clientY });\n }\n\n if (!this.hasPointerMoveOpened()) {\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.onTriggerEnter(this.elementRef.nativeElement, this.payload());\n this.hasPointerMoveOpened.set(true);\n }\n }\n\n protected handlePointerLeave() {\n this.rootContext()?.onTriggerLeave();\n this.hasPointerMoveOpened.set(false);\n }\n\n protected async handlePointerDown(event: PointerEvent) {\n const user = this.userOnPointerDown();\n let result: unknown;\n\n if (user) {\n result = user(event);\n if (result instanceof Promise) result = await result;\n }\n\n if (event.defaultPrevented || result === false) {\n return;\n }\n\n this.isPointerDown.set(true);\n\n const handlePointerUp = () => {\n setTimeout(() => this.isPointerDown.set(false), 1);\n };\n\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n }\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxTooltipContext } from './tooltip';\n\n/**\n * Connects a tooltip root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxTooltipHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxTooltipHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxTooltipContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxTooltipHandleTrigger<Payload>>();\n private readonly rootTriggerCleanups = new Map<string, () => void>();\n\n readonly isOpen = computed(() => this.rootContext()?.isOpen() ?? false);\n\n open(triggerId: string) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No tooltip trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(trigger.element, trigger.payload());\n }\n\n close() {\n this.rootContext()?.close();\n }\n\n registerRoot(rootContext: RdxTooltipContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(trigger.element));\n });\n\n return () => {\n if (this.rootContext() === rootContext) {\n this.rootTriggerCleanups.forEach((cleanup) => cleanup());\n this.rootTriggerCleanups.clear();\n this.rootContext.set(undefined);\n }\n };\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined) {\n this.rootTriggerCleanups.get(id)?.();\n this.triggers.set(id, { element: trigger, payload });\n const unregisterFromRoot = this.rootContext()?.registerTrigger(trigger);\n\n if (unregisterFromRoot) {\n this.rootTriggerCleanups.set(id, unregisterFromRoot);\n }\n\n return () => {\n this.rootTriggerCleanups.get(id)?.();\n this.rootTriggerCleanups.delete(id);\n\n if (this.triggers.get(id)?.element === trigger) {\n this.triggers.delete(id);\n }\n };\n }\n\n context() {\n return this.rootContext();\n }\n}\n\nexport function createRdxTooltipHandle<Payload = unknown>() {\n return new RdxTooltipHandle<Payload>();\n}\n","import { RdxTooltip } from './src/tooltip';\nimport { RdxTooltipArrow } from './src/tooltip-arrow';\nimport { RdxTooltipPopup } from './src/tooltip-popup';\nimport { RdxTooltipPortal } from './src/tooltip-portal';\nimport { RdxTooltipPortalPresence } from './src/tooltip-portal-presence';\nimport { RdxTooltipPositioner } from './src/tooltip-positioner';\nimport { RdxTooltipProvider } from './src/tooltip-provider';\nimport { RdxTooltipTrigger } from './src/tooltip-trigger';\n\nexport * from './src/tooltip';\nexport * from './src/tooltip-arrow';\nexport * from './src/tooltip-handle';\nexport * from './src/tooltip-popup';\nexport * from './src/tooltip-portal';\nexport * from './src/tooltip-portal-presence';\nexport * from './src/tooltip-positioner';\nexport * from './src/tooltip-provider';\nexport * from './src/tooltip-trigger';\nexport * from './src/tooltip.config';\n\nexport const tooltipImports = [\n RdxTooltip,\n RdxTooltipArrow,\n RdxTooltipPopup,\n RdxTooltipPortal,\n RdxTooltipPortalPresence,\n RdxTooltipPositioner,\n RdxTooltipProvider,\n RdxTooltipTrigger\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ng/primitives",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.0-beta.2",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "peerDependencies": {
21
21
  "@angular/core": "^19.2.0 || ^20.0.0 || ^21.0.0",
22
- "@floating-ui/dom": "^1.7.4",
22
+ "@floating-ui/dom": "^1.7.6",
23
23
  "@internationalized/date": "^3.12.2",
24
24
  "@internationalized/number": "^3.6.7"
25
25
  },
@@ -78,6 +78,10 @@
78
78
  "types": "./types/radix-ng-primitives-collection.d.ts",
79
79
  "default": "./fesm2022/radix-ng-primitives-collection.mjs"
80
80
  },
81
+ "./combobox": {
82
+ "types": "./types/radix-ng-primitives-combobox.d.ts",
83
+ "default": "./fesm2022/radix-ng-primitives-combobox.mjs"
84
+ },
81
85
  "./config": {
82
86
  "types": "./types/radix-ng-primitives-config.d.ts",
83
87
  "default": "./fesm2022/radix-ng-primitives-config.mjs"
@@ -130,6 +134,10 @@
130
134
  "types": "./types/radix-ng-primitives-focus-scope.d.ts",
131
135
  "default": "./fesm2022/radix-ng-primitives-focus-scope.mjs"
132
136
  },
137
+ "./form": {
138
+ "types": "./types/radix-ng-primitives-form.d.ts",
139
+ "default": "./fesm2022/radix-ng-primitives-form.mjs"
140
+ },
133
141
  "./input": {
134
142
  "types": "./types/radix-ng-primitives-input.d.ts",
135
143
  "default": "./fesm2022/radix-ng-primitives-input.mjs"
@@ -194,6 +202,10 @@
194
202
  "types": "./types/radix-ng-primitives-roving-focus.d.ts",
195
203
  "default": "./fesm2022/radix-ng-primitives-roving-focus.mjs"
196
204
  },
205
+ "./scroll-area": {
206
+ "types": "./types/radix-ng-primitives-scroll-area.d.ts",
207
+ "default": "./fesm2022/radix-ng-primitives-scroll-area.mjs"
208
+ },
197
209
  "./select": {
198
210
  "types": "./types/radix-ng-primitives-select.d.ts",
199
211
  "default": "./fesm2022/radix-ng-primitives-select.mjs"
@@ -222,6 +234,10 @@
222
234
  "types": "./types/radix-ng-primitives-time-field.d.ts",
223
235
  "default": "./fesm2022/radix-ng-primitives-time-field.mjs"
224
236
  },
237
+ "./toast": {
238
+ "types": "./types/radix-ng-primitives-toast.d.ts",
239
+ "default": "./fesm2022/radix-ng-primitives-toast.mjs"
240
+ },
225
241
  "./toggle": {
226
242
  "types": "./types/radix-ng-primitives-toggle.d.ts",
227
243
  "default": "./fesm2022/radix-ng-primitives-toggle.mjs"
@@ -11,6 +11,59 @@ const PEER_DEPENDENCIES = {
11
11
  '@internationalized/date': '^3.12.2',
12
12
  '@internationalized/number': '^3.6.7'
13
13
  };
14
+ const AGENT_INSTRUCTIONS_START = '<!-- @radix-ng/primitives:start -->';
15
+ const AGENT_INSTRUCTIONS_END = '<!-- @radix-ng/primitives:end -->';
16
+ const AGENT_INSTRUCTIONS = `${AGENT_INSTRUCTIONS_START}
17
+
18
+ ## Radix NG Primitives
19
+
20
+ This project uses \`@radix-ng/primitives\` — signals-first, headless Angular UI primitives.
21
+
22
+ - Primitives are **headless** directives: they ship no styles. Style them by targeting the
23
+ \`data-*\` state attributes they expose (\`[data-state="open"]\`, \`[data-disabled]\`, …),
24
+ never internal classes.
25
+ - Import each primitive from its secondary entry point, e.g.
26
+ \`import { RdxAccordionRootDirective } from '@radix-ng/primitives/accordion';\`
27
+ - Compound primitives (Dialog, Select, Menu, Accordion, …) are assembled from nested parts
28
+ (Root → Trigger → Content/Item). Children resolve their Root via DI — keep the hierarchy intact.
29
+ - Inputs/outputs are signal-based; two-way bind values with \`[(value)]\`.
30
+ - Keep accessibility intact: visible labels stay programmatically associated with their control;
31
+ do not remove ARIA attributes or keyboard handling the primitives provide.
32
+ - Never invent an API. If an input, output, or selector is not in the docs below, it does not exist.
33
+
34
+ Documentation for agents:
35
+
36
+ - Index: https://radix-ng.com/llms.txt — everything in one file: https://radix-ng.com/llms-full.txt
37
+ - Per-component Markdown: \`https://radix-ng.com/components/<name>.md\`
38
+ - Offline Agent Skills (APIs, examples, \`data-*\` styling contract, common mistakes):
39
+ \`npx skills add radix-ng/primitives/skills\`
40
+
41
+ ${AGENT_INSTRUCTIONS_END}
42
+ `;
43
+ /**
44
+ * Appends the agent instructions block to the workspace's AI instruction files.
45
+ * Appends to every existing AGENTS.md / CLAUDE.md; creates AGENTS.md (the cross-tool
46
+ * standard, also read by Claude Code) when neither exists. Idempotent via the marker.
47
+ */
48
+ function addAgentInstructions(tree, context) {
49
+ const existingFiles = ['AGENTS.md', 'CLAUDE.md'].filter((filePath) => tree.exists(filePath));
50
+ const targets = existingFiles.length ? existingFiles : ['AGENTS.md'];
51
+ targets.forEach((filePath) => {
52
+ if (!tree.exists(filePath)) {
53
+ tree.create(filePath, AGENT_INSTRUCTIONS);
54
+ context.logger.info(` Created ${filePath} with AI assistant instructions.`);
55
+ return;
56
+ }
57
+ const content = tree.read(filePath)?.toString() ?? '';
58
+ if (content.includes(AGENT_INSTRUCTIONS_START)) {
59
+ context.logger.info(` ${filePath} already contains the Radix NG section — skipped.`);
60
+ return;
61
+ }
62
+ const separator = content.endsWith('\n') ? '\n' : '\n\n';
63
+ tree.overwrite(filePath, content + separator + AGENT_INSTRUCTIONS);
64
+ context.logger.info(` Added AI assistant instructions to ${filePath}.`);
65
+ });
66
+ }
14
67
  function logDependencyGroup(context, label, dependencies) {
15
68
  if (!dependencies.length) {
16
69
  return;
@@ -75,6 +128,10 @@ function ngAdd(options = {}) {
75
128
  context.logger.info(`Updated package.json`);
76
129
  logDependencyGroup(context, 'Added', added);
77
130
  logDependencyGroup(context, 'Already present', existing);
131
+ if (options.aiSetup !== false) {
132
+ context.logger.info(``);
133
+ addAgentInstructions(tree, context);
134
+ }
78
135
  if (options.skipInstall) {
79
136
  context.logger.info(``);
80
137
  context.logger.info(`Skipped package manager install.`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export interface Schema {
2
2
  skipInstall?: boolean;
3
+ aiSetup?: boolean;
3
4
  }
@@ -8,6 +8,12 @@
8
8
  "description": "Skip package manager install after updating package.json.",
9
9
  "type": "boolean",
10
10
  "default": false
11
+ },
12
+ "aiSetup": {
13
+ "description": "Add AI assistant instructions (AGENTS.md / CLAUDE.md) pointing coding agents at the library docs and Agent Skills.",
14
+ "type": "boolean",
15
+ "default": true,
16
+ "x-prompt": "Add AI assistant instructions (AGENTS.md / CLAUDE.md) so coding agents use the library correctly?"
11
17
  }
12
18
  },
13
19
  "additionalProperties": false
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Signal, WritableSignal, ElementRef, InputSignalWithTransform, InputSignal, ModelSignal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_accordion from '@radix-ng/primitives/accordion';
4
4
  import * as i1 from '@radix-ng/primitives/collapsible';
5
+ import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
6
  import { BooleanInput, Direction, DataOrientation, AcceptableValue } from '@radix-ng/primitives/core';
6
7
 
7
8
  declare class RdxAccordionContentDirective {
@@ -30,7 +31,7 @@ type AccordionItemContext = {
30
31
  updateOpen: () => void;
31
32
  index: Signal<number>;
32
33
  };
33
- declare const injectAccordionItemContext: (optional?: boolean) => AccordionItemContext | null;
34
+ declare const injectAccordionItemContext: _radix_ng_primitives_core.InjectContext<AccordionItemContext>;
34
35
  declare const provideAccordionItemContext: (useFactory: () => AccordionItemContext) => i0.Provider;
35
36
  /**
36
37
  * @group Components
@@ -80,7 +81,7 @@ type AccordionRootContext = {
80
81
  elementRef: ElementRef<HTMLElement>;
81
82
  changeModelValue: (value: string) => void;
82
83
  };
83
- declare const injectAccordionRootContext: (optional?: boolean) => AccordionRootContext | null;
84
+ declare const injectAccordionRootContext: _radix_ng_primitives_core.InjectContext<AccordionRootContext>;
84
85
  declare const provideAccordionRootContext: (useFactory: () => AccordionRootContext) => i0.Provider;
85
86
  /**
86
87
  * @group Components