@wirekyt/angular 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,359 @@
1
+ import * as accordion from '@wirekyt/dom/machines/accordion';
2
+ export { anatomy as accordionAnatomy } from '@wirekyt/dom/machines/accordion';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, inject, input, booleanAttribute, model, output, DestroyRef, Renderer2, ElementRef, forwardRef, Directive, computed, signal, effect, TemplateRef, ViewContainerRef } from '@angular/core';
5
+ import { injectLocale, injectEnvironment, createId, useMachine, bindProps } from '@wirekyt/angular';
6
+
7
+ const ACCORDION_CONTEXT = new InjectionToken("WIREKIT.ACCORDION_CONTEXT");
8
+ function injectAccordionContext() {
9
+ return inject(ACCORDION_CONTEXT);
10
+ }
11
+
12
+ const ACCORDION_ITEM_CONTEXT = new InjectionToken("WIREKIT.ACCORDION_ITEM_CONTEXT");
13
+ function injectAccordionItemContext() {
14
+ return inject(ACCORDION_ITEM_CONTEXT);
15
+ }
16
+
17
+ function useAccordion(options) {
18
+ const locale = injectLocale();
19
+ const environment = injectEnvironment();
20
+ const fallbackId = createId();
21
+ return useMachine({
22
+ machine: accordion.machine,
23
+ context: () => {
24
+ const props = options.context();
25
+ return {
26
+ ...props,
27
+ dir: locale.dir,
28
+ getRootNode: environment.getRootNode,
29
+ id: props.id ?? fallbackId,
30
+ };
31
+ },
32
+ connect: (service, normalize) => accordion.connect(service, normalize),
33
+ });
34
+ }
35
+
36
+ function areStringArraysEqual(left, right) {
37
+ return left?.length === right.length && left.every((value, index) => value === right[index]);
38
+ }
39
+ class AccordionRoot {
40
+ id = input(undefined, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
42
+ ids = input(undefined, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
44
+ multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
45
+ collapsible = input(false, { ...(ngDevMode ? { debugName: "collapsible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
46
+ value = model(undefined, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
48
+ defaultValue = input(undefined, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []));
50
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
51
+ orientation = input(undefined, /* @ts-ignore */
52
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
53
+ lazyMount = input(false, { ...(ngDevMode ? { debugName: "lazyMount" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
54
+ unmountOnExit = input(false, { ...(ngDevMode ? { debugName: "unmountOnExit" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
55
+ focusChange = output();
56
+ machine = useAccordion({
57
+ context: () => ({
58
+ id: this.id(),
59
+ ids: this.ids(),
60
+ multiple: this.multiple(),
61
+ collapsible: this.collapsible(),
62
+ value: this.value(),
63
+ defaultValue: this.defaultValue(),
64
+ disabled: this.disabled(),
65
+ orientation: this.orientation(),
66
+ onValueChange: (details) => {
67
+ if (areStringArraysEqual(this.value(), details.value))
68
+ return;
69
+ this.value.set(details.value);
70
+ },
71
+ onFocusChange: (details) => {
72
+ this.focusChange.emit(details);
73
+ },
74
+ }),
75
+ });
76
+ state = this.machine.state;
77
+ api = this.machine.api;
78
+ service = this.machine.service;
79
+ send = this.machine.send;
80
+ constructor() {
81
+ bindProps({
82
+ elementRef: inject(ElementRef),
83
+ renderer: inject(Renderer2),
84
+ destroyRef: inject(DestroyRef),
85
+ props: () => this.api().getRootProps(),
86
+ });
87
+ }
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
89
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AccordionRoot, isStandalone: true, selector: "[accordionRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, lazyMount: { classPropertyName: "lazyMount", publicName: "lazyMount", isSignal: true, isRequired: false, transformFunction: null }, unmountOnExit: { classPropertyName: "unmountOnExit", publicName: "unmountOnExit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", focusChange: "focusChange" }, providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRoot) }], exportAs: ["accordionRoot"], ngImport: i0 });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionRoot, decorators: [{
92
+ type: Directive,
93
+ args: [{
94
+ selector: "[accordionRoot]",
95
+ standalone: true,
96
+ exportAs: "accordionRoot",
97
+ providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRoot) }],
98
+ }]
99
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], lazyMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyMount", required: false }] }], unmountOnExit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unmountOnExit", required: false }] }], focusChange: [{ type: i0.Output, args: ["focusChange"] }] } });
100
+
101
+ class AccordionRootProvider {
102
+ value = input.required(/* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
104
+ lazyMount = input(false, { ...(ngDevMode ? { debugName: "lazyMount" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
105
+ unmountOnExit = input(false, { ...(ngDevMode ? { debugName: "unmountOnExit" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
106
+ state = computed(() => this.value().state(), /* @ts-ignore */
107
+ ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
108
+ api = computed(() => this.value().api(), /* @ts-ignore */
109
+ ...(ngDevMode ? [{ debugName: "api" }] : /* istanbul ignore next */ []));
110
+ send = (event) => this.value().send(event);
111
+ get service() {
112
+ return this.value().service;
113
+ }
114
+ constructor() {
115
+ bindProps({
116
+ elementRef: inject(ElementRef),
117
+ renderer: inject(Renderer2),
118
+ destroyRef: inject(DestroyRef),
119
+ props: () => this.api().getRootProps(),
120
+ });
121
+ }
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionRootProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
123
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AccordionRootProvider, isStandalone: true, selector: "[accordionRootProvider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, lazyMount: { classPropertyName: "lazyMount", publicName: "lazyMount", isSignal: true, isRequired: false, transformFunction: null }, unmountOnExit: { classPropertyName: "unmountOnExit", publicName: "unmountOnExit", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRootProvider) }], exportAs: ["accordionRootProvider"], ngImport: i0 });
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionRootProvider, decorators: [{
126
+ type: Directive,
127
+ args: [{
128
+ selector: "[accordionRootProvider]",
129
+ standalone: true,
130
+ exportAs: "accordionRootProvider",
131
+ providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRootProvider) }],
132
+ }]
133
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], lazyMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyMount", required: false }] }], unmountOnExit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unmountOnExit", required: false }] }] } });
134
+
135
+ class AccordionItem {
136
+ value = input.required(/* @ts-ignore */
137
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
138
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
139
+ root = injectAccordionContext();
140
+ wasVisible = signal(false, /* @ts-ignore */
141
+ ...(ngDevMode ? [{ debugName: "wasVisible" }] : /* istanbul ignore next */ []));
142
+ itemState = computed(() => this.root.api().getItemState({ value: this.value(), disabled: this.disabled() }), /* @ts-ignore */
143
+ ...(ngDevMode ? [{ debugName: "itemState" }] : /* istanbul ignore next */ []));
144
+ itemContext = {
145
+ value: computed(() => this.value()),
146
+ disabled: computed(() => this.disabled()),
147
+ state: this.itemState,
148
+ isUnmounted: computed(() => {
149
+ const visible = this.itemState().expanded;
150
+ return Boolean((!visible && !this.wasVisible() && this.root.lazyMount()) ||
151
+ (!visible && this.wasVisible() && this.root.unmountOnExit()));
152
+ }),
153
+ };
154
+ constructor() {
155
+ effect(() => {
156
+ if (this.itemState().expanded)
157
+ this.wasVisible.set(true);
158
+ });
159
+ bindProps({
160
+ elementRef: inject(ElementRef),
161
+ renderer: inject(Renderer2),
162
+ destroyRef: inject(DestroyRef),
163
+ props: () => this.root.api().getItemProps({
164
+ value: this.value(),
165
+ disabled: this.disabled(),
166
+ }),
167
+ });
168
+ }
169
+ getItemContext() {
170
+ return this.itemContext;
171
+ }
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
173
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AccordionItem, isStandalone: true, selector: "[accordionItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
174
+ {
175
+ provide: ACCORDION_ITEM_CONTEXT,
176
+ useFactory: (item) => item.getItemContext(),
177
+ deps: [forwardRef(() => AccordionItem)],
178
+ },
179
+ ], exportAs: ["accordionItem"], ngImport: i0 });
180
+ }
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItem, decorators: [{
182
+ type: Directive,
183
+ args: [{
184
+ selector: "[accordionItem]",
185
+ standalone: true,
186
+ exportAs: "accordionItem",
187
+ providers: [
188
+ {
189
+ provide: ACCORDION_ITEM_CONTEXT,
190
+ useFactory: (item) => item.getItemContext(),
191
+ deps: [forwardRef(() => AccordionItem)],
192
+ },
193
+ ],
194
+ }]
195
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
196
+
197
+ class AccordionItemTrigger {
198
+ constructor() {
199
+ const context = injectAccordionContext();
200
+ const item = injectAccordionItemContext();
201
+ bindProps({
202
+ elementRef: inject(ElementRef),
203
+ renderer: inject(Renderer2),
204
+ destroyRef: inject(DestroyRef),
205
+ props: () => context.api().getItemTriggerProps({
206
+ value: item.value(),
207
+ disabled: item.disabled(),
208
+ }),
209
+ });
210
+ }
211
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
212
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AccordionItemTrigger, isStandalone: true, selector: "[accordionItemTrigger]", exportAs: ["accordionItemTrigger"], ngImport: i0 });
213
+ }
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemTrigger, decorators: [{
215
+ type: Directive,
216
+ args: [{
217
+ selector: "[accordionItemTrigger]",
218
+ standalone: true,
219
+ exportAs: "accordionItemTrigger",
220
+ }]
221
+ }], ctorParameters: () => [] });
222
+
223
+ class AccordionItemContent {
224
+ context = injectAccordionContext();
225
+ item = injectAccordionItemContext();
226
+ template = inject((TemplateRef));
227
+ viewContainer = inject(ViewContainerRef);
228
+ elementRef = { nativeElement: null };
229
+ view;
230
+ constructor() {
231
+ effect(() => {
232
+ if (this.item.isUnmounted()) {
233
+ this.elementRef.nativeElement = null;
234
+ this.viewContainer.clear();
235
+ this.view = undefined;
236
+ return;
237
+ }
238
+ if (!this.view) {
239
+ this.view = this.viewContainer.createEmbeddedView(this.template);
240
+ this.elementRef.nativeElement =
241
+ this.view.rootNodes.find((node) => node.nodeType === 1) ?? null;
242
+ }
243
+ });
244
+ bindProps({
245
+ elementRef: this.elementRef,
246
+ renderer: inject(Renderer2),
247
+ destroyRef: inject(DestroyRef),
248
+ props: () => this.context.api().getItemContentProps({
249
+ value: this.item.value(),
250
+ disabled: this.item.disabled(),
251
+ }),
252
+ });
253
+ }
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
255
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AccordionItemContent, isStandalone: true, selector: "[accordionItemContent]", exportAs: ["accordionItemContent"], ngImport: i0 });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemContent, decorators: [{
258
+ type: Directive,
259
+ args: [{
260
+ selector: "[accordionItemContent]",
261
+ standalone: true,
262
+ exportAs: "accordionItemContent",
263
+ }]
264
+ }], ctorParameters: () => [] });
265
+
266
+ class AccordionItemIndicator {
267
+ constructor() {
268
+ const context = injectAccordionContext();
269
+ const item = injectAccordionItemContext();
270
+ bindProps({
271
+ elementRef: inject(ElementRef),
272
+ renderer: inject(Renderer2),
273
+ destroyRef: inject(DestroyRef),
274
+ props: () => context.api().getItemIndicatorProps({
275
+ value: item.value(),
276
+ disabled: item.disabled(),
277
+ }),
278
+ });
279
+ }
280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
281
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AccordionItemIndicator, isStandalone: true, selector: "[accordionItemIndicator]", exportAs: ["accordionItemIndicator"], ngImport: i0 });
282
+ }
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemIndicator, decorators: [{
284
+ type: Directive,
285
+ args: [{
286
+ selector: "[accordionItemIndicator]",
287
+ standalone: true,
288
+ exportAs: "accordionItemIndicator",
289
+ }]
290
+ }], ctorParameters: () => [] });
291
+
292
+ class AccordionContext {
293
+ static ngTemplateContextGuard(_directive, context) {
294
+ void context;
295
+ return true;
296
+ }
297
+ accordion = injectAccordionContext();
298
+ templateRef = inject(TemplateRef);
299
+ viewContainer = inject(ViewContainerRef);
300
+ constructor() {
301
+ const view = this.viewContainer.createEmbeddedView(this.templateRef, {
302
+ $implicit: this.accordion.api,
303
+ api: this.accordion.api,
304
+ });
305
+ effect(() => {
306
+ this.accordion.api();
307
+ view.detectChanges();
308
+ });
309
+ inject(DestroyRef).onDestroy(() => view.destroy());
310
+ }
311
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
312
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AccordionContext, isStandalone: true, selector: "[accordionContext]", exportAs: ["accordionContext"], ngImport: i0 });
313
+ }
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionContext, decorators: [{
315
+ type: Directive,
316
+ args: [{
317
+ selector: "[accordionContext]",
318
+ standalone: true,
319
+ exportAs: "accordionContext",
320
+ }]
321
+ }], ctorParameters: () => [] });
322
+
323
+ class AccordionItemContextDirective {
324
+ static ngTemplateContextGuard(_directive, context) {
325
+ void context;
326
+ return true;
327
+ }
328
+ item = injectAccordionItemContext();
329
+ templateRef = inject(TemplateRef);
330
+ viewContainer = inject(ViewContainerRef);
331
+ constructor() {
332
+ const view = this.viewContainer.createEmbeddedView(this.templateRef, {
333
+ $implicit: this.item,
334
+ item: this.item,
335
+ });
336
+ effect(() => {
337
+ this.item.state();
338
+ view.detectChanges();
339
+ });
340
+ inject(DestroyRef).onDestroy(() => view.destroy());
341
+ }
342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
343
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AccordionItemContextDirective, isStandalone: true, selector: "[accordionItemContext]", exportAs: ["accordionItemContext"], ngImport: i0 });
344
+ }
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AccordionItemContextDirective, decorators: [{
346
+ type: Directive,
347
+ args: [{
348
+ selector: "[accordionItemContext]",
349
+ standalone: true,
350
+ exportAs: "accordionItemContext",
351
+ }]
352
+ }], ctorParameters: () => [] });
353
+
354
+ /**
355
+ * Generated bundle index. Do not edit.
356
+ */
357
+
358
+ export { ACCORDION_CONTEXT, ACCORDION_ITEM_CONTEXT, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContextDirective, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, AccordionRootProvider, injectAccordionContext, injectAccordionItemContext, useAccordion };
359
+ //# sourceMappingURL=wirekyt-angular-accordion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-accordion.mjs","sources":["../../src/components/accordion/use-context.ts","../../src/components/accordion/use-item-context.ts","../../src/components/accordion/use.ts","../../src/components/accordion/root.ts","../../src/components/accordion/root-provider.ts","../../src/components/accordion/item.ts","../../src/components/accordion/item-trigger.ts","../../src/components/accordion/item-content.ts","../../src/components/accordion/item-indicator.ts","../../src/components/accordion/context.ts","../../src/components/accordion/item-context.ts","../../src/components/accordion/wirekyt-angular-accordion.ts"],"sourcesContent":["import { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseAccordionReturn } from \"./use\";\n\nexport interface AccordionRootContext extends UseAccordionReturn {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const ACCORDION_CONTEXT = new InjectionToken<AccordionRootContext>(\n \"WIREKIT.ACCORDION_CONTEXT\",\n);\n\nexport function injectAccordionContext(): AccordionRootContext {\n return inject(ACCORDION_CONTEXT);\n}\n","import { InjectionToken, type Signal, inject } from \"@angular/core\";\nimport * as accordion from \"@wirekyt/dom/machines/accordion\";\n\nexport interface AccordionItemContext {\n readonly value: Signal<string>;\n readonly disabled: Signal<boolean | undefined>;\n readonly state: Signal<accordion.ItemState>;\n readonly isUnmounted: Signal<boolean>;\n}\n\nexport const ACCORDION_ITEM_CONTEXT = new InjectionToken<AccordionItemContext>(\n \"WIREKIT.ACCORDION_ITEM_CONTEXT\",\n);\n\nexport function injectAccordionItemContext(): AccordionItemContext {\n return inject(ACCORDION_ITEM_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport { useMachine, type UseMachineReturn } from \"@wirekyt/angular\";\nimport { createId, injectEnvironment, injectLocale } from \"@wirekyt/angular\";\nimport * as accordion from \"@wirekyt/dom/machines/accordion\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseAccordionProps extends OptionalId<\n Omit<accordion.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseAccordionReturn = UseMachineReturn<\n accordion.Service[\"state\"],\n accordion.Api,\n accordion.Service\n>;\n\nexport interface UseAccordionOptions {\n context: () => UseAccordionProps;\n}\n\ntype AccordionContext = Record<string, unknown>;\ntype AccordionSchema = accordion.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useAccordion(options: UseAccordionOptions): UseAccordionReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<AccordionSchema, accordion.Api>({\n machine: accordion.machine,\n context: () => {\n const props = options.context();\n return {\n ...props,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: props.id ?? fallbackId,\n } as AccordionContext;\n },\n connect: (service, normalize) => accordion.connect(service, normalize),\n });\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport * as accordion from \"@wirekyt/dom/machines/accordion\";\n\nimport type { AccordionElementIds, AccordionFocusChangeDetails } from \"./types\";\n\nimport { useAccordion, type UseAccordionReturn } from \"./use\";\nimport { ACCORDION_CONTEXT } from \"./use-context\";\n\nfunction areStringArraysEqual(left: string[] | undefined, right: string[]): boolean {\n return left?.length === right.length && left.every((value, index) => value === right[index]);\n}\n\n@Directive({\n selector: \"[accordionRoot]\",\n standalone: true,\n exportAs: \"accordionRoot\",\n providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRoot) }],\n})\nexport class AccordionRoot implements UseAccordionReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<AccordionElementIds | undefined> = input<\n AccordionElementIds | undefined\n >(undefined);\n readonly multiple: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly collapsible: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly value: ModelSignal<string[] | undefined> = model<string[] | undefined>(undefined);\n readonly defaultValue: InputSignal<string[] | undefined> = input<string[] | undefined>(undefined);\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly orientation: InputSignal<accordion.Props[\"orientation\"]> =\n input<accordion.Props[\"orientation\"]>(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\n readonly focusChange: OutputEmitterRef<AccordionFocusChangeDetails> =\n output<AccordionFocusChangeDetails>();\n\n private readonly machine = useAccordion({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n multiple: this.multiple(),\n collapsible: this.collapsible(),\n value: this.value(),\n defaultValue: this.defaultValue(),\n disabled: this.disabled(),\n orientation: this.orientation(),\n onValueChange: (details) => {\n if (areStringArraysEqual(this.value(), details.value)) return;\n this.value.set(details.value);\n },\n onFocusChange: (details) => {\n this.focusChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<accordion.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<accordion.Api> = this.machine.api;\n readonly service: accordion.Service = this.machine.service;\n readonly send: accordion.Service[\"send\"] = this.machine.send;\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n type InputSignal,\n type InputSignalWithTransform,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport * as accordion from \"@wirekyt/dom/machines/accordion\";\n\nimport type { UseAccordionReturn } from \"./use\";\n\nimport { ACCORDION_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[accordionRootProvider]\",\n standalone: true,\n exportAs: \"accordionRootProvider\",\n providers: [{ provide: ACCORDION_CONTEXT, useExisting: forwardRef(() => AccordionRootProvider) }],\n})\nexport class AccordionRootProvider implements UseAccordionReturn {\n readonly value: InputSignal<UseAccordionReturn> = input.required<UseAccordionReturn>();\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 state: Signal<accordion.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<accordion.Api> = computed(() => this.value().api());\n readonly send: accordion.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): accordion.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 {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n signal,\n type InputSignal,\n type InputSignalWithTransform,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectAccordionContext } from \"./use-context\";\nimport { ACCORDION_ITEM_CONTEXT, type AccordionItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[accordionItem]\",\n standalone: true,\n exportAs: \"accordionItem\",\n providers: [\n {\n provide: ACCORDION_ITEM_CONTEXT,\n useFactory: (item: AccordionItem) => item.getItemContext(),\n deps: [forwardRef(() => AccordionItem)],\n },\n ],\n})\nexport class AccordionItem {\n readonly value: InputSignal<string> = input.required<string>();\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n\n private readonly root = injectAccordionContext();\n private readonly wasVisible = signal(false);\n private readonly itemState = computed(() =>\n this.root.api().getItemState({ value: this.value(), disabled: this.disabled() }),\n );\n private readonly itemContext: AccordionItemContext = {\n value: computed(() => this.value()),\n disabled: computed(() => this.disabled()),\n state: this.itemState,\n isUnmounted: computed(() => {\n const visible = this.itemState().expanded;\n return Boolean(\n (!visible && !this.wasVisible() && this.root.lazyMount()) ||\n (!visible && this.wasVisible() && this.root.unmountOnExit()),\n );\n }),\n };\n\n constructor() {\n effect(() => {\n if (this.itemState().expanded) this.wasVisible.set(true);\n });\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n this.root.api().getItemProps({\n value: this.value(),\n disabled: this.disabled(),\n }),\n });\n }\n\n getItemContext(): AccordionItemContext {\n return this.itemContext;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectAccordionContext } from \"./use-context\";\nimport { injectAccordionItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[accordionItemTrigger]\",\n standalone: true,\n exportAs: \"accordionItemTrigger\",\n})\nexport class AccordionItemTrigger {\n constructor() {\n const context = injectAccordionContext();\n const item = injectAccordionItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemTriggerProps({\n value: item.value(),\n disabled: item.disabled(),\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectAccordionContext } from \"./use-context\";\nimport { injectAccordionItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[accordionItemContent]\",\n standalone: true,\n exportAs: \"accordionItemContent\",\n})\nexport class AccordionItemContent {\n private readonly context = injectAccordionContext();\n private readonly item = injectAccordionItemContext();\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.item.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.api().getItemContentProps({\n value: this.item.value(),\n disabled: this.item.disabled(),\n }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectAccordionContext } from \"./use-context\";\nimport { injectAccordionItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[accordionItemIndicator]\",\n standalone: true,\n exportAs: \"accordionItemIndicator\",\n})\nexport class AccordionItemIndicator {\n constructor() {\n const context = injectAccordionContext();\n const item = injectAccordionItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemIndicatorProps({\n value: item.value(),\n disabled: item.disabled(),\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseAccordionReturn } from \"./use\";\n\nimport { injectAccordionContext } from \"./use-context\";\n\nexport interface AccordionContextTemplate {\n $implicit: UseAccordionReturn[\"api\"];\n api: UseAccordionReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[accordionContext]\",\n standalone: true,\n exportAs: \"accordionContext\",\n})\nexport class AccordionContext {\n static ngTemplateContextGuard(\n _directive: AccordionContext,\n context: unknown,\n ): context is AccordionContextTemplate {\n void context;\n return true;\n }\n\n private readonly accordion = injectAccordionContext();\n private readonly templateRef = inject<TemplateRef<AccordionContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.accordion.api,\n api: this.accordion.api,\n });\n\n effect(() => {\n this.accordion.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { AccordionItemContext as UseAccordionItemContext } from \"./use-item-context\";\n\nimport { injectAccordionItemContext } from \"./use-item-context\";\n\nexport interface AccordionItemContextTemplate {\n $implicit: UseAccordionItemContext;\n item: UseAccordionItemContext;\n}\n\n@Directive({\n selector: \"[accordionItemContext]\",\n standalone: true,\n exportAs: \"accordionItemContext\",\n})\nexport class AccordionItemContextDirective {\n static ngTemplateContextGuard(\n _directive: AccordionItemContextDirective,\n context: unknown,\n ): context is AccordionItemContextTemplate {\n void context;\n return true;\n }\n\n private readonly item = injectAccordionItemContext();\n private readonly templateRef = inject<TemplateRef<AccordionItemContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.item,\n item: this.item,\n });\n\n effect(() => {\n this.item.state();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MASa,iBAAiB,GAAG,IAAI,cAAc,CACjD,2BAA2B;SAGb,sBAAsB,GAAA;AACpC,IAAA,OAAO,MAAM,CAAC,iBAAiB,CAAC;AAClC;;MCLa,sBAAsB,GAAG,IAAI,cAAc,CACtD,gCAAgC;SAGlB,0BAA0B,GAAA;AACxC,IAAA,OAAO,MAAM,CAAC,sBAAsB,CAAC;AACvC;;ACSM,SAAU,YAAY,CAAC,OAA4B,EAAA;AACvD,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;AACvC,IAAA,MAAM,UAAU,GAAG,QAAQ,EAAE;AAE7B,IAAA,OAAO,UAAU,CAAiC;QAChD,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,MAAK;AACZ,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;YAC/B,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,WAAW,EAAE,WAAW,CAAC,WAAW;AACpC,gBAAA,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,UAAU;aACP;QACvB,CAAC;AACD,QAAA,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;AACvE,KAAA,CAAC;AACJ;;AClBA,SAAS,oBAAoB,CAAC,IAA0B,EAAE,KAAe,EAAA;IACvE,OAAO,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9F;MAQa,aAAa,CAAA;IACf,EAAE,GAAoC,KAAK,CAAqB,SAAS;2EAAC;IAC1E,GAAG,GAAiD,KAAK,CAEhE,SAAS;4EAAC;IACH,QAAQ,GAA+C,KAAK,CAAC,KAAK,gFACzE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,WAAW,GAA+C,KAAK,CAAC,KAAK,mFAC5E,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,KAAK,GAAsC,KAAK,CAAuB,SAAS;8EAAC;IACjF,YAAY,GAAsC,KAAK,CAAuB,SAAS;qFAAC;IACxF,QAAQ,GAA+C,KAAK,CAAC,KAAK,gFACzE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,WAAW,GAClB,KAAK,CAAiC,SAAS;oFAAC;IACzC,SAAS,GAA+C,KAAK,CAAC,KAAK,iFAC1E,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,aAAa,GAA+C,KAAK,CAAC,KAAK,qFAC9E,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IAEO,WAAW,GAClB,MAAM,EAA+B;IAEtB,OAAO,GAAG,YAAY,CAAC;AACtC,QAAA,OAAO,EAAE,OAAO;AACd,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AACf,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,aAAa,EAAE,CAAC,OAAO,KAAI;gBACzB,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;oBAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/B,CAAC;AACD,YAAA,aAAa,EAAE,CAAC,OAAO,KAAI;AACzB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAChC,CAAC;SACF,CAAC;AACH,KAAA,CAAC;AAEO,IAAA,KAAK,GAAuC,IAAI,CAAC,OAAO,CAAC,KAAK;AAC9D,IAAA,GAAG,GAA0B,IAAI,CAAC,OAAO,CAAC,GAAG;AAC7C,IAAA,OAAO,GAAsB,IAAI,CAAC,OAAO,CAAC,OAAO;AACjD,IAAA,IAAI,GAA8B,IAAI,CAAC,OAAO,CAAC,IAAI;AAE5D,IAAA,WAAA,GAAA;AACE,QAAA,SAAS,CAAC;AACR,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE;AACvC,SAAA,CAAC;IACJ;uGA5DW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,y5CAFb,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAE9E,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAK,aAAc,CAAC,EAAE,CAAC;AAC1F,iBAAA;;;MCPY,qBAAqB,CAAA;IACvB,KAAK,GAAoC,KAAK,CAAC,QAAQ;8EAAsB;IAC7E,SAAS,GAA+C,KAAK,CAAC,KAAK,iFAC1E,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,aAAa,GAA+C,KAAK,CAAC,KAAK,qFAC9E,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AACO,IAAA,KAAK,GAAuC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;8EAAC;AAChF,IAAA,GAAG,GAA0B,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE;4EAAC;AAC/D,IAAA,IAAI,GAA8B,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAE9E,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO;IAC7B;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,SAAS,CAAC;AACR,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE;AACvC,SAAA,CAAC;IACJ;uGAvBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,6dAFrB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAEtF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAK,qBAAsB,CAAC,EAAE,CAAC;AAClG,iBAAA;;;MCMY,aAAa,CAAA;IACf,KAAK,GAAwB,KAAK,CAAC,QAAQ;8EAAU;IACrD,QAAQ,GAA+C,KAAK,CAAC,KAAK,gFACzE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IAEe,IAAI,GAAG,sBAAsB,EAAE;IAC/B,UAAU,GAAG,MAAM,CAAC,KAAK;mFAAC;AAC1B,IAAA,SAAS,GAAG,QAAQ,CAAC,MACpC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;kFACjF;AACgB,IAAA,WAAW,GAAyB;QACnD,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,KAAK,EAAE,IAAI,CAAC,SAAS;AACrB,QAAA,WAAW,EAAE,QAAQ,CAAC,MAAK;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ;AACzC,YAAA,OAAO,OAAO,CACZ,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACxD,iBAAC,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAC7D;AACH,QAAA,CAAC,CAAC;KACH;AAED,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ;AAAE,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1D,QAAA,CAAC,CAAC;AACF,QAAA,SAAS,CAAC;AACR,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,KAAK,EAAE,MACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;AAC3B,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;aAC1B,CAAC;AACL,SAAA,CAAC;IACJ;IAEA,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IACzB;uGA1CW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EARb;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;gBAC/B,UAAU,EAAE,CAAC,IAAmB,KAAK,IAAI,CAAC,cAAc,EAAE;gBAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;AACxC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;4BAC/B,UAAU,EAAE,CAAC,IAAmB,KAAK,IAAI,CAAC,cAAc,EAAE;4BAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAK,aAAc,CAAC,CAAC;AACxC,yBAAA;AACF,qBAAA;AACF,iBAAA;;;MCpBY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,0BAA0B,EAAE;AACzC,QAAA,SAAS,CAAC;AACR,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,MACL,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC;AAChC,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;aAC1B,CAAC;AACL,SAAA,CAAC;IACJ;uGAdW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;;;MCWY,oBAAoB,CAAA;IACd,OAAO,GAAG,sBAAsB,EAAE;IAClC,IAAI,GAAG,0BAA0B,EAAE;AACnC,IAAA,QAAQ,GAAG,MAAM,EAAC,WAAoB,EAAC;AACvC,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,IAAA,UAAU,GAAG,EAAE,aAAa,EAAE,IAA0B,EAAE;AACnE,IAAA,IAAI;AAEZ,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;AACpC,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,GAAG,SAAS;gBACrB;YACF;AAEA,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,aAAa;oBAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAU,KAAK,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI;YACzE;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,SAAS,CAAC;YACR,UAAU,EAAE,IAAI,CAAC,UAAqC;AACtD,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,KAAK,EAAE,MACL,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC;AACrC,gBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAC/B,CAAC;AACL,SAAA,CAAC;IACJ;uGAlCW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;;;MCTY,sBAAsB,CAAA;AACjC,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,0BAA0B,EAAE;AACzC,QAAA,SAAS,CAAC;AACR,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC9B,YAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,MACL,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;AAClC,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;aAC1B,CAAC;AACL,SAAA,CAAC;IACJ;uGAdW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wBAAwB;AACnC,iBAAA;;;MCaY,gBAAgB,CAAA;AAC3B,IAAA,OAAO,sBAAsB,CAC3B,UAA4B,EAC5B,OAAgB,EAAA;AAEhB,QAAA,KAAK,OAAO;AACZ,QAAA,OAAO,IAAI;IACb;IAEiB,SAAS,GAAG,sBAAsB,EAAE;AACpC,IAAA,WAAW,GAAG,MAAM,CAAwC,WAAW,CAAC;AACxE,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEzD,IAAA,WAAA,GAAA;QACE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE;AACnE,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;AAC7B,YAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;AACxB,SAAA,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACpD;uGAzBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA;;;MCCY,6BAA6B,CAAA;AACxC,IAAA,OAAO,sBAAsB,CAC3B,UAAyC,EACzC,OAAgB,EAAA;AAEhB,QAAA,KAAK,OAAO;AACZ,QAAA,OAAO,IAAI;IACb;IAEiB,IAAI,GAAG,0BAA0B,EAAE;AACnC,IAAA,WAAW,GAAG,MAAM,CAA4C,WAAW,CAAC;AAC5E,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEzD,IAAA,WAAA,GAAA;QACE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE;YACnE,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACpD;uGAzBW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;;;ACtBD;;AAEG;;;;"}
@@ -103,14 +103,14 @@ class CollapsibleRoot {
103
103
  });
