@wirekyt/angular 0.0.28 → 0.0.30

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-select.mjs","sources":["../../src/components/select/use-context.ts","../../src/components/select/use-item-context.ts","../../src/components/select/use.ts","../../src/components/select/root.ts","../../src/components/select/root-provider.ts","../../src/components/select/label.ts","../../src/components/select/control.ts","../../src/components/select/trigger.ts","../../src/components/select/indicator.ts","../../src/components/select/clear-trigger.ts","../../src/components/select/value-text.ts","../../src/components/select/hidden-select.ts","../../src/components/select/positioner.ts","../../src/components/select/content.ts","../../src/components/select/list.ts","../../src/components/select/item-group.ts","../../src/components/select/item-group-label.ts","../../src/components/select/item.ts","../../src/components/select/context.ts","../../src/components/select/item-context.ts","../../src/components/select/item-text.ts","../../src/components/select/item-indicator.ts","../../src/components/select/wirekyt-angular-select.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseSelectReturn } from \"./use\";\n\nexport const SELECT_CONTEXT = new InjectionToken<UseSelectReturn>(\"WIREKYT.SELECT_CONTEXT\");\n\nexport function injectSelectContext(): UseSelectReturn {\n return inject(SELECT_CONTEXT);\n}\n\nexport const SELECT_CONTEXT_CARRIER = new InjectionToken<ContextCarrier<UseSelectReturn>>(\n \"WIREKYT.SELECT_CONTEXT_CARRIER\",\n);\n\nexport function injectSelectContextCarrier(): ContextCarrier<UseSelectReturn> {\n return inject(SELECT_CONTEXT_CARRIER);\n}\n","import type { CollectionItem } from \"@wirekyt/dom/collection\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { SelectItemState } from \"./types\";\n\nexport interface SelectItemContext<T extends CollectionItem = CollectionItem> {\n state: Signal<SelectItemState>;\n item: Signal<T>;\n persistFocus: Signal<boolean | undefined>;\n}\n\nexport const SELECT_ITEM_CONTEXT = new InjectionToken<SelectItemContext>(\n \"WIREKYT.SELECT_ITEM_CONTEXT\",\n);\n\nexport function injectSelectItemContext<\n T extends CollectionItem = CollectionItem,\n>(): SelectItemContext<T> {\n const context = inject(SELECT_ITEM_CONTEXT, { optional: true });\n if (!context) {\n throw new Error(\n \"SELECT_ITEM_CONTEXT not found: a select item part directive must be used inside a [select-item] directive.\",\n );\n }\n return context as SelectItemContext<T>;\n}\n","import {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\nimport { Machine } from \"@wirekyt/dom\";\nimport { CollectionItem } from \"@wirekyt/dom/collection\";\nimport * as select from \"@wirekyt/dom/machines/select\";\nimport { PropTypes } from \"@wirekyt/dom/types\";\n\nimport type {\n SelectApi,\n SelectElementIds,\n SelectMachineProps,\n SelectSchema,\n SelectService,\n} from \"./types\";\n\ntype OptionalId<T extends { id?: string | undefined }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseSelectProps<T extends CollectionItem = CollectionItem> extends OptionalId<\n Omit<SelectMachineProps<T>, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseSelectApi<T extends CollectionItem = CollectionItem> = SelectApi<PropTypes, T>;\n\nexport type UseSelectReturn<T extends CollectionItem = CollectionItem> = UseMachineReturn<\n SelectService<T>[\"state\"],\n UseSelectApi<T>,\n SelectService<T>\n>;\n\nexport interface UseSelectOptions<T extends CollectionItem = CollectionItem> {\n context: () => UseSelectProps<T>;\n}\n\ntype SelectContext = Record<string, unknown>;\n\nexport function useSelect<T extends CollectionItem = CollectionItem>(\n options: UseSelectOptions<T>,\n): UseSelectReturn<T> {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const field = injectFieldContextOptional();\n const fallbackId = createId();\n\n return useMachine<SelectSchema<T>, UseSelectApi<T>>({\n machine: select.machine as unknown as Machine<SelectSchema<T>>,\n context: () => {\n const props = options.context();\n const id = props.id ?? fallbackId;\n const merged: Record<string, unknown> = {\n dir: locale.dir,\n locale: locale.locale,\n getRootNode: environment.getRootNode,\n ...props,\n id,\n };\n if (field) {\n const fieldIds = field.ids;\n const baseIds = (props.ids ?? {}) as NonNullable<SelectElementIds>;\n merged[\"ids\"] = {\n label: fieldIds.label,\n hiddenSelect: fieldIds.control,\n ...baseIds,\n };\n const disabled = Boolean(props.disabled) || field.disabled();\n const invalid = Boolean(props.invalid) || field.invalid();\n const required = Boolean(props.required) || field.required();\n const readOnly = Boolean(props.readOnly) || field.readOnly();\n merged[\"disabled\"] = disabled || undefined;\n merged[\"invalid\"] = invalid || undefined;\n merged[\"required\"] = required || undefined;\n merged[\"readOnly\"] = readOnly || undefined;\n }\n return merged as unknown as SelectContext;\n },\n connect: (service, normalize) =>\n (select.connect as unknown as (s: SelectService<T>, n: typeof normalize) => UseSelectApi<T>)(\n service as unknown as SelectService<T>,\n normalize,\n ),\n }) as UseSelectReturn<T>;\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n booleanAttribute,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from \"@angular/forms\";\nimport { bindProps, buildRootCarrier, ContextCarrier, createCvaController } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\nimport { type CollectionItem, ListCollection } from \"@wirekyt/dom/collection\";\n\nimport type {\n SelectElementIds,\n SelectFocusOutsideEvent,\n SelectHighlightChangeDetails,\n SelectInteractOutsideEvent,\n SelectIntlTranslations,\n SelectOpenChangeDetails,\n SelectPointerDownOutsideEvent,\n SelectPositioningOptions,\n SelectScrollToIndexDetails,\n SelectSelectionDetails,\n SelectService,\n SelectValueChangeDetails,\n} from \"./types\";\n\nimport { useSelect, type UseSelectApi, type UseSelectReturn } from \"./use\";\nimport { SELECT_CONTEXT, SELECT_CONTEXT_CARRIER } from \"./use-context\";\n\n@Directive({\n selector: \"[select-root]\",\n standalone: true,\n exportAs: \"selectRoot\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (root: SelectRoot) => root.presence,\n deps: [forwardRef(() => SelectRoot)],\n },\n { provide: SELECT_CONTEXT, useExisting: forwardRef(() => SelectRoot) },\n {\n provide: SELECT_CONTEXT_CARRIER,\n useFactory: (root: SelectRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => SelectRoot)],\n },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectRoot), multi: true },\n ],\n})\nexport class SelectRoot<T extends CollectionItem = CollectionItem>\n extends PresenceBase\n implements ControlValueAccessor, UseSelectReturn<T>\n{\n /** The unique identifier of the select. */\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The element ids for the select parts. */\n readonly elementIds: InputSignal<SelectElementIds | undefined> = input<\n SelectElementIds | undefined\n >(undefined, {\n alias: \"ids\",\n });\n /** The item collection. */\n readonly collection: InputSignal<ListCollection<T>> = input.required<ListCollection<T>>();\n /** The controlled value of the select (array of selected keys). */\n readonly value: ModelSignal<string[] | undefined> = model<string[] | undefined>(undefined);\n /** The initial value of the select when uncontrolled. */\n readonly defaultValue: InputSignal<string[] | undefined> = input<string[] | undefined>(undefined);\n /** The controlled open state of the select menu. */\n readonly open: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);\n /** The initial open state of the select when uncontrolled. */\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** The controlled highlighted value of the select. */\n readonly highlightedValue: ModelSignal<string | null | undefined> = model<\n string | null | undefined\n >(undefined);\n /** The initial highlighted value when uncontrolled. */\n readonly defaultHighlightedValue: InputSignal<string | null | undefined> = input<\n string | null | undefined\n >(undefined);\n /** Whether the select is disabled. */\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the select is invalid. */\n readonly invalid: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the select is read-only. */\n readonly readOnly: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the select is required. */\n readonly required: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether multiple values can be selected. */\n readonly multiple: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the select should close after an item is selected. */\n readonly closeOnSelect: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n /** Whether to loop keyboard navigation through the items. */\n readonly loopFocus: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the value can be cleared by clicking the selected item. */\n readonly deselectable: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the select is composed with other composite widgets. */\n readonly composite: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n /** The name attribute of the underlying hidden select. */\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The associated form of the underlying hidden select. */\n readonly form: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The autocomplete attribute for the hidden select. */\n readonly autoComplete: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The positioning options of the menu. */\n readonly positioning: InputSignal<SelectPositioningOptions | undefined> = input<\n SelectPositioningOptions | undefined\n >(undefined);\n /** Function to scroll to a specific index. */\n readonly scrollToIndexFn: InputSignal<\n ((details: SelectScrollToIndexDetails) => void) | undefined\n > = input<((details: SelectScrollToIndexDetails) => void) | undefined>(undefined);\n /** Localized strings for accessibility. */\n readonly translations: InputSignal<SelectIntlTranslations | undefined> = input<\n SelectIntlTranslations | undefined\n >(undefined);\n\n /** Emits when the selected value changes. */\n readonly valueChangeDetails: OutputEmitterRef<SelectValueChangeDetails<T>> =\n output<SelectValueChangeDetails<T>>();\n /** Emits when the highlighted value changes. */\n readonly highlightChange: OutputEmitterRef<SelectHighlightChangeDetails<T>> =\n output<SelectHighlightChangeDetails<T>>();\n /** Emits when the open state changes. */\n readonly openChangeDetails: OutputEmitterRef<SelectOpenChangeDetails> =\n output<SelectOpenChangeDetails>();\n /** Emits when an item is selected. */\n readonly select: OutputEmitterRef<SelectSelectionDetails> = output<SelectSelectionDetails>();\n /** Emits when focus moves outside the select content. */\n readonly focusOutside: OutputEmitterRef<SelectFocusOutsideEvent> =\n output<SelectFocusOutsideEvent>();\n /** Emits when pointer down occurs outside the select content. */\n readonly pointerDownOutside: OutputEmitterRef<SelectPointerDownOutsideEvent> =\n output<SelectPointerDownOutsideEvent>();\n /** Emits when interaction occurs outside the select content. */\n readonly interactOutside: OutputEmitterRef<SelectInteractOutsideEvent> =\n output<SelectInteractOutsideEvent>();\n\n private readonly _disabledFromForm = signal(false);\n private readonly _fallbackCollection = new ListCollection<T>({ items: [] });\n private _pendingInternalWrites = 0;\n private _hasExternalBinding = false;\n private _hasReceivedFormWrite = false;\n\n private readCollection(): ListCollection<T> {\n try {\n return this.collection();\n } catch {\n return this._fallbackCollection;\n }\n }\n\n private readonly cva = createCvaController<string[]>({\n value: this.value,\n setDisabled: (disabled) => this._disabledFromForm.set(disabled),\n componentName: \"SelectRoot\",\n hasExternalModelBinding: () => this._hasExternalBinding,\n });\n\n private readonly machine = useSelect<T>({\n context: () => ({\n id: this.id(),\n ids: this.elementIds(),\n collection: this.readCollection(),\n value: this.value(),\n defaultValue: this.defaultValue() ?? [],\n open: this.open(),\n defaultOpen: this.defaultOpen() || undefined,\n highlightedValue: this.highlightedValue() ?? undefined,\n defaultHighlightedValue: this.defaultHighlightedValue() ?? undefined,\n disabled: this.disabled() || this._disabledFromForm() || undefined,\n invalid: this.invalid() || undefined,\n readOnly: this.readOnly() || undefined,\n required: this.required() || undefined,\n multiple: this.multiple() || undefined,\n closeOnSelect: this.closeOnSelect(),\n loopFocus: this.loopFocus() || undefined,\n deselectable: this.deselectable() || undefined,\n composite: this.composite(),\n name: this.name(),\n form: this.form(),\n autoComplete: this.autoComplete(),\n positioning: this.positioning(),\n scrollToIndexFn: this.scrollToIndexFn(),\n translations: this.translations(),\n onValueChange: (details: SelectValueChangeDetails<T>) => {\n const current = this.value();\n if (!arraysShallowEqual(current, details.value)) {\n this._pendingInternalWrites++;\n this.value.set([...details.value]);\n }\n this.cva.notifyValueChange(details.value);\n this.cva.markTouched();\n this.valueChangeDetails.emit(details);\n },\n onHighlightChange: (details: SelectHighlightChangeDetails<T>) => {\n const next = details.highlightedValue;\n if (this.highlightedValue() !== next) {\n this.highlightedValue.set(next);\n }\n this.highlightChange.emit(details);\n },\n onOpenChange: (details: SelectOpenChangeDetails) => {\n if (this.open() !== details.open) {\n this.open.set(details.open);\n }\n this.openChangeDetails.emit(details);\n },\n onSelect: (details: SelectSelectionDetails) => {\n this.select.emit(details);\n },\n onFocusOutside: (event: SelectFocusOutsideEvent) => {\n this.cva.markTouched();\n this.focusOutside.emit(event);\n },\n onPointerDownOutside: (event: SelectPointerDownOutsideEvent) => {\n this.pointerDownOutside.emit(event);\n },\n onInteractOutside: (event: SelectInteractOutsideEvent) => {\n this.interactOutside.emit(event);\n },\n }),\n });\n\n readonly state: Signal<SelectService<T>[\"state\"]> = this.machine.state;\n readonly api: Signal<UseSelectApi<T>> = this.machine.api;\n readonly service: SelectService<T> = this.machine.service;\n readonly send: SelectService<T>[\"send\"] = this.machine.send;\n readonly presence = this.createPresence(() => this.api().open);\n\n protected readonly contextCarrier: ContextCarrier<SelectRoot<T>> = buildRootCarrier<\n SelectRoot<T>\n >({\n providers: [{ provide: PRESENCE_CONTEXT, useValue: this.presence }],\n root: this,\n rootToken: SELECT_CONTEXT as ProviderToken<SelectRoot<T>>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for select part directives to consume via SELECT_CONTEXT_CARRIER. */\n getContextCarrier(): ContextCarrier<SelectRoot<T>> {\n return this.contextCarrier;\n }\n\n constructor() {\n super();\n let firstRunValue = true;\n effect(() => {\n void this.value();\n if (firstRunValue) {\n firstRunValue = false;\n this._pendingInternalWrites = 0;\n return;\n }\n if (this._pendingInternalWrites > 0) {\n this._pendingInternalWrites--;\n return;\n }\n this._hasExternalBinding = true;\n });\n\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n\n writeValue(value: string[] | null): void {\n const next = value ?? [];\n const current = this.value();\n if (!this._hasReceivedFormWrite && current !== undefined) {\n this._hasExternalBinding = true;\n }\n this._hasReceivedFormWrite = true;\n if (!arraysShallowEqual(current, next)) {\n this._pendingInternalWrites++;\n }\n this.cva.writeValue(next);\n }\n\n registerOnChange(fn: (value: string[] | undefined) => void): void {\n this.cva.registerOnChange(fn);\n }\n\n registerOnTouched(fn: () => void): void {\n this.cva.registerOnTouched(fn);\n }\n\n setDisabledState(disabled: boolean): void {\n this.cva.setDisabledState(disabled);\n }\n}\n\nfunction arraysShallowEqual(a: string[] | undefined, b: string[] | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n","import type { CollectionItem } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, ContextCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type { SelectService } from \"./types\";\nimport type { UseSelectApi, UseSelectReturn } from \"./use\";\n\nimport { SELECT_CONTEXT, SELECT_CONTEXT_CARRIER } from \"./use-context\";\n\n@Directive({\n selector: \"[select-root-provider]\",\n standalone: true,\n exportAs: \"selectRootProvider\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (provider: SelectRootProvider) => provider.presence,\n deps: [forwardRef(() => SelectRootProvider)],\n },\n { provide: SELECT_CONTEXT, useExisting: forwardRef(() => SelectRootProvider) },\n {\n provide: SELECT_CONTEXT_CARRIER,\n useFactory: (provider: SelectRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => SelectRootProvider)],\n },\n ],\n})\nexport class SelectRootProvider<T extends CollectionItem = CollectionItem>\n extends PresenceBase\n implements UseSelectReturn<T>\n{\n /** The select primitive returned by useSelect(). */\n readonly value: InputSignal<UseSelectReturn<T>> = input.required<UseSelectReturn<T>>();\n\n get state(): Signal<SelectService<T>[\"state\"]> {\n return this.value().state;\n }\n get api(): Signal<UseSelectApi<T>> {\n return this.value().api;\n }\n get service(): SelectService<T> {\n return this.value().service;\n }\n get send(): SelectService<T>[\"send\"] {\n return this.value().send;\n }\n\n resolveValue(): UseSelectReturn<T> {\n return this.value();\n }\n\n readonly presence = this.createPresence(() => {\n try {\n return this.api().open;\n } catch {\n return false;\n }\n });\n\n protected readonly contextCarrier: ContextCarrier<SelectRootProvider<T>> = buildRootCarrier<\n SelectRootProvider<T>\n >({\n providers: [{ provide: PRESENCE_CONTEXT, useValue: this.presence }],\n root: this,\n rootToken: SELECT_CONTEXT as ProviderToken<SelectRootProvider<T>>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for select part directives to consume via SELECT_CONTEXT_CARRIER. */\n getContextCarrier(): ContextCarrier<SelectRootProvider<T>> {\n return this.contextCarrier;\n }\n\n constructor() {\n super();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.value().api().getRootProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-label]\",\n standalone: true,\n exportAs: \"selectLabel\",\n})\nexport class SelectLabel {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getLabelProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-control]\",\n standalone: true,\n exportAs: \"selectControl\",\n})\nexport class SelectControl {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getControlProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-trigger]\",\n standalone: true,\n exportAs: \"selectTrigger\",\n})\nexport class SelectTrigger {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-indicator]\",\n standalone: true,\n exportAs: \"selectIndicator\",\n})\nexport class SelectIndicator {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getIndicatorProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-clear-trigger]\",\n standalone: true,\n exportAs: \"selectClearTrigger\",\n})\nexport class SelectClearTrigger {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getClearTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n effect,\n inject,\n input,\n signal,\n type AfterContentInit,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-value-text]\",\n standalone: true,\n exportAs: \"selectValueText\",\n})\nexport class SelectValueText implements AfterContentInit {\n /** Text to display when no value is selected. */\n readonly placeholder: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly ownsTextContent = signal(false);\n\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: this.elementRef,\n renderer: this.renderer,\n destroyRef: inject(DestroyRef),\n props: () => context.api().getValueTextProps(),\n });\n\n effect(() => {\n if (!this.ownsTextContent()) return;\n const api = context.api();\n this.renderer.setProperty(\n this.elementRef.nativeElement,\n \"textContent\",\n api.valueAsString || this.placeholder() || \"\",\n );\n });\n }\n\n ngAfterContentInit(): void {\n this.ownsTextContent.set(hasOnlyWhitespaceContent(this.elementRef.nativeElement));\n }\n}\n\nfunction hasOnlyWhitespaceContent(element: HTMLElement): boolean {\n return element.firstElementChild === null && (element.textContent?.trim() ?? \"\") === \"\";\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, effect, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"select[select-hidden-select]\",\n standalone: true,\n exportAs: \"selectHiddenSelect\",\n})\nexport class SelectHiddenSelect {\n constructor() {\n const context = injectSelectContext();\n const field = injectFieldContextOptional();\n const elementRef = inject(ElementRef) as ElementRef<HTMLSelectElement>;\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => {\n const props = context.api().getHiddenSelectProps() as Record<string, unknown>;\n const describedBy = field?.ariaDescribedby();\n if (describedBy) {\n return { ...props, \"aria-describedby\": describedBy };\n }\n return props;\n },\n });\n\n let previousSignature = \"\";\n effect(() => {\n const select = elementRef.nativeElement;\n const api = context.api();\n const collection = api.collection;\n const value = api.value;\n const signature = `${value.join(\"\\u0000\")}::${collection.items\n .map(\n (item) =>\n `${collection.getItemValue(item) ?? \"\"}:${collection.getItemDisabled(item) ? \"1\" : \"0\"}:${\n collection.stringifyItem(item) ?? \"\"\n }`,\n )\n .join(\"\\u0001\")}`;\n if (signature === previousSignature) return;\n previousSignature = signature;\n while (select.firstChild) {\n renderer.removeChild(select, select.firstChild);\n }\n if (value.length === 0) {\n const opt = renderer.createElement(\"option\") as HTMLOptionElement;\n renderer.setAttribute(opt, \"value\", \"\");\n renderer.appendChild(select, opt);\n }\n for (const item of collection.items) {\n const opt = renderer.createElement(\"option\") as HTMLOptionElement;\n const itemValue = collection.getItemValue(item) ?? \"\";\n renderer.setAttribute(opt, \"value\", itemValue);\n if (collection.getItemDisabled(item)) {\n renderer.setAttribute(opt, \"disabled\", \"\");\n }\n if (value.includes(itemValue)) {\n renderer.setAttribute(opt, \"selected\", \"\");\n }\n const text = renderer.createText(String(collection.stringifyItem(item) ?? \"\"));\n renderer.appendChild(opt, text);\n renderer.appendChild(select, opt);\n }\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-positioner]\",\n standalone: true,\n exportAs: \"selectPositioner\",\n})\nexport class SelectPositioner {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getPositionerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n untracked,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({ selector: \"[select-content]\", standalone: true, exportAs: \"selectContent\" })\nexport class SelectContent {\n constructor() {\n const context = injectSelectContext();\n const presence = injectPresenceContext();\n const template = inject(TemplateRef<unknown>, { optional: true });\n const container = inject(ViewContainerRef);\n const host = inject(ElementRef);\n const elementRef = template ? { nativeElement: null as HTMLElement | null } : host;\n let view: EmbeddedViewRef<unknown> | undefined;\n effect(() => {\n const unmounted = presence.unmounted();\n if (template) {\n if (unmounted) {\n elementRef.nativeElement = null;\n container.clear();\n view = undefined;\n } else if (!view) {\n view = container.createEmbeddedView(template);\n elementRef.nativeElement =\n view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n }\n untracked(() => presence.setNode(elementRef.nativeElement));\n });\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n presence.unmounted();\n return { ...context.api().getContentProps(), ...presence.getPresenceProps() };\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-list]\",\n standalone: true,\n exportAs: \"selectList\",\n})\nexport class SelectList {\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getListProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n InjectionToken,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, createId } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\n\nexport interface SelectItemGroupContext {\n id: Signal<string>;\n}\n\nexport const SELECT_ITEM_GROUP_CONTEXT = new InjectionToken<SelectItemGroupContext>(\n \"WIREKYT.SELECT_ITEM_GROUP_CONTEXT\",\n);\n\nexport function injectSelectItemGroupContext(): SelectItemGroupContext {\n const context = inject(SELECT_ITEM_GROUP_CONTEXT, { optional: true });\n if (!context) {\n throw new Error(\n \"SELECT_ITEM_GROUP_CONTEXT not found: an item-group-label directive must be used inside a [select-item-group] directive.\",\n );\n }\n return context;\n}\n\n@Directive({\n selector: \"[select-item-group]\",\n standalone: true,\n exportAs: \"selectItemGroup\",\n providers: [\n { provide: SELECT_ITEM_GROUP_CONTEXT, useExisting: forwardRef(() => SelectItemGroup) },\n ],\n})\nexport class SelectItemGroup implements SelectItemGroupContext {\n /** The id of the item group. */\n readonly groupId: InputSignal<string | undefined> = input<string | undefined>(undefined, {\n alias: \"id\",\n });\n\n private readonly fallbackId = createId();\n readonly id: Signal<string> = computed(() => this.groupId() ?? this.fallbackId);\n\n constructor() {\n const context = injectSelectContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemGroupProps({ id: this.id() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectItemGroupContext } from \"./item-group\";\nimport { injectSelectContext } from \"./use-context\";\n\n@Directive({\n selector: \"[select-item-group-label]\",\n standalone: true,\n exportAs: \"selectItemGroupLabel\",\n})\nexport class SelectItemGroupLabel {\n constructor() {\n const context = injectSelectContext();\n const group = injectSelectItemGroupContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemGroupLabelProps({ htmlFor: group.id() }),\n });\n }\n}\n","import type { CollectionItem } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type InputSignalWithTransform,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\nimport { SELECT_ITEM_CONTEXT, type SelectItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[select-item]\",\n standalone: true,\n exportAs: \"selectItem\",\n providers: [{ provide: SELECT_ITEM_CONTEXT, useExisting: forwardRef(() => SelectItem) }],\n})\nexport class SelectItem<T extends CollectionItem = CollectionItem> implements SelectItemContext<T> {\n /** The item to render. */\n readonly item: InputSignal<T> = input.required<T>();\n /** Whether hovering outside should clear the highlighted state. */\n readonly persistFocus: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n\n private readonly context = injectSelectContext();\n readonly state = computed(() =>\n this.context.api().getItemState({ item: this.item(), persistFocus: this.persistFocus() }),\n );\n\n constructor() {\n const context = this.context;\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemProps({ item: this.item(), persistFocus: this.persistFocus() }),\n });\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect, inject } from \"@angular/core\";\n\nimport type { UseSelectReturn } from \"./use\";\n\nimport { injectSelectContext } from \"./use-context\";\n\nexport interface SelectContextTemplate {\n $implicit: UseSelectReturn[\"api\"];\n api: UseSelectReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[select-context]\",\n standalone: true,\n exportAs: \"selectContext\",\n})\nexport class SelectContext {\n static ngTemplateContextGuard(\n _directive: SelectContext,\n context: unknown,\n ): context is SelectContextTemplate {\n void context;\n return true;\n }\n\n private readonly select = injectSelectContext();\n private readonly templateRef = inject<TemplateRef<SelectContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.select.api,\n api: this.select.api,\n });\n\n effect(() => {\n this.select.api();\n view.detectChanges();\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { SelectItemContext as UseSelectItemContext } from \"./use-item-context\";\n\nimport { injectSelectItemContext } from \"./use-item-context\";\n\nexport interface SelectItemContextTemplate {\n $implicit: UseSelectItemContext;\n item: UseSelectItemContext;\n}\n\n@Directive({\n selector: \"[select-item-context]\",\n standalone: true,\n exportAs: \"selectItemContext\",\n})\nexport class SelectItemContextDirective {\n static ngTemplateContextGuard(\n _directive: SelectItemContextDirective,\n context: unknown,\n ): context is SelectItemContextTemplate {\n void context;\n return true;\n }\n\n private readonly item = injectSelectItemContext();\n private readonly templateRef = inject<TemplateRef<SelectItemContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.item,\n item: this.item,\n });\n\n effect(() => {\n this.item.state();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\nimport { injectSelectItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[select-item-text]\",\n standalone: true,\n exportAs: \"selectItemText\",\n})\nexport class SelectItemText {\n constructor() {\n const context = injectSelectContext();\n const item = injectSelectItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemTextProps({ item: item.item(), persistFocus: item.persistFocus() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectSelectContext } from \"./use-context\";\nimport { injectSelectItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[select-item-indicator]\",\n standalone: true,\n exportAs: \"selectItemIndicator\",\n})\nexport class SelectItemIndicator {\n constructor() {\n const context = injectSelectContext();\n const item = injectSelectItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context\n .api()\n .getItemIndicatorProps({ item: item.item(), persistFocus: item.persistFocus() }),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,438 @@
1
+ import * as tooltip from '@wirekyt/dom/machines/tooltip';
2
+ export { anatomy as tooltipAnatomy } from '@wirekyt/dom/machines/tooltip';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, inject, booleanAttribute, input, model, output, EnvironmentInjector, Injector, forwardRef, Directive, computed, DestroyRef, Renderer2, ElementRef, TemplateRef, ViewContainerRef, effect, untracked } from '@angular/core';
5
+ import { injectLocale, injectEnvironment, createId, useMachine, buildRootCarrier, bindProps } from '@wirekyt/angular';
6
+ import { PresenceBase, PRESENCE_CONTEXT, injectPresenceContext } from '@wirekyt/angular/presence';
7
+
8
+ const TOOLTIP_CONTEXT = new InjectionToken("WIREKYT.TOOLTIP_CONTEXT");
9
+ function injectTooltipContext() {
10
+ return inject(TOOLTIP_CONTEXT);
11
+ }
12
+ const TOOLTIP_CONTEXT_CARRIER = new InjectionToken("WIREKYT.TOOLTIP_CONTEXT_CARRIER");
13
+ function injectTooltipContextCarrier() {
14
+ return inject(TOOLTIP_CONTEXT_CARRIER);
15
+ }
16
+ const TOOLTIP_RENDER_STRATEGY_CONTEXT = new InjectionToken("WIREKYT.TOOLTIP_RENDER_STRATEGY_CONTEXT");
17
+ function injectTooltipRenderStrategyContext() {
18
+ return inject(TOOLTIP_RENDER_STRATEGY_CONTEXT);
19
+ }
20
+
21
+ function useTooltip(options) {
22
+ const locale = injectLocale();
23
+ const environment = injectEnvironment();
24
+ const fallbackId = createId();
25
+ return useMachine({
26
+ machine: tooltip.machine,
27
+ context: () => {
28
+ const props = options.context();
29
+ return {
30
+ ...props,
31
+ dir: locale.dir,
32
+ getRootNode: environment.getRootNode,
33
+ id: props.id ?? fallbackId,
34
+ };
35
+ },
36
+ connect: (service, normalize) => tooltip.connect(service, normalize),
37
+ });
38
+ }
39
+
40
+ const optionalBooleanAttribute = (value) => value == null ? undefined : booleanAttribute(value);
41
+ class TooltipRoot extends PresenceBase {
42
+ id = input(undefined, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
44
+ ids = input(undefined, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
46
+ open = model(undefined, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
48
+ defaultOpen = input(false, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
49
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
50
+ openDelay = input(undefined, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "openDelay" }] : /* istanbul ignore next */ []));
52
+ closeDelay = input(undefined, /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "closeDelay" }] : /* istanbul ignore next */ []));
54
+ closeOnPointerDown = input(undefined, { ...(ngDevMode ? { debugName: "closeOnPointerDown" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
55
+ closeOnEscape = input(undefined, { ...(ngDevMode ? { debugName: "closeOnEscape" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
56
+ closeOnScroll = input(undefined, { ...(ngDevMode ? { debugName: "closeOnScroll" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
57
+ closeOnClick = input(undefined, { ...(ngDevMode ? { debugName: "closeOnClick" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
58
+ interactive = input(undefined, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
59
+ positioning = input(undefined, /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "positioning" }] : /* istanbul ignore next */ []));
61
+ ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: "aria-label" });
62
+ triggerValue = model(undefined, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "triggerValue" }] : /* istanbul ignore next */ []));
64
+ defaultTriggerValue = input(undefined, /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "defaultTriggerValue" }] : /* istanbul ignore next */ []));
66
+ openChangeDetails = output();
67
+ triggerValueChangeDetails = output();
68
+ machine = useTooltip({
69
+ context: () => ({
70
+ id: this.id(),
71
+ ids: this.ids(),
72
+ open: this.open(),
73
+ defaultOpen: this.defaultOpen(),
74
+ disabled: this.disabled(),
75
+ openDelay: this.openDelay(),
76
+ closeDelay: this.closeDelay(),
77
+ closeOnPointerDown: this.closeOnPointerDown(),
78
+ closeOnEscape: this.closeOnEscape(),
79
+ closeOnScroll: this.closeOnScroll(),
80
+ closeOnClick: this.closeOnClick(),
81
+ interactive: this.interactive(),
82
+ positioning: this.positioning(),
83
+ "aria-label": this.ariaLabel(),
84
+ triggerValue: this.triggerValue(),
85
+ defaultTriggerValue: this.defaultTriggerValue(),
86
+ onOpenChange: (details) => {
87
+ if (this.open() !== details.open) {
88
+ this.open.set(details.open);
89
+ }
90
+ this.openChangeDetails.emit(details);
91
+ },
92
+ onTriggerValueChange: (details) => {
93
+ if (this.triggerValue() !== details.value) {
94
+ this.triggerValue.set(details.value);
95
+ }
96
+ this.triggerValueChangeDetails.emit(details);
97
+ },
98
+ }),
99
+ });
100
+ state = this.machine.state;
101
+ api = this.machine.api;
102
+ service = this.machine.service;
103
+ send = this.machine.send;
104
+ presence = this.createPresence(() => this.api().open);
105
+ contextCarrier = buildRootCarrier({
106
+ providers: [
107
+ { provide: PRESENCE_CONTEXT, useValue: this.presence },
108
+ { provide: TOOLTIP_RENDER_STRATEGY_CONTEXT, useValue: this },
109
+ ],
110
+ root: this,
111
+ rootToken: TOOLTIP_CONTEXT,
112
+ originInjector: inject(Injector),
113
+ environmentInjector: inject(EnvironmentInjector),
114
+ });
115
+ getContextCarrier() {
116
+ return this.contextCarrier;
117
+ }
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipRoot, deps: null, target: i0.ɵɵFactoryTarget.Directive });
119
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: TooltipRoot, isStandalone: true, selector: "[tooltip-root]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, openDelay: { classPropertyName: "openDelay", publicName: "openDelay", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, closeOnPointerDown: { classPropertyName: "closeOnPointerDown", publicName: "closeOnPointerDown", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnScroll: { classPropertyName: "closeOnScroll", publicName: "closeOnScroll", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, positioning: { classPropertyName: "positioning", publicName: "positioning", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, triggerValue: { classPropertyName: "triggerValue", publicName: "triggerValue", isSignal: true, isRequired: false, transformFunction: null }, defaultTriggerValue: { classPropertyName: "defaultTriggerValue", publicName: "defaultTriggerValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", triggerValue: "triggerValueChange", openChangeDetails: "openChangeDetails", triggerValueChangeDetails: "triggerValueChangeDetails" }, providers: [
120
+ {
121
+ provide: PRESENCE_CONTEXT,
122
+ useFactory: (root) => root.presence,
123
+ deps: [forwardRef(() => TooltipRoot)],
124
+ },
125
+ {
126
+ provide: TOOLTIP_RENDER_STRATEGY_CONTEXT,
127
+ useExisting: forwardRef(() => TooltipRoot),
128
+ },
129
+ { provide: TOOLTIP_CONTEXT, useExisting: forwardRef(() => TooltipRoot) },
130
+ {
131
+ provide: TOOLTIP_CONTEXT_CARRIER,
132
+ useFactory: (root) => root.getContextCarrier(),
133
+ deps: [forwardRef(() => TooltipRoot)],
134
+ },
135
+ ], exportAs: ["tooltipRoot"], usesInheritance: true, ngImport: i0 });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipRoot, decorators: [{
138
+ type: Directive,
139
+ args: [{
140
+ selector: "[tooltip-root]",
141
+ standalone: true,
142
+ exportAs: "tooltipRoot",
143
+ providers: [
144
+ {
145
+ provide: PRESENCE_CONTEXT,
146
+ useFactory: (root) => root.presence,
147
+ deps: [forwardRef(() => TooltipRoot)],
148
+ },
149
+ {
150
+ provide: TOOLTIP_RENDER_STRATEGY_CONTEXT,
151
+ useExisting: forwardRef(() => TooltipRoot),
152
+ },
153
+ { provide: TOOLTIP_CONTEXT, useExisting: forwardRef(() => TooltipRoot) },
154
+ {
155
+ provide: TOOLTIP_CONTEXT_CARRIER,
156
+ useFactory: (root) => root.getContextCarrier(),
157
+ deps: [forwardRef(() => TooltipRoot)],
158
+ },
159
+ ],
160
+ }]
161
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], openDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "openDelay", required: false }] }], closeDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeDelay", required: false }] }], closeOnPointerDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnPointerDown", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnScroll", required: false }] }], closeOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnClick", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], positioning: [{ type: i0.Input, args: [{ isSignal: true, alias: "positioning", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], triggerValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerValue", required: false }] }, { type: i0.Output, args: ["triggerValueChange"] }], defaultTriggerValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultTriggerValue", required: false }] }], openChangeDetails: [{ type: i0.Output, args: ["openChangeDetails"] }], triggerValueChangeDetails: [{ type: i0.Output, args: ["triggerValueChangeDetails"] }] } });
162
+
163
+ class TooltipRootProvider extends PresenceBase {
164
+ value = input.required(/* @ts-ignore */
165
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
166
+ state = computed(() => this.value().state(), /* @ts-ignore */
167
+ ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
168
+ api = computed(() => this.value().api(), /* @ts-ignore */
169
+ ...(ngDevMode ? [{ debugName: "api" }] : /* istanbul ignore next */ []));
170
+ send = (event) => this.value().send(event);
171
+ get service() {
172
+ return this.value().service;
173
+ }
174
+ presence = this.createPresence(() => {
175
+ try {
176
+ return this.api().open;
177
+ }
178
+ catch {
179
+ return false;
180
+ }
181
+ });
182
+ contextCarrier = buildRootCarrier({
183
+ providers: [
184
+ { provide: PRESENCE_CONTEXT, useValue: this.presence },
185
+ { provide: TOOLTIP_RENDER_STRATEGY_CONTEXT, useValue: this },
186
+ ],
187
+ root: this,
188
+ rootToken: TOOLTIP_CONTEXT,
189
+ originInjector: inject(Injector),
190
+ environmentInjector: inject(EnvironmentInjector),
191
+ });
192
+ getContextCarrier() {
193
+ return this.contextCarrier;
194
+ }
195
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipRootProvider, deps: null, target: i0.ɵɵFactoryTarget.Directive });
196
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: TooltipRootProvider, isStandalone: true, selector: "[tooltip-root-provider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
197
+ {
198
+ provide: PRESENCE_CONTEXT,
199
+ useFactory: (provider) => provider.presence,
200
+ deps: [forwardRef(() => TooltipRootProvider)],
201
+ },
202
+ {
203
+ provide: TOOLTIP_RENDER_STRATEGY_CONTEXT,
204
+ useExisting: forwardRef(() => TooltipRootProvider),
205
+ },
206
+ { provide: TOOLTIP_CONTEXT, useExisting: forwardRef(() => TooltipRootProvider) },
207
+ {
208
+ provide: TOOLTIP_CONTEXT_CARRIER,
209
+ useFactory: (provider) => provider.getContextCarrier(),
210
+ deps: [forwardRef(() => TooltipRootProvider)],
211
+ },
212
+ ], exportAs: ["tooltipRootProvider"], usesInheritance: true, ngImport: i0 });
213
+ }
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipRootProvider, decorators: [{
215
+ type: Directive,
216
+ args: [{
217
+ selector: "[tooltip-root-provider]",
218
+ standalone: true,
219
+ exportAs: "tooltipRootProvider",
220
+ providers: [
221
+ {
222
+ provide: PRESENCE_CONTEXT,
223
+ useFactory: (provider) => provider.presence,
224
+ deps: [forwardRef(() => TooltipRootProvider)],
225
+ },
226
+ {
227
+ provide: TOOLTIP_RENDER_STRATEGY_CONTEXT,
228
+ useExisting: forwardRef(() => TooltipRootProvider),
229
+ },
230
+ { provide: TOOLTIP_CONTEXT, useExisting: forwardRef(() => TooltipRootProvider) },
231
+ {
232
+ provide: TOOLTIP_CONTEXT_CARRIER,
233
+ useFactory: (provider) => provider.getContextCarrier(),
234
+ deps: [forwardRef(() => TooltipRootProvider)],
235
+ },
236
+ ],
237
+ }]
238
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
239
+
240
+ class TooltipTrigger {
241
+ /** The value that identifies this specific trigger. */
242
+ value = input(undefined, /* @ts-ignore */
243
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
244
+ constructor() {
245
+ const context = injectTooltipContext();
246
+ bindProps({
247
+ elementRef: inject(ElementRef),
248
+ renderer: inject(Renderer2),
249
+ destroyRef: inject(DestroyRef),
250
+ props: () => context.api().getTriggerProps({ value: this.value() }),
251
+ });
252
+ }
253
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
254
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: TooltipTrigger, isStandalone: true, selector: "[tooltip-trigger]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["tooltipTrigger"], ngImport: i0 });
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipTrigger, decorators: [{
257
+ type: Directive,
258
+ args: [{
259
+ selector: "[tooltip-trigger]",
260
+ standalone: true,
261
+ exportAs: "tooltipTrigger",
262
+ }]
263
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
264
+
265
+ class TooltipPositioner {
266
+ constructor() {
267
+ const context = injectTooltipContext();
268
+ const presence = injectPresenceContext();
269
+ const template = inject((TemplateRef), { optional: true });
270
+ const container = inject(ViewContainerRef);
271
+ const host = inject(ElementRef);
272
+ const elementRef = template ? { nativeElement: null } : host;
273
+ let view;
274
+ effect(() => {
275
+ const unmounted = presence.unmounted();
276
+ if (template) {
277
+ if (unmounted) {
278
+ elementRef.nativeElement = null;
279
+ container.clear();
280
+ view = undefined;
281
+ }
282
+ else if (!view) {
283
+ view = container.createEmbeddedView(template);
284
+ elementRef.nativeElement =
285
+ view.rootNodes.find((node) => node.nodeType === 1) ?? null;
286
+ }
287
+ }
288
+ });
289
+ bindProps({
290
+ elementRef,
291
+ renderer: inject(Renderer2),
292
+ destroyRef: inject(DestroyRef),
293
+ props: () => {
294
+ const unmounted = presence.unmounted();
295
+ return { ...context.api().getPositionerProps(), hidden: unmounted };
296
+ },
297
+ });
298
+ }
299
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipPositioner, deps: [], target: i0.ɵɵFactoryTarget.Directive });
300
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: TooltipPositioner, isStandalone: true, selector: "[tooltip-positioner]", exportAs: ["tooltipPositioner"], ngImport: i0 });
301
+ }
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipPositioner, decorators: [{
303
+ type: Directive,
304
+ args: [{
305
+ selector: "[tooltip-positioner]",
306
+ standalone: true,
307
+ exportAs: "tooltipPositioner",
308
+ }]
309
+ }], ctorParameters: () => [] });
310
+
311
+ class TooltipContent {
312
+ constructor() {
313
+ const context = injectTooltipContext();
314
+ const presence = injectPresenceContext();
315
+ const template = inject((TemplateRef), { optional: true });
316
+ const container = inject(ViewContainerRef);
317
+ const host = inject(ElementRef);
318
+ const elementRef = template ? { nativeElement: null } : host;
319
+ let view;
320
+ effect(() => {
321
+ const unmounted = presence.unmounted();
322
+ if (template) {
323
+ if (unmounted) {
324
+ elementRef.nativeElement = null;
325
+ container.clear();
326
+ view = undefined;
327
+ }
328
+ else if (!view) {
329
+ view = container.createEmbeddedView(template);
330
+ elementRef.nativeElement =
331
+ view.rootNodes.find((node) => node.nodeType === 1) ?? null;
332
+ }
333
+ }
334
+ untracked(() => presence.setNode(elementRef.nativeElement));
335
+ });
336
+ bindProps({
337
+ elementRef,
338
+ renderer: inject(Renderer2),
339
+ destroyRef: inject(DestroyRef),
340
+ props: () => {
341
+ presence.unmounted();
342
+ return { ...context.api().getContentProps(), ...presence.getPresenceProps() };
343
+ },
344
+ });
345
+ }
346
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
347
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: TooltipContent, isStandalone: true, selector: "[tooltip-content]", exportAs: ["tooltipContent"], ngImport: i0 });
348
+ }
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipContent, decorators: [{
350
+ type: Directive,
351
+ args: [{
352
+ selector: "[tooltip-content]",
353
+ standalone: true,
354
+ exportAs: "tooltipContent",
355
+ }]
356
+ }], ctorParameters: () => [] });
357
+
358
+ class TooltipArrow {
359
+ constructor() {
360
+ const context = injectTooltipContext();
361
+ bindProps({
362
+ elementRef: inject(ElementRef),
363
+ renderer: inject(Renderer2),
364
+ destroyRef: inject(DestroyRef),
365
+ props: () => context.api().getArrowProps(),
366
+ });
367
+ }
368
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
369
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: TooltipArrow, isStandalone: true, selector: "[tooltip-arrow]", exportAs: ["tooltipArrow"], ngImport: i0 });
370
+ }
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipArrow, decorators: [{
372
+ type: Directive,
373
+ args: [{
374
+ selector: "[tooltip-arrow]",
375
+ standalone: true,
376
+ exportAs: "tooltipArrow",
377
+ }]
378
+ }], ctorParameters: () => [] });
379
+
380
+ class TooltipArrowTip {
381
+ constructor() {
382
+ const context = injectTooltipContext();
383
+ bindProps({
384
+ elementRef: inject(ElementRef),
385
+ renderer: inject(Renderer2),
386
+ destroyRef: inject(DestroyRef),
387
+ props: () => context.api().getArrowTipProps(),
388
+ });
389
+ }
390
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipArrowTip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
391
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: TooltipArrowTip, isStandalone: true, selector: "[tooltip-arrow-tip]", exportAs: ["tooltipArrowTip"], ngImport: i0 });
392
+ }
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipArrowTip, decorators: [{
394
+ type: Directive,
395
+ args: [{
396
+ selector: "[tooltip-arrow-tip]",
397
+ standalone: true,
398
+ exportAs: "tooltipArrowTip",
399
+ }]
400
+ }], ctorParameters: () => [] });
401
+
402
+ class TooltipContext {
403
+ static ngTemplateContextGuard(_directive, context) {
404
+ void context;
405
+ return true;
406
+ }
407
+ tooltip = injectTooltipContext();
408
+ templateRef = inject(TemplateRef);
409
+ viewContainer = inject(ViewContainerRef);
410
+ constructor() {
411
+ const view = this.viewContainer.createEmbeddedView(this.templateRef, {
412
+ $implicit: this.tooltip.api,
413
+ api: this.tooltip.api,
414
+ });
415
+ effect(() => {
416
+ this.tooltip.api();
417
+ view.detectChanges();
418
+ });
419
+ inject(DestroyRef).onDestroy(() => view.destroy());
420
+ }
421
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
422
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: TooltipContext, isStandalone: true, selector: "[tooltip-context]", exportAs: ["tooltipContext"], ngImport: i0 });
423
+ }
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: TooltipContext, decorators: [{
425
+ type: Directive,
426
+ args: [{
427
+ selector: "[tooltip-context]",
428
+ standalone: true,
429
+ exportAs: "tooltipContext",
430
+ }]
431
+ }], ctorParameters: () => [] });
432
+
433
+ /**
434
+ * Generated bundle index. Do not edit.
435
+ */
436
+
437
+ export { TOOLTIP_CONTEXT, TOOLTIP_CONTEXT_CARRIER, TOOLTIP_RENDER_STRATEGY_CONTEXT, TooltipArrow, TooltipArrowTip, TooltipContent, TooltipContext, TooltipPositioner, TooltipRoot, TooltipRootProvider, TooltipTrigger, injectTooltipContext, injectTooltipContextCarrier, injectTooltipRenderStrategyContext, useTooltip };
438
+ //# sourceMappingURL=wirekyt-angular-tooltip.mjs.map