ng-primitives 0.42.0 → 0.43.0

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 (103) hide show
  1. package/dialog/dialog-trigger/dialog-trigger.d.ts +0 -4
  2. package/fesm2022/ng-primitives-a11y.mjs +3 -3
  3. package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
  4. package/fesm2022/ng-primitives-accordion.mjs +12 -12
  5. package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
  6. package/fesm2022/ng-primitives-autofill.mjs +3 -3
  7. package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
  8. package/fesm2022/ng-primitives-avatar.mjs +9 -9
  9. package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/ng-primitives-button.mjs +3 -3
  11. package/fesm2022/ng-primitives-button.mjs.map +1 -1
  12. package/fesm2022/ng-primitives-checkbox.mjs +3 -3
  13. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  14. package/fesm2022/ng-primitives-common.mjs +3 -3
  15. package/fesm2022/ng-primitives-common.mjs.map +1 -1
  16. package/fesm2022/ng-primitives-date-picker.mjs +27 -27
  17. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
  18. package/fesm2022/ng-primitives-dialog.mjs +19 -23
  19. package/fesm2022/ng-primitives-dialog.mjs.map +1 -1
  20. package/fesm2022/ng-primitives-file-upload.mjs +6 -6
  21. package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
  22. package/fesm2022/ng-primitives-focus-trap.mjs +3 -3
  23. package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
  24. package/fesm2022/ng-primitives-form-field.mjs +15 -15
  25. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  26. package/fesm2022/ng-primitives-input.mjs +3 -3
  27. package/fesm2022/ng-primitives-input.mjs.map +1 -1
  28. package/fesm2022/ng-primitives-interactions.mjs +15 -15
  29. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  30. package/fesm2022/ng-primitives-internal.mjs +12 -12
  31. package/fesm2022/ng-primitives-internal.mjs.map +1 -1
  32. package/fesm2022/ng-primitives-listbox.mjs +12 -12
  33. package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
  34. package/fesm2022/ng-primitives-menu.mjs +12 -12
  35. package/fesm2022/ng-primitives-menu.mjs.map +1 -1
  36. package/fesm2022/ng-primitives-meter.mjs +15 -15
  37. package/fesm2022/ng-primitives-meter.mjs.map +1 -1
  38. package/fesm2022/ng-primitives-pagination.mjs +18 -18
  39. package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
  40. package/fesm2022/ng-primitives-popover.mjs +6 -6
  41. package/fesm2022/ng-primitives-popover.mjs.map +1 -1
  42. package/fesm2022/ng-primitives-progress.mjs +15 -15
  43. package/fesm2022/ng-primitives-progress.mjs.map +1 -1
  44. package/fesm2022/ng-primitives-radio.mjs +9 -9
  45. package/fesm2022/ng-primitives-radio.mjs.map +1 -1
  46. package/fesm2022/ng-primitives-resize.mjs +10 -3
  47. package/fesm2022/ng-primitives-resize.mjs.map +1 -1
  48. package/fesm2022/ng-primitives-roving-focus.mjs +6 -6
  49. package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
  50. package/fesm2022/ng-primitives-search.mjs +6 -6
  51. package/fesm2022/ng-primitives-search.mjs.map +1 -1
  52. package/fesm2022/ng-primitives-select.mjs +3 -3
  53. package/fesm2022/ng-primitives-select.mjs.map +1 -1
  54. package/fesm2022/ng-primitives-separator.mjs +3 -3
  55. package/fesm2022/ng-primitives-separator.mjs.map +1 -1
  56. package/fesm2022/ng-primitives-slider.mjs +12 -12
  57. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  58. package/fesm2022/ng-primitives-switch.mjs +6 -6
  59. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  60. package/fesm2022/ng-primitives-tabs.mjs +14 -13
  61. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  62. package/fesm2022/ng-primitives-textarea.mjs +3 -3
  63. package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
  64. package/fesm2022/ng-primitives-toast.mjs +3 -3
  65. package/fesm2022/ng-primitives-toast.mjs.map +1 -1
  66. package/fesm2022/ng-primitives-toggle-group.mjs +6 -6
  67. package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
  68. package/fesm2022/ng-primitives-toggle.mjs +3 -3
  69. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  70. package/fesm2022/ng-primitives-toolbar.mjs +3 -3
  71. package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
  72. package/fesm2022/ng-primitives-tooltip.mjs +6 -6
  73. package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
  74. package/focus-trap/focus-trap/focus-trap-state.d.ts +2 -2
  75. package/listbox/listbox/listbox-state.d.ts +2 -2
  76. package/meter/meter/meter-state.d.ts +3 -3
  77. package/meter/meter-indicator/meter-indicator.d.ts +3 -3
  78. package/meter/meter-label/meter-label.d.ts +3 -3
  79. package/package.json +5 -5
  80. package/pagination/pagination/pagination-state.d.ts +2 -2
  81. package/pagination/pagination-first/pagination-first.d.ts +2 -2
  82. package/pagination/pagination-next/pagination-next.d.ts +2 -2
  83. package/pagination/pagination-previous/pagination-previous.d.ts +2 -2
  84. package/progress/progress/progress-state.d.ts +3 -3
  85. package/progress/progress-indicator/progress-indicator.d.ts +3 -3
  86. package/progress/progress-label/progress-label.d.ts +3 -3
  87. package/progress/progress-track/progress-track.d.ts +3 -3
  88. package/progress/progress-value/progress-value.d.ts +3 -3
  89. package/roving-focus/roving-focus-group/roving-focus-group-state.d.ts +6 -6
  90. package/schematics/ng-generate/schema.d.ts +2 -1
  91. package/schematics/ng-generate/schema.json +1 -0
  92. package/schematics/ng-generate/templates/popover/popover-trigger.__fileSuffix@dasherize__.ts.template +39 -0
  93. package/schematics/ng-generate/templates/popover/popover.__fileSuffix@dasherize__.ts.template +59 -0
  94. package/slider/slider/slider-state.d.ts +4 -4
  95. package/slider/slider-range/slider-range.d.ts +4 -4
  96. package/slider/slider-thumb/slider-thumb.d.ts +4 -4
  97. package/slider/slider-track/slider-track.d.ts +4 -4
  98. package/tabs/tab-button/tab-button.d.ts +9 -12
  99. package/tabs/tab-list/tab-list.d.ts +6 -6
  100. package/tabs/tab-panel/tab-panel.d.ts +6 -6
  101. package/tabs/tabset/tabset-state.d.ts +6 -6
  102. package/toggle-group/toggle-group/toggle-group-state.d.ts +6 -6
  103. package/toolbar/toolbar/toolbar-state.d.ts +6 -6