104
104
  }
105
105
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: CollapsibleRoot, isStandalone: true, selector: "[wireCollapsible]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, collapsedHeight: { classPropertyName: "collapsedHeight", publicName: "collapsedHeight", isSignal: true, isRequired: false, transformFunction: null }, collapsedWidth: { classPropertyName: "collapsedWidth", publicName: "collapsedWidth", isSignal: true, isRequired: false, transformFunction: null }, lazyMount: { classPropertyName: "lazyMount", publicName: "lazyMount", isSignal: true, isRequired: false, transformFunction: null }, unmountOnExit: { classPropertyName: "unmountOnExit", publicName: "unmountOnExit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", exitComplete: "exitComplete" }, providers: [{ provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRoot) }], exportAs: ["wireCollapsible"], ngImport: i0 });
106
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: CollapsibleRoot, isStandalone: true, selector: "[collapsibleRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, collapsedHeight: { classPropertyName: "collapsedHeight", publicName: "collapsedHeight", isSignal: true, isRequired: false, transformFunction: null }, collapsedWidth: { classPropertyName: "collapsedWidth", publicName: "collapsedWidth", isSignal: true, isRequired: false, transformFunction: null }, lazyMount: { classPropertyName: "lazyMount", publicName: "lazyMount", isSignal: true, isRequired: false, transformFunction: null }, unmountOnExit: { classPropertyName: "unmountOnExit", publicName: "unmountOnExit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", exitComplete: "exitComplete" }, providers: [{ provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRoot) }], exportAs: ["collapsibleRoot"], ngImport: i0 });
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleRoot, decorators: [{
109
109
  type: Directive,
110
110
  args: [{
111
- selector: "[wireCollapsible]",
111
+ selector: "[collapsibleRoot]",
112
112
  standalone: true,
113
- exportAs: "wireCollapsible",
113
+ exportAs: "collapsibleRoot",
114
114
  providers: [{ provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRoot) }],
115
115
  }]
116
116
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], collapsedHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedHeight", required: false }] }], collapsedWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedWidth", required: false }] }], lazyMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyMount", required: false }] }], unmountOnExit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unmountOnExit", required: false }] }], exitComplete: [{ type: i0.Output, args: ["exitComplete"] }] } });
@@ -137,16 +137,16 @@ class CollapsibleRootProvider {
137
137
  });
