@wirekyt/angular 0.0.25 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/fesm2022/wirekyt-angular-date-input.mjs +0 -1
  2. package/dist/fesm2022/wirekyt-angular-date-input.mjs.map +1 -1
  3. package/dist/fesm2022/wirekyt-angular-drawer.mjs +0 -2
  4. package/dist/fesm2022/wirekyt-angular-drawer.mjs.map +1 -1
  5. package/dist/fesm2022/wirekyt-angular-editable.mjs +499 -0
  6. package/dist/fesm2022/wirekyt-angular-editable.mjs.map +1 -0
  7. package/dist/fesm2022/wirekyt-angular-file-upload.mjs +604 -0
  8. package/dist/fesm2022/wirekyt-angular-file-upload.mjs.map +1 -0
  9. package/dist/fesm2022/wirekyt-angular-floating-panel.mjs +0 -36
  10. package/dist/fesm2022/wirekyt-angular-floating-panel.mjs.map +1 -1
  11. package/dist/fesm2022/wirekyt-angular-hover-card.mjs +430 -0
  12. package/dist/fesm2022/wirekyt-angular-hover-card.mjs.map +1 -0
  13. package/dist/package.json +13 -1
  14. package/dist/types/wirekyt-angular-checkbox.d.ts +1 -1
  15. package/dist/types/wirekyt-angular-color-picker.d.ts +1 -1
  16. package/dist/types/wirekyt-angular-combobox.d.ts +1 -1
  17. package/dist/types/wirekyt-angular-date-input.d.ts +0 -1
  18. package/dist/types/wirekyt-angular-date-input.d.ts.map +1 -1
  19. package/dist/types/wirekyt-angular-date-picker.d.ts +1 -1
  20. package/dist/types/wirekyt-angular-drawer.d.ts +0 -2
  21. package/dist/types/wirekyt-angular-drawer.d.ts.map +1 -1
  22. package/dist/types/wirekyt-angular-editable.d.ts +153 -0
  23. package/dist/types/wirekyt-angular-editable.d.ts.map +1 -0
  24. package/dist/types/wirekyt-angular-file-upload.d.ts +182 -0
  25. package/dist/types/wirekyt-angular-file-upload.d.ts.map +1 -0
  26. package/dist/types/wirekyt-angular-floating-panel.d.ts +0 -36
  27. package/dist/types/wirekyt-angular-floating-panel.d.ts.map +1 -1
  28. package/dist/types/wirekyt-angular-hover-card.d.ts +122 -0
  29. package/dist/types/wirekyt-angular-hover-card.d.ts.map +1 -0
  30. package/package.json +14 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-file-upload.mjs","sources":["../../src/components/file-upload/use-context.ts","../../src/components/file-upload/context.ts","../../src/components/file-upload/use-item-context.ts","../../src/components/file-upload/use.ts","../../src/components/file-upload/root.ts","../../src/components/file-upload/root-provider.ts","../../src/components/file-upload/label.ts","../../src/components/file-upload/trigger.ts","../../src/components/file-upload/dropzone.ts","../../src/components/file-upload/hidden-input.ts","../../src/components/file-upload/clear-trigger.ts","../../src/components/file-upload/item-group.ts","../../src/components/file-upload/item.ts","../../src/components/file-upload/item-name.ts","../../src/components/file-upload/item-size-text.ts","../../src/components/file-upload/item-preview.ts","../../src/components/file-upload/item-preview-image.ts","../../src/components/file-upload/item-delete-trigger.ts","../../src/components/file-upload/wirekyt-angular-file-upload.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nexport const FILE_UPLOAD_CONTEXT = new InjectionToken<UseFileUploadReturn>(\n \"WIREKYT.FILE_UPLOAD_CONTEXT\",\n);\n\nexport function injectFileUploadContext(): UseFileUploadReturn {\n return inject(FILE_UPLOAD_CONTEXT);\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\nexport interface FileUploadContextTemplate {\n $implicit: UseFileUploadReturn[\"api\"];\n api: UseFileUploadReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[file-upload-context]\",\n standalone: true,\n exportAs: \"fileUploadContext\",\n})\nexport class FileUploadContext {\n static ngTemplateContextGuard(\n _directive: FileUploadContext,\n context: unknown,\n ): context is FileUploadContextTemplate {\n void context;\n return true;\n }\n\n private readonly fileUpload = injectFileUploadContext();\n private readonly templateRef = inject<TemplateRef<FileUploadContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.fileUpload.api,\n api: this.fileUpload.api,\n });\n\n effect(() => {\n this.fileUpload.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nexport interface FileUploadItemContext {\n file: Signal<File>;\n type: Signal<FileUploadItemType | undefined>;\n}\n\nexport const FILE_UPLOAD_ITEM_CONTEXT = new InjectionToken<FileUploadItemContext>(\n \"WIREKYT.FILE_UPLOAD_ITEM_CONTEXT\",\n);\n\nexport function injectFileUploadItemContext(): FileUploadItemContext {\n const context = inject(FILE_UPLOAD_ITEM_CONTEXT, { optional: true });\n if (!context) {\n throw new Error(\n \"FILE_UPLOAD_ITEM_CONTEXT not found: a file-upload item part directive must be used inside a [file-upload-item] directive.\",\n );\n }\n return context;\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\nimport * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport type { FileUploadElementIds, FileUploadMachineProps } from \"./types\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFileUploadProps extends OptionalId<\n Omit<FileUploadMachineProps, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFileUploadReturn = UseMachineReturn<\n fileUpload.Service[\"state\"],\n fileUpload.Api,\n fileUpload.Service\n>;\n\nexport interface UseFileUploadOptions {\n context: () => UseFileUploadProps;\n}\n\ntype FileUploadContext = Record<string, unknown>;\ntype FileUploadSchema = fileUpload.Machine extends Machine<infer TSchema> ? TSchema : never;\n\ntype MergedContext = {\n dir: \"ltr\" | \"rtl\";\n locale: string;\n getRootNode: () => ShadowRoot | Document | Node | undefined;\n id: string;\n ids?: FileUploadElementIds;\n disabled?: boolean;\n invalid?: boolean;\n readOnly?: boolean;\n required?: boolean;\n} & Omit<UseFileUploadProps, \"id\" | \"ids\" | \"disabled\" | \"invalid\" | \"readOnly\" | \"required\">;\n\nexport function useFileUpload(options: UseFileUploadOptions): UseFileUploadReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const field = injectFieldContextOptional();\n const fallbackId = createId();\n\n return useMachine<FileUploadSchema, fileUpload.Api>({\n machine: fileUpload.machine,\n context: () => {\n const props = options.context();\n const id = props.id ?? fallbackId;\n const merged: MergedContext = {\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<FileUploadElementIds>;\n merged.ids = {\n label: fieldIds.label,\n hiddenInput: fieldIds.control,\n ...baseIds,\n };\n const disabled = Boolean(props.disabled) || field.disabled();\n const invalid = Boolean(props.invalid) || field.invalid();\n const readOnly = Boolean(props.readOnly) || field.readOnly();\n const required = Boolean(props.required) || field.required();\n merged.disabled = disabled || undefined;\n merged.invalid = invalid || undefined;\n merged.readOnly = readOnly || undefined;\n merged.required = required || undefined;\n }\n return merged as unknown as FileUploadContext;\n },\n connect: (service, normalize) => fileUpload.connect(service, normalize),\n });\n}\n","import type * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n numberAttribute,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type {\n FileAcceptDetails,\n FileChangeDetails,\n FileError,\n FileMimeType,\n FileRejectDetails,\n FileUploadElementIds,\n FileUploadIntlTranslations,\n FileValidateDetails,\n} from \"./types\";\n\nimport { useFileUpload, type UseFileUploadReturn } from \"./use\";\nimport { FILE_UPLOAD_CONTEXT } from \"./use-context\";\n\nconst optionalNumberAttribute = (value: unknown): number | undefined => {\n if (value === null || value === undefined || value === \"\") return undefined;\n const next = numberAttribute(value);\n return Number.isFinite(next) ? next : undefined;\n};\n\n@Directive({\n selector: \"[file-upload-root]\",\n standalone: true,\n exportAs: \"fileUploadRoot\",\n providers: [{ provide: FILE_UPLOAD_CONTEXT, useExisting: forwardRef(() => FileUploadRoot) }],\n})\nexport class FileUploadRoot implements UseFileUploadReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly elementIds: InputSignal<FileUploadElementIds | undefined> = input<\n FileUploadElementIds | undefined\n >(undefined, { alias: \"ids\" });\n readonly translations: InputSignal<FileUploadIntlTranslations | undefined> = input<\n FileUploadIntlTranslations | undefined\n >(undefined);\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly accept: InputSignal<\n Record<string, string[]> | FileMimeType | FileMimeType[] | undefined\n > = input<Record<string, string[]> | FileMimeType | FileMimeType[] | undefined>(undefined);\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly required: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly invalid: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly readOnly: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly allowDrop: 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 readonly maxFileSize: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly minFileSize: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly maxFiles: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly preventDocumentDrop: 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 readonly validate: InputSignal<\n ((file: File, details: FileValidateDetails) => FileError[] | null) | undefined\n > = input<((file: File, details: FileValidateDetails) => FileError[] | null) | undefined>(\n undefined,\n );\n readonly defaultAcceptedFiles: InputSignal<File[] | undefined> = input<File[] | undefined>(\n undefined,\n );\n readonly acceptedFiles: ModelSignal<File[] | undefined> = model<File[] | undefined>(undefined);\n readonly capture: InputSignal<\"user\" | \"environment\" | undefined> = input<\n \"user\" | \"environment\" | undefined\n >(undefined);\n readonly directory: 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 readonly transformFiles: InputSignal<((files: File[]) => Promise<File[]>) | undefined> = input<\n ((files: File[]) => Promise<File[]>) | undefined\n >(undefined);\n readonly locale: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n readonly fileChange: OutputEmitterRef<FileChangeDetails> = output<FileChangeDetails>();\n readonly fileAccept: OutputEmitterRef<FileAcceptDetails> = output<FileAcceptDetails>();\n readonly fileReject: OutputEmitterRef<FileRejectDetails> = output<FileRejectDetails>();\n\n private readonly machine = useFileUpload({\n context: () => ({\n id: this.id(),\n ids: this.elementIds(),\n translations: this.translations(),\n name: this.name(),\n accept: this.accept(),\n disabled: this.disabled() || undefined,\n required: this.required() || undefined,\n invalid: this.invalid() || undefined,\n readOnly: this.readOnly() || undefined,\n allowDrop: this.allowDrop(),\n maxFileSize: this.maxFileSize(),\n minFileSize: this.minFileSize(),\n maxFiles: this.maxFiles(),\n preventDocumentDrop: this.preventDocumentDrop(),\n validate: this.validate(),\n defaultAcceptedFiles: this.defaultAcceptedFiles(),\n acceptedFiles: this.acceptedFiles(),\n capture: this.capture(),\n directory: this.directory(),\n transformFiles: this.transformFiles(),\n locale: this.locale(),\n onFileChange: (details: FileChangeDetails) => {\n if (!filesShallowEqual(this.acceptedFiles(), details.acceptedFiles)) {\n this.acceptedFiles.set([...details.acceptedFiles]);\n }\n this.fileChange.emit(details);\n },\n onFileAccept: (details: FileAcceptDetails) => this.fileAccept.emit(details),\n onFileReject: (details: FileRejectDetails) => this.fileReject.emit(details),\n }),\n });\n\n readonly state: Signal<fileUpload.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<fileUpload.Api> = this.machine.api;\n readonly service: fileUpload.Service = this.machine.service;\n readonly send: fileUpload.Service[\"send\"] = this.machine.send;\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n}\n\nconst filesShallowEqual = (a: File[] | undefined, b: File[]): boolean =>\n Array.isArray(a) && a.length === b.length && a.every((file, index) => file === b[index]);\n","import type * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n type InputSignal,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nimport { FILE_UPLOAD_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-root-provider]\",\n standalone: true,\n exportAs: \"fileUploadRootProvider\",\n providers: [\n { provide: FILE_UPLOAD_CONTEXT, useExisting: forwardRef(() => FileUploadRootProvider) },\n ],\n})\nexport class FileUploadRootProvider implements UseFileUploadReturn {\n readonly value: InputSignal<UseFileUploadReturn> = input.required<UseFileUploadReturn>();\n readonly state: Signal<fileUpload.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<fileUpload.Api> = computed(() => this.value().api());\n readonly send: fileUpload.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): fileUpload.Service {\n return this.value().service;\n }\n\n resolveValue(): UseFileUploadReturn {\n return this.value();\n }\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-label]\",\n standalone: true,\n exportAs: \"fileUploadLabel\",\n})\nexport class FileUploadLabel {\n constructor() {\n const context = injectFileUploadContext();\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 { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-trigger]\",\n standalone: true,\n exportAs: \"fileUploadTrigger\",\n})\nexport class FileUploadTrigger {\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n inject,\n input,\n type InputSignalWithTransform,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-dropzone]\",\n standalone: true,\n exportAs: \"fileUploadDropzone\",\n})\nexport class FileUploadDropzone {\n readonly disableClick: 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 constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDropzoneProps({ disableClick: this.disableClick() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"input[file-upload-hidden-input]\",\n standalone: true,\n exportAs: \"fileUploadHiddenInput\",\n})\nexport class FileUploadHiddenInput {\n constructor() {\n const context = injectFileUploadContext();\n const field = injectFieldContextOptional();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n ...context.api().getHiddenInputProps(),\n \"aria-describedby\": field?.ariaDescribedby(),\n }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-clear-trigger]\",\n standalone: true,\n exportAs: \"fileUploadClearTrigger\",\n})\nexport class FileUploadClearTrigger {\n constructor() {\n const context = injectFileUploadContext();\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 InjectionToken,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\nexport interface FileUploadItemGroupContext {\n type: Signal<FileUploadItemType | undefined>;\n}\n\nexport const FILE_UPLOAD_ITEM_GROUP_CONTEXT = new InjectionToken<FileUploadItemGroupContext>(\n \"WIREKYT.FILE_UPLOAD_ITEM_GROUP_CONTEXT\",\n);\n\nexport function injectFileUploadItemGroupContextOptional(): FileUploadItemGroupContext | null {\n return inject(FILE_UPLOAD_ITEM_GROUP_CONTEXT, { optional: true });\n}\n\n@Directive({\n selector: \"[file-upload-item-group]\",\n standalone: true,\n exportAs: \"fileUploadItemGroup\",\n providers: [\n { provide: FILE_UPLOAD_ITEM_GROUP_CONTEXT, useExisting: forwardRef(() => FileUploadItemGroup) },\n ],\n})\nexport class FileUploadItemGroup implements FileUploadItemGroupContext {\n readonly type: InputSignal<FileUploadItemType | undefined> = input<\n FileUploadItemType | undefined\n >(undefined);\n\n constructor() {\n const context = injectFileUploadContext();\n const typeSignal: Signal<FileUploadItemType | undefined> = computed(() => this.type());\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemGroupProps({ type: typeSignal() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nimport { injectFileUploadItemGroupContextOptional } from \"./item-group\";\nimport { injectFileUploadContext } from \"./use-context\";\nimport { FILE_UPLOAD_ITEM_CONTEXT, type FileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item]\",\n standalone: true,\n exportAs: \"fileUploadItem\",\n providers: [{ provide: FILE_UPLOAD_ITEM_CONTEXT, useExisting: forwardRef(() => FileUploadItem) }],\n})\nexport class FileUploadItem implements FileUploadItemContext {\n readonly file: InputSignal<File> = input.required<File>();\n\n private readonly group = injectFileUploadItemGroupContextOptional();\n readonly type: Signal<FileUploadItemType | undefined> = computed(() => this.group?.type());\n\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemProps({ file: this.file(), type: this.type() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, effect, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-name]\",\n standalone: true,\n exportAs: \"fileUploadItemName\",\n})\nexport class FileUploadItemName {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n let ownsTextContent = false;\n\n effect(() => {\n const fileName = item.file().name;\n queueMicrotask(() => {\n if (!ownsTextContent && elementRef.nativeElement.textContent?.trim().length !== 0) return;\n ownsTextContent = true;\n renderer.setProperty(elementRef.nativeElement, \"textContent\", fileName);\n });\n });\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => context.api().getItemNameProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, effect, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-size-text]\",\n standalone: true,\n exportAs: \"fileUploadItemSizeText\",\n})\nexport class FileUploadItemSizeText {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n let ownsTextContent = false;\n\n effect(() => {\n const sizeText = context.api().getFileSize(item.file());\n queueMicrotask(() => {\n if (!ownsTextContent && elementRef.nativeElement.textContent?.trim().length !== 0) return;\n ownsTextContent = true;\n renderer.setProperty(elementRef.nativeElement, \"textContent\", sizeText);\n });\n });\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => context.api().getItemSizeTextProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-preview]\",\n standalone: true,\n exportAs: \"fileUploadItemPreview\",\n})\nexport class FileUploadItemPreview {\n readonly type: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n private readonly context = injectFileUploadContext();\n private readonly item = injectFileUploadItemContext();\n\n readonly matches: Signal<boolean> = computed(() => {\n const pattern = this.type();\n if (!pattern || pattern === \"*/*\") return true;\n const mimeType = this.item.file().type;\n if (pattern.endsWith(\"/*\")) {\n return mimeType.startsWith(pattern.slice(0, -1));\n }\n if (/[\\^$*?()[\\]{}|\\\\]/.test(pattern)) {\n try {\n return new RegExp(pattern).test(mimeType);\n } catch {\n return false;\n }\n }\n return mimeType === pattern;\n });\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n ...this.context\n .api()\n .getItemPreviewProps({ file: this.item.file(), type: this.item.type() }),\n hidden: this.matches() ? undefined : true,\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n effect,\n inject,\n signal,\n untracked,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"img[file-upload-item-preview-image]\",\n standalone: true,\n exportAs: \"fileUploadItemPreviewImage\",\n})\nexport class FileUploadItemPreviewImage {\n private readonly urlSignal = signal<string | undefined>(undefined);\n readonly url: Signal<string | undefined> = this.urlSignal.asReadonly();\n\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n\n effect((onCleanup) => {\n const file = item.file();\n if (!file.type.startsWith(\"image/\")) {\n this.urlSignal.set(undefined);\n return;\n }\n\n const revoke = untracked(() =>\n context.api().createFileUrl(file, (url) => untracked(() => this.urlSignal.set(url))),\n );\n onCleanup(() => {\n this.urlSignal.set(undefined);\n revoke();\n });\n });\n\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const url = this.urlSignal();\n if (!url) return { hidden: true };\n\n return context\n .api()\n .getItemPreviewImageProps({ file: item.file(), type: item.type(), url });\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-delete-trigger]\",\n standalone: true,\n exportAs: \"fileUploadItemDeleteTrigger\",\n})\nexport class FileUploadItemDeleteTrigger {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemDeleteTriggerProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -41,83 +41,52 @@ const arePointsEqual = (left, right) => left !== undefined && Object.is(left.x,
41
41
  const areSizesEqual = (left, right) => left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);
