@cute-widgets/base 20.0.4 → 21.0.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 (171) hide show
  1. package/CHANGELOG.md +18 -6
  2. package/fesm2022/cute-widgets-base-abstract.mjs +19 -29
  3. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
  4. package/fesm2022/cute-widgets-base-alert.mjs +10 -10
  5. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -1
  6. package/fesm2022/cute-widgets-base-autocomplete.mjs +14 -14
  7. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -1
  8. package/fesm2022/cute-widgets-base-badge.mjs +46 -14
  9. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -1
  10. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +11 -11
  11. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -1
  12. package/fesm2022/cute-widgets-base-button-toggle.mjs +61 -37
  13. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
  14. package/fesm2022/cute-widgets-base-button.mjs +176 -112
  15. package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
  16. package/fesm2022/cute-widgets-base-card.mjs +40 -40
  17. package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
  18. package/fesm2022/cute-widgets-base-checkbox.mjs +28 -28
  19. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -1
  20. package/fesm2022/cute-widgets-base-chips.mjs +49 -61
  21. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
  22. package/fesm2022/cute-widgets-base-collapse.mjs +120 -132
  23. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
  24. package/fesm2022/cute-widgets-base-core-datetime.mjs +11 -11
  25. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -1
  26. package/fesm2022/cute-widgets-base-core-directives.mjs +21 -21
  27. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
  28. package/fesm2022/cute-widgets-base-core-error.mjs +6 -6
  29. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -1
  30. package/fesm2022/cute-widgets-base-core-layout.mjs +13 -1
  31. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
  32. package/fesm2022/cute-widgets-base-core-line.mjs +7 -7
  33. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
  34. package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
  35. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
  36. package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
  37. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
  38. package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
  39. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
  40. package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
  41. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
  42. package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
  43. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
  44. package/fesm2022/cute-widgets-base-core-theming.mjs +7 -7
  45. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
  46. package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
  47. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
  48. package/fesm2022/cute-widgets-base-core.mjs +50 -38
  49. package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
  50. package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
  51. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
  52. package/fesm2022/cute-widgets-base-dialog.mjs +170 -135
  53. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
  54. package/fesm2022/cute-widgets-base-divider.mjs +7 -7
  55. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
  56. package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
  57. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
  58. package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
  59. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
  60. package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
  61. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
  62. package/fesm2022/cute-widgets-base-icon.mjs +10 -10
  63. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
  64. package/fesm2022/cute-widgets-base-input.mjs +7 -7
  65. package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
  66. package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
  67. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
  68. package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
  69. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
  70. package/fesm2022/cute-widgets-base-layout.mjs +23 -23
  71. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
  72. package/fesm2022/cute-widgets-base-list.mjs +56 -56
  73. package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
  74. package/fesm2022/cute-widgets-base-menu.mjs +581 -388
  75. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
  76. package/fesm2022/cute-widgets-base-navbar.mjs +101 -61
  77. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
  78. package/fesm2022/cute-widgets-base-paginator.mjs +13 -13
  79. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
  80. package/fesm2022/cute-widgets-base-progress.mjs +10 -10
  81. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
  82. package/fesm2022/cute-widgets-base-radio.mjs +11 -11
  83. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
  84. package/fesm2022/cute-widgets-base-select.mjs +11 -11
  85. package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
  86. package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
  87. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
  88. package/fesm2022/cute-widgets-base-slider.mjs +10 -10
  89. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
  90. package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
  91. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
  92. package/fesm2022/cute-widgets-base-sort.mjs +13 -13
  93. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
  94. package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
  95. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
  96. package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
  97. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
  98. package/fesm2022/cute-widgets-base-table.mjs +58 -66
  99. package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
  100. package/fesm2022/cute-widgets-base-tabs.mjs +100 -75
  101. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
  102. package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
  103. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
  104. package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
  105. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
  106. package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
  107. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
  108. package/fesm2022/cute-widgets-base-tree.mjs +25 -25
  109. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
  110. package/fesm2022/cute-widgets-base.mjs +4 -4
  111. package/package.json +121 -121
  112. package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +9 -3
  113. package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
  114. package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
  115. package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
  116. package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +15 -5
  117. package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +44 -22
  118. package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
  119. package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
  120. package/types/cute-widgets-base-collapse.d.ts +98 -0
  121. package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +7 -1
  122. package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
  123. package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
  124. package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
  125. package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +7 -1
  126. package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
  127. package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +81 -57
  128. package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
  129. package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
  130. package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
  131. package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
  132. package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
  133. package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +24 -9
  134. package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +2 -2
  135. package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
  136. package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
  137. package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
  138. package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
  139. package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
  140. package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
  141. package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +35 -14
  142. package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
  143. package/collapse/index.d.ts +0 -97
  144. /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
  145. /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
  146. /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
  147. /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
  148. /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
  149. /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
  150. /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
  151. /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
  152. /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
  153. /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
  154. /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
  155. /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
  156. /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
  157. /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
  158. /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
  159. /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
  160. /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
  161. /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
  162. /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
  163. /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
  164. /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
  165. /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
  166. /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
  167. /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
  168. /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
  169. /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
  170. /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
  171. /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
@@ -66,10 +66,10 @@ class CuteExpansionPanelContent {
66
66
  this._template = inject(TemplateRef);
67
67
  this._expansionPanel = inject(CUTE_EXPANSION_PANEL, { optional: true });
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteExpansionPanelContent, isStandalone: true, selector: "ng-template[cuteExpansionPanelContent]", ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteExpansionPanelContent, isStandalone: true, selector: "ng-template[cuteExpansionPanelContent]", ngImport: i0 }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelContent, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelContent, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: 'ng-template[cuteExpansionPanelContent]',
@@ -223,15 +223,15 @@ class CuteExpansionPanel extends CdkAccordionItem {
223
223
  }
224
224
  });
