@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
@@ -98,10 +98,10 @@ class CuteBottomSheetContainer extends CdkDialogContainer {
98
98
  });
99
99
  }
100
100
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteBottomSheetContainer, isStandalone: true, selector: "cute-bottom-sheet-container", host: { attributes: { "tabindex": "-1" }, listeners: { "animationstart": "_handleAnimationEvent(true, $event.animationName)", "animationend": "_handleAnimationEvent(false, $event.animationName)", "animationcancel": "_handleAnimationEvent(false, $event.animationName)" }, properties: { "class.cute-bottom-sheet-container-animations-enabled": "!_animationsDisabled", "class.cute-bottom-sheet-container-enter": "_animationState === \"visible\"", "class.cute-bottom-sheet-container-exit": "_animationState === \"hidden\"", "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-label": "_config.ariaLabel" }, classAttribute: "cute-bottom-sheet-container shadow-lg" }, usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: ["@keyframes _cute-bottom-sheet-enter{0%{transform:translateY(100%)}to{transform:none}}@keyframes _cute-bottom-sheet-exit{0%{transform:none}to{transform:translateY(100%)}}.cute-bottom-sheet-container{padding:1rem;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family),serif;font-size:var(--bs-body-font-size);line-height:var(--bs-body-line-height);font-weight:var(--bs-body-font-weight);letter-spacing:normal}@media (forced-colors: active){.cute-bottom-sheet-container{outline:1px solid}}.cute-bottom-sheet-container-animations-enabled{transform:translateY(100%)}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-enter{animation:_cute-bottom-sheet-enter 195ms cubic-bezier(0,0,.2,1) forwards}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-exit{animation:_cute-bottom-sheet-exit 375ms cubic-bezier(.4,0,1,1) backwards}.cute-bottom-sheet-container-xlarge,.cute-bottom-sheet-container-large,.cute-bottom-sheet-container-medium{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.cute-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.cute-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.cute-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteBottomSheetContainer, isStandalone: true, selector: "cute-bottom-sheet-container", host: { attributes: { "tabindex": "-1" }, listeners: { "animationstart": "_handleAnimationEvent(true, $event.animationName)", "animationend": "_handleAnimationEvent(false, $event.animationName)", "animationcancel": "_handleAnimationEvent(false, $event.animationName)" }, properties: { "class.cute-bottom-sheet-container-animations-enabled": "!_animationsDisabled", "class.cute-bottom-sheet-container-enter": "_animationState === \"visible\"", "class.cute-bottom-sheet-container-exit": "_animationState === \"hidden\"", "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-label": "_config.ariaLabel" }, classAttribute: "cute-bottom-sheet-container shadow-lg" }, usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: ["@keyframes _cute-bottom-sheet-enter{0%{transform:translateY(100%)}to{transform:none}}@keyframes _cute-bottom-sheet-exit{0%{transform:none}to{transform:translateY(100%)}}.cute-bottom-sheet-container{padding:1rem;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family),serif;font-size:var(--bs-body-font-size);line-height:var(--bs-body-line-height);font-weight:var(--bs-body-font-weight);letter-spacing:normal}@media(forced-colors:active){.cute-bottom-sheet-container{outline:1px solid}}.cute-bottom-sheet-container-animations-enabled{transform:translateY(100%)}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-enter{animation:_cute-bottom-sheet-enter 195ms cubic-bezier(0,0,.2,1) forwards}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-exit{animation:_cute-bottom-sheet-exit 375ms cubic-bezier(.4,0,1,1) backwards}.cute-bottom-sheet-container-xlarge,.cute-bottom-sheet-container-large,.cute-bottom-sheet-container-medium{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.cute-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.cute-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.cute-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetContainer, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetContainer, decorators: [{
105
105
  type: Component,
106
106
  args: [{ selector: 'cute-bottom-sheet-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
107
107
  'class': 'cute-bottom-sheet-container shadow-lg',
@@ -115,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
115
115
  '(animationstart)': '_handleAnimationEvent(true, $event.animationName)',
116
116
  '(animationend)': '_handleAnimationEvent(false, $event.animationName)',
117
117
  '(animationcancel)': '_handleAnimationEvent(false, $event.animationName)',
118
- }, imports: [CdkPortalOutlet], template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: ["@keyframes _cute-bottom-sheet-enter{0%{transform:translateY(100%)}to{transform:none}}@keyframes _cute-bottom-sheet-exit{0%{transform:none}to{transform:translateY(100%)}}.cute-bottom-sheet-container{padding:1rem;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family),serif;font-size:var(--bs-body-font-size);line-height:var(--bs-body-line-height);font-weight:var(--bs-body-font-weight);letter-spacing:normal}@media (forced-colors: active){.cute-bottom-sheet-container{outline:1px solid}}.cute-bottom-sheet-container-animations-enabled{transform:translateY(100%)}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-enter{animation:_cute-bottom-sheet-enter 195ms cubic-bezier(0,0,.2,1) forwards}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-exit{animation:_cute-bottom-sheet-exit 375ms cubic-bezier(.4,0,1,1) backwards}.cute-bottom-sheet-container-xlarge,.cute-bottom-sheet-container-large,.cute-bottom-sheet-container-medium{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.cute-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.cute-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.cute-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n"] }]
118
+ }, imports: [CdkPortalOutlet], template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: ["@keyframes _cute-bottom-sheet-enter{0%{transform:translateY(100%)}to{transform:none}}@keyframes _cute-bottom-sheet-exit{0%{transform:none}to{transform:translateY(100%)}}.cute-bottom-sheet-container{padding:1rem;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family),serif;font-size:var(--bs-body-font-size);line-height:var(--bs-body-line-height);font-weight:var(--bs-body-font-weight);letter-spacing:normal}@media(forced-colors:active){.cute-bottom-sheet-container{outline:1px solid}}.cute-bottom-sheet-container-animations-enabled{transform:translateY(100%)}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-enter{animation:_cute-bottom-sheet-enter 195ms cubic-bezier(0,0,.2,1) forwards}.cute-bottom-sheet-container-animations-enabled.cute-bottom-sheet-container-exit{animation:_cute-bottom-sheet-exit 375ms cubic-bezier(.4,0,1,1) backwards}.cute-bottom-sheet-container-xlarge,.cute-bottom-sheet-container-large,.cute-bottom-sheet-container-medium{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.cute-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.cute-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.cute-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n"] }]
119
119
  }], ctorParameters: () => [] });
120
120
 
121
121
  /**
@@ -363,10 +363,10 @@ class CuteBottomSheet {
363
363
  this._bottomSheetRefAtThisLevel.dismiss();
364
364
  }
365
365
  }
366
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
367
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheet, providedIn: 'root' }); }
366
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
367
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheet, providedIn: 'root' }); }
368
368
  }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheet, decorators: [{
369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheet, decorators: [{
370
370
  type: Injectable,
371
371
  args: [{ providedIn: 'root' }]
372
372
  }], ctorParameters: () => [] });
@@ -383,11 +383,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
383
383
  * code licensed under MIT-style License (https://angular.dev/license).
384
384
  */
