angular-three-tweakpane 4.0.0-next.116 → 4.0.0-next.119
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":"angular-three-tweakpane.mjs","sources":["../../../../libs/tweakpane/src/lib/blade.ts","../../../../libs/tweakpane/src/lib/debounce.ts","../../../../libs/tweakpane/src/lib/title.ts","../../../../libs/tweakpane/src/lib/folder.ts","../../../../libs/tweakpane/src/lib/label.ts","../../../../libs/tweakpane/src/lib/binding.ts","../../../../libs/tweakpane/src/lib/button.ts","../../../../libs/tweakpane/src/lib/checkbox.ts","../../../../libs/tweakpane/src/lib/color.ts","../../../../libs/tweakpane/src/lib/list.ts","../../../../libs/tweakpane/src/lib/number.ts","../../../../libs/tweakpane/src/lib/pane.ts","../../../../libs/tweakpane/src/lib/point.ts","../../../../libs/tweakpane/src/lib/text.ts","../../../../libs/tweakpane/src/angular-three-tweakpane.ts"],"sourcesContent":["import { booleanAttribute, Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport { BladeApi } from 'tweakpane';\n\n@Directive({ selector: 'tweakpane-blade' })\nexport class TweakpaneBlade {\n\thidden = input(false, { transform: booleanAttribute });\n\tdisabled = input(false, { transform: booleanAttribute });\n\n\tprivate injector = inject(Injector);\n\n\tget snapshot() {\n\t\treturn {\n\t\t\thidden: untracked(this.hidden),\n\t\t\tdisabled: untracked(this.disabled),\n\t\t};\n\t}\n\n\tsync(api: () => BladeApi | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.hidden = this.hidden();\n\t\t\t\t_api.disabled = this.disabled();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, numberAttribute } from '@angular/core';\nimport { debounceTime, fromEventPattern } from 'rxjs';\nimport { TpChangeEvent } from 'tweakpane';\n\n@Directive()\nexport class TweakpaneDebounce {\n\tdebounce = input(150, { transform: numberAttribute });\n\n\tprivate injector = inject(Injector);\n\n\tsync<T>(\n\t\tapi: () => {\n\t\t\ton: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t\toff: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t} | null,\n\t\tcb: (ev: TpChangeEvent<T>) => void,\n\t) {\n\t\treturn effect(\n\t\t\t(onCleanup) => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\tconst sub = fromEventPattern<TpChangeEvent<T>>(\n\t\t\t\t\t(handler) => _api.on('change', handler),\n\t\t\t\t\t(handler) => _api.off('change', handler),\n\t\t\t\t)\n\t\t\t\t\t.pipe(debounceTime(this.debounce()))\n\t\t\t\t\t.subscribe((ev) => {\n\t\t\t\t\t\tcb(ev);\n\t\t\t\t\t});\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n@Directive()\nexport class TweakpaneTitle {\n\ttitle = input('TweakPane Title');\n\n\tprivate injector = inject(Injector);\n\n\tget snapshot() {\n\t\treturn untracked(this.title);\n\t}\n\n\tsync(api: () => { title: string | undefined } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.title = this.title();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, linkedSignal, model, Signal, untracked } from '@angular/core';\nimport { TpFoldEvent } from '@tweakpane/core';\nimport { FolderApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneTitle } from './title';\n\n@Directive({\n\tselector: 'tweakpane-folder',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneFolder {\n\texpanded = model(false);\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder, { skipSelf: true, optional: true });\n\tparentFolder = linkedSignal(() => this.parent?.folder());\n\tfolder: Signal<FolderApi | null> = computed(() => {\n\t\tconst parent = this.parentFolder();\n\t\tif (!parent) return null;\n\n\t\tif (!this.isSelf) return parent;\n\n\t\treturn parent.addFolder({\n\t\t\ttitle: this.title.snapshot,\n\t\t\texpanded: untracked(this.expanded),\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t});\n\t});\n\n\tisSelf = true;\n\n\tconstructor() {\n\t\tthis.title.sync(this.folder);\n\t\tthis.blade.sync(this.folder);\n\n\t\teffect((onCleanup) => {\n\t\t\tconst folder = this.folder();\n\t\t\tif (!folder) return;\n\n\t\t\tconst cb = (ev: TpFoldEvent<FolderApi>) => {\n\t\t\t\tthis.expanded.set(ev.expanded);\n\t\t\t};\n\n\t\t\tfolder.on('fold', cb);\n\t\t\tonCleanup(() => {\n\t\t\t\tfolder.off('fold', cb);\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.folder()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n@Directive()\nexport class TweakpaneLabel {\n\tlabel = input('');\n\ttag = input('');\n\n\tprivate injector = inject(Injector);\n\n\tget snapshot() {\n\t\treturn { label: untracked(this.label), tag: untracked(this.tag) };\n\t}\n\n\tsync(api: () => { label?: string | null; tag?: string | null } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.label = this.label();\n\t\t\t\tif ('tag' in _api) {\n\t\t\t\t\t_api.tag = this.tag();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import {\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\tInjectionToken,\n\tInjector,\n\tmodel,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BindingApi, BindingParams } from '@tweakpane/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\nexport const NGT_TWEAK_BINDING_AS_HOST = new InjectionToken<\n\ttrue | { in: (value: unknown) => unknown; out: (value: unknown) => unknown } | null\n>('hostDirective NgtTweakBinding', { factory: () => null });\n\nexport function provideTweakBindingAsHost<TIn, TOut>(inOut?: { in: (value: TIn) => TOut; out: (value: TOut) => TIn }) {\n\treturn { provide: NGT_TWEAK_BINDING_AS_HOST, useValue: inOut ?? true };\n}\n\n@Directive({\n\tselector: 'tweakpane-binding',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['disabled', 'hidden'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label', 'tag'] },\n\t],\n})\nexport class TweakpaneBinding<TValue> {\n\tvalue = model.required<any>();\n\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\tprivate injector = inject(Injector);\n\tprivate asHostDirective = inject(NGT_TWEAK_BINDING_AS_HOST);\n\n\tprivate bindingBaseParams = computed(() => ({\n\t\tlabel: this.label.snapshot.label,\n\t\ttag: this.label.snapshot.tag,\n\t\tdisabled: this.blade.disabled(),\n\t\thidden: this.blade.hidden(),\n\t}));\n\tprivate bindingParams = signal<Record<string, unknown>>({});\n\n\tprivate get bindableObject() {\n\t\tlet value = untracked(this.value);\n\n\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\tvalue = this.asHostDirective.in(value) as TValue;\n\t\t}\n\n\t\treturn { value };\n\t}\n\n\tprivate bindingApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\tconst bindingParams = { ...this.bindingBaseParams(), ...this.bindingParams() };\n\t\treturn parent.addBinding(this.bindableObject, 'value', bindingParams) as BindingApi<unknown, TValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.blade.sync(this.bindingApi);\n\t\tthis.label.sync(this.bindingApi);\n\t\tthis.debounce.sync(this.bindingApi, (ev) => {\n\t\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\t\tthis.value.set(this.asHostDirective.out(ev.value) as TValue);\n\t\t\t} else {\n\t\t\t\tthis.value.set(ev.value);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst bindingApi = this.bindingApi();\n\t\t\tif (!bindingApi) return;\n\t\t\tonCleanup(() => {\n\t\t\t\tbindingApi.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.bindingApi()?.dispose();\n\t\t});\n\t}\n\n\tsyncBindingParams(params: () => BindingParams) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tthis.bindingParams.set(params());\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n\n\t// createBindingEffect(params: () => BindingParams) {\n\t// \treturn effect(\n\t// \t\t(onCleanup) => {\n\t// \t\t\tconst parent = this.parent.folder();\n\t// \t\t\tif (!parent) return;\n\t//\n\t// \t\t\tconst bindingParams = { ...this.bindingBaseParams(), ...params() };\n\t// \t\t\tconst binding = parent.addBinding(this.bindableObject, 'value', bindingParams);\n\t//\n\t// \t\t\tthis.bindingApi.set(binding);\n\t//\n\t// \t\t\tonCleanup(() => {\n\t// \t\t\t\tbinding.dispose();\n\t// \t\t\t\tthis.bindingApi.set(null);\n\t// \t\t\t});\n\t// \t\t},\n\t// \t\t{ injector: this.injector },\n\t// \t);\n\t// }\n}\n","import { computed, DestroyRef, Directive, effect, inject, output } from '@angular/core';\nimport { TpMouseEvent } from '@tweakpane/core';\nimport { ButtonApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport { TweakpaneTitle } from './title';\n\n@Directive({\n\tselector: 'tweakpane-button',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneButton {\n\tclick = output<TpMouseEvent<ButtonApi>>();\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate buttonApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addButton({\n\t\t\ttitle: this.title.snapshot,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\tlabel: this.label.snapshot.label,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst buttonApi = this.buttonApi();\n\t\t\tif (!buttonApi) return;\n\n\t\t\tconst boundEmit = this.click.emit.bind(this.click);\n\t\t\tbuttonApi.on('click', boundEmit);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tbuttonApi.off('click', boundEmit);\n\t\t\t});\n\t\t});\n\n\t\tthis.label.sync(this.buttonApi);\n\t\tthis.title.sync(this.buttonApi);\n\t\tthis.blade.sync(this.buttonApi);\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.buttonApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { BooleanInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n@Directive({\n\tselector: 'tweakpane-checkbox',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneCheckbox {\n\tparams = input<BooleanInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { ColorInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n@Directive({\n\tselector: 'tweakpane-color',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneColor {\n\tparams = input<ColorInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { ListItem } from '@tweakpane/core';\nimport { ListBladeApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\n@Directive({\n\tselector: 'tweakpane-list',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t],\n})\nexport class TweakpaneList<TOptionValue> {\n\tvalue = model.required<TOptionValue>();\n\toptions = input.required<Record<string, TOptionValue> | TOptionValue[]>();\n\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate listOptions = computed(() => {\n\t\tconst options = this.options();\n\t\tif (Array.isArray(options)) {\n\t\t\treturn options.map((option) => ({ value: option, text: `${option}` }) as ListItem<TOptionValue>);\n\t\t}\n\n\t\treturn Object.keys(options).map((key) => {\n\t\t\tconst value = options[key];\n\t\t\treturn { text: key, value } as ListItem<TOptionValue>;\n\t\t});\n\t});\n\tprivate listApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addBlade({\n\t\t\tview: 'list',\n\t\t\toptions: this.listOptions(),\n\t\t\tvalue: untracked(this.value),\n\t\t\tlabel: this.label.snapshot.label,\n\t\t}) as ListBladeApi<TOptionValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.label.sync(this.listApi);\n\t\tthis.blade.sync(this.listApi);\n\t\tthis.debounce.sync(this.listApi, (ev) => {\n\t\t\tthis.value.set(ev.value);\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst listApi = this.listApi();\n\t\t\tonCleanup(() => {\n\t\t\t\tlistApi?.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.listApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { NumberInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n@Directive({\n\tselector: 'tweakpane-number',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneNumber {\n\tparams = input<NumberInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import {\n\tafterNextRender,\n\tDestroyRef,\n\tDirective,\n\tDOCUMENT,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tisSignal,\n\tsignal,\n} from '@angular/core';\nimport { ClassName } from '@tweakpane/core';\nimport { Pane } from 'tweakpane';\nimport { PaneConfig } from 'tweakpane/dist/types/pane/pane-config';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneTitle } from './title';\n\n@Directive({\n\tselector: 'tweakpane-pane',\n\thostDirectives: [{ directive: TweakpaneFolder, inputs: ['expanded'], outputs: ['expandedChange'] }],\n})\nexport class TweakpanePane {\n\ttop = input<string | number>('8px');\n\tright = input<string | number>('8px');\n\tleft = input<string | number>();\n\tbottom = input<string | number>();\n\twidth = input<string | number>('256px');\n\tcontainer = input<HTMLElement | ElementRef<HTMLElement | undefined> | undefined>();\n\n\tprivate document = inject(DOCUMENT);\n\tprivate title = inject(TweakpaneTitle, { host: true });\n\tprivate folder = inject(TweakpaneFolder, { host: true });\n\tprivate pane = signal<Pane | null>(null);\n\tprivate paneContainer?: HTMLDivElement;\n\n\tconstructor() {\n\t\tthis.folder.isSelf = false;\n\n\t\tafterNextRender(() => {\n\t\t\tconst container = this.container();\n\t\t\tconst paneOptions: PaneConfig = {\n\t\t\t\ttitle: this.title.title(),\n\t\t\t\texpanded: this.folder.expanded(),\n\t\t\t};\n\n\t\t\tif (container) {\n\t\t\t\tconst containerElement = 'nativeElement' in container ? container.nativeElement : container;\n\t\t\t\tif (containerElement) {\n\t\t\t\t\tthis.paneContainer = this.document.createElement('div');\n\t\t\t\t\tthis.paneContainer.classList.add(ClassName('dfw')());\n\t\t\t\t\tcontainerElement.appendChild(this.paneContainer);\n\t\t\t\t\tpaneOptions.container = this.paneContainer;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst pane = new Pane(paneOptions);\n\n\t\t\tthis.pane.set(pane);\n\t\t\tthis.folder.parentFolder.set(pane);\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst pane = this.pane();\n\t\t\tif (!pane) return;\n\n\t\t\tif (this.paneContainer) {\n\t\t\t\tthis.paneContainer.remove();\n\t\t\t}\n\n\t\t\tpane.element.remove();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('top');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('right');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('left');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('bottom');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('width');\n\t\t});\n\t}\n\n\tprivate updateStyleEffect(propertyName: Exclude<keyof TweakpanePane, 'pane' | 'title' | 'expanded' | 'container'>) {\n\t\tconst pane = this.pane();\n\t\tif (!pane) return;\n\n\t\tconst parentElement = pane.element.parentElement;\n\t\tif (!parentElement) return;\n\n\t\tconst property = this[propertyName];\n\t\tif (!isSignal(property)) return;\n\n\t\tconst value = property();\n\t\tif (!value) return;\n\n\t\tparentElement.style.setProperty(propertyName, typeof value === 'number' ? value + 'px' : value);\n\t\tpane.refresh();\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { Point2dInputParams, Point3dInputParams, Point4dInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\ntype AcceptableTweakPointValue =\n\t| [x: number, y: number, z?: number, w?: number]\n\t| { x: number; y: number; z?: number; w?: number };\n\n@Directive({\n\tselector: 'tweakpane-point',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [\n\t\tprovideTweakBindingAsHost<AcceptableTweakPointValue, { x: number; y: number; z?: number; w?: number }>({\n\t\t\tin: (value) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst [x, y, z, w] = value;\n\t\t\t\t\treturn { x, y, z, w };\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tout: (value) => {\n\t\t\t\tconst { x, y, z, w } = value;\n\t\t\t\treturn [x, y, z, w];\n\t\t\t},\n\t\t}),\n\t],\n})\nexport class TweakpanePoint {\n\tparams = input<Point2dInputParams | Point3dInputParams | Point4dInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { StringInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n@Directive({\n\tselector: 'tweakpane-text',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneText {\n\tparams = input<StringInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TweakpaneTitle","i2.TweakpaneBlade","i1.TweakpaneBlade","i2.TweakpaneDebounce","i3.TweakpaneLabel","i2.TweakpaneLabel","i3.TweakpaneBlade","i1.TweakpaneBinding","i1.TweakpaneFolder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-tweakpane.mjs","sources":["../../../../libs/tweakpane/src/lib/anchor.ts","../../../../libs/tweakpane/src/lib/blade.ts","../../../../libs/tweakpane/src/lib/debounce.ts","../../../../libs/tweakpane/src/lib/title.ts","../../../../libs/tweakpane/src/lib/folder.ts","../../../../libs/tweakpane/src/lib/label.ts","../../../../libs/tweakpane/src/lib/binding.ts","../../../../libs/tweakpane/src/lib/button.ts","../../../../libs/tweakpane/src/lib/checkbox.ts","../../../../libs/tweakpane/src/lib/color.ts","../../../../libs/tweakpane/src/lib/list.ts","../../../../libs/tweakpane/src/lib/number.ts","../../../../libs/tweakpane/src/lib/pane.ts","../../../../libs/tweakpane/src/lib/point.ts","../../../../libs/tweakpane/src/lib/text.ts","../../../../libs/tweakpane/src/lib/tweaks.ts","../../../../libs/tweakpane/src/angular-three-tweakpane.ts"],"sourcesContent":["import { Component, ComponentRef, Directive, inject, signal, ViewContainerRef } from '@angular/core';\nimport { TweakpaneFolder } from './folder';\n\n/**\n * Directive that provides an anchor point for the `tweaks()` function to dynamically create Tweakpane controls.\n *\n * Add this directive to your `ngt-canvas` element to enable the `tweaks()` API:\n *\n * ```html\n * <ngt-canvas tweakpaneAnchor>\n * <ng-template #sceneGraph>\n * <!-- your scene -->\n * </ng-template>\n * </ngt-canvas>\n * ```\n *\n * Then use `tweaks()` in any component within the canvas:\n *\n * ```typescript\n * const controls = tweaks('Physics', {\n * gravity: { value: 9.8, min: 0, max: 20 },\n * debug: this.debugMode, // two-way binding with existing signal\n * });\n * ```\n */\n@Directive({ selector: '[tweakpaneAnchor]' })\nexport class TweakpaneAnchor {\n\t/**\n\t * The ViewContainerRef where dynamic components will be created.\n\t * Injected from the host element.\n\t */\n\tvcr = inject(ViewContainerRef);\n\n\t/**\n\t * Reference to the pane's TweakpaneFolder, set by TweakpanePane when it initializes.\n\t * This is used as the parent folder for dynamically created folders.\n\t */\n\tpaneFolder = signal<TweakpaneFolder | null>(null);\n\n\t/**\n\t * Registry of folder ComponentRefs by folder name.\n\t * Used to reuse existing folders when multiple `tweaks()` calls use the same folder name.\n\t */\n\tfolders: Record<string, ComponentRef<TweakpaneAnchorHost>> = {};\n}\n\n/**\n * A minimal host component used for dynamically creating Tweakpane controls.\n * This component serves as a host for directives like TweakpaneFolder, TweakpaneNumber, etc.\n * when using the `tweaks()` function.\n *\n * @internal\n */\n@Component({\n\tselector: 'tweakpane-anchor-host',\n\ttemplate: '',\n})\nexport class TweakpaneAnchorHost {}\n","import { booleanAttribute, Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport { BladeApi } from 'tweakpane';\n\n/**\n * Directive that provides hidden and disabled state management for Tweakpane blades.\n *\n * This is a base directive used by other Tweakpane components to control\n * visibility and interactivity of controls.\n *\n * @example\n * ```html\n * <tweakpane-number [hidden]=\"isHidden\" [disabled]=\"isDisabled\" [(value)]=\"speed\" />\n * ```\n */\n@Directive({ selector: 'tweakpane-blade' })\nexport class TweakpaneBlade {\n\t/**\n\t * Whether the blade is hidden.\n\t * @default false\n\t */\n\thidden = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Whether the blade is disabled (non-interactive).\n\t * @default false\n\t */\n\tdisabled = input(false, { transform: booleanAttribute });\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current hidden and disabled values without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane components.\n\t * @returns An object containing the current hidden and disabled states\n\t */\n\tget snapshot() {\n\t\treturn {\n\t\t\thidden: untracked(this.hidden),\n\t\t\tdisabled: untracked(this.disabled),\n\t\t};\n\t}\n\n\t/**\n\t * Synchronizes the hidden and disabled properties with a Tweakpane BladeApi.\n\t * Creates a reactive effect that updates the API's state whenever\n\t * the input values change.\n\t *\n\t * @param api - A function that returns the Tweakpane BladeApi (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => BladeApi | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.hidden = this.hidden();\n\t\t\t\t_api.disabled = this.disabled();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, numberAttribute } from '@angular/core';\nimport { debounceTime, fromEventPattern } from 'rxjs';\nimport { TpChangeEvent } from 'tweakpane';\n\n/**\n * Directive that provides debounced change event handling for Tweakpane controls.\n *\n * This is a base directive used by binding-based controls to prevent\n * excessive updates when values change rapidly (e.g., during slider dragging).\n *\n * @example\n * ```html\n * <!-- Debounce value updates by 300ms -->\n * <tweakpane-number [debounce]=\"300\" [(value)]=\"speed\" />\n * ```\n */\n@Directive()\nexport class TweakpaneDebounce {\n\t/**\n\t * The debounce delay in milliseconds before emitting value changes.\n\t * @default 150\n\t */\n\tdebounce = input(150, { transform: numberAttribute });\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Synchronizes debounced change events from a Tweakpane API with a callback.\n\t * Creates a reactive effect that subscribes to change events and debounces them.\n\t *\n\t * @typeParam T - The type of value being tracked\n\t * @param api - A function that returns the Tweakpane API object with on/off methods (or null if not ready)\n\t * @param cb - Callback function invoked with the change event after debounce delay\n\t * @returns The created effect reference\n\t */\n\tsync<T>(\n\t\tapi: () => {\n\t\t\ton: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t\toff: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t} | null,\n\t\tcb: (ev: TpChangeEvent<T>) => void,\n\t) {\n\t\treturn effect(\n\t\t\t(onCleanup) => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\tconst sub = fromEventPattern<TpChangeEvent<T>>(\n\t\t\t\t\t(handler) => _api.on('change', handler),\n\t\t\t\t\t(handler) => _api.off('change', handler),\n\t\t\t\t)\n\t\t\t\t\t.pipe(debounceTime(this.debounce()))\n\t\t\t\t\t.subscribe((ev) => {\n\t\t\t\t\t\tcb(ev);\n\t\t\t\t\t});\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n/**\n * Directive that provides title functionality for Tweakpane components.\n *\n * This is a base directive used by other Tweakpane components (like `TweakpaneFolder`,\n * `TweakpanePane`, `TweakpaneButton`) to manage their titles reactively.\n *\n * @example\n * ```html\n * <tweakpane-folder title=\"Settings\">\n * <!-- folder contents -->\n * </tweakpane-folder>\n * ```\n */\n@Directive()\nexport class TweakpaneTitle {\n\t/**\n\t * The title text to display.\n\t * @default 'TweakPane Title'\n\t */\n\ttitle = input('TweakPane Title');\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current title value without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane components.\n\t * @returns The current title string value\n\t */\n\tget snapshot() {\n\t\treturn untracked(this.title);\n\t}\n\n\t/**\n\t * Synchronizes the title property with a Tweakpane API object.\n\t * Creates a reactive effect that updates the API's title whenever\n\t * the input title changes.\n\t *\n\t * @param api - A function that returns the Tweakpane API object (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => { title: string | undefined } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.title = this.title();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, linkedSignal, model, Signal, untracked } from '@angular/core';\nimport { TpFoldEvent } from '@tweakpane/core';\nimport { FolderApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Directive for creating collapsible folders within a Tweakpane.\n *\n * Folders are used to organize controls into logical groups. They can be\n * nested within other folders or directly within a pane.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-folder title=\"Physics\" [expanded]=\"true\">\n * <tweakpane-number label=\"Gravity\" [(value)]=\"gravity\" />\n * <tweakpane-number label=\"Friction\" [(value)]=\"friction\" />\n * </tweakpane-folder>\n *\n * <tweakpane-folder title=\"Appearance\">\n * <tweakpane-color label=\"Color\" [(value)]=\"color\" />\n * </tweakpane-folder>\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-folder',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneFolder {\n\t/**\n\t * Whether the folder is expanded (open) or collapsed.\n\t * Supports two-way binding with `[(expanded)]`.\n\t * @default false\n\t */\n\texpanded = model(false);\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder, { skipSelf: true, optional: true });\n\n\t/**\n\t * Signal containing the parent folder API.\n\t * Automatically links to the parent folder in the component hierarchy.\n\t */\n\tparentFolder = linkedSignal(() => this.parent?.folder());\n\n\t/**\n\t * Computed signal containing the Tweakpane FolderApi for this folder.\n\t * Returns null if the parent folder is not yet available.\n\t */\n\tfolder: Signal<FolderApi | null> = computed(() => {\n\t\tconst parent = this.parentFolder();\n\t\tif (!parent) return null;\n\n\t\tif (!this.isSelf) return parent;\n\n\t\treturn parent.addFolder({\n\t\t\ttitle: this.title.snapshot,\n\t\t\texpanded: untracked(this.expanded),\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t});\n\t});\n\n\t/**\n\t * Internal flag indicating whether this directive creates its own folder\n\t * or reuses the parent folder. Set to `false` by `TweakpanePane`.\n\t * @internal\n\t */\n\tisSelf = true;\n\n\tconstructor() {\n\t\tthis.title.sync(this.folder);\n\t\tthis.blade.sync(this.folder);\n\n\t\teffect((onCleanup) => {\n\t\t\tconst folder = this.folder();\n\t\t\tif (!folder) return;\n\n\t\t\tconst cb = (ev: TpFoldEvent<FolderApi>) => {\n\t\t\t\tthis.expanded.set(ev.expanded);\n\t\t\t};\n\n\t\t\tfolder.on('fold', cb);\n\t\t\tonCleanup(() => {\n\t\t\t\tfolder.off('fold', cb);\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.folder()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n/**\n * Directive that provides label and tag functionality for Tweakpane controls.\n *\n * This is a base directive used by binding-based controls (like `TweakpaneNumber`,\n * `TweakpaneText`, `TweakpaneCheckbox`) to manage their labels and optional tags.\n *\n * @example\n * ```html\n * <tweakpane-number label=\"Speed\" tag=\"m/s\" [(value)]=\"speed\" />\n * ```\n */\n@Directive()\nexport class TweakpaneLabel {\n\t/**\n\t * The label text displayed next to the control.\n\t * @default ''\n\t */\n\tlabel = input('');\n\n\t/**\n\t * An optional tag displayed alongside the label (e.g., units like \"px\", \"m/s\").\n\t * @default ''\n\t */\n\ttag = input('');\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current label and tag values without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane controls.\n\t * @returns An object containing the current label and tag values\n\t */\n\tget snapshot() {\n\t\treturn { label: untracked(this.label), tag: untracked(this.tag) };\n\t}\n\n\t/**\n\t * Synchronizes the label and tag properties with a Tweakpane API object.\n\t * Creates a reactive effect that updates the API's label and tag\n\t * whenever the input values change.\n\t *\n\t * @param api - A function that returns the Tweakpane API object (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => { label?: string | null; tag?: string | null } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.label = this.label();\n\t\t\t\tif ('tag' in _api) {\n\t\t\t\t\t_api.tag = this.tag();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import {\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\tInjectionToken,\n\tInjector,\n\tmodel,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BindingApi, BindingParams } from '@tweakpane/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\n/**\n * Injection token used to configure value transformation when TweakpaneBinding\n * is used as a host directive.\n *\n * When set to `true`, values pass through unchanged.\n * When set to an object with `in` and `out` functions, values are transformed:\n * - `in`: Transforms the input value before binding to Tweakpane\n * - `out`: Transforms the Tweakpane value before emitting to the model\n *\n * @internal\n */\nexport const NGT_TWEAK_BINDING_AS_HOST = new InjectionToken<\n\ttrue | { in: (value: unknown) => unknown; out: (value: unknown) => unknown } | null\n>('hostDirective NgtTweakBinding', { factory: () => null });\n\n/**\n * Provides configuration for TweakpaneBinding when used as a host directive.\n *\n * @typeParam TIn - The input value type (from the component)\n * @typeParam TOut - The output value type (for Tweakpane)\n * @param inOut - Optional object containing `in` and `out` transformation functions\n * @returns A provider configuration object\n *\n * @example\n * ```typescript\n * // Simple passthrough (no transformation)\n * providers: [provideTweakBindingAsHost()]\n *\n * // With value transformation (e.g., array to object)\n * providers: [provideTweakBindingAsHost({\n * in: (value) => ({ x: value[0], y: value[1] }),\n * out: (value) => [value.x, value.y]\n * })]\n * ```\n */\nexport function provideTweakBindingAsHost<TIn, TOut>(inOut?: { in: (value: TIn) => TOut; out: (value: TOut) => TIn }) {\n\treturn { provide: NGT_TWEAK_BINDING_AS_HOST, useValue: inOut ?? true };\n}\n\n/**\n * Base directive for creating Tweakpane bindings (two-way data binding controls).\n *\n * This directive provides the core functionality for binding Angular values to\n * Tweakpane controls. It handles:\n * - Creating the binding on the parent folder\n * - Syncing label, blade, and debounce settings\n * - Value transformation when used as a host directive\n * - Automatic cleanup on destroy\n *\n * Most commonly used as a host directive by specific control types like\n * `TweakpaneNumber`, `TweakpaneText`, `TweakpaneCheckbox`, etc.\n *\n * @typeParam TValue - The type of value being bound\n *\n * @example\n * ```html\n * <!-- Direct usage (rarely needed) -->\n * <tweakpane-binding [(value)]=\"myValue\" label=\"My Value\" />\n *\n * <!-- More commonly used via specific controls -->\n * <tweakpane-number [(value)]=\"speed\" label=\"Speed\" />\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-binding',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['disabled', 'hidden'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label', 'tag'] },\n\t],\n})\nexport class TweakpaneBinding<TValue> {\n\t/**\n\t * The bound value. Supports two-way binding with `[(value)]`.\n\t */\n\tvalue = model.required<any>();\n\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\tprivate injector = inject(Injector);\n\tprivate asHostDirective = inject(NGT_TWEAK_BINDING_AS_HOST);\n\n\tprivate bindingBaseParams = computed(() => ({\n\t\tlabel: this.label.snapshot.label,\n\t\ttag: this.label.snapshot.tag,\n\t\tdisabled: this.blade.disabled(),\n\t\thidden: this.blade.hidden(),\n\t}));\n\tprivate bindingParams = signal<Record<string, unknown>>({});\n\n\t/**\n\t * Gets the bindable object with optional value transformation.\n\t * @returns An object with a `value` property suitable for Tweakpane binding\n\t */\n\tprivate get bindableObject() {\n\t\tlet value = untracked(this.value);\n\n\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\tvalue = this.asHostDirective.in(value) as TValue;\n\t\t}\n\n\t\treturn { value };\n\t}\n\n\tprivate bindingApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\tconst bindingParams = { ...this.bindingBaseParams(), ...this.bindingParams() };\n\t\treturn parent.addBinding(this.bindableObject, 'value', bindingParams) as BindingApi<unknown, TValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.blade.sync(this.bindingApi);\n\t\tthis.label.sync(this.bindingApi);\n\t\tthis.debounce.sync(this.bindingApi, (ev) => {\n\t\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\t\tthis.value.set(this.asHostDirective.out(ev.value) as TValue);\n\t\t\t} else {\n\t\t\t\tthis.value.set(ev.value);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst bindingApi = this.bindingApi();\n\t\t\tif (!bindingApi) return;\n\t\t\tonCleanup(() => {\n\t\t\t\tbindingApi.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.bindingApi()?.dispose();\n\t\t});\n\t}\n\n\t/**\n\t * Synchronizes additional binding parameters with the Tweakpane binding.\n\t * Called by specific control directives to add control-specific parameters\n\t * (e.g., min/max for numbers, options for lists).\n\t *\n\t * @param params - A function that returns the binding parameters\n\t * @returns The created effect reference\n\t */\n\tsyncBindingParams(params: () => BindingParams) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tthis.bindingParams.set(params());\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n\n\t// createBindingEffect(params: () => BindingParams) {\n\t// \treturn effect(\n\t// \t\t(onCleanup) => {\n\t// \t\t\tconst parent = this.parent.folder();\n\t// \t\t\tif (!parent) return;\n\t//\n\t// \t\t\tconst bindingParams = { ...this.bindingBaseParams(), ...params() };\n\t// \t\t\tconst binding = parent.addBinding(this.bindableObject, 'value', bindingParams);\n\t//\n\t// \t\t\tthis.bindingApi.set(binding);\n\t//\n\t// \t\t\tonCleanup(() => {\n\t// \t\t\t\tbinding.dispose();\n\t// \t\t\t\tthis.bindingApi.set(null);\n\t// \t\t\t});\n\t// \t\t},\n\t// \t\t{ injector: this.injector },\n\t// \t);\n\t// }\n}\n","import { computed, DestroyRef, Directive, effect, inject, output } from '@angular/core';\nimport { TpMouseEvent } from '@tweakpane/core';\nimport { ButtonApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Directive for creating a clickable button in Tweakpane.\n *\n * Buttons are used to trigger actions (like reset, randomize, etc.)\n * and emit click events when pressed.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-button title=\"Reset\" (click)=\"onReset()\" />\n * <tweakpane-button title=\"Randomize\" label=\"Action\" (click)=\"onRandomize()\" />\n * <tweakpane-button title=\"Save\" [disabled]=\"!canSave\" (click)=\"onSave()\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-button',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneButton {\n\t/**\n\t * Event emitted when the button is clicked.\n\t * Provides the Tweakpane mouse event with the ButtonApi.\n\t */\n\tclick = output<TpMouseEvent<ButtonApi>>();\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate buttonApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addButton({\n\t\t\ttitle: this.title.snapshot,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\tlabel: this.label.snapshot.label,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst buttonApi = this.buttonApi();\n\t\t\tif (!buttonApi) return;\n\n\t\t\tconst boundEmit = this.click.emit.bind(this.click);\n\t\t\tbuttonApi.on('click', boundEmit);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tbuttonApi.off('click', boundEmit);\n\t\t\t});\n\t\t});\n\n\t\tthis.label.sync(this.buttonApi);\n\t\tthis.title.sync(this.buttonApi);\n\t\tthis.blade.sync(this.buttonApi);\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.buttonApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { BooleanInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a boolean checkbox control in Tweakpane.\n *\n * Provides two-way binding for boolean values with a checkbox UI.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-checkbox label=\"Debug Mode\" [(value)]=\"debugMode\" />\n * <tweakpane-checkbox label=\"Wireframe\" [(value)]=\"showWireframe\" [disabled]=\"!debugMode()\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-checkbox',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneCheckbox {\n\t/**\n\t * Additional Tweakpane boolean input parameters.\n\t * @default {}\n\t */\n\tparams = input<BooleanInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { ColorInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a color picker control in Tweakpane.\n *\n * Provides two-way binding for color values (as hex strings) with a\n * color picker UI that supports RGB, HSL, and alpha.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-color label=\"Background\" [(value)]=\"backgroundColor\" />\n * <tweakpane-color label=\"Accent\" [(value)]=\"accentColor\" [params]=\"{ alpha: true }\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-color',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneColor {\n\t/**\n\t * Additional Tweakpane color input parameters.\n\t * Can include options like `alpha`, `color.type`, etc.\n\t * @default {}\n\t */\n\tparams = input<ColorInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { ListItem } from '@tweakpane/core';\nimport { ListBladeApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\n/**\n * Directive for creating a dropdown list/select control in Tweakpane.\n *\n * Provides two-way binding for selecting from a list of options.\n * Options can be provided as an array or as a key-value object.\n *\n * @typeParam TOptionValue - The type of values in the list\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- Options as array -->\n * <tweakpane-list\n * label=\"Mode\"\n * [(value)]=\"mode\"\n * [options]=\"['normal', 'debug', 'performance']\"\n * />\n *\n * <!-- Options as object (label: value mapping) -->\n * <tweakpane-list\n * label=\"Quality\"\n * [(value)]=\"quality\"\n * [options]=\"{ 'Low': 1, 'Medium': 2, 'High': 3, 'Ultra': 4 }\"\n * />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-list',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t],\n})\nexport class TweakpaneList<TOptionValue> {\n\t/**\n\t * The currently selected value. Supports two-way binding with `[(value)]`.\n\t */\n\tvalue = model.required<TOptionValue>();\n\n\t/**\n\t * The list options. Can be:\n\t * - An array of values (labels will be stringified values)\n\t * - An object mapping display labels to values\n\t */\n\toptions = input.required<Record<string, TOptionValue> | TOptionValue[]>();\n\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate listOptions = computed(() => {\n\t\tconst options = this.options();\n\t\tif (Array.isArray(options)) {\n\t\t\treturn options.map((option) => ({ value: option, text: `${option}` }) as ListItem<TOptionValue>);\n\t\t}\n\n\t\treturn Object.keys(options).map((key) => {\n\t\t\tconst value = options[key];\n\t\t\treturn { text: key, value } as ListItem<TOptionValue>;\n\t\t});\n\t});\n\tprivate listApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addBlade({\n\t\t\tview: 'list',\n\t\t\toptions: this.listOptions(),\n\t\t\tvalue: untracked(this.value),\n\t\t\tlabel: this.label.snapshot.label,\n\t\t}) as ListBladeApi<TOptionValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.label.sync(this.listApi);\n\t\tthis.blade.sync(this.listApi);\n\t\tthis.debounce.sync(this.listApi, (ev) => {\n\t\t\tthis.value.set(ev.value);\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst listApi = this.listApi();\n\t\t\tonCleanup(() => {\n\t\t\t\tlistApi?.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.listApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { NumberInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a numeric input control in Tweakpane.\n *\n * Provides two-way binding for number values with optional min/max/step\n * constraints. Displays as a text input with increment buttons, or as\n * a slider if min and max are specified.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- Simple number input -->\n * <tweakpane-number label=\"Count\" [(value)]=\"count\" />\n *\n * <!-- With slider (min/max defined) -->\n * <tweakpane-number\n * label=\"Speed\"\n * [(value)]=\"speed\"\n * [params]=\"{ min: 0, max: 100, step: 0.1 }\"\n * />\n *\n * <!-- With custom format -->\n * <tweakpane-number\n * label=\"Angle\"\n * [(value)]=\"angle\"\n * [params]=\"{ min: 0, max: 360, format: (v) => v.toFixed(0) + '°' }\"\n * />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-number',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneNumber {\n\t/**\n\t * Additional Tweakpane number input parameters.\n\t * Can include `min`, `max`, `step`, `format`, etc.\n\t * @default {}\n\t */\n\tparams = input<NumberInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import {\n\tafterNextRender,\n\tDestroyRef,\n\tDirective,\n\tDOCUMENT,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tisSignal,\n\tsignal,\n} from '@angular/core';\nimport { ClassName } from '@tweakpane/core';\nimport { Pane } from 'tweakpane';\nimport { PaneConfig } from 'tweakpane/dist/types/pane/pane-config';\nimport { TweakpaneAnchor } from './anchor';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Main Tweakpane container directive that creates the root pane element.\n *\n * This directive creates a floating Tweakpane panel that can be positioned\n * anywhere on the screen. It serves as the root container for all\n * Tweakpane controls (folders, bindings, buttons, etc.).\n *\n * @example\n * ```html\n * <!-- Basic usage with default positioning (top-right) -->\n * <tweakpane-pane title=\"Settings\">\n * <tweakpane-number label=\"Speed\" [(value)]=\"speed\" />\n * <tweakpane-checkbox label=\"Debug\" [(value)]=\"debug\" />\n * </tweakpane-pane>\n *\n * <!-- Custom positioning -->\n * <tweakpane-pane title=\"Controls\" left=\"8px\" bottom=\"8px\" [right]=\"undefined\">\n * <tweakpane-folder title=\"Physics\">\n * <tweakpane-number label=\"Gravity\" [(value)]=\"gravity\" />\n * </tweakpane-folder>\n * </tweakpane-pane>\n *\n * <!-- Embedded in a container element -->\n * <div #container></div>\n * <tweakpane-pane [container]=\"container\">\n * <!-- controls -->\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-pane',\n\thostDirectives: [{ directive: TweakpaneFolder, inputs: ['expanded'], outputs: ['expandedChange'] }],\n})\nexport class TweakpanePane {\n\t/**\n\t * CSS top position of the pane.\n\t * @default '8px'\n\t */\n\ttop = input<string | number>('8px');\n\n\t/**\n\t * CSS right position of the pane.\n\t * @default '8px'\n\t */\n\tright = input<string | number>('8px');\n\n\t/**\n\t * CSS left position of the pane.\n\t * @default undefined\n\t */\n\tleft = input<string | number>();\n\n\t/**\n\t * CSS bottom position of the pane.\n\t * @default undefined\n\t */\n\tbottom = input<string | number>();\n\n\t/**\n\t * CSS width of the pane.\n\t * @default '256px'\n\t */\n\twidth = input<string | number>('256px');\n\n\t/**\n\t * Optional container element to embed the pane into.\n\t * If not provided, the pane floats freely in the document.\n\t * Can be an HTMLElement or an Angular ElementRef.\n\t */\n\tcontainer = input<HTMLElement | ElementRef<HTMLElement | undefined> | undefined>();\n\n\tprivate document = inject(DOCUMENT);\n\tprivate title = inject(TweakpaneTitle, { host: true });\n\tprivate folder = inject(TweakpaneFolder, { host: true });\n\tprivate tweakpaneAnchor = inject(TweakpaneAnchor, { optional: true });\n\tprivate pane = signal<Pane | null>(null);\n\tprivate paneContainer?: HTMLDivElement;\n\n\tconstructor() {\n\t\tthis.folder.isSelf = false;\n\n\t\tafterNextRender(() => {\n\t\t\tconst container = this.container();\n\t\t\tconst paneOptions: PaneConfig = {\n\t\t\t\ttitle: this.title.title(),\n\t\t\t\texpanded: this.folder.expanded(),\n\t\t\t};\n\n\t\t\tif (container) {\n\t\t\t\tconst containerElement = 'nativeElement' in container ? container.nativeElement : container;\n\t\t\t\tif (containerElement) {\n\t\t\t\t\tthis.paneContainer = this.document.createElement('div');\n\t\t\t\t\tthis.paneContainer.classList.add(ClassName('dfw')());\n\t\t\t\t\tcontainerElement.appendChild(this.paneContainer);\n\t\t\t\t\tpaneOptions.container = this.paneContainer;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst pane = new Pane(paneOptions);\n\n\t\t\tthis.pane.set(pane);\n\t\t\tthis.folder.parentFolder.set(pane);\n\n\t\t\t// Set the pane's folder for tweaks() to use\n\t\t\tif (this.tweakpaneAnchor) {\n\t\t\t\tthis.tweakpaneAnchor.paneFolder.set(this.folder);\n\t\t\t}\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst pane = this.pane();\n\t\t\tif (!pane) return;\n\n\t\t\tif (this.paneContainer) {\n\t\t\t\tthis.paneContainer.remove();\n\t\t\t}\n\n\t\t\tpane.element.remove();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('top');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('right');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('left');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('bottom');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('width');\n\t\t});\n\t}\n\n\t/**\n\t * Updates a CSS style property on the pane's parent element.\n\t * @param propertyName - The name of the style property to update\n\t */\n\tprivate updateStyleEffect(propertyName: Exclude<keyof TweakpanePane, 'pane' | 'title' | 'expanded' | 'container'>) {\n\t\tconst pane = this.pane();\n\t\tif (!pane) return;\n\n\t\tconst parentElement = pane.element.parentElement;\n\t\tif (!parentElement) return;\n\n\t\tconst property = this[propertyName];\n\t\tif (!isSignal(property)) return;\n\n\t\tconst value = property();\n\t\tif (!value) return;\n\n\t\tparentElement.style.setProperty(propertyName, typeof value === 'number' ? value + 'px' : value);\n\t\tpane.refresh();\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { Point2dInputParams, Point3dInputParams, Point4dInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Acceptable value formats for TweakpanePoint.\n * Can be a tuple array `[x, y, z?, w?]` or an object `{ x, y, z?, w? }`.\n */\ntype AcceptableTweakPointValue =\n\t| [x: number, y: number, z?: number, w?: number]\n\t| { x: number; y: number; z?: number; w?: number };\n\n/**\n * Directive for creating a 2D/3D/4D point input control in Tweakpane.\n *\n * Provides two-way binding for point values (as tuple arrays or objects).\n * The control displays input fields for each dimension and optionally\n * shows a 2D picker for x/y values.\n *\n * Values are accepted as arrays `[x, y, z?, w?]` and emitted in the same format.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- 2D point -->\n * <tweakpane-point label=\"Position\" [(value)]=\"position2D\" />\n *\n * <!-- 3D point with custom ranges -->\n * <tweakpane-point\n * label=\"Position\"\n * [(value)]=\"position3D\"\n * [params]=\"{\n * x: { min: -10, max: 10 },\n * y: { min: 0, max: 100 },\n * z: { min: -10, max: 10 }\n * }\"\n * />\n *\n * <!-- 4D point (e.g., quaternion) -->\n * <tweakpane-point label=\"Rotation\" [(value)]=\"quaternion\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-point',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [\n\t\tprovideTweakBindingAsHost<AcceptableTweakPointValue, { x: number; y: number; z?: number; w?: number }>({\n\t\t\tin: (value) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst [x, y, z, w] = value;\n\t\t\t\t\treturn { x, y, z, w };\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tout: (value) => {\n\t\t\t\tconst { x, y, z, w } = value;\n\t\t\t\treturn [x, y, z, w];\n\t\t\t},\n\t\t}),\n\t],\n})\nexport class TweakpanePoint {\n\t/**\n\t * Additional Tweakpane point input parameters.\n\t * Can include per-axis configuration like `{ x: { min, max }, y: { min, max } }`.\n\t * @default {}\n\t */\n\tparams = input<Point2dInputParams | Point3dInputParams | Point4dInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { StringInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a text input control in Tweakpane.\n *\n * Provides two-way binding for string values with a text input UI.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-text label=\"Name\" [(value)]=\"objectName\" />\n * <tweakpane-text label=\"Description\" [(value)]=\"description\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-text',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneText {\n\t/**\n\t * Additional Tweakpane string input parameters.\n\t * @default {}\n\t */\n\tparams = input<StringInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import {\n\ttype ComponentRef,\n\tDestroyRef,\n\teffect,\n\tinject,\n\tInjector,\n\tinputBinding,\n\tisSignal,\n\tsignal,\n\ttype Signal,\n\ttwoWayBinding,\n\tuntracked,\n\ttype ViewContainerRef,\n\ttype WritableSignal,\n} from '@angular/core';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { NumberInputParams, Point2dInputParams, Point3dInputParams, Point4dInputParams } from 'tweakpane';\nimport { TweakpaneAnchor, TweakpaneAnchorHost } from './anchor';\nimport { TweakpaneButton } from './button';\nimport { TweakpaneCheckbox } from './checkbox';\nimport { TweakpaneColor } from './color';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneList } from './list';\nimport { TweakpaneNumber } from './number';\nimport { TweakpanePoint } from './point';\nimport { TweakpaneText } from './text';\n\n// ============================================================================\n// Config Types\n// ============================================================================\n\n/**\n * Configuration for a number input control.\n *\n * @example\n * ```typescript\n * const config = {\n * gravity: { value: 9.8, min: 0, max: 20, step: 0.1 }\n * };\n * ```\n */\nexport interface TweakNumberConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: number | WritableSignal<number>;\n\t/** Minimum allowed value (enables slider display) */\n\tmin?: number;\n\t/** Maximum allowed value (enables slider display) */\n\tmax?: number;\n\t/** Step increment for the value */\n\tstep?: number;\n}\n\n/**\n * Configuration for a text input control.\n *\n * @example\n * ```typescript\n * const config = {\n * name: { value: 'Object 1' }\n * };\n * ```\n */\nexport interface TweakTextConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: string | WritableSignal<string>;\n}\n\n/**\n * Configuration for a color picker control.\n *\n * @example\n * ```typescript\n * const config = {\n * background: { value: '#ff0000', color: true }\n * };\n * ```\n */\nexport interface TweakColorConfig {\n\t/** The initial color value (as hex string) or a writable signal */\n\tvalue: string | WritableSignal<string>;\n\t/** Marker to identify this as a color input (must be `true`) */\n\tcolor: true;\n}\n\n/**\n * Configuration for a checkbox/boolean control.\n *\n * @example\n * ```typescript\n * const config = {\n * enabled: { value: true }\n * };\n * ```\n */\nexport interface TweakCheckboxConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: boolean | WritableSignal<boolean>;\n}\n\n/**\n * Configuration for a dropdown list/select control.\n *\n * @typeParam T - The type of option values\n *\n * @example\n * ```typescript\n * // With array of options\n * const config = {\n * mode: { value: 'normal', options: ['normal', 'debug', 'performance'] }\n * };\n *\n * // With labeled options\n * const config = {\n * quality: { value: 2, options: { 'Low': 1, 'Medium': 2, 'High': 3 } }\n * };\n * ```\n */\nexport interface TweakListConfig<T> {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: T | WritableSignal<T>;\n\t/** Array of options or object mapping labels to values */\n\toptions: T[] | Record<string, T>;\n}\n\n/**\n * Configuration for a 2D/3D/4D point input control.\n *\n * @typeParam TVector - The tuple type for the point dimensions\n *\n * @example\n * ```typescript\n * // 2D point\n * const config = {\n * position: { value: [0, 0] as [number, number] }\n * };\n *\n * // 3D point with axis constraints\n * const config = {\n * position: {\n * value: [0, 0, 0] as [number, number, number],\n * x: { min: -10, max: 10 },\n * y: { min: 0, max: 100 },\n * z: { min: -10, max: 10 }\n * }\n * };\n * ```\n */\nexport interface TweakPointConfig<\n\tTVector extends [number, number] | [number, number, number] | [number, number, number, number] =\n\t\t| [number, number]\n\t\t| [number, number, number]\n\t\t| [number, number, number, number],\n> {\n\t/** The initial point value or a writable signal for two-way binding */\n\tvalue: TVector | WritableSignal<TVector>;\n\t/** Configuration for the X axis (min, max, step, etc.) */\n\tx?: Point2dInputParams['x'];\n\t/** Configuration for the Y axis */\n\ty?: Point2dInputParams['y'];\n\t/** Configuration for the Z axis (3D/4D points only) */\n\tz?: Point3dInputParams['z'];\n\t/** Configuration for the W axis (4D points only) */\n\tw?: Point4dInputParams['w'];\n}\n\n/**\n * Configuration for a button/action control.\n *\n * @example\n * ```typescript\n * const config = {\n * reset: { action: () => this.resetSettings(), label: 'Actions' }\n * };\n * ```\n */\nexport interface TweakButtonConfig {\n\t/** The callback function to execute when the button is clicked */\n\taction: () => void;\n\t/** Optional label displayed next to the button */\n\tlabel?: string;\n}\n\n/**\n * Configuration for a nested folder within the tweaks.\n * Created using the `tweaks.folder()` helper function.\n *\n * @typeParam T - The config type for the folder's contents\n *\n * @example\n * ```typescript\n * const config = {\n * advanced: tweaks.folder('Advanced Settings', {\n * iterations: { value: 4, min: 1, max: 10 },\n * tolerance: { value: 0.001, min: 0, max: 1 }\n * })\n * };\n * ```\n */\nexport interface TweakFolderConfig<T extends TweakConfig> {\n\t/** Internal marker to identify folder configs */\n\t__folder: true;\n\t/** The folder title displayed in the UI */\n\tname: string;\n\t/** The configuration object for controls within the folder */\n\tconfig: T;\n\t/** Whether the folder is initially expanded */\n\texpanded?: boolean;\n}\n\n/**\n * Union of all possible configuration value types for `tweaks()`.\n *\n * Includes:\n * - Primitive values (number, string, boolean)\n * - Writable signals for two-way binding\n * - Typed config objects for each control type\n */\nexport type TweakConfigValue =\n\t| number\n\t| string\n\t| boolean\n\t| WritableSignal<number>\n\t| WritableSignal<string>\n\t| WritableSignal<boolean>\n\t| TweakNumberConfig\n\t| TweakTextConfig\n\t| TweakColorConfig\n\t| TweakCheckboxConfig\n\t| TweakListConfig<unknown>\n\t| TweakPointConfig\n\t| TweakButtonConfig\n\t| TweakFolderConfig<TweakConfig>;\n\n/**\n * A configuration object for `tweaks()`.\n * Maps control names to their configuration values.\n */\nexport type TweakConfig = Record<string, TweakConfigValue>;\n\n// ============================================================================\n// Result Types (what tweaks() returns)\n// ============================================================================\n\n/**\n * Infer the signal type from a config value.\n * Always returns Signal<T> (readonly) - never WritableSignal.\n * Users can use their original WritableSignal if they need write access.\n */\ntype InferSignalType<T> =\n\t// Direct WritableSignal - return readonly Signal\n\tT extends WritableSignal<infer U>\n\t\t? Signal<U>\n\t\t: // Primitive number\n\t\t\tT extends number\n\t\t\t? Signal<number>\n\t\t\t: // Primitive string\n\t\t\t\tT extends string\n\t\t\t\t? Signal<string>\n\t\t\t\t: // Primitive boolean\n\t\t\t\t\tT extends boolean\n\t\t\t\t\t? Signal<boolean>\n\t\t\t\t\t: // Number config\n\t\t\t\t\t\tT extends TweakNumberConfig\n\t\t\t\t\t\t? Signal<number>\n\t\t\t\t\t\t: // Text config\n\t\t\t\t\t\t\tT extends TweakTextConfig\n\t\t\t\t\t\t\t? Signal<string>\n\t\t\t\t\t\t\t: // Color config\n\t\t\t\t\t\t\t\tT extends TweakColorConfig\n\t\t\t\t\t\t\t\t? Signal<string>\n\t\t\t\t\t\t\t\t: // Checkbox config\n\t\t\t\t\t\t\t\t\tT extends TweakCheckboxConfig\n\t\t\t\t\t\t\t\t\t? Signal<boolean>\n\t\t\t\t\t\t\t\t\t: // List config\n\t\t\t\t\t\t\t\t\t\tT extends TweakListConfig<infer U>\n\t\t\t\t\t\t\t\t\t\t? Signal<U>\n\t\t\t\t\t\t\t\t\t\t: // Point config\n\t\t\t\t\t\t\t\t\t\t\tT extends TweakPointConfig<infer VectorType>\n\t\t\t\t\t\t\t\t\t\t\t? Signal<VectorType>\n\t\t\t\t\t\t\t\t\t\t\t: // Button - no return value\n\t\t\t\t\t\t\t\t\t\t\t\tT extends TweakButtonConfig\n\t\t\t\t\t\t\t\t\t\t\t\t? never\n\t\t\t\t\t\t\t\t\t\t\t\t: // Folder - recurse\n\t\t\t\t\t\t\t\t\t\t\t\t\tT extends TweakFolderConfig<infer C>\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TweakResult<C>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: never;\n\n/**\n * The result type returned by `tweaks()` for a given configuration.\n *\n * Maps each config key to a readonly Signal of the appropriate type.\n * Button configs are excluded (they don't return values).\n *\n * @typeParam T - The configuration object type\n */\nexport type TweakResult<T extends TweakConfig> = {\n\t[K in keyof T as T[K] extends TweakButtonConfig ? never : K]: InferSignalType<T[K]>;\n};\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Checks if a config value is a TweakNumberConfig.\n * @internal\n */\nfunction isNumberConfig(config: TweakConfigValue): config is TweakNumberConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'number';\n}\n\n/**\n * Checks if a config value is a TweakTextConfig.\n * @internal\n */\nfunction isTextConfig(config: TweakConfigValue): config is TweakTextConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('min' in config || 'max' in config || 'step' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'string';\n}\n\n/**\n * Checks if a config value is a TweakColorConfig.\n * @internal\n */\nfunction isColorConfig(config: TweakConfigValue): config is TweakColorConfig {\n\treturn typeof config === 'object' && config !== null && 'color' in config && config.color === true;\n}\n\n/**\n * Checks if a config value is a TweakCheckboxConfig.\n * @internal\n */\nfunction isCheckboxConfig(config: TweakConfigValue): config is TweakCheckboxConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('min' in config || 'max' in config || 'step' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'boolean';\n}\n\n/**\n * Checks if a config value is a TweakListConfig.\n * @internal\n */\nfunction isListConfig(config: TweakConfigValue): config is TweakListConfig<unknown> {\n\treturn typeof config === 'object' && config !== null && 'options' in config;\n}\n\n/**\n * Checks if a config value is a TweakPointConfig.\n * @internal\n */\nfunction isPointConfig(config: TweakConfigValue): config is TweakPointConfig {\n\treturn (\n\t\ttypeof config === 'object' &&\n\t\tconfig !== null &&\n\t\t'value' in config &&\n\t\t(('x' in config && 'y' in config) ||\n\t\t\t(Array.isArray(config.value) && config.value.length >= 2) ||\n\t\t\t(isSignal(config.value) && Array.isArray(untracked(config.value))))\n\t);\n}\n\n/**\n * Checks if a config value is a TweakButtonConfig.\n * @internal\n */\nfunction isButtonConfig(config: TweakConfigValue): config is TweakButtonConfig {\n\treturn typeof config === 'object' && config !== null && 'action' in config && typeof config.action === 'function';\n}\n\n/**\n * Checks if a config value is a TweakFolderConfig.\n * @internal\n */\nfunction isFolderConfig(config: TweakConfigValue): config is TweakFolderConfig<TweakConfig> {\n\treturn typeof config === 'object' && config !== null && '__folder' in config && config.__folder === true;\n}\n\n// ============================================================================\n// Helper to create folder configs\n// ============================================================================\n\n/**\n * Creates a nested folder configuration for use with `tweaks()`.\n *\n * This helper function creates a folder configuration object that can be\n * used as a value in the `tweaks()` config to organize controls into\n * collapsible groups.\n *\n * @typeParam T - The config type for the folder's contents\n * @param name - The display name/title of the folder\n * @param config - The configuration object for controls within the folder\n * @param options - Optional folder settings\n * @param options.expanded - Whether the folder starts expanded\n * @returns A folder configuration object\n *\n * @example\n * ```typescript\n * const controls = tweaks('Settings', {\n * basic: 42,\n * advanced: tweaks.folder('Advanced', {\n * iterations: { value: 4, min: 1, max: 10 },\n * tolerance: { value: 0.001, min: 0, max: 1, step: 0.001 },\n * }),\n * });\n *\n * // Access nested values\n * controls.advanced.iterations(); // Signal<number>\n * ```\n */\nfunction folder<T extends TweakConfig>(\n\tname: string,\n\tconfig: T,\n\toptions?: { expanded?: boolean },\n): TweakFolderConfig<T> {\n\treturn {\n\t\t__folder: true,\n\t\tname,\n\t\tconfig,\n\t\texpanded: options?.expanded,\n\t};\n}\n\n// ============================================================================\n// Folder Options\n// ============================================================================\n\n/**\n * Options for configuring a `tweaks()` folder.\n */\nexport interface TweakFolderOptions {\n\t/**\n\t * Whether the folder is expanded by default.\n\t * @default false\n\t */\n\texpanded?: boolean;\n\t/**\n\t * Optional injector for use outside an injection context.\n\t * Required when calling `tweaks()` from outside a constructor or field initializer.\n\t */\n\tinjector?: Injector;\n}\n\n// ============================================================================\n// Main tweaks() function\n// ============================================================================\n\n/**\n * Creates Tweakpane controls declaratively from any component within an `ngt-canvas`.\n *\n * **Prerequisites:**\n * 1. Add `tweakpaneAnchor` directive to your `ngt-canvas`:\n * ```html\n * <ngt-canvas tweakpaneAnchor>\n * ```\n * 2. Add `<tweakpane-pane>` somewhere in your scene\n *\n * @param folderName - The name of the folder to create/use\n * @param config - Configuration object defining the controls\n * @param options - Optional folder options (expanded, etc.)\n * @returns An object with signals for each control value\n *\n * @example\n * ```typescript\n * // Basic usage with primitives (creates new signals)\n * const controls = tweaks('Physics', {\n * gravity: 9.8,\n * debug: false,\n * name: 'World',\n * });\n *\n * // With config objects for more control\n * const controls = tweaks('Physics', {\n * gravity: { value: 9.8, min: 0, max: 20, step: 0.1 },\n * color: { value: '#ff0000', color: true },\n * mode: { value: 'normal', options: ['normal', 'debug', 'verbose'] },\n * });\n *\n * // Two-way binding with existing signals\n * filteringEnabled = signal(true);\n * const controls = tweaks('Settings', {\n * filteringEnabled: this.filteringEnabled, // two-way binding\n * });\n *\n * // Buttons (actions)\n * const controls = tweaks('Actions', {\n * reset: { action: () => this.reset() },\n * });\n *\n * // Nested folders\n * const controls = tweaks('Settings', {\n * basic: 42,\n * advanced: tweaks.folder('Advanced', {\n * iterations: { value: 4, min: 1, max: 10 },\n * }),\n * });\n * ```\n */\nexport function tweaks<T extends TweakConfig>(\n\tfolderName: string,\n\tconfig: T,\n\t{ injector, ...options }: TweakFolderOptions = {},\n): TweakResult<T> {\n\treturn assertInjector(tweaks, injector, () => {\n\t\tconst maybeAnchor = inject(TweakpaneAnchor, { optional: true });\n\t\tconst assertedInjector = inject(Injector);\n\t\tconst destroyRef = inject(DestroyRef);\n\n\t\tif (!maybeAnchor) {\n\t\t\tthrow new Error(\n\t\t\t\t'[NGT Tweakpane] tweaks() requires TweakpaneAnchor directive. Add `tweakpaneAnchor` to your ngt-canvas element.',\n\t\t\t);\n\t\t}\n\n\t\tconst anchor = maybeAnchor;\n\n\t\tconst result = {} as Record<string, Signal<unknown> | Record<string, Signal<unknown>>>;\n\t\tconst createdComponents: ComponentRef<TweakpaneAnchorHost>[] = [];\n\n\t\t// Process config and create controls when pane folder is ready\n\t\teffect(\n\t\t\t(onCleanup) => {\n\t\t\t\tconst paneFolder = anchor.paneFolder();\n\t\t\t\tif (!paneFolder) return;\n\n\t\t\t\t// Get or create folder for this tweaks() call\n\t\t\t\tlet folderRef = anchor.folders[folderName];\n\t\t\t\tlet folderInstance: TweakpaneFolder;\n\n\t\t\t\tif (!folderRef) {\n\t\t\t\t\t// Create folder using the directives approach\n\t\t\t\t\tfolderRef = anchor.vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\t\tinjector: Injector.create({\n\t\t\t\t\t\t\tproviders: [{ provide: TweakpaneFolder, useValue: paneFolder }],\n\t\t\t\t\t\t\tparent: assertedInjector,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: TweakpaneFolder,\n\t\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\t\tinputBinding('title', () => folderName),\n\t\t\t\t\t\t\t\t\tinputBinding('expanded', () => options?.expanded ?? false),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t\tfolderInstance = folderRef.injector.get(TweakpaneFolder);\n\t\t\t\t\tanchor.folders[folderName] = folderRef;\n\t\t\t\t\tcreatedComponents.push(folderRef);\n\t\t\t\t} else {\n\t\t\t\t\tfolderInstance = folderRef.injector.get(TweakpaneFolder);\n\t\t\t\t}\n\n\t\t\t\t// Process each config entry\n\t\t\t\tprocessConfig(config, result, folderInstance, anchor.vcr, createdComponents, anchor, assertedInjector);\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\t// Destroy created components\n\t\t\t\t\tfor (const ref of createdComponents) {\n\t\t\t\t\t\tref.destroy();\n\t\t\t\t\t}\n\t\t\t\t\tcreatedComponents.length = 0;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: assertedInjector },\n\t\t);\n\n\t\t// Cleanup on destroy\n\t\tdestroyRef.onDestroy(() => {\n\t\t\tfor (const ref of createdComponents) {\n\t\t\t\tref.destroy();\n\t\t\t}\n\t\t});\n\n\t\treturn result as TweakResult<T>;\n\t});\n}\n\n/**\n * Attach the folder helper to tweaks for convenient access.\n * Allows usage like `tweaks.folder('Name', config)`.\n */\ntweaks.folder = folder;\n\n// ============================================================================\n// Internal: Process config and create components\n// ============================================================================\n\n/**\n * Processes a configuration object and creates the corresponding Tweakpane controls.\n * This is an internal function called by `tweaks()` to set up the UI.\n *\n * @param config - The configuration object to process\n * @param result - The result object to populate with signals\n * @param parentFolder - The parent folder to add controls to\n * @param vcr - The ViewContainerRef for creating components\n * @param createdComponents - Array to track created component refs for cleanup\n * @param anchor - The TweakpaneAnchor for folder management\n * @param parentInjector - The parent injector for dependency injection\n *\n * @internal\n */\nfunction processConfig(\n\tconfig: TweakConfig,\n\tresult: Record<string, Signal<unknown> | Record<string, Signal<unknown>>>,\n\tparentFolder: TweakpaneFolder,\n\tvcr: ViewContainerRef,\n\tcreatedComponents: ComponentRef<TweakpaneAnchorHost>[],\n\tanchor: TweakpaneAnchor,\n\tparentInjector: Injector,\n): void {\n\tconst keys = Object.keys(config);\n\n\t// Create injector with parent folder provided\n\tconst folderInjector = Injector.create({\n\t\tproviders: [{ provide: TweakpaneFolder, useValue: parentFolder }],\n\t\tparent: parentInjector,\n\t});\n\n\tfor (const key of keys) {\n\t\tconst configValue = config[key];\n\n\t\t// Handle nested folders\n\t\tif (isFolderConfig(configValue)) {\n\t\t\tconst nestedResult = {} as Record<string, Signal<unknown>>;\n\n\t\t\t// Get or create nested folder\n\t\t\tconst nestedFolderName = configValue.name;\n\t\t\tlet nestedFolderRef = anchor.folders[nestedFolderName];\n\t\t\tlet nestedFolderInstance: TweakpaneFolder;\n\n\t\t\tif (!nestedFolderRef) {\n\t\t\t\tnestedFolderRef = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneFolder,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('title', () => nestedFolderName),\n\t\t\t\t\t\t\t\tinputBinding('expanded', () => configValue.expanded ?? false),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tnestedFolderInstance = nestedFolderRef.injector.get(TweakpaneFolder);\n\t\t\t\tanchor.folders[nestedFolderName] = nestedFolderRef;\n\t\t\t\tcreatedComponents.push(nestedFolderRef);\n\t\t\t} else {\n\t\t\t\tnestedFolderInstance = nestedFolderRef.injector.get(TweakpaneFolder);\n\t\t\t}\n\n\t\t\tprocessConfig(\n\t\t\t\tconfigValue.config,\n\t\t\t\tnestedResult,\n\t\t\t\tnestedFolderInstance,\n\t\t\t\tvcr,\n\t\t\t\tcreatedComponents,\n\t\t\t\tanchor,\n\t\t\t\tfolderInjector,\n\t\t\t);\n\t\t\tresult[key] = nestedResult;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle buttons (no result signal)\n\t\tif (isButtonConfig(configValue)) {\n\t\t\tconst buttonRef = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneButton,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('title', () => key),\n\t\t\t\t\t\t\t...(configValue.label ? [inputBinding('label', () => configValue.label)] : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\t// Subscribe to click events\n\t\t\tconst buttonInstance = buttonRef.injector.get(TweakpaneButton);\n\t\t\tbuttonInstance.click.subscribe(() => {\n\t\t\t\tconfigValue.action();\n\t\t\t});\n\t\t\tcreatedComponents.push(buttonRef);\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle direct WritableSignal (two-way binding)\n\t\tif (isSignal(configValue)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tconst untrackedValue = untracked(configValue as WritableSignal<any>);\n\t\t\tconst valueType = typeof untrackedValue;\n\n\t\t\tif (valueType === 'number') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<number>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<number>).asReadonly();\n\t\t\t} else if (valueType === 'string') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<string>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<string>).asReadonly();\n\t\t\t} else if (valueType === 'boolean') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<boolean>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<boolean>).asReadonly();\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle primitive values (create new signal)\n\t\tif (typeof configValue === 'number') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof configValue === 'string') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof configValue === 'boolean') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle config objects\n\t\tif (isColorConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as string);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneColor,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isListConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value) ? untracked(configValue.value) : configValue.value;\n\t\t\tconst valueSignal = isSignal(configValue.value)\n\t\t\t\t? (configValue.value as WritableSignal<unknown>)\n\t\t\t\t: signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneList,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('options', () => configValue.options),\n\t\t\t\t\t\t\ttwoWayBinding('value', valueSignal),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isPointConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value) ? untracked(configValue.value) : configValue.value;\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\t// Build params from x, y, z, w configs\n\t\t\tconst params: Point2dInputParams | Point3dInputParams | Point4dInputParams = {};\n\t\t\tif (configValue.x) (params as Point2dInputParams).x = configValue.x;\n\t\t\tif (configValue.y) (params as Point2dInputParams).y = configValue.y;\n\t\t\tif (configValue.z) (params as Point3dInputParams).z = configValue.z;\n\t\t\tif (configValue.w) (params as Point4dInputParams).w = configValue.w;\n\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpanePoint,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('params', () => params),\n\t\t\t\t\t\t\ttwoWayBinding(\n\t\t\t\t\t\t\t\t'value',\n\t\t\t\t\t\t\t\tvalueSignal as WritableSignal<\n\t\t\t\t\t\t\t\t\t[number, number] | [number, number, number] | [number, number, number, number]\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isNumberConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as number);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\t// Build params\n\t\t\tconst params: NumberInputParams = {};\n\t\t\tif (configValue.min !== undefined) params.min = configValue.min;\n\t\t\tif (configValue.max !== undefined) params.max = configValue.max;\n\t\t\tif (configValue.step !== undefined) params.step = configValue.step;\n\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('params', () => params),\n\t\t\t\t\t\t\ttwoWayBinding('value', valueSignal),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isCheckboxConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as boolean);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isTextConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as string);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TweakpaneTitle","i2.TweakpaneBlade","i1.TweakpaneBlade","i2.TweakpaneDebounce","i3.TweakpaneLabel","i2.TweakpaneLabel","i3.TweakpaneBlade","i1.TweakpaneBinding","i1.TweakpaneFolder"],"mappings":"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"}
|