42
42
  const areDetailsEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
43
43
  class FloatingPanelRoot extends PresenceBase {
44
- /** The unique identifier of the floating panel. */
45
44
  id = input(undefined, /* @ts-ignore */
46
45
  ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
47
- /** The ids of the floating panel elements. Useful for composition. */
48
46
  ids = input(undefined, /* @ts-ignore */
49
47
  ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
50
- /** The controlled open state of the floating panel. */
51
48
  open = model(undefined, /* @ts-ignore */
52
49
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
53
- /** The initial open state of the floating panel when uncontrolled. */
54
50
  defaultOpen = input(false, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
55
- /** The controlled position of the floating panel. */
56
51
  position = model(undefined, /* @ts-ignore */
57
52
  ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
58
- /** The initial position of the floating panel when uncontrolled. */
59
53
  defaultPosition = input(undefined, /* @ts-ignore */
60
54
  ...(ngDevMode ? [{ debugName: "defaultPosition" }] : /* istanbul ignore next */ []));
61
- /** The controlled size of the floating panel. */
62
55
  size = model(undefined, /* @ts-ignore */
63
56
  ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
64
- /** The initial size of the floating panel when uncontrolled. */
65
57
  defaultSize = input(undefined, /* @ts-ignore */
66
58
  ...(ngDevMode ? [{ debugName: "defaultSize" }] : /* istanbul ignore next */ []));
67
- /** The minimum size of the floating panel. */
68
59
  minSize = input(undefined, /* @ts-ignore */
69
60
  ...(ngDevMode ? [{ debugName: "minSize" }] : /* istanbul ignore next */ []));
70
- /** The maximum size of the floating panel. */
71
61
  maxSize = input(undefined, /* @ts-ignore */
72
62
  ...(ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []));
73
- /** The positioning strategy to use. */
74
63
  strategy = input("fixed", /* @ts-ignore */
75
64
  ...(ngDevMode ? [{ debugName: "strategy" }] : /* istanbul ignore next */ []));
76
- /** Whether the panel may overflow the boundary while dragging. */
77
65
  allowOverflow = input(true, { ...(ngDevMode ? { debugName: "allowOverflow" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
78
- /** Whether the floating panel is draggable. */
79
66
  draggable = input(true, { ...(ngDevMode ? { debugName: "draggable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
80
- /** Whether the floating panel is resizable. */
81
67
  resizable = input(true, { ...(ngDevMode ? { debugName: "resizable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
82
- /** Whether resizing locks the panel to its aspect ratio. */
83
68
  lockAspectRatio = input(false, { ...(ngDevMode ? { debugName: "lockAspectRatio" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
84
- /** Whether the floating panel closes when the escape key is pressed. */
85
69
  closeOnEscape = input(false, { ...(ngDevMode ? { debugName: "closeOnEscape" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
86
- /** Whether focus should be restored when the floating panel closes. */
87
70
  restoreFocus = input(true, { ...(ngDevMode ? { debugName: "restoreFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
88
- /** Whether the floating panel is disabled. */
89
71
  disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
90
- /** Whether size and position should be preserved when the floating panel closes. */
91
72
  persistRect = input(false, { ...(ngDevMode ? { debugName: "persistRect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
92
- /** The snap grid for dragging and keyboard movement. */
93
73
  gridSize = input(1, /* @ts-ignore */
94
74
  ...(ngDevMode ? [{ debugName: "gridSize" }] : /* istanbul ignore next */ []));
95
- /** Localized strings for control labels. */
96
75
  translations = input(undefined, /* @ts-ignore */
97
76
  ...(ngDevMode ? [{ debugName: "translations" }] : /* istanbul ignore next */ []));
98
- /** Function that returns the initial panel position when opened. */
99
77
  getAnchorPosition = input(undefined, /* @ts-ignore */
100
78
  ...(ngDevMode ? [{ debugName: "getAnchorPosition" }] : /* istanbul ignore next */ []));
101
- /** Function that returns the boundary element for dragging and resizing. */
102
79
  getBoundaryEl = input(undefined, /* @ts-ignore */
103
80
  ...(ngDevMode ? [{ debugName: "getBoundaryEl" }] : /* istanbul ignore next */ []));
104
- /** Element to receive focus when the floating panel opens. */
105
81
  initialFocusEl = input(undefined, /* @ts-ignore */
106
82
  ...(ngDevMode ? [{ debugName: "initialFocusEl" }] : /* istanbul ignore next */ []));
107
- /** Element to receive focus when the floating panel closes. */
108
83
  finalFocusEl = input(undefined, /* @ts-ignore */
109
84
  ...(ngDevMode ? [{ debugName: "finalFocusEl" }] : /* istanbul ignore next */ []));
110
- /** Emits details when the panel open state changes. */
111
85
  openChangeDetails = output();
112
- /** Emits details when the panel position changes via dragging or API calls. */
113
86
  positionDetailsChange = output();
114
- /** Emits details when a position-changing drag interaction ends. */
115
87
  positionChangeEnd = output();
116
- /** Emits details when the panel size changes via resizing or API calls. */
117
88
  sizeDetailsChange = output();
118
- /** Emits details when a size-changing resize interaction ends. */
119
89
  sizeChangeEnd = output();
120
- /** Emits details when the panel stage changes. */
121
90
  stageChange = output();
122
91
  lastPositionDetails;
123
92
  lastPositionEndDetails;
@@ -210,7 +179,6 @@ class FloatingPanelRoot extends PresenceBase {
210
179
  originInjector: inject(Injector),
211
180
  environmentInjector: inject(EnvironmentInjector),
212
181
  });
213
- /** @internal Exposed for floating panel part directives to consume through portals. */
214
182
  getContextCarrier() {
215
183
  return this.contextCarrier;
216
184
  }
@@ -260,7 +228,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
260
228
  }], 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 }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }, { type: i0.Output, args: ["positionChange"] }], defaultPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPosition", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }, { type: i0.Output, args: ["sizeChange"] }], defaultSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSize", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], allowOverflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowOverflow", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], lockAspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockAspectRatio", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], persistRect: [{ type: i0.Input, args: [{ isSignal: true, alias: "persistRect", required: false }] }], gridSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridSize", required: false }] }], translations: [{ type: i0.Input, args: [{ isSignal: true, alias: "translations", required: false }] }], getAnchorPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "getAnchorPosition", required: false }] }], getBoundaryEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "getBoundaryEl", required: false }] }], initialFocusEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialFocusEl", required: false }] }], finalFocusEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "finalFocusEl", required: false }] }], openChangeDetails: [{ type: i0.Output, args: ["openChangeDetails"] }], positionDetailsChange: [{ type: i0.Output, args: ["positionDetailsChange"] }], positionChangeEnd: [{ type: i0.Output, args: ["positionChangeEnd"] }], sizeDetailsChange: [{ type: i0.Output, args: ["sizeDetailsChange"] }], sizeChangeEnd: [{ type: i0.Output, args: ["sizeChangeEnd"] }], stageChange: [{ type: i0.Output, args: ["stageChange"] }] } });
261
229
 
262
230
  class FloatingPanelRootProvider extends PresenceBase {
263
- /** The floating panel machine returned by useFloatingPanel(). */
264
231
  value = input.required(/* @ts-ignore */
265
232
  ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
266
233
  state = computed(() => this.value().state(), /* @ts-ignore */
@@ -289,7 +256,6 @@ class FloatingPanelRootProvider extends PresenceBase {
289
256
  originInjector: inject(Injector),
290
257
  environmentInjector: inject(EnvironmentInjector),
291
258
  });
292
- /** @internal Exposed for floating panel part directives to consume through portals. */
293
259
  getContextCarrier() {
294
260
  return this.contextCarrier;
295
261
  }
@@ -592,7 +558,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
592
558
  }], ctorParameters: () => [] });
593
559
 
594
560
  class FloatingPanelResizeTrigger {
595
- /** The axis of the resize handle. */
596
561
  axis = input.required(/* @ts-ignore */
597
562
  ...(ngDevMode ? [{ debugName: "axis" }] : /* istanbul ignore next */ []));
598
563
  constructor() {
@@ -617,7 +582,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
617
582
  }], ctorParameters: () => [], propDecorators: { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: true }] }] } });
618
583
 
619
584
  class FloatingPanelStageTrigger {
620
- /** The stage to apply when the trigger is clicked. */
621
585
  stage = input.required(/* @ts-ignore */
622
586
  ...(ngDevMode ? [{ debugName: "stage" }] : /* istanbul ignore next */ []));
623
587
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"wirekyt-angular-floating-panel.mjs","sources":["../../src/components/floating-panel/use-context.ts","../../src/components/floating-panel/use.ts","../../src/components/floating-panel/root.ts","../../src/components/floating-panel/root-provider.ts","../../src/components/floating-panel/trigger.ts","../../src/components/floating-panel/positioner.ts","../../src/components/floating-panel/content.ts","../../src/components/floating-panel/control.ts","../../src/components/floating-panel/header.ts","../../src/components/floating-panel/body.ts","../../src/components/floating-panel/title.ts","../../src/components/floating-panel/close-trigger.ts","../../src/components/floating-panel/drag-trigger.ts","../../src/components/floating-panel/resize-trigger.ts","../../src/components/floating-panel/stage-trigger.ts","../../src/components/floating-panel/context.ts","../../src/components/floating-panel/wirekyt-angular-floating-panel.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nexport const FLOATING_PANEL_CONTEXT = new InjectionToken<UseFloatingPanelReturn>(\n \"WIREKYT.FLOATING_PANEL_CONTEXT\",\n);\n\nexport function injectFloatingPanelContext(): UseFloatingPanelReturn {\n return inject(FLOATING_PANEL_CONTEXT);\n}\n\nexport const FLOATING_PANEL_CONTEXT_CARRIER = new InjectionToken<\n ContextCarrier<UseFloatingPanelReturn>\n>(\"WIREKYT.FLOATING_PANEL_CONTEXT_CARRIER\");\n\nexport function injectFloatingPanelContextCarrier(): ContextCarrier<UseFloatingPanelReturn> {\n return inject(FLOATING_PANEL_CONTEXT_CARRIER);\n}\n\nexport interface FloatingPanelRenderStrategyContext {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const FLOATING_PANEL_RENDER_STRATEGY_CONTEXT =\n new InjectionToken<FloatingPanelRenderStrategyContext>(\n \"WIREKYT.FLOATING_PANEL_RENDER_STRATEGY_CONTEXT\",\n );\n\nexport function injectFloatingPanelRenderStrategyContext(): FloatingPanelRenderStrategyContext {\n return inject(FLOATING_PANEL_RENDER_STRATEGY_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFloatingPanelProps extends OptionalId<\n Omit<floatingPanel.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFloatingPanelReturn = UseMachineReturn<\n floatingPanel.Service[\"state\"],\n floatingPanel.Api,\n floatingPanel.Service\n>;\n\nexport interface UseFloatingPanelOptions {\n context: () => UseFloatingPanelProps;\n}\n\ntype FloatingPanelContext = Record<string, unknown>;\ntype FloatingPanelSchema = floatingPanel.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useFloatingPanel(options: UseFloatingPanelOptions): UseFloatingPanelReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<FloatingPanelSchema, floatingPanel.Api>({\n machine: floatingPanel.machine,\n context: () => {\n const props = options.context();\n return {\n ...props,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: props.id ?? fallbackId,\n } as FloatingPanelContext;\n },\n connect: (service, normalize) => floatingPanel.connect(service, normalize),\n });\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type {\n FloatingPanelAnchorPositionDetails,\n FloatingPanelElementIds,\n FloatingPanelIntlTranslations,\n FloatingPanelOpenChangeDetails,\n FloatingPanelPoint,\n FloatingPanelPositionChangeDetails,\n FloatingPanelSize,\n FloatingPanelSizeChangeDetails,\n FloatingPanelStageChangeDetails,\n} from \"./types\";\n\nimport { useFloatingPanel, type UseFloatingPanelReturn } from \"./use\";\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\nconst arePointsEqual = (left: FloatingPanelPoint | undefined, right: FloatingPanelPoint): boolean =>\n left !== undefined && Object.is(left.x, right.x) && Object.is(left.y, right.y);\n\nconst areSizesEqual = (left: FloatingPanelSize | undefined, right: FloatingPanelSize): boolean =>\n left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);\n\nconst areDetailsEqual = (left: unknown, right: unknown): boolean =>\n JSON.stringify(left) === JSON.stringify(right);\n\n@Directive({\n selector: \"[floating-panel-root]\",\n standalone: true,\n exportAs: \"floatingPanelRoot\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (root: FloatingPanelRoot) => root.presence,\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRoot),\n },\n { provide: FLOATING_PANEL_CONTEXT, useExisting: forwardRef(() => FloatingPanelRoot) },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (root: FloatingPanelRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n ],\n})\nexport class FloatingPanelRoot extends PresenceBase implements UseFloatingPanelReturn {\n /** The unique identifier of the floating panel. */\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The ids of the floating panel elements. Useful for composition. */\n readonly ids: InputSignal<Partial<FloatingPanelElementIds> | undefined> = input<\n Partial<FloatingPanelElementIds> | undefined\n >(undefined);\n /** The controlled open state of the floating panel. */\n readonly open: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);\n /** The initial open state of the floating panel when uncontrolled. */\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** The controlled position of the floating panel. */\n readonly position: ModelSignal<FloatingPanelPoint | undefined> = model<\n FloatingPanelPoint | undefined\n >(undefined);\n /** The initial position of the floating panel when uncontrolled. */\n readonly defaultPosition: InputSignal<FloatingPanelPoint | undefined> = input<\n FloatingPanelPoint | undefined\n >(undefined);\n /** The controlled size of the floating panel. */\n readonly size: ModelSignal<FloatingPanelSize | undefined> = model<FloatingPanelSize | undefined>(\n undefined,\n );\n /** The initial size of the floating panel when uncontrolled. */\n readonly defaultSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The minimum size of the floating panel. */\n readonly minSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The maximum size of the floating panel. */\n readonly maxSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The positioning strategy to use. */\n readonly strategy: InputSignal<floatingPanel.Props[\"strategy\"]> =\n input<floatingPanel.Props[\"strategy\"]>(\"fixed\");\n /** Whether the panel may overflow the boundary while dragging. */\n readonly allowOverflow: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is draggable. */\n readonly draggable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is resizable. */\n readonly resizable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether resizing locks the panel to its aspect ratio. */\n readonly lockAspectRatio: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel closes when the escape key is pressed. */\n readonly closeOnEscape: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether focus should be restored when the floating panel closes. */\n readonly restoreFocus: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is disabled. */\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether size and position should be preserved when the floating panel closes. */\n readonly persistRect: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** The snap grid for dragging and keyboard movement. */\n readonly gridSize: InputSignal<number | undefined> = input<number | undefined>(1);\n /** Localized strings for control labels. */\n readonly translations: InputSignal<FloatingPanelIntlTranslations | undefined> = input<\n FloatingPanelIntlTranslations | undefined\n >(undefined);\n /** Function that returns the initial panel position when opened. */\n readonly getAnchorPosition: InputSignal<\n ((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined\n > = input<((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined>(\n undefined,\n );\n /** Function that returns the boundary element for dragging and resizing. */\n readonly getBoundaryEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n /** Element to receive focus when the floating panel opens. */\n readonly initialFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n /** Element to receive focus when the floating panel closes. */\n readonly finalFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n\n /** Emits details when the panel open state changes. */\n readonly openChangeDetails: OutputEmitterRef<FloatingPanelOpenChangeDetails> =\n output<FloatingPanelOpenChangeDetails>();\n /** Emits details when the panel position changes via dragging or API calls. */\n readonly positionDetailsChange: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n /** Emits details when a position-changing drag interaction ends. */\n readonly positionChangeEnd: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n /** Emits details when the panel size changes via resizing or API calls. */\n readonly sizeDetailsChange: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n /** Emits details when a size-changing resize interaction ends. */\n readonly sizeChangeEnd: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n /** Emits details when the panel stage changes. */\n readonly stageChange: OutputEmitterRef<FloatingPanelStageChangeDetails> =\n output<FloatingPanelStageChangeDetails>();\n\n private lastPositionDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastPositionEndDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastSizeDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastSizeEndDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastStageDetails: FloatingPanelStageChangeDetails | undefined;\n\n private readonly machine = useFloatingPanel({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n position: this.position(),\n defaultPosition: this.defaultPosition(),\n size: this.size(),\n defaultSize: this.defaultSize(),\n minSize: this.minSize(),\n maxSize: this.maxSize(),\n strategy: this.strategy(),\n allowOverflow: this.allowOverflow(),\n draggable: this.draggable(),\n resizable: this.resizable(),\n lockAspectRatio: this.lockAspectRatio(),\n closeOnEscape: this.closeOnEscape(),\n restoreFocus: this.restoreFocus(),\n disabled: this.disabled(),\n persistRect: this.persistRect(),\n gridSize: this.gridSize(),\n translations: this.translations(),\n getAnchorPosition: this.getAnchorPosition(),\n getBoundaryEl: this.getBoundaryEl(),\n initialFocusEl: this.initialFocusEl(),\n finalFocusEl: this.finalFocusEl(),\n onOpenChange: (details) => {\n if (this.open() !== details.open) {\n this.open.set(details.open);\n }\n this.openChangeDetails.emit(details);\n },\n onPositionChange: (details) => {\n if (areDetailsEqual(this.lastPositionDetails, details)) return;\n this.lastPositionDetails = details;\n if (!arePointsEqual(this.position(), details.position)) {\n this.position.set({ ...details.position });\n }\n this.positionDetailsChange.emit(details);\n },\n onPositionChangeEnd: (details) => {\n if (areDetailsEqual(this.lastPositionEndDetails, details)) return;\n this.lastPositionEndDetails = details;\n this.positionChangeEnd.emit(details);\n },\n onSizeChange: (details) => {\n if (areDetailsEqual(this.lastSizeDetails, details)) return;\n this.lastSizeDetails = details;\n if (!areSizesEqual(this.size(), details.size)) {\n this.size.set({ ...details.size });\n }\n this.sizeDetailsChange.emit(details);\n },\n onSizeChangeEnd: (details) => {\n if (areDetailsEqual(this.lastSizeEndDetails, details)) return;\n this.lastSizeEndDetails = details;\n this.sizeChangeEnd.emit(details);\n },\n onStageChange: (details) => {\n if (areDetailsEqual(this.lastStageDetails, details)) return;\n this.lastStageDetails = details;\n this.stageChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<floatingPanel.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<floatingPanel.Api> = this.machine.api;\n readonly service: floatingPanel.Service = this.machine.service;\n readonly send: floatingPanel.Service[\"send\"] = this.machine.send;\n readonly presence = this.createPresence(() => this.api().open);\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRoot> =\n buildRootCarrier<FloatingPanelRoot>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for floating panel part directives to consume through portals. */\n getContextCarrier(): ContextCarrier<FloatingPanelRoot> {\n return this.contextCarrier;\n }\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type InputSignal,\n type ProviderToken,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-root-provider]\",\n standalone: true,\n exportAs: \"floatingPanelRootProvider\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (provider: FloatingPanelRootProvider) => provider.presence,\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (provider: FloatingPanelRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n ],\n})\nexport class FloatingPanelRootProvider extends PresenceBase implements UseFloatingPanelReturn {\n /** The floating panel machine returned by useFloatingPanel(). */\n readonly value: InputSignal<UseFloatingPanelReturn> = input.required<UseFloatingPanelReturn>();\n readonly state: Signal<floatingPanel.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<floatingPanel.Api> = computed(() => this.value().api());\n readonly send: floatingPanel.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): floatingPanel.Service {\n return this.value().service;\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<FloatingPanelRootProvider> =\n buildRootCarrier<FloatingPanelRootProvider>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRootProvider>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for floating panel part directives to consume through portals. */\n getContextCarrier(): ContextCarrier<FloatingPanelRootProvider> {\n return this.contextCarrier;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelTrigger\",\n})\nexport class FloatingPanelTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-positioner]\",\n standalone: true,\n exportAs: \"floatingPanelPositioner\",\n})\nexport class FloatingPanelPositioner {\n constructor() {\n const context = injectFloatingPanelContext();\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\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 });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const unmounted = presence.unmounted();\n return { ...context.api().getPositionerProps(), hidden: unmounted };\n },\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-content]\",\n standalone: true,\n exportAs: \"floatingPanelContent\",\n})\nexport class FloatingPanelContent {\n constructor() {\n const context = injectFloatingPanelContext();\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\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\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-control]\",\n standalone: true,\n exportAs: \"floatingPanelControl\",\n})\nexport class FloatingPanelControl {\n constructor() {\n const context = injectFloatingPanelContext();\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-header]\",\n standalone: true,\n exportAs: \"floatingPanelHeader\",\n})\nexport class FloatingPanelHeader {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getHeaderProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-body]\",\n standalone: true,\n exportAs: \"floatingPanelBody\",\n})\nexport class FloatingPanelBody {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBodyProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-title]\",\n standalone: true,\n exportAs: \"floatingPanelTitle\",\n})\nexport class FloatingPanelTitle {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTitleProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-close-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelCloseTrigger\",\n})\nexport class FloatingPanelCloseTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getCloseTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-drag-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelDragTrigger\",\n})\nexport class FloatingPanelDragTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDragTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FloatingPanelResizeTriggerAxis } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-resize-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelResizeTrigger\",\n})\nexport class FloatingPanelResizeTrigger {\n /** The axis of the resize handle. */\n readonly axis: InputSignal<FloatingPanelResizeTriggerAxis> =\n input.required<FloatingPanelResizeTriggerAxis>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getResizeTriggerProps({ axis: this.axis() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FloatingPanelStage } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-stage-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelStageTrigger\",\n})\nexport class FloatingPanelStageTrigger {\n /** The stage to apply when the trigger is clicked. */\n readonly stage: InputSignal<FloatingPanelStage> = input.required<FloatingPanelStage>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getStageTriggerProps({ stage: this.stage() }),\n });\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect, inject } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\nexport interface FloatingPanelContextTemplate {\n $implicit: UseFloatingPanelReturn[\"api\"];\n api: UseFloatingPanelReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[floating-panel-context]\",\n standalone: true,\n exportAs: \"floatingPanelContext\",\n})\nexport class FloatingPanelContext {\n static ngTemplateContextGuard(\n _directive: FloatingPanelContext,\n context: unknown,\n ): context is FloatingPanelContextTemplate {\n void context;\n return true;\n }\n\n private readonly floatingPanel = injectFloatingPanelContext();\n private readonly templateRef = inject<TemplateRef<FloatingPanelContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.floatingPanel.api,\n api: this.floatingPanel.api,\n });\n\n effect(() => {\n this.floatingPanel.api();\n view.detectChanges();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wirekyt-angular-floating-panel.mjs","sources":["../../src/components/floating-panel/use-context.ts","../../src/components/floating-panel/use.ts","../../src/components/floating-panel/root.ts","../../src/components/floating-panel/root-provider.ts","../../src/components/floating-panel/trigger.ts","../../src/components/floating-panel/positioner.ts","../../src/components/floating-panel/content.ts","../../src/components/floating-panel/control.ts","../../src/components/floating-panel/header.ts","../../src/components/floating-panel/body.ts","../../src/components/floating-panel/title.ts","../../src/components/floating-panel/close-trigger.ts","../../src/components/floating-panel/drag-trigger.ts","../../src/components/floating-panel/resize-trigger.ts","../../src/components/floating-panel/stage-trigger.ts","../../src/components/floating-panel/context.ts","../../src/components/floating-panel/wirekyt-angular-floating-panel.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nexport const FLOATING_PANEL_CONTEXT = new InjectionToken<UseFloatingPanelReturn>(\n \"WIREKYT.FLOATING_PANEL_CONTEXT\",\n);\n\nexport function injectFloatingPanelContext(): UseFloatingPanelReturn {\n return inject(FLOATING_PANEL_CONTEXT);\n}\n\nexport const FLOATING_PANEL_CONTEXT_CARRIER = new InjectionToken<\n ContextCarrier<UseFloatingPanelReturn>\n>(\"WIREKYT.FLOATING_PANEL_CONTEXT_CARRIER\");\n\nexport function injectFloatingPanelContextCarrier(): ContextCarrier<UseFloatingPanelReturn> {\n return inject(FLOATING_PANEL_CONTEXT_CARRIER);\n}\n\nexport interface FloatingPanelRenderStrategyContext {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const FLOATING_PANEL_RENDER_STRATEGY_CONTEXT =\n new InjectionToken<FloatingPanelRenderStrategyContext>(\n \"WIREKYT.FLOATING_PANEL_RENDER_STRATEGY_CONTEXT\",\n );\n\nexport function injectFloatingPanelRenderStrategyContext(): FloatingPanelRenderStrategyContext {\n return inject(FLOATING_PANEL_RENDER_STRATEGY_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFloatingPanelProps extends OptionalId<\n Omit<floatingPanel.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFloatingPanelReturn = UseMachineReturn<\n floatingPanel.Service[\"state\"],\n floatingPanel.Api,\n floatingPanel.Service\n>;\n\nexport interface UseFloatingPanelOptions {\n context: () => UseFloatingPanelProps;\n}\n\ntype FloatingPanelContext = Record<string, unknown>;\ntype FloatingPanelSchema = floatingPanel.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useFloatingPanel(options: UseFloatingPanelOptions): UseFloatingPanelReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<FloatingPanelSchema, floatingPanel.Api>({\n machine: floatingPanel.machine,\n context: () => {\n const props = options.context();\n return {\n ...props,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: props.id ?? fallbackId,\n } as FloatingPanelContext;\n },\n connect: (service, normalize) => floatingPanel.connect(service, normalize),\n });\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type {\n FloatingPanelAnchorPositionDetails,\n FloatingPanelElementIds,\n FloatingPanelIntlTranslations,\n FloatingPanelOpenChangeDetails,\n FloatingPanelPoint,\n FloatingPanelPositionChangeDetails,\n FloatingPanelSize,\n FloatingPanelSizeChangeDetails,\n FloatingPanelStageChangeDetails,\n} from \"./types\";\n\nimport { useFloatingPanel, type UseFloatingPanelReturn } from \"./use\";\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\nconst arePointsEqual = (left: FloatingPanelPoint | undefined, right: FloatingPanelPoint): boolean =>\n left !== undefined && Object.is(left.x, right.x) && Object.is(left.y, right.y);\n\nconst areSizesEqual = (left: FloatingPanelSize | undefined, right: FloatingPanelSize): boolean =>\n left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);\n\nconst areDetailsEqual = (left: unknown, right: unknown): boolean =>\n JSON.stringify(left) === JSON.stringify(right);\n\n@Directive({\n selector: \"[floating-panel-root]\",\n standalone: true,\n exportAs: \"floatingPanelRoot\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (root: FloatingPanelRoot) => root.presence,\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRoot),\n },\n { provide: FLOATING_PANEL_CONTEXT, useExisting: forwardRef(() => FloatingPanelRoot) },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (root: FloatingPanelRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n ],\n})\nexport class FloatingPanelRoot extends PresenceBase implements UseFloatingPanelReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<FloatingPanelElementIds> | undefined> = input<\n Partial<FloatingPanelElementIds> | undefined\n >(undefined);\n readonly open: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly position: ModelSignal<FloatingPanelPoint | undefined> = model<\n FloatingPanelPoint | undefined\n >(undefined);\n readonly defaultPosition: InputSignal<FloatingPanelPoint | undefined> = input<\n FloatingPanelPoint | undefined\n >(undefined);\n readonly size: ModelSignal<FloatingPanelSize | undefined> = model<FloatingPanelSize | undefined>(\n undefined,\n );\n readonly defaultSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly minSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly maxSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly strategy: InputSignal<floatingPanel.Props[\"strategy\"]> =\n input<floatingPanel.Props[\"strategy\"]>(\"fixed\");\n readonly allowOverflow: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly draggable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly resizable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly lockAspectRatio: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly closeOnEscape: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly restoreFocus: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly persistRect: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly gridSize: InputSignal<number | undefined> = input<number | undefined>(1);\n readonly translations: InputSignal<FloatingPanelIntlTranslations | undefined> = input<\n FloatingPanelIntlTranslations | undefined\n >(undefined);\n readonly getAnchorPosition: InputSignal<\n ((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined\n > = input<((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined>(\n undefined,\n );\n readonly getBoundaryEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n readonly initialFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n readonly finalFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n\n readonly openChangeDetails: OutputEmitterRef<FloatingPanelOpenChangeDetails> =\n output<FloatingPanelOpenChangeDetails>();\n readonly positionDetailsChange: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n readonly positionChangeEnd: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n readonly sizeDetailsChange: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n readonly sizeChangeEnd: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n readonly stageChange: OutputEmitterRef<FloatingPanelStageChangeDetails> =\n output<FloatingPanelStageChangeDetails>();\n\n private lastPositionDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastPositionEndDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastSizeDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastSizeEndDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastStageDetails: FloatingPanelStageChangeDetails | undefined;\n\n private readonly machine = useFloatingPanel({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n position: this.position(),\n defaultPosition: this.defaultPosition(),\n size: this.size(),\n defaultSize: this.defaultSize(),\n minSize: this.minSize(),\n maxSize: this.maxSize(),\n strategy: this.strategy(),\n allowOverflow: this.allowOverflow(),\n draggable: this.draggable(),\n resizable: this.resizable(),\n lockAspectRatio: this.lockAspectRatio(),\n closeOnEscape: this.closeOnEscape(),\n restoreFocus: this.restoreFocus(),\n disabled: this.disabled(),\n persistRect: this.persistRect(),\n gridSize: this.gridSize(),\n translations: this.translations(),\n getAnchorPosition: this.getAnchorPosition(),\n getBoundaryEl: this.getBoundaryEl(),\n initialFocusEl: this.initialFocusEl(),\n finalFocusEl: this.finalFocusEl(),\n onOpenChange: (details) => {\n if (this.open() !== details.open) {\n this.open.set(details.open);\n }\n this.openChangeDetails.emit(details);\n },\n onPositionChange: (details) => {\n if (areDetailsEqual(this.lastPositionDetails, details)) return;\n this.lastPositionDetails = details;\n if (!arePointsEqual(this.position(), details.position)) {\n this.position.set({ ...details.position });\n }\n this.positionDetailsChange.emit(details);\n },\n onPositionChangeEnd: (details) => {\n if (areDetailsEqual(this.lastPositionEndDetails, details)) return;\n this.lastPositionEndDetails = details;\n this.positionChangeEnd.emit(details);\n },\n onSizeChange: (details) => {\n if (areDetailsEqual(this.lastSizeDetails, details)) return;\n this.lastSizeDetails = details;\n if (!areSizesEqual(this.size(), details.size)) {\n this.size.set({ ...details.size });\n }\n this.sizeDetailsChange.emit(details);\n },\n onSizeChangeEnd: (details) => {\n if (areDetailsEqual(this.lastSizeEndDetails, details)) return;\n this.lastSizeEndDetails = details;\n this.sizeChangeEnd.emit(details);\n },\n onStageChange: (details) => {\n if (areDetailsEqual(this.lastStageDetails, details)) return;\n this.lastStageDetails = details;\n this.stageChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<floatingPanel.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<floatingPanel.Api> = this.machine.api;\n readonly service: floatingPanel.Service = this.machine.service;\n readonly send: floatingPanel.Service[\"send\"] = this.machine.send;\n readonly presence = this.createPresence(() => this.api().open);\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRoot> =\n buildRootCarrier<FloatingPanelRoot>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<FloatingPanelRoot> {\n return this.contextCarrier;\n }\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type InputSignal,\n type ProviderToken,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-root-provider]\",\n standalone: true,\n exportAs: \"floatingPanelRootProvider\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (provider: FloatingPanelRootProvider) => provider.presence,\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (provider: FloatingPanelRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n ],\n})\nexport class FloatingPanelRootProvider extends PresenceBase implements UseFloatingPanelReturn {\n readonly value: InputSignal<UseFloatingPanelReturn> = input.required<UseFloatingPanelReturn>();\n readonly state: Signal<floatingPanel.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<floatingPanel.Api> = computed(() => this.value().api());\n readonly send: floatingPanel.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): floatingPanel.Service {\n return this.value().service;\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<FloatingPanelRootProvider> =\n buildRootCarrier<FloatingPanelRootProvider>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRootProvider>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<FloatingPanelRootProvider> {\n return this.contextCarrier;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelTrigger\",\n})\nexport class FloatingPanelTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-positioner]\",\n standalone: true,\n exportAs: \"floatingPanelPositioner\",\n})\nexport class FloatingPanelPositioner {\n constructor() {\n const context = injectFloatingPanelContext();\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\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 });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const unmounted = presence.unmounted();\n return { ...context.api().getPositionerProps(), hidden: unmounted };\n },\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-content]\",\n standalone: true,\n exportAs: \"floatingPanelContent\",\n})\nexport class FloatingPanelContent {\n constructor() {\n const context = injectFloatingPanelContext();\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\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\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-control]\",\n standalone: true,\n exportAs: \"floatingPanelControl\",\n})\nexport class FloatingPanelControl {\n constructor() {\n const context = injectFloatingPanelContext();\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 { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-header]\",\n standalone: true,\n exportAs: \"floatingPanelHeader\",\n})\nexport class FloatingPanelHeader {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getHeaderProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-body]\",\n standalone: true,\n exportAs: \"floatingPanelBody\",\n})\nexport class FloatingPanelBody {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBodyProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-title]\",\n standalone: true,\n exportAs: \"floatingPanelTitle\",\n})\nexport class FloatingPanelTitle {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTitleProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-close-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelCloseTrigger\",\n})\nexport class FloatingPanelCloseTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getCloseTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-drag-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelDragTrigger\",\n})\nexport class FloatingPanelDragTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDragTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FloatingPanelResizeTriggerAxis } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-resize-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelResizeTrigger\",\n})\nexport class FloatingPanelResizeTrigger {\n readonly axis: InputSignal<FloatingPanelResizeTriggerAxis> =\n input.required<FloatingPanelResizeTriggerAxis>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getResizeTriggerProps({ axis: this.axis() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { FloatingPanelStage } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-stage-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelStageTrigger\",\n})\nexport class FloatingPanelStageTrigger {\n readonly stage: InputSignal<FloatingPanelStage> = input.required<FloatingPanelStage>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getStageTriggerProps({ stage: this.stage() }),\n });\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect, inject } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\nexport interface FloatingPanelContextTemplate {\n $implicit: UseFloatingPanelReturn[\"api\"];\n api: UseFloatingPanelReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[floating-panel-context]\",\n standalone: true,\n exportAs: \"floatingPanelContext\",\n})\nexport class FloatingPanelContext {\n static ngTemplateContextGuard(\n _directive: FloatingPanelContext,\n context: unknown,\n ): context is FloatingPanelContextTemplate {\n void context;\n return true;\n }\n\n private readonly floatingPanel = injectFloatingPanelContext();\n private readonly templateRef = inject<TemplateRef<FloatingPanelContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.floatingPanel.api,\n api: this.floatingPanel.api,\n });\n\n effect(() => {\n this.floatingPanel.api();\n view.detectChanges();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}