385
385
  class CuteBottomSheetModule {
386
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
387
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetModule, imports: [DialogModule, PortalModule, CuteBottomSheetContainer], exports: [CuteBottomSheetContainer, BidiModule] }); }
388
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetModule, providers: [CuteBottomSheet], imports: [DialogModule, PortalModule, BidiModule] }); }
386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
387
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetModule, imports: [DialogModule, PortalModule, CuteBottomSheetContainer], exports: [CuteBottomSheetContainer, BidiModule] }); }
388
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetModule, providers: [CuteBottomSheet], imports: [DialogModule, PortalModule, BidiModule] }); }
389
389
  }
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteBottomSheetModule, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBottomSheetModule, decorators: [{
391
391
  type: NgModule,
392
392
  args: [{
393
393
  imports: [DialogModule, PortalModule, CuteBottomSheetContainer],
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-bottom-sheet.mjs","sources":["../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.container.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.container.html","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.config.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.ref.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.module.ts","../../../../projects/cute-widgets/base/bottom-sheet/index.ts","../../../../projects/cute-widgets/base/bottom-sheet/cute-widgets-base-bottom-sheet.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 {CdkDialogContainer} from '@angular/cdk/dialog';\r\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {Subscription} from 'rxjs';\r\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\nconst ENTER_ANIMATION = '_cute-bottom-sheet-enter';\r\nconst EXIT_ANIMATION = '_cute-bottom-sheet-exit';\r\n\r\n/**\r\n * Internal component that wraps user-provided bottom sheet content.\r\n * @docs-private\r\n */\r\n@Component({\r\n selector: 'cute-bottom-sheet-container',\r\n templateUrl: 'bottom-sheet.container.html',\r\n styleUrl: 'bottom-sheet.container.scss',\r\n // In Ivy embedded views will be change detected from their declaration place, rather than where\r\n // they were stamped out. This means that we can't have the bottom sheet container be OnPush,\r\n // because it might cause the sheets that were opened from a template not to be out of date.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'class': 'cute-bottom-sheet-container shadow-lg',\r\n '[class.cute-bottom-sheet-container-animations-enabled]': '!_animationsDisabled',\r\n '[class.cute-bottom-sheet-container-enter]': '_animationState === \"visible\"',\r\n '[class.cute-bottom-sheet-container-exit]': '_animationState === \"hidden\"',\r\n 'tabindex': '-1',\r\n '[attr.role]': '_config.role',\r\n '[attr.aria-modal]': '_config.ariaModal',\r\n '[attr.aria-label]': '_config.ariaLabel',\r\n '(animationstart)': '_handleAnimationEvent(true, $event.animationName)',\r\n '(animationend)': '_handleAnimationEvent(false, $event.animationName)',\r\n '(animationcancel)': '_handleAnimationEvent(false, $event.animationName)',\r\n },\r\n imports: [CdkPortalOutlet],\r\n})\r\nexport class CuteBottomSheetContainer extends CdkDialogContainer implements OnDestroy {\r\n private _breakpointSubscription: Subscription;\r\n protected _animationsDisabled = _animationsDisabled();\r\n\r\n /** The state of the bottom sheet animations. */\r\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\r\n\r\n /** Emits whenever the state of the animation changes. */\r\n _animationStateChanged = new EventEmitter<{\r\n toState: 'visible' | 'hidden';\r\n phase: 'start' | 'done';\r\n }>();\r\n\r\n /** Whether the component has been destroyed. */\r\n private _destroyed: boolean = false;\r\n\r\n constructor(...args: unknown[]);\r\n\r\n constructor() {\r\n super();\r\n\r\n const breakpointObserver = inject(BreakpointObserver);\r\n\r\n this._breakpointSubscription = breakpointObserver\r\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\r\n .subscribe(() => {\r\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\r\n\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-medium',\r\n breakpointObserver.isMatched(Breakpoints.Medium),\r\n );\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-large',\r\n breakpointObserver.isMatched(Breakpoints.Large),\r\n );\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-xlarge',\r\n breakpointObserver.isMatched(Breakpoints.XLarge),\r\n );\r\n });\r\n }\r\n\r\n /** Begin animation of bottom sheet entrance into view. */\r\n enter(): void {\r\n if (!this._destroyed) {\r\n this._animationState = 'visible';\r\n this._changeDetectorRef.markForCheck();\r\n this._changeDetectorRef.detectChanges();\r\n if (this._animationsDisabled) {\r\n this._simulateAnimation(ENTER_ANIMATION);\r\n }\r\n }\r\n }\r\n\r\n /** Begin animation of the bottom sheet exiting from view. */\r\n exit(): void {\r\n if (!this._destroyed) {\r\n this._elementRef.nativeElement.setAttribute('cute-exit', '');\r\n this._animationState = 'hidden';\r\n this._changeDetectorRef.markForCheck();\r\n if (this._animationsDisabled) {\r\n this._simulateAnimation(EXIT_ANIMATION);\r\n }\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._breakpointSubscription.unsubscribe();\r\n this._destroyed = true;\r\n }\r\n\r\n private _simulateAnimation(name: typeof ENTER_ANIMATION | typeof EXIT_ANIMATION) {\r\n this._ngZone.run(() => {\r\n this._handleAnimationEvent(true, name);\r\n setTimeout(() => this._handleAnimationEvent(false, name));\r\n });\r\n }\r\n\r\n protected override _trapFocus(): void {\r\n // The bottom sheet starts off-screen and animates in, and at the same time we trap focus\r\n // within it. With some styles this appears to cause the page to jump around. See:\r\n // https://github.com/angular/components/issues/30774. Preventing the browser from\r\n // scrolling resolves the issue and isn't really necessary since the bottom sheet\r\n // normally isn't scrollable.\r\n super._trapFocus({preventScroll: true});\r\n }\r\n\r\n protected _handleAnimationEvent(isStart: boolean, animationName: string) {\r\n const isEnter = animationName === ENTER_ANIMATION;\r\n const isExit = animationName === EXIT_ANIMATION;\r\n\r\n if (isEnter || isExit) {\r\n this._animationStateChanged.emit({\r\n toState: isEnter ? 'visible' : 'hidden',\r\n phase: isStart ? 'start' : 'done',\r\n });\r\n }\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\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, Injector, ViewContainerRef} from '@angular/core';\r\nimport {Direction} from '@angular/cdk/bidi';\r\nimport {ScrollStrategy} from '@angular/cdk/overlay';\r\n\r\n/** Options for where to set focus to automatically on dialog open */\r\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\r\n\r\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\r\nexport const CUTE_BOTTOM_SHEET_DATA = new InjectionToken<any>('CuteBottomSheetData');\r\n\r\n/**\r\n * Configuration used when opening a bottom sheet.\r\n */\r\nexport class CuteBottomSheetConfig<D = any> {\r\n /** The view container to place the overlay for the bottom sheet into. */\r\n viewContainerRef?: ViewContainerRef;\r\n\r\n /**\r\n * Injector used for the instantiation of the component to be attached. If provided,\r\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\r\n */\r\n injector?: Injector;\r\n\r\n /** Extra CSS classes to be added to the bottom sheet container. */\r\n panelClass?: string | string[];\r\n\r\n /** Text layout direction for the bottom sheet. */\r\n direction?: Direction;\r\n\r\n /** Data being injected into the child component. */\r\n data?: D | null = null;\r\n\r\n /** Whether the bottom sheet has a backdrop. */\r\n hasBackdrop?: boolean = true;\r\n\r\n /** Custom class for the backdrop. */\r\n backdropClass?: string;\r\n\r\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\r\n disableClose?: boolean = false;\r\n\r\n /** Aria label to assign to the bottom sheet element. */\r\n ariaLabel?: string | null = null;\r\n\r\n /**\r\n * Whether this is a modal dialog. Used to set the `aria-modal` attribute. Off by default,\r\n * because it can interfere with other overlay-based components (e.g. `cute-select`) and because\r\n * it is redundant since the dialog marks all outside content as `aria-hidden` anyway.\r\n */\r\n ariaModal?: boolean = false;\r\n\r\n /**\r\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\r\n * Note that this usually doesn't include clicking on links (unless the user is using\r\n * the `HashLocationStrategy`).\r\n */\r\n closeOnNavigation?: boolean = true;\r\n\r\n /**\r\n * Where the bottom sheet should focus on open.\r\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\r\n * AutoFocusTarget instead.\r\n */\r\n autoFocus?: AutoFocusTarget | string | boolean = 'first-tabbable';\r\n\r\n /**\r\n * Whether the bottom sheet should restore focus to the\r\n * previously-focused element, after it's closed.\r\n */\r\n restoreFocus?: boolean = true;\r\n\r\n /** Scroll strategy to be used for the bottom sheet. */\r\n scrollStrategy?: ScrollStrategy;\r\n\r\n /** Height for the bottom sheet. */\r\n height?: string = '';\r\n\r\n /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */\r\n minHeight?: number | string;\r\n\r\n /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */\r\n maxHeight?: number | string;\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 {ComponentRef} from '@angular/core';\r\nimport {DialogRef} from '@angular/cdk/dialog';\r\nimport {ESCAPE, hasModifierKey} from '@angular/cdk/keycodes';\r\nimport {merge, Observable, Subject} from 'rxjs';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {CuteBottomSheetConfig} from './bottom-sheet.config';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\n\r\n/**\r\n * Reference to a bottom sheet dispatched from the bottom sheet service.\r\n */\r\nexport class CuteBottomSheetRef<T = any, R = any> {\r\n /** Instance of the component making up the content of the bottom sheet. */\r\n get instance(): T {\r\n return this._ref.componentInstance!;\r\n }\r\n\r\n /**\r\n * `ComponentRef` of the component opened into the bottom sheet. Will be\r\n * null when the bottom sheet is opened using a `TemplateRef`.\r\n */\r\n get componentRef(): ComponentRef<T> | null {\r\n return this._ref.componentRef;\r\n }\r\n\r\n /**\r\n * Instance of the component into which the bottom sheet content is projected.\r\n * @docs-private\r\n */\r\n containerInstance: CuteBottomSheetContainer;\r\n\r\n /** Whether the user is allowed to close the bottom sheet. */\r\n disableClose: boolean | undefined;\r\n\r\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\r\n private readonly _afterOpened = new Subject<void>();\r\n\r\n /** Result to be passed down to the `afterDismissed` stream. */\r\n private _result: R | undefined;\r\n\r\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\r\n private _closeFallbackTimeout: ReturnType<typeof setTimeout> | undefined;\r\n\r\n constructor(\r\n private _ref: DialogRef<R, T>,\r\n config: CuteBottomSheetConfig,\r\n containerInstance: CuteBottomSheetContainer,\r\n ) {\r\n this.containerInstance = containerInstance;\r\n this.disableClose = config.disableClose;\r\n\r\n // Emit when opening animation completes\r\n containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'done' && event.toState === 'visible'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n this._afterOpened.next();\r\n this._afterOpened.complete();\r\n });\r\n\r\n // Dispose overlay when closing animation is complete\r\n containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'done' && event.toState === 'hidden'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n clearTimeout(this._closeFallbackTimeout);\r\n this._ref.close(this._result);\r\n });\r\n\r\n _ref.overlayRef.detachments().subscribe(() => {\r\n this._ref.close(this._result);\r\n });\r\n\r\n merge(\r\n this.backdropClick(),\r\n this.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE)),\r\n ).subscribe(event => {\r\n if (\r\n !this.disableClose &&\r\n (event.type !== 'keydown' || !hasModifierKey(event as KeyboardEvent))\r\n ) {\r\n event.preventDefault();\r\n this.dismiss();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dismisses the bottom sheet.\r\n * @param result Data to be passed back to the bottom sheet opener.\r\n */\r\n dismiss(result?: R): void {\r\n if (!this.containerInstance) {\r\n return;\r\n }\r\n\r\n // Transition the backdrop in parallel to the bottom sheet.\r\n this.containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'start'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n // The logic that disposes of the overlay depends on the exit animation completing, however\r\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\r\n // timeout which will clean everything up if the animation hasn't fired within the specified\r\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\r\n // vast majority of cases the timeout will have been cleared before it has fired.\r\n this._closeFallbackTimeout = setTimeout(() => this._ref.close(this._result), 500);\r\n this._ref.overlayRef.detachBackdrop();\r\n });\r\n\r\n this._result = result;\r\n this.containerInstance.exit();\r\n this.containerInstance = null!;\r\n }\r\n\r\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\r\n afterDismissed(): Observable<R | undefined> {\r\n return this._ref.closed;\r\n }\r\n\r\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\r\n afterOpened(): Observable<void> {\r\n return this._afterOpened;\r\n }\r\n\r\n /**\r\n * Gets an observable that emits when the overlay's backdrop has been clicked.\r\n */\r\n backdropClick(): Observable<MouseEvent> {\r\n return this._ref.backdropClick;\r\n }\r\n\r\n /**\r\n * Gets an observable that emits when keydown events are targeted on the overlay.\r\n */\r\n keydownEvents(): Observable<KeyboardEvent> {\r\n return this._ref.keydownEvents;\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 {Dialog} from '@angular/cdk/dialog';\r\nimport {createBlockScrollStrategy, createGlobalPositionStrategy} from '@angular/cdk/overlay';\r\nimport {ComponentType} from '@angular/cdk/portal';\r\nimport {Injectable, TemplateRef, InjectionToken, OnDestroy, inject, Injector} from '@angular/core';\r\nimport {CUTE_BOTTOM_SHEET_DATA, CuteBottomSheetConfig} from './bottom-sheet.config';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\nimport {CuteBottomSheetRef} from './bottom-sheet.ref';\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\n/** Injection token that can be used to specify default bottom sheet options. */\r\nexport const CUTE_BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<CuteBottomSheetConfig>(\r\n 'cute-bottom-sheet-default-options',\r\n);\r\n\r\n/**\r\n * Service to trigger Material Design bottom sheets.\r\n */\r\n@Injectable({providedIn: 'root'})\r\nexport class CuteBottomSheet implements OnDestroy {\r\n private _injector = inject(Injector);\r\n private _parentBottomSheet = inject(CuteBottomSheet, {optional: true, skipSelf: true});\r\n private _animationsDisabled = _animationsDisabled();\r\n private _defaultOptions = inject<CuteBottomSheetConfig>(CUTE_BOTTOM_SHEET_DEFAULT_OPTIONS, {\r\n optional: true,\r\n });\r\n\r\n private _bottomSheetRefAtThisLevel: CuteBottomSheetRef<any> | null = null;\r\n private _dialog = inject(Dialog);\r\n\r\n /** Reference to the currently opened bottom sheet. */\r\n get _openedBottomSheetRef(): CuteBottomSheetRef<any> | null {\r\n const parent = this._parentBottomSheet;\r\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\r\n }\r\n\r\n set _openedBottomSheetRef(value: CuteBottomSheetRef<any> | null) {\r\n if (this._parentBottomSheet) {\r\n this._parentBottomSheet._openedBottomSheetRef = value;\r\n } else {\r\n this._bottomSheetRefAtThisLevel = value;\r\n }\r\n }\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {}\r\n\r\n /**\r\n * Opens a bottom sheet containing the given component.\r\n * @param component Type of the component to load into the bottom sheet.\r\n * @param config Extra configuration options.\r\n * @returns Reference to the newly-opened bottom sheet.\r\n */\r\n open<T, D = any, R = any>(\r\n component: ComponentType<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R>;\r\n\r\n /**\r\n * Opens a bottom sheet containing the given template.\r\n * @param template TemplateRef to instantiate as the bottom sheet content.\r\n * @param config Extra configuration options.\r\n * @returns Reference to the newly-opened bottom sheet.\r\n */\r\n open<T, D = any, R = any>(\r\n template: TemplateRef<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R>;\r\n\r\n open<T, D = any, R = any>(\r\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R> {\r\n const _config = {...(this._defaultOptions || new CuteBottomSheetConfig()), ...config};\r\n let ref: CuteBottomSheetRef<T, R>;\r\n\r\n this._dialog.open<R, D, T>(componentOrTemplateRef, {\r\n ..._config,\r\n // Disable closing since we need to sync it up to the animation ourselves.\r\n disableClose: true,\r\n // Disable closing on detachments so that we can sync up the animation.\r\n closeOnOverlayDetachments: false,\r\n maxWidth: '100%',\r\n container: CuteBottomSheetContainer,\r\n scrollStrategy: _config.scrollStrategy || createBlockScrollStrategy(this._injector),\r\n positionStrategy: createGlobalPositionStrategy(this._injector)\r\n .centerHorizontally()\r\n .bottom('0'),\r\n disableAnimations: this._animationsDisabled,\r\n templateContext: () => ({bottomSheetRef: ref}),\r\n providers: (cdkRef, _cdkConfig, container) => {\r\n ref = new CuteBottomSheetRef(cdkRef, _config, container as CuteBottomSheetContainer);\r\n return [\r\n {provide: CuteBottomSheetRef, useValue: ref},\r\n {provide: CUTE_BOTTOM_SHEET_DATA, useValue: _config.data},\r\n ];\r\n },\r\n });\r\n\r\n // When the bottom sheet is dismissed, clear the reference to it.\r\n ref!.afterDismissed().subscribe(() => {\r\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\r\n if (this._openedBottomSheetRef === ref) {\r\n this._openedBottomSheetRef = null;\r\n }\r\n });\r\n\r\n if (this._openedBottomSheetRef) {\r\n // If a bottom sheet is already in view, dismiss it and enter the\r\n // new bottom sheet after exit animation is complete.\r\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance?.enter());\r\n this._openedBottomSheetRef.dismiss();\r\n } else {\r\n // If no bottom sheet is in view, enter the new bottom sheet.\r\n ref!.containerInstance.enter();\r\n }\r\n\r\n this._openedBottomSheetRef = ref!;\r\n return ref!;\r\n }\r\n\r\n /**\r\n * Dismisses the currently-visible bottom sheet.\r\n * @param result Data to pass to the bottom sheet instance.\r\n */\r\n dismiss<R = any>(result?: R): void {\r\n if (this._openedBottomSheetRef) {\r\n this._openedBottomSheetRef.dismiss(result);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._bottomSheetRefAtThisLevel) {\r\n this._bottomSheetRefAtThisLevel.dismiss();\r\n }\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 {DialogModule} from '@angular/cdk/dialog';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {NgModule} from '@angular/core';\r\nimport {BidiModule} from '@angular/cdk/bidi';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\nimport {CuteBottomSheet} from './bottom-sheet';\r\n\r\n@NgModule({\r\n imports: [DialogModule, PortalModule, CuteBottomSheetContainer],\r\n exports: [CuteBottomSheetContainer, BidiModule],\r\n providers: [CuteBottomSheet],\r\n})\r\nexport class CuteBottomSheetModule {}\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\nexport * from './src/bottom-sheet.module';\r\nexport * from './src/bottom-sheet';\r\nexport * from './src/bottom-sheet.config';\r\nexport * from './src/bottom-sheet.container';\r\nexport * from './src/bottom-sheet.ref';\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-bottom-sheet.mjs","sources":["../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.container.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.container.html","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.config.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.ref.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.ts","../../../../projects/cute-widgets/base/bottom-sheet/src/bottom-sheet.module.ts","../../../../projects/cute-widgets/base/bottom-sheet/index.ts","../../../../projects/cute-widgets/base/bottom-sheet/cute-widgets-base-bottom-sheet.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 {CdkDialogContainer} from '@angular/cdk/dialog';\r\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {Subscription} from 'rxjs';\r\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\nconst ENTER_ANIMATION = '_cute-bottom-sheet-enter';\r\nconst EXIT_ANIMATION = '_cute-bottom-sheet-exit';\r\n\r\n/**\r\n * Internal component that wraps user-provided bottom sheet content.\r\n * @docs-private\r\n */\r\n@Component({\r\n selector: 'cute-bottom-sheet-container',\r\n templateUrl: 'bottom-sheet.container.html',\r\n styleUrl: 'bottom-sheet.container.scss',\r\n // In Ivy embedded views will be change detected from their declaration place, rather than where\r\n // they were stamped out. This means that we can't have the bottom sheet container be OnPush,\r\n // because it might cause the sheets that were opened from a template not to be out of date.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'class': 'cute-bottom-sheet-container shadow-lg',\r\n '[class.cute-bottom-sheet-container-animations-enabled]': '!_animationsDisabled',\r\n '[class.cute-bottom-sheet-container-enter]': '_animationState === \"visible\"',\r\n '[class.cute-bottom-sheet-container-exit]': '_animationState === \"hidden\"',\r\n 'tabindex': '-1',\r\n '[attr.role]': '_config.role',\r\n '[attr.aria-modal]': '_config.ariaModal',\r\n '[attr.aria-label]': '_config.ariaLabel',\r\n '(animationstart)': '_handleAnimationEvent(true, $event.animationName)',\r\n '(animationend)': '_handleAnimationEvent(false, $event.animationName)',\r\n '(animationcancel)': '_handleAnimationEvent(false, $event.animationName)',\r\n },\r\n imports: [CdkPortalOutlet],\r\n})\r\nexport class CuteBottomSheetContainer extends CdkDialogContainer implements OnDestroy {\r\n private _breakpointSubscription: Subscription;\r\n protected _animationsDisabled = _animationsDisabled();\r\n\r\n /** The state of the bottom sheet animations. */\r\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\r\n\r\n /** Emits whenever the state of the animation changes. */\r\n _animationStateChanged = new EventEmitter<{\r\n toState: 'visible' | 'hidden';\r\n phase: 'start' | 'done';\r\n }>();\r\n\r\n /** Whether the component has been destroyed. */\r\n private _destroyed: boolean = false;\r\n\r\n constructor(...args: unknown[]);\r\n\r\n constructor() {\r\n super();\r\n\r\n const breakpointObserver = inject(BreakpointObserver);\r\n\r\n this._breakpointSubscription = breakpointObserver\r\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\r\n .subscribe(() => {\r\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\r\n\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-medium',\r\n breakpointObserver.isMatched(Breakpoints.Medium),\r\n );\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-large',\r\n breakpointObserver.isMatched(Breakpoints.Large),\r\n );\r\n classList.toggle(\r\n 'cute-bottom-sheet-container-xlarge',\r\n breakpointObserver.isMatched(Breakpoints.XLarge),\r\n );\r\n });\r\n }\r\n\r\n /** Begin animation of bottom sheet entrance into view. */\r\n enter(): void {\r\n if (!this._destroyed) {\r\n this._animationState = 'visible';\r\n this._changeDetectorRef.markForCheck();\r\n this._changeDetectorRef.detectChanges();\r\n if (this._animationsDisabled) {\r\n this._simulateAnimation(ENTER_ANIMATION);\r\n }\r\n }\r\n }\r\n\r\n /** Begin animation of the bottom sheet exiting from view. */\r\n exit(): void {\r\n if (!this._destroyed) {\r\n this._elementRef.nativeElement.setAttribute('cute-exit', '');\r\n this._animationState = 'hidden';\r\n this._changeDetectorRef.markForCheck();\r\n if (this._animationsDisabled) {\r\n this._simulateAnimation(EXIT_ANIMATION);\r\n }\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._breakpointSubscription.unsubscribe();\r\n this._destroyed = true;\r\n }\r\n\r\n private _simulateAnimation(name: typeof ENTER_ANIMATION | typeof EXIT_ANIMATION) {\r\n this._ngZone.run(() => {\r\n this._handleAnimationEvent(true, name);\r\n setTimeout(() => this._handleAnimationEvent(false, name));\r\n });\r\n }\r\n\r\n protected override _trapFocus(): void {\r\n // The bottom sheet starts off-screen and animates in, and at the same time we trap focus\r\n // within it. With some styles this appears to cause the page to jump around. See:\r\n // https://github.com/angular/components/issues/30774. Preventing the browser from\r\n // scrolling resolves the issue and isn't really necessary since the bottom sheet\r\n // normally isn't scrollable.\r\n super._trapFocus({preventScroll: true});\r\n }\r\n\r\n protected _handleAnimationEvent(isStart: boolean, animationName: string) {\r\n const isEnter = animationName === ENTER_ANIMATION;\r\n const isExit = animationName === EXIT_ANIMATION;\r\n\r\n if (isEnter || isExit) {\r\n this._animationStateChanged.emit({\r\n toState: isEnter ? 'visible' : 'hidden',\r\n phase: isStart ? 'start' : 'done',\r\n });\r\n }\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\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, Injector, ViewContainerRef} from '@angular/core';\r\nimport {Direction} from '@angular/cdk/bidi';\r\nimport {ScrollStrategy} from '@angular/cdk/overlay';\r\n\r\n/** Options for where to set focus to automatically on dialog open */\r\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\r\n\r\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\r\nexport const CUTE_BOTTOM_SHEET_DATA = new InjectionToken<any>('CuteBottomSheetData');\r\n\r\n/**\r\n * Configuration used when opening a bottom sheet.\r\n */\r\nexport class CuteBottomSheetConfig<D = any> {\r\n /** The view container to place the overlay for the bottom sheet into. */\r\n viewContainerRef?: ViewContainerRef;\r\n\r\n /**\r\n * Injector used for the instantiation of the component to be attached. If provided,\r\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\r\n */\r\n injector?: Injector;\r\n\r\n /** Extra CSS classes to be added to the bottom sheet container. */\r\n panelClass?: string | string[];\r\n\r\n /** Text layout direction for the bottom sheet. */\r\n direction?: Direction;\r\n\r\n /** Data being injected into the child component. */\r\n data?: D | null = null;\r\n\r\n /** Whether the bottom sheet has a backdrop. */\r\n hasBackdrop?: boolean = true;\r\n\r\n /** Custom class for the backdrop. */\r\n backdropClass?: string;\r\n\r\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\r\n disableClose?: boolean = false;\r\n\r\n /** Aria label to assign to the bottom sheet element. */\r\n ariaLabel?: string | null = null;\r\n\r\n /**\r\n * Whether this is a modal dialog. Used to set the `aria-modal` attribute. Off by default,\r\n * because it can interfere with other overlay-based components (e.g. `cute-select`) and because\r\n * it is redundant since the dialog marks all outside content as `aria-hidden` anyway.\r\n */\r\n ariaModal?: boolean = false;\r\n\r\n /**\r\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\r\n * Note that this usually doesn't include clicking on links (unless the user is using\r\n * the `HashLocationStrategy`).\r\n */\r\n closeOnNavigation?: boolean = true;\r\n\r\n /**\r\n * Where the bottom sheet should focus on open.\r\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\r\n * AutoFocusTarget instead.\r\n */\r\n autoFocus?: AutoFocusTarget | string | boolean = 'first-tabbable';\r\n\r\n /**\r\n * Whether the bottom sheet should restore focus to the\r\n * previously-focused element, after it's closed.\r\n */\r\n restoreFocus?: boolean = true;\r\n\r\n /** Scroll strategy to be used for the bottom sheet. */\r\n scrollStrategy?: ScrollStrategy;\r\n\r\n /** Height for the bottom sheet. */\r\n height?: string = '';\r\n\r\n /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */\r\n minHeight?: number | string;\r\n\r\n /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */\r\n maxHeight?: number | string;\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 {ComponentRef} from '@angular/core';\r\nimport {DialogRef} from '@angular/cdk/dialog';\r\nimport {ESCAPE, hasModifierKey} from '@angular/cdk/keycodes';\r\nimport {merge, Observable, Subject} from 'rxjs';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {CuteBottomSheetConfig} from './bottom-sheet.config';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\n\r\n/**\r\n * Reference to a bottom sheet dispatched from the bottom sheet service.\r\n */\r\nexport class CuteBottomSheetRef<T = any, R = any> {\r\n /** Instance of the component making up the content of the bottom sheet. */\r\n get instance(): T {\r\n return this._ref.componentInstance!;\r\n }\r\n\r\n /**\r\n * `ComponentRef` of the component opened into the bottom sheet. Will be\r\n * null when the bottom sheet is opened using a `TemplateRef`.\r\n */\r\n get componentRef(): ComponentRef<T> | null {\r\n return this._ref.componentRef;\r\n }\r\n\r\n /**\r\n * Instance of the component into which the bottom sheet content is projected.\r\n * @docs-private\r\n */\r\n containerInstance: CuteBottomSheetContainer;\r\n\r\n /** Whether the user is allowed to close the bottom sheet. */\r\n disableClose: boolean | undefined;\r\n\r\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\r\n private readonly _afterOpened = new Subject<void>();\r\n\r\n /** Result to be passed down to the `afterDismissed` stream. */\r\n private _result: R | undefined;\r\n\r\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\r\n private _closeFallbackTimeout: ReturnType<typeof setTimeout> | undefined;\r\n\r\n constructor(\r\n private _ref: DialogRef<R, T>,\r\n config: CuteBottomSheetConfig,\r\n containerInstance: CuteBottomSheetContainer,\r\n ) {\r\n this.containerInstance = containerInstance;\r\n this.disableClose = config.disableClose;\r\n\r\n // Emit when opening animation completes\r\n containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'done' && event.toState === 'visible'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n this._afterOpened.next();\r\n this._afterOpened.complete();\r\n });\r\n\r\n // Dispose overlay when closing animation is complete\r\n containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'done' && event.toState === 'hidden'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n clearTimeout(this._closeFallbackTimeout);\r\n this._ref.close(this._result);\r\n });\r\n\r\n _ref.overlayRef.detachments().subscribe(() => {\r\n this._ref.close(this._result);\r\n });\r\n\r\n merge(\r\n this.backdropClick(),\r\n this.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE)),\r\n ).subscribe(event => {\r\n if (\r\n !this.disableClose &&\r\n (event.type !== 'keydown' || !hasModifierKey(event as KeyboardEvent))\r\n ) {\r\n event.preventDefault();\r\n this.dismiss();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dismisses the bottom sheet.\r\n * @param result Data to be passed back to the bottom sheet opener.\r\n */\r\n dismiss(result?: R): void {\r\n if (!this.containerInstance) {\r\n return;\r\n }\r\n\r\n // Transition the backdrop in parallel to the bottom sheet.\r\n this.containerInstance._animationStateChanged\r\n .pipe(\r\n filter(event => event.phase === 'start'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n // The logic that disposes of the overlay depends on the exit animation completing, however\r\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\r\n // timeout which will clean everything up if the animation hasn't fired within the specified\r\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\r\n // vast majority of cases the timeout will have been cleared before it has fired.\r\n this._closeFallbackTimeout = setTimeout(() => this._ref.close(this._result), 500);\r\n this._ref.overlayRef.detachBackdrop();\r\n });\r\n\r\n this._result = result;\r\n this.containerInstance.exit();\r\n this.containerInstance = null!;\r\n }\r\n\r\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\r\n afterDismissed(): Observable<R | undefined> {\r\n return this._ref.closed;\r\n }\r\n\r\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\r\n afterOpened(): Observable<void> {\r\n return this._afterOpened;\r\n }\r\n\r\n /**\r\n * Gets an observable that emits when the overlay's backdrop has been clicked.\r\n */\r\n backdropClick(): Observable<MouseEvent> {\r\n return this._ref.backdropClick;\r\n }\r\n\r\n /**\r\n * Gets an observable that emits when keydown events are targeted on the overlay.\r\n */\r\n keydownEvents(): Observable<KeyboardEvent> {\r\n return this._ref.keydownEvents;\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 {Dialog} from '@angular/cdk/dialog';\r\nimport {createBlockScrollStrategy, createGlobalPositionStrategy} from '@angular/cdk/overlay';\r\nimport {ComponentType} from '@angular/cdk/portal';\r\nimport {Injectable, TemplateRef, InjectionToken, OnDestroy, inject, Injector} from '@angular/core';\r\nimport {CUTE_BOTTOM_SHEET_DATA, CuteBottomSheetConfig} from './bottom-sheet.config';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\nimport {CuteBottomSheetRef} from './bottom-sheet.ref';\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\n/** Injection token that can be used to specify default bottom sheet options. */\r\nexport const CUTE_BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<CuteBottomSheetConfig>(\r\n 'cute-bottom-sheet-default-options',\r\n);\r\n\r\n/**\r\n * Service to trigger Material Design bottom sheets.\r\n */\r\n@Injectable({providedIn: 'root'})\r\nexport class CuteBottomSheet implements OnDestroy {\r\n private _injector = inject(Injector);\r\n private _parentBottomSheet = inject(CuteBottomSheet, {optional: true, skipSelf: true});\r\n private _animationsDisabled = _animationsDisabled();\r\n private _defaultOptions = inject<CuteBottomSheetConfig>(CUTE_BOTTOM_SHEET_DEFAULT_OPTIONS, {\r\n optional: true,\r\n });\r\n\r\n private _bottomSheetRefAtThisLevel: CuteBottomSheetRef<any> | null = null;\r\n private _dialog = inject(Dialog);\r\n\r\n /** Reference to the currently opened bottom sheet. */\r\n get _openedBottomSheetRef(): CuteBottomSheetRef<any> | null {\r\n const parent = this._parentBottomSheet;\r\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\r\n }\r\n\r\n set _openedBottomSheetRef(value: CuteBottomSheetRef<any> | null) {\r\n if (this._parentBottomSheet) {\r\n this._parentBottomSheet._openedBottomSheetRef = value;\r\n } else {\r\n this._bottomSheetRefAtThisLevel = value;\r\n }\r\n }\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {}\r\n\r\n /**\r\n * Opens a bottom sheet containing the given component.\r\n * @param component Type of the component to load into the bottom sheet.\r\n * @param config Extra configuration options.\r\n * @returns Reference to the newly-opened bottom sheet.\r\n */\r\n open<T, D = any, R = any>(\r\n component: ComponentType<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R>;\r\n\r\n /**\r\n * Opens a bottom sheet containing the given template.\r\n * @param template TemplateRef to instantiate as the bottom sheet content.\r\n * @param config Extra configuration options.\r\n * @returns Reference to the newly-opened bottom sheet.\r\n */\r\n open<T, D = any, R = any>(\r\n template: TemplateRef<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R>;\r\n\r\n open<T, D = any, R = any>(\r\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\r\n config?: CuteBottomSheetConfig<D>,\r\n ): CuteBottomSheetRef<T, R> {\r\n const _config = {...(this._defaultOptions || new CuteBottomSheetConfig()), ...config};\r\n let ref: CuteBottomSheetRef<T, R>;\r\n\r\n this._dialog.open<R, D, T>(componentOrTemplateRef, {\r\n ..._config,\r\n // Disable closing since we need to sync it up to the animation ourselves.\r\n disableClose: true,\r\n // Disable closing on detachments so that we can sync up the animation.\r\n closeOnOverlayDetachments: false,\r\n maxWidth: '100%',\r\n container: CuteBottomSheetContainer,\r\n scrollStrategy: _config.scrollStrategy || createBlockScrollStrategy(this._injector),\r\n positionStrategy: createGlobalPositionStrategy(this._injector)\r\n .centerHorizontally()\r\n .bottom('0'),\r\n disableAnimations: this._animationsDisabled,\r\n templateContext: () => ({bottomSheetRef: ref}),\r\n providers: (cdkRef, _cdkConfig, container) => {\r\n ref = new CuteBottomSheetRef(cdkRef, _config, container as CuteBottomSheetContainer);\r\n return [\r\n {provide: CuteBottomSheetRef, useValue: ref},\r\n {provide: CUTE_BOTTOM_SHEET_DATA, useValue: _config.data},\r\n ];\r\n },\r\n });\r\n\r\n // When the bottom sheet is dismissed, clear the reference to it.\r\n ref!.afterDismissed().subscribe(() => {\r\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\r\n if (this._openedBottomSheetRef === ref) {\r\n this._openedBottomSheetRef = null;\r\n }\r\n });\r\n\r\n if (this._openedBottomSheetRef) {\r\n // If a bottom sheet is already in view, dismiss it and enter the\r\n // new bottom sheet after exit animation is complete.\r\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance?.enter());\r\n this._openedBottomSheetRef.dismiss();\r\n } else {\r\n // If no bottom sheet is in view, enter the new bottom sheet.\r\n ref!.containerInstance.enter();\r\n }\r\n\r\n this._openedBottomSheetRef = ref!;\r\n return ref!;\r\n }\r\n\r\n /**\r\n * Dismisses the currently-visible bottom sheet.\r\n * @param result Data to pass to the bottom sheet instance.\r\n */\r\n dismiss<R = any>(result?: R): void {\r\n if (this._openedBottomSheetRef) {\r\n this._openedBottomSheetRef.dismiss(result);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._bottomSheetRefAtThisLevel) {\r\n this._bottomSheetRefAtThisLevel.dismiss();\r\n }\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 {DialogModule} from '@angular/cdk/dialog';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {NgModule} from '@angular/core';\r\nimport {BidiModule} from '@angular/cdk/bidi';\r\nimport {CuteBottomSheetContainer} from './bottom-sheet.container';\r\nimport {CuteBottomSheet} from './bottom-sheet';\r\n\r\n@NgModule({\r\n imports: [DialogModule, PortalModule, CuteBottomSheetContainer],\r\n exports: [CuteBottomSheetContainer, BidiModule],\r\n providers: [CuteBottomSheet],\r\n})\r\nexport class CuteBottomSheetModule {}\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\nexport * from './src/bottom-sheet.module';\r\nexport * from './src/bottom-sheet';\r\nexport * from './src/bottom-sheet.config';\r\nexport * from './src/bottom-sheet.container';\r\nexport * from './src/bottom-sheet.ref';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, forwardRef, inject, EventEmitter, isDevMode, booleanAttribute, Output, Input, ContentChildren, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
- import { CuteButtonGroup, CuteButtonBase, CUTE_BUTTON_BASE } from '@cute-widgets/base/button';
3
+ import { CuteButtonGroup, CUTE_BUTTON_GROUP, CuteButtonBase, CUTE_BUTTON_BASE } from '@cute-widgets/base/button';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { SelectionModel } from '@angular/cdk/collections';
6
6
  import { hasModifierKey, RIGHT_ARROW, DOWN_ARROW, LEFT_ARROW, UP_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';
@@ -152,6 +152,14 @@ class CuteButtonToggleGroup extends CuteButtonGroup {
152
152
  this._markButtonsForCheck();
153
153
  }
154
154
  }
155
+ /**
156
+ * Implemented as part of ControlValueAccessor.
157
+ *
158
+ * @inheritDoc
159
+ */
160
+ setDisabledState(newState, emitEvent) {
161
+ return super.setDisabledState(newState, emitEvent);
162
+ }
155
163
  /**
156
164
  * Sets the model value. Implemented as part of ControlValueAccessor.
157
165
  * @param value Value to be set to the model.
@@ -168,14 +176,6 @@ class CuteButtonToggleGroup extends CuteButtonGroup {
168
176
  registerOnTouched(fn) {
169
177
  this._onTouched = fn;
170
178
  }
171
- // Implemented as part of ControlValueAccessor.
172
- setDisabledState(isDisabled) {
173
- if (super.setDisabledState(isDisabled)) {
174
- this._buttonToggles?.forEach(toggle => toggle.disabled = isDisabled);
175
- this._markButtonsForCheck();
176
- }
177
- return false;
178
- }
179
179
  /** Handle keydown event calling to single-select button toggle. */
180
180
  _keydown(event) {
181
181
  if (this.multiple || this.disabled || hasModifierKey(event) || !this._buttonToggles) {
@@ -351,33 +351,28 @@ class CuteButtonToggleGroup extends CuteButtonGroup {
351
351
  // it is used by Angular to sync up the two-way data binding.
352
352
  this.valueChange.emit(this.value);
353
353
  }
354
- /** Marks all the child button toggles to be checked. */
355
- _markButtonsForCheck() {
356
- this._buttonToggles?.forEach(toggle => toggle.markForCheck());
357
- }
358
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
359
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: CuteButtonToggleGroup, isStandalone: true, selector: "cute-button-toggle-group", inputs: { name: "name", value: "value", multiple: ["multiple", "multiple", booleanAttribute], disabledInteractive: ["disabledInteractive", "disabledInteractive", booleanAttribute], hideSingleSelectionIndicator: ["hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute], hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, outputs: { valueChange: "valueChange", change: "change" }, host: { listeners: { "keydown": "_keydown($event)" }, properties: { "attr.role": "multiple ? \"group\" : \"radiogroup\"", "attr.aria-disabled": "disabled", "attr.tabindex": "-1" }, classAttribute: "cute-button-toggle-group" }, providers: [
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteButtonToggleGroup, isStandalone: true, selector: "cute-button-toggle-group", inputs: { name: "name", value: "value", multiple: ["multiple", "multiple", booleanAttribute], disabledInteractive: ["disabledInteractive", "disabledInteractive", booleanAttribute], hideSingleSelectionIndicator: ["hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute], hideMultipleSelectionIndicator: ["hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] }, outputs: { valueChange: "valueChange", change: "change" }, host: { listeners: { "keydown": "_keydown($event)" }, properties: { "attr.role": "multiple ? \"group\" : \"radiogroup\"" }, classAttribute: "cute-button-toggle-group" }, providers: [
360
356
  CUTE_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,
357
+ { provide: CUTE_BUTTON_GROUP, useExisting: CuteButtonToggleGroup },
361
358
  { provide: CUTE_BUTTON_TOGGLE_GROUP, useExisting: CuteButtonToggleGroup },
362
359
  ], queries: [{ propertyName: "_buttonToggles", predicate: i0.forwardRef(() => CuteButtonToggle), descendants: true }], exportAs: ["cuteButtonToggleGroup"], usesInheritance: true, ngImport: i0 }); }
363
360
  }
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleGroup, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleGroup, decorators: [{
365
362
  type: Directive,
366
363
  args: [{
367
364
  selector: 'cute-button-toggle-group',
368
- providers: [
369
- CUTE_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,
370
- { provide: CUTE_BUTTON_TOGGLE_GROUP, useExisting: CuteButtonToggleGroup },
371
- ],
365
+ exportAs: 'cuteButtonToggleGroup',
372
366
  host: {
373
367
  'class': 'cute-button-toggle-group',
374
368
  '[attr.role]': 'multiple ? "group" : "radiogroup"',
375
- '[attr.aria-disabled]': 'disabled',
376
- '[attr.tabindex]': '-1',
377
369
  '(keydown)': '_keydown($event)',
378
370
  },
379
- exportAs: 'cuteButtonToggleGroup',
380
- standalone: true,
371
+ providers: [
372
+ CUTE_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,
373
+ { provide: CUTE_BUTTON_GROUP, useExisting: CuteButtonToggleGroup },
374
+ { provide: CUTE_BUTTON_TOGGLE_GROUP, useExisting: CuteButtonToggleGroup },
375
+ ],
381
376
  }]
382
377
  }], ctorParameters: () => [], propDecorators: { _buttonToggles: [{
383
378
  type: ContentChildren,
@@ -465,6 +460,11 @@ class CuteButtonToggle extends CuteButtonBase {
465
460
  if (this.buttonToggleGroup) {
466
461
  this.buttonToggleGroup._syncButtonToggle(this, this._checked);
467
462
  }
463
+ else {
464
+ //++ CWT
465
+ this.change.emit(new CuteButtonToggleChange(this, this.value));
466
+ //--
467
+ }
468
468
  this.markForCheck();
469
469
  }
470
470
  }
@@ -480,6 +480,8 @@ class CuteButtonToggle extends CuteButtonBase {
480
480
  super();
481
481
  this._animationDisabled = _animationsDisabled();
482
482
  this._multiple = true;
483
+ /** The parent button toggle group (exclusive selection). Optional. */
484
+ this.buttonToggleGroup = null;
483
485
  this._checked = false;
484
486
  /** Event emitted when the group value changes. */
485
487
  this.change = new EventEmitter();
@@ -489,8 +491,22 @@ class CuteButtonToggle extends CuteButtonBase {
489
491
  const defaultOptions = inject(CUTE_BUTTON_TOGGLE_DEFAULT_OPTIONS, { optional: true });
490
492
  //this._tabIndex = parseInt(defaultTabIndex) || 0;
491
493
  this.buttonToggleGroup = toggleGroup;
494
+ if (!toggleGroup)
495
+ this.inputButtonStyle = "outline-button";
492
496
  this.disabledInteractive = defaultOptions?.disabledInteractive ?? false;
493
497
  }
498
+ /** Toggles the `checked` state of the toggle button. */
499
+ toggle() {
500
+ this.checked = !this.checked;
501
+ }
502
+ /** Sets the `checked` state of the toggle button. */
503
+ check() {
504
+ this.checked = true;
505
+ }
506
+ /** Clears the `checked` state of the toggle button. */
507
+ uncheck() {
508
+ this.checked = false;
509
+ }
494
510
  ngOnInit() {
495
511
  super.ngOnInit();
496
512
  const group = this.buttonToggleGroup;
@@ -548,7 +564,7 @@ class CuteButtonToggle extends CuteButtonBase {
548
564
  }
549
565
  }
550
566
  if (this.isSingleSelector()) {
551
- const focusable = this.buttonToggleGroup._buttonToggles?.find(toggle => {
567
+ const focusable = this.buttonToggleGroup?._buttonToggles?.find(toggle => {
552
568
  return toggle.tabIndex === 0;
553
569
  });
554
570
  // Modify the tabindex attribute of the last focusable button toggle to -1.
@@ -563,26 +579,34 @@ class CuteButtonToggle extends CuteButtonBase {
563
579
  }
564
580
  /** Gets the name that should be assigned to the inner DOM node. */
565
581
  _getButtonName() {
566
- if (this.isSingleSelector()) {
582
+ if (this.buttonToggleGroup && this.isSingleSelector()) {
567
583
  return this.buttonToggleGroup.name;
568
584
  }
569
585
  return this.name || null;
570
586
  }
571
587
  /** Whether the toggle is in single selection mode. */
572
588
  isSingleSelector() {
573
- return this.buttonToggleGroup && !this.buttonToggleGroup.multiple;
589
+ return (this.buttonToggleGroup && !this.buttonToggleGroup.multiple) ?? false;
574
590
  }
575
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
576
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CuteButtonToggle, isStandalone: true, selector: "cute-button-toggle", inputs: { name: "name", value: "value", checked: ["checked", "checked", booleanAttribute] }, outputs: { change: "change" }, host: { listeners: { "focus": "focus()", "click": "_onButtonClick()" }, properties: { "class.cute-button-toggle-standalone": "!buttonToggleGroup", "class.active": "checked", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.name": "null", "style.--bs-btn-hover-color": "'var(--bs-'+toThemeColor(color)+'-text-emphasis)'" }, classAttribute: "cute-button-toggle" }, providers: [
591
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CuteButtonToggle, isStandalone: true, selector: "cute-button-toggle", inputs: { name: "name", value: "value", checked: ["checked", "checked", booleanAttribute] }, outputs: { change: "change" }, host: { listeners: { "focus": "focus()", "click": "_onButtonClick()" }, properties: { "class.cute-button-toggle-standalone": "!buttonToggleGroup", "class.active": "checked", "class.disabled": "disabled", "class.cute-button-disabled-interactive": "disabledInteractive", "class.cute-button-checked-disabled": "checked && disabled", "class.cute-unthemed": "!color", "attr.disabled": "_getDisabledAttribute()", "attr.aria-disabled": "_getAriaDisabled()", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.name": "null", "style.--bs-btn-hover-color": "'var(--bs-'+toThemeColor(color)+'-text-emphasis)'" }, classAttribute: "cute-button-toggle cute-button" }, providers: [
577
593
  { provide: CUTE_BUTTON_BASE, useExisting: CuteButtonToggle }
578
- ], exportAs: ["cuteButtonToggle"], usesInheritance: true, ngImport: i0, template: "<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\" [class.cute-button-label__wrap]=\"wrapLabel\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n", styles: [".cute-ripple-element{--cute-ripple-duration: .5s;--cute-ripple-bg-color: rgba(255, 255, 255, .18);position:absolute;border-radius:50%;pointer-events:none;transform:scale3d(0,0,0);animation:cute-ripple-element-animation var(--cute-ripple-duration) cubic-bezier(.65,.05,.36,1);background-color:var(--cute-ripple-bg-color);will-change:transform,opacity}@media (forced-colors: active){.cute-ripple-element{display:none}}@keyframes cute-ripple-element-animation{to{transform:scale(8);opacity:0}}.cute-button,.cute-anchor{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;box-shadow:none}.cute-button:has(>:nth-child(2)),.cute-anchor:has(>:nth-child(2)){gap:.5em}.cute-button.dropdown-toggle,.cute-anchor.dropdown-toggle{gap:.375em}.cute-button.dropdown-toggle-split,.cute-anchor.dropdown-toggle-split{gap:0}.cute-button .cute-icon-wrapper,.cute-anchor .cute-icon-wrapper{display:contents}.cute-button .cute-icon-wrapper:empty,.cute-anchor .cute-icon-wrapper:empty{display:none}.cute-button .cute-button-label:not(.cute-button-label__wrap),.cute-anchor .cute-button-label:not(.cute-button-label__wrap){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cute-button .cute-button-label .badge,.cute-anchor .cute-button-label .badge{line-height:var(--bs-btn-line-height);top:0}.cute-button .cute-button-label:empty,.cute-anchor .cute-button-label:empty{display:none}.cute-button.cute-button-disabled-interactive,.cute-anchor.cute-button-disabled-interactive{cursor:pointer}.cute-button.cute-button-disabled-interactive:disabled,.cute-button.cute-button-disabled-interactive.disabled,.cute-anchor.cute-button-disabled-interactive:disabled,.cute-anchor.cute-button-disabled-interactive.disabled{pointer-events:auto;cursor:default;box-shadow:none;--bs-btn-active-bg: var(--bs-btn-disabled-bg);--bs-btn-active-border-color: var(--bs-btn-disabled-border-color);--bs-btn-active-color: var(--bs-btn-disabled-color)}.cute-button.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-button.cute-button-disabled-interactive.disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive.disabled.cute-icon-button{--bs-btn-active-bg: transparent;--bs-btn-active-border-color: transparent;--bs-btn-hover-bg: transparent}.cute-button.cute-base-button,.cute-anchor.cute-base-button{font-weight:500;--cute-base-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-base-button-color-rgb), .08);--bs-btn-active-border-color: rgba(var(--cute-base-button-color-rgb), .12);--bs-btn-disabled-border-color: transparent;--bs-btn-hover-bg: rgba(var(--cute-base-button-color-rgb), .06)}.cute-button.cute-flat-button.cute-unthemed,.cute-anchor.cute-flat-button.cute-unthemed{--bs-btn-bg: var(--bs-tertiary-bg);--bs-btn-hover-bg: var(--bs-secondary-bg);--bs-btn-active-bg: var(--bs-secondary-bg);border-color:transparent}.cute-button.raised,.cute-anchor.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.cute-button.raised:hover,.cute-button.raised:focus,.cute-anchor.raised:hover,.cute-anchor.raised:focus{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.cute-button.raised:active,.cute-anchor.raised:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.raised:disabled,.cute-button.raised.disabled,.cute-anchor.raised:disabled,.cute-anchor.raised.disabled{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.cute-button.btn-light:disabled,.cute-button.btn-light.disabled,.cute-anchor.btn-light:disabled,.cute-anchor.btn-light.disabled{background-color:#0000001a}.cute-button>[role=img],.cute-button i[class],.cute-anchor>[role=img],.cute-anchor i[class]{align-self:center;pointer-events:none;overflow:visible}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{--icon-size: 40px;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;padding:0;padding-top:revert;gap:0;border-radius:50%;flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.cute-button.cute-fab-button[magnitude=largest],.cute-anchor.cute-fab-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-fab-button[magnitude=larger],.cute-anchor.cute-fab-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-fab-button[magnitude=large],.cute-anchor.cute-fab-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-fab-button[magnitude=middle],.cute-anchor.cute-fab-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=small],.cute-anchor.cute-fab-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-fab-button[magnitude=smaller],.cute-anchor.cute-fab-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-fab-button[magnitude=smallest],.cute-anchor.cute-fab-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-fab-button svg,.cute-anchor.cute-fab-button svg{vertical-align:baseline}.cute-button.cute-fab-button:active,.cute-anchor.cute-fab-button:active{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.cute-button.cute-fab-button:active.btn-light,.cute-anchor.cute-fab-button:active.btn-light{border-color:#00000040}.cute-button.cute-fab-button:hover,.cute-button.cute-fab-button.cdk-focused,.cute-anchor.cute-fab-button:hover,.cute-anchor.cute-fab-button.cdk-focused{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.cute-fab-button:disabled,.cute-button.cute-fab-button.disabled,.cute-anchor.cute-fab-button:disabled,.cute-anchor.cute-fab-button.disabled{border:0;box-shadow:none}.cute-button.cute-fab-button:disabled>[role=img],.cute-button.cute-fab-button:disabled i[class],.cute-button.cute-fab-button.disabled>[role=img],.cute-button.cute-fab-button.disabled i[class],.cute-anchor.cute-fab-button:disabled>[role=img],.cute-anchor.cute-fab-button:disabled i[class],.cute-anchor.cute-fab-button.disabled>[role=img],.cute-anchor.cute-fab-button.disabled i[class]{color:#00000061!important}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{overflow:hidden;border-radius:50%;border:0;padding:0;gap:0!important;--icon-size: 40px;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;--cute-icon-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-active-border-color: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .06)}.cute-button.cute-icon-button[magnitude=largest],.cute-anchor.cute-icon-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-icon-button[magnitude=larger],.cute-anchor.cute-icon-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-icon-button[magnitude=large],.cute-anchor.cute-icon-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-icon-button[magnitude=middle],.cute-anchor.cute-icon-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-icon-button[magnitude=small],.cute-anchor.cute-icon-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-icon-button[magnitude=smaller],.cute-anchor.cute-icon-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-icon-button[magnitude=smallest],.cute-anchor.cute-icon-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-icon-button svg,.cute-anchor.cute-icon-button svg{vertical-align:baseline}.cute-button.cute-icon-button.cdk-focused,.cute-anchor.cute-icon-button.cdk-focused{--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .04)}.cute-btn-xxs,.cute-btn-group-xxs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .5rem}.cute-btn-xs,.cute-btn-group-xs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .75rem}.cute-btn-xl,.cute-btn-group-xl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.5rem}.cute-btn-xxl,.cute-btn-group-xxl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 2.5rem}[dir=rtl] .btn-group>.btn:not(:first-child):not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:not(:first-child)>.btn{border-radius:0}[dir=rtl] .btn-group>.btn:nth-child(n+3),[dir=rtl] .btn-group>:not(.btn-check)+.btn,[dir=rtl] .btn-group>.btn-group:not(:last-child)>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:first-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:first-child,[dir=rtl] .btn-group>.btn-group:first-child>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:last-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:last-child>.btn{border-radius:var(--bs-btn-border-radius) 0 0 var(--bs-btn-border-radius)}.cute-button-expandable{padding:.25rem .5rem;font-weight:600;color:var(--bs-emphasis-color);background-color:transparent}.cute-button-expandable:hover,.cute-button-expandable:focus{color:rgba(var(--bs-emphasis-color-rgb),.85);background-color:var(--bs-tertiary-bg)}.cute-button-expandable:before{width:1.25em;line-height:0;content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\");transition:transform .35s ease;transform-origin:.5em 50%;transform:scale(.85)}[data-bs-theme=dark] .cute-button-expandable:before{content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\")}[dir=rtl] .cute-button-expandable:before{transform:rotate(180deg) scale(.85);margin-left:.25em;text-align:end}.cute-button-expandable[aria-expanded=true]{color:rgba(var(--bs-emphasis-color-rgb),.85)}.cute-button-expandable[aria-expanded=true]:before{transform:rotate(90deg) scale(.85)}\n", ".cute-button-toggle{--bs-btn-hover-bg: transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
594
+ ], exportAs: ["cuteButtonToggle"], usesInheritance: true, ngImport: i0, template: "<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\" [class.cute-button-label__nowrap]=\"!wrapText\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n", styles: [".cute-ripple-element{--cute-ripple-duration: .5s;--cute-ripple-bg-color: rgba(255, 255, 255, .18);position:absolute;border-radius:50%;pointer-events:none;transform:scale3d(0,0,0);animation:cute-ripple-element-animation var(--cute-ripple-duration) cubic-bezier(.65,.05,.36,1);background-color:var(--cute-ripple-bg-color);will-change:transform,opacity}@media(forced-colors:active){.cute-ripple-element{display:none}}@keyframes cute-ripple-element-animation{to{transform:scale(8);opacity:0}}.cute-button,.cute-anchor{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:visible;box-shadow:none}.cute-button:not(.btn-close),.cute-anchor:not(.btn-close){box-sizing:border-box}.cute-button:has(>:nth-child(2)),.cute-anchor:has(>:nth-child(2)){gap:.5em}.cute-button.dropdown-toggle,.cute-anchor.dropdown-toggle{gap:.375em}.cute-button.dropdown-toggle-split,.cute-anchor.dropdown-toggle-split{gap:0}.cute-button .cute-icon-wrapper,.cute-anchor .cute-icon-wrapper{display:contents}.cute-button .cute-icon-wrapper:empty,.cute-anchor .cute-icon-wrapper:empty{display:none}.cute-button .cute-button-label.cute-button-label__nowrap,.cute-anchor .cute-button-label.cute-button-label__nowrap{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cute-button .cute-button-label:empty,.cute-anchor .cute-button-label:empty{display:none}.cute-button.cute-button-disabled-interactive,.cute-anchor.cute-button-disabled-interactive{cursor:pointer}.cute-button.cute-button-disabled-interactive:disabled,.cute-button.cute-button-disabled-interactive.disabled,.cute-anchor.cute-button-disabled-interactive:disabled,.cute-anchor.cute-button-disabled-interactive.disabled{pointer-events:auto;cursor:default;box-shadow:none;--bs-btn-active-bg: var(--bs-btn-disabled-bg);--bs-btn-active-border-color: var(--bs-btn-disabled-border-color);--bs-btn-active-color: var(--bs-btn-disabled-color)}.cute-button.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-button.cute-button-disabled-interactive.disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive.disabled.cute-icon-button{--bs-btn-active-bg: transparent;--bs-btn-active-border-color: transparent;--bs-btn-hover-bg: transparent}.cute-button.cute-base-button,.cute-anchor.cute-base-button{font-weight:500;--cute-base-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-base-button-color-rgb), .08);--bs-btn-active-border-color: rgba(var(--cute-base-button-color-rgb), .12);--bs-btn-disabled-border-color: transparent;--bs-btn-hover-bg: rgba(var(--cute-base-button-color-rgb), .06)}.cute-button.cute-flat-button.cute-unthemed,.cute-anchor.cute-flat-button.cute-unthemed{--bs-btn-bg: var(--bs-tertiary-bg);--bs-btn-hover-bg: var(--bs-secondary-bg);--bs-btn-active-bg: var(--bs-secondary-bg);border-color:transparent}.cute-button.raised,.cute-anchor.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.cute-button.raised:hover,.cute-button.raised:focus,.cute-anchor.raised:hover,.cute-anchor.raised:focus{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.cute-button.raised:active,.cute-anchor.raised:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.raised:disabled,.cute-button.raised.disabled,.cute-anchor.raised:disabled,.cute-anchor.raised.disabled{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.cute-button.btn-light:disabled,.cute-button.btn-light.disabled,.cute-anchor.btn-light:disabled,.cute-anchor.btn-light.disabled{background-color:#0000001a}.cute-button>[role=img],.cute-button i[class],.cute-anchor>[role=img],.cute-anchor i[class]{align-self:center;pointer-events:none;overflow:visible}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=largest],.cute-anchor.cute-fab-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-fab-button[magnitude=larger],.cute-anchor.cute-fab-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-fab-button[magnitude=large],.cute-anchor.cute-fab-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-fab-button[magnitude=middle],.cute-anchor.cute-fab-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=small],.cute-anchor.cute-fab-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-fab-button[magnitude=smaller],.cute-anchor.cute-fab-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-fab-button[magnitude=smallest],.cute-anchor.cute-fab-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;padding:0;padding-top:revert;gap:0;border-radius:50%;flex-shrink:0}.cute-button.cute-fab-button svg,.cute-anchor.cute-fab-button svg{vertical-align:baseline}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.cute-button.cute-fab-button:active,.cute-anchor.cute-fab-button:active{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.cute-button.cute-fab-button:active.btn-light,.cute-anchor.cute-fab-button:active.btn-light{border-color:#00000040}.cute-button.cute-fab-button:hover,.cute-button.cute-fab-button.cdk-focused,.cute-anchor.cute-fab-button:hover,.cute-anchor.cute-fab-button.cdk-focused{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.cute-fab-button:disabled,.cute-button.cute-fab-button.disabled,.cute-anchor.cute-fab-button:disabled,.cute-anchor.cute-fab-button.disabled{border:0;box-shadow:none}.cute-button.cute-fab-button:disabled>[role=img],.cute-button.cute-fab-button:disabled i[class],.cute-button.cute-fab-button.disabled>[role=img],.cute-button.cute-fab-button.disabled i[class],.cute-anchor.cute-fab-button:disabled>[role=img],.cute-anchor.cute-fab-button:disabled i[class],.cute-anchor.cute-fab-button.disabled>[role=img],.cute-anchor.cute-fab-button.disabled i[class]{color:#00000061!important}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{overflow:hidden;border-radius:50%;border:0;padding:0;gap:0!important;--icon-size: 40px}.cute-button.cute-icon-button[magnitude=largest],.cute-anchor.cute-icon-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-icon-button[magnitude=larger],.cute-anchor.cute-icon-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-icon-button[magnitude=large],.cute-anchor.cute-icon-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-icon-button[magnitude=middle],.cute-anchor.cute-icon-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-icon-button[magnitude=small],.cute-anchor.cute-icon-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-icon-button[magnitude=smaller],.cute-anchor.cute-icon-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-icon-button[magnitude=smallest],.cute-anchor.cute-icon-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1}.cute-button.cute-icon-button svg,.cute-anchor.cute-icon-button svg{vertical-align:baseline}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{--cute-icon-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-active-border-color: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .06)}.cute-button.cute-icon-button.cdk-focused,.cute-anchor.cute-icon-button.cdk-focused{--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .04)}.cute-btn-xxs,.cute-btn-group-xxs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .5rem}.cute-btn-xs,.cute-btn-group-xs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .75rem}.cute-btn-xl,.cute-btn-group-xl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.5rem}.cute-btn-xxl,.cute-btn-group-xxl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 2.5rem}[dir=rtl] .btn-group>.btn:not(:first-child):not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:not(:first-child)>.btn{border-radius:0}[dir=rtl] .btn-group>.btn:nth-child(n+3),[dir=rtl] .btn-group>:not(.btn-check)+.btn,[dir=rtl] .btn-group>.btn-group:not(:last-child)>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:first-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:first-child,[dir=rtl] .btn-group>.btn-group:first-child>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:last-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:last-child>.btn{border-radius:var(--bs-btn-border-radius) 0 0 var(--bs-btn-border-radius)}.cute-button-expandable{padding:.25rem .5rem;font-weight:600;color:var(--bs-emphasis-color);background-color:transparent}.cute-button-expandable:hover,.cute-button-expandable:focus{color:rgba(var(--bs-emphasis-color-rgb),.85);background-color:var(--bs-tertiary-bg)}.cute-button-expandable:before{width:1.25em;line-height:0;content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\");transition:transform .25s ease;transform-origin:.5em 50%;transform:scale(.85)}[data-bs-theme=dark] .cute-button-expandable:before{content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\")}[dir=rtl] .cute-button-expandable:before{transform:rotate(180deg) scale(.85);margin-left:.25em;text-align:end}.cute-button-expandable[aria-expanded=true]{color:rgba(var(--bs-emphasis-color-rgb),.85)}.cute-button-expandable[aria-expanded=true]:before{transform:rotate(90deg) scale(.85)}\n", ".cute-button-toggle{--bs-btn-hover-bg: transparent}.cute-button-toggle.cute-button-checked-disabled{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);opacity:var(--bs-btn-disabled-opacity)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
579
595
  }
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggle, decorators: [{
596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggle, decorators: [{
581
597
  type: Component,
582
598
  args: [{ selector: 'cute-button-toggle', exportAs: 'cuteButtonToggle', host: {
583
- 'class': 'cute-button-toggle',
599
+ // Many CSS properties are in CuteButton component's css file and depend on
600
+ // `cute-button` and `cute-anchor` CSS classes. So, we include ancestor class name `cute-button`.
601
+ 'class': 'cute-button-toggle cute-button',
584
602
  '[class.cute-button-toggle-standalone]': '!buttonToggleGroup',
585
603
  '[class.active]': 'checked',
604
+ '[class.disabled]': 'disabled',
605
+ '[class.cute-button-disabled-interactive]': 'disabledInteractive',
606
+ '[class.cute-button-checked-disabled]': 'checked && disabled',
607
+ '[class.cute-unthemed]': '!color',
608
+ '[attr.disabled]': '_getDisabledAttribute()',
609
+ '[attr.aria-disabled]': '_getAriaDisabled()',
586
610
  '[attr.aria-label]': 'null',
587
611
  '[attr.aria-labelledby]': 'null',
588
612
  '[attr.name]': 'null',
@@ -592,7 +616,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
592
616
  //'role': 'presentation',
593
617
  }, providers: [
594
618
  { provide: CUTE_BUTTON_BASE, useExisting: CuteButtonToggle }
595
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\" [class.cute-button-label__wrap]=\"wrapLabel\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n", styles: [".cute-ripple-element{--cute-ripple-duration: .5s;--cute-ripple-bg-color: rgba(255, 255, 255, .18);position:absolute;border-radius:50%;pointer-events:none;transform:scale3d(0,0,0);animation:cute-ripple-element-animation var(--cute-ripple-duration) cubic-bezier(.65,.05,.36,1);background-color:var(--cute-ripple-bg-color);will-change:transform,opacity}@media (forced-colors: active){.cute-ripple-element{display:none}}@keyframes cute-ripple-element-animation{to{transform:scale(8);opacity:0}}.cute-button,.cute-anchor{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;box-shadow:none}.cute-button:has(>:nth-child(2)),.cute-anchor:has(>:nth-child(2)){gap:.5em}.cute-button.dropdown-toggle,.cute-anchor.dropdown-toggle{gap:.375em}.cute-button.dropdown-toggle-split,.cute-anchor.dropdown-toggle-split{gap:0}.cute-button .cute-icon-wrapper,.cute-anchor .cute-icon-wrapper{display:contents}.cute-button .cute-icon-wrapper:empty,.cute-anchor .cute-icon-wrapper:empty{display:none}.cute-button .cute-button-label:not(.cute-button-label__wrap),.cute-anchor .cute-button-label:not(.cute-button-label__wrap){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cute-button .cute-button-label .badge,.cute-anchor .cute-button-label .badge{line-height:var(--bs-btn-line-height);top:0}.cute-button .cute-button-label:empty,.cute-anchor .cute-button-label:empty{display:none}.cute-button.cute-button-disabled-interactive,.cute-anchor.cute-button-disabled-interactive{cursor:pointer}.cute-button.cute-button-disabled-interactive:disabled,.cute-button.cute-button-disabled-interactive.disabled,.cute-anchor.cute-button-disabled-interactive:disabled,.cute-anchor.cute-button-disabled-interactive.disabled{pointer-events:auto;cursor:default;box-shadow:none;--bs-btn-active-bg: var(--bs-btn-disabled-bg);--bs-btn-active-border-color: var(--bs-btn-disabled-border-color);--bs-btn-active-color: var(--bs-btn-disabled-color)}.cute-button.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-button.cute-button-disabled-interactive.disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive.disabled.cute-icon-button{--bs-btn-active-bg: transparent;--bs-btn-active-border-color: transparent;--bs-btn-hover-bg: transparent}.cute-button.cute-base-button,.cute-anchor.cute-base-button{font-weight:500;--cute-base-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-base-button-color-rgb), .08);--bs-btn-active-border-color: rgba(var(--cute-base-button-color-rgb), .12);--bs-btn-disabled-border-color: transparent;--bs-btn-hover-bg: rgba(var(--cute-base-button-color-rgb), .06)}.cute-button.cute-flat-button.cute-unthemed,.cute-anchor.cute-flat-button.cute-unthemed{--bs-btn-bg: var(--bs-tertiary-bg);--bs-btn-hover-bg: var(--bs-secondary-bg);--bs-btn-active-bg: var(--bs-secondary-bg);border-color:transparent}.cute-button.raised,.cute-anchor.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.cute-button.raised:hover,.cute-button.raised:focus,.cute-anchor.raised:hover,.cute-anchor.raised:focus{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.cute-button.raised:active,.cute-anchor.raised:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.raised:disabled,.cute-button.raised.disabled,.cute-anchor.raised:disabled,.cute-anchor.raised.disabled{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.cute-button.btn-light:disabled,.cute-button.btn-light.disabled,.cute-anchor.btn-light:disabled,.cute-anchor.btn-light.disabled{background-color:#0000001a}.cute-button>[role=img],.cute-button i[class],.cute-anchor>[role=img],.cute-anchor i[class]{align-self:center;pointer-events:none;overflow:visible}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{--icon-size: 40px;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;padding:0;padding-top:revert;gap:0;border-radius:50%;flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.cute-button.cute-fab-button[magnitude=largest],.cute-anchor.cute-fab-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-fab-button[magnitude=larger],.cute-anchor.cute-fab-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-fab-button[magnitude=large],.cute-anchor.cute-fab-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-fab-button[magnitude=middle],.cute-anchor.cute-fab-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=small],.cute-anchor.cute-fab-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-fab-button[magnitude=smaller],.cute-anchor.cute-fab-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-fab-button[magnitude=smallest],.cute-anchor.cute-fab-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-fab-button svg,.cute-anchor.cute-fab-button svg{vertical-align:baseline}.cute-button.cute-fab-button:active,.cute-anchor.cute-fab-button:active{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.cute-button.cute-fab-button:active.btn-light,.cute-anchor.cute-fab-button:active.btn-light{border-color:#00000040}.cute-button.cute-fab-button:hover,.cute-button.cute-fab-button.cdk-focused,.cute-anchor.cute-fab-button:hover,.cute-anchor.cute-fab-button.cdk-focused{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.cute-fab-button:disabled,.cute-button.cute-fab-button.disabled,.cute-anchor.cute-fab-button:disabled,.cute-anchor.cute-fab-button.disabled{border:0;box-shadow:none}.cute-button.cute-fab-button:disabled>[role=img],.cute-button.cute-fab-button:disabled i[class],.cute-button.cute-fab-button.disabled>[role=img],.cute-button.cute-fab-button.disabled i[class],.cute-anchor.cute-fab-button:disabled>[role=img],.cute-anchor.cute-fab-button:disabled i[class],.cute-anchor.cute-fab-button.disabled>[role=img],.cute-anchor.cute-fab-button.disabled i[class]{color:#00000061!important}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{overflow:hidden;border-radius:50%;border:0;padding:0;gap:0!important;--icon-size: 40px;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;--cute-icon-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-active-border-color: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .06)}.cute-button.cute-icon-button[magnitude=largest],.cute-anchor.cute-icon-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-icon-button[magnitude=larger],.cute-anchor.cute-icon-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-icon-button[magnitude=large],.cute-anchor.cute-icon-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-icon-button[magnitude=middle],.cute-anchor.cute-icon-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-icon-button[magnitude=small],.cute-anchor.cute-icon-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-icon-button[magnitude=smaller],.cute-anchor.cute-icon-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-icon-button[magnitude=smallest],.cute-anchor.cute-icon-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-icon-button svg,.cute-anchor.cute-icon-button svg{vertical-align:baseline}.cute-button.cute-icon-button.cdk-focused,.cute-anchor.cute-icon-button.cdk-focused{--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .04)}.cute-btn-xxs,.cute-btn-group-xxs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .5rem}.cute-btn-xs,.cute-btn-group-xs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .75rem}.cute-btn-xl,.cute-btn-group-xl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.5rem}.cute-btn-xxl,.cute-btn-group-xxl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 2.5rem}[dir=rtl] .btn-group>.btn:not(:first-child):not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:not(:first-child)>.btn{border-radius:0}[dir=rtl] .btn-group>.btn:nth-child(n+3),[dir=rtl] .btn-group>:not(.btn-check)+.btn,[dir=rtl] .btn-group>.btn-group:not(:last-child)>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:first-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:first-child,[dir=rtl] .btn-group>.btn-group:first-child>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:last-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:last-child>.btn{border-radius:var(--bs-btn-border-radius) 0 0 var(--bs-btn-border-radius)}.cute-button-expandable{padding:.25rem .5rem;font-weight:600;color:var(--bs-emphasis-color);background-color:transparent}.cute-button-expandable:hover,.cute-button-expandable:focus{color:rgba(var(--bs-emphasis-color-rgb),.85);background-color:var(--bs-tertiary-bg)}.cute-button-expandable:before{width:1.25em;line-height:0;content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\");transition:transform .35s ease;transform-origin:.5em 50%;transform:scale(.85)}[data-bs-theme=dark] .cute-button-expandable:before{content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\")}[dir=rtl] .cute-button-expandable:before{transform:rotate(180deg) scale(.85);margin-left:.25em;text-align:end}.cute-button-expandable[aria-expanded=true]{color:rgba(var(--bs-emphasis-color-rgb),.85)}.cute-button-expandable[aria-expanded=true]:before{transform:rotate(90deg) scale(.85)}\n", ".cute-button-toggle{--bs-btn-hover-bg: transparent}\n"] }]
619
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\" [class.cute-button-label__nowrap]=\"!wrapText\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n", styles: [".cute-ripple-element{--cute-ripple-duration: .5s;--cute-ripple-bg-color: rgba(255, 255, 255, .18);position:absolute;border-radius:50%;pointer-events:none;transform:scale3d(0,0,0);animation:cute-ripple-element-animation var(--cute-ripple-duration) cubic-bezier(.65,.05,.36,1);background-color:var(--cute-ripple-bg-color);will-change:transform,opacity}@media(forced-colors:active){.cute-ripple-element{display:none}}@keyframes cute-ripple-element-animation{to{transform:scale(8);opacity:0}}.cute-button,.cute-anchor{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:visible;box-shadow:none}.cute-button:not(.btn-close),.cute-anchor:not(.btn-close){box-sizing:border-box}.cute-button:has(>:nth-child(2)),.cute-anchor:has(>:nth-child(2)){gap:.5em}.cute-button.dropdown-toggle,.cute-anchor.dropdown-toggle{gap:.375em}.cute-button.dropdown-toggle-split,.cute-anchor.dropdown-toggle-split{gap:0}.cute-button .cute-icon-wrapper,.cute-anchor .cute-icon-wrapper{display:contents}.cute-button .cute-icon-wrapper:empty,.cute-anchor .cute-icon-wrapper:empty{display:none}.cute-button .cute-button-label.cute-button-label__nowrap,.cute-anchor .cute-button-label.cute-button-label__nowrap{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cute-button .cute-button-label:empty,.cute-anchor .cute-button-label:empty{display:none}.cute-button.cute-button-disabled-interactive,.cute-anchor.cute-button-disabled-interactive{cursor:pointer}.cute-button.cute-button-disabled-interactive:disabled,.cute-button.cute-button-disabled-interactive.disabled,.cute-anchor.cute-button-disabled-interactive:disabled,.cute-anchor.cute-button-disabled-interactive.disabled{pointer-events:auto;cursor:default;box-shadow:none;--bs-btn-active-bg: var(--bs-btn-disabled-bg);--bs-btn-active-border-color: var(--bs-btn-disabled-border-color);--bs-btn-active-color: var(--bs-btn-disabled-color)}.cute-button.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-button.cute-button-disabled-interactive.disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive:disabled.cute-icon-button,.cute-anchor.cute-button-disabled-interactive.disabled.cute-icon-button{--bs-btn-active-bg: transparent;--bs-btn-active-border-color: transparent;--bs-btn-hover-bg: transparent}.cute-button.cute-base-button,.cute-anchor.cute-base-button{font-weight:500;--cute-base-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-base-button-color-rgb), .08);--bs-btn-active-border-color: rgba(var(--cute-base-button-color-rgb), .12);--bs-btn-disabled-border-color: transparent;--bs-btn-hover-bg: rgba(var(--cute-base-button-color-rgb), .06)}.cute-button.cute-flat-button.cute-unthemed,.cute-anchor.cute-flat-button.cute-unthemed{--bs-btn-bg: var(--bs-tertiary-bg);--bs-btn-hover-bg: var(--bs-secondary-bg);--bs-btn-active-bg: var(--bs-secondary-bg);border-color:transparent}.cute-button.raised,.cute-anchor.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.cute-button.raised:hover,.cute-button.raised:focus,.cute-anchor.raised:hover,.cute-anchor.raised:focus{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.cute-button.raised:active,.cute-anchor.raised:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.raised:disabled,.cute-button.raised.disabled,.cute-anchor.raised:disabled,.cute-anchor.raised.disabled{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.cute-button.btn-light:disabled,.cute-button.btn-light.disabled,.cute-anchor.btn-light:disabled,.cute-anchor.btn-light.disabled{background-color:#0000001a}.cute-button>[role=img],.cute-button i[class],.cute-anchor>[role=img],.cute-anchor i[class]{align-self:center;pointer-events:none;overflow:visible}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=largest],.cute-anchor.cute-fab-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-fab-button[magnitude=larger],.cute-anchor.cute-fab-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-fab-button[magnitude=large],.cute-anchor.cute-fab-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-fab-button[magnitude=middle],.cute-anchor.cute-fab-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-fab-button[magnitude=small],.cute-anchor.cute-fab-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-fab-button[magnitude=smaller],.cute-anchor.cute-fab-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-fab-button[magnitude=smallest],.cute-anchor.cute-fab-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1;padding:0;padding-top:revert;gap:0;border-radius:50%;flex-shrink:0}.cute-button.cute-fab-button svg,.cute-anchor.cute-fab-button svg{vertical-align:baseline}.cute-button.cute-fab-button,.cute-anchor.cute-fab-button{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.cute-button.cute-fab-button:active,.cute-anchor.cute-fab-button:active{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.cute-button.cute-fab-button:active.btn-light,.cute-anchor.cute-fab-button:active.btn-light{border-color:#00000040}.cute-button.cute-fab-button:hover,.cute-button.cute-fab-button.cdk-focused,.cute-anchor.cute-fab-button:hover,.cute-anchor.cute-fab-button.cdk-focused{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cute-button.cute-fab-button:disabled,.cute-button.cute-fab-button.disabled,.cute-anchor.cute-fab-button:disabled,.cute-anchor.cute-fab-button.disabled{border:0;box-shadow:none}.cute-button.cute-fab-button:disabled>[role=img],.cute-button.cute-fab-button:disabled i[class],.cute-button.cute-fab-button.disabled>[role=img],.cute-button.cute-fab-button.disabled i[class],.cute-anchor.cute-fab-button:disabled>[role=img],.cute-anchor.cute-fab-button:disabled i[class],.cute-anchor.cute-fab-button.disabled>[role=img],.cute-anchor.cute-fab-button.disabled i[class]{color:#00000061!important}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{overflow:hidden;border-radius:50%;border:0;padding:0;gap:0!important;--icon-size: 40px}.cute-button.cute-icon-button[magnitude=largest],.cute-anchor.cute-icon-button[magnitude=largest]{--icon-size: 64px}.cute-button.cute-icon-button[magnitude=larger],.cute-anchor.cute-icon-button[magnitude=larger]{--icon-size: 56px}.cute-button.cute-icon-button[magnitude=large],.cute-anchor.cute-icon-button[magnitude=large]{--icon-size: 48px}.cute-button.cute-icon-button[magnitude=middle],.cute-anchor.cute-icon-button[magnitude=middle]{--icon-size: 40px}.cute-button.cute-icon-button[magnitude=small],.cute-anchor.cute-icon-button[magnitude=small]{--icon-size: 32px}.cute-button.cute-icon-button[magnitude=smaller],.cute-anchor.cute-icon-button[magnitude=smaller]{--icon-size: 24px}.cute-button.cute-icon-button[magnitude=smallest],.cute-anchor.cute-icon-button[magnitude=smallest]{--icon-size: 16px}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);line-height:1}.cute-button.cute-icon-button svg,.cute-anchor.cute-icon-button svg{vertical-align:baseline}.cute-button.cute-icon-button,.cute-anchor.cute-icon-button{--cute-icon-button-color-rgb: var(--bs-body-color-rgb);--bs-btn-active-bg: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-active-border-color: rgba(var(--cute-icon-button-color-rgb), .12);--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .06)}.cute-button.cute-icon-button.cdk-focused,.cute-anchor.cute-icon-button.cdk-focused{--bs-btn-hover-bg: rgba(var(--cute-icon-button-color-rgb), .04)}.cute-btn-xxs,.cute-btn-group-xxs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .5rem}.cute-btn-xs,.cute-btn-group-xs>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .75rem}.cute-btn-xl,.cute-btn-group-xl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.5rem}.cute-btn-xxl,.cute-btn-group-xxl>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 2.5rem}[dir=rtl] .btn-group>.btn:not(:first-child):not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:not(:first-child)>.btn{border-radius:0}[dir=rtl] .btn-group>.btn:nth-child(n+3),[dir=rtl] .btn-group>:not(.btn-check)+.btn,[dir=rtl] .btn-group>.btn-group:not(:last-child)>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:first-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:first-child,[dir=rtl] .btn-group>.btn-group:first-child>.btn{border-radius:0 var(--bs-btn-border-radius) var(--bs-btn-border-radius) 0}[dir=rtl] .btn-group>.btn:last-child:not(.dropdown-toggle),[dir=rtl] .btn-group>.btn.dropdown-toggle-split:last-child,[dir=rtl] .btn-group>.btn-group:last-child>.btn{border-radius:var(--bs-btn-border-radius) 0 0 var(--bs-btn-border-radius)}.cute-button-expandable{padding:.25rem .5rem;font-weight:600;color:var(--bs-emphasis-color);background-color:transparent}.cute-button-expandable:hover,.cute-button-expandable:focus{color:rgba(var(--bs-emphasis-color-rgb),.85);background-color:var(--bs-tertiary-bg)}.cute-button-expandable:before{width:1.25em;line-height:0;content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\");transition:transform .25s ease;transform-origin:.5em 50%;transform:scale(.85)}[data-bs-theme=dark] .cute-button-expandable:before{content:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e\")}[dir=rtl] .cute-button-expandable:before{transform:rotate(180deg) scale(.85);margin-left:.25em;text-align:end}.cute-button-expandable[aria-expanded=true]{color:rgba(var(--bs-emphasis-color-rgb),.85)}.cute-button-expandable[aria-expanded=true]:before{transform:rotate(90deg) scale(.85)}\n", ".cute-button-toggle{--bs-btn-hover-bg: transparent}.cute-button-toggle.cute-button-checked-disabled{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);opacity:var(--bs-btn-disabled-opacity)}\n"] }]
596
620
  }], ctorParameters: () => [], propDecorators: { name: [{
597
621
  type: Input
598
622
  }], value: [{
@@ -617,13 +641,13 @@ const TYPES = [
617
641
  CuteButtonToggleGroup,
618
642
  ];
619
643
  class CuteButtonToggleModule {
620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
621
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleModule, imports: [CommonModule, CuteButtonToggle,
644
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
645
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleModule, imports: [CommonModule, CuteButtonToggle,
622
646
  CuteButtonToggleGroup], exports: [CuteButtonToggle,
623
647
  CuteButtonToggleGroup] }); }
624
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleModule, imports: [CommonModule] }); }
648
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleModule, imports: [CommonModule] }); }
625
649
  }
626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteButtonToggleModule, decorators: [{
650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteButtonToggleModule, decorators: [{
627
651
  type: NgModule,
628
652
  args: [{
629
653
  imports: [CommonModule, ...TYPES],