@radix-ng/primitives 0.17.0 → 0.18.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/compodoc/documentation.json +5303 -1426
- package/esm2022/select/src/select-trigger.directive.mjs +3 -3
- package/esm2022/select/src/select-value.directive.mjs +4 -9
- package/esm2022/select/src/select.component.mjs +6 -5
- package/esm2022/slider/index.mjs +28 -0
- package/esm2022/slider/radix-ng-primitives-slider.mjs +5 -0
- package/esm2022/slider/src/slider-horizontal.component.mjs +117 -0
- package/esm2022/slider/src/slider-impl.directive.mjs +89 -0
- package/esm2022/slider/src/slider-orientation-context.service.mjs +28 -0
- package/esm2022/slider/src/slider-range.component.mjs +41 -0
- package/esm2022/slider/src/slider-root.component.mjs +207 -0
- package/esm2022/slider/src/slider-thumb-impl.directive.mjs +102 -0
- package/esm2022/slider/src/slider-thumb.component.mjs +22 -0
- package/esm2022/slider/src/slider-track.component.mjs +27 -0
- package/esm2022/slider/src/slider-vertical.component.mjs +117 -0
- package/esm2022/slider/src/utils.mjs +94 -0
- package/esm2022/tooltip/index.mjs +41 -0
- package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +5 -0
- package/esm2022/tooltip/src/get-content-position.mjs +31 -0
- package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +92 -0
- package/esm2022/tooltip/src/tooltip-arrow.token.mjs +3 -0
- package/esm2022/tooltip/src/tooltip-content-attributes.directive.mjs +24 -0
- package/esm2022/tooltip/src/tooltip-content.directive.mjs +48 -0
- package/esm2022/tooltip/src/tooltip-content.token.mjs +3 -0
- package/esm2022/tooltip/src/tooltip-root.directive.mjs +288 -0
- package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +70 -0
- package/esm2022/tooltip/src/tooltip.config.mjs +18 -0
- package/esm2022/tooltip/src/tooltip.constants.mjs +84 -0
- package/esm2022/tooltip/src/tooltip.types.mjs +14 -0
- package/fesm2022/radix-ng-primitives-select.mjs +10 -14
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +830 -0
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-tooltip.mjs +684 -0
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -0
- package/package.json +13 -1
- package/slider/README.md +1 -0
- package/slider/index.d.ts +18 -0
- package/slider/src/slider-horizontal.component.d.ts +29 -0
- package/slider/src/slider-impl.directive.d.ts +18 -0
- package/slider/src/slider-orientation-context.service.d.ts +14 -0
- package/slider/src/slider-range.component.d.ts +13 -0
- package/slider/src/slider-root.component.d.ts +47 -0
- package/slider/src/slider-thumb-impl.directive.d.ts +26 -0
- package/slider/src/slider-thumb.component.d.ts +6 -0
- package/slider/src/slider-track.component.d.ts +7 -0
- package/slider/src/slider-vertical.component.d.ts +29 -0
- package/slider/src/utils.d.ts +52 -0
- package/tooltip/README.md +1 -0
- package/tooltip/index.d.ts +17 -0
- package/tooltip/src/get-content-position.d.ts +3 -0
- package/tooltip/src/tooltip-arrow.directive.d.ts +25 -0
- package/tooltip/src/tooltip-arrow.token.d.ts +3 -0
- package/tooltip/src/tooltip-content-attributes.directive.d.ts +8 -0
- package/tooltip/src/tooltip-content.directive.d.ts +36 -0
- package/tooltip/src/tooltip-content.token.d.ts +3 -0
- package/tooltip/src/tooltip-root.directive.d.ts +103 -0
- package/tooltip/src/tooltip-trigger.directive.d.ts +26 -0
- package/tooltip/src/tooltip.config.d.ts +6 -0
- package/tooltip/src/tooltip.constants.d.ts +9 -0
- package/tooltip/src/tooltip.types.d.ts +18 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip-arrow.token.ts","../../../packages/primitives/tooltip/src/tooltip-content.token.ts","../../../packages/primitives/tooltip/src/tooltip.types.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.directive.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.directive.ts","../../../packages/primitives/tooltip/src/tooltip.config.ts","../../../packages/primitives/tooltip/src/tooltip-root.directive.ts","../../../packages/primitives/tooltip/src/tooltip-content-attributes.directive.ts","../../../packages/primitives/tooltip/src/tooltip.constants.ts","../../../packages/primitives/tooltip/src/get-content-position.ts","../../../packages/primitives/tooltip/src/tooltip-content.directive.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxTooltipArrowDirective } from './tooltip-arrow.directive';\n\nexport const RdxTooltipArrowToken = new InjectionToken<RdxTooltipArrowDirective>('RdxTooltipArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipContentDirective } from './tooltip-content.directive';\n\nexport const RdxTooltipContentToken = new InjectionToken<RdxTooltipContentDirective>('RdxTooltipContentToken');\n","export enum RdxTooltipSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum RdxTooltipAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport type RdxTooltipConfig = {\n delayDuration: number;\n skipDelayDuration: number;\n disableHoverableContent?: boolean;\n hideDelayDuration?: number;\n};\n\nexport type RdxTooltipState = 'delayed-open' | 'instant-open' | 'closed';\n","import { computed, Directive, effect, ElementRef, forwardRef, inject, input, Renderer2 } from '@angular/core';\nimport { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { RdxTooltipContentToken } from './tooltip-content.token';\nimport { RdxTooltipSide } from './tooltip.types';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n standalone: true,\n providers: [\n {\n provide: RdxTooltipArrowToken,\n useExisting: forwardRef(() => RdxTooltipArrowDirective)\n }\n ]\n})\nexport class RdxTooltipArrowDirective {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly contentDirective = inject(RdxTooltipContentToken);\n /** @ignore */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * The width of the arrow in pixels.\n */\n readonly width = input<number>(10);\n\n /**\n * The height of the arrow in pixels.\n */\n readonly height = input<number>(5);\n\n /** @ignore */\n readonly arrowSvgElement = computed<HTMLElement>(() => {\n const width = this.width();\n const height = this.height();\n\n const svgElement = this.renderer.createElement('svg', 'svg');\n this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');\n this.renderer.setAttribute(svgElement, 'width', String(width));\n this.renderer.setAttribute(svgElement, 'height', String(height));\n const polygonElement = this.renderer.createElement('polygon', 'svg');\n this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');\n this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');\n this.renderer.appendChild(svgElement, polygonElement);\n\n return svgElement;\n });\n\n /** @ignore */\n private readonly onArrowSvgElementChangeEffect = effect(() => {\n const arrowElement = this.arrowSvgElement();\n\n this.renderer.appendChild(this.elementRef.nativeElement, arrowElement);\n });\n\n /** @ignore */\n private readonly onSideChangeEffect = effect(() => {\n const side = this.contentDirective.side();\n\n this.elementRef.nativeElement.parentElement?.setAttribute('style', `position: relative;`);\n this.elementRef.nativeElement.style.position = 'absolute';\n this.elementRef.nativeElement.style.boxSizing = '';\n this.elementRef.nativeElement.style.width = `${this.width()}px`;\n this.elementRef.nativeElement.style.height = `${this.height()}px`;\n this.elementRef.nativeElement.style.fontSize = '0px';\n\n if ([RdxTooltipSide.Top, RdxTooltipSide.Bottom].includes(side)) {\n this.elementRef.nativeElement.style.left = `calc(50% - ${this.width() / 2}px)`;\n this.elementRef.nativeElement.style.top = '100%';\n\n if (side === RdxTooltipSide.Bottom) {\n this.elementRef.nativeElement.style.transform = 'rotate(180deg)';\n this.elementRef.nativeElement.style.top = `-${this.height()}px`;\n }\n }\n\n if ([RdxTooltipSide.Left, RdxTooltipSide.Right].includes(side)) {\n this.elementRef.nativeElement.style.top = `calc(50% - ${this.height() / 2}px)`;\n\n if (side === RdxTooltipSide.Left) {\n this.elementRef.nativeElement.style.left = `100%`;\n this.elementRef.nativeElement.style.transform = 'rotate(-90deg) translate(0, -50%)';\n }\n\n if (side === RdxTooltipSide.Right) {\n this.elementRef.nativeElement.style.right = `100%`;\n this.elementRef.nativeElement.style.transform = 'rotate(90deg) translate(0, -50%)';\n }\n }\n });\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { injectTooltipRoot } from './tooltip-root.directive';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n standalone: true,\n host: {\n '[attr.data-state]': 'tooltipRoot.state()',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave()',\n '(pointerdown)': 'onPointerDown()',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxTooltipTriggerDirective {\n /** @ignore */\n readonly tooltipRoot = injectTooltipRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\n /** @ignore */\n private isPointerDown = false;\n /** @ignore */\n private isPointerInside = false;\n\n /** @ignore */\n onPointerMove(event: PointerEvent): void {\n if (event.pointerType === 'touch') {\n return;\n }\n\n if (!this.isPointerInside) {\n this.tooltipRoot.onTriggerEnter();\n this.isPointerInside = true;\n }\n }\n\n /** @ignore */\n onPointerLeave(): void {\n this.isPointerInside = false;\n this.tooltipRoot.onTriggerLeave();\n }\n\n /** @ignore */\n onPointerDown(): void {\n this.isPointerDown = true;\n\n this.elementRef.nativeElement.addEventListener(\n 'pointerup',\n () => {\n this.isPointerDown = false;\n },\n { once: true }\n );\n }\n\n /** @ignore */\n onFocus(): void {\n if (!this.isPointerDown) {\n this.tooltipRoot.handleOpen();\n }\n }\n\n /** @ignore */\n onBlur(): void {\n this.tooltipRoot.handleClose();\n }\n\n /** @ignore */\n onClick(): void {\n this.tooltipRoot.handleClose();\n }\n}\n","import { inject, InjectionToken, Provider } from '@angular/core';\nimport { RdxTooltipConfig } from './tooltip.types';\n\nexport const defaultTooltipConfig: RdxTooltipConfig = {\n delayDuration: 700,\n skipDelayDuration: 300\n};\n\nexport const RdxTooltipConfigToken = new InjectionToken<RdxTooltipConfig>('RdxTooltipConfigToken');\n\nexport function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[] {\n return [\n {\n provide: RdxTooltipConfigToken,\n useValue: { ...defaultTooltipConfig, ...config }\n }\n ];\n}\n\nexport function injectTooltipConfig(): RdxTooltipConfig {\n return inject(RdxTooltipConfigToken, { optional: true }) ?? defaultTooltipConfig;\n}\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n input,\n OnInit,\n output,\n PLATFORM_ID,\n signal,\n untracked,\n ViewContainerRef,\n ViewRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, filter, take } from 'rxjs';\nimport { RdxTooltipContentToken } from './tooltip-content.token';\nimport { RdxTooltipTriggerDirective } from './tooltip-trigger.directive';\nimport { injectTooltipConfig } from './tooltip.config';\nimport { RdxTooltipState } from './tooltip.types';\n\nexport const RdxTooltipRootToken = new InjectionToken<RdxTooltipRootDirective>('RdxTooltipRootToken');\n\nexport function injectTooltipRoot(): RdxTooltipRootDirective {\n return inject(RdxTooltipRootToken);\n}\n\n@Directive({\n selector: '[rdxTooltipRoot]',\n standalone: true,\n providers: [\n {\n provide: RdxTooltipRootToken,\n useExisting: forwardRef(() => RdxTooltipRootDirective)\n }\n ],\n exportAs: 'rdxTooltipRoot'\n})\nexport class RdxTooltipRootDirective implements OnInit {\n /** @ignore */\n private readonly viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n private readonly destroyRef = inject(DestroyRef);\n /** @ignore */\n private readonly overlay = inject(Overlay);\n /** @ignore */\n private readonly platformId = inject(PLATFORM_ID);\n /** @ignore */\n private readonly document = inject(DOCUMENT);\n /** @ignore */\n readonly tooltipConfig = injectTooltipConfig();\n\n /**\n * The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state.\n */\n readonly defaultOpen = input<boolean>(false);\n\n /**\n * The controlled open state of the tooltip. Must be used in conjunction with onOpenChange.\n */\n readonly open = input<boolean | undefined>();\n\n /**\n * Override the duration given to the configuration to customise the open delay for a specific tooltip.\n */\n readonly delayDuration = input<number>(this.tooltipConfig.delayDuration);\n\n /** @ignore */\n readonly disableHoverableContent = input<boolean>(this.tooltipConfig.disableHoverableContent ?? false);\n\n /**\n * Event handler called when the open state of the tooltip changes.\n */\n readonly onOpenChange = output<boolean>();\n\n /** @ignore */\n readonly isOpen = signal<boolean>(this.defaultOpen());\n /** @ignore */\n readonly isOpenDelayed = signal<boolean>(true);\n /** @ignore */\n readonly wasOpenDelayed = signal<boolean>(false);\n /** @ignore */\n readonly state = computed<RdxTooltipState>(() => {\n const currentIsOpen = this.isOpen();\n const currentWasOpenDelayed = this.wasOpenDelayed();\n\n if (currentIsOpen) {\n return currentWasOpenDelayed ? 'delayed-open' : 'instant-open';\n }\n\n return 'closed';\n });\n /** @ignore */\n readonly tooltipContentDirective = contentChild.required(RdxTooltipContentToken);\n /** @ignore */\n readonly tooltipTriggerElementRef = contentChild.required(RdxTooltipTriggerDirective, { read: ElementRef });\n\n /** @ignore */\n private openTimer = 0;\n /** @ignore */\n private skipDelayTimer = 0;\n /** @ignore */\n private overlayRef?: OverlayRef;\n /** @ignore */\n private instance?: ViewRef;\n /** @ignore */\n private portal: TemplatePortal<unknown>;\n /** @ignore */\n private isControlledExternally = false;\n\n /** @ignore */\n ngOnInit(): void {\n if (this.defaultOpen()) {\n this.handleOpen();\n }\n\n this.isControlledExternally = this.open() !== undefined;\n }\n\n /** @ignore */\n onTriggerEnter(): void {\n if (this.isControlledExternally) {\n return;\n }\n\n if (this.isOpenDelayed()) {\n this.handleDelayedOpen();\n } else {\n this.handleOpen();\n }\n }\n\n /** @ignore */\n onTriggerLeave(): void {\n this.clearTimeout(this.openTimer);\n this.handleClose();\n }\n\n /** @ignore */\n onOpen(): void {\n this.clearTimeout(this.skipDelayTimer);\n this.isOpenDelayed.set(false);\n }\n\n /** @ignore */\n onClose(): void {\n this.clearTimeout(this.skipDelayTimer);\n\n if (isPlatformBrowser(this.platformId)) {\n this.skipDelayTimer = window.setTimeout(() => {\n this.isOpenDelayed.set(true);\n }, this.tooltipConfig.skipDelayDuration);\n }\n }\n\n /** @ignore */\n handleOpen(): void {\n if (this.isControlledExternally) {\n return;\n }\n\n this.wasOpenDelayed.set(false);\n this.setOpen(true);\n }\n\n /** @ignore */\n handleClose(): void {\n if (this.isControlledExternally) {\n return;\n }\n\n this.clearTimeout(this.openTimer);\n this.setOpen(false);\n }\n\n /** @ignore */\n private handleOverlayKeydown(): void {\n if (!this.overlayRef) {\n return;\n }\n\n this.overlayRef\n .keydownEvents()\n .pipe(\n filter((event) => event.key === 'Escape'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((event) => {\n this.tooltipContentDirective().onEscapeKeyDown.emit(event);\n\n if (!event.defaultPrevented) {\n this.handleClose();\n }\n });\n }\n\n /** @ignore */\n private handlePointerDownOutside(): void {\n if (!this.overlayRef) {\n return;\n }\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.tooltipContentDirective().onPointerDownOutside.emit(event));\n }\n\n /** @ignore */\n private handleDelayedOpen(): void {\n this.clearTimeout(this.openTimer);\n\n if (isPlatformBrowser(this.platformId)) {\n this.openTimer = window.setTimeout(() => {\n this.wasOpenDelayed.set(true);\n this.setOpen(true);\n }, this.delayDuration());\n }\n }\n\n /** @ignore */\n private setOpen(open = false): void {\n if (open) {\n this.onOpen();\n\n this.document.dispatchEvent(new CustomEvent('tooltip.open'));\n } else {\n this.onClose();\n }\n\n this.isOpen.set(open);\n this.onOpenChange.emit(open);\n }\n\n /** @ignore */\n private createOverlayRef(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n this.overlayRef = this.overlay.create({\n direction: undefined,\n positionStrategy: this.getPositionStrategy(this.tooltipContentDirective().position()),\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n\n this.overlayRef\n .detachments()\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.detach());\n\n this.handleOverlayKeydown();\n this.handlePointerDownOutside();\n\n return this.overlayRef;\n }\n\n /** @ignore */\n private show(): void {\n this.overlayRef = this.createOverlayRef();\n\n this.detach();\n\n this.portal =\n this.portal ||\n new TemplatePortal(this.tooltipContentDirective().templateRef, this.viewContainerRef, {\n state: this.state,\n side: this.tooltipContentDirective().side\n });\n\n this.instance = this.overlayRef.attach(this.portal);\n }\n\n /** @ignore */\n private detach(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n }\n\n /** @ignore */\n private hide(): void {\n if (this.isControlledExternally && this.open()) {\n return;\n }\n\n asyncScheduler.schedule(() => {\n this.instance?.destroy();\n }, this.tooltipConfig.hideDelayDuration ?? 0);\n }\n\n /** @ignore */\n private getPositionStrategy(connectedPosition: ConnectedPosition): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.tooltipTriggerElementRef())\n .withFlexibleDimensions(false)\n .withPositions([\n connectedPosition\n ])\n .withLockedPosition();\n }\n\n /** @ignore */\n private clearTimeout(timeoutId: number): void {\n if (isPlatformBrowser(this.platformId)) {\n window.clearTimeout(timeoutId);\n }\n }\n\n /** @ignore */\n private readonly onIsOpenChangeEffect = effect(() => {\n const isOpen = this.isOpen();\n\n untracked(() => {\n if (isOpen) {\n this.show();\n } else {\n this.hide();\n }\n });\n });\n\n /** @ignore */\n private readonly onPositionChangeEffect = effect(() => {\n const position = this.tooltipContentDirective().position();\n\n if (this.overlayRef) {\n const positionStrategy = this.getPositionStrategy(position);\n\n this.overlayRef.updatePositionStrategy(positionStrategy);\n }\n });\n\n /** @ignore */\n private readonly onOpenChangeEffect = effect(() => {\n const currentOpen = this.open();\n this.isControlledExternally = currentOpen !== undefined;\n\n untracked(() => {\n if (this.isControlledExternally) {\n this.setOpen(currentOpen);\n }\n });\n });\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxTooltipContentToken } from './tooltip-content.token';\nimport { RdxTooltipRootDirective } from './tooltip-root.directive';\n\n@Directive({\n selector: '[rdxTooltipContentAttributes]',\n standalone: true,\n host: {\n '[attr.data-state]': 'tooltipRoot.state()',\n '[attr.data-side]': 'tooltipContent.side()'\n }\n})\nexport class RdxTooltipContentAttributesDirective {\n readonly tooltipRoot = inject(RdxTooltipRootDirective);\n readonly tooltipContent = inject(RdxTooltipContentToken);\n}\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { RdxTooltipAlign, RdxTooltipSide } from './tooltip.types';\n\ntype TooltipPositions = {\n [key in RdxTooltipSide]: {\n [key in RdxTooltipAlign]: ConnectionPositionPair;\n };\n};\n\nexport const TOOLTIP_POSITIONS: TooltipPositions = {\n [RdxTooltipSide.Top]: {\n [RdxTooltipAlign.Center]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n [RdxTooltipAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n [RdxTooltipAlign.End]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n },\n [RdxTooltipSide.Right]: {\n [RdxTooltipAlign.Center]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n [RdxTooltipAlign.Start]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxTooltipAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n },\n [RdxTooltipSide.Bottom]: {\n [RdxTooltipAlign.Center]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n [RdxTooltipAlign.Start]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxTooltipAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n },\n [RdxTooltipSide.Left]: {\n [RdxTooltipAlign.Center]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n [RdxTooltipAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n [RdxTooltipAlign.End]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n }\n};\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { TOOLTIP_POSITIONS } from './tooltip.constants';\nimport { RdxTooltipAlign, RdxTooltipSide } from './tooltip.types';\n\nexport function getContentPosition(\n side: RdxTooltipSide,\n align: RdxTooltipAlign,\n sideOffset: number,\n alignOffset: number\n): ConnectedPosition {\n const position = TOOLTIP_POSITIONS[side][align] ?? TOOLTIP_POSITIONS[RdxTooltipSide.Top][RdxTooltipAlign.Center];\n\n if (sideOffset > 0) {\n let xFactor = 0;\n let yFactor = 0;\n\n switch (side) {\n case RdxTooltipSide.Top:\n yFactor = -1;\n break;\n case RdxTooltipSide.Bottom:\n yFactor = 1;\n break;\n case RdxTooltipSide.Left:\n xFactor = -1;\n break;\n case RdxTooltipSide.Right:\n xFactor = 1;\n break;\n }\n\n position.offsetX = xFactor * sideOffset;\n position.offsetY = yFactor * sideOffset;\n }\n\n if ([RdxTooltipAlign.Start, RdxTooltipAlign.End].includes(align) && alignOffset) {\n const alignOffsetFactor = align === RdxTooltipAlign.End ? -1 : 1;\n\n position.offsetX = alignOffsetFactor * alignOffset;\n }\n\n return position;\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { computed, Directive, forwardRef, inject, input, output, TemplateRef } from '@angular/core';\nimport { getContentPosition } from './get-content-position';\nimport { RdxTooltipContentToken } from './tooltip-content.token';\nimport { RdxTooltipAlign, RdxTooltipSide } from './tooltip.types';\n\n@Directive({\n selector: '[rdxTooltipContent]',\n standalone: true,\n providers: [{ provide: RdxTooltipContentToken, useExisting: forwardRef(() => RdxTooltipContentDirective) }]\n})\nexport class RdxTooltipContentDirective {\n /** @ignore */\n readonly templateRef = inject(TemplateRef);\n\n /**\n * The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<RdxTooltipSide>(RdxTooltipSide.Top);\n\n /**\n * The distance in pixels from the trigger.\n */\n readonly sideOffset = input<number>(0);\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n */\n readonly align = input<RdxTooltipAlign>(RdxTooltipAlign.Center);\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n readonly alignOffset = input<number>(0);\n\n /** @ingore */\n readonly position = computed<ConnectedPosition>(() =>\n getContentPosition(this.side(), this.align(), this.sideOffset(), this.alignOffset())\n );\n\n /**\n * Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.\n */\n readonly onEscapeKeyDown = output<KeyboardEvent>();\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling event.preventDefault.\n */\n readonly onPointerDownOutside = output<MouseEvent>();\n}\n","import { NgModule } from '@angular/core';\nimport { RdxTooltipArrowDirective } from './src/tooltip-arrow.directive';\nimport { RdxTooltipContentAttributesDirective } from './src/tooltip-content-attributes.directive';\nimport { RdxTooltipContentDirective } from './src/tooltip-content.directive';\nimport { RdxTooltipRootDirective } from './src/tooltip-root.directive';\nimport { RdxTooltipTriggerDirective } from './src/tooltip-trigger.directive';\n\nexport * from './src/tooltip-arrow.directive';\nexport * from './src/tooltip-content-attributes.directive';\nexport * from './src/tooltip-content.directive';\nexport * from './src/tooltip-root.directive';\nexport * from './src/tooltip-trigger.directive';\nexport * from './src/tooltip.types';\n\nconst _imports = [\n RdxTooltipArrowDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipContentAttributesDirective,\n RdxTooltipRootDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@radix-ng/primitives",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.18.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -139,6 +139,12 @@
|
|
139
139
|
"esm": "./esm2022/separator/radix-ng-primitives-separator.mjs",
|
140
140
|
"default": "./fesm2022/radix-ng-primitives-separator.mjs"
|
141
141
|
},
|
142
|
+
"./slider": {
|
143
|
+
"types": "./slider/index.d.ts",
|
144
|
+
"esm2022": "./esm2022/slider/radix-ng-primitives-slider.mjs",
|
145
|
+
"esm": "./esm2022/slider/radix-ng-primitives-slider.mjs",
|
146
|
+
"default": "./fesm2022/radix-ng-primitives-slider.mjs"
|
147
|
+
},
|
142
148
|
"./switch": {
|
143
149
|
"types": "./switch/index.d.ts",
|
144
150
|
"esm2022": "./esm2022/switch/radix-ng-primitives-switch.mjs",
|
@@ -163,6 +169,12 @@
|
|
163
169
|
"esm": "./esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs",
|
164
170
|
"default": "./fesm2022/radix-ng-primitives-toggle-group.mjs"
|
165
171
|
},
|
172
|
+
"./tooltip": {
|
173
|
+
"types": "./tooltip/index.d.ts",
|
174
|
+
"esm2022": "./esm2022/tooltip/radix-ng-primitives-tooltip.mjs",
|
175
|
+
"esm": "./esm2022/tooltip/radix-ng-primitives-tooltip.mjs",
|
176
|
+
"default": "./fesm2022/radix-ng-primitives-tooltip.mjs"
|
177
|
+
},
|
166
178
|
"./visually-hidden": {
|
167
179
|
"types": "./visually-hidden/index.d.ts",
|
168
180
|
"esm2022": "./esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs",
|
package/slider/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# @radix-ng/primitives/slider
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./src/slider-root.component";
|
3
|
+
import * as i2 from "./src/slider-track.component";
|
4
|
+
import * as i3 from "./src/slider-range.component";
|
5
|
+
import * as i4 from "./src/slider-thumb.component";
|
6
|
+
export * from './src/slider-horizontal.component';
|
7
|
+
export * from './src/slider-impl.directive';
|
8
|
+
export * from './src/slider-range.component';
|
9
|
+
export * from './src/slider-root.component';
|
10
|
+
export * from './src/slider-thumb-impl.directive';
|
11
|
+
export * from './src/slider-thumb.component';
|
12
|
+
export * from './src/slider-track.component';
|
13
|
+
export * from './src/slider-vertical.component';
|
14
|
+
export declare class RdxSliderModule {
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderModule, never>;
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxSliderModule, never, [typeof i1.RdxSliderRootComponent, typeof i2.RdxSliderTrackComponent, typeof i3.RdxSliderRangeComponent, typeof i4.RdxSliderThumbComponent], [typeof i1.RdxSliderRootComponent, typeof i2.RdxSliderTrackComponent, typeof i3.RdxSliderRangeComponent, typeof i4.RdxSliderThumbComponent]>;
|
17
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<RdxSliderModule>;
|
18
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
2
|
+
import { EventEmitter } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class RdxSliderHorizontalComponent {
|
5
|
+
private readonly rootContext;
|
6
|
+
dir: 'ltr' | 'rtl';
|
7
|
+
readonly inverted: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
8
|
+
min: number;
|
9
|
+
max: number;
|
10
|
+
className: string;
|
11
|
+
slideStart: EventEmitter<number>;
|
12
|
+
slideMove: EventEmitter<number>;
|
13
|
+
slideEnd: EventEmitter<void>;
|
14
|
+
stepKeyDown: EventEmitter<{
|
15
|
+
event: KeyboardEvent;
|
16
|
+
direction: number;
|
17
|
+
}>;
|
18
|
+
endKeyDown: EventEmitter<KeyboardEvent>;
|
19
|
+
homeKeyDown: EventEmitter<KeyboardEvent>;
|
20
|
+
private readonly sliderElement;
|
21
|
+
private readonly rect;
|
22
|
+
onSlideStart(event: PointerEvent): void;
|
23
|
+
onSlideMove(event: PointerEvent): void;
|
24
|
+
onSlideEnd(): void;
|
25
|
+
onStepKeyDown(event: KeyboardEvent): void;
|
26
|
+
private getValueFromPointer;
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderHorizontalComponent, never>;
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderHorizontalComponent, "rdx-slider-horizontal", never, { "dir": { "alias": "dir"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "slideStart": "slideStart"; "slideMove": "slideMove"; "slideEnd": "slideEnd"; "stepKeyDown": "stepKeyDown"; "endKeyDown": "endKeyDown"; "homeKeyDown": "homeKeyDown"; }, never, ["*"], true, never>;
|
29
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
2
|
+
import { RdxSliderRootComponent } from './slider-root.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class RdxSliderImplDirective {
|
5
|
+
protected readonly rootContext: RdxSliderRootComponent;
|
6
|
+
slideStart: EventEmitter<PointerEvent>;
|
7
|
+
slideMove: EventEmitter<PointerEvent>;
|
8
|
+
slideEnd: EventEmitter<PointerEvent>;
|
9
|
+
homeKeyDown: EventEmitter<KeyboardEvent>;
|
10
|
+
endKeyDown: EventEmitter<KeyboardEvent>;
|
11
|
+
stepKeyDown: EventEmitter<KeyboardEvent>;
|
12
|
+
onKeyDown(event: KeyboardEvent): void;
|
13
|
+
onPointerDown(event: PointerEvent): void;
|
14
|
+
onPointerMove(event: PointerEvent): void;
|
15
|
+
onPointerUp(event: PointerEvent): void;
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderImplDirective, never>;
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxSliderImplDirective, "[rdxSliderImpl]", never, {}, { "slideStart": "slideStart"; "slideMove": "slideMove"; "slideEnd": "slideEnd"; "homeKeyDown": "homeKeyDown"; "endKeyDown": "endKeyDown"; "stepKeyDown": "stepKeyDown"; }, never, never, true, never>;
|
18
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
export interface OrientationContext {
|
3
|
+
startEdge: string;
|
4
|
+
endEdge: string;
|
5
|
+
direction: number;
|
6
|
+
size: string;
|
7
|
+
}
|
8
|
+
export declare class RdxSliderOrientationContextService {
|
9
|
+
private contextSignal;
|
10
|
+
get context(): OrientationContext;
|
11
|
+
updateContext(context: Partial<OrientationContext>): void;
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderOrientationContextService, never>;
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RdxSliderOrientationContextService>;
|
14
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { RdxSliderRootComponent } from './slider-root.component';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare class RdxSliderRangeComponent {
|
4
|
+
protected readonly rootContext: RdxSliderRootComponent;
|
5
|
+
percentages: import("@angular/core").Signal<number[]>;
|
6
|
+
offsetStart: import("@angular/core").Signal<number>;
|
7
|
+
offsetEnd: import("@angular/core").Signal<number>;
|
8
|
+
rangeStyles: import("@angular/core").Signal<{
|
9
|
+
[x: string]: string;
|
10
|
+
}>;
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderRangeComponent, never>;
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderRangeComponent, "rdx-slider-range", never, {}, {}, never, ["*"], true, never>;
|
13
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
2
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
3
|
+
import { RdxSliderOrientationContextService } from './slider-orientation-context.service';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class RdxSliderRootComponent implements OnInit {
|
6
|
+
/** @ignore */
|
7
|
+
readonly orientationContext: RdxSliderOrientationContextService;
|
8
|
+
readonly min: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
9
|
+
readonly max: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
10
|
+
readonly step: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
11
|
+
readonly minStepsBetweenThumbs: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
12
|
+
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
13
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
14
|
+
readonly inverted: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
15
|
+
readonly dir: import("@angular/core").InputSignal<"ltr" | "rtl">;
|
16
|
+
className: string;
|
17
|
+
valueChange: EventEmitter<number[]>;
|
18
|
+
valueCommit: EventEmitter<number[]>;
|
19
|
+
readonly modelValue: import("@angular/core").ModelSignal<number[]>;
|
20
|
+
/** @ignore */
|
21
|
+
readonly valueIndexToChange: import("@angular/core").ModelSignal<number>;
|
22
|
+
/** @ignore */
|
23
|
+
readonly valuesBeforeSlideStart: import("@angular/core").ModelSignal<number[]>;
|
24
|
+
readonly isSlidingFromLeft: import("@angular/core").Signal<boolean>;
|
25
|
+
readonly isSlidingFromBottom: import("@angular/core").Signal<boolean>;
|
26
|
+
/** @ignore */
|
27
|
+
thumbElements: HTMLElement[];
|
28
|
+
/** @ignore */
|
29
|
+
ngOnInit(): void;
|
30
|
+
/** @ignore */
|
31
|
+
onPointerDown(): void;
|
32
|
+
/** @ignore */
|
33
|
+
handleSlideStart(value: number): void;
|
34
|
+
/** @ignore */
|
35
|
+
handleSlideMove(value: number): void;
|
36
|
+
/** @ignore */
|
37
|
+
handleSlideEnd(): void;
|
38
|
+
/** @ignore */
|
39
|
+
handleStepKeyDown(event: {
|
40
|
+
event: KeyboardEvent;
|
41
|
+
direction: number;
|
42
|
+
}): void;
|
43
|
+
/** @ignore */
|
44
|
+
updateValues(value: number, atIndex: number, commit?: boolean): void;
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderRootComponent, never>;
|
46
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderRootComponent, "rdx-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "minStepsBetweenThumbs": { "alias": "minStepsBetweenThumbs"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; }; "modelValue": { "alias": "modelValue"; "required": false; "isSignal": true; }; "valueIndexToChange": { "alias": "valueIndexToChange"; "required": false; "isSignal": true; }; "valuesBeforeSlideStart": { "alias": "valuesBeforeSlideStart"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "valueCommit": "valueCommit"; "modelValue": "modelValueChange"; "valueIndexToChange": "valueIndexToChangeChange"; "valuesBeforeSlideStart": "valuesBeforeSlideStartChange"; }, never, ["*"], true, never>;
|
47
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
2
|
+
import { RdxSliderRootComponent } from './slider-root.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class RdxSliderThumbImplDirective implements OnInit, OnDestroy {
|
5
|
+
protected readonly rootContext: RdxSliderRootComponent;
|
6
|
+
private readonly elementRef;
|
7
|
+
private resizeObserver;
|
8
|
+
isMounted: import("@angular/core").WritableSignal<boolean>;
|
9
|
+
thumbIndex: import("@angular/core").Signal<number | null>;
|
10
|
+
value: import("@angular/core").Signal<number | undefined>;
|
11
|
+
percent: import("@angular/core").Signal<number>;
|
12
|
+
transform: import("@angular/core").Signal<string>;
|
13
|
+
orientationSize: import("@angular/core").WritableSignal<number>;
|
14
|
+
thumbInBoundsOffset: import("@angular/core").Signal<number>;
|
15
|
+
combinedStyles: import("@angular/core").Signal<{
|
16
|
+
[x: string]: string | undefined;
|
17
|
+
position: string;
|
18
|
+
transform: string;
|
19
|
+
display: string | undefined;
|
20
|
+
}>;
|
21
|
+
onFocus(): void;
|
22
|
+
ngOnInit(): void;
|
23
|
+
ngOnDestroy(): void;
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderThumbImplDirective, never>;
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxSliderThumbImplDirective, "[rdxSliderThumbImpl]", never, {}, {}, never, never, true, never>;
|
26
|
+
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./slider-thumb-impl.directive";
|
3
|
+
export declare class RdxSliderThumbComponent {
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderThumbComponent, never>;
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderThumbComponent, "rdx-slider-thumb", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.RdxSliderThumbImplDirective; inputs: {}; outputs: {}; }]>;
|
6
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { RdxSliderRootComponent } from './slider-root.component';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare class RdxSliderTrackComponent {
|
4
|
+
protected readonly rootContext: RdxSliderRootComponent;
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderTrackComponent, never>;
|
6
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderTrackComponent, "rdx-slider-track", never, {}, {}, never, ["*"], true, never>;
|
7
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
2
|
+
import { EventEmitter } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class RdxSliderVerticalComponent {
|
5
|
+
private readonly rootContext;
|
6
|
+
dir: 'ltr' | 'rtl';
|
7
|
+
readonly inverted: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
8
|
+
min: number;
|
9
|
+
max: number;
|
10
|
+
className: string;
|
11
|
+
slideStart: EventEmitter<number>;
|
12
|
+
slideMove: EventEmitter<number>;
|
13
|
+
slideEnd: EventEmitter<void>;
|
14
|
+
stepKeyDown: EventEmitter<{
|
15
|
+
event: KeyboardEvent;
|
16
|
+
direction: number;
|
17
|
+
}>;
|
18
|
+
endKeyDown: EventEmitter<KeyboardEvent>;
|
19
|
+
homeKeyDown: EventEmitter<KeyboardEvent>;
|
20
|
+
private readonly sliderElement;
|
21
|
+
private readonly rect;
|
22
|
+
onSlideStart(event: PointerEvent): void;
|
23
|
+
onSlideMove(event: PointerEvent): void;
|
24
|
+
onSlideEnd(): void;
|
25
|
+
onStepKeyDown(event: KeyboardEvent): void;
|
26
|
+
private getValueFromPointer;
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxSliderVerticalComponent, never>;
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RdxSliderVerticalComponent, "rdx-slider-vertical", never, { "dir": { "alias": "dir"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "slideStart": "slideStart"; "slideMove": "slideMove"; "slideEnd": "slideEnd"; "stepKeyDown": "stepKeyDown"; "endKeyDown": "endKeyDown"; "homeKeyDown": "homeKeyDown"; }, never, ["*"], true, never>;
|
29
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
export declare function linearScale(input: readonly [number, number], output: readonly [number, number]): (value: number) => number;
|
2
|
+
/**
|
3
|
+
* Verifies the minimum steps between all values is greater than or equal
|
4
|
+
* to the expected minimum steps.
|
5
|
+
*
|
6
|
+
* @example
|
7
|
+
* // returns false
|
8
|
+
* hasMinStepsBetweenValues([1,2,3], 2);
|
9
|
+
*
|
10
|
+
* @example
|
11
|
+
* // returns true
|
12
|
+
* hasMinStepsBetweenValues([1,2,3], 1);
|
13
|
+
*/
|
14
|
+
export declare function hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number): boolean;
|
15
|
+
/**
|
16
|
+
* Given a `values` array and a `nextValue`, determine which value in
|
17
|
+
* the array is closest to `nextValue` and return its index.
|
18
|
+
*
|
19
|
+
* @example
|
20
|
+
* // returns 1
|
21
|
+
* getClosestValueIndex([10, 30], 25);
|
22
|
+
*/
|
23
|
+
export declare function getClosestValueIndex(values: number[], nextValue: number): number;
|
24
|
+
/**
|
25
|
+
* Gets an array of steps between each value.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* // returns [1, 9]
|
29
|
+
* getStepsBetweenValues([10, 11, 20]);
|
30
|
+
*/
|
31
|
+
export declare function getStepsBetweenValues(values: number[]): number[];
|
32
|
+
/**
|
33
|
+
* Offsets the thumb centre point while sliding to ensure it remains
|
34
|
+
* within the bounds of the slider when reaching the edges
|
35
|
+
*/
|
36
|
+
export declare function getThumbInBoundsOffset(width: number, left: number, direction: number): number;
|
37
|
+
export declare function convertValueToPercentage(value: number, min: number, max: number): number;
|
38
|
+
export declare function getDecimalCount(value: number): number;
|
39
|
+
export declare function roundValue(value: number, decimalCount: number): number;
|
40
|
+
export declare function getNextSortedValues(prevValues: number[] | undefined, nextValue: number, atIndex: number): number[];
|
41
|
+
export declare const PAGE_KEYS: string[];
|
42
|
+
export declare const ARROW_KEYS: string[];
|
43
|
+
type SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';
|
44
|
+
export declare const BACK_KEYS: Record<SlideDirection, string[]>;
|
45
|
+
export interface OrientationContext {
|
46
|
+
direction: number;
|
47
|
+
size: 'width' | 'height';
|
48
|
+
startEdge: 'left' | 'top';
|
49
|
+
endEdge: 'right' | 'bottom';
|
50
|
+
}
|
51
|
+
export declare function clamp(value: number, min?: number, max?: number): number;
|
52
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
# @radix-ng/primitives/tooltip
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./src/tooltip-arrow.directive";
|
3
|
+
import * as i2 from "./src/tooltip-content.directive";
|
4
|
+
import * as i3 from "./src/tooltip-trigger.directive";
|
5
|
+
import * as i4 from "./src/tooltip-content-attributes.directive";
|
6
|
+
import * as i5 from "./src/tooltip-root.directive";
|
7
|
+
export * from './src/tooltip-arrow.directive';
|
8
|
+
export * from './src/tooltip-content-attributes.directive';
|
9
|
+
export * from './src/tooltip-content.directive';
|
10
|
+
export * from './src/tooltip-root.directive';
|
11
|
+
export * from './src/tooltip-trigger.directive';
|
12
|
+
export * from './src/tooltip.types';
|
13
|
+
export declare class RdxTooltipModule {
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxTooltipModule, never>;
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RdxTooltipModule, never, [typeof i1.RdxTooltipArrowDirective, typeof i2.RdxTooltipContentDirective, typeof i3.RdxTooltipTriggerDirective, typeof i4.RdxTooltipContentAttributesDirective, typeof i5.RdxTooltipRootDirective], [typeof i1.RdxTooltipArrowDirective, typeof i2.RdxTooltipContentDirective, typeof i3.RdxTooltipTriggerDirective, typeof i4.RdxTooltipContentAttributesDirective, typeof i5.RdxTooltipRootDirective]>;
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<RdxTooltipModule>;
|
17
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
2
|
+
import { RdxTooltipAlign, RdxTooltipSide } from './tooltip.types';
|
3
|
+
export declare function getContentPosition(side: RdxTooltipSide, align: RdxTooltipAlign, sideOffset: number, alignOffset: number): ConnectedPosition;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
export declare class RdxTooltipArrowDirective {
|
3
|
+
/** @ignore */
|
4
|
+
private readonly renderer;
|
5
|
+
/** @ignore */
|
6
|
+
private readonly contentDirective;
|
7
|
+
/** @ignore */
|
8
|
+
private readonly elementRef;
|
9
|
+
/**
|
10
|
+
* The width of the arrow in pixels.
|
11
|
+
*/
|
12
|
+
readonly width: import("@angular/core").InputSignal<number>;
|
13
|
+
/**
|
14
|
+
* The height of the arrow in pixels.
|
15
|
+
*/
|
16
|
+
readonly height: import("@angular/core").InputSignal<number>;
|
17
|
+
/** @ignore */
|
18
|
+
readonly arrowSvgElement: import("@angular/core").Signal<HTMLElement>;
|
19
|
+
/** @ignore */
|
20
|
+
private readonly onArrowSvgElementChangeEffect;
|
21
|
+
/** @ignore */
|
22
|
+
private readonly onSideChangeEffect;
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxTooltipArrowDirective, never>;
|
24
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxTooltipArrowDirective, "[rdxTooltipArrow]", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
25
|
+
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { RdxTooltipRootDirective } from './tooltip-root.directive';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare class RdxTooltipContentAttributesDirective {
|
4
|
+
readonly tooltipRoot: RdxTooltipRootDirective;
|
5
|
+
readonly tooltipContent: import("@radix-ng/primitives/tooltip").RdxTooltipContentDirective;
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxTooltipContentAttributesDirective, never>;
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxTooltipContentAttributesDirective, "[rdxTooltipContentAttributes]", never, {}, {}, never, never, true, never>;
|
8
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
2
|
+
import { TemplateRef } from '@angular/core';
|
3
|
+
import { RdxTooltipAlign, RdxTooltipSide } from './tooltip.types';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class RdxTooltipContentDirective {
|
6
|
+
/** @ignore */
|
7
|
+
readonly templateRef: TemplateRef<any>;
|
8
|
+
/**
|
9
|
+
* The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
|
10
|
+
*/
|
11
|
+
readonly side: import("@angular/core").InputSignal<RdxTooltipSide>;
|
12
|
+
/**
|
13
|
+
* The distance in pixels from the trigger.
|
14
|
+
*/
|
15
|
+
readonly sideOffset: import("@angular/core").InputSignal<number>;
|
16
|
+
/**
|
17
|
+
* The preferred alignment against the trigger. May change when collisions occur.
|
18
|
+
*/
|
19
|
+
readonly align: import("@angular/core").InputSignal<RdxTooltipAlign>;
|
20
|
+
/**
|
21
|
+
* An offset in pixels from the "start" or "end" alignment options.
|
22
|
+
*/
|
23
|
+
readonly alignOffset: import("@angular/core").InputSignal<number>;
|
24
|
+
/** @ingore */
|
25
|
+
readonly position: import("@angular/core").Signal<ConnectedPosition>;
|
26
|
+
/**
|
27
|
+
* Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.
|
28
|
+
*/
|
29
|
+
readonly onEscapeKeyDown: import("@angular/core").OutputEmitterRef<KeyboardEvent>;
|
30
|
+
/**
|
31
|
+
* Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling event.preventDefault.
|
32
|
+
*/
|
33
|
+
readonly onPointerDownOutside: import("@angular/core").OutputEmitterRef<MouseEvent>;
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RdxTooltipContentDirective, never>;
|
35
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxTooltipContentDirective, "[rdxTooltipContent]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; }, { "onEscapeKeyDown": "onEscapeKeyDown"; "onPointerDownOutside": "onPointerDownOutside"; }, never, never, true, never>;
|
36
|
+
}
|