@cute-widgets/base 20.0.5 → 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 (168) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/fesm2022/cute-widgets-base-abstract.mjs +15 -15
  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 +29 -12
  13. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
  14. package/fesm2022/cute-widgets-base-button.mjs +20 -20
  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 -49
  21. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
  22. package/fesm2022/cute-widgets-base-collapse.mjs +14 -14
  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-line.mjs +7 -7
  31. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
  32. package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
  33. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
  34. package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
  35. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
  36. package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
  37. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
  38. package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
  39. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
  40. package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
  41. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
  42. package/fesm2022/cute-widgets-base-core-theming.mjs +6 -6
  43. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
  44. package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
  45. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
  46. package/fesm2022/cute-widgets-base-core.mjs +36 -36
  47. package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
  48. package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
  49. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
  50. package/fesm2022/cute-widgets-base-dialog.mjs +31 -31
  51. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
  52. package/fesm2022/cute-widgets-base-divider.mjs +7 -7
  53. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
  54. package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
  55. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
  56. package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
  57. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
  58. package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
  59. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
  60. package/fesm2022/cute-widgets-base-icon.mjs +10 -10
  61. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
  62. package/fesm2022/cute-widgets-base-input.mjs +7 -7
  63. package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
  64. package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
  65. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
  66. package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
  67. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
  68. package/fesm2022/cute-widgets-base-layout.mjs +23 -23
  69. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
  70. package/fesm2022/cute-widgets-base-list.mjs +56 -56
  71. package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
  72. package/fesm2022/cute-widgets-base-menu.mjs +579 -364
  73. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
  74. package/fesm2022/cute-widgets-base-navbar.mjs +27 -27
  75. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
  76. package/fesm2022/cute-widgets-base-paginator.mjs +11 -11
  77. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
  78. package/fesm2022/cute-widgets-base-progress.mjs +10 -10
  79. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
  80. package/fesm2022/cute-widgets-base-radio.mjs +11 -11
  81. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
  82. package/fesm2022/cute-widgets-base-select.mjs +11 -11
  83. package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
  84. package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
  85. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
  86. package/fesm2022/cute-widgets-base-slider.mjs +10 -10
  87. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
  88. package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
  89. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
  90. package/fesm2022/cute-widgets-base-sort.mjs +13 -13
  91. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
  92. package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
  93. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
  94. package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
  95. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
  96. package/fesm2022/cute-widgets-base-table.mjs +58 -66
  97. package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
  98. package/fesm2022/cute-widgets-base-tabs.mjs +16 -16
  99. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
  100. package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
  101. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
  102. package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
  103. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
  104. package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
  105. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
  106. package/fesm2022/cute-widgets-base-tree.mjs +25 -25
  107. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
  108. package/fesm2022/cute-widgets-base.mjs +4 -4
  109. package/package.json +118 -118
  110. package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +1 -1
  111. package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
  112. package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
  113. package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
  114. package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +7 -1
  115. package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +1 -1
  116. package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
  117. package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
  118. package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
  119. package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
  120. package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
  121. package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
  122. package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
  123. package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
  124. package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
  125. package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
  126. package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
  127. package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
  128. package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
  129. package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
  130. package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
  131. package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
  132. package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
  133. package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
  134. /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
  135. /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
  136. /package/{collapse/index.d.ts → types/cute-widgets-base-collapse.d.ts} +0 -0
  137. /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
  138. /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
  139. /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
  140. /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
  141. /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
  142. /package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +0 -0
  143. /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
  144. /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
  145. /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
  146. /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
  147. /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
  148. /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
  149. /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
  150. /package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +0 -0
  151. /package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +0 -0
  152. /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
  153. /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
  154. /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
  155. /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
  156. /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
  157. /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
  158. /package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +0 -0
  159. /package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +0 -0
  160. /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
  161. /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
  162. /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
  163. /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
  164. /package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +0 -0
  165. /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
  166. /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
  167. /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
  168. /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-card.mjs","sources":["../../../../projects/cute-widgets/base/card/src/card-header.directive.ts","../../../../projects/cute-widgets/base/card/src/card-footer.directive.ts","../../../../projects/cute-widgets/base/card/src/card.component.ts","../../../../projects/cute-widgets/base/card/src/card.component.html","../../../../projects/cute-widgets/base/card/src/card-avatar.directive.ts","../../../../projects/cute-widgets/base/card/src/card-image.directive.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.html","../../../../projects/cute-widgets/base/card/src/card-actions.directive.ts","../../../../projects/cute-widgets/base/card/src/card-group.component.ts","../../../../projects/cute-widgets/base/card/src/card-title.directive.ts","../../../../projects/cute-widgets/base/card/src/card-subtitle.directive.ts","../../../../projects/cute-widgets/base/card/src/card-overlay.directive.ts","../../../../projects/cute-widgets/base/card/src/card.module.ts","../../../../projects/cute-widgets/base/card/cute-widgets-base-card.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 {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Header region of a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as `<cute-card-footer>`;\r\n * any custom header block element may be used in its place.\r\n *\r\n * `CuteCardHeader` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-header',\r\n host: {'class': 'cute-card-header card-header'},\r\n standalone: true\r\n})\r\nexport class CuteCardHeader {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Footer area a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom footer block element may be used in its place.\r\n *\r\n * CuteCardFooter provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-footer',\r\n host: {'class': 'cute-card-footer card-footer text-body-secondary'},\r\n standalone: true\r\n})\r\nexport class CuteCardFooter {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, contentChild,\r\n ContentChild,\r\n inject,\r\n Input,\r\n SecurityContext,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\nlet nextId: number = -1;\r\n\r\n/**\r\n * A flexible and extensible content container with multiple variants and options.\r\n */\r\n@Component({\r\n selector: 'cute-card',\r\n templateUrl: './card.component.html',\r\n styleUrl: './card.component.scss',\r\n exportAs: 'cuteCard',\r\n host: {\r\n 'class': 'cute-card card',\r\n '[class.cute-card-with-background-image]': 'backgroundImage',\r\n '[attr.backgroundImage]': 'null',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCard extends CuteLayoutControl {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n @Input()\r\n get backgroundImage(): string | undefined {return this._backgroundImage;}\r\n set backgroundImage(value: string | undefined) {\r\n if (value) {\r\n this._backgroundImage = this._sanitizer.sanitize(SecurityContext.URL, value) ?? undefined;\r\n if (this._backgroundImage) {\r\n this._nativeElement.style.backgroundImage = `url('${this._backgroundImage.trim()}')`;\r\n }\r\n } else {\r\n this._nativeElement.style.backgroundImage = \"none\";\r\n this._backgroundImage = undefined;\r\n }\r\n }\r\n private _backgroundImage: string | undefined;\r\n\r\n /** `CuteCardHeader` element if it was defined in the `CuteCard` template. */\r\n readonly _header = contentChild(CuteCardHeader, {descendants: false});\r\n\r\n /** `CuteCardFooter` element if it was defined in the `CuteCard` template. */\r\n readonly _footer = contentChild(CuteCardFooter, {descendants: false});\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-card-${++nextId}`;\r\n }\r\n\r\n}\r\n","<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"[cute-card-top-image]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"[cute-card-bottom-image]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Avatar image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`; any custom media element may be used in its place.\r\n *\r\n * CuteCardAvatar provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-avatar], [cuteCardAvatar]',\r\n host: {'class': 'cute-card-avatar card-avatar shadow'},\r\n standalone: true,\r\n})\r\nexport class CuteCardAvatar {}\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 {ChangeDetectorRef, Directive, HostAttributeToken, inject, input, Input, isDevMode} from \"@angular/core\";\r\nimport {CuteCard} from \"./card.component\";\r\n\r\nexport type CuteCardImagePosition = \"top\"|\"bottom\"|\"fluid\";\r\n\r\n/**\r\n * Primary image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-body>`; any custom media element may be used in its place.\r\n *\r\n * `CuteCardImage` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]',\r\n host: {\r\n 'class': 'cute-card-image',\r\n '[class]': \"'card-img'+(_position=='top'||_position=='bottom' ? '-'+_position : '')\",\r\n '[class.img-fluid]': '_position==\"fluid\"',\r\n '[attr.height]': 'height',\r\n '[style.border-radius]': \"_position=='top' && card?._header() ? 0 : (_position=='bottom' && card?._footer() ? 0 : undefined)\",\r\n '[style.--cute-card-image-height]': 'height>=0 ? height+\"px\" : undefined'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardImage {\r\n protected card= inject(CuteCard);\r\n\r\n /** Image position in the card layout */\r\n protected readonly _position: CuteCardImagePosition = \"top\";\r\n\r\n /** The intrinsic height of the image, in pixels. */\r\n @Input()\r\n get height(): number|undefined {return this._height;}\r\n set height(value: number|string|undefined) {\r\n if (typeof value===\"string\") {\r\n value = parseInt(value);\r\n if (isNaN(value)) value = undefined;\r\n }\r\n this._height = value;\r\n }\r\n private _height: number | undefined;\r\n\r\n constructor() {\r\n let attribs: (string|null)[] = [];\r\n attribs[0] = inject(new HostAttributeToken(\"cute-card-top-image\"), {optional: true});\r\n attribs[1] = inject(new HostAttributeToken(\"cute-card-bottom-image\"), {optional: true});\r\n attribs[2] = inject(new HostAttributeToken(\"cute-card-fluid-image\"), {optional: true});\r\n\r\n if (attribs.filter(v => v != null).length > 1 && isDevMode()) {\r\n throw new Error(\"Only one attribute with name 'cute-card-*-image' should be applied.\")\r\n }\r\n\r\n // We take into account the first value only\r\n const attrInd = attribs.findIndex(v => v != null);\r\n switch (attrInd) {\r\n case 0: this._position = \"top\"; break;\r\n case 1: this._position = \"bottom\"; break;\r\n case 2: this._position = \"fluid\"; break;\r\n }\r\n this.card.markForCheck();\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 {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Content of a card, intended for use within `<cute-card>`. This component is an optional\r\n * convenience for use with other convenience elements, such as `<cute-card-title>`; any custom\r\n * content block element may be used in its place.\r\n *\r\n * CuteCardContent provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Component({\r\n selector: 'cute-card-body, cute-card-content',\r\n templateUrl: './card-body.component.html',\r\n styleUrls: ['./card-body.component.scss'],\r\n exportAs: 'cuteCardBody',\r\n host: {\r\n 'class': 'cute-card-body card-body',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCardBody {\r\n /** Card body text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","<div class=\"cute-card-title__wrapper\">\r\n <ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n </ng-content>\r\n</div>\r\n<div class=\"card-text\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ContentAlignment} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Bottom area of a card that contains action buttons, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom action block element may be used in its place.\r\n *\r\n * `CuteCardActions` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-actions, [cute-card-actions], [cuteCardActions]',\r\n exportAs: 'cuteCardActions',\r\n host: {\r\n 'class': 'cute-card-actions card-actions',\r\n '[class]': \"'justify-content-'+align\",\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardActions {\r\n /** Position of the actions inside the card. */\r\n @Input() align: ContentAlignment = \"start\";\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\nimport {Component} from \"@angular/core\";\r\n\r\n/**\r\n * Use _card groups_ to render cards as a single, attached element with equal width and height columns.\r\n * When using card groups with footers, their content will automatically line up.\r\n */\r\n@Component({\r\n selector: 'cute-card-group',\r\n exportAs: 'cuteCardGroup',\r\n template: '<ng-content></ng-content>',\r\n styles: [`\r\n :host { display: block; }\r\n `],\r\n host: {\r\n 'class': 'cute-card-group card-group'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardGroup /* extends ... */ {\r\n\r\n constructor() {\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 {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Title of a card, intended for use within `<cute-card-body>`. This component is an optional\r\n * convenience for one variety of card titles; any custom title element may be used in its place.\r\n *\r\n * CuteCardTitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-title, [cute-card-title], [cuteCardTitle]`,\r\n host: {\r\n 'class': 'cute-card-title card-title',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardTitle {\r\n /** Title text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Subtitle of a card, intended for use within `<cute-card-body>` beneath a `<cute-card-title>`. This\r\n * component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`.\r\n *\r\n * CuteCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]`,\r\n host: {\r\n 'class': 'cute-card-subtitle card-subtitle',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardSubtitle {\r\n /** Subtitle text color */\r\n @Input() color: ThemeColor = \"secondary\";\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\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Turn an image into a card background and overlay the card’s text.\r\n */\r\n@Directive({\r\n selector: 'cute-card-overlay',\r\n exportAs: 'cuteCardOverlay',\r\n host: {\r\n 'class': 'card-img-overlay d-flex flex-column'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardOverlay /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {NgModule, Type} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteCard} from \"./card.component\";\r\nimport {CuteCardTitle} from \"./card-title.directive\";\r\nimport {CuteCardSubtitle} from \"./card-subtitle.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardActions} from \"./card-actions.directive\";\r\nimport {CuteCardBody} from \"./card-body.component\";\r\nimport {CuteCardImage} from \"./card-image.directive\";\r\nimport {CuteCardAvatar} from \"./card-avatar.directive\";\r\nimport {CuteCardGroup} from \"./card-group.component\";\r\nimport {CuteCardOverlay} from \"./card-overlay.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCard,\r\n CuteCardTitle,\r\n CuteCardSubtitle,\r\n CuteCardFooter,\r\n CuteCardHeader,\r\n CuteCardActions,\r\n CuteCardBody,\r\n CuteCardOverlay,\r\n CuteCardImage,\r\n CuteCardAvatar,\r\n CuteCardGroup,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: [TYPES],\r\n declarations: [],\r\n})\r\nexport class CuteCardModule { }\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-card.mjs","sources":["../../../../projects/cute-widgets/base/card/src/card-header.directive.ts","../../../../projects/cute-widgets/base/card/src/card-footer.directive.ts","../../../../projects/cute-widgets/base/card/src/card.component.ts","../../../../projects/cute-widgets/base/card/src/card.component.html","../../../../projects/cute-widgets/base/card/src/card-avatar.directive.ts","../../../../projects/cute-widgets/base/card/src/card-image.directive.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.html","../../../../projects/cute-widgets/base/card/src/card-actions.directive.ts","../../../../projects/cute-widgets/base/card/src/card-group.component.ts","../../../../projects/cute-widgets/base/card/src/card-title.directive.ts","../../../../projects/cute-widgets/base/card/src/card-subtitle.directive.ts","../../../../projects/cute-widgets/base/card/src/card-overlay.directive.ts","../../../../projects/cute-widgets/base/card/src/card.module.ts","../../../../projects/cute-widgets/base/card/cute-widgets-base-card.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 {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Header region of a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as `<cute-card-footer>`;\r\n * any custom header block element may be used in its place.\r\n *\r\n * `CuteCardHeader` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-header',\r\n host: {'class': 'cute-card-header card-header'},\r\n standalone: true\r\n})\r\nexport class CuteCardHeader {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Footer area a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom footer block element may be used in its place.\r\n *\r\n * CuteCardFooter provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-footer',\r\n host: {'class': 'cute-card-footer card-footer text-body-secondary'},\r\n standalone: true\r\n})\r\nexport class CuteCardFooter {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, contentChild,\r\n ContentChild,\r\n inject,\r\n Input,\r\n SecurityContext,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\nlet nextId: number = -1;\r\n\r\n/**\r\n * A flexible and extensible content container with multiple variants and options.\r\n */\r\n@Component({\r\n selector: 'cute-card',\r\n templateUrl: './card.component.html',\r\n styleUrl: './card.component.scss',\r\n exportAs: 'cuteCard',\r\n host: {\r\n 'class': 'cute-card card',\r\n '[class.cute-card-with-background-image]': 'backgroundImage',\r\n '[attr.backgroundImage]': 'null',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCard extends CuteLayoutControl {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n @Input()\r\n get backgroundImage(): string | undefined {return this._backgroundImage;}\r\n set backgroundImage(value: string | undefined) {\r\n if (value) {\r\n this._backgroundImage = this._sanitizer.sanitize(SecurityContext.URL, value) ?? undefined;\r\n if (this._backgroundImage) {\r\n this._nativeElement.style.backgroundImage = `url('${this._backgroundImage.trim()}')`;\r\n }\r\n } else {\r\n this._nativeElement.style.backgroundImage = \"none\";\r\n this._backgroundImage = undefined;\r\n }\r\n }\r\n private _backgroundImage: string | undefined;\r\n\r\n /** `CuteCardHeader` element if it was defined in the `CuteCard` template. */\r\n readonly _header = contentChild(CuteCardHeader, {descendants: false});\r\n\r\n /** `CuteCardFooter` element if it was defined in the `CuteCard` template. */\r\n readonly _footer = contentChild(CuteCardFooter, {descendants: false});\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-card-${++nextId}`;\r\n }\r\n\r\n}\r\n","<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"[cute-card-top-image]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"[cute-card-bottom-image]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Avatar image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`; any custom media element may be used in its place.\r\n *\r\n * CuteCardAvatar provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-avatar], [cuteCardAvatar]',\r\n host: {'class': 'cute-card-avatar card-avatar shadow'},\r\n standalone: true,\r\n})\r\nexport class CuteCardAvatar {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, HostAttributeToken, inject, Input, isDevMode} from \"@angular/core\";\r\nimport {CuteCard} from \"./card.component\";\r\n\r\nexport type CuteCardImagePosition = \"top\"|\"bottom\"|\"fluid\";\r\n\r\n/**\r\n * Primary image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-body>`; any custom media element may be used in its place.\r\n *\r\n * `CuteCardImage` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]',\r\n host: {\r\n 'class': 'cute-card-image',\r\n '[class]': \"'card-img'+(_position=='top'||_position=='bottom' ? '-'+_position : '')\",\r\n '[class.img-fluid]': '_position==\"fluid\"',\r\n '[attr.height]': 'height',\r\n '[style.border-radius]': \"_position=='top' && card?._header() ? 0 : (_position=='bottom' && card?._footer() ? 0 : undefined)\",\r\n '[style.--cute-card-image-height]': 'height!=null && height>=0 ? height+\"px\" : undefined'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardImage {\r\n protected card= inject(CuteCard);\r\n\r\n /** Image position in the card layout */\r\n protected readonly _position: CuteCardImagePosition = \"top\";\r\n\r\n /** The intrinsic height of the image, in pixels. */\r\n @Input()\r\n get height(): number|undefined {return this._height;}\r\n set height(value: number|string|undefined) {\r\n if (typeof value===\"string\") {\r\n value = parseInt(value);\r\n if (isNaN(value)) value = undefined;\r\n }\r\n this._height = value;\r\n }\r\n private _height: number | undefined;\r\n\r\n constructor() {\r\n let attribs: (string|null)[] = [];\r\n attribs[0] = inject(new HostAttributeToken(\"cute-card-top-image\"), {optional: true});\r\n attribs[1] = inject(new HostAttributeToken(\"cute-card-bottom-image\"), {optional: true});\r\n attribs[2] = inject(new HostAttributeToken(\"cute-card-fluid-image\"), {optional: true});\r\n\r\n if (attribs.filter(v => v != null).length > 1 && isDevMode()) {\r\n throw new Error(\"Only one attribute with name 'cute-card-*-image' should be applied.\")\r\n }\r\n\r\n // We take into account the first value only\r\n const attrInd = attribs.findIndex(v => v != null);\r\n switch (attrInd) {\r\n case 0: this._position = \"top\"; break;\r\n case 1: this._position = \"bottom\"; break;\r\n case 2: this._position = \"fluid\"; break;\r\n }\r\n this.card.markForCheck();\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 {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Content of a card, intended for use within `<cute-card>`. This component is an optional\r\n * convenience for use with other convenience elements, such as `<cute-card-title>`; any custom\r\n * content block element may be used in its place.\r\n *\r\n * CuteCardContent provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Component({\r\n selector: 'cute-card-body, cute-card-content',\r\n templateUrl: './card-body.component.html',\r\n styleUrls: ['./card-body.component.scss'],\r\n exportAs: 'cuteCardBody',\r\n host: {\r\n 'class': 'cute-card-body card-body',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCardBody {\r\n /** Card body text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","<div class=\"cute-card-title__wrapper\">\r\n <ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n </ng-content>\r\n</div>\r\n<div class=\"card-text\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ContentAlignment} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Bottom area of a card that contains action buttons, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom action block element may be used in its place.\r\n *\r\n * `CuteCardActions` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-actions, [cute-card-actions], [cuteCardActions]',\r\n exportAs: 'cuteCardActions',\r\n host: {\r\n 'class': 'cute-card-actions card-actions',\r\n '[class]': \"'justify-content-'+align\",\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardActions {\r\n /** Position of the actions inside the card. */\r\n @Input() align: ContentAlignment = \"start\";\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\nimport {Component} from \"@angular/core\";\r\n\r\n/**\r\n * Use _card groups_ to render cards as a single, attached element with equal width and height columns.\r\n * When using card groups with footers, their content will automatically line up.\r\n */\r\n@Component({\r\n selector: 'cute-card-group',\r\n exportAs: 'cuteCardGroup',\r\n template: '<ng-content></ng-content>',\r\n styles: [`\r\n :host { display: block; }\r\n `],\r\n host: {\r\n 'class': 'cute-card-group card-group'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardGroup /* extends ... */ {\r\n\r\n constructor() {\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 {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Title of a card, intended for use within `<cute-card-body>`. This component is an optional\r\n * convenience for one variety of card titles; any custom title element may be used in its place.\r\n *\r\n * CuteCardTitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-title, [cute-card-title], [cuteCardTitle]`,\r\n host: {\r\n 'class': 'cute-card-title card-title',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardTitle {\r\n /** Title text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Subtitle of a card, intended for use within `<cute-card-body>` beneath a `<cute-card-title>`. This\r\n * component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`.\r\n *\r\n * CuteCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]`,\r\n host: {\r\n 'class': 'cute-card-subtitle card-subtitle',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardSubtitle {\r\n /** Subtitle text color */\r\n @Input() color: ThemeColor = \"secondary\";\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\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Turn an image into a card background and overlay the card’s text.\r\n */\r\n@Directive({\r\n selector: 'cute-card-overlay',\r\n exportAs: 'cuteCardOverlay',\r\n host: {\r\n 'class': 'card-img-overlay d-flex flex-column'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardOverlay /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {NgModule, Type} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteCard} from \"./card.component\";\r\nimport {CuteCardTitle} from \"./card-title.directive\";\r\nimport {CuteCardSubtitle} from \"./card-subtitle.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardActions} from \"./card-actions.directive\";\r\nimport {CuteCardBody} from \"./card-body.component\";\r\nimport {CuteCardImage} from \"./card-image.directive\";\r\nimport {CuteCardAvatar} from \"./card-avatar.directive\";\r\nimport {CuteCardGroup} from \"./card-group.component\";\r\nimport {CuteCardOverlay} from \"./card-overlay.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCard,\r\n CuteCardTitle,\r\n CuteCardSubtitle,\r\n CuteCardFooter,\r\n CuteCardHeader,\r\n CuteCardActions,\r\n CuteCardBody,\r\n CuteCardOverlay,\r\n CuteCardImage,\r\n CuteCardAvatar,\r\n CuteCardGroup,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: [TYPES],\r\n declarations: [],\r\n})\r\nexport class CuteCardModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, EventEmitter, forwardRef, booleanAttribute, ViewChild, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, signal, EventEmitter, forwardRef, booleanAttribute, ViewChild, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
4
4
  import { CuteInputControl } from '@cute-widgets/base/abstract';
5
5
  import { CommonModule } from '@angular/common';
@@ -52,10 +52,10 @@ class CuteCheckbox extends CuteInputControl {
52
52
  get valueOff() { return this._valueOff; }
53
53
  set valueOff(v) { this._valueOff = v; }
54
54
  /** Whether the checkbox is checked. */
55
- get checked() { return this._checked; }
55
+ get checked() { return this._checked(); }
56
56
  set checked(newVal) {
57
57
  if (newVal != this.checked) {
58
- this._checked = newVal;
58
+ this._checked.set(newVal);
59
59
  //this.value = this.checked ? this.valueOn : this.valueOff;
60
60
  this.markForCheck();
61
61
  }
@@ -66,14 +66,14 @@ class CuteCheckbox extends CuteInputControl {
66
66
  * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately
67
67
  * set to false.
68
68
  */
69
- get indeterminate() { return this._indeterminate; }
69
+ get indeterminate() { return this._indeterminate(); }
70
70
  set indeterminate(value) {
71
- const changed = value != this._indeterminate;
72
- this._indeterminate = value;
71
+ const changed = value != this._indeterminate();
72
+ this._indeterminate.set(value);
73
73
  if (changed) {
74
- this.indeterminateChange.emit(this._indeterminate);
74
+ this.indeterminateChange.emit(value);
75
75
  }
76
- this._syncIndeterminate(this._indeterminate);
76
+ this._syncIndeterminate(value);
77
77
  }
78
78
  constructor() {
79
79
  super();
@@ -83,8 +83,8 @@ class CuteCheckbox extends CuteInputControl {
83
83
  this._validatorChangeFn = () => { };
84
84
  /** Group checkboxes on the same horizontal row */
85
85
  this.inline = false;
86
- this._checked = false;
87
- this._indeterminate = false;
86
+ this._checked = signal(false, ...(ngDevMode ? [{ debugName: "_checked" }] : []));
87
+ this._indeterminate = signal(false, ...(ngDevMode ? [{ debugName: "_indeterminate" }] : []));
88
88
  /** Whether the label should appear after or before the checkbox. Defaults to 'after' */
89
89
  this.labelPosition = 'after';
90
90
  /** Whether the checkbox should remain interactive when it is disabled. */
@@ -114,7 +114,7 @@ class CuteCheckbox extends CuteInputControl {
114
114
  }
115
115
  ngAfterViewInit() {
116
116
  super.ngAfterViewInit();
117
- this._syncIndeterminate(this._indeterminate);
117
+ this._syncIndeterminate(this._indeterminate());
118
118
  }
119
119
  // Implemented as a part of Validator.
120
120
  validate(control) {
@@ -161,11 +161,11 @@ class CuteCheckbox extends CuteInputControl {
161
161
  // When a user manually clicks on the checkbox, `indeterminate` is set to false.
162
162
  if (this.indeterminate && clickAction !== 'check') {
163
163
  Promise.resolve().then(() => {
164
- this._indeterminate = false;
165
- this.indeterminateChange.emit(this._indeterminate);
164
+ this._indeterminate.set(false);
165
+ this.indeterminateChange.emit(false);
166
166
  });
167
167
  }
168
- this._checked = !this._checked;
168
+ this._checked.set(!this._checked());
169
169
  // Emit our custom change event if the native input emitted one.
170
170
  // It is important to only emit it, if the native input triggered one, because
171
171
  // we don't want to trigger a change event, when the `checked` variable changes for example.
@@ -188,7 +188,7 @@ class CuteCheckbox extends CuteInputControl {
188
188
  // an explicit change detection for the checkbox view and its children.
189
189
  this._changeDetectorRef.detectChanges();
190
190
  }
191
- _onInputChange(event) {
191
+ _onInteractionEvent(event) {
192
192
  // We always have to stop propagation on the change event.
193
193
  // Otherwise, the change event from the input element will bubble up and
194
194
  // emit its event object to the `change` output.
@@ -246,8 +246,8 @@ class CuteCheckbox extends CuteInputControl {
246
246
  _createChangeEvent(isChecked) {
247
247
  return { source: this, checked: isChecked };
248
248
  }
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.15", type: CuteCheckbox, isStandalone: true, selector: "cute-checkbox, cute-slide-toggle:not([cuteToggleSwitch])", inputs: { ariaExpanded: ["aria-expanded", "ariaExpanded", booleanAttribute], ariaControls: ["aria-controls", "ariaControls"], ariaOwns: ["aria-owns", "ariaOwns"], value: "value", valueOn: "valueOn", valueOff: "valueOff", inline: ["inline", "inline", booleanAttribute], checked: ["checked", "checked", booleanAttribute], indeterminate: ["indeterminate", "indeterminate", booleanAttribute], labelPosition: "labelPosition", disabledInteractive: ["disabledInteractive", "disabledInteractive", booleanAttribute], iconSize: "iconSize" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.cute-checkbox-disabled": "disabled", "class.cute-checkbox-disabled-interactive": "disabledInteractive", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.role": "null", "id": "id" }, classAttribute: "cute-checkbox" }, providers: [
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.0", type: CuteCheckbox, isStandalone: true, selector: "cute-checkbox, cute-slide-toggle:not([cuteToggleSwitch])", inputs: { ariaExpanded: ["aria-expanded", "ariaExpanded", booleanAttribute], ariaControls: ["aria-controls", "ariaControls"], ariaOwns: ["aria-owns", "ariaOwns"], value: "value", valueOn: "valueOn", valueOff: "valueOff", inline: ["inline", "inline", booleanAttribute], checked: ["checked", "checked", booleanAttribute], indeterminate: ["indeterminate", "indeterminate", booleanAttribute], labelPosition: "labelPosition", disabledInteractive: ["disabledInteractive", "disabledInteractive", booleanAttribute], iconSize: "iconSize" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.cute-checkbox-disabled": "disabled", "class.cute-checkbox-disabled-interactive": "disabledInteractive", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.role": "null", "id": "id" }, classAttribute: "cute-checkbox" }, providers: [
251
251
  {
252
252
  provide: NG_VALUE_ACCESSOR,
253
253
  useExisting: forwardRef(() => CuteCheckbox),
@@ -258,9 +258,9 @@ class CuteCheckbox extends CuteInputControl {
258
258
  useExisting: CuteCheckbox,
259
259
  multi: true,
260
260
  },
261
- ], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "_labelElement", first: true, predicate: ["label"], descendants: true }], exportAs: ["cuteCheckbox"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInputChange($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n", styles: [".cute-checkbox{position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.cute-checkbox .form-check .form-check-input{cursor:pointer}.cute-checkbox .form-check .form-check-input.icon-small{font-size:.875em;transform:translate(-2px,2px)}.cute-checkbox .form-check .form-check-input.icon-large{font-size:1.375em;margin-right:1.125em;transform:translate(.45em,-.125em)}[dir=rtl] .cute-checkbox .form-check .form-check-input.icon-large{transform:translate(1.125em,-.125em)}[dir=rtl] .cute-checkbox .form-check.form-switch .form-check-input{transform:rotate(180deg)}.cute-checkbox .form-check .form-check-label{cursor:pointer}.cute-checkbox .form-check .form-check-label:empty{display:none}.cute-checkbox.cute-checkbox-disabled .form-check-label{cursor:default}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive{pointer-events:auto}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive input{cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
261
+ ], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "_labelElement", first: true, predicate: ["label"], descendants: true }], exportAs: ["cuteCheckbox"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInteractionEvent($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n", styles: [".cute-checkbox{position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.cute-checkbox .form-check .form-check-input{cursor:pointer}.cute-checkbox .form-check .form-check-input.icon-small{font-size:.875em;transform:translate(-2px,2px)}.cute-checkbox .form-check .form-check-input.icon-large{font-size:1.375em;margin-right:1.125em;transform:translate(.45em,-.125em)}[dir=rtl] .cute-checkbox .form-check .form-check-input.icon-large{transform:translate(1.125em,-.125em)}[dir=rtl] .cute-checkbox .form-check.form-switch .form-check-input{transform:rotate(180deg)}.cute-checkbox .form-check .form-check-label{cursor:pointer}.cute-checkbox .form-check .form-check-label:empty{display:none}.cute-checkbox.cute-checkbox-disabled .form-check-label{cursor:default}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive{pointer-events:auto}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive input{cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
262
262
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckbox, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckbox, decorators: [{
264
264
  type: Component,
265
265
  args: [{ selector: 'cute-checkbox, cute-slide-toggle:not([cuteToggleSwitch])', exportAs: "cuteCheckbox", host: {
266
266
  'class': 'cute-checkbox',
@@ -271,7 +271,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
271
271
  '[attr.aria-labelledby]': 'null',
272
272
  '[attr.role]': 'null',
273
273
  '[id]': 'id',
274
- }, imports: [CommonModule], providers: [
274
+ }, imports: [], providers: [
275
275
  {
276
276
  provide: NG_VALUE_ACCESSOR,
277
277
  useExisting: forwardRef(() => CuteCheckbox),
@@ -282,7 +282,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
282
282
  useExisting: CuteCheckbox,
283
283
  multi: true,
284
284
  },
285
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInputChange($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n", styles: [".cute-checkbox{position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.cute-checkbox .form-check .form-check-input{cursor:pointer}.cute-checkbox .form-check .form-check-input.icon-small{font-size:.875em;transform:translate(-2px,2px)}.cute-checkbox .form-check .form-check-input.icon-large{font-size:1.375em;margin-right:1.125em;transform:translate(.45em,-.125em)}[dir=rtl] .cute-checkbox .form-check .form-check-input.icon-large{transform:translate(1.125em,-.125em)}[dir=rtl] .cute-checkbox .form-check.form-switch .form-check-input{transform:rotate(180deg)}.cute-checkbox .form-check .form-check-label{cursor:pointer}.cute-checkbox .form-check .form-check-label:empty{display:none}.cute-checkbox.cute-checkbox-disabled .form-check-label{cursor:default}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive{pointer-events:auto}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive input{cursor:default}\n"] }]
285
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInteractionEvent($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n", styles: [".cute-checkbox{position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.cute-checkbox .form-check .form-check-input{cursor:pointer}.cute-checkbox .form-check .form-check-input.icon-small{font-size:.875em;transform:translate(-2px,2px)}.cute-checkbox .form-check .form-check-input.icon-large{font-size:1.375em;margin-right:1.125em;transform:translate(.45em,-.125em)}[dir=rtl] .cute-checkbox .form-check .form-check-input.icon-large{transform:translate(1.125em,-.125em)}[dir=rtl] .cute-checkbox .form-check.form-switch .form-check-input{transform:rotate(180deg)}.cute-checkbox .form-check .form-check-label{cursor:pointer}.cute-checkbox .form-check .form-check-label:empty{display:none}.cute-checkbox.cute-checkbox-disabled .form-check-label{cursor:default}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive{pointer-events:auto}.cute-checkbox.cute-checkbox-disabled.cute-checkbox-disabled-interactive input{cursor:default}\n"] }]
286
286
  }], ctorParameters: () => [], propDecorators: { ariaExpanded: [{
287
287
  type: Input,
288
288
  args: [{ alias: 'aria-expanded', transform: booleanAttribute }]
@@ -342,10 +342,10 @@ class CuteToggleSwitch {
342
342
  this._checkBox = inject(CuteCheckbox);
343
343
  this._checkBox.role = "switch";
344
344
  }
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteToggleSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteToggleSwitch, isStandalone: true, selector: "cute-checkbox[cuteToggleSwitch]", exportAs: ["cuteToggleSwitch"], ngImport: i0 }); }
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteToggleSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteToggleSwitch, isStandalone: true, selector: "cute-checkbox[cuteToggleSwitch]", exportAs: ["cuteToggleSwitch"], ngImport: i0 }); }
347
347
  }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteToggleSwitch, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteToggleSwitch, decorators: [{
349
349
  type: Directive,
350
350
  args: [{
351
351
  selector: 'cute-checkbox[cuteToggleSwitch]',
@@ -367,13 +367,13 @@ const TYPES = [
367
367
  CuteToggleSwitch,
368
368
  ];
369
369
  class CuteCheckboxModule {
370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckboxModule, imports: [CommonModule, CuteCheckbox,
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckboxModule, imports: [CommonModule, CuteCheckbox,
372
372
  CuteToggleSwitch], exports: [CuteCheckbox,
373
373
  CuteToggleSwitch] }); }
374
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckboxModule, imports: [CommonModule, CuteCheckbox] }); }
374
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckboxModule, imports: [CommonModule] }); }
375
375
  }
376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCheckboxModule, decorators: [{
376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCheckboxModule, decorators: [{
377
377
  type: NgModule,
378
378
  args: [{
379
379
  imports: [CommonModule, ...TYPES],
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-checkbox.mjs","sources":["../../../../projects/cute-widgets/base/checkbox/src/checkbox.config.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.component.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.component.html","../../../../projects/cute-widgets/base/checkbox/src/toggleswitch.directive.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.module.ts","../../../../projects/cute-widgets/base/checkbox/cute-widgets-base-checkbox.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Checkbox click action when a user clicks on an input element.\r\n * noop: Do not toggle checked or indeterminate.\r\n * check: Only toggle checked status, ignore indeterminate.\r\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\r\n * undefined: Same as `check-indeterminate`.\r\n */\r\nexport type CuteCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\r\n\r\n/** Default `cute-checkbox` options that can be overridden. */\r\nexport interface CuteCheckboxDefaultOptions {\r\n /** Default theme color palette to be used for checkboxes. */\r\n color?: ThemeColor;\r\n /** Default checkbox click action for checkboxes. */\r\n clickAction?: CuteCheckboxClickAction;\r\n /** Whether disabled checkboxes should be interactive. */\r\n disabledInteractive?: boolean;\r\n}\r\n\r\n/** Injection token to be used to override the default options for `cute-checkbox`. */\r\nexport const CUTE_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken<CuteCheckboxDefaultOptions>(\r\n 'cute-checkbox-default-options',\r\n {\r\n providedIn: 'root',\r\n factory: CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\r\n },\r\n);\r\n\r\n/** @docs-private */\r\nexport function CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY(): CuteCheckboxDefaultOptions {\r\n return {\r\n color: 'primary',\r\n clickAction: 'check-indeterminate',\r\n disabledInteractive: false,\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 {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef, inject,\r\n Input,\r\n Output, SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator} from \"@angular/forms\";\r\nimport {\r\n CUTE_CHECKBOX_DEFAULT_OPTIONS,\r\n CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\r\n CuteCheckboxDefaultOptions\r\n} from \"./checkbox.config\";\r\nimport {CuteInputControl} from '@cute-widgets/base/abstract';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {RelativeSize} from \"@cute-widgets/base/core\";\r\n\r\n/** Change event object emitted by checkbox. */\r\nexport interface CuteCheckboxChange {\r\n /** The source checkbox of the event. */\r\n source: CuteCheckbox;\r\n /** The new `checked` value of the checkbox. */\r\n checked: boolean;\r\n}\r\n// Increasing integer for generating unique ids for checkbox components.\r\nlet nextUniqueId = 0;\r\n\r\n// Default checkbox configuration.\r\nconst defaults = CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY();\r\n\r\n@Component({\r\n selector: 'cute-checkbox, cute-slide-toggle:not([cuteToggleSwitch])',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n exportAs: \"cuteCheckbox\",\r\n host: {\r\n 'class': 'cute-checkbox',\r\n '[class.cute-checkbox-disabled]': 'disabled',\r\n '[class.cute-checkbox-disabled-interactive]': 'disabledInteractive',\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.role]': 'null',\r\n '[id]': 'id',\r\n },\r\n imports: [CommonModule],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CuteCheckbox),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: CuteCheckbox,\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCheckbox extends CuteInputControl implements Validator {\r\n\r\n private readonly _options = inject<CuteCheckboxDefaultOptions>(CUTE_CHECKBOX_DEFAULT_OPTIONS, {\r\n optional: true,\r\n });\r\n\r\n private _validatorChangeFn = () => {};\r\n\r\n /** Users can specify the `aria-expanded` attribute which will be forwarded to the input element */\r\n @Input({alias: 'aria-expanded', transform: booleanAttribute}) ariaExpanded: boolean | undefined;\r\n\r\n /** Users can specify the `aria-controls` attribute which will be forwarded to the input element */\r\n @Input('aria-controls') ariaControls: string | undefined;\r\n\r\n /** Users can specify the `aria-owns` attribute which will be forwarded to the input element */\r\n @Input('aria-owns') ariaOwns: string | undefined;\r\n\r\n @Input()\r\n override get value(): any {return this._value}\r\n override set value(v: any) {this._value = v;}\r\n private _value: any;\r\n\r\n @Input()\r\n get valueOn(): unknown {return this._valueOn;}\r\n set valueOn(v: unknown) {this._valueOn = v;}\r\n private _valueOn: unknown;\r\n\r\n @Input()\r\n get valueOff(): unknown {return this._valueOff;}\r\n set valueOff(v: unknown) {this._valueOff = v;}\r\n private _valueOff: unknown;\r\n\r\n /** Group checkboxes on the same horizontal row */\r\n @Input({transform: booleanAttribute})\r\n inline: boolean = false;\r\n\r\n /** Whether the checkbox is checked. */\r\n @Input({transform: booleanAttribute})\r\n get checked(): boolean { return this._checked; }\r\n set checked(newVal: boolean) {\r\n if (newVal != this.checked) {\r\n this._checked = newVal;\r\n //this.value = this.checked ? this.valueOn : this.valueOff;\r\n this.markForCheck();\r\n }\r\n }\r\n private _checked: boolean = false;\r\n /**\r\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\r\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\r\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\r\n * set to false.\r\n */\r\n @Input({transform: booleanAttribute})\r\n get indeterminate(): boolean { return this._indeterminate; }\r\n set indeterminate(value: boolean) {\r\n const changed = value != this._indeterminate;\r\n this._indeterminate = value;\r\n\r\n if (changed) {\r\n this.indeterminateChange.emit(this._indeterminate);\r\n }\r\n\r\n this._syncIndeterminate(this._indeterminate);\r\n }\r\n private _indeterminate: boolean = false;\r\n\r\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\r\n @Input()\r\n labelPosition: 'before' | 'after' = 'after';\r\n\r\n /** Whether the checkbox should remain interactive when it is disabled. */\r\n @Input({transform: booleanAttribute})\r\n disabledInteractive: boolean = false;\r\n\r\n /** Relative size of the checkbox icon. */\r\n @Input() iconSize: RelativeSize = \"middle\";\r\n\r\n /** Event emitted when the checkbox's `checked` value changes. */\r\n @Output() readonly change = new EventEmitter<CuteCheckboxChange>();\r\n\r\n /** Event emitted when the checkbox's `indeterminate` value changes. */\r\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n /** The native `<input type=\"checkbox\">` element */\r\n @ViewChild('input')\r\n readonly _inputElement: ElementRef<HTMLInputElement> | undefined;\r\n\r\n /** The native `<label>` element */\r\n @ViewChild('label')\r\n private _labelElement!: ElementRef<HTMLInputElement>;\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n this._options = this._options || defaults;\r\n this.color = this._options.color || defaults.color;\r\n this.disabledInteractive = this._options?.disabledInteractive ?? false;\r\n //++ CWT\r\n if (this._nativeElement.nodeName.toLowerCase()===\"cute-slide-toggle\") {\r\n this.role = \"switch\";\r\n }\r\n //this.value = this.valueOn = \"on\";\r\n //this.valueOff = \"off\";\r\n //--\r\n }\r\n\r\n override ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n if (changes['required']) {\r\n this._validatorChangeFn();\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this._syncIndeterminate(this._indeterminate);\r\n }\r\n\r\n // Implemented as a part of Validator.\r\n validate(control: AbstractControl<boolean>): ValidationErrors | null {\r\n return this.required && control.value !== true ? {'required': true} : null;\r\n }\r\n\r\n // Implemented as a part of Validator.\r\n registerOnValidatorChange(fn: () => void): void {\r\n this._validatorChangeFn = fn;\r\n }\r\n\r\n override writeValue(value: any) {\r\n this.checked = !!value;\r\n }\r\n\r\n override generateId(): string {\r\n return `cute-checkbox-${nextUniqueId++}`;\r\n }\r\n\r\n private _emitChangeEvent() {\r\n this._onChange(this.checked);\r\n this.change.emit(this._createChangeEvent(this.checked));\r\n\r\n // Assigning the value again here is redundant, but we have to do it in case it was\r\n // changed inside the `change` listener which will cause the input to be out of sync.\r\n if (this._inputElement) {\r\n this._inputElement.nativeElement.checked = this.checked;\r\n }\r\n }\r\n\r\n /** Toggles the `checked` state of the checkbox. */\r\n toggle(): void {\r\n this.checked = !this.checked;\r\n this._onChange(this.checked);\r\n }\r\n\r\n /** Sets the `checked` state of the checkbox. */\r\n check(): void {\r\n this.checked = true;\r\n this._onChange(this.checked);\r\n }\r\n\r\n /** Clears the `checked` state of the checkbox. */\r\n uncheck(): void {\r\n this.checked = false;\r\n this._onChange(this.checked);\r\n }\r\n\r\n private _handleInputClick() {\r\n const clickAction = this._options?.clickAction;\r\n\r\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\r\n if (!this.disabled && clickAction !== 'noop') {\r\n // When a user manually clicks on the checkbox, `indeterminate` is set to false.\r\n if (this.indeterminate && clickAction !== 'check') {\r\n Promise.resolve().then(() => {\r\n this._indeterminate = false;\r\n this.indeterminateChange.emit(this._indeterminate);\r\n });\r\n }\r\n\r\n this._checked = !this._checked;\r\n\r\n // Emit our custom change event if the native input emitted one.\r\n // It is important to only emit it, if the native input triggered one, because\r\n // we don't want to trigger a change event, when the `checked` variable changes for example.\r\n this._emitChangeEvent();\r\n } else if (\r\n ((this.disabled && this.disabledInteractive) ||\r\n (!this.disabled && clickAction === 'noop')) && this._inputElement\r\n ) {\r\n // Reset native input when clicked with noop. The native checkbox becomes checked after\r\n // click, reset it to be aligned with `checked` value of `cute-checkbox`.\r\n this._inputElement.nativeElement.checked = this.checked;\r\n this._inputElement.nativeElement.indeterminate = this.indeterminate;\r\n }\r\n }\r\n\r\n /** Method being called whenever the label text changes. */\r\n _onLabelTextChange() {\r\n // Since the event of the `cdkObserveContent` directive runs outside the zone, the checkbox\r\n // component will be only marked for check, but no actual change detection runs automatically.\r\n // Instead of going back into the zone in order to trigger a change detection which causes\r\n // *all* components to be checked (if explicitly marked or not using OnPush), we only trigger\r\n // an explicit change detection for the checkbox view and its children.\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n protected _onInputChange(event: Event): void {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise, the change event from the input element will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n }\r\n\r\n protected _onInputBlur(event: Event):void {\r\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\r\n // Angular does not expect events to be raised during change detection, so any state change\r\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\r\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\r\n // telling the form control it has been touched until the next tick.\r\n Promise.resolve().then(() => {\r\n this._onTouched();\r\n this.markForCheck();\r\n });\r\n }\r\n\r\n protected _onInputClick(event: Event): void {\r\n this._handleInputClick();\r\n }\r\n\r\n protected _onTouchTargetClick(event: Event): void {\r\n this._handleInputClick();\r\n\r\n if (!this.disabled) {\r\n // Normally, the input should be focused already, but if the click\r\n // comes from the touch target, then we might have to focus it ourselves.\r\n this._inputElement?.nativeElement.focus();\r\n }\r\n }\r\n /**\r\n * Prevent click events that come from the `<label/>` element from bubbling. This prevents the\r\n * click handler on the host from triggering twice when clicking on the `<label/>` element. After\r\n * the click event on the `<label/>` propagates, the browsers dispatches click on the associated\r\n * `<input/>`. By preventing clicks on the label by bubbling, we ensure only one click event\r\n * bubbles when the label is clicked.\r\n */\r\n protected _preventBubblingFromLabel(event: MouseEvent) {\r\n if (!!event.target && this._labelElement.nativeElement.contains(event.target as HTMLElement)) {\r\n event.stopPropagation();\r\n }\r\n }\r\n /**\r\n * Syncs the indeterminate value with the checkbox DOM node.\r\n *\r\n * We sync `indeterminate` directly on the DOM node, because in Ivy the check for whether a\r\n * property is supported on an element boils down to `if (propName in an element)`. Domino's\r\n * HTMLInputElement doesn't have an `indeterminate` property, so Ivy will warn during\r\n * server-side rendering.\r\n */\r\n private _syncIndeterminate(value: boolean) {\r\n const nativeCheckbox = this._inputElement;\r\n\r\n if (nativeCheckbox) {\r\n nativeCheckbox.nativeElement.indeterminate = value;\r\n }\r\n }\r\n\r\n /** Creates the change event that will be emitted by the checkbox. */\r\n protected _createChangeEvent(isChecked: boolean): CuteCheckboxChange {\r\n return {source: this, checked: isChecked};\r\n }\r\n\r\n}\r\n","<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInputChange($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, inject} from '@angular/core';\r\nimport {CuteCheckbox} from './checkbox.component';\r\n\r\n/**\r\n * A switch has the markup of a custom checkbox but uses the .form-switch class to render a toggle switch.\r\n */\r\n@Directive({\r\n selector: 'cute-checkbox[cuteToggleSwitch]',\r\n exportAs: 'cuteToggleSwitch',\r\n standalone: true,\r\n})\r\nexport class CuteToggleSwitch {\r\n private _checkBox = inject(CuteCheckbox);\r\n\r\n constructor() {\r\n this._checkBox.role = \"switch\"\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\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteCheckbox} from \"./checkbox.component\";\r\nimport {CuteToggleSwitch} from \"./toggleswitch.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCheckbox,\r\n CuteToggleSwitch,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteCheckboxModule {\r\n}\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-checkbox.mjs","sources":["../../../../projects/cute-widgets/base/checkbox/src/checkbox.config.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.component.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.component.html","../../../../projects/cute-widgets/base/checkbox/src/toggleswitch.directive.ts","../../../../projects/cute-widgets/base/checkbox/src/checkbox.module.ts","../../../../projects/cute-widgets/base/checkbox/cute-widgets-base-checkbox.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Checkbox click action when a user clicks on an input element.\r\n * noop: Do not toggle checked or indeterminate.\r\n * check: Only toggle checked status, ignore indeterminate.\r\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\r\n * undefined: Same as `check-indeterminate`.\r\n */\r\nexport type CuteCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\r\n\r\n/** Default `cute-checkbox` options that can be overridden. */\r\nexport interface CuteCheckboxDefaultOptions {\r\n /** Default theme color palette to be used for checkboxes. */\r\n color?: ThemeColor;\r\n /** Default checkbox click action for checkboxes. */\r\n clickAction?: CuteCheckboxClickAction;\r\n /** Whether disabled checkboxes should be interactive. */\r\n disabledInteractive?: boolean;\r\n}\r\n\r\n/** Injection token to be used to override the default options for `cute-checkbox`. */\r\nexport const CUTE_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken<CuteCheckboxDefaultOptions>(\r\n 'cute-checkbox-default-options',\r\n {\r\n providedIn: 'root',\r\n factory: CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\r\n },\r\n);\r\n\r\n/** @docs-private */\r\nexport function CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY(): CuteCheckboxDefaultOptions {\r\n return {\r\n color: 'primary',\r\n clickAction: 'check-indeterminate',\r\n disabledInteractive: false,\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 {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef, inject,\r\n Input,\r\n Output, signal, SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator} from \"@angular/forms\";\r\nimport {\r\n CUTE_CHECKBOX_DEFAULT_OPTIONS,\r\n CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\r\n CuteCheckboxDefaultOptions\r\n} from \"./checkbox.config\";\r\nimport {CuteInputControl} from '@cute-widgets/base/abstract';\r\n\r\nimport {RelativeSize} from \"@cute-widgets/base/core\";\r\n\r\n/** Change event object emitted by checkbox. */\r\nexport interface CuteCheckboxChange {\r\n /** The source checkbox of the event. */\r\n source: CuteCheckbox;\r\n /** The new `checked` value of the checkbox. */\r\n checked: boolean;\r\n}\r\n// Increasing integer for generating unique ids for checkbox components.\r\nlet nextUniqueId = 0;\r\n\r\n// Default checkbox configuration.\r\nconst defaults = CUTE_CHECKBOX_DEFAULT_OPTIONS_FACTORY();\r\n\r\n@Component({\r\n selector: 'cute-checkbox, cute-slide-toggle:not([cuteToggleSwitch])',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n exportAs: \"cuteCheckbox\",\r\n host: {\r\n 'class': 'cute-checkbox',\r\n '[class.cute-checkbox-disabled]': 'disabled',\r\n '[class.cute-checkbox-disabled-interactive]': 'disabledInteractive',\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.role]': 'null',\r\n '[id]': 'id',\r\n },\r\n imports: [],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CuteCheckbox),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: CuteCheckbox,\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCheckbox extends CuteInputControl implements Validator {\r\n\r\n private readonly _options = inject<CuteCheckboxDefaultOptions>(CUTE_CHECKBOX_DEFAULT_OPTIONS, {\r\n optional: true,\r\n });\r\n\r\n private _validatorChangeFn = () => {};\r\n\r\n /** Users can specify the `aria-expanded` attribute which will be forwarded to the input element */\r\n @Input({alias: 'aria-expanded', transform: booleanAttribute}) ariaExpanded: boolean | undefined;\r\n\r\n /** Users can specify the `aria-controls` attribute which will be forwarded to the input element */\r\n @Input('aria-controls') ariaControls: string | undefined;\r\n\r\n /** Users can specify the `aria-owns` attribute which will be forwarded to the input element */\r\n @Input('aria-owns') ariaOwns: string | undefined;\r\n\r\n @Input()\r\n override get value(): any {return this._value}\r\n override set value(v: any) {this._value = v;}\r\n private _value: any;\r\n\r\n @Input()\r\n get valueOn(): unknown {return this._valueOn;}\r\n set valueOn(v: unknown) {this._valueOn = v;}\r\n private _valueOn: unknown;\r\n\r\n @Input()\r\n get valueOff(): unknown {return this._valueOff;}\r\n set valueOff(v: unknown) {this._valueOff = v;}\r\n private _valueOff: unknown;\r\n\r\n /** Group checkboxes on the same horizontal row */\r\n @Input({transform: booleanAttribute})\r\n inline: boolean = false;\r\n\r\n /** Whether the checkbox is checked. */\r\n @Input({transform: booleanAttribute})\r\n get checked(): boolean { return this._checked(); }\r\n set checked(newVal: boolean) {\r\n if (newVal != this.checked) {\r\n this._checked.set(newVal);\r\n //this.value = this.checked ? this.valueOn : this.valueOff;\r\n this.markForCheck();\r\n }\r\n }\r\n private _checked = signal(false);\r\n /**\r\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\r\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\r\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\r\n * set to false.\r\n */\r\n @Input({transform: booleanAttribute})\r\n get indeterminate(): boolean { return this._indeterminate(); }\r\n set indeterminate(value: boolean) {\r\n const changed = value != this._indeterminate();\r\n this._indeterminate.set(value);\r\n\r\n if (changed) {\r\n this.indeterminateChange.emit(value);\r\n }\r\n\r\n this._syncIndeterminate(value);\r\n }\r\n private _indeterminate= signal(false);\r\n\r\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\r\n @Input()\r\n labelPosition: 'before' | 'after' = 'after';\r\n\r\n /** Whether the checkbox should remain interactive when it is disabled. */\r\n @Input({transform: booleanAttribute})\r\n disabledInteractive: boolean = false;\r\n\r\n /** Relative size of the checkbox icon. */\r\n @Input() iconSize: RelativeSize = \"middle\";\r\n\r\n /** Event emitted when the checkbox's `checked` value changes. */\r\n @Output() readonly change = new EventEmitter<CuteCheckboxChange>();\r\n\r\n /** Event emitted when the checkbox's `indeterminate` value changes. */\r\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n /** The native `<input type=\"checkbox\">` element */\r\n @ViewChild('input')\r\n readonly _inputElement: ElementRef<HTMLInputElement> | undefined;\r\n\r\n /** The native `<label>` element */\r\n @ViewChild('label')\r\n private _labelElement!: ElementRef<HTMLInputElement>;\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n this._options = this._options || defaults;\r\n this.color = this._options.color || defaults.color;\r\n this.disabledInteractive = this._options?.disabledInteractive ?? false;\r\n //++ CWT\r\n if (this._nativeElement.nodeName.toLowerCase()===\"cute-slide-toggle\") {\r\n this.role = \"switch\";\r\n }\r\n //this.value = this.valueOn = \"on\";\r\n //this.valueOff = \"off\";\r\n //--\r\n }\r\n\r\n override ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n if (changes['required']) {\r\n this._validatorChangeFn();\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this._syncIndeterminate(this._indeterminate());\r\n }\r\n\r\n // Implemented as a part of Validator.\r\n validate(control: AbstractControl<boolean>): ValidationErrors | null {\r\n return this.required && control.value !== true ? {'required': true} : null;\r\n }\r\n\r\n // Implemented as a part of Validator.\r\n registerOnValidatorChange(fn: () => void): void {\r\n this._validatorChangeFn = fn;\r\n }\r\n\r\n override writeValue(value: any) {\r\n this.checked = !!value;\r\n }\r\n\r\n override generateId(): string {\r\n return `cute-checkbox-${nextUniqueId++}`;\r\n }\r\n\r\n private _emitChangeEvent() {\r\n this._onChange(this.checked);\r\n this.change.emit(this._createChangeEvent(this.checked));\r\n\r\n // Assigning the value again here is redundant, but we have to do it in case it was\r\n // changed inside the `change` listener which will cause the input to be out of sync.\r\n if (this._inputElement) {\r\n this._inputElement.nativeElement.checked = this.checked;\r\n }\r\n }\r\n\r\n /** Toggles the `checked` state of the checkbox. */\r\n toggle(): void {\r\n this.checked = !this.checked;\r\n this._onChange(this.checked);\r\n }\r\n\r\n /** Sets the `checked` state of the checkbox. */\r\n check(): void {\r\n this.checked = true;\r\n this._onChange(this.checked);\r\n }\r\n\r\n /** Clears the `checked` state of the checkbox. */\r\n uncheck(): void {\r\n this.checked = false;\r\n this._onChange(this.checked);\r\n }\r\n\r\n private _handleInputClick() {\r\n const clickAction = this._options?.clickAction;\r\n\r\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\r\n if (!this.disabled && clickAction !== 'noop') {\r\n // When a user manually clicks on the checkbox, `indeterminate` is set to false.\r\n if (this.indeterminate && clickAction !== 'check') {\r\n Promise.resolve().then(() => {\r\n this._indeterminate.set(false);\r\n this.indeterminateChange.emit(false);\r\n });\r\n }\r\n\r\n this._checked.set( !this._checked() );\r\n\r\n // Emit our custom change event if the native input emitted one.\r\n // It is important to only emit it, if the native input triggered one, because\r\n // we don't want to trigger a change event, when the `checked` variable changes for example.\r\n this._emitChangeEvent();\r\n } else if (\r\n ((this.disabled && this.disabledInteractive) ||\r\n (!this.disabled && clickAction === 'noop')) && this._inputElement\r\n ) {\r\n // Reset native input when clicked with noop. The native checkbox becomes checked after\r\n // click, reset it to be aligned with `checked` value of `cute-checkbox`.\r\n this._inputElement.nativeElement.checked = this.checked;\r\n this._inputElement.nativeElement.indeterminate = this.indeterminate;\r\n }\r\n }\r\n\r\n /** Method being called whenever the label text changes. */\r\n _onLabelTextChange() {\r\n // Since the event of the `cdkObserveContent` directive runs outside the zone, the checkbox\r\n // component will be only marked for check, but no actual change detection runs automatically.\r\n // Instead of going back into the zone in order to trigger a change detection which causes\r\n // *all* components to be checked (if explicitly marked or not using OnPush), we only trigger\r\n // an explicit change detection for the checkbox view and its children.\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n protected _onInteractionEvent(event: Event): void {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise, the change event from the input element will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n }\r\n\r\n protected _onInputBlur(event: Event):void {\r\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\r\n // Angular does not expect events to be raised during change detection, so any state change\r\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\r\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\r\n // telling the form control it has been touched until the next tick.\r\n Promise.resolve().then(() => {\r\n this._onTouched();\r\n this.markForCheck();\r\n });\r\n }\r\n\r\n protected _onInputClick(event: Event): void {\r\n this._handleInputClick();\r\n }\r\n\r\n protected _onTouchTargetClick(event: Event): void {\r\n this._handleInputClick();\r\n\r\n if (!this.disabled) {\r\n // Normally, the input should be focused already, but if the click\r\n // comes from the touch target, then we might have to focus it ourselves.\r\n this._inputElement?.nativeElement.focus();\r\n }\r\n }\r\n /**\r\n * Prevent click events that come from the `<label/>` element from bubbling. This prevents the\r\n * click handler on the host from triggering twice when clicking on the `<label/>` element. After\r\n * the click event on the `<label/>` propagates, the browsers dispatches click on the associated\r\n * `<input/>`. By preventing clicks on the label by bubbling, we ensure only one click event\r\n * bubbles when the label is clicked.\r\n */\r\n protected _preventBubblingFromLabel(event: MouseEvent) {\r\n if (!!event.target && this._labelElement.nativeElement.contains(event.target as HTMLElement)) {\r\n event.stopPropagation();\r\n }\r\n }\r\n /**\r\n * Syncs the indeterminate value with the checkbox DOM node.\r\n *\r\n * We sync `indeterminate` directly on the DOM node, because in Ivy the check for whether a\r\n * property is supported on an element boils down to `if (propName in an element)`. Domino's\r\n * HTMLInputElement doesn't have an `indeterminate` property, so Ivy will warn during\r\n * server-side rendering.\r\n */\r\n private _syncIndeterminate(value: boolean) {\r\n const nativeCheckbox = this._inputElement;\r\n\r\n if (nativeCheckbox) {\r\n nativeCheckbox.nativeElement.indeterminate = value;\r\n }\r\n }\r\n\r\n /** Creates the change event that will be emitted by the checkbox. */\r\n protected _createChangeEvent(isChecked: boolean): CuteCheckboxChange {\r\n return {source: this, checked: isChecked};\r\n }\r\n\r\n}\r\n","<div class=\"form-check\"\r\n [class.form-check-reverse]=\"labelPosition == 'before'\"\r\n [class.form-check-inline]=\"inline\"\r\n [class.form-switch]=\"role == 'switch'\"\r\n (click)=\"_preventBubblingFromLabel($event)\"\r\n >\r\n <input #input type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [class.icon-small]=\"iconSize=='small'\"\r\n [class.icon-large]=\"iconSize=='large'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n [attr.role]=\"role\"\r\n [attr.name] = \"name\"\r\n [attr.value]=\"value\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n [indeterminate]=\"indeterminate\"\r\n [autocomplete]=\"false\"\r\n (blur)=\"_onInputBlur($event)\"\r\n (click)=\"_onInputClick($event)\"\r\n (change)=\"_onInteractionEvent($event)\"\r\n />\r\n <label #label\r\n class=\"form-check-label\"\r\n [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, inject} from '@angular/core';\r\nimport {CuteCheckbox} from './checkbox.component';\r\n\r\n/**\r\n * A switch has the markup of a custom checkbox but uses the .form-switch class to render a toggle switch.\r\n */\r\n@Directive({\r\n selector: 'cute-checkbox[cuteToggleSwitch]',\r\n exportAs: 'cuteToggleSwitch',\r\n standalone: true,\r\n})\r\nexport class CuteToggleSwitch {\r\n private _checkBox = inject(CuteCheckbox);\r\n\r\n constructor() {\r\n this._checkBox.role = \"switch\"\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\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteCheckbox} from \"./checkbox.component\";\r\nimport {CuteToggleSwitch} from \"./toggleswitch.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCheckbox,\r\n CuteToggleSwitch,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteCheckboxModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}