@raqm/ui 0.0.0-stage → 0.1.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 (178) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +28 -0
  4. package/README.md +125 -3
  5. package/combobox/README.md +17 -0
  6. package/fesm2022/raqm-ui-accordion.mjs +414 -0
  7. package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
  8. package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
  9. package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/raqm-ui-alert.mjs +195 -0
  11. package/fesm2022/raqm-ui-alert.mjs.map +1 -0
  12. package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
  13. package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
  14. package/fesm2022/raqm-ui-attachment.mjs +435 -0
  15. package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
  16. package/fesm2022/raqm-ui-avatar.mjs +337 -0
  17. package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
  18. package/fesm2022/raqm-ui-badge.mjs +68 -0
  19. package/fesm2022/raqm-ui-badge.mjs.map +1 -0
  20. package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
  21. package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/raqm-ui-button-group.mjs +138 -0
  23. package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
  24. package/fesm2022/raqm-ui-button.mjs +295 -0
  25. package/fesm2022/raqm-ui-button.mjs.map +1 -0
  26. package/fesm2022/raqm-ui-calendar.mjs +1394 -0
  27. package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
  28. package/fesm2022/raqm-ui-card.mjs +331 -0
  29. package/fesm2022/raqm-ui-card.mjs.map +1 -0
  30. package/fesm2022/raqm-ui-carousel.mjs +410 -0
  31. package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
  32. package/fesm2022/raqm-ui-checkbox.mjs +86 -0
  33. package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
  34. package/fesm2022/raqm-ui-collapsible.mjs +266 -0
  35. package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
  36. package/fesm2022/raqm-ui-combobox.mjs +1584 -0
  37. package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
  38. package/fesm2022/raqm-ui-command.mjs +1210 -0
  39. package/fesm2022/raqm-ui-command.mjs.map +1 -0
  40. package/fesm2022/raqm-ui-context-menu.mjs +723 -0
  41. package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
  42. package/fesm2022/raqm-ui-dialog.mjs +1214 -0
  43. package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
  44. package/fesm2022/raqm-ui-drawer.mjs +687 -0
  45. package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
  46. package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
  47. package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
  48. package/fesm2022/raqm-ui-empty.mjs +272 -0
  49. package/fesm2022/raqm-ui-empty.mjs.map +1 -0
  50. package/fesm2022/raqm-ui-field.mjs +517 -0
  51. package/fesm2022/raqm-ui-field.mjs.map +1 -0
  52. package/fesm2022/raqm-ui-hover-card.mjs +828 -0
  53. package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
  54. package/fesm2022/raqm-ui-input-group.mjs +270 -0
  55. package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
  56. package/fesm2022/raqm-ui-input-otp.mjs +788 -0
  57. package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
  58. package/fesm2022/raqm-ui-input.mjs +73 -0
  59. package/fesm2022/raqm-ui-input.mjs.map +1 -0
  60. package/fesm2022/raqm-ui-item.mjs +495 -0
  61. package/fesm2022/raqm-ui-item.mjs.map +1 -0
  62. package/fesm2022/raqm-ui-kbd.mjs +80 -0
  63. package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
  64. package/fesm2022/raqm-ui-label.mjs +44 -0
  65. package/fesm2022/raqm-ui-label.mjs.map +1 -0
  66. package/fesm2022/raqm-ui-menubar.mjs +536 -0
  67. package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
  68. package/fesm2022/raqm-ui-native-select.mjs +131 -0
  69. package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
  70. package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
  71. package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
  72. package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
  73. package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
  74. package/fesm2022/raqm-ui-pagination.mjs +440 -0
  75. package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
  76. package/fesm2022/raqm-ui-popover.mjs +1495 -0
  77. package/fesm2022/raqm-ui-popover.mjs.map +1 -0
  78. package/fesm2022/raqm-ui-progress.mjs +369 -0
  79. package/fesm2022/raqm-ui-progress.mjs.map +1 -0
  80. package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
  81. package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
  82. package/fesm2022/raqm-ui-radio-group.mjs +151 -0
  83. package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
  84. package/fesm2022/raqm-ui-resizable.mjs +439 -0
  85. package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
  86. package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
  87. package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
  88. package/fesm2022/raqm-ui-select.mjs +1073 -0
  89. package/fesm2022/raqm-ui-select.mjs.map +1 -0
  90. package/fesm2022/raqm-ui-separator.mjs +103 -0
  91. package/fesm2022/raqm-ui-separator.mjs.map +1 -0
  92. package/fesm2022/raqm-ui-sheet.mjs +411 -0
  93. package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
  94. package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
  95. package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
  96. package/fesm2022/raqm-ui-skeleton.mjs +50 -0
  97. package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
  98. package/fesm2022/raqm-ui-slider.mjs +609 -0
  99. package/fesm2022/raqm-ui-slider.mjs.map +1 -0
  100. package/fesm2022/raqm-ui-spinner.mjs +137 -0
  101. package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
  102. package/fesm2022/raqm-ui-switch.mjs +109 -0
  103. package/fesm2022/raqm-ui-switch.mjs.map +1 -0
  104. package/fesm2022/raqm-ui-table.mjs +271 -0
  105. package/fesm2022/raqm-ui-table.mjs.map +1 -0
  106. package/fesm2022/raqm-ui-tabs.mjs +536 -0
  107. package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
  108. package/fesm2022/raqm-ui-textarea.mjs +37 -0
  109. package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
  110. package/fesm2022/raqm-ui-toast.mjs +918 -0
  111. package/fesm2022/raqm-ui-toast.mjs.map +1 -0
  112. package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
  113. package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
  114. package/fesm2022/raqm-ui-toggle.mjs +158 -0
  115. package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
  116. package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
  117. package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
  118. package/fesm2022/raqm-ui.mjs +50 -0
  119. package/input-otp/README.md +12 -0
  120. package/package.json +275 -3
  121. package/styles/theme.css +4322 -0
  122. package/types/raqm-ui-accordion.d.ts +124 -0
  123. package/types/raqm-ui-alert-dialog.d.ts +81 -0
  124. package/types/raqm-ui-alert.d.ts +29 -0
  125. package/types/raqm-ui-aspect-ratio.d.ts +13 -0
  126. package/types/raqm-ui-attachment.d.ts +72 -0
  127. package/types/raqm-ui-avatar.d.ts +67 -0
  128. package/types/raqm-ui-badge.d.ts +20 -0
  129. package/types/raqm-ui-breadcrumb.d.ts +35 -0
  130. package/types/raqm-ui-button-group.d.ts +27 -0
  131. package/types/raqm-ui-button.d.ts +80 -0
  132. package/types/raqm-ui-calendar.d.ts +359 -0
  133. package/types/raqm-ui-card.d.ts +34 -0
  134. package/types/raqm-ui-carousel.d.ts +81 -0
  135. package/types/raqm-ui-checkbox.d.ts +24 -0
  136. package/types/raqm-ui-collapsible.d.ts +72 -0
  137. package/types/raqm-ui-combobox.d.ts +405 -0
  138. package/types/raqm-ui-command.d.ts +256 -0
  139. package/types/raqm-ui-context-menu.d.ts +196 -0
  140. package/types/raqm-ui-dialog.d.ts +232 -0
  141. package/types/raqm-ui-drawer.d.ts +121 -0
  142. package/types/raqm-ui-dropdown-menu.d.ts +319 -0
  143. package/types/raqm-ui-empty.d.ts +35 -0
  144. package/types/raqm-ui-field.d.ts +88 -0
  145. package/types/raqm-ui-hover-card.d.ts +139 -0
  146. package/types/raqm-ui-input-group.d.ts +45 -0
  147. package/types/raqm-ui-input-otp.d.ts +197 -0
  148. package/types/raqm-ui-input.d.ts +16 -0
  149. package/types/raqm-ui-item.d.ts +71 -0
  150. package/types/raqm-ui-kbd.d.ts +12 -0
  151. package/types/raqm-ui-label.d.ts +6 -0
  152. package/types/raqm-ui-menubar.d.ts +159 -0
  153. package/types/raqm-ui-native-select.d.ts +23 -0
  154. package/types/raqm-ui-navigation-menu.d.ts +230 -0
  155. package/types/raqm-ui-overlay-internal.d.ts +5 -0
  156. package/types/raqm-ui-pagination.d.ts +84 -0
  157. package/types/raqm-ui-popover.d.ts +235 -0
  158. package/types/raqm-ui-progress.d.ts +79 -0
  159. package/types/raqm-ui-questionnaire.d.ts +217 -0
  160. package/types/raqm-ui-radio-group.d.ts +48 -0
  161. package/types/raqm-ui-resizable.d.ts +98 -0
  162. package/types/raqm-ui-scroll-area.d.ts +132 -0
  163. package/types/raqm-ui-select.d.ts +205 -0
  164. package/types/raqm-ui-separator.d.ts +21 -0
  165. package/types/raqm-ui-sheet.d.ts +79 -0
  166. package/types/raqm-ui-sidebar.d.ts +285 -0
  167. package/types/raqm-ui-skeleton.d.ts +6 -0
  168. package/types/raqm-ui-slider.d.ts +129 -0
  169. package/types/raqm-ui-spinner.d.ts +32 -0
  170. package/types/raqm-ui-switch.d.ts +32 -0
  171. package/types/raqm-ui-table.d.ts +36 -0
  172. package/types/raqm-ui-tabs.d.ts +154 -0
  173. package/types/raqm-ui-textarea.d.ts +6 -0
  174. package/types/raqm-ui-toast.d.ts +190 -0
  175. package/types/raqm-ui-toggle-group.d.ts +167 -0
  176. package/types/raqm-ui-toggle.d.ts +42 -0
  177. package/types/raqm-ui-tooltip.d.ts +207 -0
  178. package/types/raqm-ui.d.ts +50 -0
