ng-primitives 0.99.0 → 0.99.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/accordion/index.d.ts +17 -5
  2. package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
  3. package/fesm2022/ng-primitives-accordion.mjs +1 -1
  4. package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
  5. package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
  6. package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
  7. package/fesm2022/ng-primitives-breadcrumbs.mjs.map +1 -1
  8. package/fesm2022/ng-primitives-button.mjs.map +1 -1
  9. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  10. package/fesm2022/ng-primitives-file-upload.mjs +9 -3
  11. package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
  12. package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
  13. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  14. package/fesm2022/ng-primitives-input.mjs.map +1 -1
  15. package/fesm2022/ng-primitives-menu.mjs +79 -6
  16. package/fesm2022/ng-primitives-menu.mjs.map +1 -1
  17. package/fesm2022/ng-primitives-progress.mjs +23 -6
  18. package/fesm2022/ng-primitives-progress.mjs.map +1 -1
  19. package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
  20. package/fesm2022/ng-primitives-separator.mjs.map +1 -1
  21. package/fesm2022/ng-primitives-slider.mjs +1 -0
  22. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  23. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  24. package/fesm2022/ng-primitives-tabs.mjs +9 -3
  25. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  26. package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
  27. package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
  28. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  29. package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
  30. package/file-upload/index.d.ts +20 -16
  31. package/input/index.d.ts +10 -5
  32. package/menu/index.d.ts +188 -17
  33. package/package.json +1 -1
  34. package/progress/index.d.ts +48 -36
  35. package/slider/index.d.ts +4 -4
  36. package/tabs/index.d.ts +20 -14
@@ -28,20 +28,32 @@ interface NgpAccordionContentProps {
28
28
  */
29
29
  readonly id?: Signal<string>;
30
30
  }
31
- declare const NgpAccordionContentStateToken: _angular_core.InjectionToken<_angular_core.WritableSignal<{}>>;
32
- declare const ngpAccordionContent: <T>({ id }: NgpAccordionContentProps) => {};
31
+ declare const NgpAccordionContentStateToken: _angular_core.InjectionToken<_angular_core.WritableSignal<{
32
+ id: Signal<string>;
33
+ }>>;
34
+ declare const ngpAccordionContent: <T>({ id }: NgpAccordionContentProps) => {
35
+ id: Signal<string>;
36
+ };
33
37
  declare const injectAccordionContentState: {
34
- (): Signal<{}>;
38
+ (): Signal<{
39
+ id: Signal<string>;
40
+ }>;
35
41
  (options: {
36
42
  hoisted: true;
37
43
  optional?: boolean;
38
44
  skipSelf?: boolean;
39
- }): Signal<{} | null>;
45
+ }): Signal<{
46
+ id: Signal<string>;
47
+ } | null>;
40
48
  (options?: {
41
49
  hoisted?: boolean;
42
50
  optional?: boolean;
43
51
  skipSelf?: boolean;
44
- }): Signal<{}> | Signal<{} | null>;
52
+ }): Signal<{
53
+ id: Signal<string>;
54
+ }> | Signal<{
55
+ id: Signal<string>;
56
+ } | null>;
45
57
  };