225
225
  }
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteExpansionPanel, isStandalone: true, selector: "cute-expansion-panel", inputs: { hideToggle: "hideToggle", togglePosition: "togglePosition" }, outputs: { afterExpand: "afterExpand", afterCollapse: "afterCollapse" }, host: { properties: { "class.accordion-item": "accordion", "class.accordion": "!accordion", "class.cute-expanded": "expanded" }, classAttribute: "cute-expansion-panel" }, providers: [
226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteExpansionPanel, isStandalone: true, selector: "cute-expansion-panel", inputs: { hideToggle: "hideToggle", togglePosition: "togglePosition" }, outputs: { afterExpand: "afterExpand", afterCollapse: "afterCollapse" }, host: { properties: { "class.accordion-item": "accordion", "class.accordion": "!accordion", "class.cute-expanded": "expanded" }, classAttribute: "cute-expansion-panel" }, providers: [
228
228
  // Provide CuteAccordion as undefined to prevent nested expansion panels from registering
229
229
  // to the same accordion.
230
230
  { provide: CUTE_ACCORDION, useValue: undefined },
231
231
  { provide: CUTE_EXPANSION_PANEL, useExisting: CuteExpansionPanel },
232
- ], queries: [{ propertyName: "_lazyContent", first: true, predicate: CuteExpansionPanelContent, descendants: true }], viewQueries: [{ propertyName: "_body", first: true, predicate: ["body"], descendants: true }, { propertyName: "_bodyWrapper", first: true, predicate: ["bodyWrapper"], descendants: true }], exportAs: ["cuteExpansionPanel"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [".cute-expansion-panel{display:block;box-sizing:content-box;margin:0;position:relative}.cute-expansion-panel .cute-expansion-panel-content{display:grid;grid-template-rows:0fr;overflow:hidden}.cute-expansion-panel .cute-expansion-panel-content .cute-expansion-panel-body{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-expansion-panel .cute-expansion-panel-content.expanded{grid-template-rows:1fr}.cute-expansion-panel .cute-expansion-panel-content.expanded .cute-expansion-panel-body{display:block}.cute-expansion-panel .cute-expansion-panel-content.collapsed{grid-template-rows:0fr}.cute-expansion-panel .cute-expansion-panel-content.collapsed .cute-expansion-panel-body{display:none}.cute-expansion-panel.cute-expansion-panel-animations-enabled .cute-expansion-panel-content{transition:grid-template-rows .2s}.cute-expansion-panel.accordion.cute-expansion-panel-separated,.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-item{border:0}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button{border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button:not(:focus):not(.collapsed){box-shadow:none}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse{margin-top:4px;border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse.collapsed{margin-top:0;border:0}@media (forced-colors: active){.cute-accordion .cute-expansion-panel{outline:solid 1px}}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
232
+ ], queries: [{ propertyName: "_lazyContent", first: true, predicate: CuteExpansionPanelContent, descendants: true }], viewQueries: [{ propertyName: "_body", first: true, predicate: ["body"], descendants: true }, { propertyName: "_bodyWrapper", first: true, predicate: ["bodyWrapper"], descendants: true }], exportAs: ["cuteExpansionPanel"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [".cute-expansion-panel{display:block;box-sizing:content-box;margin:0;position:relative}.cute-expansion-panel .cute-expansion-panel-content{display:grid;grid-template-rows:0fr;overflow:hidden}.cute-expansion-panel .cute-expansion-panel-content .cute-expansion-panel-body{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-expansion-panel .cute-expansion-panel-content.expanded{grid-template-rows:1fr}.cute-expansion-panel .cute-expansion-panel-content.expanded .cute-expansion-panel-body{display:block}.cute-expansion-panel .cute-expansion-panel-content.collapsed{grid-template-rows:0fr}.cute-expansion-panel .cute-expansion-panel-content.collapsed .cute-expansion-panel-body{display:none}.cute-expansion-panel.cute-expansion-panel-animations-enabled .cute-expansion-panel-content{transition:grid-template-rows .2s}.cute-expansion-panel.accordion.cute-expansion-panel-separated,.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-item{border:0}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button{border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button:not(:focus):not(.collapsed){box-shadow:none}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse{margin-top:4px;border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse.collapsed{margin-top:0;border:0}@media(forced-colors:active){.cute-accordion .cute-expansion-panel{outline:solid 1px}}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanel, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanel, decorators: [{
235
235
  type: Component,
236
236
  args: [{ selector: 'cute-expansion-panel', exportAs: 'cuteExpansionPanel', host: {
237
237
  'class': 'cute-expansion-panel',
@@ -243,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
243
243
  // to the same accordion.
244
244
  { provide: CUTE_ACCORDION, useValue: undefined },
245
245
  { provide: CUTE_EXPANSION_PANEL, useExisting: CuteExpansionPanel },
246
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [".cute-expansion-panel{display:block;box-sizing:content-box;margin:0;position:relative}.cute-expansion-panel .cute-expansion-panel-content{display:grid;grid-template-rows:0fr;overflow:hidden}.cute-expansion-panel .cute-expansion-panel-content .cute-expansion-panel-body{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-expansion-panel .cute-expansion-panel-content.expanded{grid-template-rows:1fr}.cute-expansion-panel .cute-expansion-panel-content.expanded .cute-expansion-panel-body{display:block}.cute-expansion-panel .cute-expansion-panel-content.collapsed{grid-template-rows:0fr}.cute-expansion-panel .cute-expansion-panel-content.collapsed .cute-expansion-panel-body{display:none}.cute-expansion-panel.cute-expansion-panel-animations-enabled .cute-expansion-panel-content{transition:grid-template-rows .2s}.cute-expansion-panel.accordion.cute-expansion-panel-separated,.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-item{border:0}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button{border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button:not(:focus):not(.collapsed){box-shadow:none}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse{margin-top:4px;border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse.collapsed{margin-top:0;border:0}@media (forced-colors: active){.cute-accordion .cute-expansion-panel{outline:solid 1px}}\n"] }]
246
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n", styles: [".cute-expansion-panel{display:block;box-sizing:content-box;margin:0;position:relative}.cute-expansion-panel .cute-expansion-panel-content{display:grid;grid-template-rows:0fr;overflow:hidden}.cute-expansion-panel .cute-expansion-panel-content .cute-expansion-panel-body{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-expansion-panel .cute-expansion-panel-content.expanded{grid-template-rows:1fr}.cute-expansion-panel .cute-expansion-panel-content.expanded .cute-expansion-panel-body{display:block}.cute-expansion-panel .cute-expansion-panel-content.collapsed{grid-template-rows:0fr}.cute-expansion-panel .cute-expansion-panel-content.collapsed .cute-expansion-panel-body{display:none}.cute-expansion-panel.cute-expansion-panel-animations-enabled .cute-expansion-panel-content{transition:grid-template-rows .2s}.cute-expansion-panel.accordion.cute-expansion-panel-separated,.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-item{border:0}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button{border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-button:not(:focus):not(.collapsed){box-shadow:none}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse{margin-top:4px;border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius)}.cute-expansion-panel.accordion.cute-expansion-panel-separated .accordion-collapse.collapsed{margin-top:0;border:0}@media(forced-colors:active){.cute-accordion .cute-expansion-panel{outline:solid 1px}}\n"] }]
247
247
  }], ctorParameters: () => [], propDecorators: { hideToggle: [{
248
248
  type: Input
249
249
  }], togglePosition: [{
@@ -394,10 +394,10 @@ class CuteExpansionPanelHeader extends CuteLayoutControl {
394
394
  this._parentChangeSubscription.unsubscribe();
395
395
  this._focusMonitor.stopMonitoring(this._elementRef);
396
396
  }
397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
398
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.15", type: CuteExpansionPanelHeader, isStandalone: true, selector: "cute-expansion-panel-header", inputs: { tabIndex: ["tabIndex", "tabIndex", (value) => (value == null ? 0 : numberAttribute(value))], expandedHeight: "expandedHeight", collapsedHeight: "collapsedHeight" }, host: { attributes: { "role": "button" }, listeners: { "click": "_toggle()", "keydown": "_keydown($event)" }, properties: { "class.accordion-header": "!panel.accordion", "class.cute-expanded": "_isExpanded()", "attr.id": "panel._headerId", "attr.tabindex": "-1", "attr.aria-expanded": "_isExpanded()", "attr.aria-disabled": "panel.disabled", "style.height": "_getHeaderHeight()" }, classAttribute: "cute-expansion-panel-header" }, exportAs: ["cuteExpansionPanelHeader"], usesInheritance: true, ngImport: i0, template: "<button class=\"accordion-button\" type=\"button\"\r\n [class.accordion-button-indicator-before]=\"_getTogglePosition()=='before'\"\r\n [class.accordion-button-hide-indicator]=\"!_showToggle()\"\r\n [class.text-body-tertiary]=\"disabled\"\r\n [class.collapsed]=\"!_isExpanded()\"\r\n [attr.aria-expanded]=\"_isExpanded()\"\r\n [attr.aria-controls]=\"panel._contentId\"\r\n [disabled]=\"disabled || null\"\r\n [tabIndex]=\"disabled ? -1 : tabIndex\"\r\n>\r\n <div class=\"cute-expansion-panel-header-content flex-sm-row\">\r\n <ng-content select=\"cute-panel-title\"></ng-content>\r\n <ng-content select=\"cute-panel-description\"></ng-content>\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n", styles: [".cute-expansion-panel-header{display:flex;flex-direction:row;align-items:center}.cute-expansion-panel-header .cute-expansion-panel-header-content{display:flex;flex-direction:column;flex:1;overflow:hidden;align-items:start;margin-top:-4px}.cute-expansion-panel-header .cute-expansion-panel-header-title,.cute-expansion-panel-header .cute-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .cute-expansion-panel-header .cute-expansion-panel-header-title,[dir=rtl] .cute-expansion-panel-header .cute-expansion-panel-header-description{margin-right:0;margin-left:16px}.cute-expansion-panel-header .cute-expansion-panel-header-description{flex-grow:2}.cute-expansion-panel-header .cute-expansion-panel-header-description:empty{display:none}.cute-expansion-panel-header .accordion-button{align-items:start}.cute-expansion-panel-header .accordion-button:disabled:after{filter:opacity(.35)}.cute-expansion-panel-header .accordion-button.accordion-button-hide-indicator:after{visibility:hidden}.cute-expansion-panel-header .accordion-button.accordion-button-indicator-before{flex-direction:row-reverse;gap:16px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
398
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.0", type: CuteExpansionPanelHeader, isStandalone: true, selector: "cute-expansion-panel-header", inputs: { tabIndex: ["tabIndex", "tabIndex", (value) => (value == null ? 0 : numberAttribute(value))], expandedHeight: "expandedHeight", collapsedHeight: "collapsedHeight" }, host: { attributes: { "role": "button" }, listeners: { "click": "_toggle()", "keydown": "_keydown($event)" }, properties: { "class.accordion-header": "!panel.accordion", "class.cute-expanded": "_isExpanded()", "attr.id": "panel._headerId", "attr.tabindex": "-1", "attr.aria-expanded": "_isExpanded()", "attr.aria-disabled": "panel.disabled", "style.height": "_getHeaderHeight()" }, classAttribute: "cute-expansion-panel-header" }, exportAs: ["cuteExpansionPanelHeader"], usesInheritance: true, ngImport: i0, template: "<button class=\"accordion-button\" type=\"button\"\r\n [class.accordion-button-indicator-before]=\"_getTogglePosition()=='before'\"\r\n [class.accordion-button-hide-indicator]=\"!_showToggle()\"\r\n [class.text-body-tertiary]=\"disabled\"\r\n [class.collapsed]=\"!_isExpanded()\"\r\n [attr.aria-expanded]=\"_isExpanded()\"\r\n [attr.aria-controls]=\"panel._contentId\"\r\n [disabled]=\"disabled || null\"\r\n [tabIndex]=\"disabled ? -1 : tabIndex\"\r\n>\r\n <div class=\"cute-expansion-panel-header-content flex-sm-row\">\r\n <ng-content select=\"cute-panel-title\"></ng-content>\r\n <ng-content select=\"cute-panel-description\"></ng-content>\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n", styles: [".cute-expansion-panel-header{display:flex;flex-direction:row;align-items:center}.cute-expansion-panel-header .cute-expansion-panel-header-content{display:flex;flex-direction:column;flex:1;overflow:hidden;align-items:start;margin-top:-4px}.cute-expansion-panel-header .cute-expansion-panel-header-title,.cute-expansion-panel-header .cute-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .cute-expansion-panel-header .cute-expansion-panel-header-title,[dir=rtl] .cute-expansion-panel-header .cute-expansion-panel-header-description{margin-right:0;margin-left:16px}.cute-expansion-panel-header .cute-expansion-panel-header-description{flex-grow:2}.cute-expansion-panel-header .cute-expansion-panel-header-description:empty{display:none}.cute-expansion-panel-header .accordion-button{align-items:start}.cute-expansion-panel-header .accordion-button:disabled:after{filter:opacity(.35)}.cute-expansion-panel-header .accordion-button.accordion-button-hide-indicator:after{visibility:hidden}.cute-expansion-panel-header .accordion-button.accordion-button-indicator-before{flex-direction:row-reverse;gap:16px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
399
399
  }
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelHeader, decorators: [{
400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelHeader, decorators: [{
401
401
  type: Component,
402
402
  args: [{ selector: 'cute-expansion-panel-header', exportAs: 'cuteExpansionPanelHeader', inputs: ['tabIndex'], host: {
403
403
  'class': 'cute-expansion-panel-header',
@@ -431,10 +431,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
431
431
  * Description element of a `<cute-expansion-panel-header>`.
432
432
  */
433
433
  class CuteExpansionPanelDescription {
434
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
435
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteExpansionPanelDescription, isStandalone: true, selector: "cute-panel-description", host: { classAttribute: "cute-expansion-panel-header-description text-secondary " }, ngImport: i0 }); }
434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
435
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteExpansionPanelDescription, isStandalone: true, selector: "cute-panel-description", host: { classAttribute: "cute-expansion-panel-header-description text-secondary " }, ngImport: i0 }); }
436
436
  }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelDescription, decorators: [{
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelDescription, decorators: [{
438
438
  type: Directive,
439
439
  args: [{
440
440
  selector: 'cute-panel-description',
@@ -448,10 +448,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
448
448
  * Title element of a `<cute-expansion-panel-header>`.
449
449
  */
450
450
  class CuteExpansionPanelTitle {
451
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
452
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteExpansionPanelTitle, isStandalone: true, selector: "cute-panel-title", host: { classAttribute: "cute-expansion-panel-header-title" }, ngImport: i0 }); }
451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
452
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteExpansionPanelTitle, isStandalone: true, selector: "cute-panel-title", host: { classAttribute: "cute-expansion-panel-header-title" }, ngImport: i0 }); }
453
453
  }
454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelTitle, decorators: [{
454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelTitle, decorators: [{
455
455
  type: Directive,
456
456
  args: [{
457
457
  selector: 'cute-panel-title',
@@ -513,10 +513,10 @@ class CuteAccordion extends CdkAccordion {
513
513
  this._keyManager?.destroy();
514
514
  this._ownHeaders.destroy();
515
515
  }
516
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteAccordion, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
517
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: CuteAccordion, isStandalone: true, selector: "cute-accordion", inputs: { hideToggle: ["hideToggle", "hideToggle", booleanAttribute], displayMode: "displayMode", togglePosition: "togglePosition" }, host: { properties: { "class.accordion-flush": "displayMode == \"flush\"", "id": "id" }, classAttribute: "cute-accordion accordion d-block" }, providers: [{ provide: CUTE_ACCORDION, useExisting: CuteAccordion }], queries: [{ propertyName: "_headers", predicate: CuteExpansionPanelHeader, descendants: true }], exportAs: ["cuteAccordion"], usesInheritance: true, ngImport: i0 }); }
516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAccordion, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
517
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteAccordion, isStandalone: true, selector: "cute-accordion", inputs: { hideToggle: ["hideToggle", "hideToggle", booleanAttribute], displayMode: "displayMode", togglePosition: "togglePosition" }, host: { properties: { "class.accordion-flush": "displayMode == \"flush\"", "id": "id" }, classAttribute: "cute-accordion accordion d-block" }, providers: [{ provide: CUTE_ACCORDION, useExisting: CuteAccordion }], queries: [{ propertyName: "_headers", predicate: CuteExpansionPanelHeader, descendants: true }], exportAs: ["cuteAccordion"], usesInheritance: true, ngImport: i0 }); }
518
518
  }
519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteAccordion, decorators: [{
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAccordion, decorators: [{
520
520
  type: Directive,
521
521
  args: [{
522
522
  selector: 'cute-accordion',
@@ -555,10 +555,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
555
555
  * Actions of a `<cute-expansion-panel>`.
556
556
  */
557
557
  class CuteExpansionPanelActionRow {
558
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelActionRow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
559
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteExpansionPanelActionRow, isStandalone: true, selector: "cute-action-row", host: { classAttribute: "cute-action-row" }, ngImport: i0 }); }
558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelActionRow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
559
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteExpansionPanelActionRow, isStandalone: true, selector: "cute-action-row", host: { classAttribute: "cute-action-row" }, ngImport: i0 }); }
560
560
  }
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionPanelActionRow, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionPanelActionRow, decorators: [{
562
562
  type: Directive,
563
563
  args: [{
564
564
  selector: 'cute-action-row',
@@ -578,8 +578,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
578
578
  * that can be found at http://www.apache.org/licenses/LICENSE-2.0
579
579
  */
580
580
  class CuteExpansionModule {
581
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
582
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionModule, imports: [CommonModule,
581
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
582
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionModule, imports: [CommonModule,
583
583
  CuteAccordion,
584
584
  CuteExpansionPanel,
585
585
  CuteExpansionPanelContent,
@@ -593,9 +593,9 @@ class CuteExpansionModule {
593
593
  CuteExpansionPanelActionRow,
594
594
  CuteExpansionPanelTitle,
595
595
  CuteExpansionPanelDescription] }); }
596
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionModule, imports: [CommonModule] }); }
596
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionModule, imports: [CommonModule] }); }
597
597
  }
598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteExpansionModule, decorators: [{
598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteExpansionModule, decorators: [{
599
599
  type: NgModule,
600
600
  args: [{
601
601
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-expansion.mjs","sources":["../../../../projects/cute-widgets/base/expansion/src/accordion-base.interface.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-base.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-content.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel.component.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel.component.html","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-header.component.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-header.component.html","../../../../projects/cute-widgets/base/expansion/src/accordion.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-action-row.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion.module.ts","../../../../projects/cute-widgets/base/expansion/cute-widgets-base-expansion.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {CdkAccordion} from '@angular/cdk/accordion';\r\n\r\n/** CuteAccordion's display modes. */\r\nexport type CuteAccordionDisplayMode = 'default' | 'flush';\r\n\r\n/** CuteAccordion's toggle positions. */\r\nexport type CuteAccordionTogglePosition = 'before' | 'after';\r\n\r\n/**\r\n * Base interface for a `CuteAccordion`.\r\n * @docs-private\r\n */\r\nexport interface CuteAccordionBase extends CdkAccordion {\r\n /** Whether the expansion indicator should be hidden. */\r\n hideToggle: boolean;\r\n\r\n /** Display mode used for all expansion panels in the accordion. */\r\n displayMode: CuteAccordionDisplayMode;\r\n\r\n /** The position of the expansion indicator. */\r\n togglePosition: CuteAccordionTogglePosition;\r\n\r\n /** Handles keyboard events coming in from the panel headers. */\r\n _handleHeaderKeydown: (event: KeyboardEvent) => void;\r\n\r\n /** Handles focus events on the panel headers. */\r\n _handleHeaderFocus: (header: any) => void;\r\n}\r\n\r\n/**\r\n * Token used to provide a `CuteAccordion` to `CuteExpansionPanel`.\r\n * Used primarily to avoid circular imports between `CuteAccordion` and `CuteExpansionPanel`.\r\n */\r\nexport const CUTE_ACCORDION = new InjectionToken<CuteAccordionBase>('CUTE_ACCORDION');\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\r\n\r\n/**\r\n * Base interface for a `CuteExpansionPanel`.\r\n */\r\nexport interface CuteExpansionPanelBase extends CdkAccordionItem {\r\n /** Whether the toggle indicator should be hidden. */\r\n hideToggle: boolean;\r\n}\r\n\r\n/**\r\n * Token used to provide a `CuteExpansionPanel` to `CuteExpansionPanelContent`.\r\n * Used to avoid circular imports between `CuteExpansionPanel` and `CuteExpansionPanelContent`.\r\n */\r\nexport const CUTE_EXPANSION_PANEL = new InjectionToken<CuteExpansionPanelBase>('CUTE_EXPANSION_PANEL');\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, TemplateRef, inject} from '@angular/core';\r\nimport {CUTE_EXPANSION_PANEL, CuteExpansionPanelBase} from './expansion-panel-base';\r\n\r\n/**\r\n * Expansion panel content that will be rendered lazily\r\n * after the panel is opened for the first time.\r\n */\r\n@Directive({\r\n selector: 'ng-template[cuteExpansionPanelContent]',\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelContent {\r\n _template = inject<TemplateRef<any>>(TemplateRef);\r\n _expansionPanel = inject<CuteExpansionPanelBase>(CUTE_EXPANSION_PANEL, {optional: true});\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {}\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkAccordionItem} from \"@angular/cdk/accordion\";\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n Component, ContentChild, ElementRef, EventEmitter, inject,\r\n InjectionToken, Input,\r\n OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, ViewContainerRef,\r\n ViewEncapsulation,\r\n DOCUMENT, NgZone, Renderer2\r\n} from \"@angular/core\";\r\n\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {CdkPortalOutlet, TemplatePortal} from \"@angular/cdk/portal\";\r\nimport {UniqueSelectionDispatcher} from \"@angular/cdk/collections\";\r\nimport {filter, startWith, Subject, take} from \"rxjs\";\r\nimport {CUTE_EXPANSION_PANEL, CuteExpansionPanelBase} from \"./expansion-panel-base\";\r\nimport { CuteAccordionBase, CuteAccordionTogglePosition, CUTE_ACCORDION} from \"./accordion-base.interface\";\r\nimport { CuteExpansionPanelContent } from \"./expansion-panel-content.directive\";\r\nimport {Expandable} from \"@cute-widgets/base/abstract\";\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\n\r\n/** CuteExpansionPanel's states. */\r\nexport type CuteExpansionPanelState = 'expanded' | 'collapsed';\r\n\r\n/** Counter for generating unique element ids. */\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Object that can be used to override the default options\r\n * for all the expansion panels in a module.\r\n */\r\nexport interface CuteExpansionPanelDefaultOptions {\r\n /** Height of the header while the panel is expanded. */\r\n expandedHeight: string;\r\n\r\n /** Height of the header while the panel is collapsed. */\r\n collapsedHeight: string;\r\n\r\n /** Whether the toggle indicator should be hidden. */\r\n hideToggle: boolean;\r\n}\r\n\r\n/**\r\n * Injection token that can be used to configure the default\r\n * options for the expansion panel component.\r\n */\r\nexport const CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS =\r\n new InjectionToken<CuteExpansionPanelDefaultOptions>('CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS');\r\n\r\n/**\r\n * This component can be used as a single element to show expandable content, or as one of\r\n * multiple children of an element with the CuteAccordion directive attached.\r\n */\r\n@Component({\r\n selector: 'cute-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n exportAs: 'cuteExpansionPanel',\r\n host: {\r\n 'class': 'cute-expansion-panel',\r\n '[class.accordion-item]': 'accordion',\r\n '[class.accordion]': '!accordion',\r\n '[class.cute-expanded]': 'expanded',\r\n },\r\n imports: [CdkPortalOutlet],\r\n providers: [\r\n // Provide CuteAccordion as undefined to prevent nested expansion panels from registering\r\n // to the same accordion.\r\n { provide: CUTE_ACCORDION, useValue: undefined },\r\n { provide: CUTE_EXPANSION_PANEL, useExisting: CuteExpansionPanel },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteExpansionPanel extends CdkAccordionItem\r\n implements CuteExpansionPanelBase, Expandable, AfterContentInit, OnChanges, OnDestroy\r\n{\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private readonly _animationsDisabled = _animationsDisabled();\r\n private _document = inject(DOCUMENT);\r\n private _ngZone = inject(NgZone);\r\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n private _cleanupTransitionEnd: (() => void) | undefined;\r\n\r\n /** Whether the toggle indicator should be hidden. */\r\n @Input()\r\n get hideToggle(): boolean { return this._hideToggle || (this.accordion && this.accordion.hideToggle); }\r\n set hideToggle(value: BooleanInput) {\r\n this._hideToggle = coerceBooleanProperty(value);\r\n }\r\n private _hideToggle = false;\r\n\r\n /** The position of the expansion indicator. */\r\n @Input()\r\n get togglePosition(): CuteAccordionTogglePosition {\r\n return this._togglePosition || (this.accordion && this.accordion.togglePosition);\r\n }\r\n set togglePosition(value: CuteAccordionTogglePosition) {\r\n this._togglePosition = value;\r\n }\r\n private _togglePosition: CuteAccordionTogglePosition | undefined;\r\n\r\n /** An event emitted after the body's expansion animation happens. */\r\n @Output() readonly afterExpand = new EventEmitter<void>();\r\n\r\n /** An event emitted after the body's collapse animation happens. */\r\n @Output() readonly afterCollapse = new EventEmitter<void>();\r\n\r\n /** Stream that emits for changes in `@Input` properties. */\r\n readonly _inputChanges = new Subject<SimpleChanges>();\r\n\r\n /** Optionally defined accordion the expansion panel belongs to. */\r\n override readonly accordion = inject<CuteAccordionBase>(CUTE_ACCORDION, {optional: true, skipSelf: true})!;\r\n\r\n /** Content that will be rendered lazily. */\r\n @ContentChild(CuteExpansionPanelContent) _lazyContent: CuteExpansionPanelContent | undefined;\r\n\r\n /** Element containing the panel's user-provided content. */\r\n @ViewChild('body') _body: ElementRef<HTMLElement> | undefined;\r\n\r\n /** Element wrapping the panel body. */\r\n @ViewChild('bodyWrapper')\r\n protected _bodyWrapper: ElementRef<HTMLElement> | undefined;\r\n\r\n /** Portal holding the user's content. */\r\n protected _portal: TemplatePortal | null = null;\r\n\r\n /** ID for the associated header element. Used for a11y labelling. */\r\n _headerId: string = `cute-expansion-panel-header-${uniqueId++}`;\r\n\r\n _contentId: string = this._headerId.replace(\"header\",\"content\");\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n\r\n const defaultOptions = inject<CuteExpansionPanelDefaultOptions>(\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n {optional: true},\r\n );\r\n\r\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\r\n\r\n if (defaultOptions) {\r\n this.hideToggle = defaultOptions.hideToggle;\r\n }\r\n }\r\n\r\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\r\n _hasSpacing(): boolean {\r\n if (this.accordion) {\r\n return this.expanded && this.accordion.displayMode === 'default';\r\n }\r\n return false;\r\n }\r\n\r\n /** Gets the expanded state string. */\r\n _getExpandedState(): CuteExpansionPanelState {\r\n return this.expanded ? 'expanded' : 'collapsed';\r\n }\r\n\r\n /** Toggles the expanded state of the expansion panel. */\r\n override toggle(): void {\r\n this.expanded = !this.expanded;\r\n }\r\n\r\n /** Sets the expanded state of the expansion panel to false. */\r\n override close(): void {\r\n this.expanded = false;\r\n }\r\n\r\n /** Sets the expanded state of the expansion panel to true. */\r\n override open(): void {\r\n this.expanded = true;\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\r\n // Render the content as soon as the panel becomes open.\r\n this.opened\r\n .pipe(\r\n startWith(null),\r\n filter(() => this.expanded && !this._portal),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n this._portal = new TemplatePortal(this._lazyContent!._template, this._viewContainerRef);\r\n });\r\n }\r\n\r\n this._setupAnimationEvents();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this._inputChanges.next(changes);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._cleanupTransitionEnd?.();\r\n this._inputChanges.complete();\r\n }\r\n\r\n /** Checks whether the expansion panel's content contains the currently focused element. */\r\n _containsFocus(): boolean {\r\n if (this._body) {\r\n const focusedElement = this._document.activeElement;\r\n const bodyElement = this._body.nativeElement;\r\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //private _transitionEndListener = ({target, propertyName}: TransitionEvent) => {\r\n private _transitionEndListener = (event: TransitionEvent) => {\r\n // CWT: we change `_bodyWrapper` to `_body` since our template's markup differs from original\r\n if (event.target === this._body?.nativeElement && event.propertyName === 'grid-template-rows') {\r\n // if (event.propertyName===\"transform\" && event.pseudoElement===\"::after\") {\r\n this._ngZone.run(() => {\r\n if (this.expanded) {\r\n this.afterExpand.emit();\r\n } else {\r\n this.afterCollapse.emit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected _setupAnimationEvents() {\r\n // This method is defined separately, because we need to\r\n // disable this logic in some internal components.\r\n this._ngZone.runOutsideAngular(() => {\r\n if (this._animationsDisabled) {\r\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\r\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\r\n } else {\r\n setTimeout(() => {\r\n const element = this._elementRef.nativeElement;\r\n this._cleanupTransitionEnd = this._renderer.listen(\r\n element,\r\n 'transitionend',\r\n this._transitionEndListener,\r\n );\r\n element.classList.add('cute-expansion-panel-animations-enabled');\r\n }, 200);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive, HostAttributeToken, inject, Input, numberAttribute,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {FocusableOption, FocusMonitor, FocusOrigin} from \"@angular/cdk/a11y\";\r\nimport {ENTER, SPACE, hasModifierKey} from \"@angular/cdk/keycodes\";\r\nimport {\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelDefaultOptions\r\n} from \"./expansion-panel.component\";\r\nimport {EMPTY, filter, merge, Subscription} from \"rxjs\";\r\nimport {CuteAccordionTogglePosition} from \"./accordion-base.interface\";\r\nimport {CuteLayoutControl} from '@cute-widgets/base/abstract';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'cute-expansion-panel-header',\r\n templateUrl: './expansion-panel-header.component.html',\r\n styleUrls: ['./expansion-panel-header.component.scss'],\r\n exportAs: 'cuteExpansionPanelHeader',\r\n inputs: ['tabIndex'],\r\n host: {\r\n 'class': 'cute-expansion-panel-header',\r\n '[class.accordion-header]': '!panel.accordion',\r\n '[class.cute-expanded]': '_isExpanded()',\r\n // '[class.cute-expansion-toggle-indicator-after]': `_getTogglePosition() === 'after'`,\r\n // '[class.cute-expansion-toggle-indicator-before]': `_getTogglePosition() === 'before'`,\r\n 'role': 'button',\r\n '[attr.id]': 'panel._headerId',\r\n // CWT: we apply 'tabindex' rule on the nested '.accordion-button' element\r\n '[attr.tabindex]': '-1', /*'disabled ? -1 : tabIndex',*/\r\n // CWT: we apply 'aria-controls' on the nested '.accordion-button' element\r\n // '[attr.aria-controls]': '_getPanelId()',\r\n '[attr.aria-expanded]': '_isExpanded()',\r\n '[attr.aria-disabled]': 'panel.disabled', //'disabled',\r\n '[style.height]': '_getHeaderHeight()',\r\n '(click)': '_toggle()',\r\n '(keydown)': '_keydown($event)',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteExpansionPanelHeader extends CuteLayoutControl implements FocusableOption /* extends ... */ {\r\n readonly panel = inject(CuteExpansionPanel, {host: true});\r\n private _focusMonitor = inject(FocusMonitor);\r\n\r\n private _parentChangeSubscription = Subscription.EMPTY;\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n\r\n const panel = this.panel;\r\n const defaultOptions = inject<CuteExpansionPanelDefaultOptions>(\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n {optional: true},\r\n );\r\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\r\n\r\n const accordionHideToggleChange = panel.accordion\r\n ? panel.accordion._stateChanges.pipe(\r\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition'])),\r\n )\r\n : EMPTY;\r\n this.tabIndex = parseInt(tabIndex || '') || 0;\r\n\r\n // Since the toggle state depends on an @Input on the panel, we\r\n // need to subscribe and trigger change detection manually.\r\n this._parentChangeSubscription = merge(\r\n panel.opened,\r\n panel.closed,\r\n accordionHideToggleChange,\r\n panel._inputChanges.pipe(\r\n filter(changes => {\r\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\r\n }),\r\n ),\r\n ).subscribe(() => this._changeDetectorRef.markForCheck());\r\n\r\n // Avoids focus being lost if the panel contained the focused element and was closed.\r\n panel.closed\r\n .pipe(\r\n takeUntilDestroyed(),\r\n filter(() => panel._containsFocus())\r\n )\r\n .subscribe(() => this._focusMonitor.focusVia(this._elementRef, 'program'));\r\n\r\n if (defaultOptions) {\r\n this.expandedHeight = defaultOptions.expandedHeight;\r\n this.collapsedHeight = defaultOptions.collapsedHeight;\r\n }\r\n }\r\n\r\n /** Height of the header while the panel is expanded. */\r\n @Input() expandedHeight: string | undefined;\r\n\r\n /** Height of the header while the panel is collapsed. */\r\n @Input() collapsedHeight: string | undefined;\r\n\r\n /** Tab index of the header. */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n })\r\n tabIndex: number = 0;\r\n\r\n protected override generateId(): string {\r\n return \"\";\r\n }\r\n\r\n /** Whether the associated panel is disabled. Implemented as a part of `FocusableOption`. */\r\n protected override getDisabledState(): boolean {\r\n return this.panel.disabled;\r\n }\r\n\r\n /** Toggles the expanded state of the panel. */\r\n protected _toggle(): void {\r\n if (!this.disabled) {\r\n this.panel.toggle();\r\n }\r\n }\r\n\r\n /** Gets whether the panel is expanded. */\r\n protected _isExpanded(): boolean {\r\n return this.panel.expanded;\r\n }\r\n\r\n /** Gets the expanded state string of the panel. */\r\n protected _getExpandedState(): string {\r\n return this.panel._getExpandedState();\r\n }\r\n\r\n /** Gets the panel id. */\r\n protected _getPanelId(): string {\r\n return this.panel.id;\r\n }\r\n\r\n /** Gets the toggle position for the header. */\r\n protected _getTogglePosition(): CuteAccordionTogglePosition {\r\n return this.panel.togglePosition;\r\n }\r\n\r\n /** Gets whether the expanded indicator should be shown. */\r\n protected _showToggle(): boolean {\r\n return !this.panel.hideToggle && !this.panel.disabled;\r\n }\r\n\r\n /**\r\n * Gets the current height of the header. Null if no custom height has been\r\n * specified, and if the default height from the stylesheet should be used.\r\n */\r\n protected _getHeaderHeight(): string | null {\r\n const isExpanded = this._isExpanded();\r\n if (isExpanded && this.expandedHeight) {\r\n return this.expandedHeight;\r\n } else if (!isExpanded && this.collapsedHeight) {\r\n return this.collapsedHeight;\r\n }\r\n return null;\r\n }\r\n\r\n /** Handle keydown event calling to toggle() if appropriate. */\r\n protected _keydown(event: KeyboardEvent) {\r\n switch (event.keyCode) {\r\n // Toggle for space and enter keys.\r\n case SPACE:\r\n case ENTER:\r\n if (!hasModifierKey(event)) {\r\n event.preventDefault();\r\n this._toggle();\r\n }\r\n break;\r\n default:\r\n if (this.panel.accordion) {\r\n this.panel.accordion._handleHeaderKeydown(event);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\r\n * @param origin Origin of the action that triggered the focus.\r\n * @param options FocusOptions\r\n */\r\n focus(origin?: FocusOrigin, options?: FocusOptions) {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._elementRef, origin, options);\r\n } else {\r\n this._elementRef.nativeElement.focus(options);\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this._focusMonitor.monitor(this._elementRef).subscribe(origin => {\r\n if (origin && this.panel.accordion) {\r\n this.panel.accordion._handleHeaderFocus(this);\r\n }\r\n });\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._parentChangeSubscription.unsubscribe();\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Description element of a `<cute-expansion-panel-header>`.\r\n */\r\n@Directive({\r\n selector: 'cute-panel-description',\r\n host: {\r\n class: 'cute-expansion-panel-header-description text-secondary ',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelDescription {}\r\n\r\n/**\r\n * Title element of a `<cute-expansion-panel-header>`.\r\n */\r\n@Directive({\r\n selector: 'cute-panel-title',\r\n host: {\r\n class: 'cute-expansion-panel-header-title',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelTitle {}\r\n","<button class=\"accordion-button\" type=\"button\"\r\n [class.accordion-button-indicator-before]=\"_getTogglePosition()=='before'\"\r\n [class.accordion-button-hide-indicator]=\"!_showToggle()\"\r\n [class.text-body-tertiary]=\"disabled\"\r\n [class.collapsed]=\"!_isExpanded()\"\r\n [attr.aria-expanded]=\"_isExpanded()\"\r\n [attr.aria-controls]=\"panel._contentId\"\r\n [disabled]=\"disabled || null\"\r\n [tabIndex]=\"disabled ? -1 : tabIndex\"\r\n>\r\n <div class=\"cute-expansion-panel-header-content flex-sm-row\">\r\n <ng-content select=\"cute-panel-title\"></ng-content>\r\n <ng-content select=\"cute-panel-description\"></ng-content>\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n AfterContentInit, booleanAttribute,\r\n ContentChildren,\r\n Directive,\r\n Input, OnDestroy, QueryList,\r\n} from \"@angular/core\";\r\nimport {CdkAccordion} from \"@angular/cdk/accordion\";\r\nimport {\r\n CUTE_ACCORDION,\r\n CuteAccordionBase,\r\n CuteAccordionDisplayMode,\r\n CuteAccordionTogglePosition\r\n} from \"./accordion-base.interface\";\r\nimport {FocusKeyManager} from \"@angular/cdk/a11y\";\r\nimport {CuteExpansionPanelHeader} from \"./expansion-panel-header.component\";\r\nimport {startWith} from \"rxjs\";\r\n\r\nlet nextId: number = -1;\r\n\r\n@Directive({\r\n selector: 'cute-accordion',\r\n exportAs: 'cuteAccordion',\r\n host: {\r\n 'class': 'cute-accordion accordion d-block',\r\n '[class.accordion-flush]': 'displayMode == \"flush\"',\r\n '[id]': 'id',\r\n },\r\n providers: [{provide: CUTE_ACCORDION, useExisting: CuteAccordion}],\r\n})\r\nexport class CuteAccordion extends CdkAccordion implements CuteAccordionBase, AfterContentInit, OnDestroy {\r\n\r\n private _keyManager: FocusKeyManager<CuteExpansionPanelHeader> | undefined;\r\n\r\n /** Headers belonging to this accordion. */\r\n private _ownHeaders = new QueryList<CuteExpansionPanelHeader>();\r\n\r\n /** All headers inside the accordion. Includes headers inside nested accordions. */\r\n @ContentChildren(CuteExpansionPanelHeader, {descendants: true})\r\n _headers: QueryList<CuteExpansionPanelHeader> | undefined;\r\n\r\n /** Whether the expansion indicator should be hidden. */\r\n @Input({transform: booleanAttribute})\r\n hideToggle: boolean = false;\r\n\r\n /**\r\n * Display mode used for all expansion panels in the accordion. Currently two display\r\n * modes exist:\r\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\r\n * panel at a different elevation from the rest of the accordion.\r\n * flush - removes some borders and rounded corners to render expansion panels edge-to-edge with their parent container.\r\n */\r\n @Input() displayMode: CuteAccordionDisplayMode = 'default';\r\n\r\n /** The position of the expansion indicator. */\r\n @Input() togglePosition: CuteAccordionTogglePosition = 'after';\r\n\r\n ngAfterContentInit() {\r\n this._headers?.changes\r\n .pipe(startWith(this._headers))\r\n .subscribe((headers: QueryList<CuteExpansionPanelHeader>) => {\r\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\r\n this._ownHeaders.notifyOnChanges();\r\n });\r\n\r\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\r\n }\r\n\r\n /** Handles keyboard events coming in from the panel headers. */\r\n _handleHeaderKeydown(event: KeyboardEvent) {\r\n this._keyManager?.onKeydown(event);\r\n }\r\n\r\n _handleHeaderFocus(header: CuteExpansionPanelHeader) {\r\n this._keyManager?.updateActiveItem(header);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._keyManager?.destroy();\r\n this._ownHeaders.destroy();\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Actions of a `<cute-expansion-panel>`.\r\n */\r\n@Directive({\r\n selector: 'cute-action-row',\r\n host: {\r\n class: 'cute-action-row',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelActionRow {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteExpansionPanel} from \"./expansion-panel.component\";\r\nimport {CuteExpansionPanelContent} from \"./expansion-panel-content.directive\";\r\nimport {\r\n CuteExpansionPanelDescription,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelTitle\r\n} from \"./expansion-panel-header.component\";\r\nimport {CuteExpansionPanelActionRow} from \"./expansion-panel-action-row.directive\";\r\nimport {CuteAccordion} from \"./accordion.directive\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n CuteAccordion,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelContent,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelActionRow,\r\n CuteExpansionPanelTitle,\r\n CuteExpansionPanelDescription,\r\n ],\r\n exports: [\r\n CuteAccordion,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelContent,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelActionRow,\r\n CuteExpansionPanelTitle,\r\n CuteExpansionPanelDescription,\r\n ]\r\n})\r\nexport class CuteExpansionModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cute-widgets-base-expansion.mjs","sources":["../../../../projects/cute-widgets/base/expansion/src/accordion-base.interface.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-base.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-content.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel.component.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel.component.html","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-header.component.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-header.component.html","../../../../projects/cute-widgets/base/expansion/src/accordion.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion-panel-action-row.directive.ts","../../../../projects/cute-widgets/base/expansion/src/expansion.module.ts","../../../../projects/cute-widgets/base/expansion/cute-widgets-base-expansion.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {CdkAccordion} from '@angular/cdk/accordion';\r\n\r\n/** CuteAccordion's display modes. */\r\nexport type CuteAccordionDisplayMode = 'default' | 'flush';\r\n\r\n/** CuteAccordion's toggle positions. */\r\nexport type CuteAccordionTogglePosition = 'before' | 'after';\r\n\r\n/**\r\n * Base interface for a `CuteAccordion`.\r\n * @docs-private\r\n */\r\nexport interface CuteAccordionBase extends CdkAccordion {\r\n /** Whether the expansion indicator should be hidden. */\r\n hideToggle: boolean;\r\n\r\n /** Display mode used for all expansion panels in the accordion. */\r\n displayMode: CuteAccordionDisplayMode;\r\n\r\n /** The position of the expansion indicator. */\r\n togglePosition: CuteAccordionTogglePosition;\r\n\r\n /** Handles keyboard events coming in from the panel headers. */\r\n _handleHeaderKeydown: (event: KeyboardEvent) => void;\r\n\r\n /** Handles focus events on the panel headers. */\r\n _handleHeaderFocus: (header: any) => void;\r\n}\r\n\r\n/**\r\n * Token used to provide a `CuteAccordion` to `CuteExpansionPanel`.\r\n * Used primarily to avoid circular imports between `CuteAccordion` and `CuteExpansionPanel`.\r\n */\r\nexport const CUTE_ACCORDION = new InjectionToken<CuteAccordionBase>('CUTE_ACCORDION');\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\r\n\r\n/**\r\n * Base interface for a `CuteExpansionPanel`.\r\n */\r\nexport interface CuteExpansionPanelBase extends CdkAccordionItem {\r\n /** Whether the toggle indicator should be hidden. */\r\n hideToggle: boolean;\r\n}\r\n\r\n/**\r\n * Token used to provide a `CuteExpansionPanel` to `CuteExpansionPanelContent`.\r\n * Used to avoid circular imports between `CuteExpansionPanel` and `CuteExpansionPanelContent`.\r\n */\r\nexport const CUTE_EXPANSION_PANEL = new InjectionToken<CuteExpansionPanelBase>('CUTE_EXPANSION_PANEL');\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, TemplateRef, inject} from '@angular/core';\r\nimport {CUTE_EXPANSION_PANEL, CuteExpansionPanelBase} from './expansion-panel-base';\r\n\r\n/**\r\n * Expansion panel content that will be rendered lazily\r\n * after the panel is opened for the first time.\r\n */\r\n@Directive({\r\n selector: 'ng-template[cuteExpansionPanelContent]',\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelContent {\r\n _template = inject<TemplateRef<any>>(TemplateRef);\r\n _expansionPanel = inject<CuteExpansionPanelBase>(CUTE_EXPANSION_PANEL, {optional: true});\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {}\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkAccordionItem} from \"@angular/cdk/accordion\";\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n Component, ContentChild, ElementRef, EventEmitter, inject,\r\n InjectionToken, Input,\r\n OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, ViewContainerRef,\r\n ViewEncapsulation,\r\n DOCUMENT, NgZone, Renderer2\r\n} from \"@angular/core\";\r\n\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {CdkPortalOutlet, TemplatePortal} from \"@angular/cdk/portal\";\r\nimport {UniqueSelectionDispatcher} from \"@angular/cdk/collections\";\r\nimport {filter, startWith, Subject, take} from \"rxjs\";\r\nimport {CUTE_EXPANSION_PANEL, CuteExpansionPanelBase} from \"./expansion-panel-base\";\r\nimport { CuteAccordionBase, CuteAccordionTogglePosition, CUTE_ACCORDION} from \"./accordion-base.interface\";\r\nimport { CuteExpansionPanelContent } from \"./expansion-panel-content.directive\";\r\nimport {Expandable} from \"@cute-widgets/base/abstract\";\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\n\r\n/** CuteExpansionPanel's states. */\r\nexport type CuteExpansionPanelState = 'expanded' | 'collapsed';\r\n\r\n/** Counter for generating unique element ids. */\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Object that can be used to override the default options\r\n * for all the expansion panels in a module.\r\n */\r\nexport interface CuteExpansionPanelDefaultOptions {\r\n /** Height of the header while the panel is expanded. */\r\n expandedHeight: string;\r\n\r\n /** Height of the header while the panel is collapsed. */\r\n collapsedHeight: string;\r\n\r\n /** Whether the toggle indicator should be hidden. */\r\n hideToggle: boolean;\r\n}\r\n\r\n/**\r\n * Injection token that can be used to configure the default\r\n * options for the expansion panel component.\r\n */\r\nexport const CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS =\r\n new InjectionToken<CuteExpansionPanelDefaultOptions>('CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS');\r\n\r\n/**\r\n * This component can be used as a single element to show expandable content, or as one of\r\n * multiple children of an element with the CuteAccordion directive attached.\r\n */\r\n@Component({\r\n selector: 'cute-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n exportAs: 'cuteExpansionPanel',\r\n host: {\r\n 'class': 'cute-expansion-panel',\r\n '[class.accordion-item]': 'accordion',\r\n '[class.accordion]': '!accordion',\r\n '[class.cute-expanded]': 'expanded',\r\n },\r\n imports: [CdkPortalOutlet],\r\n providers: [\r\n // Provide CuteAccordion as undefined to prevent nested expansion panels from registering\r\n // to the same accordion.\r\n { provide: CUTE_ACCORDION, useValue: undefined },\r\n { provide: CUTE_EXPANSION_PANEL, useExisting: CuteExpansionPanel },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteExpansionPanel extends CdkAccordionItem\r\n implements CuteExpansionPanelBase, Expandable, AfterContentInit, OnChanges, OnDestroy\r\n{\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private readonly _animationsDisabled = _animationsDisabled();\r\n private _document = inject(DOCUMENT);\r\n private _ngZone = inject(NgZone);\r\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n private _cleanupTransitionEnd: (() => void) | undefined;\r\n\r\n /** Whether the toggle indicator should be hidden. */\r\n @Input()\r\n get hideToggle(): boolean { return this._hideToggle || (this.accordion && this.accordion.hideToggle); }\r\n set hideToggle(value: BooleanInput) {\r\n this._hideToggle = coerceBooleanProperty(value);\r\n }\r\n private _hideToggle = false;\r\n\r\n /** The position of the expansion indicator. */\r\n @Input()\r\n get togglePosition(): CuteAccordionTogglePosition {\r\n return this._togglePosition || (this.accordion && this.accordion.togglePosition);\r\n }\r\n set togglePosition(value: CuteAccordionTogglePosition) {\r\n this._togglePosition = value;\r\n }\r\n private _togglePosition: CuteAccordionTogglePosition | undefined;\r\n\r\n /** An event emitted after the body's expansion animation happens. */\r\n @Output() readonly afterExpand = new EventEmitter<void>();\r\n\r\n /** An event emitted after the body's collapse animation happens. */\r\n @Output() readonly afterCollapse = new EventEmitter<void>();\r\n\r\n /** Stream that emits for changes in `@Input` properties. */\r\n readonly _inputChanges = new Subject<SimpleChanges>();\r\n\r\n /** Optionally defined accordion the expansion panel belongs to. */\r\n override readonly accordion = inject<CuteAccordionBase>(CUTE_ACCORDION, {optional: true, skipSelf: true})!;\r\n\r\n /** Content that will be rendered lazily. */\r\n @ContentChild(CuteExpansionPanelContent) _lazyContent: CuteExpansionPanelContent | undefined;\r\n\r\n /** Element containing the panel's user-provided content. */\r\n @ViewChild('body') _body: ElementRef<HTMLElement> | undefined;\r\n\r\n /** Element wrapping the panel body. */\r\n @ViewChild('bodyWrapper')\r\n protected _bodyWrapper: ElementRef<HTMLElement> | undefined;\r\n\r\n /** Portal holding the user's content. */\r\n protected _portal: TemplatePortal | null = null;\r\n\r\n /** ID for the associated header element. Used for a11y labelling. */\r\n _headerId: string = `cute-expansion-panel-header-${uniqueId++}`;\r\n\r\n _contentId: string = this._headerId.replace(\"header\",\"content\");\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n\r\n const defaultOptions = inject<CuteExpansionPanelDefaultOptions>(\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n {optional: true},\r\n );\r\n\r\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\r\n\r\n if (defaultOptions) {\r\n this.hideToggle = defaultOptions.hideToggle;\r\n }\r\n }\r\n\r\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\r\n _hasSpacing(): boolean {\r\n if (this.accordion) {\r\n return this.expanded && this.accordion.displayMode === 'default';\r\n }\r\n return false;\r\n }\r\n\r\n /** Gets the expanded state string. */\r\n _getExpandedState(): CuteExpansionPanelState {\r\n return this.expanded ? 'expanded' : 'collapsed';\r\n }\r\n\r\n /** Toggles the expanded state of the expansion panel. */\r\n override toggle(): void {\r\n this.expanded = !this.expanded;\r\n }\r\n\r\n /** Sets the expanded state of the expansion panel to false. */\r\n override close(): void {\r\n this.expanded = false;\r\n }\r\n\r\n /** Sets the expanded state of the expansion panel to true. */\r\n override open(): void {\r\n this.expanded = true;\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\r\n // Render the content as soon as the panel becomes open.\r\n this.opened\r\n .pipe(\r\n startWith(null),\r\n filter(() => this.expanded && !this._portal),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n this._portal = new TemplatePortal(this._lazyContent!._template, this._viewContainerRef);\r\n });\r\n }\r\n\r\n this._setupAnimationEvents();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this._inputChanges.next(changes);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._cleanupTransitionEnd?.();\r\n this._inputChanges.complete();\r\n }\r\n\r\n /** Checks whether the expansion panel's content contains the currently focused element. */\r\n _containsFocus(): boolean {\r\n if (this._body) {\r\n const focusedElement = this._document.activeElement;\r\n const bodyElement = this._body.nativeElement;\r\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //private _transitionEndListener = ({target, propertyName}: TransitionEvent) => {\r\n private _transitionEndListener = (event: TransitionEvent) => {\r\n // CWT: we change `_bodyWrapper` to `_body` since our template's markup differs from original\r\n if (event.target === this._body?.nativeElement && event.propertyName === 'grid-template-rows') {\r\n // if (event.propertyName===\"transform\" && event.pseudoElement===\"::after\") {\r\n this._ngZone.run(() => {\r\n if (this.expanded) {\r\n this.afterExpand.emit();\r\n } else {\r\n this.afterCollapse.emit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected _setupAnimationEvents() {\r\n // This method is defined separately, because we need to\r\n // disable this logic in some internal components.\r\n this._ngZone.runOutsideAngular(() => {\r\n if (this._animationsDisabled) {\r\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\r\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\r\n } else {\r\n setTimeout(() => {\r\n const element = this._elementRef.nativeElement;\r\n this._cleanupTransitionEnd = this._renderer.listen(\r\n element,\r\n 'transitionend',\r\n this._transitionEndListener,\r\n );\r\n element.classList.add('cute-expansion-panel-animations-enabled');\r\n }, 200);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<div class=\"cute-expansion-panel-content-wrapper\"\r\n [class.accordion-item]=\"!accordion\"\r\n [class.accordion-header]=\"accordion\"\r\n #bodyWrapper>\r\n\r\n <ng-content select=\"cute-expansion-panel-header\"></ng-content>\r\n <div class=\"cute-expansion-panel-content accordion-collapse\"\r\n [class]=\"expanded ? 'expanded' : 'collapsed'\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-labelledby]=\"_headerId\"\r\n role=\"region\"\r\n [attr.id]=\"_contentId\"\r\n #body>\r\n <div class=\"cute-expansion-panel-body accordion-body\">\r\n <ng-content></ng-content>\r\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\r\n </div>\r\n <ng-content select=\"cute-action-row\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive, HostAttributeToken, inject, Input, numberAttribute,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {FocusableOption, FocusMonitor, FocusOrigin} from \"@angular/cdk/a11y\";\r\nimport {ENTER, SPACE, hasModifierKey} from \"@angular/cdk/keycodes\";\r\nimport {\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelDefaultOptions\r\n} from \"./expansion-panel.component\";\r\nimport {EMPTY, filter, merge, Subscription} from \"rxjs\";\r\nimport {CuteAccordionTogglePosition} from \"./accordion-base.interface\";\r\nimport {CuteLayoutControl} from '@cute-widgets/base/abstract';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'cute-expansion-panel-header',\r\n templateUrl: './expansion-panel-header.component.html',\r\n styleUrls: ['./expansion-panel-header.component.scss'],\r\n exportAs: 'cuteExpansionPanelHeader',\r\n inputs: ['tabIndex'],\r\n host: {\r\n 'class': 'cute-expansion-panel-header',\r\n '[class.accordion-header]': '!panel.accordion',\r\n '[class.cute-expanded]': '_isExpanded()',\r\n // '[class.cute-expansion-toggle-indicator-after]': `_getTogglePosition() === 'after'`,\r\n // '[class.cute-expansion-toggle-indicator-before]': `_getTogglePosition() === 'before'`,\r\n 'role': 'button',\r\n '[attr.id]': 'panel._headerId',\r\n // CWT: we apply 'tabindex' rule on the nested '.accordion-button' element\r\n '[attr.tabindex]': '-1', /*'disabled ? -1 : tabIndex',*/\r\n // CWT: we apply 'aria-controls' on the nested '.accordion-button' element\r\n // '[attr.aria-controls]': '_getPanelId()',\r\n '[attr.aria-expanded]': '_isExpanded()',\r\n '[attr.aria-disabled]': 'panel.disabled', //'disabled',\r\n '[style.height]': '_getHeaderHeight()',\r\n '(click)': '_toggle()',\r\n '(keydown)': '_keydown($event)',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteExpansionPanelHeader extends CuteLayoutControl implements FocusableOption /* extends ... */ {\r\n readonly panel = inject(CuteExpansionPanel, {host: true});\r\n private _focusMonitor = inject(FocusMonitor);\r\n\r\n private _parentChangeSubscription = Subscription.EMPTY;\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n\r\n const panel = this.panel;\r\n const defaultOptions = inject<CuteExpansionPanelDefaultOptions>(\r\n CUTE_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n {optional: true},\r\n );\r\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\r\n\r\n const accordionHideToggleChange = panel.accordion\r\n ? panel.accordion._stateChanges.pipe(\r\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition'])),\r\n )\r\n : EMPTY;\r\n this.tabIndex = parseInt(tabIndex || '') || 0;\r\n\r\n // Since the toggle state depends on an @Input on the panel, we\r\n // need to subscribe and trigger change detection manually.\r\n this._parentChangeSubscription = merge(\r\n panel.opened,\r\n panel.closed,\r\n accordionHideToggleChange,\r\n panel._inputChanges.pipe(\r\n filter(changes => {\r\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\r\n }),\r\n ),\r\n ).subscribe(() => this._changeDetectorRef.markForCheck());\r\n\r\n // Avoids focus being lost if the panel contained the focused element and was closed.\r\n panel.closed\r\n .pipe(\r\n takeUntilDestroyed(),\r\n filter(() => panel._containsFocus())\r\n )\r\n .subscribe(() => this._focusMonitor.focusVia(this._elementRef, 'program'));\r\n\r\n if (defaultOptions) {\r\n this.expandedHeight = defaultOptions.expandedHeight;\r\n this.collapsedHeight = defaultOptions.collapsedHeight;\r\n }\r\n }\r\n\r\n /** Height of the header while the panel is expanded. */\r\n @Input() expandedHeight: string | undefined;\r\n\r\n /** Height of the header while the panel is collapsed. */\r\n @Input() collapsedHeight: string | undefined;\r\n\r\n /** Tab index of the header. */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n })\r\n tabIndex: number = 0;\r\n\r\n protected override generateId(): string {\r\n return \"\";\r\n }\r\n\r\n /** Whether the associated panel is disabled. Implemented as a part of `FocusableOption`. */\r\n protected override getDisabledState(): boolean {\r\n return this.panel.disabled;\r\n }\r\n\r\n /** Toggles the expanded state of the panel. */\r\n protected _toggle(): void {\r\n if (!this.disabled) {\r\n this.panel.toggle();\r\n }\r\n }\r\n\r\n /** Gets whether the panel is expanded. */\r\n protected _isExpanded(): boolean {\r\n return this.panel.expanded;\r\n }\r\n\r\n /** Gets the expanded state string of the panel. */\r\n protected _getExpandedState(): string {\r\n return this.panel._getExpandedState();\r\n }\r\n\r\n /** Gets the panel id. */\r\n protected _getPanelId(): string {\r\n return this.panel.id;\r\n }\r\n\r\n /** Gets the toggle position for the header. */\r\n protected _getTogglePosition(): CuteAccordionTogglePosition {\r\n return this.panel.togglePosition;\r\n }\r\n\r\n /** Gets whether the expanded indicator should be shown. */\r\n protected _showToggle(): boolean {\r\n return !this.panel.hideToggle && !this.panel.disabled;\r\n }\r\n\r\n /**\r\n * Gets the current height of the header. Null if no custom height has been\r\n * specified, and if the default height from the stylesheet should be used.\r\n */\r\n protected _getHeaderHeight(): string | null {\r\n const isExpanded = this._isExpanded();\r\n if (isExpanded && this.expandedHeight) {\r\n return this.expandedHeight;\r\n } else if (!isExpanded && this.collapsedHeight) {\r\n return this.collapsedHeight;\r\n }\r\n return null;\r\n }\r\n\r\n /** Handle keydown event calling to toggle() if appropriate. */\r\n protected _keydown(event: KeyboardEvent) {\r\n switch (event.keyCode) {\r\n // Toggle for space and enter keys.\r\n case SPACE:\r\n case ENTER:\r\n if (!hasModifierKey(event)) {\r\n event.preventDefault();\r\n this._toggle();\r\n }\r\n break;\r\n default:\r\n if (this.panel.accordion) {\r\n this.panel.accordion._handleHeaderKeydown(event);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\r\n * @param origin Origin of the action that triggered the focus.\r\n * @param options FocusOptions\r\n */\r\n focus(origin?: FocusOrigin, options?: FocusOptions) {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._elementRef, origin, options);\r\n } else {\r\n this._elementRef.nativeElement.focus(options);\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this._focusMonitor.monitor(this._elementRef).subscribe(origin => {\r\n if (origin && this.panel.accordion) {\r\n this.panel.accordion._handleHeaderFocus(this);\r\n }\r\n });\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._parentChangeSubscription.unsubscribe();\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Description element of a `<cute-expansion-panel-header>`.\r\n */\r\n@Directive({\r\n selector: 'cute-panel-description',\r\n host: {\r\n class: 'cute-expansion-panel-header-description text-secondary ',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelDescription {}\r\n\r\n/**\r\n * Title element of a `<cute-expansion-panel-header>`.\r\n */\r\n@Directive({\r\n selector: 'cute-panel-title',\r\n host: {\r\n class: 'cute-expansion-panel-header-title',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelTitle {}\r\n","<button class=\"accordion-button\" type=\"button\"\r\n [class.accordion-button-indicator-before]=\"_getTogglePosition()=='before'\"\r\n [class.accordion-button-hide-indicator]=\"!_showToggle()\"\r\n [class.text-body-tertiary]=\"disabled\"\r\n [class.collapsed]=\"!_isExpanded()\"\r\n [attr.aria-expanded]=\"_isExpanded()\"\r\n [attr.aria-controls]=\"panel._contentId\"\r\n [disabled]=\"disabled || null\"\r\n [tabIndex]=\"disabled ? -1 : tabIndex\"\r\n>\r\n <div class=\"cute-expansion-panel-header-content flex-sm-row\">\r\n <ng-content select=\"cute-panel-title\"></ng-content>\r\n <ng-content select=\"cute-panel-description\"></ng-content>\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n AfterContentInit, booleanAttribute,\r\n ContentChildren,\r\n Directive,\r\n Input, OnDestroy, QueryList,\r\n} from \"@angular/core\";\r\nimport {CdkAccordion} from \"@angular/cdk/accordion\";\r\nimport {\r\n CUTE_ACCORDION,\r\n CuteAccordionBase,\r\n CuteAccordionDisplayMode,\r\n CuteAccordionTogglePosition\r\n} from \"./accordion-base.interface\";\r\nimport {FocusKeyManager} from \"@angular/cdk/a11y\";\r\nimport {CuteExpansionPanelHeader} from \"./expansion-panel-header.component\";\r\nimport {startWith} from \"rxjs\";\r\n\r\nlet nextId: number = -1;\r\n\r\n@Directive({\r\n selector: 'cute-accordion',\r\n exportAs: 'cuteAccordion',\r\n host: {\r\n 'class': 'cute-accordion accordion d-block',\r\n '[class.accordion-flush]': 'displayMode == \"flush\"',\r\n '[id]': 'id',\r\n },\r\n providers: [{provide: CUTE_ACCORDION, useExisting: CuteAccordion}],\r\n})\r\nexport class CuteAccordion extends CdkAccordion implements CuteAccordionBase, AfterContentInit, OnDestroy {\r\n\r\n private _keyManager: FocusKeyManager<CuteExpansionPanelHeader> | undefined;\r\n\r\n /** Headers belonging to this accordion. */\r\n private _ownHeaders = new QueryList<CuteExpansionPanelHeader>();\r\n\r\n /** All headers inside the accordion. Includes headers inside nested accordions. */\r\n @ContentChildren(CuteExpansionPanelHeader, {descendants: true})\r\n _headers: QueryList<CuteExpansionPanelHeader> | undefined;\r\n\r\n /** Whether the expansion indicator should be hidden. */\r\n @Input({transform: booleanAttribute})\r\n hideToggle: boolean = false;\r\n\r\n /**\r\n * Display mode used for all expansion panels in the accordion. Currently two display\r\n * modes exist:\r\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\r\n * panel at a different elevation from the rest of the accordion.\r\n * flush - removes some borders and rounded corners to render expansion panels edge-to-edge with their parent container.\r\n */\r\n @Input() displayMode: CuteAccordionDisplayMode = 'default';\r\n\r\n /** The position of the expansion indicator. */\r\n @Input() togglePosition: CuteAccordionTogglePosition = 'after';\r\n\r\n ngAfterContentInit() {\r\n this._headers?.changes\r\n .pipe(startWith(this._headers))\r\n .subscribe((headers: QueryList<CuteExpansionPanelHeader>) => {\r\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\r\n this._ownHeaders.notifyOnChanges();\r\n });\r\n\r\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\r\n }\r\n\r\n /** Handles keyboard events coming in from the panel headers. */\r\n _handleHeaderKeydown(event: KeyboardEvent) {\r\n this._keyManager?.onKeydown(event);\r\n }\r\n\r\n _handleHeaderFocus(header: CuteExpansionPanelHeader) {\r\n this._keyManager?.updateActiveItem(header);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._keyManager?.destroy();\r\n this._ownHeaders.destroy();\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Actions of a `<cute-expansion-panel>`.\r\n */\r\n@Directive({\r\n selector: 'cute-action-row',\r\n host: {\r\n class: 'cute-action-row',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteExpansionPanelActionRow {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteExpansionPanel} from \"./expansion-panel.component\";\r\nimport {CuteExpansionPanelContent} from \"./expansion-panel-content.directive\";\r\nimport {\r\n CuteExpansionPanelDescription,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelTitle\r\n} from \"./expansion-panel-header.component\";\r\nimport {CuteExpansionPanelActionRow} from \"./expansion-panel-action-row.directive\";\r\nimport {CuteAccordion} from \"./accordion.directive\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n CuteAccordion,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelContent,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelActionRow,\r\n CuteExpansionPanelTitle,\r\n CuteExpansionPanelDescription,\r\n ],\r\n exports: [\r\n CuteAccordion,\r\n CuteExpansionPanel,\r\n CuteExpansionPanelContent,\r\n CuteExpansionPanelHeader,\r\n CuteExpansionPanelActionRow,\r\n CuteExpansionPanelTitle,\r\n CuteExpansionPanelDescription,\r\n ]\r\n})\r\nexport class CuteExpansionModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}