@@ -4,10 +4,6 @@ import * as i0 from "@angular/core";
4
4
  export declare class NgpDialogTrigger {
5
5
  /** Access the dialog manager. */
6
6
  private readonly dialogManager;
7
- /** Access the focus monitor. */
8
- private readonly focusMonitor;
9
- /** Access the element ref. */
10
- private readonly elementRef;
11
7
  /** The template to launch. */
12
8
  readonly template: import("@angular/core").InputSignal<TemplateRef<NgpDialogContext>>;
13
9
  /**
@@ -58,10 +58,10 @@ class NgpVisuallyHidden {
58
58
  setVisibility(visible) {
59
59
  this.hidden.set(!visible);
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpVisuallyHidden, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpVisuallyHidden, isStandalone: true, selector: "[ngpVisuallyHidden]", host: { properties: { "style": "style()" } }, providers: [provideVisuallyHiddenState()], exportAs: ["ngpVisuallyHidden"], ngImport: i0 }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpVisuallyHidden, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpVisuallyHidden, isStandalone: true, selector: "[ngpVisuallyHidden]", host: { properties: { "style": "style()" } }, providers: [provideVisuallyHiddenState()], exportAs: ["ngpVisuallyHidden"], ngImport: i0 }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpVisuallyHidden, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpVisuallyHidden, decorators: [{
65
65
  type: Directive,
66
66
  args: [{
67
67
  selector: '[ngpVisuallyHidden]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-a11y.mjs","sources":["../../../../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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpVisuallyHidden } from './visually-hidden';\n\n/**\n * The state token for the VisuallyHidden primitive.\n */\nexport const NgpVisuallyHiddenStateToken = createStateToken<NgpVisuallyHidden>('VisuallyHidden');\n\n/**\n * Provides the VisuallyHidden state.\n */\nexport const provideVisuallyHiddenState = createStateProvider(NgpVisuallyHiddenStateToken);\n\n/**\n * Injects the VisuallyHidden state.\n */\nexport const injectVisuallyHiddenState = createStateInjector(NgpVisuallyHiddenStateToken);\n\n/**\n * The VisuallyHidden state registration function.\n */\nexport const visuallyHiddenState = createState(NgpVisuallyHiddenStateToken);\n","import { Directive, computed, signal } from '@angular/core';\nimport { provideVisuallyHiddenState, visuallyHiddenState } 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 host: {\n '[style]': 'style()',\n },\n})\nexport class NgpVisuallyHidden {\n /**\n * Whether the element is hidden.\n */\n protected readonly hidden = signal<boolean>(true);\n\n protected readonly style = computed(() => {\n if (!this.hidden()) {\n return {};\n }\n\n return {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n border: '0',\n wordWrap: 'normal',\n outline: '0',\n '-webkit-appearance': 'none',\n '-moz-appearance': 'none',\n 'inset-inline-start': '0',\n };\n });\n\n protected readonly state = visuallyHiddenState<NgpVisuallyHidden>(this);\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void {\n this.hidden.set(!visible);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA;;AAEG;AACI,MAAM,2BAA2B,GAAG,gBAAgB,CAAoB,gBAAgB,CAAC;AAEhG;;AAEG;MACU,0BAA0B,GAAG,mBAAmB,CAAC,2BAA2B;AAEzF;;AAEG;MACU,yBAAyB,GAAG,mBAAmB,CAAC,2BAA2B;AAExF;;AAEG;AACI,MAAM,mBAAmB,GAAG,WAAW,CAAC,2BAA2B,CAAC;;ACvB3E;;AAEG;MASU,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AASE;;AAEG;AACgB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAU,IAAI,CAAC;AAE9B,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,OAAO,EAAE;;YAGX,OAAO;AACL,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,oBAAoB,EAAE,MAAM;AAC5B,gBAAA,iBAAiB,EAAE,MAAM;AACzB,gBAAA,oBAAoB,EAAE,GAAG;aAC1B;AACH,SAAC,CAAC;AAEiB,QAAA,IAAA,CAAA,KAAK,GAAG,mBAAmB,CAAoB,IAAI,CAAC;AASxE;AAPC;;;AAGG;AACH,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;;8GApChB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EALjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,0BAA0B,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAK9B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE,CAAC,0BAA0B,EAAE,CAAC;AACzC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,SAAS;AACrB,qBAAA;AACF,iBAAA;;;ACbD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-a11y.mjs","sources":["../../../../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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpVisuallyHidden } from './visually-hidden';\n\n/**\n * The state token for the VisuallyHidden primitive.\n */\nexport const NgpVisuallyHiddenStateToken = createStateToken<NgpVisuallyHidden>('VisuallyHidden');\n\n/**\n * Provides the VisuallyHidden state.\n */\nexport const provideVisuallyHiddenState = createStateProvider(NgpVisuallyHiddenStateToken);\n\n/**\n * Injects the VisuallyHidden state.\n */\nexport const injectVisuallyHiddenState = createStateInjector(NgpVisuallyHiddenStateToken);\n\n/**\n * The VisuallyHidden state registration function.\n */\nexport const visuallyHiddenState = createState(NgpVisuallyHiddenStateToken);\n","import { Directive, computed, signal } from '@angular/core';\nimport { provideVisuallyHiddenState, visuallyHiddenState } 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 host: {\n '[style]': 'style()',\n },\n})\nexport class NgpVisuallyHidden {\n /**\n * Whether the element is hidden.\n */\n protected readonly hidden = signal<boolean>(true);\n\n protected readonly style = computed(() => {\n if (!this.hidden()) {\n return {};\n }\n\n return {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n border: '0',\n wordWrap: 'normal',\n outline: '0',\n '-webkit-appearance': 'none',\n '-moz-appearance': 'none',\n 'inset-inline-start': '0',\n };\n });\n\n protected readonly state = visuallyHiddenState<NgpVisuallyHidden>(this);\n\n /**\n * Set the element visibility.\n * @param visible\n */\n setVisibility(visible: boolean): void {\n this.hidden.set(!visible);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA;;AAEG;AACI,MAAM,2BAA2B,GAAG,gBAAgB,CAAoB,gBAAgB,CAAC;AAEhG;;AAEG;MACU,0BAA0B,GAAG,mBAAmB,CAAC,2BAA2B;AAEzF;;AAEG;MACU,yBAAyB,GAAG,mBAAmB,CAAC,2BAA2B;AAExF;;AAEG;AACI,MAAM,mBAAmB,GAAG,WAAW,CAAC,2BAA2B,CAAC;;ACvB3E;;AAEG;MASU,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AASE;;AAEG;AACgB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAU,IAAI,CAAC;AAE9B,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,OAAO,EAAE;;YAGX,OAAO;AACL,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,oBAAoB,EAAE,MAAM;AAC5B,gBAAA,iBAAiB,EAAE,MAAM;AACzB,gBAAA,oBAAoB,EAAE,GAAG;aAC1B;AACH,SAAC,CAAC;AAEiB,QAAA,IAAA,CAAA,KAAK,GAAG,mBAAmB,CAAoB,IAAI,CAAC;AASxE;AAPC;;;AAGG;AACH,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;;+GApChB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EALjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,0BAA0B,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAK9B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE,CAAC,0BAA0B,EAAE,CAAC;AACzC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,SAAS;AACrB,qBAAA;AACF,iBAAA;;;ACbD;;AAEG;;;;"}
@@ -75,10 +75,10 @@ class NgpAccordionContent {
75
75
  }
76
76
  });
77
77
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpAccordionContent, isStandalone: true, selector: "[ngpAccordionContent]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "id": "id()", "attr.data-orientation": "accordion().orientation()", "attr.data-open": "accordionItem().open() ? \"\" : null", "attr.data-closed": "accordionItem().open() ? null : \"\"", "attr.aria-labelledby": "accordionItem().triggerId()", "style.--ngp-accordion-content-width.px": "width()", "style.--ngp-accordion-content-height.px": "height()" } }, exportAs: ["ngpAccordionContent"], ngImport: i0 }); }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpAccordionContent, isStandalone: true, selector: "[ngpAccordionContent]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "id": "id()", "attr.data-orientation": "accordion().orientation()", "attr.data-open": "accordionItem().open() ? \"\" : null", "attr.data-closed": "accordionItem().open() ? null : \"\"", "attr.aria-labelledby": "accordionItem().triggerId()", "style.--ngp-accordion-content-width.px": "width()", "style.--ngp-accordion-content-height.px": "height()" } }, exportAs: ["ngpAccordionContent"], ngImport: i0 }); }
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionContent, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionContent, decorators: [{
82
82
  type: Directive,
83
83
  args: [{
84
84
  selector: '[ngpAccordionContent]',
@@ -150,10 +150,10 @@ class NgpAccordionItem {
150
150
  throw new Error('The accordion item value is required');
151
151
  }
152
152
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpAccordionItem, isStandalone: true, selector: "[ngpAccordionItem]", inputs: { value: { classPropertyName: "value", publicName: "ngpAccordionItemValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionItemDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-orientation": "accordion().orientation()", "attr.data-open": "state.open() ? \"\" : null", "attr.data-disabled": "state.disabled() || accordion().disabled() ? \"\" : null" } }, providers: [provideAccordionItemState()], exportAs: ["ngpAccordionItem"], ngImport: i0 }); }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpAccordionItem, isStandalone: true, selector: "[ngpAccordionItem]", inputs: { value: { classPropertyName: "value", publicName: "ngpAccordionItemValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionItemDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-orientation": "accordion().orientation()", "attr.data-open": "state.open() ? \"\" : null", "attr.data-disabled": "state.disabled() || accordion().disabled() ? \"\" : null" } }, providers: [provideAccordionItemState()], exportAs: ["ngpAccordionItem"], ngImport: i0 }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionItem, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionItem, decorators: [{
157
157
  type: Directive,
158
158
  args: [{
159
159
  selector: '[ngpAccordionItem]',
@@ -199,10 +199,10 @@ class NgpAccordionTrigger {
199
199
  }
200
200
  this.accordion().toggle(this.accordionItem().value());
201
201
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
203
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpAccordionTrigger, isStandalone: true, selector: "[ngpAccordionTrigger]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggle()" }, properties: { "id": "id()", "attr.type": "tagName === \"button\" ? \"button\" : null", "attr.data-orientation": "accordion().orientation()", "attr.data-open": "accordionItem().open() ? \"\" : null", "attr.data-disabled": "accordionItem().disabled() || accordion().disabled() ? \"\" : null", "attr.aria-controls": "accordionItem().contentId()", "attr.aria-expanded": "accordionItem().open()" } }, exportAs: ["ngpAccordionTrigger"], ngImport: i0 }); }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
203
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpAccordionTrigger, isStandalone: true, selector: "[ngpAccordionTrigger]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggle()" }, properties: { "id": "id()", "attr.type": "tagName === \"button\" ? \"button\" : null", "attr.data-orientation": "accordion().orientation()", "attr.data-open": "accordionItem().open() ? \"\" : null", "attr.data-disabled": "accordionItem().disabled() || accordion().disabled() ? \"\" : null", "attr.aria-controls": "accordionItem().contentId()", "attr.aria-expanded": "accordionItem().open()" } }, exportAs: ["ngpAccordionTrigger"], ngImport: i0 }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordionTrigger, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordionTrigger, decorators: [{
206
206
  type: Directive,
207
207
  args: [{
208
208
  selector: '[ngpAccordionTrigger]',
@@ -334,10 +334,10 @@ class NgpAccordion {
334
334
  }
335
335
  this.valueChange.emit(this.state.value());
336
336
  }
337
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
338
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpAccordion, isStandalone: true, selector: "[ngpAccordion]", inputs: { type: { classPropertyName: "type", publicName: "ngpAccordionType", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "ngpAccordionCollapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "ngpAccordionValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionDisabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "ngpAccordionOrientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "ngpAccordionValueChange" }, host: { properties: { "attr.data-orientation": "state.orientation()", "attr.data-disabled": "state.disabled() ? \"\" : null" } }, providers: [provideAccordionState()], exportAs: ["ngpAccordion"], ngImport: i0 }); }
337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
338
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpAccordion, isStandalone: true, selector: "[ngpAccordion]", inputs: { type: { classPropertyName: "type", publicName: "ngpAccordionType", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "ngpAccordionCollapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "ngpAccordionValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionDisabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "ngpAccordionOrientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "ngpAccordionValueChange" }, host: { properties: { "attr.data-orientation": "state.orientation()", "attr.data-disabled": "state.disabled() ? \"\" : null" } }, providers: [provideAccordionState()], exportAs: ["ngpAccordion"], ngImport: i0 }); }
339
339
  }