46
58
  declare const provideAccordionContentState: (opts?: {
47
59
  inherit?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-a11y.mjs","sources":["../../../../packages/ng-primitives/a11y/src/active-descendant/active-descendant.ts","../../../../packages/ng-primitives/a11y/src/visually-hidden/visually-hidden-state.ts","../../../../packages/ng-primitives/a11y/src/visually-hidden/visually-hidden.ts","../../../../packages/ng-primitives/a11y/src/ng-primitives-a11y.ts"],"sourcesContent":["import { computed, ElementRef, Signal, signal } from '@angular/core';\nimport { explicitEffect } from 'ng-primitives/internal';\n\ninterface ActiveDescendantManagerProps<T extends NgpActivatable> {\n /**\n * The disabled state of the active descendant group.\n * @default false\n */\n disabled?: Signal<boolean>;\n /**\n * The items in the active descendant group.\n */\n items: Signal<T[]>;\n /**\n * Whether active descendant should wrap around.\n * @default false\n */\n wrap?: Signal<boolean>;\n /**\n * A callback invoked when the active descendant changes.\n */\n onActiveDescendantChange?: (activeDescendant: T | undefined) => void;\n}\n\nexport interface NgpActivatable {\n /**\n * The id of the item.\n */\n id: Signal<string>;\n /**\n * Whether the item is disabled.\n */\n disabled?: Signal<boolean>;\n /**\n * The element that represents the item.\n */\n elementRef: ElementRef<HTMLElement>;\n}\n\nexport function activeDescendantManager<T extends NgpActivatable>({\n items,\n disabled: _disabled,\n wrap,\n onActiveDescendantChange,\n}: ActiveDescendantManagerProps<T>) {\n const sortedOptions = computed(() =>\n items()\n .slice()\n .sort((a, b) => {\n const aElement = a.elementRef.nativeElement;\n const bElement = b.elementRef.nativeElement;\n return aElement.compareDocumentPosition(bElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1;\n }),\n );\n\n const activeIndex = signal<number>(0);\n const activeItem = computed<T | undefined>(() => sortedOptions()?.[activeIndex()]);\n const disabled = computed(() => _disabled?.() || items().every(item => item.disabled?.()));\n\n // any time the item list changes, check if the active index is still valid\n explicitEffect([sortedOptions], ([items]) => {\n if (activeIndex() >= items.length || activeIndex() < 0) {\n activateByIndex(items.findIndex(item => !item.disabled?.()));\n }\n if (activeIndex() === -1 && items.length > 0) {\n activateByIndex(0);\n }\n if (disabled() || items.length === 0) {\n activateByIndex(-1);\n }\n });\n\n const activeDescendant = computed(() => {\n const item = activeItem();\n\n if (disabled() || !item) {\n return undefined;\n }\n\n return item.id();\n });\n\n function activateByIndex(index: number) {\n activeIndex.set(index);\n onActiveDescendantChange?.(activeItem());\n }\n\n /**\n * Activate an item in the active descendant group.\n * @param item The item to activate.\n */\n const activate = (item: T | undefined) => {\n if (item === undefined) {\n activateByIndex(-1);\n return;\n }\n\n if (disabled() || item.disabled?.()) {\n return;\n }\n\n activateByIndex(sortedOptions().indexOf(item));\n };\n\n /**\n * Activate the first enabled item in the active descendant group.\n */\n const first = () => {\n const item = sortedOptions().findIndex(item => !item.disabled?.());\n\n if (item !== -1) {\n activateByIndex(item);\n }\n };\n\n /**\n * Activate the last enabled item in the active descendant group.\n */\n const last = () => {\n const item = [...sortedOptions()].reverse().findIndex(item => !item.disabled?.());\n\n if (item !== -1) {\n activateByIndex(sortedOptions().length - 1 - item);\n }\n };\n\n const findNextIndex = (\n items: NgpActivatable[],\n currentIndex: number,\n direction: 1 | -1,\n wrap: boolean,\n ): number | undefined => {\n let index = (currentIndex + direction + items.length) % items.length;\n\n while (index !== currentIndex) {\n const item = items[index];\n if (item && !item.disabled?.()) {\n return index;\n }\n index = (index + direction + items.length) % items.length;\n\n if (\n !wrap &&\n ((direction === 1 && index === 0) || (direction === -1 && index === items.length - 1))\n ) {\n break;\n }\n }\n\n return undefined;\n };\n\n /**\n * Activate the next enabled item in the active descendant group.\n */\n const next = () => {\n const items = sortedOptions();\n const nextIndex = findNextIndex(items, activeIndex(), 1, wrap?.() ?? false);\n\n if (nextIndex !== undefined) {\n activateByIndex(nextIndex);\n }\n };\n\n /**\n * Activate the previous enabled item in the active descendant group.\n */\n const previous = () => {\n const items = sortedOptions();\n const prevIndex = findNextIndex(items, activeIndex(), -1, wrap?.() ?? false);\n\n if (prevIndex !== undefined) {\n activateByIndex(prevIndex);\n }\n };\n\n /**\n * Reset the active descendant group, clearing the active index.\n */\n const reset = () => {\n activateByIndex(-1);\n };\n\n return {\n activeDescendant,\n activeItem,\n activate,\n first,\n last,\n next,\n previous,\n reset,\n };\n}\n","import { ChangeDetectorRef, inject, Signal, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { controlled, createPrimitive, styleBinding } from 'ng-primitives/state';\n\n/**\n * The state interface for the VisuallyHidden pattern.\n */\nexport interface NgpVisuallyHiddenState {\n /**\n * Whether the element is hidden.\n */\n readonly hidden: Signal<boolean>;\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void;\n}\n\n/**\n * The props interface for the VisuallyHidden pattern.\n */\nexport interface NgpVisuallyHiddenProps {\n /**\n * Whether the element is hidden. Default is true.\n */\n readonly hidden?: Signal<boolean>;\n}\n\nexport const [\n NgpVisuallyHiddenStateToken,\n ngpVisuallyHidden,\n injectVisuallyHiddenState,\n provideVisuallyHiddenState,\n] = createPrimitive(\n 'NgpVisuallyHidden',\n ({ hidden: _hidden = signal(true) }: NgpVisuallyHiddenProps): NgpVisuallyHiddenState => {\n const element = injectElementRef();\n const hidden = controlled(_hidden);\n const changeDetector = inject(ChangeDetectorRef);\n\n // Apply styles to visually hide the element\n styleBinding(element, 'position', () => (hidden() ? 'absolute' : null));\n styleBinding(element, 'width', () => (hidden() ? '1px' : null));\n styleBinding(element, 'height', () => (hidden() ? '1px' : null));\n styleBinding(element, 'margin', () => (hidden() ? '-1px' : null));\n styleBinding(element, 'padding', () => (hidden() ? '0' : null));\n styleBinding(element, 'overflow', () => (hidden() ? 'hidden' : null));\n styleBinding(element, 'clip', () => (hidden() ? 'rect(0, 0, 0, 0)' : null));\n styleBinding(element, 'white-space', () => (hidden() ? 'nowrap' : null));\n styleBinding(element, 'border', () => (hidden() ? '0' : null));\n styleBinding(element, 'word-wrap', () => (hidden() ? 'normal' : null));\n styleBinding(element, 'outline', () => (hidden() ? '0' : null));\n styleBinding(element, '-webkit-appearance', () => (hidden() ? 'none' : null));\n styleBinding(element, '-moz-appearance', () => (hidden() ? 'none' : null));\n styleBinding(element, 'inset-inline-start', () => (hidden() ? '0' : null));\n\n function setVisibility(visible: boolean): void {\n hidden.set(!visible);\n // If a change-detection cycle might be running, schedule detection asynchronously and exit\n // to avoid re-entrancy. Otherwise fall through to call detectChanges synchronously.\n Promise.resolve().then(() => changeDetector.detectChanges());\n }\n\n return {\n hidden: hidden.asReadonly(),\n setVisibility,\n };\n },\n);\n","import { Directive } from '@angular/core';\nimport { ngpVisuallyHidden, provideVisuallyHiddenState } from './visually-hidden-state';\n\n/**\n * Hide an element visually while keeping it present in the DOM.\n */\n@Directive({\n selector: '[ngpVisuallyHidden]',\n exportAs: 'ngpVisuallyHidden',\n providers: [provideVisuallyHiddenState()],\n})\nexport class NgpVisuallyHidden {\n protected readonly state = ngpVisuallyHidden({});\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void {\n this.state.setVisibility(visible);\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":"ng-primitives-a11y.mjs","sources":["../../../../packages/ng-primitives/a11y/src/active-descendant/active-descendant.ts","../../../../packages/ng-primitives/a11y/src/visually-hidden/visually-hidden-state.ts","../../../../packages/ng-primitives/a11y/src/visually-hidden/visually-hidden.ts","../../../../packages/ng-primitives/a11y/src/ng-primitives-a11y.ts"],"sourcesContent":["import { computed, ElementRef, Signal, signal } from '@angular/core';\nimport { explicitEffect } from 'ng-primitives/internal';\n\ninterface ActiveDescendantManagerProps<T extends NgpActivatable> {\n /**\n * The disabled state of the active descendant group.\n * @default false\n */\n disabled?: Signal<boolean>;\n /**\n * The items in the active descendant group.\n */\n items: Signal<T[]>;\n /**\n * Whether active descendant should wrap around.\n * @default false\n */\n wrap?: Signal<boolean>;\n /**\n * A callback invoked when the active descendant changes.\n */\n onActiveDescendantChange?: (activeDescendant: T | undefined) => void;\n}\n\nexport interface NgpActivatable {\n /**\n * The id of the item.\n */\n id: Signal<string>;\n /**\n * Whether the item is disabled.\n */\n disabled?: Signal<boolean>;\n /**\n * The element that represents the item.\n */\n elementRef: ElementRef<HTMLElement>;\n}\n\nexport function activeDescendantManager<T extends NgpActivatable>({\n items,\n disabled: _disabled,\n wrap,\n onActiveDescendantChange,\n}: ActiveDescendantManagerProps<T>) {\n const sortedOptions = computed(() =>\n items()\n .slice()\n .sort((a, b) => {\n const aElement = a.elementRef.nativeElement;\n const bElement = b.elementRef.nativeElement;\n return aElement.compareDocumentPosition(bElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1;\n }),\n );\n\n const activeIndex = signal<number>(0);\n const activeItem = computed<T | undefined>(() => sortedOptions()?.[activeIndex()]);\n const disabled = computed(() => _disabled?.() || items().every(item => item.disabled?.()));\n\n // any time the item list changes, check if the active index is still valid\n explicitEffect([sortedOptions], ([items]) => {\n if (activeIndex() >= items.length || activeIndex() < 0) {\n activateByIndex(items.findIndex(item => !item.disabled?.()));\n }\n if (activeIndex() === -1 && items.length > 0) {\n activateByIndex(0);\n }\n if (disabled() || items.length === 0) {\n activateByIndex(-1);\n }\n });\n\n const activeDescendant = computed(() => {\n const item = activeItem();\n\n if (disabled() || !item) {\n return undefined;\n }\n\n return item.id();\n });\n\n function activateByIndex(index: number) {\n activeIndex.set(index);\n onActiveDescendantChange?.(activeItem());\n }\n\n /**\n * Activate an item in the active descendant group.\n * @param item The item to activate.\n */\n const activate = (item: T | undefined) => {\n if (item === undefined) {\n activateByIndex(-1);\n return;\n }\n\n if (disabled() || item.disabled?.()) {\n return;\n }\n\n activateByIndex(sortedOptions().indexOf(item));\n };\n\n /**\n * Activate the first enabled item in the active descendant group.\n */\n const first = () => {\n const item = sortedOptions().findIndex(item => !item.disabled?.());\n\n if (item !== -1) {\n activateByIndex(item);\n }\n };\n\n /**\n * Activate the last enabled item in the active descendant group.\n */\n const last = () => {\n const item = [...sortedOptions()].reverse().findIndex(item => !item.disabled?.());\n\n if (item !== -1) {\n activateByIndex(sortedOptions().length - 1 - item);\n }\n };\n\n const findNextIndex = (\n items: NgpActivatable[],\n currentIndex: number,\n direction: 1 | -1,\n wrap: boolean,\n ): number | undefined => {\n let index = (currentIndex + direction + items.length) % items.length;\n\n while (index !== currentIndex) {\n const item = items[index];\n if (item && !item.disabled?.()) {\n return index;\n }\n index = (index + direction + items.length) % items.length;\n\n if (\n !wrap &&\n ((direction === 1 && index === 0) || (direction === -1 && index === items.length - 1))\n ) {\n break;\n }\n }\n\n return undefined;\n };\n\n /**\n * Activate the next enabled item in the active descendant group.\n */\n const next = () => {\n const items = sortedOptions();\n const nextIndex = findNextIndex(items, activeIndex(), 1, wrap?.() ?? false);\n\n if (nextIndex !== undefined) {\n activateByIndex(nextIndex);\n }\n };\n\n /**\n * Activate the previous enabled item in the active descendant group.\n */\n const previous = () => {\n const items = sortedOptions();\n const prevIndex = findNextIndex(items, activeIndex(), -1, wrap?.() ?? false);\n\n if (prevIndex !== undefined) {\n activateByIndex(prevIndex);\n }\n };\n\n /**\n * Reset the active descendant group, clearing the active index.\n */\n const reset = () => {\n activateByIndex(-1);\n };\n\n return {\n activeDescendant,\n activeItem,\n activate,\n first,\n last,\n next,\n previous,\n reset,\n };\n}\n","import { ChangeDetectorRef, inject, Signal, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { controlled, createPrimitive, styleBinding } from 'ng-primitives/state';\n\n/**\n * The state interface for the VisuallyHidden pattern.\n */\nexport interface NgpVisuallyHiddenState {\n /**\n * Whether the element is hidden.\n */\n readonly hidden: Signal<boolean>;\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void;\n}\n\n/**\n * The props interface for the VisuallyHidden pattern.\n */\nexport interface NgpVisuallyHiddenProps {\n /**\n * Whether the element is hidden. Default is true.\n */\n readonly hidden?: Signal<boolean>;\n}\n\nexport const [\n NgpVisuallyHiddenStateToken,\n ngpVisuallyHidden,\n injectVisuallyHiddenState,\n provideVisuallyHiddenState,\n] = createPrimitive(\n 'NgpVisuallyHidden',\n ({ hidden: _hidden = signal(true) }: NgpVisuallyHiddenProps): NgpVisuallyHiddenState => {\n const element = injectElementRef();\n const hidden = controlled(_hidden);\n const changeDetector = inject(ChangeDetectorRef);\n\n // Apply styles to visually hide the element\n styleBinding(element, 'position', () => (hidden() ? 'absolute' : null));\n styleBinding(element, 'width', () => (hidden() ? '1px' : null));\n styleBinding(element, 'height', () => (hidden() ? '1px' : null));\n styleBinding(element, 'margin', () => (hidden() ? '-1px' : null));\n styleBinding(element, 'padding', () => (hidden() ? '0' : null));\n styleBinding(element, 'overflow', () => (hidden() ? 'hidden' : null));\n styleBinding(element, 'clip', () => (hidden() ? 'rect(0, 0, 0, 0)' : null));\n styleBinding(element, 'white-space', () => (hidden() ? 'nowrap' : null));\n styleBinding(element, 'border', () => (hidden() ? '0' : null));\n styleBinding(element, 'word-wrap', () => (hidden() ? 'normal' : null));\n styleBinding(element, 'outline', () => (hidden() ? '0' : null));\n styleBinding(element, '-webkit-appearance', () => (hidden() ? 'none' : null));\n styleBinding(element, '-moz-appearance', () => (hidden() ? 'none' : null));\n styleBinding(element, 'inset-inline-start', () => (hidden() ? '0' : null));\n\n function setVisibility(visible: boolean): void {\n hidden.set(!visible);\n // If a change-detection cycle might be running, schedule detection asynchronously and exit\n // to avoid re-entrancy. Otherwise fall through to call detectChanges synchronously.\n Promise.resolve().then(() => changeDetector.detectChanges());\n }\n\n return {\n hidden: hidden.asReadonly(),\n setVisibility,\n } satisfies NgpVisuallyHiddenState;\n },\n);\n","import { Directive } from '@angular/core';\nimport { ngpVisuallyHidden, provideVisuallyHiddenState } from './visually-hidden-state';\n\n/**\n * Hide an element visually while keeping it present in the DOM.\n */\n@Directive({\n selector: '[ngpVisuallyHidden]',\n exportAs: 'ngpVisuallyHidden',\n providers: [provideVisuallyHiddenState()],\n})\nexport class NgpVisuallyHidden {\n protected readonly state = ngpVisuallyHidden({});\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void {\n this.state.setVisibility(visible);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -158,7 +158,7 @@ const [NgpAccordionContentStateToken, ngpAccordionContent, injectAccordionConten
158
158
  })
159
159
  .pipe(debounceTime(0), safeTakeUntilDestroyed())
160
160
  .subscribe(() => updateDimensions());
161
- return {};
161
+ return { id };
162
162
  });
163
163
 