@@ -0,0 +1,266 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, Directive, ElementRef, InjectionToken, booleanAttribute, computed, inject, input, isDevMode, model } from "@angular/core";
3
+ const RAQM_COLLAPSIBLE = new InjectionToken("RaqmCollapsible");
4
+ let nextCollapsibleId = 0;
5
+ var RaqmCollapsibleComponent = class RaqmCollapsibleComponent {
6
+ openValue = model(void 0, {
7
+ ...ngDevMode ? { debugName: "openValue" } : /* istanbul ignore next */ {},
8
+ alias: "open"
9
+ });
10
+ defaultOpen = input(false, {
11
+ ...ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {},
12
+ transform: booleanAttribute
13
+ });
14
+ disabled = input(false, {
15
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
16
+ transform: booleanAttribute
17
+ });
18
+ instanceId = `raqm-collapsible-${++nextCollapsibleId}`;
19
+ triggerId = `${this.instanceId}-trigger`;
20
+ contentId = `${this.instanceId}-content`;
21
+ open = computed(() => this.openValue() ?? this.defaultOpen(), ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
22
+ toggle() {
23
+ if (this.disabled()) return;
24
+ this.openValue.set(!this.open());
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({
27
+ minVersion: "12.0.0",
28
+ version: "22.2.2",
29
+ ngImport: i0,
30
+ type: RaqmCollapsibleComponent,
31
+ deps: [],
32
+ target: i0.ɵɵFactoryTarget.Component
33
+ });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({
35
+ minVersion: "17.1.0",
36
+ version: "22.2.2",
37
+ type: RaqmCollapsibleComponent,
38
+ isStandalone: true,
39
+ selector: "raqm-collapsible",
40
+ inputs: {
41
+ openValue: {
42
+ classPropertyName: "openValue",
43
+ publicName: "open",
44
+ isSignal: true,
45
+ isRequired: false,
46
+ transformFunction: null
47
+ },
48
+ defaultOpen: {
49
+ classPropertyName: "defaultOpen",
50
+ publicName: "defaultOpen",
51
+ isSignal: true,
52
+ isRequired: false,
53
+ transformFunction: null
54
+ },
55
+ disabled: {
56
+ classPropertyName: "disabled",
57
+ publicName: "disabled",
58
+ isSignal: true,
59
+ isRequired: false,
60
+ transformFunction: null
61
+ }
62
+ },
63
+ outputs: { openValue: "openChange" },
64
+ host: {
65
+ properties: { "attr.data-raqm-state": "open() ? \"open\" : \"closed\"" },
66
+ classAttribute: "raqm-collapsible"
67
+ },
68
+ providers: [{
69
+ provide: RAQM_COLLAPSIBLE,
70
+ useExisting: RaqmCollapsibleComponent
71
+ }],
72
+ ngImport: i0,
73
+ template: "<ng-content />",
74
+ isInline: true,
75
+ styles: [":host{display:block}\n"],
76
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
77
+ });
78
+ };
79
+ i0.ɵɵngDeclareClassMetadata({
80
+ minVersion: "12.0.0",
81
+ version: "22.2.2",
82
+ ngImport: i0,
83
+ type: RaqmCollapsibleComponent,
84
+ decorators: [{
85
+ type: Component,
86
+ args: [{
87
+ selector: "raqm-collapsible",
88
+ template: "<ng-content />",
89
+ changeDetection: ChangeDetectionStrategy.OnPush,
90
+ host: {
91
+ class: "raqm-collapsible",
92
+ "[attr.data-raqm-state]": "open() ? \"open\" : \"closed\""
93
+ },
94
+ providers: [{
95
+ provide: RAQM_COLLAPSIBLE,
96
+ useExisting: RaqmCollapsibleComponent
97
+ }],
98
+ styles: [":host{display:block}\n"]
99
+ }]
100
+ }],
101
+ propDecorators: {
102
+ openValue: [{
103
+ type: i0.Input,
104
+ args: [{
105
+ isSignal: true,
106
+ alias: "open",
107
+ required: false
108
+ }]
109
+ }, {
110
+ type: i0.Output,
111
+ args: ["openChange"]
112
+ }],
113
+ defaultOpen: [{
114
+ type: i0.Input,
115
+ args: [{
116
+ isSignal: true,
117
+ alias: "defaultOpen",
118
+ required: false
119
+ }]
120
+ }],
121
+ disabled: [{
122
+ type: i0.Input,
123
+ args: [{
124
+ isSignal: true,
125
+ alias: "disabled",
126
+ required: false
127
+ }]
128
+ }]
129
+ }
130
+ });
131
+ var RaqmCollapsibleTriggerDirective = class RaqmCollapsibleTriggerDirective {
132
+ host = inject(ElementRef);
133
+ authoredDisabled = this.host.nativeElement.disabled;
134
+ collapsible = inject(RAQM_COLLAPSIBLE, { optional: true });
135
+ open = computed(() => this.collapsible?.open() ?? false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
136
+ isDisabled = computed(() => this.collapsible?.disabled() ?? false, ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
137
+ disabledAttribute = computed(() => this.isDisabled() || this.authoredDisabled ? "" : null, ...ngDevMode ? [{ debugName: "disabledAttribute" }] : /* istanbul ignore next */ []);
138
+ triggerId = computed(() => this.collapsible?.triggerId ?? null, ...ngDevMode ? [{ debugName: "triggerId" }] : /* istanbul ignore next */ []);
139
+ contentId = computed(() => this.collapsible?.contentId ?? null, ...ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []);
140
+ constructor() {
141
+ if (isDevMode() && this.collapsible === null) console.error("[raqm-collapsible-trigger] No parent <raqm-collapsible> found; the trigger cannot toggle a panel.");
142
+ }
143
+ onClick() {
144
+ this.collapsible?.toggle();
145
+ }
146
+ static ɵfac = i0.ɵɵngDeclareFactory({
147
+ minVersion: "12.0.0",
148
+ version: "22.2.2",
149
+ ngImport: i0,
150
+ type: RaqmCollapsibleTriggerDirective,
151
+ deps: [],
152
+ target: i0.ɵɵFactoryTarget.Directive
153
+ });
154
+ static ɵdir = i0.ɵɵngDeclareDirective({
155
+ minVersion: "14.0.0",
156
+ version: "22.2.2",
157
+ type: RaqmCollapsibleTriggerDirective,
158
+ isStandalone: true,
159
+ selector: "button[raqm-collapsible-trigger]",
160
+ host: {
161
+ attributes: { "type": "button" },
162
+ listeners: { "click": "onClick()" },
163
+ properties: {
164
+ "attr.id": "triggerId()",
165
+ "attr.aria-expanded": "open() ? \"true\" : \"false\"",
166
+ "attr.aria-controls": "contentId()",
167
+ "attr.data-raqm-state": "open() ? \"open\" : \"closed\"",
168
+ "attr.disabled": "disabledAttribute()"
169
+ },
170
+ classAttribute: "raqm-collapsible-trigger"
171
+ },
172
+ ngImport: i0
173
+ });
174
+ };
175
+ i0.ɵɵngDeclareClassMetadata({
176
+ minVersion: "12.0.0",
177
+ version: "22.2.2",
178
+ ngImport: i0,
179
+ type: RaqmCollapsibleTriggerDirective,
180
+ decorators: [{
181
+ type: Directive,
182
+ args: [{
183
+ selector: "button[raqm-collapsible-trigger]",
184
+ host: {
185
+ class: "raqm-collapsible-trigger",
186
+ type: "button",
187
+ "[attr.id]": "triggerId()",
188
+ "[attr.aria-expanded]": "open() ? \"true\" : \"false\"",
189
+ "[attr.aria-controls]": "contentId()",
190
+ "[attr.data-raqm-state]": "open() ? \"open\" : \"closed\"",
191
+ "[attr.disabled]": "disabledAttribute()",
192
+ "(click)": "onClick()"
193
+ }
194
+ }]
195
+ }],
196
+ ctorParameters: () => []
197
+ });
198
+ var RaqmCollapsibleContentComponent = class RaqmCollapsibleContentComponent {
199
+ collapsible = inject(RAQM_COLLAPSIBLE, { optional: true });
200
+ open = computed(() => this.collapsible?.open() ?? true, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
201
+ contentId = computed(() => this.collapsible?.contentId ?? null, ...ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []);
202
+ triggerId = computed(() => this.collapsible?.triggerId ?? null, ...ngDevMode ? [{ debugName: "triggerId" }] : /* istanbul ignore next */ []);
203
+ constructor() {
204
+ if (isDevMode() && this.collapsible === null) console.error("[raqm-collapsible-content] No parent <raqm-collapsible> found; the panel cannot know its open state.");
205
+ }
206
+ static ɵfac = i0.ɵɵngDeclareFactory({
207
+ minVersion: "12.0.0",
208
+ version: "22.2.2",
209
+ ngImport: i0,
210
+ type: RaqmCollapsibleContentComponent,
211
+ deps: [],
212
+ target: i0.ɵɵFactoryTarget.Component
213
+ });
214
+ static ɵcmp = i0.ɵɵngDeclareComponent({
215
+ minVersion: "14.0.0",
216
+ version: "22.2.2",
217
+ type: RaqmCollapsibleContentComponent,
218
+ isStandalone: true,
219
+ selector: "raqm-collapsible-content",
220
+ host: {
221
+ properties: {
222
+ "attr.id": "contentId()",
223
+ "attr.aria-labelledby": "triggerId()",
224
+ "attr.data-raqm-state": "open() ? \"open\" : \"closed\"",
225
+ "attr.hidden": "open() ? null : \"\""
226
+ },
227
+ classAttribute: "raqm-collapsible-content"
228
+ },
229
+ ngImport: i0,
230
+ template: "<ng-content />",
231
+ isInline: true,
232
+ styles: [":host{display:block}:host([hidden]){display:none}\n"],
233
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
234
+ });
235
+ };
236
+ i0.ɵɵngDeclareClassMetadata({
237
+ minVersion: "12.0.0",
238
+ version: "22.2.2",
239
+ ngImport: i0,
240
+ type: RaqmCollapsibleContentComponent,
241
+ decorators: [{
242
+ type: Component,
243
+ args: [{
244
+ selector: "raqm-collapsible-content",
245
+ template: "<ng-content />",
246
+ changeDetection: ChangeDetectionStrategy.OnPush,
247
+ host: {
248
+ class: "raqm-collapsible-content",
249
+ "[attr.id]": "contentId()",
250
+ "[attr.aria-labelledby]": "triggerId()",
251
+ "[attr.data-raqm-state]": "open() ? \"open\" : \"closed\"",
252
+ "[attr.hidden]": "open() ? null : \"\""
253
+ },
254
+ styles: [":host{display:block}:host([hidden]){display:none}\n"]
255
+ }]
256
+ }],
257
+ ctorParameters: () => []
258
+ });
259
+ const RaqmCollapsible = [
260
+ RaqmCollapsibleComponent,
261
+ RaqmCollapsibleTriggerDirective,
262
+ RaqmCollapsibleContentComponent
263
+ ];
264
+ export { RaqmCollapsible, RaqmCollapsibleComponent, RaqmCollapsibleContentComponent, RaqmCollapsibleTriggerDirective };
265
+
266
+ //# sourceMappingURL=raqm-ui-collapsible.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raqm-ui-collapsible.mjs","names":[],"sources":["../../../projects/ui/collapsible/collapsible.ts","../../../projects/ui/collapsible/public-api.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n InjectionToken,\r\n Signal,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n isDevMode,\r\n model,\r\n} from '@angular/core';\r\n\r\nexport interface RaqmCollapsibleContext {\r\n /** The model when set, otherwise the seed. */\r\n readonly open: Signal<boolean>;\r\n readonly disabled: Signal<boolean>;\r\n readonly triggerId: string;\r\n readonly contentId: string;\r\n toggle(): void;\r\n}\r\n\r\n/** Root token; injected optionally so a misplaced part renders and only logs a dev-mode error. */\r\nexport const RAQM_COLLAPSIBLE = new InjectionToken<RaqmCollapsibleContext>('RaqmCollapsible');\r\n\r\nlet nextCollapsibleId = 0;\r\n\r\n/** Collapsible root; carries no ARIA role. `open` is the only change channel and the seed stays silent until interaction. */\r\n@Component({\r\n selector: 'raqm-collapsible',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-collapsible',\r\n '[attr.data-raqm-state]': 'open() ? \"open\" : \"closed\"',\r\n },\r\n providers: [{ provide: RAQM_COLLAPSIBLE, useExisting: RaqmCollapsibleComponent }],\r\n})\r\nexport class RaqmCollapsibleComponent implements RaqmCollapsibleContext {\r\n /** `undefined` lets the seed apply; any boolean (including `false`) takes over permanently. */\r\n readonly openValue = model<boolean | undefined>(undefined, { alias: 'open' });\r\n\r\n readonly defaultOpen = input(false, { transform: booleanAttribute });\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n private readonly instanceId = `raqm-collapsible-${++nextCollapsibleId}`;\r\n\r\n // Owned id pair; the trigger's `aria-controls` and the panel's `aria-labelledby` point at them.\r\n readonly triggerId = `${this.instanceId}-trigger`;\r\n\r\n readonly contentId = `${this.instanceId}-content`;\r\n\r\n readonly open = computed(() => this.openValue() ?? this.defaultOpen());\r\n\r\n /** A disabled root is a no-op; a seeded `defaultOpen` closes on first activation. */\r\n toggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n this.openValue.set(!this.open());\r\n }\r\n}\r\n\r\n/** Collapsible trigger on the real `<button>`; a disabled root publishes the native `disabled` attribute. */\r\n@Directive({\r\n selector: 'button[raqm-collapsible-trigger]',\r\n host: {\r\n class: 'raqm-collapsible-trigger',\r\n // A disclosure button never submits a form.\r\n type: 'button',\r\n '[attr.id]': 'triggerId()',\r\n '[attr.aria-expanded]': 'open() ? \"true\" : \"false\"',\r\n '[attr.aria-controls]': 'contentId()',\r\n '[attr.data-raqm-state]': 'open() ? \"open\" : \"closed\"',\r\n // The root's state OR-ed with an app-authored native `disabled`.\r\n '[attr.disabled]': 'disabledAttribute()',\r\n '(click)': 'onClick()',\r\n },\r\n})\r\nexport class RaqmCollapsibleTriggerDirective {\r\n private readonly host = inject<ElementRef<HTMLButtonElement>>(ElementRef);\r\n\r\n // Read at creation: the root can add its own disabled state but never clears this one.\r\n private readonly authoredDisabled = this.host.nativeElement.disabled;\r\n\r\n private readonly collapsible = inject<RaqmCollapsibleContext | null>(RAQM_COLLAPSIBLE, {\r\n optional: true,\r\n });\r\n\r\n protected readonly open = computed(() => this.collapsible?.open() ?? false);\r\n\r\n protected readonly isDisabled = computed(() => this.collapsible?.disabled() ?? false);\r\n\r\n protected readonly disabledAttribute = computed(() =>\r\n this.isDisabled() || this.authoredDisabled ? '' : null,\r\n );\r\n\r\n protected readonly triggerId = computed(() => this.collapsible?.triggerId ?? null);\r\n\r\n protected readonly contentId = computed(() => this.collapsible?.contentId ?? null);\r\n\r\n constructor() {\r\n if (isDevMode() && this.collapsible === null) {\r\n console.error(\r\n '[raqm-collapsible-trigger] No parent <raqm-collapsible> found; the trigger cannot toggle a panel.',\r\n );\r\n }\r\n }\r\n\r\n protected onClick(): void {\r\n this.collapsible?.toggle();\r\n }\r\n}\r\n\r\n/** Collapsible panel; no role or inputs, paired by `aria-labelledby`, mounted always and hidden with `hidden` while closed. */\r\n@Component({\r\n selector: 'raqm-collapsible-content',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-collapsible-content',\r\n '[attr.id]': 'contentId()',\r\n '[attr.aria-labelledby]': 'triggerId()',\r\n '[attr.data-raqm-state]': 'open() ? \"open\" : \"closed\"',\r\n // Stays mounted; `hidden` is what collapses it.\r\n '[attr.hidden]': 'open() ? null : \"\"',\r\n },\r\n})\r\nexport class RaqmCollapsibleContentComponent {\r\n private readonly collapsible = inject<RaqmCollapsibleContext | null>(RAQM_COLLAPSIBLE, {\r\n optional: true,\r\n });\r\n\r\n protected readonly open = computed(() => this.collapsible?.open() ?? true);\r\n\r\n protected readonly contentId = computed(() => this.collapsible?.contentId ?? null);\r\n\r\n protected readonly triggerId = computed(() => this.collapsible?.triggerId ?? null);\r\n\r\n constructor() {\r\n if (isDevMode() && this.collapsible === null) {\r\n console.error(\r\n '[raqm-collapsible-content] No parent <raqm-collapsible> found; the panel cannot know its open state.',\r\n );\r\n }\r\n }\r\n}\r\n","// Public API for the `@raqm/ui/collapsible` secondary entry point; also re-exported by the root.\r\nimport {\r\n RaqmCollapsibleComponent,\r\n RaqmCollapsibleContentComponent,\r\n RaqmCollapsibleTriggerDirective,\r\n} from './collapsible';\r\n\r\nexport {\r\n RaqmCollapsibleComponent,\r\n RaqmCollapsibleContentComponent,\r\n RaqmCollapsibleTriggerDirective,\r\n};\r\n\r\n// A nested readonly array is accepted by Angular `imports`, so the whole family imports as one entry.\r\nexport const RaqmCollapsible = [\r\n RaqmCollapsibleComponent,\r\n RaqmCollapsibleTriggerDirective,\r\n RaqmCollapsibleContentComponent,\r\n] as const;\r\n"],"mappings":"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"}