138
138
  }
139
139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleRootProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
140
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: CollapsibleRootProvider, isStandalone: true, selector: "[wireCollapsibleRootProvider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
140
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: CollapsibleRootProvider, isStandalone: true, selector: "[collapsibleRootProvider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
141
141
  { provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRootProvider) },
142
- ], exportAs: ["wireCollapsibleRootProvider"], ngImport: i0 });
142
+ ], exportAs: ["collapsibleRootProvider"], ngImport: i0 });
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleRootProvider, decorators: [{
145
145
  type: Directive,
146
146
  args: [{
147
- selector: "[wireCollapsibleRootProvider]",
147
+ selector: "[collapsibleRootProvider]",
148
148
  standalone: true,
149
- exportAs: "wireCollapsibleRootProvider",
149
+ exportAs: "collapsibleRootProvider",
150
150
  providers: [
151
151
  { provide: COLLAPSIBLE_CONTEXT, useExisting: forwardRef(() => CollapsibleRootProvider) },
152
152
  ],
@@ -164,14 +164,14 @@ class CollapsibleTrigger {
164
164
  });
165
165
  }
166
166
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
167
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleTrigger, isStandalone: true, selector: "[wireCollapsibleTrigger]", exportAs: ["wireCollapsibleTrigger"], ngImport: i0 });
167
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleTrigger, isStandalone: true, selector: "[collapsibleTrigger]", exportAs: ["collapsibleTrigger"], ngImport: i0 });
168
168
  }