164
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion/accordion-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.ts","../../../../packages/ng-primitives/accordion/src/config/accordion-config.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.ts","../../../../packages/ng-primitives/accordion/src/ng-primitives-accordion.ts"],"sourcesContent":["import { signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, deprecatedSetter } from 'ng-primitives/state';\n\n/**\n * The state interface for the Accordion pattern.\n */\nexport interface NgpAccordionState<T> {\n /**\n * The value of the accordion.\n */\n readonly value: WritableSignal<T | T[] | null>;\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * The accordion orientation.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Set the value of the accordion.\n */\n setValue(value: T | T[] | null): void;\n /**\n * Set the disabled state of the accordion.\n */\n setDisabled(value: boolean): void;\n /**\n * Set the orientation of the accordion.\n */\n setOrientation(value: NgpOrientation): void;\n /**\n * Whether the specified value is open.\n */\n isOpen(value: T): boolean;\n /**\n * Toggle the specified value.\n */\n toggle(value: T): void;\n}\n\n/**\n * The props interface for the Accordion pattern.\n */\nexport interface NgpAccordionProps<T> {\n /**\n * The type of the accordion.\n */\n readonly type: Signal<NgpAccordionType>;\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible: Signal<boolean>;\n\n /**\n * The value of the accordion.\n */\n readonly value: Signal<T | T[] | null>;\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled?: Signal<boolean>;\n\n /**\n * The accordion orientation.\n */\n readonly orientation: Signal<NgpOrientation>;\n\n /**\n * Callback fired when valueChange is emitted.\n */\n readonly onValueChange?: (value: T | T[] | null) => void;\n}\n\nexport const [NgpAccordionStateToken, ngpAccordion, _injectAccordionState, provideAccordionState] =\n createPrimitive(\n 'NgpAccordion',\n <T>({\n type,\n collapsible,\n value: _value = signal(null),\n disabled: _disabled = signal(false),\n orientation: _orientation = signal('vertical'),\n onValueChange,\n }: NgpAccordionProps<T>): NgpAccordionState<T> => {\n const element = injectElementRef();\n\n // Create controlled signals\n const value = controlled(_value);\n const disabled = controlled(_disabled);\n const orientation = controlled(_orientation);\n\n // Host bindings extracted from directive\n attrBinding(element, 'data-orientation', orientation);\n attrBinding(element, 'data-disabled', disabled);\n\n // Setter methods\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n function setOrientation(value: NgpOrientation): void {\n orientation.set(value);\n }\n\n function setValue(newValue: T | T[] | null): void {\n value.set(newValue);\n }\n\n // Methods extracted from directive\n /**\n * @param value The value to check. @returns Whether the value is open. @internal\n */\n function isOpen(itemValue: T): boolean {\n if (type() === 'multiple') {\n return (value() as T[] | null)?.includes(itemValue) ?? false;\n }\n\n return value() === itemValue;\n }\n\n function toggle(itemValue: T): void {\n const open = isOpen(itemValue);\n\n // if we are in single mode and the itemValue is already open and the accordion is not collapsible, do nothing\n if (type() === 'single' && open && !collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the itemValue\n if (type() === 'single') {\n const newValue = open ? null : itemValue;\n value.set(newValue);\n onValueChange?.(newValue);\n return;\n }\n\n // if we are in multiple mode then toggle the itemValue\n let values = (value() as T[]) ?? [];\n\n if (open) {\n values = values.filter(v => v !== itemValue);\n } else {\n values = [...values, itemValue];\n }\n value.set(values);\n onValueChange?.(values);\n }\n\n return {\n value: deprecatedSetter(value, 'setValue'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setDisabled,\n setOrientation,\n setValue,\n isOpen,\n toggle,\n };\n },\n );\n\nexport type NgpAccordionType = 'single' | 'multiple';\n\nexport function injectAccordionState<T>(): Signal<NgpAccordionState<T>> {\n return _injectAccordionState() as Signal<NgpAccordionState<T>>;\n}\n","import { computed, Signal, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { controlled, createPrimitive, dataBinding, deprecatedSetter } from 'ng-primitives/state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionItemState<T> {\n /**\n * The value of the accordion item.\n */\n readonly value: Signal<T>;\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled: Signal<boolean>;\n /**\n * Whether the accordion item is expanded.\n */\n readonly open: Signal<boolean>;\n /**\n * The trigger id.\n */\n readonly triggerId: Signal<string | undefined>;\n /**\n * The content id.\n */\n readonly contentId: Signal<string | undefined>;\n /**\n * Set the disabled state of the accordion item.\n */\n setDisabled(value: boolean): void;\n /**\n * Set the trigger of the accordion item.\n */\n setTrigger(id: string): void;\n /**\n * Set the content of the accordion item.\n */\n setContent(id: string): void;\n}\n\nexport interface NgpAccordionItemProps<T> {\n /**\n * The value of the accordion item.\n */\n readonly value: Signal<T>;\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [\n NgpAccordionItemStateToken,\n ngpAccordionItem,\n _injectAccordionItemState,\n provideAccordionItemState,\n] = createPrimitive(\n 'NgpAccordionItem',\n <T>({ value, disabled: _disabled = signal(false) }: NgpAccordionItemProps<T>) => {\n const accordion = injectAccordionState<T>();\n const element = injectElementRef();\n\n const disabled = controlled(_disabled);\n\n // Whether the accordion item is expanded.\n const open = computed<boolean>(() => accordion().isOpen(value()));\n\n const trigger = signal<string | undefined>(undefined);\n const content = signal<string | undefined>(undefined);\n\n // Setup host data bindings\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', open);\n dataBinding(element, 'data-disabled', () => disabled() || accordion().disabled());\n\n // Set the disabled state of the accordion item.\n function setDisabled(value: boolean) {\n disabled.set(value);\n }\n\n function setTrigger(id: string) {\n trigger.set(id);\n }\n\n function setContent(id: string) {\n content.set(id);\n }\n\n return {\n value,\n open,\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n triggerId: deprecatedSetter(trigger, 'setTrigger'),\n contentId: deprecatedSetter(content, 'setContent'),\n setDisabled,\n setTrigger,\n setContent,\n };\n },\n);\n\nexport function injectAccordionItemState<T>(): Signal<NgpAccordionItemState<T>> {\n return _injectAccordionItemState() as Signal<NgpAccordionItemState<T>>;\n}\n","import { afterRenderEffect, computed, signal, Signal } from '@angular/core';\nimport { fromMutationObserver, injectDimensions, injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { safeTakeUntilDestroyed, uniqueId } from 'ng-primitives/utils';\nimport { debounceTime } from 'rxjs/operators';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionContentState {\n /**\n * The id of the content region\n */\n readonly id: Signal<string>;\n}\n\nexport interface NgpAccordionContentProps {\n /**\n * The id of the content region\n */\n readonly id?: Signal<string>;\n}\n\nexport const [\n NgpAccordionContentStateToken,\n ngpAccordionContent,\n injectAccordionContentState,\n provideAccordionContentState,\n] = createPrimitive(\n 'NgpAccordionContent',\n <T>({ id = signal(uniqueId('ngp-accordion-content')) }: NgpAccordionContentProps) => {\n const element = injectElementRef();\n const accordion = injectAccordionState<T>();\n const accordionItem = injectAccordionItemState<T>();\n const dimensions = injectDimensions();\n\n const hidden = computed(() =>\n !accordionItem().open() && dimensions().height === 0 ? 'until-found' : null,\n );\n\n // Host bindings\n attrBinding(element, 'role', 'region');\n attrBinding(element, 'id', id);\n attrBinding(element, 'aria-labelledby', accordionItem().triggerId);\n attrBinding(element, 'hidden', hidden);\n\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', accordionItem().open);\n dataBinding(element, 'data-closed', () => !accordionItem().open());\n\n listener(element, 'beforematch', onBeforeMatch);\n\n // Register the content with the accordion item state\n accordionItem().setContent(id());\n\n /**\n * Handle the beforematch event to automatically open the accordion item\n * when the browser's find-in-page functionality tries to reveal hidden content.\n */\n function onBeforeMatch(): void {\n const isDisabled = accordion().disabled() || accordionItem().disabled();\n if (isDisabled) {\n return;\n }\n accordion().toggle(accordionItem().value() as T);\n }\n\n function updateDimensions(): void {\n if (accordionItem().open()) {\n // remove the inline styles to reset them\n element.nativeElement.style.removeProperty('--ngp-accordion-content-width');\n element.nativeElement.style.removeProperty('--ngp-accordion-content-height');\n // set the dimensions based on the content\n element.nativeElement.style.setProperty(\n '--ngp-accordion-content-width',\n `${element.nativeElement.scrollWidth}px`,\n );\n element.nativeElement.style.setProperty(\n '--ngp-accordion-content-height',\n `${element.nativeElement.scrollHeight}px`,\n );\n }\n }\n\n // any time the open state of the accordion item changes, update the dimensions\n afterRenderEffect(() => updateDimensions());\n\n // update dimensions when the content changes\n fromMutationObserver(element.nativeElement, {\n childList: true,\n subtree: true,\n disabled: computed(() => !accordionItem().open()),\n })\n .pipe(debounceTime(0), safeTakeUntilDestroyed())\n .subscribe(() => updateDimensions());\n\n return {};\n },\n);\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpAccordionContent } from './accordion-content-state';\n\n/**\n * Apply the `ngpAccordionContent` directive to an element that represents the content of an accordion item.\n */\n@Directive({\n selector: '[ngpAccordionContent]',\n exportAs: 'ngpAccordionContent',\n})\nexport class NgpAccordionContent<T> {\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n constructor() {\n ngpAccordionContent<T>({ id: this.id });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionState } from '../accordion/accordion-state';\nimport { ngpAccordionItem, provideAccordionItemState } from './accordion-item-state';\n\n/**\n * Apply the `ngpAccordionItem` directive to an element that represents an accordion item.\n */\n@Directive({\n selector: '[ngpAccordionItem]',\n exportAs: 'ngpAccordionItem',\n providers: [provideAccordionItemState()],\n})\nexport class NgpAccordionItem<T> {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordionState<T>();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input<T>(uniqueId('ngp-accordion-item') as T, {\n alias: 'ngpAccordionItemValue',\n });\n\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionItemDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion item state.\n */\n protected readonly state = ngpAccordionItem<T>({\n value: this.value,\n disabled: this.disabled,\n });\n\n /**\n * The open state of the accordion item.\n */\n readonly open = this.state.open;\n}\n","import { HOST_TAG_NAME, inject, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionTriggerState {\n /**\n * The id of the trigger button\n */\n readonly id: Signal<string>;\n /**\n * Toggle the accordion item.\n */\n toggle(): void;\n}\n\nexport interface NgpAccordionTriggerProps {\n /**\n * The id of the trigger button\n */\n readonly id?: Signal<string>;\n}\n\nexport const [\n NgpAccordionTriggerStateToken,\n ngpAccordionTrigger,\n injectAccordionTriggerState,\n provideAccordionTriggerState,\n] = createPrimitive(\n 'NgpAccordionTrigger',\n <T>({ id = signal(uniqueId('ngp-accordion-trigger')) }: NgpAccordionTriggerProps) => {\n const element = injectElementRef();\n const tagName = inject(HOST_TAG_NAME);\n const accordion = injectAccordionState<T>();\n const accordionItem = injectAccordionItemState<T>();\n\n // Host bindings\n attrBinding(element, 'id', id);\n attrBinding(element, 'type', tagName === 'button' ? 'button' : null);\n attrBinding(element, 'aria-controls', accordionItem().contentId);\n attrBinding(element, 'aria-expanded', accordionItem().open);\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', accordionItem().open);\n dataBinding(\n element,\n 'data-disabled',\n () => accordionItem().disabled() || accordion().disabled(),\n );\n\n // register the trigger with the accordion item\n accordionItem().setTrigger(id());\n\n // Methods\n function toggle(): void {\n if (accordionItem().disabled() || accordion().disabled()) {\n return;\n }\n\n accordion().toggle(accordionItem().value()!);\n }\n\n // Event listeners\n listener(element, 'click', toggle);\n\n return { id, toggle };\n },\n);\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpAccordionTrigger } from './accordion-trigger-state';\n\n/**\n * Apply the `ngpAccordionTrigger` directive to an element that represents the trigger for an accordion item, such as a button.\n */\n@Directive({\n selector: '[ngpAccordionTrigger]',\n exportAs: 'ngpAccordionTrigger',\n})\nexport class NgpAccordionTrigger<T> {\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n private readonly state = ngpAccordionTrigger<T>({ id: this.id });\n\n /**\n * Toggle the accordion item.\n */\n toggle(): void {\n this.state.toggle();\n }\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport type { NgpAccordionType } from '../accordion/accordion-state';\n\nexport interface NgpAccordionConfig {\n /**\n * The default type of the accordion\n * @default 'single'\n */\n type: NgpAccordionType;\n /**\n * Whether the accordion is collapsible\n * @default false\n */\n collapsible: boolean;\n /**\n * The default orientation of the accordion\n * @default 'vertical'\n */\n orientation: 'vertical' | 'horizontal';\n}\n\nexport const defaultAccordionConfig: NgpAccordionConfig = {\n type: 'single',\n collapsible: false,\n orientation: 'vertical',\n};\n\nexport const NgpAccordionConfigToken = new InjectionToken<NgpAccordionConfig>(\n 'NgpAccordionConfigToken',\n);\n\n/**\n * Provide the default Accordion configuration\n * @param config The Accordion configuration\n * @returns The provider\n */\nexport function provideAccordionConfig(config: Partial<NgpAccordionConfig>): Provider[] {\n return [\n {\n provide: NgpAccordionConfigToken,\n useValue: { ...defaultAccordionConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Accordion configuration\n * @returns The global Accordion configuration\n */\nexport function injectAccordionConfig(): NgpAccordionConfig {\n return inject(NgpAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectAccordionConfig } from '../config/accordion-config';\nimport { ngpAccordion, NgpAccordionType, provideAccordionState } from './accordion-state';\n\n/**\n * Apply the `ngpAccordion` directive to an element that represents the group of accordion items.\n */\n@Directive({\n selector: '[ngpAccordion]',\n exportAs: 'ngpAccordion',\n providers: [provideAccordionState()],\n})\nexport class NgpAccordion<T> {\n /**\n * Access the global accordion configuration.\n */\n private readonly config = injectAccordionConfig();\n\n /**\n * The type of the accordion.\n */\n readonly type = input<NgpAccordionType>(this.config.type, {\n alias: 'ngpAccordionType',\n });\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible = input<boolean, BooleanInput>(this.config.collapsible, {\n alias: 'ngpAccordionCollapsible',\n transform: booleanAttribute,\n });\n\n /**\n * The value of the accordion.\n */\n readonly value = input<T | T[] | null>(null, {\n alias: 'ngpAccordionValue',\n });\n\n /**\n * Event emitted when the accordion value changes.\n */\n readonly valueChange = output<T | T[] | null>({\n alias: 'ngpAccordionValueChange',\n });\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion orientation.\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpAccordionOrientation',\n });\n\n /**\n * The accordion state.\n */\n protected readonly state = ngpAccordion<T>({\n type: this.type,\n collapsible: this.collapsible,\n value: this.value,\n disabled: this.disabled,\n orientation: this.orientation,\n onValueChange: value => this.valueChange.emit(value),\n });\n\n /**\n * @param value The value to check.\n * @returns Whether the value is open.\n * @internal\n */\n isOpen(value: T): boolean {\n return this.state.isOpen(value);\n }\n\n /**\n * Set the value of the accordion.\n * @param value The value to set.\n */\n setValue(value: T | T[] | null): void {\n this.state.setValue(value);\n }\n\n /**\n * @param value The value to toggle.\n */\n toggle(value: T): void {\n this.state.toggle(value);\n }\n\n /**\n * Set the disabled state of the accordion.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n\n /**\n * Set the orientation of the accordion.\n * @param value The orientation.\n */\n setOrientation(value: NgpOrientation): void {\n this.state.setOrientation(value);\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":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion/accordion-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger-state.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.ts","../../../../packages/ng-primitives/accordion/src/config/accordion-config.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.ts","../../../../packages/ng-primitives/accordion/src/ng-primitives-accordion.ts"],"sourcesContent":["import { signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, deprecatedSetter } from 'ng-primitives/state';\n\n/**\n * The state interface for the Accordion pattern.\n */\nexport interface NgpAccordionState<T> {\n /**\n * The value of the accordion.\n */\n readonly value: WritableSignal<T | T[] | null>;\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * The accordion orientation.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Set the value of the accordion.\n */\n setValue(value: T | T[] | null): void;\n /**\n * Set the disabled state of the accordion.\n */\n setDisabled(value: boolean): void;\n /**\n * Set the orientation of the accordion.\n */\n setOrientation(value: NgpOrientation): void;\n /**\n * Whether the specified value is open.\n */\n isOpen(value: T): boolean;\n /**\n * Toggle the specified value.\n */\n toggle(value: T): void;\n}\n\n/**\n * The props interface for the Accordion pattern.\n */\nexport interface NgpAccordionProps<T> {\n /**\n * The type of the accordion.\n */\n readonly type: Signal<NgpAccordionType>;\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible: Signal<boolean>;\n\n /**\n * The value of the accordion.\n */\n readonly value: Signal<T | T[] | null>;\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled?: Signal<boolean>;\n\n /**\n * The accordion orientation.\n */\n readonly orientation: Signal<NgpOrientation>;\n\n /**\n * Callback fired when valueChange is emitted.\n */\n readonly onValueChange?: (value: T | T[] | null) => void;\n}\n\nexport const [NgpAccordionStateToken, ngpAccordion, _injectAccordionState, provideAccordionState] =\n createPrimitive(\n 'NgpAccordion',\n <T>({\n type,\n collapsible,\n value: _value = signal(null),\n disabled: _disabled = signal(false),\n orientation: _orientation = signal('vertical'),\n onValueChange,\n }: NgpAccordionProps<T>): NgpAccordionState<T> => {\n const element = injectElementRef();\n\n // Create controlled signals\n const value = controlled(_value);\n const disabled = controlled(_disabled);\n const orientation = controlled(_orientation);\n\n // Host bindings extracted from directive\n attrBinding(element, 'data-orientation', orientation);\n attrBinding(element, 'data-disabled', disabled);\n\n // Setter methods\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n function setOrientation(value: NgpOrientation): void {\n orientation.set(value);\n }\n\n function setValue(newValue: T | T[] | null): void {\n value.set(newValue);\n }\n\n // Methods extracted from directive\n /**\n * @param value The value to check. @returns Whether the value is open. @internal\n */\n function isOpen(itemValue: T): boolean {\n if (type() === 'multiple') {\n return (value() as T[] | null)?.includes(itemValue) ?? false;\n }\n\n return value() === itemValue;\n }\n\n function toggle(itemValue: T): void {\n const open = isOpen(itemValue);\n\n // if we are in single mode and the itemValue is already open and the accordion is not collapsible, do nothing\n if (type() === 'single' && open && !collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the itemValue\n if (type() === 'single') {\n const newValue = open ? null : itemValue;\n value.set(newValue);\n onValueChange?.(newValue);\n return;\n }\n\n // if we are in multiple mode then toggle the itemValue\n let values = (value() as T[]) ?? [];\n\n if (open) {\n values = values.filter(v => v !== itemValue);\n } else {\n values = [...values, itemValue];\n }\n value.set(values);\n onValueChange?.(values);\n }\n\n return {\n value: deprecatedSetter(value, 'setValue'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setDisabled,\n setOrientation,\n setValue,\n isOpen,\n toggle,\n } satisfies NgpAccordionState<T>;\n },\n );\n\nexport type NgpAccordionType = 'single' | 'multiple';\n\nexport function injectAccordionState<T>(): Signal<NgpAccordionState<T>> {\n return _injectAccordionState() as Signal<NgpAccordionState<T>>;\n}\n","import { computed, Signal, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { controlled, createPrimitive, dataBinding, deprecatedSetter } from 'ng-primitives/state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionItemState<T> {\n /**\n * The value of the accordion item.\n */\n readonly value: Signal<T>;\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled: Signal<boolean>;\n /**\n * Whether the accordion item is expanded.\n */\n readonly open: Signal<boolean>;\n /**\n * The trigger id.\n */\n readonly triggerId: Signal<string | undefined>;\n /**\n * The content id.\n */\n readonly contentId: Signal<string | undefined>;\n /**\n * Set the disabled state of the accordion item.\n */\n setDisabled(value: boolean): void;\n /**\n * Set the trigger of the accordion item.\n */\n setTrigger(id: string): void;\n /**\n * Set the content of the accordion item.\n */\n setContent(id: string): void;\n}\n\nexport interface NgpAccordionItemProps<T> {\n /**\n * The value of the accordion item.\n */\n readonly value: Signal<T>;\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [\n NgpAccordionItemStateToken,\n ngpAccordionItem,\n _injectAccordionItemState,\n provideAccordionItemState,\n] = createPrimitive(\n 'NgpAccordionItem',\n <T>({ value, disabled: _disabled = signal(false) }: NgpAccordionItemProps<T>) => {\n const accordion = injectAccordionState<T>();\n const element = injectElementRef();\n\n const disabled = controlled(_disabled);\n\n // Whether the accordion item is expanded.\n const open = computed<boolean>(() => accordion().isOpen(value()));\n\n const trigger = signal<string | undefined>(undefined);\n const content = signal<string | undefined>(undefined);\n\n // Setup host data bindings\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', open);\n dataBinding(element, 'data-disabled', () => disabled() || accordion().disabled());\n\n // Set the disabled state of the accordion item.\n function setDisabled(value: boolean) {\n disabled.set(value);\n }\n\n function setTrigger(id: string) {\n trigger.set(id);\n }\n\n function setContent(id: string) {\n content.set(id);\n }\n\n return {\n value,\n open,\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n triggerId: deprecatedSetter(trigger, 'setTrigger'),\n contentId: deprecatedSetter(content, 'setContent'),\n setDisabled,\n setTrigger,\n setContent,\n } satisfies NgpAccordionItemState<T>;\n },\n);\n\nexport function injectAccordionItemState<T>(): Signal<NgpAccordionItemState<T>> {\n return _injectAccordionItemState() as Signal<NgpAccordionItemState<T>>;\n}\n","import { afterRenderEffect, computed, signal, Signal } from '@angular/core';\nimport { fromMutationObserver, injectDimensions, injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { safeTakeUntilDestroyed, uniqueId } from 'ng-primitives/utils';\nimport { debounceTime } from 'rxjs/operators';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionContentState {\n /**\n * The id of the content region\n */\n readonly id: Signal<string>;\n}\n\nexport interface NgpAccordionContentProps {\n /**\n * The id of the content region\n */\n readonly id?: Signal<string>;\n}\n\nexport const [\n NgpAccordionContentStateToken,\n ngpAccordionContent,\n injectAccordionContentState,\n provideAccordionContentState,\n] = createPrimitive(\n 'NgpAccordionContent',\n <T>({ id = signal(uniqueId('ngp-accordion-content')) }: NgpAccordionContentProps) => {\n const element = injectElementRef();\n const accordion = injectAccordionState<T>();\n const accordionItem = injectAccordionItemState<T>();\n const dimensions = injectDimensions();\n\n const hidden = computed(() =>\n !accordionItem().open() && dimensions().height === 0 ? 'until-found' : null,\n );\n\n // Host bindings\n attrBinding(element, 'role', 'region');\n attrBinding(element, 'id', id);\n attrBinding(element, 'aria-labelledby', accordionItem().triggerId);\n attrBinding(element, 'hidden', hidden);\n\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', accordionItem().open);\n dataBinding(element, 'data-closed', () => !accordionItem().open());\n\n listener(element, 'beforematch', onBeforeMatch);\n\n // Register the content with the accordion item state\n accordionItem().setContent(id());\n\n /**\n * Handle the beforematch event to automatically open the accordion item\n * when the browser's find-in-page functionality tries to reveal hidden content.\n */\n function onBeforeMatch(): void {\n const isDisabled = accordion().disabled() || accordionItem().disabled();\n if (isDisabled) {\n return;\n }\n accordion().toggle(accordionItem().value() as T);\n }\n\n function updateDimensions(): void {\n if (accordionItem().open()) {\n // remove the inline styles to reset them\n element.nativeElement.style.removeProperty('--ngp-accordion-content-width');\n element.nativeElement.style.removeProperty('--ngp-accordion-content-height');\n // set the dimensions based on the content\n element.nativeElement.style.setProperty(\n '--ngp-accordion-content-width',\n `${element.nativeElement.scrollWidth}px`,\n );\n element.nativeElement.style.setProperty(\n '--ngp-accordion-content-height',\n `${element.nativeElement.scrollHeight}px`,\n );\n }\n }\n\n // any time the open state of the accordion item changes, update the dimensions\n afterRenderEffect(() => updateDimensions());\n\n // update dimensions when the content changes\n fromMutationObserver(element.nativeElement, {\n childList: true,\n subtree: true,\n disabled: computed(() => !accordionItem().open()),\n })\n .pipe(debounceTime(0), safeTakeUntilDestroyed())\n .subscribe(() => updateDimensions());\n\n return { id } satisfies NgpAccordionContentState;\n },\n);\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpAccordionContent } from './accordion-content-state';\n\n/**\n * Apply the `ngpAccordionContent` directive to an element that represents the content of an accordion item.\n */\n@Directive({\n selector: '[ngpAccordionContent]',\n exportAs: 'ngpAccordionContent',\n})\nexport class NgpAccordionContent<T> {\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n constructor() {\n ngpAccordionContent<T>({ id: this.id });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionState } from '../accordion/accordion-state';\nimport { ngpAccordionItem, provideAccordionItemState } from './accordion-item-state';\n\n/**\n * Apply the `ngpAccordionItem` directive to an element that represents an accordion item.\n */\n@Directive({\n selector: '[ngpAccordionItem]',\n exportAs: 'ngpAccordionItem',\n providers: [provideAccordionItemState()],\n})\nexport class NgpAccordionItem<T> {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordionState<T>();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input<T>(uniqueId('ngp-accordion-item') as T, {\n alias: 'ngpAccordionItemValue',\n });\n\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionItemDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion item state.\n */\n protected readonly state = ngpAccordionItem<T>({\n value: this.value,\n disabled: this.disabled,\n });\n\n /**\n * The open state of the accordion item.\n */\n readonly open = this.state.open;\n}\n","import { HOST_TAG_NAME, inject, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { injectAccordionState } from '../accordion/accordion-state';\n\nexport interface NgpAccordionTriggerState {\n /**\n * The id of the trigger button\n */\n readonly id: Signal<string>;\n /**\n * Toggle the accordion item.\n */\n toggle(): void;\n}\n\nexport interface NgpAccordionTriggerProps {\n /**\n * The id of the trigger button\n */\n readonly id?: Signal<string>;\n}\n\nexport const [\n NgpAccordionTriggerStateToken,\n ngpAccordionTrigger,\n injectAccordionTriggerState,\n provideAccordionTriggerState,\n] = createPrimitive(\n 'NgpAccordionTrigger',\n <T>({ id = signal(uniqueId('ngp-accordion-trigger')) }: NgpAccordionTriggerProps) => {\n const element = injectElementRef();\n const tagName = inject(HOST_TAG_NAME);\n const accordion = injectAccordionState<T>();\n const accordionItem = injectAccordionItemState<T>();\n\n // Host bindings\n attrBinding(element, 'id', id);\n attrBinding(element, 'type', tagName === 'button' ? 'button' : null);\n attrBinding(element, 'aria-controls', accordionItem().contentId);\n attrBinding(element, 'aria-expanded', accordionItem().open);\n dataBinding(element, 'data-orientation', accordion().orientation);\n dataBinding(element, 'data-open', accordionItem().open);\n dataBinding(\n element,\n 'data-disabled',\n () => accordionItem().disabled() || accordion().disabled(),\n );\n\n // register the trigger with the accordion item\n accordionItem().setTrigger(id());\n\n // Methods\n function toggle(): void {\n if (accordionItem().disabled() || accordion().disabled()) {\n return;\n }\n\n accordion().toggle(accordionItem().value()!);\n }\n\n // Event listeners\n listener(element, 'click', toggle);\n\n return { id, toggle } satisfies NgpAccordionTriggerState;\n },\n);\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpAccordionTrigger } from './accordion-trigger-state';\n\n/**\n * Apply the `ngpAccordionTrigger` directive to an element that represents the trigger for an accordion item, such as a button.\n */\n@Directive({\n selector: '[ngpAccordionTrigger]',\n exportAs: 'ngpAccordionTrigger',\n})\nexport class NgpAccordionTrigger<T> {\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n private readonly state = ngpAccordionTrigger<T>({ id: this.id });\n\n /**\n * Toggle the accordion item.\n */\n toggle(): void {\n this.state.toggle();\n }\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport type { NgpAccordionType } from '../accordion/accordion-state';\n\nexport interface NgpAccordionConfig {\n /**\n * The default type of the accordion\n * @default 'single'\n */\n type: NgpAccordionType;\n /**\n * Whether the accordion is collapsible\n * @default false\n */\n collapsible: boolean;\n /**\n * The default orientation of the accordion\n * @default 'vertical'\n */\n orientation: 'vertical' | 'horizontal';\n}\n\nexport const defaultAccordionConfig: NgpAccordionConfig = {\n type: 'single',\n collapsible: false,\n orientation: 'vertical',\n};\n\nexport const NgpAccordionConfigToken = new InjectionToken<NgpAccordionConfig>(\n 'NgpAccordionConfigToken',\n);\n\n/**\n * Provide the default Accordion configuration\n * @param config The Accordion configuration\n * @returns The provider\n */\nexport function provideAccordionConfig(config: Partial<NgpAccordionConfig>): Provider[] {\n return [\n {\n provide: NgpAccordionConfigToken,\n useValue: { ...defaultAccordionConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Accordion configuration\n * @returns The global Accordion configuration\n */\nexport function injectAccordionConfig(): NgpAccordionConfig {\n return inject(NgpAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectAccordionConfig } from '../config/accordion-config';\nimport { ngpAccordion, NgpAccordionType, provideAccordionState } from './accordion-state';\n\n/**\n * Apply the `ngpAccordion` directive to an element that represents the group of accordion items.\n */\n@Directive({\n selector: '[ngpAccordion]',\n exportAs: 'ngpAccordion',\n providers: [provideAccordionState()],\n})\nexport class NgpAccordion<T> {\n /**\n * Access the global accordion configuration.\n */\n private readonly config = injectAccordionConfig();\n\n /**\n * The type of the accordion.\n */\n readonly type = input<NgpAccordionType>(this.config.type, {\n alias: 'ngpAccordionType',\n });\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible = input<boolean, BooleanInput>(this.config.collapsible, {\n alias: 'ngpAccordionCollapsible',\n transform: booleanAttribute,\n });\n\n /**\n * The value of the accordion.\n */\n readonly value = input<T | T[] | null>(null, {\n alias: 'ngpAccordionValue',\n });\n\n /**\n * Event emitted when the accordion value changes.\n */\n readonly valueChange = output<T | T[] | null>({\n alias: 'ngpAccordionValueChange',\n });\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion orientation.\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpAccordionOrientation',\n });\n\n /**\n * The accordion state.\n */\n protected readonly state = ngpAccordion<T>({\n type: this.type,\n collapsible: this.collapsible,\n value: this.value,\n disabled: this.disabled,\n orientation: this.orientation,\n onValueChange: value => this.valueChange.emit(value),\n });\n\n /**\n * @param value The value to check.\n * @returns Whether the value is open.\n * @internal\n */\n isOpen(value: T): boolean {\n return this.state.isOpen(value);\n }\n\n /**\n * Set the value of the accordion.\n * @param value The value to set.\n */\n setValue(value: T | T[] | null): void {\n this.state.setValue(value);\n }\n\n /**\n * @param value The value to toggle.\n */\n toggle(value: T): void {\n this.state.toggle(value);\n }\n\n /**\n * Set the disabled state of the accordion.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n\n /**\n * Set the orientation of the accordion.\n * @param value The orientation.\n */\n setOrientation(value: NgpOrientation): void {\n this.state.setOrientation(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-autofill.mjs","sources":["../../../../packages/ng-primitives/autofill/src/autofill/autofill-state.ts","../../../../packages/ng-primitives/autofill/src/autofill/autofill.ts","../../../../packages/ng-primitives/autofill/src/ng-primitives-autofill.ts"],"sourcesContent":["import { Signal, signal } from '@angular/core';\nimport { injectElementRef, injectStyleInjector } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding, listener } from 'ng-primitives/state';\n\nexport interface NgpAutofillState {\n /**\n * Whether the element is autofilled.\n */\n readonly autofilled: Signal<boolean>;\n}\n\nexport interface NgpAutofillProps {\n /**\n * Callback fired when the autofill state changes.\n */\n onAutofillChange?: (value: boolean) => void;\n}\n\nexport const [NgpAutofillStateToken, ngpAutofill, injectAutofillState, provideAutofillState] =\n createPrimitive('NgpAutofill', ({ onAutofillChange }: NgpAutofillProps) => {\n const element = injectElementRef();\n const styleInjector = injectStyleInjector();\n const autofilled = signal(false);\n\n // Host bindings\n dataBinding(element, 'data-autofill', autofilled);\n\n // Inject the autofill detection styles\n // This technique is based on that used by the Angular CDK\n // https://github.com/angular/components/blob/main/src/cdk/text-field/_index.scss\n styleInjector.add(\n 'ngp-autofill',\n `\n @keyframes ngp-autofill-start { }\n @keyframes ngp-autofill-end {}\n\n [data-autofill]:-webkit-autofill {\n animation: ngp-autofill-start 0s 1ms;\n }\n\n [data-autofill]:not(:-webkit-autofill) {\n animation: ngp-autofill-end 0s 1ms;\n }\n `,\n );\n\n // Listen for animation start events\n listener(element, 'animationstart', (event: AnimationEvent) => {\n if (event.animationName === 'ngp-autofill-start') {\n setAutofilled(true);\n onAutofillChange?.(true);\n }\n\n if (event.animationName === 'ngp-autofill-end') {\n setAutofilled(false);\n onAutofillChange?.(false);\n }\n });\n\n function setAutofilled(value: boolean): void {\n autofilled.set(value);\n }\n\n return {\n autofilled,\n };\n });\n","import { Directive, output } from '@angular/core';\nimport { ngpAutofill, provideAutofillState } from './autofill-state';\n\n/**\n * Apply the `ngpAutofill` directive to an element to detect browser autofill.\n */\n@Directive({\n selector: '[ngpAutofill]',\n exportAs: 'ngpAutofill',\n providers: [provideAutofillState()],\n})\nexport class NgpAutofill {\n /**\n * Event emitted when the autofill state changes.\n */\n readonly autofillChange = output<boolean>({\n alias: 'ngpAutofill',\n });\n\n /**\n * The autofill state.\n */\n private readonly state = ngpAutofill({\n onAutofillChange: value => this.autofillChange.emit(value),\n });\n\n /**\n * Whether the element is autofilled.\n */\n readonly autofilled = this.state.autofilled;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAkBa,CAAC,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,GAC1F,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAoB,KAAI;AACxE,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,aAAa,GAAG,mBAAmB,EAAE;AAC3C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;;AAGhC,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC;;;;AAKjD,IAAA,aAAa,CAAC,GAAG,CACf,cAAc,EACd;;;;;;;;;;;AAWC,MAAA,CAAA,CACF;;IAGD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,KAAqB,KAAI;AAC5D,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB,EAAE;YAChD,aAAa,CAAC,IAAI,CAAC;AACnB,YAAA,gBAAgB,GAAG,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,EAAE;YAC9C,aAAa,CAAC,KAAK,CAAC;AACpB,YAAA,gBAAgB,GAAG,KAAK,CAAC;QAC3B;AACF,IAAA,CAAC,CAAC;IAEF,SAAS,aAAa,CAAC,KAAc,EAAA;AACnC,QAAA,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;IAEA,OAAO;QACL,UAAU;KACX;AACH,CAAC;;AC/DH;;AAEG;MAMU,WAAW,CAAA;AALxB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,CAAU;AACxC,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;AAEF;;AAEG;QACc,IAAA,CAAA,KAAK,GAAG,WAAW,CAAC;AACnC,YAAA,gBAAgB,EAAE,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;AAC5C,IAAA;8GAnBY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAFX,CAAC,oBAAoB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExB,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,CAAC;AACpC,iBAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-autofill.mjs","sources":["../../../../packages/ng-primitives/autofill/src/autofill/autofill-state.ts","../../../../packages/ng-primitives/autofill/src/autofill/autofill.ts","../../../../packages/ng-primitives/autofill/src/ng-primitives-autofill.ts"],"sourcesContent":["import { Signal, signal } from '@angular/core';\nimport { injectElementRef, injectStyleInjector } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding, listener } from 'ng-primitives/state';\n\nexport interface NgpAutofillState {\n /**\n * Whether the element is autofilled.\n */\n readonly autofilled: Signal<boolean>;\n}\n\nexport interface NgpAutofillProps {\n /**\n * Callback fired when the autofill state changes.\n */\n onAutofillChange?: (value: boolean) => void;\n}\n\nexport const [NgpAutofillStateToken, ngpAutofill, injectAutofillState, provideAutofillState] =\n createPrimitive('NgpAutofill', ({ onAutofillChange }: NgpAutofillProps) => {\n const element = injectElementRef();\n const styleInjector = injectStyleInjector();\n const autofilled = signal(false);\n\n // Host bindings\n dataBinding(element, 'data-autofill', autofilled);\n\n // Inject the autofill detection styles\n // This technique is based on that used by the Angular CDK\n // https://github.com/angular/components/blob/main/src/cdk/text-field/_index.scss\n styleInjector.add(\n 'ngp-autofill',\n `\n @keyframes ngp-autofill-start { }\n @keyframes ngp-autofill-end {}\n\n [data-autofill]:-webkit-autofill {\n animation: ngp-autofill-start 0s 1ms;\n }\n\n [data-autofill]:not(:-webkit-autofill) {\n animation: ngp-autofill-end 0s 1ms;\n }\n `,\n );\n\n // Listen for animation start events\n listener(element, 'animationstart', (event: AnimationEvent) => {\n if (event.animationName === 'ngp-autofill-start') {\n setAutofilled(true);\n onAutofillChange?.(true);\n }\n\n if (event.animationName === 'ngp-autofill-end') {\n setAutofilled(false);\n onAutofillChange?.(false);\n }\n });\n\n function setAutofilled(value: boolean): void {\n autofilled.set(value);\n }\n\n return {\n autofilled,\n } satisfies NgpAutofillState;\n });\n","import { Directive, output } from '@angular/core';\nimport { ngpAutofill, provideAutofillState } from './autofill-state';\n\n/**\n * Apply the `ngpAutofill` directive to an element to detect browser autofill.\n */\n@Directive({\n selector: '[ngpAutofill]',\n exportAs: 'ngpAutofill',\n providers: [provideAutofillState()],\n})\nexport class NgpAutofill {\n /**\n * Event emitted when the autofill state changes.\n */\n readonly autofillChange = output<boolean>({\n alias: 'ngpAutofill',\n });\n\n /**\n * The autofill state.\n */\n private readonly state = ngpAutofill({\n onAutofillChange: value => this.autofillChange.emit(value),\n });\n\n /**\n * Whether the element is autofilled.\n */\n readonly autofilled = this.state.autofilled;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAkBa,CAAC,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,GAC1F,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAoB,KAAI;AACxE,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,aAAa,GAAG,mBAAmB,EAAE;AAC3C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;;AAGhC,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC;;;;AAKjD,IAAA,aAAa,CAAC,GAAG,CACf,cAAc,EACd;;;;;;;;;;;AAWC,MAAA,CAAA,CACF;;IAGD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,KAAqB,KAAI;AAC5D,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB,EAAE;YAChD,aAAa,CAAC,IAAI,CAAC;AACnB,YAAA,gBAAgB,GAAG,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,EAAE;YAC9C,aAAa,CAAC,KAAK,CAAC;AACpB,YAAA,gBAAgB,GAAG,KAAK,CAAC;QAC3B;AACF,IAAA,CAAC,CAAC;IAEF,SAAS,aAAa,CAAC,KAAc,EAAA;AACnC,QAAA,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;IAEA,OAAO;QACL,UAAU;KACgB;AAC9B,CAAC;;AC/DH;;AAEG;MAMU,WAAW,CAAA;AALxB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,CAAU;AACxC,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;AAEF;;AAEG;QACc,IAAA,CAAA,KAAK,GAAG,WAAW,CAAC;AACnC,YAAA,gBAAgB,EAAE,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;AAC5C,IAAA;8GAnBY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAFX,CAAC,oBAAoB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExB,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,CAAC;AACpC,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\n\nexport interface NgpAvatarConfig {\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n delay: number;\n}\n\nexport const defaultAvatarConfig: NgpAvatarConfig = {\n delay: 0,\n};\n\nexport const NgpAvatarConfigToken = new InjectionToken<NgpAvatarConfig>('NgpAvatarConfigToken');\n\n/**\n * Provide the avatar config\n * @param config The avatar config\n * @returns The provider\n */\nexport function provideAvatarConfig(config: Partial<NgpAvatarConfig>): Provider[] {\n return [\n {\n provide: NgpAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the avatar config\n * @returns The global avatar config\n */\nexport function injectAvatarConfig(): NgpAvatarConfig {\n return inject(NgpAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","import { signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding } from 'ng-primitives/state';\n\nexport interface NgpAvatarState {\n /**\n * The avatar status.\n */\n status: Signal<NgpAvatarStatus>;\n\n /**\n * Set the avatar status.\n */\n setStatus(status: NgpAvatarStatus): void;\n}\n\nexport interface NgpAvatarProps {}\n\nexport const [NgpAvatarStateToken, ngpAvatar, injectAvatarState, provideAvatarState] =\n createPrimitive('NgpAvatar', ({}: NgpAvatarProps) => {\n const element = injectElementRef();\n const status = signal(NgpAvatarStatus.Idle);\n\n // Host bindings\n dataBinding(element, 'data-status', status);\n\n function setStatus(newStatus: NgpAvatarStatus): void {\n status.set(newStatus);\n }\n\n return {\n status,\n setStatus,\n };\n });\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","import { computed, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, styleBinding } from 'ng-primitives/state';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarFallbackState {}\n\nexport interface NgpAvatarFallbackProps {\n /**\n * The delay before showing the fallback.\n */\n delay?: Signal<number>;\n}\n\nexport const [\n NgpAvatarFallbackStateToken,\n ngpAvatarFallback,\n injectAvatarFallbackState,\n provideAvatarFallbackState,\n] = createPrimitive('NgpAvatarFallback', ({ delay = signal(0) }: NgpAvatarFallbackProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef();\n const disposables = injectDisposables();\n\n const delayElapsed = signal(false);\n const visible = computed(() => delayElapsed() && avatar().status() !== NgpAvatarStatus.Loaded);\n\n disposables.setTimeout(() => delayElapsed.set(true), delay());\n\n styleBinding(element, 'display', () => (visible() ? null : 'none'));\n\n return {};\n});\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { injectAvatarConfig } from '../config/avatar-config';\nimport { ngpAvatarFallback } from './avatar-fallback-state';\n\n/**\n * Apply the `ngpAvatarFallback` directive to an element that represents the user in the absence of an image. This is typically the user's initials.\n */\n@Directive({\n selector: '[ngpAvatarFallback]',\n exportAs: 'ngpAvatarFallback',\n})\nexport class NgpAvatarFallback {\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n readonly delay = input<number, NumberInput>(this.config.delay, {\n alias: 'ngpAvatarFallbackDelay',\n transform: numberAttribute,\n });\n\n constructor() {\n ngpAvatarFallback({ delay: this.delay });\n }\n}\n","import { ngpVisuallyHidden } from 'ng-primitives/a11y';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, listener } from 'ng-primitives/state';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarImageState {}\n\nexport interface NgpAvatarImageProps {}\n\nexport const [\n NgpAvatarImageStateToken,\n ngpAvatarImage,\n injectAvatarImageState,\n provideAvatarImageState,\n] = createPrimitive('NgpAvatarImage', ({}: NgpAvatarImageProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef<HTMLImageElement>();\n const visuallyHidden = ngpVisuallyHidden({});\n\n // initially mark the avatar as loading\n setStatus(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!element.nativeElement.src) {\n setStatus(NgpAvatarStatus.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (element.nativeElement.complete) {\n setStatus(NgpAvatarStatus.Loaded);\n }\n\n // host listeners\n listener(element, 'load', () => setStatus(NgpAvatarStatus.Loaded));\n listener(element, 'error', () => setStatus(NgpAvatarStatus.Error));\n\n function setStatus(state: NgpAvatarStatus) {\n avatar().setStatus(state);\n visuallyHidden.setVisibility(state === NgpAvatarStatus.Loaded);\n }\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpAvatarImage } from './avatar-image-state';\n\n/**\n * Apply the `ngpAvatarImage` directive to an element that represents the avatar image. This would typically be an `img` element or a `div` with a background image.\n */\n@Directive({\n selector: 'img[ngpAvatarImage]',\n exportAs: 'ngpAvatarImage',\n})\nexport class NgpAvatarImage {\n constructor() {\n ngpAvatarImage({});\n }\n}\n","import { Directive } from '@angular/core';\nimport { ngpAvatar, NgpAvatarStatus, provideAvatarState } from './avatar-state';\n\n/**\n * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.\n */\n@Directive({\n selector: '[ngpAvatar]',\n exportAs: 'ngpAvatar',\n providers: [provideAvatarState()],\n})\nexport class NgpAvatar {\n /**\n * The avatar state.\n */\n private readonly state = ngpAvatar({});\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.state.setStatus(status);\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":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\n\nexport interface NgpAvatarConfig {\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n delay: number;\n}\n\nexport const defaultAvatarConfig: NgpAvatarConfig = {\n delay: 0,\n};\n\nexport const NgpAvatarConfigToken = new InjectionToken<NgpAvatarConfig>('NgpAvatarConfigToken');\n\n/**\n * Provide the avatar config\n * @param config The avatar config\n * @returns The provider\n */\nexport function provideAvatarConfig(config: Partial<NgpAvatarConfig>): Provider[] {\n return [\n {\n provide: NgpAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the avatar config\n * @returns The global avatar config\n */\nexport function injectAvatarConfig(): NgpAvatarConfig {\n return inject(NgpAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","import { signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding } from 'ng-primitives/state';\n\nexport interface NgpAvatarState {\n /**\n * The avatar status.\n */\n status: Signal<NgpAvatarStatus>;\n\n /**\n * Set the avatar status.\n */\n setStatus(status: NgpAvatarStatus): void;\n}\n\nexport interface NgpAvatarProps {}\n\nexport const [NgpAvatarStateToken, ngpAvatar, injectAvatarState, provideAvatarState] =\n createPrimitive('NgpAvatar', ({}: NgpAvatarProps) => {\n const element = injectElementRef();\n const status = signal(NgpAvatarStatus.Idle);\n\n // Host bindings\n dataBinding(element, 'data-status', status);\n\n function setStatus(newStatus: NgpAvatarStatus): void {\n status.set(newStatus);\n }\n\n return {\n status,\n setStatus,\n } satisfies NgpAvatarState;\n });\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","import { computed, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, styleBinding } from 'ng-primitives/state';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarFallbackState {}\n\nexport interface NgpAvatarFallbackProps {\n /**\n * The delay before showing the fallback.\n */\n delay?: Signal<number>;\n}\n\nexport const [\n NgpAvatarFallbackStateToken,\n ngpAvatarFallback,\n injectAvatarFallbackState,\n provideAvatarFallbackState,\n] = createPrimitive('NgpAvatarFallback', ({ delay = signal(0) }: NgpAvatarFallbackProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef();\n const disposables = injectDisposables();\n\n const delayElapsed = signal(false);\n const visible = computed(() => delayElapsed() && avatar().status() !== NgpAvatarStatus.Loaded);\n\n disposables.setTimeout(() => delayElapsed.set(true), delay());\n\n styleBinding(element, 'display', () => (visible() ? null : 'none'));\n\n return {} satisfies NgpAvatarFallbackState;\n});\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { injectAvatarConfig } from '../config/avatar-config';\nimport { ngpAvatarFallback } from './avatar-fallback-state';\n\n/**\n * Apply the `ngpAvatarFallback` directive to an element that represents the user in the absence of an image. This is typically the user's initials.\n */\n@Directive({\n selector: '[ngpAvatarFallback]',\n exportAs: 'ngpAvatarFallback',\n})\nexport class NgpAvatarFallback {\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n readonly delay = input<number, NumberInput>(this.config.delay, {\n alias: 'ngpAvatarFallbackDelay',\n transform: numberAttribute,\n });\n\n constructor() {\n ngpAvatarFallback({ delay: this.delay });\n }\n}\n","import { ngpVisuallyHidden } from 'ng-primitives/a11y';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, listener } from 'ng-primitives/state';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarImageState {}\n\nexport interface NgpAvatarImageProps {}\n\nexport const [\n NgpAvatarImageStateToken,\n ngpAvatarImage,\n injectAvatarImageState,\n provideAvatarImageState,\n] = createPrimitive('NgpAvatarImage', ({}: NgpAvatarImageProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef<HTMLImageElement>();\n const visuallyHidden = ngpVisuallyHidden({});\n\n // initially mark the avatar as loading\n setStatus(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!element.nativeElement.src) {\n setStatus(NgpAvatarStatus.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (element.nativeElement.complete) {\n setStatus(NgpAvatarStatus.Loaded);\n }\n\n // host listeners\n listener(element, 'load', () => setStatus(NgpAvatarStatus.Loaded));\n listener(element, 'error', () => setStatus(NgpAvatarStatus.Error));\n\n function setStatus(state: NgpAvatarStatus) {\n avatar().setStatus(state);\n visuallyHidden.setVisibility(state === NgpAvatarStatus.Loaded);\n }\n\n return {} satisfies NgpAvatarImageState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpAvatarImage } from './avatar-image-state';\n\n/**\n * Apply the `ngpAvatarImage` directive to an element that represents the avatar image. This would typically be an `img` element or a `div` with a background image.\n */\n@Directive({\n selector: 'img[ngpAvatarImage]',\n exportAs: 'ngpAvatarImage',\n})\nexport class NgpAvatarImage {\n constructor() {\n ngpAvatarImage({});\n }\n}\n","import { Directive } from '@angular/core';\nimport { ngpAvatar, NgpAvatarStatus, provideAvatarState } from './avatar-state';\n\n/**\n * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.\n */\n@Directive({\n selector: '[ngpAvatar]',\n exportAs: 'ngpAvatar',\n providers: [provideAvatarState()],\n})\nexport class NgpAvatar {\n /**\n * The avatar state.\n */\n private readonly state = ngpAvatar({});\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.state.setStatus(status);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-breadcrumbs.mjs","sources":["../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-ellipsis/breadcrumb-ellipsis-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-ellipsis/breadcrumb-ellipsis.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-item/breadcrumb-item-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-item/breadcrumb-item.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-link/breadcrumb-link-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-link/breadcrumb-link.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-list/breadcrumb-list-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-list/breadcrumb-list.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-page/breadcrumb-page-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-page/breadcrumb-page.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-separator/breadcrumb-separator-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-separator/breadcrumb-separator.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumbs/breadcrumbs-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumbs/breadcrumbs.ts","../../../../packages/ng-primitives/breadcrumbs/src/ng-primitives-breadcrumbs.ts"],"sourcesContent":["import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbEllipsisState {}\n\nexport interface NgpBreadcrumbEllipsisProps {}\n\nexport const [\n NgpBreadcrumbEllipsisStateToken,\n ngpBreadcrumbEllipsis,\n injectBreadcrumbEllipsisState,\n provideBreadcrumbEllipsisState,\n] = createPrimitive('NgpBreadcrumbEllipsis', ({}: NgpBreadcrumbEllipsisProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'presentation');\n attrBinding(element, 'aria-hidden', 'true');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbEllipsis, provideBreadcrumbEllipsisState } from './breadcrumb-ellipsis-state';\n\n/**\n * Apply `ngpBreadcrumbEllipsis` to elements that represent collapsed breadcrumb items.\n */\n@Directive({\n selector: '[ngpBreadcrumbEllipsis]',\n exportAs: 'ngpBreadcrumbEllipsis',\n providers: [provideBreadcrumbEllipsisState()],\n})\nexport class NgpBreadcrumbEllipsis {\n constructor() {\n ngpBreadcrumbEllipsis({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbItemState {}\n\nexport interface NgpBreadcrumbItemProps {}\n\nexport const [\n NgpBreadcrumbItemStateToken,\n ngpBreadcrumbItem,\n injectBreadcrumbItemState,\n provideBreadcrumbItemState,\n] = createPrimitive('NgpBreadcrumbItem', ({}: NgpBreadcrumbItemProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'listitem');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbItem, provideBreadcrumbItemState } from './breadcrumb-item-state';\n\n/**\n * Apply `ngpBreadcrumbItem` to each list item in the breadcrumb trail.\n */\n@Directive({\n selector: '[ngpBreadcrumbItem]',\n exportAs: 'ngpBreadcrumbItem',\n providers: [provideBreadcrumbItemState()],\n})\nexport class NgpBreadcrumbItem {\n constructor() {\n ngpBreadcrumbItem({});\n }\n}\n","import { ngpInteractions } from 'ng-primitives/interactions';\nimport { createPrimitive } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbLinkState {}\n\nexport interface NgpBreadcrumbLinkProps {}\n\nexport const [\n NgpBreadcrumbLinkStateToken,\n ngpBreadcrumbLink,\n injectBreadcrumbLinkState,\n provideBreadcrumbLinkState,\n] = createPrimitive('NgpBreadcrumbLink', ({}: NgpBreadcrumbLinkProps) => {\n // Set up interactions for hover, press, and focus-visible\n ngpInteractions({ hover: true, press: true, focusVisible: true });\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbLink, provideBreadcrumbLinkState } from './breadcrumb-link-state';\n\n/**\n * Apply `ngpBreadcrumbLink` to anchors or buttons that navigate to a breadcrumb destination.\n */\n@Directive({\n selector: '[ngpBreadcrumbLink]',\n exportAs: 'ngpBreadcrumbLink',\n providers: [provideBreadcrumbLinkState()],\n})\nexport class NgpBreadcrumbLink {\n constructor() {\n ngpBreadcrumbLink({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbListState {}\n\nexport interface NgpBreadcrumbListProps {}\n\nexport const [\n NgpBreadcrumbListStateToken,\n ngpBreadcrumbList,\n injectBreadcrumbListState,\n provideBreadcrumbListState,\n] = createPrimitive('NgpBreadcrumbList', ({}: NgpBreadcrumbListProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'list');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbList, provideBreadcrumbListState } from './breadcrumb-list-state';\n\n/**\n * Apply `ngpBreadcrumbList` to the ordered list that groups breadcrumb items.\n */\n@Directive({\n selector: '[ngpBreadcrumbList]',\n exportAs: 'ngpBreadcrumbList',\n providers: [provideBreadcrumbListState()],\n})\nexport class NgpBreadcrumbList {\n constructor() {\n ngpBreadcrumbList({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbPageState {}\n\nexport interface NgpBreadcrumbPageProps {}\n\nexport const [\n NgpBreadcrumbPageStateToken,\n ngpBreadcrumbPage,\n injectBreadcrumbPageState,\n provideBreadcrumbPageState,\n] = createPrimitive('NgpBreadcrumbPage', ({}: NgpBreadcrumbPageProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'aria-current', 'page');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbPage, provideBreadcrumbPageState } from './breadcrumb-page-state';\n\n/**\n * Apply `ngpBreadcrumbPage` to non-link content that represents the active page.\n */\n@Directive({\n selector: '[ngpBreadcrumbPage]',\n exportAs: 'ngpBreadcrumbPage',\n providers: [provideBreadcrumbPageState()],\n})\nexport class NgpBreadcrumbPage {\n constructor() {\n ngpBreadcrumbPage({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbSeparatorState {}\n\nexport interface NgpBreadcrumbSeparatorProps {}\n\nexport const [\n NgpBreadcrumbSeparatorStateToken,\n ngpBreadcrumbSeparator,\n injectBreadcrumbSeparatorState,\n provideBreadcrumbSeparatorState,\n] = createPrimitive('NgpBreadcrumbSeparator', ({}: NgpBreadcrumbSeparatorProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'presentation');\n attrBinding(element, 'aria-hidden', 'true');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport {\n ngpBreadcrumbSeparator,\n provideBreadcrumbSeparatorState,\n} from './breadcrumb-separator-state';\n\n/**\n * Apply `ngpBreadcrumbSeparator` between breadcrumb items to render a visual divider.\n */\n@Directive({\n selector: '[ngpBreadcrumbSeparator]',\n exportAs: 'ngpBreadcrumbSeparator',\n providers: [provideBreadcrumbSeparatorState()],\n})\nexport class NgpBreadcrumbSeparator {\n constructor() {\n ngpBreadcrumbSeparator({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbsState {}\n\nexport interface NgpBreadcrumbsProps {}\n\nexport const [\n NgpBreadcrumbsStateToken,\n ngpBreadcrumbs,\n injectBreadcrumbsState,\n provideBreadcrumbsState,\n] = createPrimitive('NgpBreadcrumbs', ({}: NgpBreadcrumbsProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'navigation');\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbs, provideBreadcrumbsState } from './breadcrumbs-state';\n\n/**\n * Apply `ngpBreadcrumbs` to the navigation element that wraps the breadcrumb trail.\n */\n@Directive({\n selector: '[ngpBreadcrumbs]',\n exportAs: 'ngpBreadcrumbs',\n providers: [provideBreadcrumbsState()],\n})\nexport class NgpBreadcrumbs {\n constructor() {\n ngpBreadcrumbs({});\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":"ng-primitives-breadcrumbs.mjs","sources":["../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-ellipsis/breadcrumb-ellipsis-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-ellipsis/breadcrumb-ellipsis.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-item/breadcrumb-item-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-item/breadcrumb-item.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-link/breadcrumb-link-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-link/breadcrumb-link.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-list/breadcrumb-list-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-list/breadcrumb-list.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-page/breadcrumb-page-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-page/breadcrumb-page.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-separator/breadcrumb-separator-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumb-separator/breadcrumb-separator.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumbs/breadcrumbs-state.ts","../../../../packages/ng-primitives/breadcrumbs/src/breadcrumbs/breadcrumbs.ts","../../../../packages/ng-primitives/breadcrumbs/src/ng-primitives-breadcrumbs.ts"],"sourcesContent":["import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbEllipsisState {}\n\nexport interface NgpBreadcrumbEllipsisProps {}\n\nexport const [\n NgpBreadcrumbEllipsisStateToken,\n ngpBreadcrumbEllipsis,\n injectBreadcrumbEllipsisState,\n provideBreadcrumbEllipsisState,\n] = createPrimitive('NgpBreadcrumbEllipsis', ({}: NgpBreadcrumbEllipsisProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'presentation');\n attrBinding(element, 'aria-hidden', 'true');\n\n return {} satisfies NgpBreadcrumbEllipsisState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbEllipsis, provideBreadcrumbEllipsisState } from './breadcrumb-ellipsis-state';\n\n/**\n * Apply `ngpBreadcrumbEllipsis` to elements that represent collapsed breadcrumb items.\n */\n@Directive({\n selector: '[ngpBreadcrumbEllipsis]',\n exportAs: 'ngpBreadcrumbEllipsis',\n providers: [provideBreadcrumbEllipsisState()],\n})\nexport class NgpBreadcrumbEllipsis {\n constructor() {\n ngpBreadcrumbEllipsis({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbItemState {}\n\nexport interface NgpBreadcrumbItemProps {}\n\nexport const [\n NgpBreadcrumbItemStateToken,\n ngpBreadcrumbItem,\n injectBreadcrumbItemState,\n provideBreadcrumbItemState,\n] = createPrimitive('NgpBreadcrumbItem', ({}: NgpBreadcrumbItemProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'listitem');\n\n return {} satisfies NgpBreadcrumbItemState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbItem, provideBreadcrumbItemState } from './breadcrumb-item-state';\n\n/**\n * Apply `ngpBreadcrumbItem` to each list item in the breadcrumb trail.\n */\n@Directive({\n selector: '[ngpBreadcrumbItem]',\n exportAs: 'ngpBreadcrumbItem',\n providers: [provideBreadcrumbItemState()],\n})\nexport class NgpBreadcrumbItem {\n constructor() {\n ngpBreadcrumbItem({});\n }\n}\n","import { ngpInteractions } from 'ng-primitives/interactions';\nimport { createPrimitive } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbLinkState {}\n\nexport interface NgpBreadcrumbLinkProps {}\n\nexport const [\n NgpBreadcrumbLinkStateToken,\n ngpBreadcrumbLink,\n injectBreadcrumbLinkState,\n provideBreadcrumbLinkState,\n] = createPrimitive('NgpBreadcrumbLink', ({}: NgpBreadcrumbLinkProps) => {\n // Set up interactions for hover, press, and focus-visible\n ngpInteractions({ hover: true, press: true, focusVisible: true });\n\n return {} satisfies NgpBreadcrumbLinkState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbLink, provideBreadcrumbLinkState } from './breadcrumb-link-state';\n\n/**\n * Apply `ngpBreadcrumbLink` to anchors or buttons that navigate to a breadcrumb destination.\n */\n@Directive({\n selector: '[ngpBreadcrumbLink]',\n exportAs: 'ngpBreadcrumbLink',\n providers: [provideBreadcrumbLinkState()],\n})\nexport class NgpBreadcrumbLink {\n constructor() {\n ngpBreadcrumbLink({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbListState {}\n\nexport interface NgpBreadcrumbListProps {}\n\nexport const [\n NgpBreadcrumbListStateToken,\n ngpBreadcrumbList,\n injectBreadcrumbListState,\n provideBreadcrumbListState,\n] = createPrimitive('NgpBreadcrumbList', ({}: NgpBreadcrumbListProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'list');\n\n return {} satisfies NgpBreadcrumbListState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbList, provideBreadcrumbListState } from './breadcrumb-list-state';\n\n/**\n * Apply `ngpBreadcrumbList` to the ordered list that groups breadcrumb items.\n */\n@Directive({\n selector: '[ngpBreadcrumbList]',\n exportAs: 'ngpBreadcrumbList',\n providers: [provideBreadcrumbListState()],\n})\nexport class NgpBreadcrumbList {\n constructor() {\n ngpBreadcrumbList({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbPageState {}\n\nexport interface NgpBreadcrumbPageProps {}\n\nexport const [\n NgpBreadcrumbPageStateToken,\n ngpBreadcrumbPage,\n injectBreadcrumbPageState,\n provideBreadcrumbPageState,\n] = createPrimitive('NgpBreadcrumbPage', ({}: NgpBreadcrumbPageProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'aria-current', 'page');\n\n return {} satisfies NgpBreadcrumbPageState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbPage, provideBreadcrumbPageState } from './breadcrumb-page-state';\n\n/**\n * Apply `ngpBreadcrumbPage` to non-link content that represents the active page.\n */\n@Directive({\n selector: '[ngpBreadcrumbPage]',\n exportAs: 'ngpBreadcrumbPage',\n providers: [provideBreadcrumbPageState()],\n})\nexport class NgpBreadcrumbPage {\n constructor() {\n ngpBreadcrumbPage({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbSeparatorState {}\n\nexport interface NgpBreadcrumbSeparatorProps {}\n\nexport const [\n NgpBreadcrumbSeparatorStateToken,\n ngpBreadcrumbSeparator,\n injectBreadcrumbSeparatorState,\n provideBreadcrumbSeparatorState,\n] = createPrimitive('NgpBreadcrumbSeparator', ({}: NgpBreadcrumbSeparatorProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'presentation');\n attrBinding(element, 'aria-hidden', 'true');\n\n return {} satisfies NgpBreadcrumbSeparatorState;\n});\n","import { Directive } from '@angular/core';\nimport {\n ngpBreadcrumbSeparator,\n provideBreadcrumbSeparatorState,\n} from './breadcrumb-separator-state';\n\n/**\n * Apply `ngpBreadcrumbSeparator` between breadcrumb items to render a visual divider.\n */\n@Directive({\n selector: '[ngpBreadcrumbSeparator]',\n exportAs: 'ngpBreadcrumbSeparator',\n providers: [provideBreadcrumbSeparatorState()],\n})\nexport class NgpBreadcrumbSeparator {\n constructor() {\n ngpBreadcrumbSeparator({});\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding } from 'ng-primitives/state';\n\nexport interface NgpBreadcrumbsState {}\n\nexport interface NgpBreadcrumbsProps {}\n\nexport const [\n NgpBreadcrumbsStateToken,\n ngpBreadcrumbs,\n injectBreadcrumbsState,\n provideBreadcrumbsState,\n] = createPrimitive('NgpBreadcrumbs', ({}: NgpBreadcrumbsProps) => {\n const element = injectElementRef();\n\n // Host bindings\n attrBinding(element, 'role', 'navigation');\n\n return {} satisfies NgpBreadcrumbsState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpBreadcrumbs, provideBreadcrumbsState } from './breadcrumbs-state';\n\n/**\n * Apply `ngpBreadcrumbs` to the navigation element that wraps the breadcrumb trail.\n */\n@Directive({\n selector: '[ngpBreadcrumbs]',\n exportAs: 'ngpBreadcrumbs',\n providers: [provideBreadcrumbsState()],\n})\nexport class NgpBreadcrumbs {\n constructor() {\n ngpBreadcrumbs({});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-button.mjs","sources":["../../../../packages/ng-primitives/button/src/button/button-state.ts","../../../../packages/ng-primitives/button/src/button/button.ts","../../../../packages/ng-primitives/button/src/ng-primitives-button.ts"],"sourcesContent":["import { signal, Signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, dataBinding } from 'ng-primitives/state';\n\nexport interface NgpButtonState {\n /**\n * Whether the button is disabled.\n */\n readonly disabled: Signal<boolean>;\n\n /**\n * Set the disabled state of the button.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void;\n}\n\nexport interface NgpButtonProps {\n /**\n * Whether the button is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [NgpButtonStateToken, ngpButton, injectButtonState, provideButtonState] =\n createPrimitive(\n 'NgpButton',\n ({ disabled: _disabled = signal(false) }: NgpButtonProps): NgpButtonState => {\n const element = injectElementRef();\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n const disabled = controlled(_disabled);\n\n // Setup interactions (hover, press, focus-visible)\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n\n // Setup host attribute bindings\n dataBinding(element, 'data-disabled', disabled);\n\n // Add the disabled attribute if it's a button element\n if (isButton) {\n attrBinding(element, 'disabled', () => (disabled() ? '' : null));\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n disabled: disabled.asReadonly(),\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { ngpButton, provideButtonState } from './button-state';\n\n@Directive({\n selector: '[ngpButton]',\n exportAs: 'ngpButton',\n providers: [provideButtonState({ inherit: false })],\n})\nexport class NgpButton {\n /**\n * Whether the button is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The button state.\n */\n protected readonly state = ngpButton({ disabled: this.disabled });\n\n /**\n * Set the disabled state of the button.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAyBO,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CACb,WAAW,EACX,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAkB,KAAoB;AAC1E,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AACzE,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;;AAGtC,IAAA,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;AAG3E,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;;IAG/C,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB;IAEA,OAAO;AACL,QAAA,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE;QAC/B,WAAW;KACZ;AACH,CAAC;;MC3CQ,SAAS,CAAA;AALtB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,4CACpD,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAD2B;AACtD,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACgB,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AASlE,IAAA;AAPC;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;IAC/B;8GAnBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,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,EAFT,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExC,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,iBAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-button.mjs","sources":["../../../../packages/ng-primitives/button/src/button/button-state.ts","../../../../packages/ng-primitives/button/src/button/button.ts","../../../../packages/ng-primitives/button/src/ng-primitives-button.ts"],"sourcesContent":["import { signal, Signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, dataBinding } from 'ng-primitives/state';\n\nexport interface NgpButtonState {\n /**\n * Whether the button is disabled.\n */\n readonly disabled: Signal<boolean>;\n\n /**\n * Set the disabled state of the button.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void;\n}\n\nexport interface NgpButtonProps {\n /**\n * Whether the button is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [NgpButtonStateToken, ngpButton, injectButtonState, provideButtonState] =\n createPrimitive(\n 'NgpButton',\n ({ disabled: _disabled = signal(false) }: NgpButtonProps): NgpButtonState => {\n const element = injectElementRef();\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n const disabled = controlled(_disabled);\n\n // Setup interactions (hover, press, focus-visible)\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n\n // Setup host attribute bindings\n dataBinding(element, 'data-disabled', disabled);\n\n // Add the disabled attribute if it's a button element\n if (isButton) {\n attrBinding(element, 'disabled', () => (disabled() ? '' : null));\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n disabled: disabled.asReadonly(),\n setDisabled,\n } satisfies NgpButtonState;\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { ngpButton, provideButtonState } from './button-state';\n\n@Directive({\n selector: '[ngpButton]',\n exportAs: 'ngpButton',\n providers: [provideButtonState({ inherit: false })],\n})\nexport class NgpButton {\n /**\n * Whether the button is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The button state.\n */\n protected readonly state = ngpButton({ disabled: this.disabled });\n\n /**\n * Set the disabled state of the button.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAyBO,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CACb,WAAW,EACX,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAkB,KAAoB;AAC1E,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AACzE,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;;AAGtC,IAAA,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;AAG3E,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;;IAG/C,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB;IAEA,OAAO;AACL,QAAA,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE;QAC/B,WAAW;KACa;AAC5B,CAAC;;MC3CQ,SAAS,CAAA;AALtB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,4CACpD,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAD2B;AACtD,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACgB,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AASlE,IAAA;AAPC;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;IAC/B;8GAnBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,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,EAFT,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExC,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = emitter<boolean>();\n const indeterminateChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n indeterminateChange: indeterminateChange.asObservable(),\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void {\n this.state.setChecked(value);\n }\n\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void {\n this.state.setIndeterminate(value);\n }\n\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\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":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = emitter<boolean>();\n const indeterminateChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n indeterminateChange: indeterminateChange.asObservable(),\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n } satisfies NgpCheckboxState;\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void {\n this.state.setChecked(value);\n }\n\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void {\n this.state.setIndeterminate(value);\n }\n\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}