@cute-widgets/base 20.0.1

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 (183) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +191 -0
  3. package/README.md +190 -0
  4. package/abstract/index.d.ts +327 -0
  5. package/alert/index.d.ts +68 -0
  6. package/autocomplete/index.d.ts +442 -0
  7. package/badge/index.d.ts +26 -0
  8. package/bottom-sheet/index.d.ts +231 -0
  9. package/button/index.d.ts +182 -0
  10. package/button-toggle/index.d.ts +225 -0
  11. package/card/index.d.ts +163 -0
  12. package/checkbox/index.d.ts +174 -0
  13. package/chips/index.d.ts +963 -0
  14. package/collapse/index.d.ts +97 -0
  15. package/core/animation/index.d.ts +43 -0
  16. package/core/datetime/index.d.ts +404 -0
  17. package/core/directives/index.d.ts +168 -0
  18. package/core/error/index.d.ts +74 -0
  19. package/core/index.d.ts +1039 -0
  20. package/core/interfaces/index.d.ts +114 -0
  21. package/core/layout/index.d.ts +53 -0
  22. package/core/line/index.d.ts +37 -0
  23. package/core/nav/index.d.ts +321 -0
  24. package/core/observers/index.d.ts +124 -0
  25. package/core/option/index.d.ts +185 -0
  26. package/core/pipes/index.d.ts +53 -0
  27. package/core/ripple/index.d.ts +66 -0
  28. package/core/testing/index.d.ts +154 -0
  29. package/core/theming/index.d.ts +118 -0
  30. package/core/types/index.d.ts +53 -0
  31. package/core/utils/index.d.ts +129 -0
  32. package/cute-widgets-base-20.0.1.tgz +0 -0
  33. package/datepicker/index.d.ts +1817 -0
  34. package/dialog/index.d.ts +484 -0
  35. package/divider/index.d.ts +24 -0
  36. package/expansion/README.md +8 -0
  37. package/expansion/index.d.ts +308 -0
  38. package/fesm2022/cute-widgets-base-abstract.mjs +547 -0
  39. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -0
  40. package/fesm2022/cute-widgets-base-alert.mjs +198 -0
  41. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -0
  42. package/fesm2022/cute-widgets-base-autocomplete.mjs +1217 -0
  43. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -0
  44. package/fesm2022/cute-widgets-base-badge.mjs +75 -0
  45. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -0
  46. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +416 -0
  47. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -0
  48. package/fesm2022/cute-widgets-base-button-toggle.mjs +640 -0
  49. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -0
  50. package/fesm2022/cute-widgets-base-button.mjs +546 -0
  51. package/fesm2022/cute-widgets-base-button.mjs.map +1 -0
  52. package/fesm2022/cute-widgets-base-card.mjs +471 -0
  53. package/fesm2022/cute-widgets-base-card.mjs.map +1 -0
  54. package/fesm2022/cute-widgets-base-checkbox.mjs +390 -0
  55. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -0
  56. package/fesm2022/cute-widgets-base-chips.mjs +2360 -0
  57. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -0
  58. package/fesm2022/cute-widgets-base-collapse.mjs +259 -0
  59. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -0
  60. package/fesm2022/cute-widgets-base-core-animation.mjs +53 -0
  61. package/fesm2022/cute-widgets-base-core-animation.mjs.map +1 -0
  62. package/fesm2022/cute-widgets-base-core-datetime.mjs +568 -0
  63. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -0
  64. package/fesm2022/cute-widgets-base-core-directives.mjs +404 -0
  65. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -0
  66. package/fesm2022/cute-widgets-base-core-error.mjs +105 -0
  67. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -0
  68. package/fesm2022/cute-widgets-base-core-interfaces.mjs +22 -0
  69. package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -0
  70. package/fesm2022/cute-widgets-base-core-layout.mjs +74 -0
  71. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -0
  72. package/fesm2022/cute-widgets-base-core-line.mjs +87 -0
  73. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -0
  74. package/fesm2022/cute-widgets-base-core-nav.mjs +863 -0
  75. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -0
  76. package/fesm2022/cute-widgets-base-core-observers.mjs +304 -0
  77. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -0
  78. package/fesm2022/cute-widgets-base-core-option.mjs +373 -0
  79. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -0
  80. package/fesm2022/cute-widgets-base-core-pipes.mjs +97 -0
  81. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -0
  82. package/fesm2022/cute-widgets-base-core-ripple.mjs +172 -0
  83. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -0
  84. package/fesm2022/cute-widgets-base-core-testing.mjs +210 -0
  85. package/fesm2022/cute-widgets-base-core-testing.mjs.map +1 -0
  86. package/fesm2022/cute-widgets-base-core-theming.mjs +314 -0
  87. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -0
  88. package/fesm2022/cute-widgets-base-core-types.mjs +22 -0
  89. package/fesm2022/cute-widgets-base-core-types.mjs.map +1 -0
  90. package/fesm2022/cute-widgets-base-core-utils.mjs +257 -0
  91. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -0
  92. package/fesm2022/cute-widgets-base-core.mjs +1600 -0
  93. package/fesm2022/cute-widgets-base-core.mjs.map +1 -0
  94. package/fesm2022/cute-widgets-base-datepicker.mjs +4827 -0
  95. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -0
  96. package/fesm2022/cute-widgets-base-dialog.mjs +1046 -0
  97. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -0
  98. package/fesm2022/cute-widgets-base-divider.mjs +86 -0
  99. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -0
  100. package/fesm2022/cute-widgets-base-expansion.mjs +623 -0
  101. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -0
  102. package/fesm2022/cute-widgets-base-form-field.mjs +969 -0
  103. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -0
  104. package/fesm2022/cute-widgets-base-grid-list.mjs +715 -0
  105. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -0
  106. package/fesm2022/cute-widgets-base-icon.mjs +1105 -0
  107. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -0
  108. package/fesm2022/cute-widgets-base-input.mjs +726 -0
  109. package/fesm2022/cute-widgets-base-input.mjs.map +1 -0
  110. package/fesm2022/cute-widgets-base-layout-container.mjs +95 -0
  111. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -0
  112. package/fesm2022/cute-widgets-base-layout-stack.mjs +166 -0
  113. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -0
  114. package/fesm2022/cute-widgets-base-layout.mjs +250 -0
  115. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -0
  116. package/fesm2022/cute-widgets-base-list.mjs +1557 -0
  117. package/fesm2022/cute-widgets-base-list.mjs.map +1 -0
  118. package/fesm2022/cute-widgets-base-menu.mjs +1283 -0
  119. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -0
  120. package/fesm2022/cute-widgets-base-navbar.mjs +359 -0
  121. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -0
  122. package/fesm2022/cute-widgets-base-paginator.mjs +485 -0
  123. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -0
  124. package/fesm2022/cute-widgets-base-progress.mjs +321 -0
  125. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -0
  126. package/fesm2022/cute-widgets-base-radio.mjs +637 -0
  127. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -0
  128. package/fesm2022/cute-widgets-base-select.mjs +1208 -0
  129. package/fesm2022/cute-widgets-base-select.mjs.map +1 -0
  130. package/fesm2022/cute-widgets-base-sidenav.mjs +1095 -0
  131. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -0
  132. package/fesm2022/cute-widgets-base-slider.mjs +99 -0
  133. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -0
  134. package/fesm2022/cute-widgets-base-snack-bar.mjs +897 -0
  135. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -0
  136. package/fesm2022/cute-widgets-base-sort.mjs +639 -0
  137. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -0
  138. package/fesm2022/cute-widgets-base-spinner.mjs +154 -0
  139. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -0
  140. package/fesm2022/cute-widgets-base-stepper.mjs +673 -0
  141. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -0
  142. package/fesm2022/cute-widgets-base-table.mjs +1023 -0
  143. package/fesm2022/cute-widgets-base-table.mjs.map +1 -0
  144. package/fesm2022/cute-widgets-base-tabs.mjs +729 -0
  145. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -0
  146. package/fesm2022/cute-widgets-base-timepicker.mjs +965 -0
  147. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -0
  148. package/fesm2022/cute-widgets-base-toolbar.mjs +120 -0
  149. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -0
  150. package/fesm2022/cute-widgets-base-tooltip.mjs +947 -0
  151. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -0
  152. package/fesm2022/cute-widgets-base-tree.mjs +598 -0
  153. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -0
  154. package/fesm2022/cute-widgets-base.mjs +68 -0
  155. package/fesm2022/cute-widgets-base.mjs.map +1 -0
  156. package/form-field/index.d.ts +401 -0
  157. package/grid-list/index.d.ts +361 -0
  158. package/icon/index.d.ts +477 -0
  159. package/index.d.ts +3 -0
  160. package/input/index.d.ts +256 -0
  161. package/layout/container/index.d.ts +31 -0
  162. package/layout/index.d.ts +78 -0
  163. package/layout/stack/index.d.ts +52 -0
  164. package/list/index.d.ts +659 -0
  165. package/menu/index.d.ts +497 -0
  166. package/navbar/index.d.ts +91 -0
  167. package/package.json +279 -0
  168. package/paginator/index.d.ts +216 -0
  169. package/progress/index.d.ts +130 -0
  170. package/radio/index.d.ts +259 -0
  171. package/select/index.d.ts +426 -0
  172. package/sidenav/index.d.ts +369 -0
  173. package/slider/index.d.ts +48 -0
  174. package/snack-bar/index.d.ts +374 -0
  175. package/sort/index.d.ts +334 -0
  176. package/spinner/index.d.ts +70 -0
  177. package/stepper/index.d.ts +295 -0
  178. package/table/index.d.ts +395 -0
  179. package/tabs/index.d.ts +307 -0
  180. package/timepicker/index.d.ts +350 -0
  181. package/toolbar/index.d.ts +36 -0
  182. package/tooltip/index.d.ts +299 -0
  183. package/tree/index.d.ts +314 -0