340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAccordion, decorators: [{
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAccordion, decorators: [{
341
341
  type: Directive,
342
342
  args: [{
343
343
  selector: '[ngpAccordion]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item-state.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion-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.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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAccordionItem } from './accordion-item';\n\n/**\n * The state token for the AccordionItem primitive.\n */\nexport const NgpAccordionItemStateToken =\n createStateToken<NgpAccordionItem<unknown>>('AccordionItem');\n\n/**\n * Provides the AccordionItem state.\n */\nexport const provideAccordionItemState = createStateProvider(NgpAccordionItemStateToken);\n\n/**\n * Injects the AccordionItem state.\n */\nexport const injectAccordionItemState = createStateInjector(NgpAccordionItemStateToken);\n\n/**\n * The AccordionItem state registration function.\n */\nexport const accordionItemState = createState(NgpAccordionItemStateToken);\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAccordion } from './accordion';\n\n/**\n * The state token for the Accordion primitive.\n */\nexport const NgpAccordionStateToken = createStateToken<NgpAccordion<unknown>>('Accordion');\n\n/**\n * Provides the Accordion state.\n */\nexport const provideAccordionState = createStateProvider(NgpAccordionStateToken);\n\n/**\n * Injects the Accordion state.\n */\nexport const injectAccordionState = createStateInjector(NgpAccordionStateToken);\n\n/**\n * The Accordion state registration function.\n */\nexport const accordionState = createState(NgpAccordionStateToken);\n","import { afterRenderEffect, Directive, input, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport type { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-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 host: {\n role: 'region',\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'accordionItem().open() ? \"\" : null',\n '[attr.data-closed]': 'accordionItem().open() ? null : \"\"',\n '[attr.aria-labelledby]': 'accordionItem().triggerId()',\n '[style.--ngp-accordion-content-width.px]': 'width()',\n '[style.--ngp-accordion-content-height.px]': 'height()',\n },\n})\nexport class NgpAccordionContent<T> {\n /**\n * Access the accordion content element reference\n */\n private readonly elementRef = injectElementRef();\n\n /**\n * Access the accordion\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * Access the accordion item\n */\n protected readonly accordionItem = injectAccordionItemState();\n\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n /**\n * The content width\n */\n readonly width = signal<number>(0);\n\n /**\n * The content height\n */\n readonly height = signal<number>(0);\n\n constructor() {\n this.accordionItem().content.set(this);\n\n afterRenderEffect(() => {\n if (this.accordionItem().open()) {\n this.width.set(this.elementRef.nativeElement.scrollWidth);\n this.height.set(this.elementRef.nativeElement.scrollHeight);\n }\n });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, OnInit, booleanAttribute, computed, input, signal } from '@angular/core';\nimport { NgpAccordionContent } from '../accordion-content/accordion-content';\nimport { NgpAccordionTrigger } from '../accordion-trigger/accordion-trigger';\nimport { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-state';\nimport { accordionItemState, 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 host: {\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'state.open() ? \"\" : null',\n '[attr.data-disabled]': 'state.disabled() || accordion().disabled() ? \"\" : null',\n },\n})\nexport class NgpAccordionItem<T> implements OnInit {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input<T>(undefined, {\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 * Access the accordion trigger\n * @internal\n */\n readonly trigger = signal<NgpAccordionTrigger<T> | undefined>(undefined);\n\n /**\n * Access the accordion content\n * @internal\n */\n readonly content = signal<NgpAccordionContent<T> | undefined>(undefined);\n\n /**\n * Whether the accordion item is expanded.\n */\n readonly open = computed<boolean>(() => this.accordion().isOpen(this.state.value()!));\n\n /**\n * The trigger id.\n */\n readonly triggerId = computed(() => this.trigger()?.id());\n\n /**\n * The content id.\n */\n readonly contentId = computed(() => this.content()?.id());\n\n /**\n * The accordion item state.\n */\n private readonly state = accordionItemState<NgpAccordionItem<T>>(this);\n\n ngOnInit(): void {\n if (!this.state.value()) {\n throw new Error('The accordion item value is required');\n }\n }\n}\n","import { Directive, HOST_TAG_NAME, HostListener, inject, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { NgpAccordionItem } from '../accordion-item/accordion-item';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-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 host: {\n '[id]': 'id()',\n '[attr.type]': 'tagName === \"button\" ? \"button\" : null',\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'accordionItem().open() ? \"\" : null',\n '[attr.data-disabled]': 'accordionItem().disabled() || accordion().disabled() ? \"\" : null',\n '[attr.aria-controls]': 'accordionItem().contentId()',\n '[attr.aria-expanded]': 'accordionItem().open()',\n },\n})\nexport class NgpAccordionTrigger<T> {\n /**\n * The tag name of the element.\n */\n protected readonly tagName = inject(HOST_TAG_NAME);\n\n /**\n * Access the parent accordion.\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * The item instance.\n */\n protected readonly accordionItem = injectAccordionItemState<NgpAccordionItem<T>>();\n\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n constructor() {\n this.accordionItem().trigger.set(this);\n }\n\n /**\n * Toggle the accordion item.\n */\n @HostListener('click')\n toggle(): void {\n if (this.accordionItem().disabled() || this.accordion().disabled()) {\n return;\n }\n\n this.accordion().toggle(this.accordionItem().value()!);\n }\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpAccordionType } from '../accordion/accordion';\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 { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectAccordionConfig } from '../config/accordion-config';\nimport { accordionState, 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 host: {\n '[attr.data-orientation]': 'state.orientation()',\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\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 private readonly state = accordionState<NgpAccordion<T>>(this);\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 if (this.state.type() === 'multiple') {\n return (this.state.value() as T[] | null)?.includes(value) ?? false;\n }\n\n return this.state.value() === value;\n }\n\n toggle(value: T): void {\n const isOpen = this.isOpen(value);\n\n // if we are in single mode and the value is already open and the accordion is not collapsible, do nothing\n if (this.state.type() === 'single' && isOpen && !this.state.collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the value\n if (this.state.type() === 'single') {\n this.state.value.set(isOpen ? null : value);\n this.valueChange.emit(this.state.value());\n return;\n }\n\n // if we are in multiple mode then toggle the value\n const values = (this.state.value() as T[]) ?? [];\n\n if (isOpen) {\n this.state.value.set(values.filter(v => v !== value));\n } else {\n this.state.value.set([...values, value]);\n }\n this.valueChange.emit(this.state.value());\n }\n}\n\nexport type NgpAccordionType = 'single' | 'multiple';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAQA;;AAEG;AACI,MAAM,0BAA0B,GACrC,gBAAgB,CAA4B,eAAe,CAAC;AAE9D;;AAEG;MACU,yBAAyB,GAAG,mBAAmB,CAAC,0BAA0B;AAEvF;;AAEG;MACU,wBAAwB,GAAG,mBAAmB,CAAC,0BAA0B;AAEtF;;AAEG;AACI,MAAM,kBAAkB,GAAG,WAAW,CAAC,0BAA0B,CAAC;;ACnBzE;;AAEG;AACI,MAAM,sBAAsB,GAAG,gBAAgB,CAAwB,WAAW,CAAC;AAE1F;;AAEG;MACU,qBAAqB,GAAG,mBAAmB,CAAC,sBAAsB;AAE/E;;AAEG;MACU,oBAAoB,GAAG,mBAAmB,CAAC,sBAAsB;AAE9E;;AAEG;AACI,MAAM,cAAc,GAAG,WAAW,CAAC,sBAAsB,CAAC;;ACnBjE;;AAEG;MAeU,mBAAmB,CAAA;AA+B9B,IAAA,WAAA,GAAA;AA9BA;;AAEG;QACc,IAAU,CAAA,UAAA,GAAG,gBAAgB,EAAE;AAEhD;;AAEG;QACgB,IAAS,CAAA,SAAA,GAAG,oBAAoB,EAAmB;AAEtE;;AAEG;QACgB,IAAa,CAAA,aAAA,GAAG,wBAAwB,EAAE;AAE7D;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAE9D;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAS,CAAC,CAAC;AAElC;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAS,CAAC,CAAC;QAGjC,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAEtC,iBAAiB,CAAC,MAAK;YACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;AAC/B,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;AACzD,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;;AAE/D,SAAC,CAAC;;8GAvCO,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sCAAA,EAAA,kBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,wCAAA,EAAA,SAAA,EAAA,yCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,kBAAkB,EAAE,oCAAoC;AACxD,wBAAA,oBAAoB,EAAE,oCAAoC;AAC1D,wBAAA,wBAAwB,EAAE,6BAA6B;AACvD,wBAAA,0CAA0C,EAAE,SAAS;AACrD,wBAAA,2CAA2C,EAAE,UAAU;AACxD,qBAAA;AACF,iBAAA;;;ACfD;;AAEG;MAWU,gBAAgB,CAAA;AAV7B,IAAA,WAAA,GAAA;AAWE;;AAEG;QACgB,IAAS,CAAA,SAAA,GAAG,oBAAoB,EAAmB;AAEtE;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAI,SAAS,EAAE;AACnC,YAAA,KAAK,EAAE,uBAAuB;AAC/B,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AACtD,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;AAEF;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAqC,SAAS,CAAC;AAExE;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAqC,SAAS,CAAC;AAExE;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC,CAAC;AAErF;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;AAEzD;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;AAEzD;;AAEG;AACc,QAAA,IAAA,CAAA,KAAK,GAAG,kBAAkB,CAAsB,IAAI,CAAC;AAOvE;IALC,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;;;8GAvDhD,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAPhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,0DAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,yBAAyB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAO7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE,CAAC,yBAAyB,EAAE,CAAC;AACxC,oBAAA,IAAI,EAAE;AACJ,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,kBAAkB,EAAE,0BAA0B;AAC9C,wBAAA,sBAAsB,EAAE,wDAAwD;AACjF,qBAAA;AACF,iBAAA;;;ACbD;;AAEG;MAcU,mBAAmB,CAAA;AAqB9B,IAAA,WAAA,GAAA;AApBA;;AAEG;AACgB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAElD;;AAEG;QACgB,IAAS,CAAA,SAAA,GAAG,oBAAoB,EAAmB;AAEtE;;AAEG;QACgB,IAAa,CAAA,aAAA,GAAG,wBAAwB,EAAuB;AAElF;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAG5D,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGxC;;AAEG;IAEH,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClE;;AAGF,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAG,CAAC;;8GAlC7C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,4CAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sCAAA,EAAA,oBAAA,EAAA,oEAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACJ,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,aAAa,EAAE,wCAAwC;AACvD,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,kBAAkB,EAAE,oCAAoC;AACxD,wBAAA,sBAAsB,EAAE,kEAAkE;AAC1F,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,wBAAwB;AACjD,qBAAA;AACF,iBAAA;wDA8BC,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,OAAO;;;AC9BhB,MAAM,sBAAsB,GAAuB;AACxD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,WAAW,EAAE,UAAU;CACxB;AAEM,MAAM,uBAAuB,GAAG,IAAI,cAAc,CACvD,yBAAyB,CAC1B;AAED;;;;AAIG;AACG,SAAU,sBAAsB,CAAC,MAAmC,EAAA;IACxE,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE;AACnD,SAAA;KACF;AACH;AAEA;;;AAGG;SACa,qBAAqB,GAAA;AACnC,IAAA,OAAO,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,sBAAsB;AACtF;;AC7CA;;AAEG;MAUU,YAAY,CAAA;AATzB,IAAA,WAAA,GAAA;AAUE;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,qBAAqB,EAAE;AAEjD;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,CAAmB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACxD,YAAA,KAAK,EAAE,kBAAkB;AAC1B,SAAA,CAAC;AAEF;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3E,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,IAAI,EAAE;AAC3C,YAAA,KAAK,EAAE,mBAAmB;AAC3B,SAAA,CAAC;AAEF;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,MAAM,CAAiB;AAC5C,YAAA,KAAK,EAAE,yBAAyB;AACjC,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AACtD,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;AAEF;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAiB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACpE,YAAA,KAAK,EAAE,yBAAyB;AACjC,SAAA,CAAC;AAEF;;AAEG;AACc,QAAA,IAAA,CAAA,KAAK,GAAG,cAAc,CAAkB,IAAI,CAAC;AAwC/D;AAtCC;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAQ,EAAA;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;AACpC,YAAA,OAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK;;QAGrE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK;;AAGrC,IAAA,MAAM,CAAC,KAAQ,EAAA;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAGjC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;YACzE;;;QAIF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzC;;;QAIF,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAU,IAAI,EAAE;QAEhD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;;aAChD;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;;AAE1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;;8GA3FhC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EANZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAMzB,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE,CAAC,qBAAqB,EAAE,CAAC;AACpC,oBAAA,IAAI,EAAE;AACJ,wBAAA,yBAAyB,EAAE,qBAAqB;AAChD,wBAAA,sBAAsB,EAAE,8BAA8B;AACvD,qBAAA;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item-state.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion-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.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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAccordionItem } from './accordion-item';\n\n/**\n * The state token for the AccordionItem primitive.\n */\nexport const NgpAccordionItemStateToken =\n createStateToken<NgpAccordionItem<unknown>>('AccordionItem');\n\n/**\n * Provides the AccordionItem state.\n */\nexport const provideAccordionItemState = createStateProvider(NgpAccordionItemStateToken);\n\n/**\n * Injects the AccordionItem state.\n */\nexport const injectAccordionItemState = createStateInjector(NgpAccordionItemStateToken);\n\n/**\n * The AccordionItem state registration function.\n */\nexport const accordionItemState = createState(NgpAccordionItemStateToken);\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAccordion } from './accordion';\n\n/**\n * The state token for the Accordion primitive.\n */\nexport const NgpAccordionStateToken = createStateToken<NgpAccordion<unknown>>('Accordion');\n\n/**\n * Provides the Accordion state.\n */\nexport const provideAccordionState = createStateProvider(NgpAccordionStateToken);\n\n/**\n * Injects the Accordion state.\n */\nexport const injectAccordionState = createStateInjector(NgpAccordionStateToken);\n\n/**\n * The Accordion state registration function.\n */\nexport const accordionState = createState(NgpAccordionStateToken);\n","import { afterRenderEffect, Directive, input, signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport type { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-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 host: {\n role: 'region',\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'accordionItem().open() ? \"\" : null',\n '[attr.data-closed]': 'accordionItem().open() ? null : \"\"',\n '[attr.aria-labelledby]': 'accordionItem().triggerId()',\n '[style.--ngp-accordion-content-width.px]': 'width()',\n '[style.--ngp-accordion-content-height.px]': 'height()',\n },\n})\nexport class NgpAccordionContent<T> {\n /**\n * Access the accordion content element reference\n */\n private readonly elementRef = injectElementRef();\n\n /**\n * Access the accordion\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * Access the accordion item\n */\n protected readonly accordionItem = injectAccordionItemState();\n\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n /**\n * The content width\n */\n readonly width = signal<number>(0);\n\n /**\n * The content height\n */\n readonly height = signal<number>(0);\n\n constructor() {\n this.accordionItem().content.set(this);\n\n afterRenderEffect(() => {\n if (this.accordionItem().open()) {\n this.width.set(this.elementRef.nativeElement.scrollWidth);\n this.height.set(this.elementRef.nativeElement.scrollHeight);\n }\n });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, OnInit, booleanAttribute, computed, input, signal } from '@angular/core';\nimport { NgpAccordionContent } from '../accordion-content/accordion-content';\nimport { NgpAccordionTrigger } from '../accordion-trigger/accordion-trigger';\nimport { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-state';\nimport { accordionItemState, 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 host: {\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'state.open() ? \"\" : null',\n '[attr.data-disabled]': 'state.disabled() || accordion().disabled() ? \"\" : null',\n },\n})\nexport class NgpAccordionItem<T> implements OnInit {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input<T>(undefined, {\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 * Access the accordion trigger\n * @internal\n */\n readonly trigger = signal<NgpAccordionTrigger<T> | undefined>(undefined);\n\n /**\n * Access the accordion content\n * @internal\n */\n readonly content = signal<NgpAccordionContent<T> | undefined>(undefined);\n\n /**\n * Whether the accordion item is expanded.\n */\n readonly open = computed<boolean>(() => this.accordion().isOpen(this.state.value()!));\n\n /**\n * The trigger id.\n */\n readonly triggerId = computed(() => this.trigger()?.id());\n\n /**\n * The content id.\n */\n readonly contentId = computed(() => this.content()?.id());\n\n /**\n * The accordion item state.\n */\n private readonly state = accordionItemState<NgpAccordionItem<T>>(this);\n\n ngOnInit(): void {\n if (!this.state.value()) {\n throw new Error('The accordion item value is required');\n }\n }\n}\n","import { Directive, HOST_TAG_NAME, HostListener, inject, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { NgpAccordionItem } from '../accordion-item/accordion-item';\nimport { injectAccordionItemState } from '../accordion-item/accordion-item-state';\nimport { NgpAccordion } from '../accordion/accordion';\nimport { injectAccordionState } from '../accordion/accordion-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 host: {\n '[id]': 'id()',\n '[attr.type]': 'tagName === \"button\" ? \"button\" : null',\n '[attr.data-orientation]': 'accordion().orientation()',\n '[attr.data-open]': 'accordionItem().open() ? \"\" : null',\n '[attr.data-disabled]': 'accordionItem().disabled() || accordion().disabled() ? \"\" : null',\n '[attr.aria-controls]': 'accordionItem().contentId()',\n '[attr.aria-expanded]': 'accordionItem().open()',\n },\n})\nexport class NgpAccordionTrigger<T> {\n /**\n * The tag name of the element.\n */\n protected readonly tagName = inject(HOST_TAG_NAME);\n\n /**\n * Access the parent accordion.\n */\n protected readonly accordion = injectAccordionState<NgpAccordion<T>>();\n\n /**\n * The item instance.\n */\n protected readonly accordionItem = injectAccordionItemState<NgpAccordionItem<T>>();\n\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n constructor() {\n this.accordionItem().trigger.set(this);\n }\n\n /**\n * Toggle the accordion item.\n */\n @HostListener('click')\n toggle(): void {\n if (this.accordionItem().disabled() || this.accordion().disabled()) {\n return;\n }\n\n this.accordion().toggle(this.accordionItem().value()!);\n }\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpAccordionType } from '../accordion/accordion';\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 { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectAccordionConfig } from '../config/accordion-config';\nimport { accordionState, 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 host: {\n '[attr.data-orientation]': 'state.orientation()',\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\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 private readonly state = accordionState<NgpAccordion<T>>(this);\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 if (this.state.type() === 'multiple') {\n return (this.state.value() as T[] | null)?.includes(value) ?? false;\n }\n\n return this.state.value() === value;\n }\n\n toggle(value: T): void {\n const isOpen = this.isOpen(value);\n\n // if we are in single mode and the value is already open and the accordion is not collapsible, do nothing\n if (this.state.type() === 'single' && isOpen && !this.state.collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the value\n if (this.state.type() === 'single') {\n this.state.value.set(isOpen ? null : value);\n this.valueChange.emit(this.state.value());\n return;\n }\n\n // if we are in multiple mode then toggle the value\n const values = (this.state.value() as T[]) ?? [];\n\n if (isOpen) {\n this.state.value.set(values.filter(v => v !== value));\n } else {\n this.state.value.set([...values, value]);\n }\n this.valueChange.emit(this.state.value());\n }\n}\n\nexport type NgpAccordionType = 'single' | 'multiple';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -43,10 +43,10 @@ class NgpAutofill {
43
43
  this.autofillChange.emit(false);
44
44
  }
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAutofill, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpAutofill, isStandalone: true, selector: "[ngpAutofill]", outputs: { autofillChange: "ngpAutofill" }, host: { listeners: { "animationstart": "onAnimationStart($event)" }, properties: { "attr.data-autofill": "autofilled() ? \"\" : null" } }, exportAs: ["ngpAutofill"], ngImport: i0 }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAutofill, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpAutofill, isStandalone: true, selector: "[ngpAutofill]", outputs: { autofillChange: "ngpAutofill" }, host: { listeners: { "animationstart": "onAnimationStart($event)" }, properties: { "attr.data-autofill": "autofilled() ? \"\" : null" } }, exportAs: ["ngpAutofill"], ngImport: i0 }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAutofill, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAutofill, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
52
  selector: '[ngpAutofill]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-autofill.mjs","sources":["../../../../packages/ng-primitives/autofill/src/autofill/autofill.ts","../../../../packages/ng-primitives/autofill/src/ng-primitives-autofill.ts"],"sourcesContent":["import { Directive, HostListener, output, signal } from '@angular/core';\nimport { injectStyleInjector } from 'ng-primitives/internal';\n\n@Directive({\n selector: '[ngpAutofill]',\n exportAs: 'ngpAutofill',\n host: {\n '[attr.data-autofill]': 'autofilled() ? \"\" : null',\n },\n})\nexport class NgpAutofill {\n /**\n * Access the style injector.\n */\n private readonly styleInjector = injectStyleInjector();\n\n /**\n * Store the autofill state.\n */\n protected readonly autofilled = signal(false);\n\n /**\n * Emit when the autofill state changes.\n */\n readonly autofillChange = output<boolean>({\n alias: 'ngpAutofill',\n });\n\n constructor() {\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 this.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\n @HostListener('animationstart', ['$event'])\n protected onAnimationStart(event: AnimationEvent): void {\n if (event.animationName === 'ngp-autofill-start') {\n this.autofilled.set(true);\n this.autofillChange.emit(true);\n }\n\n if (event.animationName === 'ngp-autofill-end') {\n this.autofilled.set(false);\n this.autofillChange.emit(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAUa,WAAW,CAAA;AAkBtB,IAAA,WAAA,GAAA;AAjBA;;AAEG;QACc,IAAa,CAAA,aAAA,GAAG,mBAAmB,EAAE;AAEtD;;AAEG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAE7C;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,MAAM,CAAU;AACxC,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;;;AAKA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,cAAc,EACd;;;;;;;;;;;AAWC,MAAA,CAAA,CACF;;AAIO,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAC9C,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGhC,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;;;8GA/CxB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,0BAA0B;AACnD,qBAAA;AACF,iBAAA;wDAwCW,gBAAgB,EAAA,CAAA;sBADzB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AChD5C;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-autofill.mjs","sources":["../../../../packages/ng-primitives/autofill/src/autofill/autofill.ts","../../../../packages/ng-primitives/autofill/src/ng-primitives-autofill.ts"],"sourcesContent":["import { Directive, HostListener, output, signal } from '@angular/core';\nimport { injectStyleInjector } from 'ng-primitives/internal';\n\n@Directive({\n selector: '[ngpAutofill]',\n exportAs: 'ngpAutofill',\n host: {\n '[attr.data-autofill]': 'autofilled() ? \"\" : null',\n },\n})\nexport class NgpAutofill {\n /**\n * Access the style injector.\n */\n private readonly styleInjector = injectStyleInjector();\n\n /**\n * Store the autofill state.\n */\n protected readonly autofilled = signal(false);\n\n /**\n * Emit when the autofill state changes.\n */\n readonly autofillChange = output<boolean>({\n alias: 'ngpAutofill',\n });\n\n constructor() {\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 this.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\n @HostListener('animationstart', ['$event'])\n protected onAnimationStart(event: AnimationEvent): void {\n if (event.animationName === 'ngp-autofill-start') {\n this.autofilled.set(true);\n this.autofillChange.emit(true);\n }\n\n if (event.animationName === 'ngp-autofill-end') {\n this.autofilled.set(false);\n this.autofillChange.emit(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAUa,WAAW,CAAA;AAkBtB,IAAA,WAAA,GAAA;AAjBA;;AAEG;QACc,IAAa,CAAA,aAAA,GAAG,mBAAmB,EAAE;AAEtD;;AAEG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAE7C;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,MAAM,CAAU;AACxC,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;;;AAKA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,cAAc,EACd;;;;;;;;;;;AAWC,MAAA,CAAA,CACF;;AAIO,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAC9C,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGhC,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;;;+GA/CxB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,0BAA0B;AACnD,qBAAA;AACF,iBAAA;wDAwCW,gBAAgB,EAAA,CAAA;sBADzB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AChD5C;;AAEG;;;;"}
@@ -47,10 +47,10 @@ class NgpAvatar {
47
47
  setStatus(status) {
48
48
  this.status.set(status);
49
49
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
51
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpAvatar, isStandalone: true, selector: "[ngpAvatar]", host: { properties: { "attr.data-status": "status()" } }, providers: [provideAvatarState()], exportAs: ["ngpAvatar"], hostDirectives: [{ directive: i1.NgpHover }, { directive: i1.NgpFocusVisible }, { directive: i1.NgpPress }], ngImport: i0 }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
51
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpAvatar, isStandalone: true, selector: "[ngpAvatar]", host: { properties: { "attr.data-status": "status()" } }, providers: [provideAvatarState()], exportAs: ["ngpAvatar"], hostDirectives: [{ directive: i1.NgpHover }, { directive: i1.NgpFocusVisible }, { directive: i1.NgpPress }], ngImport: i0 }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatar, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatar, decorators: [{
54
54
  type: Directive,
55
55
  args: [{
56
56
  selector: '[ngpAvatar]',
@@ -135,10 +135,10 @@ class NgpAvatarFallback {
135
135
  ngOnInit() {
136
136
  this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());
137
137
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatarFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpAvatarFallback, isStandalone: true, selector: "[ngpAvatarFallback]", inputs: { delay: { classPropertyName: "delay", publicName: "ngpAvatarFallbackDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "visible() ? null : \"none\"" } }, exportAs: ["ngpAvatarFallback"], ngImport: i0 }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatarFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpAvatarFallback, isStandalone: true, selector: "[ngpAvatarFallback]", inputs: { delay: { classPropertyName: "delay", publicName: "ngpAvatarFallbackDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "visible() ? null : \"none\"" } }, exportAs: ["ngpAvatarFallback"], ngImport: i0 }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatarFallback, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatarFallback, decorators: [{
142
142
  type: Directive,
143
143
  args: [{
144
144
  selector: '[ngpAvatarFallback]',
@@ -190,10 +190,10 @@ class NgpAvatarImage {
190
190
  // if the state is loaded then we should make the image visible
191
191
  this.visuallyHidden().setVisibility(state === NgpAvatarStatus.Loaded);
192
192
  }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatarImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
194
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpAvatarImage, isStandalone: true, selector: "img[ngpAvatarImage]", host: { listeners: { "load": "onLoad()", "error": "onError()" } }, exportAs: ["ngpAvatarImage"], hostDirectives: [{ directive: i1$1.NgpVisuallyHidden }], ngImport: i0 }); }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatarImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
194
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpAvatarImage, isStandalone: true, selector: "img[ngpAvatarImage]", host: { listeners: { "load": "onLoad()", "error": "onError()" } }, exportAs: ["ngpAvatarImage"], hostDirectives: [{ directive: i1$1.NgpVisuallyHidden }], ngImport: i0 }); }
195
195
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpAvatarImage, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpAvatarImage, decorators: [{
197
197
  type: Directive,
198
198
  args: [{
199
199
  selector: 'img[ngpAvatarImage]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAvatar } from './avatar';\n\n/**\n * The state token for the Avatar primitive.\n */\nexport const NgpAvatarStateToken = createStateToken<NgpAvatar>('Avatar');\n\n/**\n * Provides the Avatar state.\n */\nexport const provideAvatarState = createStateProvider(NgpAvatarStateToken);\n\n/**\n * Injects the Avatar state.\n */\nexport const injectAvatarState = createStateInjector(NgpAvatarStateToken);\n\n/**\n * The Avatar state registration function.\n */\nexport const avatarState = createState(NgpAvatarStateToken);\n","import { Directive, signal } from '@angular/core';\nimport { NgpFocusVisible, NgpHover, NgpPress } from 'ng-primitives/interactions';\nimport { avatarState, 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 host: {\n '[attr.data-status]': 'status()',\n },\n hostDirectives: [NgpHover, NgpFocusVisible, NgpPress],\n})\nexport class NgpAvatar {\n /**\n * Store the current status of the avatar.\n * @internal\n */\n readonly status = signal(NgpAvatarStatus.Idle);\n\n /**\n * The avatar state.\n */\n protected readonly state = avatarState<NgpAvatar>(this);\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.status.set(status);\n }\n}\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","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 { NumberInput } from '@angular/cdk/coercion';\nimport { computed, Directive, input, numberAttribute, OnInit, signal } from '@angular/core';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-state';\nimport { injectAvatarConfig } from '../config/avatar-config';\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 host: {\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class NgpAvatarFallback implements OnInit {\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatarState();\n\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Access the disposable utilities.\n */\n private readonly disposables = injectDisposables();\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 /**\n * Determine if this element should be hidden.\n * @returns True if the element should be visible\n */\n protected readonly visible = computed(\n () =>\n // we need to check if the element can render and if the avatar is not in a loaded state\n this.delayElapsed() && this.avatar().status() !== NgpAvatarStatus.Loaded,\n );\n\n /**\n * Determine the delay has elapsed, and we can show the fallback.\n */\n private delayElapsed = signal(false);\n\n ngOnInit(): void {\n this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());\n }\n}\n","import { Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { injectVisuallyHiddenState, NgpVisuallyHidden } from 'ng-primitives/a11y';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-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 hostDirectives: [NgpVisuallyHidden],\n})\nexport class NgpAvatarImage implements OnInit {\n /**\n * Control the visibility of the image.\n */\n protected readonly visuallyHidden = injectVisuallyHiddenState();\n\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatarState();\n\n /**\n * Access the image element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);\n\n ngOnInit(): void {\n // mark the avatar as loading\n this.setState(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.setState(NgpAvatarStatus.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (this.elementRef.nativeElement.complete) {\n this.setState(NgpAvatarStatus.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.setState(NgpAvatarStatus.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.setState(NgpAvatarStatus.Error);\n }\n\n private setState(state: NgpAvatarStatus) {\n this.avatar().setStatus(state);\n\n // if the state is loaded then we should make the image visible\n this.visuallyHidden().setVisibility(state === NgpAvatarStatus.Loaded);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAvatar } from './avatar';\n\n/**\n * The state token for the Avatar primitive.\n */\nexport const NgpAvatarStateToken = createStateToken<NgpAvatar>('Avatar');\n\n/**\n * Provides the Avatar state.\n */\nexport const provideAvatarState = createStateProvider(NgpAvatarStateToken);\n\n/**\n * Injects the Avatar state.\n */\nexport const injectAvatarState = createStateInjector(NgpAvatarStateToken);\n\n/**\n * The Avatar state registration function.\n */\nexport const avatarState = createState(NgpAvatarStateToken);\n","import { Directive, signal } from '@angular/core';\nimport { NgpFocusVisible, NgpHover, NgpPress } from 'ng-primitives/interactions';\nimport { avatarState, 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 host: {\n '[attr.data-status]': 'status()',\n },\n hostDirectives: [NgpHover, NgpFocusVisible, NgpPress],\n})\nexport class NgpAvatar {\n /**\n * Store the current status of the avatar.\n * @internal\n */\n readonly status = signal(NgpAvatarStatus.Idle);\n\n /**\n * The avatar state.\n */\n protected readonly state = avatarState<NgpAvatar>(this);\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.status.set(status);\n }\n}\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","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 { NumberInput } from '@angular/cdk/coercion';\nimport { computed, Directive, input, numberAttribute, OnInit, signal } from '@angular/core';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-state';\nimport { injectAvatarConfig } from '../config/avatar-config';\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 host: {\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class NgpAvatarFallback implements OnInit {\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatarState();\n\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Access the disposable utilities.\n */\n private readonly disposables = injectDisposables();\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 /**\n * Determine if this element should be hidden.\n * @returns True if the element should be visible\n */\n protected readonly visible = computed(\n () =>\n // we need to check if the element can render and if the avatar is not in a loaded state\n this.delayElapsed() && this.avatar().status() !== NgpAvatarStatus.Loaded,\n );\n\n /**\n * Determine the delay has elapsed, and we can show the fallback.\n */\n private delayElapsed = signal(false);\n\n ngOnInit(): void {\n this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());\n }\n}\n","import { Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { injectVisuallyHiddenState, NgpVisuallyHidden } from 'ng-primitives/a11y';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-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 hostDirectives: [NgpVisuallyHidden],\n})\nexport class NgpAvatarImage implements OnInit {\n /**\n * Control the visibility of the image.\n */\n protected readonly visuallyHidden = injectVisuallyHiddenState();\n\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatarState();\n\n /**\n * Access the image element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);\n\n ngOnInit(): void {\n // mark the avatar as loading\n this.setState(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.setState(NgpAvatarStatus.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (this.elementRef.nativeElement.complete) {\n this.setState(NgpAvatarStatus.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.setState(NgpAvatarStatus.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.setState(NgpAvatarStatus.Error);\n }\n\n private setState(state: NgpAvatarStatus) {\n this.avatar().setStatus(state);\n\n // if the state is loaded then we should make the image visible\n this.visuallyHidden().setVisibility(state === NgpAvatarStatus.Loaded);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;AAQA;;AAEG;AACI,MAAM,mBAAmB,GAAG,gBAAgB,CAAY,QAAQ,CAAC;AAExE;;AAEG;MACU,kBAAkB,GAAG,mBAAmB,CAAC,mBAAmB;AAEzE;;AAEG;MACU,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB;AAExE;;AAEG;AACI,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC;;ACtB3D;;AAEG;MAUU,SAAS,CAAA;AATtB,IAAA,WAAA,GAAA;AAUE;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;AAE9C;;AAEG;AACgB,QAAA,IAAA,CAAA,KAAK,GAAG,WAAW,CAAY,IAAI,CAAC;AAUxD;AARC;;;;AAIG;AACH,IAAA,SAAS,CAAC,MAAuB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;+GAlBd,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EANT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMtB,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,CAAC;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,oBAAoB,EAAE,UAAU;AACjC,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC;AACtD,iBAAA;;IAuBW;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA;;ACjCM,MAAM,mBAAmB,GAAoB;AAClD,IAAA,KAAK,EAAE,CAAC;CACT;AAEM,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAkB,sBAAsB,CAAC;AAE/F;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,MAAgC,EAAA;IAClE,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE;AAChD,SAAA;KACF;AACH;AAEA;;;AAGG;SACa,kBAAkB,GAAA;AAChC,IAAA,OAAO,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,mBAAmB;AAChF;;AC7BA;;AAEG;MAQU,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;AAQE;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,iBAAiB,EAAE;AAE7C;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,kBAAkB,EAAE;AAE9C;;AAEG;QACc,IAAW,CAAA,WAAA,GAAG,iBAAiB,EAAE;AAElD;;;AAGG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,CAAsB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC7D,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,SAAS,EAAE,eAAe;AAC3B,SAAA,CAAC;AAEF;;;AAGG;AACgB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CACnC;;AAEE,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,eAAe,CAAC,MAAM,CAC3E;AAED;;AAEG;AACK,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;AAKrC;IAHC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;+GAzCnE,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,2BAA2B;AAC/C,qBAAA;AACF,iBAAA;;;ACXD;;AAEG;MAMU,cAAc,CAAA;AAL3B,IAAA,WAAA,GAAA;AAME;;AAEG;QACgB,IAAc,CAAA,cAAA,GAAG,yBAAyB,EAAE;AAE/D;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,iBAAiB,EAAE;AAE7C;;AAEG;AACc,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA+B,UAAU,CAAC;AAiC/E;IA/BC,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC;;QAGtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;;;QAItC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;;;IAK/B,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;;IAI7B,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;;AAG9B,IAAA,QAAQ,CAAC,KAAsB,EAAA;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;;AAG9B,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,KAAK,eAAe,CAAC,MAAM,CAAC;;+GA7C5D,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACpC,iBAAA;8BAiCW,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,MAAM;gBAMV,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO;;;ACjDvB;;AAEG;;;;"}
@@ -56,10 +56,10 @@ class NgpButton {
56
56
  focusVisible: true,
57
57
  });
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpButton, isStandalone: true, selector: "[ngpButton]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-disabled": "state.disabled() ? \"\" : null", "attr.disabled": "isButton && state.disabled() ? true : null" } }, providers: [provideButtonState()], exportAs: ["ngpButton"], ngImport: i0 }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpButton, isStandalone: true, selector: "[ngpButton]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-disabled": "state.disabled() ? \"\" : null", "attr.disabled": "isButton && state.disabled() ? true : null" } }, providers: [provideButtonState()], exportAs: ["ngpButton"], ngImport: i0 }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpButton, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpButton, decorators: [{
63
63
  type: Directive,
64
64
  args: [{
65
65
  selector: '[ngpButton]',
@@ -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 } from '@angular/core';\nimport { syncState } from 'ng-primitives/internal';\nimport {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpButton } from './button';\n\n/**\n * The state token for the Button primitive.\n */\nexport const NgpButtonStateToken = createStateToken<NgpButton>('Button');\n\n/**\n * Provides the Button state.\n */\nexport const provideButtonState = createStateProvider(NgpButtonStateToken);\n\n/**\n * Injects the Button state.\n */\nexport const injectButtonState = createStateInjector(NgpButtonStateToken);\n\n/**\n * The Button state registration function.\n */\nexport const buttonState = createState(NgpButtonStateToken);\n\ninterface SyncButton {\n disabled: Signal<boolean>;\n}\n\n/**\n * Sync the button state with control state.\n * @param disabled The disabled state of the control.\n */\nexport function syncButton({ disabled }: SyncButton) {\n const button = injectButtonState();\n syncState(disabled, button().disabled);\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HOST_TAG_NAME, inject, input } from '@angular/core';\nimport { setupInteractions } from 'ng-primitives/internal';\nimport { buttonState, provideButtonState } from './button-state';\n\n@Directive({\n selector: '[ngpButton]',\n exportAs: 'ngpButton',\n providers: [provideButtonState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n '[attr.disabled]': 'isButton && state.disabled() ? true : null',\n },\n})\nexport class NgpButton {\n /**\n * Get the tag name of the element.\n */\n private readonly tagName = inject(HOST_TAG_NAME);\n\n /**\n * Whether the button is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * Detect if this is an HTML button element.\n */\n protected readonly isButton = this.tagName.toLowerCase() === 'button';\n\n /**\n * The button state.\n */\n protected readonly state = buttonState<NgpButton>(this);\n\n constructor() {\n // setup the hover, press, and focus-visible listeners\n setupInteractions({\n disabled: this.state.disabled,\n hover: true,\n press: true,\n focusVisible: true,\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUA;;AAEG;AACI,MAAM,mBAAmB,GAAG,gBAAgB,CAAY,QAAQ,CAAC;AAExE;;AAEG;MACU,kBAAkB,GAAG,mBAAmB,CAAC,mBAAmB;AAEzE;;AAEG;MACU,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB;AAExE;;AAEG;AACI,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC;AAM3D;;;AAGG;AACa,SAAA,UAAU,CAAC,EAAE,QAAQ,EAAc,EAAA;AACjD,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;IAClC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACxC;;MC3Ba,SAAS,CAAA;AAuBpB,IAAA,WAAA,GAAA;AAtBA;;AAEG;AACc,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAEhD;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AACtD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;AAEF;;AAEG;QACgB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AAErE;;AAEG;AACgB,QAAA,IAAA,CAAA,KAAK,GAAG,WAAW,CAAY,IAAI,CAAC;;AAIrD,QAAA,iBAAiB,CAAC;AAChB,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;;8GA9BO,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EANT,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,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,eAAA,EAAA,4CAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAMtB,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,CAAC;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,8BAA8B;AACtD,wBAAA,iBAAiB,EAAE,4CAA4C;AAChE,qBAAA;AACF,iBAAA;;;ACbD;;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 } from '@angular/core';\nimport { syncState } from 'ng-primitives/internal';\nimport {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpButton } from './button';\n\n/**\n * The state token for the Button primitive.\n */\nexport const NgpButtonStateToken = createStateToken<NgpButton>('Button');\n\n/**\n * Provides the Button state.\n */\nexport const provideButtonState = createStateProvider(NgpButtonStateToken);\n\n/**\n * Injects the Button state.\n */\nexport const injectButtonState = createStateInjector(NgpButtonStateToken);\n\n/**\n * The Button state registration function.\n */\nexport const buttonState = createState(NgpButtonStateToken);\n\ninterface SyncButton {\n disabled: Signal<boolean>;\n}\n\n/**\n * Sync the button state with control state.\n * @param disabled The disabled state of the control.\n */\nexport function syncButton({ disabled }: SyncButton) {\n const button = injectButtonState();\n syncState(disabled, button().disabled);\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HOST_TAG_NAME, inject, input } from '@angular/core';\nimport { setupInteractions } from 'ng-primitives/internal';\nimport { buttonState, provideButtonState } from './button-state';\n\n@Directive({\n selector: '[ngpButton]',\n exportAs: 'ngpButton',\n providers: [provideButtonState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n '[attr.disabled]': 'isButton && state.disabled() ? true : null',\n },\n})\nexport class NgpButton {\n /**\n * Get the tag name of the element.\n */\n private readonly tagName = inject(HOST_TAG_NAME);\n\n /**\n * Whether the button is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * Detect if this is an HTML button element.\n */\n protected readonly isButton = this.tagName.toLowerCase() === 'button';\n\n /**\n * The button state.\n */\n protected readonly state = buttonState<NgpButton>(this);\n\n constructor() {\n // setup the hover, press, and focus-visible listeners\n setupInteractions({\n disabled: this.state.disabled,\n hover: true,\n press: true,\n focusVisible: true,\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUA;;AAEG;AACI,MAAM,mBAAmB,GAAG,gBAAgB,CAAY,QAAQ,CAAC;AAExE;;AAEG;MACU,kBAAkB,GAAG,mBAAmB,CAAC,mBAAmB;AAEzE;;AAEG;MACU,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB;AAExE;;AAEG;AACI,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC;AAM3D;;;AAGG;AACa,SAAA,UAAU,CAAC,EAAE,QAAQ,EAAc,EAAA;AACjD,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;IAClC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACxC;;MC3Ba,SAAS,CAAA;AAuBpB,IAAA,WAAA,GAAA;AAtBA;;AAEG;AACc,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAEhD;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AACtD,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;AAEF;;AAEG;QACgB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AAErE;;AAEG;AACgB,QAAA,IAAA,CAAA,KAAK,GAAG,WAAW,CAAY,IAAI,CAAC;;AAIrD,QAAA,iBAAiB,CAAC;AAChB,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;;+GA9BO,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EANT,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,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,eAAA,EAAA,4CAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMtB,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,CAAC;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,8BAA8B;AACtD,wBAAA,iBAAiB,EAAE,4CAA4C;AAChE,qBAAA;AACF,iBAAA;;;ACbD;;AAEG;;;;"}
@@ -102,10 +102,10 @@ class NgpCheckbox {
102
102
  this.indeterminateChange.emit(false);
103
103
  }
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpCheckbox, isStandalone: true, selector: "[ngpCheckbox]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "ngpCheckboxChecked", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "ngpCheckboxIndeterminate", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "ngpCheckboxRequired", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpCheckboxDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: "ngpCheckboxCheckedChange", indeterminateChange: "ngpCheckboxIndeterminateChange" }, host: { attributes: { "role": "checkbox" }, listeners: { "keydown.enter": "onEnter($event)", "click": "toggle($event)", "keydown.space": "toggle($event)" }, properties: { "attr.aria-checked": "state.indeterminate() ? \"mixed\" : state.checked()", "attr.data-checked": "state.checked() ? \"\" : null", "attr.data-indeterminate": "state.indeterminate() ? \"\" : null", "attr.aria-disabled": "state.disabled()", "tabindex": "state.disabled() ? -1 : 0" } }, providers: [provideCheckboxState()], ngImport: i0 }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpCheckbox, isStandalone: true, selector: "[ngpCheckbox]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "ngpCheckboxChecked", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "ngpCheckboxIndeterminate", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "ngpCheckboxRequired", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpCheckboxDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: "ngpCheckboxCheckedChange", indeterminateChange: "ngpCheckboxIndeterminateChange" }, host: { attributes: { "role": "checkbox" }, listeners: { "keydown.enter": "onEnter($event)", "click": "toggle($event)", "keydown.space": "toggle($event)" }, properties: { "attr.aria-checked": "state.indeterminate() ? \"mixed\" : state.checked()", "attr.data-checked": "state.checked() ? \"\" : null", "attr.data-indeterminate": "state.indeterminate() ? \"\" : null", "attr.aria-disabled": "state.disabled()", "tabindex": "state.disabled() ? -1 : 0" } }, providers: [provideCheckboxState()], ngImport: i0 }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpCheckbox, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpCheckbox, decorators: [{
109
109
  type: Directive,
110
110
  args: [{
111
111
  selector: '[ngpCheckbox]',
@@ -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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpCheckbox } from './checkbox';\n\n/**\n * The state token for the Checkbox primitive.\n */\nexport const NgpCheckboxStateToken = createStateToken<NgpCheckbox>('Checkbox');\n\n/**\n * Provides the Checkbox state.\n */\nexport const provideCheckboxState = createStateProvider(NgpCheckboxStateToken);\n\n/**\n * Injects the Checkbox state.\n */\nexport const injectCheckboxState = createStateInjector(NgpCheckboxStateToken);\n\n/**\n * The Checkbox state registration function.\n */\nexport const checkboxState = createState(NgpCheckboxStateToken);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, HostListener, booleanAttribute, input, output } from '@angular/core';\nimport { setupFormControl } from 'ng-primitives/form-field';\nimport { setupInteractions } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { checkboxState, 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()],\n host: {\n role: 'checkbox',\n '[attr.aria-checked]': 'state.indeterminate() ? \"mixed\" : state.checked()',\n '[attr.data-checked]': 'state.checked() ? \"\" : null',\n '[attr.data-indeterminate]': 'state.indeterminate() ? \"\" : null',\n '[attr.aria-disabled]': 'state.disabled()',\n '[tabindex]': 'state.disabled() ? -1 : 0',\n },\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 = checkboxState<NgpCheckbox>(this);\n\n constructor() {\n setupFormControl({ id: this.state.id, disabled: this.state.disabled });\n setupInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled: this.state.disabled,\n });\n }\n\n @HostListener('keydown.enter', ['$event'])\n protected onEnter(event: KeyboardEvent): void {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n event.preventDefault();\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown.space', ['$event'])\n toggle(event?: Event): void {\n if (this.state.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 this.state.checked.set(this.state.indeterminate() ? true : !this.state.checked());\n this.checkedChange.emit(this.state.checked());\n\n // if the checkbox was indeterminate, it isn't anymore\n if (this.state.indeterminate()) {\n this.state.indeterminate.set(false);\n this.indeterminateChange.emit(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"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 {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpCheckbox } from './checkbox';\n\n/**\n * The state token for the Checkbox primitive.\n */\nexport const NgpCheckboxStateToken = createStateToken<NgpCheckbox>('Checkbox');\n\n/**\n * Provides the Checkbox state.\n */\nexport const provideCheckboxState = createStateProvider(NgpCheckboxStateToken);\n\n/**\n * Injects the Checkbox state.\n */\nexport const injectCheckboxState = createStateInjector(NgpCheckboxStateToken);\n\n/**\n * The Checkbox state registration function.\n */\nexport const checkboxState = createState(NgpCheckboxStateToken);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, HostListener, booleanAttribute, input, output } from '@angular/core';\nimport { setupFormControl } from 'ng-primitives/form-field';\nimport { setupInteractions } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { checkboxState, 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()],\n host: {\n role: 'checkbox',\n '[attr.aria-checked]': 'state.indeterminate() ? \"mixed\" : state.checked()',\n '[attr.data-checked]': 'state.checked() ? \"\" : null',\n '[attr.data-indeterminate]': 'state.indeterminate() ? \"\" : null',\n '[attr.aria-disabled]': 'state.disabled()',\n '[tabindex]': 'state.disabled() ? -1 : 0',\n },\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 = checkboxState<NgpCheckbox>(this);\n\n constructor() {\n setupFormControl({ id: this.state.id, disabled: this.state.disabled });\n setupInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled: this.state.disabled,\n });\n }\n\n @HostListener('keydown.enter', ['$event'])\n protected onEnter(event: KeyboardEvent): void {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n event.preventDefault();\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown.space', ['$event'])\n toggle(event?: Event): void {\n if (this.state.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 this.state.checked.set(this.state.indeterminate() ? true : !this.state.checked());\n this.checkedChange.emit(this.state.checked());\n\n // if the checkbox was indeterminate, it isn't anymore\n if (this.state.indeterminate()) {\n this.state.indeterminate.set(false);\n this.indeterminateChange.emit(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -17,10 +17,10 @@ class NgpHeader {
17
17
  */
18
18
  this.id = input(uniqueId('ngp-header'));
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpHeader, isStandalone: true, selector: "[ngpHeader]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.id": "id()" } }, providers: [{ provide: NgpHeaderToken, useExisting: NgpHeader }], exportAs: ["ngpHeader"], ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpHeader, isStandalone: true, selector: "[ngpHeader]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.id": "id()" } }, providers: [{ provide: NgpHeaderToken, useExisting: NgpHeader }], exportAs: ["ngpHeader"], ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpHeader, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpHeader, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: '[ngpHeader]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-common.mjs","sources":["../../../../packages/ng-primitives/common/src/header/header-token.ts","../../../../packages/ng-primitives/common/src/header/header.ts","../../../../packages/ng-primitives/common/src/ng-primitives-common.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpHeader } from './header';\n\nexport const NgpHeaderToken = new InjectionToken<NgpHeader>('NgpHeaderToken');\n\n/**\n * Inject the Header directive instance\n */\nexport function injectHeader(): NgpHeader {\n return inject(NgpHeaderToken);\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { NgpHeaderToken } from './header-token';\n\n@Directive({\n selector: '[ngpHeader]',\n exportAs: 'ngpHeader',\n providers: [{ provide: NgpHeaderToken, useExisting: NgpHeader }],\n host: {\n role: 'presentation',\n '[attr.id]': 'id()',\n },\n})\nexport class NgpHeader {\n /**\n * The id of the header.\n */\n readonly id = input(uniqueId('ngp-header'));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAY,gBAAgB;AAE5E;;AAEG;SACa,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC;AAC/B;;MCGa,SAAS,CAAA;AATtB,IAAA,WAAA,GAAA;AAUE;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5C;8GALY,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,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EANT,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAMrD,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAW,SAAA,EAAE,CAAC;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,WAAW,EAAE,MAAM;AACpB,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-primitives-common.mjs","sources":["../../../../packages/ng-primitives/common/src/header/header-token.ts","../../../../packages/ng-primitives/common/src/header/header.ts","../../../../packages/ng-primitives/common/src/ng-primitives-common.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpHeader } from './header';\n\nexport const NgpHeaderToken = new InjectionToken<NgpHeader>('NgpHeaderToken');\n\n/**\n * Inject the Header directive instance\n */\nexport function injectHeader(): NgpHeader {\n return inject(NgpHeaderToken);\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { NgpHeaderToken } from './header-token';\n\n@Directive({\n selector: '[ngpHeader]',\n exportAs: 'ngpHeader',\n providers: [{ provide: NgpHeaderToken, useExisting: NgpHeader }],\n host: {\n role: 'presentation',\n '[attr.id]': 'id()',\n },\n})\nexport class NgpHeader {\n /**\n * The id of the header.\n */\n readonly id = input(uniqueId('ngp-header'));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAY,gBAAgB;AAE5E;;AAEG;SACa,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC;AAC/B;;MCGa,SAAS,CAAA;AATtB,IAAA,WAAA,GAAA;AAUE;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5C;+GALY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EANT,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMrD,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAW,SAAA,EAAE,CAAC;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,WAAW,EAAE,MAAM;AACpB,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}