@wirekyt/angular 0.0.3 → 0.0.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wirekyt-angular-collapsible.mjs","sources":["../../src/components/collapsible/use-context.ts","../../src/components/collapsible/use.ts","../../src/components/collapsible/root.ts","../../src/components/collapsible/root-provider.ts","../../src/components/collapsible/trigger.ts","../../src/components/collapsible/content.ts","../../src/components/collapsible/indicator.ts","../../src/components/collapsible/wirekyt-angular-collapsible.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseCollapsibleReturn } from \"./use\";\n\nexport const COLLAPSIBLE_CONTEXT = new InjectionToken<UseCollapsibleReturn>(\n \"WIREKIT.COLLAPSIBLE_CONTEXT\",\n);\n\nexport function injectCollapsibleContext(): UseCollapsibleReturn {\n return inject(COLLAPSIBLE_CONTEXT);\n}\n","import { computed, effect, signal, type Signal } from \"@angular/core\";\nimport { useMachine, UseMachineReturn } from \"@wirekyt/angular\";\nimport { createId, injectEnvironment, injectLocale } from \"@wirekyt/angular\";\nimport { Machine } from \"@wirekyt/dom\";\nimport * as collapsible from \"@wirekyt/dom/machines/collapsible\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseCollapsibleProps extends OptionalId<\n Omit<collapsible.Props, \"dir\" | \"getRootNode\">\n> {\n lazyMount?: boolean;\n unmountOnExit?: boolean;\n}\n\nexport interface UseCollapsibleReturn extends UseMachineReturn<\n collapsible.Service[\"state\"],\n collapsible.Api,\n collapsible.Service\n> {\n readonly isUnmounted: Signal<boolean>;\n}\n\nexport interface UseCollapsibleOptions {\n context: () => UseCollapsibleProps;\n}\n\ntype CollapsibleContext = Record<string, unknown>;\ntype CollapsibleSchema = collapsible.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useCollapsible(options: UseCollapsibleOptions): UseCollapsibleReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n const wasVisible = signal(false);\n\n const machine = useMachine<CollapsibleSchema, collapsible.Api>({\n machine: collapsible.machine,\n context: () => {\n const props = options.context();\n const { lazyMount: _lazyMount, unmountOnExit: _unmountOnExit, ...collapsibleProps } = props;\n return {\n ...collapsibleProps,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: collapsibleProps.id ?? fallbackId,\n } as CollapsibleContext;\n },\n connect: (service, normalize) => collapsible.connect(service, normalize),\n });\n\n effect(() => {\n if (machine.api().visible) {\n wasVisible.set(true);\n }\n });\n\n const isUnmounted = computed(() => {\n const { lazyMount, unmountOnExit } = options.context();\n const visible = machine.api().visible;\n return Boolean(\n (!visible && !wasVisible() && lazyMount) || (unmountOnExit && !visible && wasVisible()),\n );\n });\n\n return {\n ...machine,\n isUnmounted,\n };\n}\n","import type * as collapsible from \"@wirekyt/dom/machines/collapsible\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, ContextCarrier } from \"@wirekyt/angular\";\n\nimport { CollapsibleElementIds } from \"./types\";\nimport { useCollapsible, UseCollapsibleReturn } from \"./use\";\nimport { COLLAPSIBLE_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[wireCollapsible]\",\n standalone: true,\n exportAs: \"wireCollapsible\",\n providers: [{ provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRoot) }],\n})\nexport class CollapsibleRoot implements UseCollapsibleReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<CollapsibleElementIds> | undefined> = input<\n Partial<CollapsibleElementIds> | undefined\n >(undefined);\n readonly open: InputSignal<boolean | undefined> = input<boolean | undefined>(undefined);\n readonly openChange: OutputEmitterRef<collapsible.OpenChangeDetails> = output<collapsible.OpenChangeDetails>();\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly collapsedHeight: InputSignal<number | string | undefined> = input<\n number | string | undefined\n >(undefined);\n readonly collapsedWidth: InputSignal<number | string | undefined> = input<\n number | string | undefined\n >(undefined);\n readonly lazyMount: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly unmountOnExit: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly exitComplete: OutputEmitterRef<void> = output<void>();\n\n private readonly machine = useCollapsible({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n disabled: this.disabled(),\n collapsedHeight: this.collapsedHeight(),\n collapsedWidth: this.collapsedWidth(),\n lazyMount: this.lazyMount(),\n unmountOnExit: this.unmountOnExit(),\n onOpenChange: (details) => {\n this.openChange.emit(details);\n },\n onExitComplete: () => {\n this.exitComplete.emit();\n },\n }),\n });\n\n readonly state: Signal<collapsible.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<collapsible.Api> = this.machine.api;\n readonly isUnmounted: Signal<boolean> = computed(() => this.machine.isUnmounted());\n readonly service: collapsible.Service = this.machine.service;\n readonly send: collapsible.Service[\"send\"] = this.machine.send;\n\n protected readonly arkContextCarrier: ContextCarrier<CollapsibleRoot> =\n buildRootCarrier<CollapsibleRoot>({\n root: this,\n rootToken: COLLAPSIBLE_CONTEXT as ProviderToken<CollapsibleRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\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 type * as collapsible from \"@wirekyt/dom/machines/collapsible\";\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 { UseCollapsibleReturn } from \"./use\";\nimport { COLLAPSIBLE_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[wireCollapsibleRootProvider]\",\n standalone: true,\n exportAs: \"wireCollapsibleRootProvider\",\n providers: [\n { provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRootProvider) },\n ],\n})\nexport class CollapsibleRootProvider implements UseCollapsibleReturn {\n readonly value: InputSignal<UseCollapsibleReturn> = input.required<UseCollapsibleReturn>();\n readonly state: Signal<collapsible.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<collapsible.Api> = computed(() => this.value().api());\n readonly isUnmounted: Signal<boolean> = computed(() => this.value().isUnmounted());\n readonly send: collapsible.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): collapsible.Service {\n return this.value().service;\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 { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[wireCollapsibleTrigger]\",\n standalone: true,\n exportAs: \"wireCollapsibleTrigger\",\n})\nexport class CollapsibleTrigger {\n constructor() {\n const context = injectCollapsibleContext();\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\";\n\nimport { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[wireCollapsibleContent]\",\n standalone: true,\n exportAs: \"wireCollapsibleContent\",\n})\nexport class CollapsibleContent {\n private readonly context = injectCollapsibleContext();\n private readonly template = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly elementRef = { nativeElement: null as HTMLElement | null };\n private view: EmbeddedViewRef<unknown> | undefined;\n\n constructor() {\n effect(() => {\n if (this.context.isUnmounted()) {\n this.elementRef.nativeElement = null;\n this.viewContainer.clear();\n this.view = undefined;\n return;\n }\n\n if (!this.view) {\n this.view = this.viewContainer.createEmbeddedView(this.template);\n this.elementRef.nativeElement =\n this.view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n });\n\n bindProps({\n elementRef: this.elementRef as ElementRef<HTMLElement>,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n this.context.isUnmounted();\n return this.context.api().getContentProps();\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[wireCollapsibleIndicator]\",\n standalone: true,\n exportAs: \"wireCollapsibleIndicator\",\n})\nexport class CollapsibleIndicator {\n constructor() {\n const context = injectCollapsibleContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getIndicatorProps(),\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-collapsible.mjs","sources":["../../src/components/collapsible/use-context.ts","../../src/components/collapsible/use.ts","../../src/components/collapsible/root.ts","../../src/components/collapsible/root-provider.ts","../../src/components/collapsible/trigger.ts","../../src/components/collapsible/content.ts","../../src/components/collapsible/indicator.ts","../../src/components/collapsible/wirekyt-angular-collapsible.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseCollapsibleReturn } from \"./use\";\n\nexport const COLLAPSIBLE_CONTEXT = new InjectionToken<UseCollapsibleReturn>(\n \"WIREKIT.COLLAPSIBLE_CONTEXT\",\n);\n\nexport function injectCollapsibleContext(): UseCollapsibleReturn {\n return inject(COLLAPSIBLE_CONTEXT);\n}\n","import { computed, effect, signal, type Signal } from \"@angular/core\";\nimport { useMachine, UseMachineReturn } from \"@wirekyt/angular\";\nimport { createId, injectEnvironment, injectLocale } from \"@wirekyt/angular\";\nimport { Machine } from \"@wirekyt/dom\";\nimport * as collapsible from \"@wirekyt/dom/machines/collapsible\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseCollapsibleProps extends OptionalId<\n Omit<collapsible.Props, \"dir\" | \"getRootNode\">\n> {\n lazyMount?: boolean;\n unmountOnExit?: boolean;\n}\n\nexport interface UseCollapsibleReturn extends UseMachineReturn<\n collapsible.Service[\"state\"],\n collapsible.Api,\n collapsible.Service\n> {\n readonly isUnmounted: Signal<boolean>;\n}\n\nexport interface UseCollapsibleOptions {\n context: () => UseCollapsibleProps;\n}\n\ntype CollapsibleContext = Record<string, unknown>;\ntype CollapsibleSchema = collapsible.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useCollapsible(options: UseCollapsibleOptions): UseCollapsibleReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n const wasVisible = signal(false);\n\n const machine = useMachine<CollapsibleSchema, collapsible.Api>({\n machine: collapsible.machine,\n context: () => {\n const props = options.context();\n const { lazyMount: _lazyMount, unmountOnExit: _unmountOnExit, ...collapsibleProps } = props;\n return {\n ...collapsibleProps,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: collapsibleProps.id ?? fallbackId,\n } as CollapsibleContext;\n },\n connect: (service, normalize) => collapsible.connect(service, normalize),\n });\n\n effect(() => {\n if (machine.api().visible) {\n wasVisible.set(true);\n }\n });\n\n const isUnmounted = computed(() => {\n const { lazyMount, unmountOnExit } = options.context();\n const visible = machine.api().visible;\n return Boolean(\n (!visible && !wasVisible() && lazyMount) || (unmountOnExit && !visible && wasVisible()),\n );\n });\n\n return {\n ...machine,\n isUnmounted,\n };\n}\n","import type * as collapsible from \"@wirekyt/dom/machines/collapsible\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, ContextCarrier } from \"@wirekyt/angular\";\n\nimport { CollapsibleElementIds } from \"./types\";\nimport { useCollapsible, UseCollapsibleReturn } from \"./use\";\nimport { COLLAPSIBLE_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[collapsibleRoot]\",\n standalone: true,\n exportAs: \"collapsibleRoot\",\n providers: [{ provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRoot) }],\n})\nexport class CollapsibleRoot implements UseCollapsibleReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<CollapsibleElementIds> | undefined> = input<\n Partial<CollapsibleElementIds> | undefined\n >(undefined);\n readonly open: InputSignal<boolean | undefined> = input<boolean | undefined>(undefined);\n readonly openChange: OutputEmitterRef<collapsible.OpenChangeDetails> =\n output<collapsible.OpenChangeDetails>();\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly collapsedHeight: InputSignal<number | string | undefined> = input<\n number | string | undefined\n >(undefined);\n readonly collapsedWidth: InputSignal<number | string | undefined> = input<\n number | string | undefined\n >(undefined);\n readonly lazyMount: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly unmountOnExit: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly exitComplete: OutputEmitterRef<void> = output<void>();\n\n private readonly machine = useCollapsible({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n disabled: this.disabled(),\n collapsedHeight: this.collapsedHeight(),\n collapsedWidth: this.collapsedWidth(),\n lazyMount: this.lazyMount(),\n unmountOnExit: this.unmountOnExit(),\n onOpenChange: (details) => {\n this.openChange.emit(details);\n },\n onExitComplete: () => {\n this.exitComplete.emit();\n },\n }),\n });\n\n readonly state: Signal<collapsible.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<collapsible.Api> = this.machine.api;\n readonly isUnmounted: Signal<boolean> = computed(() => this.machine.isUnmounted());\n readonly service: collapsible.Service = this.machine.service;\n readonly send: collapsible.Service[\"send\"] = this.machine.send;\n\n protected readonly arkContextCarrier: ContextCarrier<CollapsibleRoot> =\n buildRootCarrier<CollapsibleRoot>({\n root: this,\n rootToken: COLLAPSIBLE_CONTEXT as ProviderToken<CollapsibleRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\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 type * as collapsible from \"@wirekyt/dom/machines/collapsible\";\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 { UseCollapsibleReturn } from \"./use\";\nimport { COLLAPSIBLE_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[collapsibleRootProvider]\",\n standalone: true,\n exportAs: \"collapsibleRootProvider\",\n providers: [\n { provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRootProvider) },\n ],\n})\nexport class CollapsibleRootProvider implements UseCollapsibleReturn {\n readonly value: InputSignal<UseCollapsibleReturn> = input.required<UseCollapsibleReturn>();\n readonly state: Signal<collapsible.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<collapsible.Api> = computed(() => this.value().api());\n readonly isUnmounted: Signal<boolean> = computed(() => this.value().isUnmounted());\n readonly send: collapsible.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): collapsible.Service {\n return this.value().service;\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 { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[collapsibleTrigger]\",\n standalone: true,\n exportAs: \"collapsibleTrigger\",\n})\nexport class CollapsibleTrigger {\n constructor() {\n const context = injectCollapsibleContext();\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\";\n\nimport { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[collapsibleContent]\",\n standalone: true,\n exportAs: \"collapsibleContent\",\n})\nexport class CollapsibleContent {\n private readonly context = injectCollapsibleContext();\n private readonly template = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly elementRef = { nativeElement: null as HTMLElement | null };\n private view: EmbeddedViewRef<unknown> | undefined;\n\n constructor() {\n effect(() => {\n if (this.context.isUnmounted()) {\n this.elementRef.nativeElement = null;\n this.viewContainer.clear();\n this.view = undefined;\n return;\n }\n\n if (!this.view) {\n this.view = this.viewContainer.createEmbeddedView(this.template);\n this.elementRef.nativeElement =\n this.view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n });\n\n bindProps({\n elementRef: this.elementRef as ElementRef<HTMLElement>,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n this.context.isUnmounted();\n return this.context.api().getContentProps();\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectCollapsibleContext } from \"./use-context\";\n\n@Directive({\n selector: \"[collapsibleIndicator]\",\n standalone: true,\n exportAs: \"collapsibleIndicator\",\n})\nexport class CollapsibleIndicator {\n constructor() {\n const context = injectCollapsibleContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getIndicatorProps(),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}