@@ -0,0 +1,259 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, EventEmitter, booleanAttribute, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, NgModule } from '@angular/core';
3
+ import { CuteBaseControl } from '@cute-widgets/base/abstract';
4
+ import { trigger, state, transition, style, animate } from '@angular/animations';
5
+ import { Subject } from 'rxjs';
6
+ import { distinctUntilChanged } from 'rxjs/operators';
7
+ import { CommonModule } from '@angular/common';
8
+
9
+ /**
10
+ * @license Apache-2.0
11
+ *
12
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
13
+ *
14
+ * You may not use this file except in compliance with the License
15
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
16
+ */
17
+ /** Time and timing curve for **collapse** animations. */
18
+ const CUTE_COLLAPSE_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';
19
+ /**
20
+ * Animations used by the CuteWidgets` collapse element.
21
+ */
22
+ const cuteCollapseAnimations = {
23
+ /** Animation that rotates the indicator arrow. */
24
+ /*
25
+ indicatorRotate: trigger('indicatorRotate', [
26
+ state('collapsed, void', style({transform: 'rotate(0deg)'})),
27
+ state('expanded', style({transform: 'rotate(180deg)'})),
28
+ transition(
29
+ 'expanded <=> collapsed, void => collapsed',
30
+ animate(EXPANSION_PANEL_ANIMATION_TIMING),
31
+ ),
32
+ ]),
33
+ */
34
+ /** Animation that expands and collapses the panel content. */
35
+ bodyExpansion: trigger('bodyExpansion', [
36
+ state('collapsed, void', style({ height: '0px', visibility: 'hidden' })),
37
+ state('collapsed-hor, void', style({ width: '0px', visibility: 'hidden' })),
38
+ // Clear the `visibility` while open, otherwise the content will be visible when placed in
39
+ // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants
40
+ // that have a `visibility` of their own (see #27436).
41
+ state('expanded', style({ height: '*', visibility: '' })),
42
+ state('expanded-hor', style({ width: '*', visibility: '' })),
43
+ transition(
44
+ //'expanded <=> collapsed, expanded-hor <=> collapsed-hor, :enter',
45
+ '* => *, :enter, :leave', animate(CUTE_COLLAPSE_ANIMATION_TIMING))
46
+ ]),
47
+ };
48
+
49
+ /**
50
+ * @license Apache-2.0
51
+ *
52
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
53
+ *
54
+ * You may not use this file except in compliance with the License
55
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
56
+ */
57
+ // Increasing integer for generating unique ids for checkbox components.
58
+ let nextUniqueId = 0;
59
+ /**
60
+ * This collapse component is used to show and hide content.
61
+ * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.
62
+ */
63
+ class CuteCollapse extends CuteBaseControl {
64
+ /** Sets the element's current state to _collapsed_ or _expanded_ value. */
65
+ get collapsed() { return this._collapsed(); }
66
+ set collapsed(value) {
67
+ if (value !== this._collapsed()) {
68
+ if (this.disableAnimation) {
69
+ (value ? this.beforeCollapse : this.beforeExpand).emit();
70
+ }
71
+ this._collapsed.set(value);
72
+ if (this.disableAnimation) {
73
+ (value ? this.afterCollapse : this.afterExpand).emit();
74
+ }
75
+ }
76
+ }
77
+ /** Weather the current state is _collapsed_ or _expanded_. Part of `Expandable` interface. */
78
+ get expanded() { return !this.collapsed; }
79
+ constructor() {
80
+ super();
81
+ this._collapsed = signal(true, ...(ngDevMode ? [{ debugName: "_collapsed" }] : []));
82
+ /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */
83
+ this.horizontal = false;
84
+ /** Whether the animation while collapsing/expanding should be disabled */
85
+ this.disableAnimation = false;
86
+ /** Event emitting before expand element */
87
+ this.beforeExpand = new EventEmitter();
88
+ /** Event emitting before collapse element */
89
+ this.beforeCollapse = new EventEmitter();
90
+ /** Event emitting after expand element */
91
+ this.afterExpand = new EventEmitter();
92
+ /** Event emitting after collapse element */
93
+ this.afterCollapse = new EventEmitter();
94
+ /** Stream of body animation events. */
95
+ this._bodyAnimation$ = new Subject();
96
+ // We need a Subject with distinctUntilChanged, because the `done` event
97
+ // fires twice on some browsers. See https://github.com/angular/angular/issues/24084
98
+ this._bodyAnimation$
99
+ .pipe(distinctUntilChanged((x, y) => {
100
+ return x.phaseName === y.phaseName && x.fromState === y.fromState && x.toState === y.toState;
101
+ }))
102
+ .subscribe((event) => {
103
+ this.onAnimationEvent(event);
104
+ });
105
+ }
106
+ onAnimationEvent(event) {
107
+ if (event.fromState !== 'void') {
108
+ const toState = event.toState;
109
+ if (event.phaseName == "start") {
110
+ if (toState.startsWith('expanded')) {
111
+ this.beforeExpand.emit();
112
+ }
113
+ else if (toState.startsWith('collapsed')) {
114
+ this.beforeCollapse.emit();
115
+ }
116
+ }
117
+ else if (event.phaseName == "done") {
118
+ if (toState.startsWith('expanded')) {
119
+ this.afterExpand.emit();
120
+ }
121
+ else if (toState.startsWith('collapsed')) {
122
+ this.afterCollapse.emit();
123
+ }
124
+ }
125
+ }
126
+ }
127
+ generateId() {
128
+ return `cute-collapse-${nextUniqueId++}`;
129
+ }
130
+ /** Gets the expanded state string. */
131
+ getState() {
132
+ return this.collapsed ? 'collapsed' : 'expanded';
133
+ }
134
+ /** Part of `Expandable` interface */
135
+ toggle() {
136
+ this.collapsed = !this.collapsed;
137
+ }
138
+ /** Part of `Expandable` interface */
139
+ open() {
140
+ if (this.collapsed) {
141
+ this.collapsed = false;
142
+ }
143
+ }
144
+ /** Part of `Expandable` interface */
145
+ close() {
146
+ if (!this.collapsed) {
147
+ this.collapsed = true;
148
+ }
149
+ }
150
+ ngOnDestroy() {
151
+ super.ngOnDestroy();
152
+ this._bodyAnimation$.complete();
153
+ }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapse, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.15", type: CuteCollapse, isStandalone: true, selector: "cute-collapse", inputs: { collapsed: ["collapsed", "collapsed", booleanAttribute], horizontal: ["horizontal", "horizontal", booleanAttribute], disableAnimation: ["disableAnimation", "disableAnimation", booleanAttribute] }, outputs: { beforeExpand: "beforeExpand", beforeCollapse: "beforeCollapse", afterExpand: "afterExpand", afterCollapse: "afterCollapse" }, host: { listeners: { "@bodyExpansion.start": "_bodyAnimation$.next($event)", "@bodyExpansion.done": "_bodyAnimation$.next($event)" }, properties: { "id": "id || null", "@bodyExpansion": "getState()+(horizontal?\"-hor\":\"\")", "@.disabled": "disableAnimation" }, classAttribute: "cute-collapse" }, exportAs: ["cuteCollapse"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".cute-collapse{display:block}.ng-animating{overflow:hidden}\n"], animations: [cuteCollapseAnimations.bodyExpansion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
156
+ }
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapse, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'cute-collapse', template: '<ng-content></ng-content>', exportAs: 'cuteCollapse', host: {
160
+ 'class': 'cute-collapse', // collapse',
161
+ //'[class.show]': '!collapsed',
162
+ '[id]': 'id || null',
163
+ '[@bodyExpansion]': 'getState()+(horizontal?"-hor":"")',
164
+ '[@.disabled]': 'disableAnimation',
165
+ '(@bodyExpansion.start)': '_bodyAnimation$.next($event)',
166
+ '(@bodyExpansion.done)': '_bodyAnimation$.next($event)',
167
+ }, animations: [cuteCollapseAnimations.bodyExpansion], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".cute-collapse{display:block}.ng-animating{overflow:hidden}\n"] }]
168
+ }], ctorParameters: () => [], propDecorators: { collapsed: [{
169
+ type: Input,
170
+ args: [{ transform: booleanAttribute }]
171
+ }], horizontal: [{
172
+ type: Input,
173
+ args: [{ transform: booleanAttribute }]
174
+ }], disableAnimation: [{
175
+ type: Input,
176
+ args: [{ transform: booleanAttribute }]
177
+ }], beforeExpand: [{
178
+ type: Output
179
+ }], beforeCollapse: [{
180
+ type: Output
181
+ }], afterExpand: [{
182
+ type: Output
183
+ }], afterCollapse: [{
184
+ type: Output
185
+ }] } });
186
+
187
+ /**
188
+ * @license Apache-2.0
189
+ *
190
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
191
+ *
192
+ * You may not use this file except in compliance with the License
193
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
194
+ */
195
+ class CuteCollapseTrigger {
196
+ constructor() {
197
+ this._collapseControl = null;
198
+ }
199
+ /** Reference to the `cute-collapse` component to toggle its visibility */
200
+ get collapseControl() { return this._collapseControl; }
201
+ set collapseControl(collapse) {
202
+ this._collapseControl = collapse;
203
+ }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
205
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCollapseTrigger, isStandalone: true, selector: "[cuteCollapseTriggerFor]", inputs: { collapseControl: ["cuteCollapseTriggerFor", "collapseControl"] }, host: { listeners: { "click": "collapseControl?.toggle()" }, properties: { "class.collapsed": "collapseControl?.collapsed", "attr.aria-expanded": "collapseControl ? collapseControl.expanded : null", "attr.aria-controls": "collapseControl?.id || null" }, classAttribute: "cute-collapse-trigger" }, exportAs: ["cuteCollapseTrigger"], ngImport: i0 }); }
206
+ }
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseTrigger, decorators: [{
208
+ type: Directive,
209
+ args: [{
210
+ selector: '[cuteCollapseTriggerFor]',
211
+ exportAs: 'cuteCollapseTrigger',
212
+ host: {
213
+ 'class': 'cute-collapse-trigger',
214
+ '[class.collapsed]': 'collapseControl?.collapsed',
215
+ '[attr.aria-expanded]': 'collapseControl ? collapseControl.expanded : null',
216
+ '[attr.aria-controls]': 'collapseControl?.id || null',
217
+ '(click)': 'collapseControl?.toggle()',
218
+ },
219
+ standalone: true,
220
+ }]
221
+ }], propDecorators: { collapseControl: [{
222
+ type: Input,
223
+ args: ["cuteCollapseTriggerFor"]
224
+ }] } });
225
+
226
+ /**
227
+ * @license Apache-2.0
228
+ *
229
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
230
+ *
231
+ * You may not use this file except in compliance with the License
232
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
233
+ */
234
+ const TYPES = [
235
+ CuteCollapse,
236
+ CuteCollapseTrigger,
237
+ ];
238
+ class CuteCollapseModule {
239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
240
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule, CuteCollapse,
241
+ CuteCollapseTrigger], exports: [CuteCollapse,
242
+ CuteCollapseTrigger] }); }
243
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule] }); }
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, decorators: [{
246
+ type: NgModule,
247
+ args: [{
248
+ imports: [CommonModule, ...TYPES],
249
+ exports: TYPES,
250
+ declarations: [],
251
+ }]
252
+ }] });
253
+
254
+ /**
255
+ * Generated bundle index. Do not edit.
256
+ */
257
+
258
+ export { CUTE_COLLAPSE_ANIMATION_TIMING, CuteCollapse, CuteCollapseModule, CuteCollapseTrigger, cuteCollapseAnimations };
259
+ //# sourceMappingURL=cute-widgets-base-collapse.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cute-widgets-base-collapse.mjs","sources":["../../../../projects/cute-widgets/base/collapse/src/collapse-animations.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.component.ts","../../../../projects/cute-widgets/base/collapse/src/collapse-trigger.directive.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.module.ts","../../../../projects/cute-widgets/base/collapse/cute-widgets-base-collapse.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\nimport {\r\n animate,\r\n AnimationTriggerMetadata,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\n/** Time and timing curve for **collapse** animations. */\r\nexport const CUTE_COLLAPSE_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\r\n\r\n/**\r\n * Animations used by the CuteWidgets` collapse element.\r\n */\r\nexport const cuteCollapseAnimations: {\r\n //readonly indicatorRotate: AnimationTriggerMetadata;\r\n readonly bodyExpansion: AnimationTriggerMetadata;\r\n} = {\r\n /** Animation that rotates the indicator arrow. */\r\n /*\r\n indicatorRotate: trigger('indicatorRotate', [\r\n state('collapsed, void', style({transform: 'rotate(0deg)'})),\r\n state('expanded', style({transform: 'rotate(180deg)'})),\r\n transition(\r\n 'expanded <=> collapsed, void => collapsed',\r\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\r\n ),\r\n ]),\r\n */\r\n /** Animation that expands and collapses the panel content. */\r\n bodyExpansion: trigger('bodyExpansion', [\r\n state('collapsed, void', style({height: '0px', visibility: 'hidden'})),\r\n state('collapsed-hor, void', style({width: '0px', visibility: 'hidden'})),\r\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\r\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\r\n // that have a `visibility` of their own (see #27436).\r\n state('expanded', style({height: '*', visibility: ''})),\r\n state('expanded-hor', style({width: '*', visibility: ''})),\r\n transition(\r\n //'expanded <=> collapsed, expanded-hor <=> collapsed-hor, :enter',\r\n '* => *, :enter, :leave',\r\n animate(CUTE_COLLAPSE_ANIMATION_TIMING),\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\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input, OnDestroy,\r\n Output, signal,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteBaseControl, Expandable} from \"@cute-widgets/base/abstract\";\r\nimport {cuteCollapseAnimations} from \"./collapse-animations\";\r\nimport {Subject} from \"rxjs\";\r\nimport {distinctUntilChanged} from \"rxjs/operators\";\r\nimport {AnimationEvent} from \"@angular/animations\";\r\n\r\n// Increasing integer for generating unique ids for checkbox components.\r\nlet nextUniqueId = 0;\r\n\r\n/** Animation states */\r\nexport type CuteCollapseState = 'expanded' | 'collapsed';\r\n\r\n/**\r\n * This collapse component is used to show and hide content.\r\n * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.\r\n */\r\n@Component({\r\n selector: 'cute-collapse',\r\n template: '<ng-content></ng-content>',\r\n styles: `\r\n .cute-collapse {display: block;}\r\n .ng-animating {overflow: hidden;}\r\n `,\r\n exportAs: 'cuteCollapse',\r\n host: {\r\n 'class': 'cute-collapse', // collapse',\r\n //'[class.show]': '!collapsed',\r\n '[id]': 'id || null',\r\n '[@bodyExpansion]': 'getState()+(horizontal?\"-hor\":\"\")',\r\n '[@.disabled]': 'disableAnimation',\r\n '(@bodyExpansion.start)': '_bodyAnimation$.next($event)',\r\n '(@bodyExpansion.done)': '_bodyAnimation$.next($event)',\r\n },\r\n animations: [cuteCollapseAnimations.bodyExpansion],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class CuteCollapse extends CuteBaseControl implements Expandable, OnDestroy {\r\n\r\n /** Sets the element's current state to _collapsed_ or _expanded_ value. */\r\n @Input({transform: booleanAttribute})\r\n get collapsed(): boolean { return this._collapsed(); }\r\n set collapsed(value: boolean) {\r\n if (value !== this._collapsed()) {\r\n if (this.disableAnimation) {\r\n (value ? this.beforeCollapse : this.beforeExpand).emit();\r\n }\r\n this._collapsed.set(value);\r\n if (this.disableAnimation) {\r\n (value ? this.afterCollapse : this.afterExpand).emit();\r\n }\r\n }\r\n }\r\n private _collapsed = signal<boolean>(true);\r\n\r\n /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */\r\n @Input({transform: booleanAttribute})\r\n horizontal: boolean = false;\r\n\r\n /** Whether the animation while collapsing/expanding should be disabled */\r\n @Input({transform: booleanAttribute})\r\n disableAnimation: boolean = false;\r\n\r\n /** Event emitting before expand element */\r\n @Output() readonly beforeExpand = new EventEmitter<void>();\r\n /** Event emitting before collapse element */\r\n @Output() readonly beforeCollapse = new EventEmitter<void>();\r\n\r\n /** Event emitting after expand element */\r\n @Output() readonly afterExpand = new EventEmitter<void>();\r\n /** Event emitting after collapse element */\r\n @Output() readonly afterCollapse = new EventEmitter<void>();\r\n\r\n /** Weather the current state is _collapsed_ or _expanded_. Part of `Expandable` interface. */\r\n public get expanded(): boolean { return !this.collapsed; }\r\n\r\n /** Stream of body animation events. */\r\n protected readonly _bodyAnimation$ = new Subject<AnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n\r\n // We need a Subject with distinctUntilChanged, because the `done` event\r\n // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\r\n this._bodyAnimation$\r\n .pipe(\r\n distinctUntilChanged((x, y) => {\r\n return x.phaseName === y.phaseName && x.fromState === y.fromState && x.toState === y.toState;\r\n }),\r\n )\r\n .subscribe((event: AnimationEvent) => {\r\n this.onAnimationEvent(event);\r\n });\r\n }\r\n\r\n protected onAnimationEvent(event: AnimationEvent) {\r\n if (event.fromState !== 'void') {\r\n const toState = event.toState;\r\n if (event.phaseName == \"start\") {\r\n if (toState.startsWith('expanded')) {\r\n this.beforeExpand.emit();\r\n } else if (toState.startsWith('collapsed')) {\r\n this.beforeCollapse.emit();\r\n }\r\n } else if (event.phaseName == \"done\") {\r\n if (toState.startsWith('expanded')) {\r\n this.afterExpand.emit();\r\n } else if (toState.startsWith('collapsed')) {\r\n this.afterCollapse.emit();\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-collapse-${nextUniqueId++}`;\r\n }\r\n\r\n /** Gets the expanded state string. */\r\n getState(): CuteCollapseState {\r\n return this.collapsed ? 'collapsed' : 'expanded';\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n toggle(): void {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n open(): void {\r\n if (this.collapsed) {\r\n this.collapsed = false;\r\n }\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n close(): void {\r\n if (!this.collapsed) {\r\n this.collapsed = true;\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._bodyAnimation$.complete();\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\nimport {Directive, Input} from \"@angular/core\";\r\nimport {CuteCollapse} from \"./collapse.component\";\r\n\r\n@Directive({\r\n selector: '[cuteCollapseTriggerFor]',\r\n exportAs: 'cuteCollapseTrigger',\r\n host: {\r\n 'class': 'cute-collapse-trigger',\r\n '[class.collapsed]': 'collapseControl?.collapsed',\r\n '[attr.aria-expanded]': 'collapseControl ? collapseControl.expanded : null',\r\n '[attr.aria-controls]': 'collapseControl?.id || null',\r\n '(click)': 'collapseControl?.toggle()',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCollapseTrigger {\r\n\r\n /** Reference to the `cute-collapse` component to toggle its visibility */\r\n @Input(\"cuteCollapseTriggerFor\")\r\n get collapseControl(): CuteCollapse | null {return this._collapseControl;}\r\n set collapseControl(collapse: CuteCollapse | null) {\r\n this._collapseControl = collapse;\r\n }\r\n private _collapseControl: CuteCollapse | null = null;\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 {CuteCollapse} from \"./collapse.component\";\r\nimport {CuteCollapseTrigger} from \"./collapse-trigger.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCollapse,\r\n CuteCollapseTrigger,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteCollapseModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { MediaMatcher } from '@angular/cdk/layout';
2
+ import { InjectionToken, inject, ANIMATION_MODULE_TYPE } from '@angular/core';
3
+
4
+ /** Injection token used to configure the animations in CuteWidgets. */
5
+ const CUTE_WIDGETS_ANIMATIONS = new InjectionToken('CUTE_WIDGETS_ANIMATIONS');
6
+ /**
7
+ * @deprecated No longer used, will be removed.
8
+ * @breaking-change 21.0.0
9
+ * @docs-private
10
+ */
11
+ class AnimationCurves {
12
+ static { this.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)'; }
13
+ static { this.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)'; }
14
+ static { this.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)'; }
15
+ static { this.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)'; }
16
+ }
17
+ /**
18
+ * @deprecated No longer used, will be removed.
19
+ * @breaking-change 21.0.0
20
+ * @docs-private
21
+ */
22
+ class AnimationDurations {
23
+ static { this.COMPLEX = '375ms'; }
24
+ static { this.ENTERING = '225ms'; }
25
+ static { this.EXITING = '195ms'; }
26
+ }
27
+ let reducedMotion = null;
28
+ /**
29
+ * Gets the configured animations state.
30
+ * @docs-private
31
+ */
32
+ function _getAnimationsState() {
33
+ if (inject(CUTE_WIDGETS_ANIMATIONS, { optional: true })?.animationsDisabled ||
34
+ inject(ANIMATION_MODULE_TYPE, { optional: true }) === 'NoopAnimations') {
35
+ return 'di-disabled';
36
+ }
37
+ reducedMotion ??= inject(MediaMatcher).matchMedia('(prefers-reduced-motion)').matches;
38
+ return reducedMotion ? 'reduced-motion' : 'enabled';
39
+ }
40
+ /**
41
+ * Returns whether animations have been disabled by DI. Must be called in a DI context.
42
+ * @docs-private
43
+ */
44
+ function _animationsDisabled() {
45
+ return _getAnimationsState() !== 'enabled';
46
+ }
47
+
48
+ /**
49
+ * Generated bundle index. Do not edit.
50
+ */
51
+
52
+ export { AnimationCurves, AnimationDurations, CUTE_WIDGETS_ANIMATIONS, _animationsDisabled, _getAnimationsState };
53
+ //# sourceMappingURL=cute-widgets-base-core-animation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cute-widgets-base-core-animation.mjs","sources":["../../../../projects/cute-widgets/base/core/animation/src/animation.ts","../../../../projects/cute-widgets/base/core/animation/cute-widgets-base-core-animation.ts"],"sourcesContent":["import {MediaMatcher} from '@angular/cdk/layout';\r\nimport {ANIMATION_MODULE_TYPE, inject, InjectionToken} from '@angular/core';\r\n\r\n/** Object used to configure the animation in Angular Material. */\r\nexport interface AnimationsConfig {\r\n /** Whether all animations should be disabled. */\r\n animationsDisabled?: boolean;\r\n}\r\n\r\n/** Injection token used to configure the animations in CuteWidgets. */\r\nexport const CUTE_WIDGETS_ANIMATIONS = new InjectionToken<AnimationsConfig>('CUTE_WIDGETS_ANIMATIONS');\r\n\r\n/**\r\n * @deprecated No longer used, will be removed.\r\n * @breaking-change 21.0.0\r\n * @docs-private\r\n */\r\nexport class AnimationCurves {\r\n static STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\r\n static DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\r\n static ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\r\n static SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\r\n}\r\n\r\n/**\r\n * @deprecated No longer used, will be removed.\r\n * @breaking-change 21.0.0\r\n * @docs-private\r\n */\r\nexport class AnimationDurations {\r\n static COMPLEX = '375ms';\r\n static ENTERING = '225ms';\r\n static EXITING = '195ms';\r\n}\r\n\r\nlet reducedMotion: boolean | null = null;\r\n\r\n/**\r\n * Gets the configured animations state.\r\n * @docs-private\r\n */\r\nexport function _getAnimationsState(): 'enabled' | 'di-disabled' | 'reduced-motion' {\r\n if (\r\n inject(CUTE_WIDGETS_ANIMATIONS, {optional: true})?.animationsDisabled ||\r\n inject(ANIMATION_MODULE_TYPE, {optional: true}) === 'NoopAnimations'\r\n ) {\r\n return 'di-disabled';\r\n }\r\n\r\n reducedMotion ??= inject(MediaMatcher).matchMedia('(prefers-reduced-motion)').matches;\r\n return reducedMotion ? 'reduced-motion' : 'enabled';\r\n}\r\n\r\n/**\r\n * Returns whether animations have been disabled by DI. Must be called in a DI context.\r\n * @docs-private\r\n */\r\nexport function _animationsDisabled(): boolean {\r\n return _getAnimationsState() !== 'enabled';\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AASA;MACa,uBAAuB,GAAG,IAAI,cAAc,CAAmB,yBAAyB;AAErG;;;;AAIG;MACU,eAAe,CAAA;aACnB,IAAA,CAAA,cAAc,GAAG,6BAA6B,CAAC;aAC/C,IAAA,CAAA,kBAAkB,GAAG,6BAA6B,CAAC;aACnD,IAAA,CAAA,kBAAkB,GAAG,2BAA2B,CAAC;aACjD,IAAA,CAAA,WAAW,GAAG,6BAA6B,CAAC;;AAGrD;;;;AAIG;MACU,kBAAkB,CAAA;aACtB,IAAA,CAAA,OAAO,GAAG,OAAO,CAAC;aAClB,IAAA,CAAA,QAAQ,GAAG,OAAO,CAAC;aACnB,IAAA,CAAA,OAAO,GAAG,OAAO,CAAC;;AAG3B,IAAI,aAAa,GAAmB,IAAI;AAExC;;;AAGG;SACa,mBAAmB,GAAA;IACjC,IACE,MAAM,CAAC,uBAAuB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,kBAAkB;AACrE,QAAA,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,KAAK,gBAAgB,EACpE;AACA,QAAA,OAAO,aAAa;IACtB;AAEA,IAAA,aAAa,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,OAAO;IACrF,OAAO,aAAa,GAAG,gBAAgB,GAAG,SAAS;AACrD;AAEA;;;AAGG;SACa,mBAAmB,GAAA;AACjC,IAAA,OAAO,mBAAmB,EAAE,KAAK,SAAS;AAC5C;;AC3DA;;AAEG;;;;"}