169
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleTrigger, decorators: [{
170
170
  type: Directive,
171
171
  args: [{
172
- selector: "[wireCollapsibleTrigger]",
172
+ selector: "[collapsibleTrigger]",
173
173
  standalone: true,
174
- exportAs: "wireCollapsibleTrigger",
174
+ exportAs: "collapsibleTrigger",
175
175
  }]
176
176
  }], ctorParameters: () => [] });
177
177
 
@@ -206,14 +206,14 @@ class CollapsibleContent {
206
206
  });
207
207
  }
208
208
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
209
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleContent, isStandalone: true, selector: "[wireCollapsibleContent]", exportAs: ["wireCollapsibleContent"], ngImport: i0 });
209
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleContent, isStandalone: true, selector: "[collapsibleContent]", exportAs: ["collapsibleContent"], ngImport: i0 });
210
210
  }
211
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleContent, decorators: [{
212
212
  type: Directive,
213
213
  args: [{
214
- selector: "[wireCollapsibleContent]",
214
+ selector: "[collapsibleContent]",
215
215
  standalone: true,
216
- exportAs: "wireCollapsibleContent",
216
+ exportAs: "collapsibleContent",
217
217
  }]
218
218
  }], ctorParameters: () => [] });
219
219
 
@@ -228,14 +228,14 @@ class CollapsibleIndicator {
228
228
  });
229
229
  }
230
230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
231
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleIndicator, isStandalone: true, selector: "[wireCollapsibleIndicator]", exportAs: ["wireCollapsibleIndicator"], ngImport: i0 });
231
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: CollapsibleIndicator, isStandalone: true, selector: "[collapsibleIndicator]", exportAs: ["collapsibleIndicator"], ngImport: i0 });
232
232
  }
233
233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CollapsibleIndicator, decorators: [{
234
234
  type: Directive,
235
235
  args: [{
236
- selector: "[wireCollapsibleIndicator]",
236
+ selector: "[collapsibleIndicator]",
237
237
  standalone: true,
238
- exportAs: "wireCollapsibleIndicator",
238
+ exportAs: "collapsibleIndicator",
239
239
  }]
240
240
  }], ctorParameters: () => [] });
241
241
 
@@ -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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"}