@radix-ng/primitives 0.5.0 → 0.7.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 (183) hide show
  1. package/alert-dialog/README.md +1 -0
  2. package/alert-dialog/index.d.ts +6 -0
  3. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +7 -0
  4. package/alert-dialog/src/alert-dialog-content.directive.d.ts +8 -0
  5. package/alert-dialog/src/alert-dialog-root.directive.d.ts +9 -0
  6. package/alert-dialog/src/alert-dialog-title.directive.d.ts +5 -0
  7. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +7 -0
  8. package/alert-dialog/src/alert-dialog.service.d.ts +14 -0
  9. package/avatar/index.d.ts +3 -1
  10. package/avatar/src/avatar-fallback.directive.d.ts +10 -17
  11. package/avatar/src/avatar-image.directive.d.ts +10 -11
  12. package/avatar/src/avatar-root.directive.d.ts +21 -0
  13. package/avatar/src/avatar.config.d.ts +3 -2
  14. package/checkbox/src/checkbox.directive.d.ts +5 -3
  15. package/collapsible/README.md +1 -0
  16. package/collapsible/index.d.ts +3 -0
  17. package/collapsible/src/collapsible-content.directive.d.ts +11 -0
  18. package/collapsible/src/collapsible-root.directive.d.ts +52 -0
  19. package/collapsible/src/collapsible-trigger.directive.d.ts +26 -0
  20. package/esm2022/alert-dialog/index.mjs +7 -0
  21. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +5 -0
  22. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +24 -0
  23. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +26 -0
  24. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +24 -0
  25. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +14 -0
  26. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +24 -0
  27. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +45 -0
  28. package/esm2022/avatar/index.mjs +2 -2
  29. package/esm2022/avatar/src/avatar-fallback.directive.mjs +23 -30
  30. package/esm2022/avatar/src/avatar-image.directive.mjs +29 -31
  31. package/esm2022/avatar/src/avatar-root.directive.mjs +38 -0
  32. package/esm2022/avatar/src/avatar.config.mjs +2 -2
  33. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +3 -3
  34. package/esm2022/checkbox/src/checkbox.directive.mjs +16 -6
  35. package/esm2022/collapsible/index.mjs +4 -0
  36. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +5 -0
  37. package/esm2022/collapsible/src/collapsible-content.directive.mjs +26 -0
  38. package/esm2022/collapsible/src/collapsible-root.directive.mjs +114 -0
  39. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +49 -0
  40. package/esm2022/label/index.mjs +2 -2
  41. package/esm2022/label/src/label-root.directive.mjs +48 -0
  42. package/esm2022/progress/index.mjs +2 -2
  43. package/esm2022/progress/src/progress-indicator.directive.mjs +11 -10
  44. package/esm2022/progress/src/progress-root.directive.mjs +71 -0
  45. package/esm2022/radio/index.mjs +2 -4
  46. package/esm2022/radio/src/radio-indicator.directive.mjs +8 -13
  47. package/esm2022/radio/src/radio-item.directive.mjs +27 -42
  48. package/esm2022/radio/src/radio-root.directive.mjs +104 -0
  49. package/esm2022/roving-focus/index.mjs +1 -3
  50. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +9 -16
  51. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +21 -26
  52. package/esm2022/separator/src/separator.directive.mjs +12 -17
  53. package/esm2022/switch/index.mjs +3 -3
  54. package/esm2022/switch/src/switch-input.directive.mjs +30 -0
  55. package/esm2022/switch/src/switch-root.directive.mjs +71 -0
  56. package/esm2022/switch/src/switch-thumb.directive.mjs +10 -12
  57. package/esm2022/toggle/index.mjs +2 -2
  58. package/esm2022/toggle/src/toggle-root.directive.mjs +49 -0
  59. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +9 -14
  60. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +4 -4
  61. package/esm2022/toggle-group/src/toggle-group.directive.mjs +9 -12
  62. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +150 -0
  63. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -0
  64. package/fesm2022/radix-ng-primitives-avatar.mjs +79 -90
  65. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-checkbox.mjs +18 -8
  67. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-collapsible.mjs +190 -0
  69. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -0
  70. package/fesm2022/radix-ng-primitives-label.mjs +20 -32
  71. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-progress.mjs +55 -49
  73. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-radio.mjs +69 -101
  75. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-roving-focus.mjs +19 -42
  77. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-separator.mjs +12 -17
  79. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +77 -110
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-toggle-group.mjs +19 -27
  83. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-toggle.mjs +16 -32
  85. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  86. package/label/index.d.ts +1 -1
  87. package/label/src/label-root.directive.d.ts +13 -0
  88. package/package.json +14 -21
  89. package/progress/index.d.ts +2 -1
  90. package/progress/src/progress-indicator.directive.d.ts +2 -2
  91. package/progress/src/progress-root.directive.d.ts +29 -0
  92. package/radio/index.d.ts +1 -3
  93. package/radio/src/radio-indicator.directive.d.ts +3 -9
  94. package/radio/src/radio-item.directive.d.ts +9 -28
  95. package/radio/src/{radio-group.directive.d.ts → radio-root.directive.d.ts} +24 -17
  96. package/roving-focus/index.d.ts +0 -2
  97. package/roving-focus/src/roving-focus-group.directive.d.ts +4 -6
  98. package/roving-focus/src/roving-focus-item.directive.d.ts +6 -8
  99. package/separator/src/separator.directive.d.ts +14 -8
  100. package/switch/index.d.ts +3 -2
  101. package/switch/src/switch-input.directive.d.ts +6 -0
  102. package/switch/src/switch-root.directive.d.ts +34 -0
  103. package/switch/src/switch-thumb.directive.d.ts +2 -5
  104. package/toggle/index.d.ts +2 -1
  105. package/toggle/src/toggle-root.directive.d.ts +32 -0
  106. package/toggle-group/src/toggle-group-button.directive.d.ts +1 -4
  107. package/toggle-group/src/toggle-group-multi.directive.d.ts +1 -1
  108. package/toggle-group/src/toggle-group.directive.d.ts +2 -2
  109. package/accordion/README.md +0 -3
  110. package/accordion/index.d.ts +0 -7
  111. package/accordion/src/accordion/accordion.directive.d.ts +0 -64
  112. package/accordion/src/accordion/accordion.token.d.ts +0 -4
  113. package/accordion/src/accordion-content/accordion-content.directive.d.ts +0 -44
  114. package/accordion/src/accordion-header/accordion-header.directive.d.ts +0 -6
  115. package/accordion/src/accordion-item/accordion-item.directive.d.ts +0 -42
  116. package/accordion/src/accordion-item/accordion-item.token.d.ts +0 -4
  117. package/accordion/src/accordion-state.directive.d.ts +0 -28
  118. package/accordion/src/accordion-trigger/accordion-trigger.directive.d.ts +0 -23
  119. package/accordion/src/accordion.config.d.ts +0 -25
  120. package/avatar/src/avatar.directive.d.ts +0 -22
  121. package/avatar/src/avatar.token.d.ts +0 -4
  122. package/esm2022/accordion/index.mjs +0 -8
  123. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +0 -5
  124. package/esm2022/accordion/src/accordion/accordion.directive.mjs +0 -108
  125. package/esm2022/accordion/src/accordion/accordion.token.mjs +0 -6
  126. package/esm2022/accordion/src/accordion-content/accordion-content.directive.mjs +0 -75
  127. package/esm2022/accordion/src/accordion-header/accordion-header.directive.mjs +0 -17
  128. package/esm2022/accordion/src/accordion-item/accordion-item.directive.mjs +0 -81
  129. package/esm2022/accordion/src/accordion-item/accordion-item.token.mjs +0 -6
  130. package/esm2022/accordion/src/accordion-state.directive.mjs +0 -49
  131. package/esm2022/accordion/src/accordion-trigger/accordion-trigger.directive.mjs +0 -49
  132. package/esm2022/accordion/src/accordion.config.mjs +0 -27
  133. package/esm2022/avatar/src/avatar.directive.mjs +0 -38
  134. package/esm2022/avatar/src/avatar.token.mjs +0 -6
  135. package/esm2022/label/src/label.directive.mjs +0 -60
  136. package/esm2022/overlay/index.mjs +0 -5
  137. package/esm2022/overlay/radix-ng-primitives-overlay.mjs +0 -5
  138. package/esm2022/overlay/src/overlay-arrow.directive.mjs +0 -59
  139. package/esm2022/overlay/src/overlay-arrow.token.mjs +0 -3
  140. package/esm2022/overlay/src/overlay-trigger.directive.mjs +0 -279
  141. package/esm2022/overlay/src/overlay-trigger.token.mjs +0 -9
  142. package/esm2022/overlay/src/overlay.directive.mjs +0 -51
  143. package/esm2022/overlay/src/overlay.token.mjs +0 -3
  144. package/esm2022/progress/src/progress.directive.mjs +0 -62
  145. package/esm2022/progress/src/progress.token.mjs +0 -6
  146. package/esm2022/radio/src/radio-group.directive.mjs +0 -108
  147. package/esm2022/radio/src/radio-group.token.mjs +0 -6
  148. package/esm2022/radio/src/radio-item.token.mjs +0 -6
  149. package/esm2022/roving-focus/src/roving-focus-group.token.mjs +0 -9
  150. package/esm2022/roving-focus/src/roving-focus-item.token.mjs +0 -6
  151. package/esm2022/switch/src/switch.directive.mjs +0 -125
  152. package/esm2022/switch/src/switch.token.mjs +0 -6
  153. package/esm2022/toggle/src/toggle.directive.mjs +0 -65
  154. package/esm2022/visually-hidden/index.mjs +0 -2
  155. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +0 -5
  156. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +0 -42
  157. package/fesm2022/radix-ng-primitives-accordion.mjs +0 -394
  158. package/fesm2022/radix-ng-primitives-accordion.mjs.map +0 -1
  159. package/fesm2022/radix-ng-primitives-overlay.mjs +0 -399
  160. package/fesm2022/radix-ng-primitives-overlay.mjs.map +0 -1
  161. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +0 -49
  162. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +0 -1
  163. package/label/src/label.directive.d.ts +0 -19
  164. package/overlay/README.md +0 -1
  165. package/overlay/index.d.ts +0 -4
  166. package/overlay/src/overlay-arrow.directive.d.ts +0 -29
  167. package/overlay/src/overlay-arrow.token.d.ts +0 -3
  168. package/overlay/src/overlay-trigger.directive.d.ts +0 -163
  169. package/overlay/src/overlay-trigger.token.d.ts +0 -7
  170. package/overlay/src/overlay.directive.d.ts +0 -29
  171. package/overlay/src/overlay.token.d.ts +0 -3
  172. package/progress/src/progress.directive.d.ts +0 -26
  173. package/progress/src/progress.token.d.ts +0 -4
  174. package/radio/src/radio-group.token.d.ts +0 -4
  175. package/radio/src/radio-item.token.d.ts +0 -4
  176. package/roving-focus/src/roving-focus-group.token.d.ts +0 -7
  177. package/roving-focus/src/roving-focus-item.token.d.ts +0 -4
  178. package/switch/src/switch.directive.d.ts +0 -73
  179. package/switch/src/switch.token.d.ts +0 -4
  180. package/toggle/src/toggle.directive.d.ts +0 -30
  181. package/visually-hidden/README.md +0 -3
  182. package/visually-hidden/index.d.ts +0 -1
  183. package/visually-hidden/src/visually-hidden.directive.d.ts +0 -11
@@ -1,394 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, computed, Directive, ElementRef, ChangeDetectorRef, HostBinding, EventEmitter, booleanAttribute, Input, Output, HostListener, signal } from '@angular/core';
3
- import * as i2 from '@radix-ng/primitives/roving-focus';
4
- import { RdxRovingFocusItemDirective, injectRovingFocusGroup, RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';
5
-
6
- const RdxAccordionItemToken = new InjectionToken('RdxAccordionItemToken');
7
- function injectAccordionItem() {
8
- return inject(RdxAccordionItemToken);
9
- }
10
-
11
- const RdxAccordionToken = new InjectionToken('NgpAccordionToken');
12
- function injectAccordion() {
13
- return inject(RdxAccordionToken);
14
- }
15
-
16
- class RdxAccordionStateDirective {
17
- constructor() {
18
- /**
19
- * Access the accordion the trigger belongs to.
20
- */
21
- this.accordion = injectAccordion();
22
- /**
23
- * Access the item the trigger belongs to.
24
- */
25
- this.item = injectAccordionItem();
26
- /**
27
- * Determine the expanded state of the item.
28
- * @internal
29
- */
30
- this.state = computed(() => (this.item.isExpanded() ? 'open' : 'closed'));
31
- }
32
- /**
33
- * Determine the disabled state of the item.
34
- * @internal
35
- */
36
- get isDisabled() {
37
- return this.item.disabled || this.accordion.disabled;
38
- }
39
- /**
40
- * Determine the orientation of the accordion.
41
- * @internal
42
- */
43
- get orientation() {
44
- return this.accordion.orientation;
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAccordionStateDirective, isStandalone: true, host: { properties: { "attr.data-state": "state()", "attr.data-disabled": "isDisabled", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionStateDirective, decorators: [{
50
- type: Directive,
51
- args: [{
52
- standalone: true,
53
- host: {
54
- '[attr.data-state]': 'state()',
55
- '[attr.data-disabled]': 'isDisabled',
56
- '[attr.data-orientation]': 'orientation'
57
- }
58
- }]
59
- }] });
60
-
61
- class RdxAccordionContentDirective {
62
- constructor() {
63
- /**
64
- * Access the element ref.
65
- */
66
- this.elementRef = inject(ElementRef);
67
- /**
68
- * Access the change detector ref.
69
- */
70
- this.changeDetectorRef = inject(ChangeDetectorRef);
71
- /**
72
- * Access the item the content belongs to.
73
- */
74
- this.item = inject(RdxAccordionItemToken);
75
- /**
76
- * Derive the id of the content.
77
- * @internal
78
- */
79
- this.id = `${this.item.id}-content`;
80
- /**
81
- * Derive the id of the trigger.
82
- * @internal
83
- */
84
- this.labelledby = `${this.item.id}-trigger`;
85
- /**
86
- * Define the width of the content as a CSS variable, so it can be used in animations.
87
- * @internal
88
- */
89
- this.width = this.elementRef.nativeElement.scrollWidth;
90
- /**
91
- * Define the height of the content as a CSS variable, so it can be used in animations.
92
- * @internal
93
- */
94
- this.height = this.elementRef.nativeElement.scrollHeight;
95
- }
96
- ngAfterViewInit() {
97
- this.updateContentSize();
98
- }
99
- /**
100
- * Update the size of the content.
101
- */
102
- updateContentSize() {
103
- this.width = this.elementRef.nativeElement.scrollWidth;
104
- this.height = this.elementRef.nativeElement.scrollHeight;
105
- this.changeDetectorRef.detectChanges();
106
- }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
108
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAccordionContentDirective, isStandalone: true, selector: "[rdxAccordionContent]", host: { attributes: { "role": "region" }, properties: { "id": "id", "attr.aria-labelledby": "labelledby", "style.display": "!item.isExpanded() ? \"none\": \"\"", "style.--rdx-accordion-content-width.px": "this.width", "style.--rdx-accordion-content-height.px": "this.height" } }, hostDirectives: [{ directive: RdxAccordionStateDirective }], ngImport: i0 }); }
109
- }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionContentDirective, decorators: [{
111
- type: Directive,
112
- args: [{
113
- selector: '[rdxAccordionContent]',
114
- standalone: true,
115
- host: {
116
- role: 'region',
117
- '[id]': 'id',
118
- '[attr.aria-labelledby]': 'labelledby',
119
- '[style.display]': '!item.isExpanded() ? "none": ""'
120
- },
121
- hostDirectives: [RdxAccordionStateDirective]
122
- }]
123
- }], propDecorators: { width: [{
124
- type: HostBinding,
125
- args: ['style.--rdx-accordion-content-width.px']
126
- }], height: [{
127
- type: HostBinding,
128
- args: ['style.--rdx-accordion-content-height.px']
129
- }] } });
130
-
131
- class RdxAccordionHeaderDirective {
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
133
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAccordionHeaderDirective, isStandalone: true, selector: "[rdxAccordionHeader]", hostDirectives: [{ directive: RdxAccordionStateDirective }], ngImport: i0 }); }
134
- }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionHeaderDirective, decorators: [{
136
- type: Directive,
137
- args: [{
138
- selector: '[rdxAccordionHeader]',
139
- standalone: true,
140
- hostDirectives: [RdxAccordionStateDirective]
141
- }]
142
- }] });
143
-
144
- /**
145
- * A unique id for the item.
146
- */
147
- let uniqueId = 0;
148
- class RdxAccordionItemDirective {
149
- constructor() {
150
- /**
151
- * Access the accordion the item belongs to.
152
- */
153
- this.accordion = injectAccordion();
154
- /**
155
- * Determines whether the item should be expanded.
156
- * @default false
157
- */
158
- this.expanded = false;
159
- /**
160
- * Determines whether the Item should be disabled.
161
- * @default false
162
- */
163
- this.disabled = false;
164
- /**
165
- * Event emitted when the Item is expanded.
166
- */
167
- this.expandedChange = new EventEmitter();
168
- /**
169
- * The unique id of the Item.
170
- * @internal
171
- */
172
- this.id = `rdx-accordion-item-${uniqueId++}`;
173
- /**
174
- * Determine if this item is expanded.
175
- * @internal
176
- */
177
- this.isExpanded = computed(() => this.accordion.expanded().includes(this.id));
178
- }
179
- /**
180
- * Toggle the expanded state of the Item.
181
- */
182
- toggle() {
183
- // If the accordion or Item is disabled, do nothing.
184
- if (this.accordion.disabled || this.disabled) {
185
- return;
186
- }
187
- if (this.isExpanded()) {
188
- this.accordion.collapse(this.id);
189
- }
190
- else {
191
- this.accordion.expand(this.id);
192
- }
193
- this.expandedChange.emit(this.isExpanded());
194
- }
195
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
196
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxAccordionItemDirective, isStandalone: true, selector: "[rdxAccordionItem]", inputs: { expanded: ["rdxAccordionItemExpanded", "expanded", booleanAttribute], disabled: ["rdxAccordionItemDisabled", "disabled", booleanAttribute] }, outputs: { expandedChange: "rdxAccordionItemExpandedChange" }, providers: [{ provide: RdxAccordionItemToken, useExisting: RdxAccordionItemDirective }], hostDirectives: [{ directive: RdxAccordionStateDirective }, { directive: i2.RdxRovingFocusItemDirective }], ngImport: i0 }); }
197
- }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionItemDirective, decorators: [{
199
- type: Directive,
200
- args: [{
201
- selector: '[rdxAccordionItem]',
202
- standalone: true,
203
- providers: [{ provide: RdxAccordionItemToken, useExisting: RdxAccordionItemDirective }],
204
- hostDirectives: [RdxAccordionStateDirective, RdxRovingFocusItemDirective]
205
- }]
206
- }], propDecorators: { expanded: [{
207
- type: Input,
208
- args: [{ alias: 'rdxAccordionItemExpanded', transform: booleanAttribute }]
209
- }], disabled: [{
210
- type: Input,
211
- args: [{ alias: 'rdxAccordionItemDisabled', transform: booleanAttribute }]
212
- }], expandedChange: [{
213
- type: Output,
214
- args: ['rdxAccordionItemExpandedChange']
215
- }] } });
216
-
217
- class RdxAccordionTriggerDirective {
218
- constructor() {
219
- /**
220
- * Access the item the trigger belongs to.
221
- */
222
- this.item = inject(RdxAccordionItemToken);
223
- /**
224
- * Get the id of the item content.
225
- * @internal
226
- */
227
- this.contentId = `${this.item.id}-content`;
228
- }
229
- /**
230
- * Derive the id of the trigger.
231
- */
232
- get triggerId() {
233
- return `${this.item.id}-trigger`;
234
- }
235
- /**
236
- * Toggle the expanded state of the item.
237
- */
238
- toggle() {
239
- this.item.toggle();
240
- }
241
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
242
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAccordionTriggerDirective, isStandalone: true, selector: "[rdxAccordionTrigger]", host: { listeners: { "click": "toggle()" }, properties: { "id": "triggerId", "attr.aria-expanded": "item.isExpanded()", "attr.aria-controls": "contentId" } }, hostDirectives: [{ directive: RdxAccordionStateDirective }], ngImport: i0 }); }
243
- }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionTriggerDirective, decorators: [{
245
- type: Directive,
246
- args: [{
247
- selector: '[rdxAccordionTrigger]',
248
- standalone: true,
249
- hostDirectives: [RdxAccordionStateDirective],
250
- host: {
251
- '[id]': 'triggerId',
252
- '[attr.aria-expanded]': 'item.isExpanded()',
253
- '[attr.aria-controls]': 'contentId'
254
- }
255
- }]
256
- }], propDecorators: { toggle: [{
257
- type: HostListener,
258
- args: ['click']
259
- }] } });
260
-
261
- const RdxAccordionConfigToken = new InjectionToken('RdxAccordionConfiguration');
262
- const defaultAccordionConfig = {
263
- multiple: false,
264
- orientation: 'vertical'
265
- };
266
- /**
267
- * Provide the default accordion configuration
268
- * @param config The accordion configuration
269
- * @returns The provider
270
- */
271
- function provideAccordionConfig(config) {
272
- return [
273
- {
274
- provide: RdxAccordionConfigToken,
275
- useValue: { ...defaultAccordionConfig, ...config }
276
- }
277
- ];
278
- }
279
- /**
280
- * Inject the accordion configuration
281
- * @returns The global accordion configuration
282
- */
283
- function injectAccordionConfig() {
284
- return inject(RdxAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;
285
- }
286
-
287
- /**
288
- * The root accordion directive that all parts should be placed within.
289
- */
290
- class RdxAccordionDirective {
291
- constructor() {
292
- /**
293
- * Access the global accordion configuration.
294
- */
295
- this.config = injectAccordionConfig();
296
- /**
297
- * Access the roving focus group
298
- */
299
- this.rovingFocusGroup = injectRovingFocusGroup();
300
- /**
301
- * Determines whether multiple items can be open simultaneously.
302
- * @default false
303
- */
304
- this.multiple = this.config.multiple;
305
- /**
306
- * The orientation of the accordion.
307
- * @default 'vertical'
308
- */
309
- this.orientation = this.config.orientation;
310
- /**
311
- * Determines whether the accordion should be disabled.
312
- * @default false
313
- */
314
- this.disabled = false;
315
- /**
316
- * Store the currently expanded item(s).
317
- * @internal
318
- */
319
- this.expanded = signal([]);
320
- }
321
- ngOnInit() {
322
- this.rovingFocusGroup.setOrientation(this.orientation);
323
- }
324
- /**
325
- * Expand an item.
326
- * @param id The id of the item to expand.
327
- */
328
- expand(id) {
329
- this.expanded.set(this.multiple ? [...this.expanded(), id] : [id]);
330
- }
331
- /**
332
- * Collapse an Item.
333
- * @param id The id of the Item to collapse.
334
- */
335
- collapse(id) {
336
- this.expanded.set(this.expanded().filter((expandedId) => expandedId !== id));
337
- }
338
- /**
339
- * Toggle an item.
340
- * @param id The id of the item to toggle.
341
- */
342
- toggle(id) {
343
- if (this.expanded().includes(id)) {
344
- this.collapse(id);
345
- }
346
- else {
347
- this.expand(id);
348
- }
349
- }
350
- /**
351
- * Collapse all items.
352
- */
353
- collapseAll() {
354
- this.expanded.set([]);
355
- }
356
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
357
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxAccordionDirective, isStandalone: true, selector: "[rdxAccordion]", inputs: { multiple: ["rdxAccordionMultiple", "multiple", booleanAttribute], orientation: ["rdxAccordionOrientation", "orientation"], disabled: ["rdxAccordionDisabled", "disabled", booleanAttribute] }, host: { listeners: { "focusout": "onTouched?.()" }, properties: { "attr.data-orientation": "this.orientation" } }, providers: [{ provide: RdxAccordionToken, useExisting: RdxAccordionDirective }], hostDirectives: [{ directive: i2.RdxRovingFocusGroupDirective, inputs: ["rdxRovingFocusGroupOrientation", "orientation"] }], ngImport: i0 }); }
358
- }
359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAccordionDirective, decorators: [{
360
- type: Directive,
361
- args: [{
362
- selector: '[rdxAccordion]',
363
- standalone: true,
364
- hostDirectives: [
365
- {
366
- directive: RdxRovingFocusGroupDirective,
367
- inputs: ['rdxRovingFocusGroupOrientation:orientation']
368
- }
369
- ],
370
- providers: [{ provide: RdxAccordionToken, useExisting: RdxAccordionDirective }],
371
- host: {
372
- '(focusout)': 'onTouched?.()'
373
- }
374
- }]
375
- }], propDecorators: { multiple: [{
376
- type: Input,
377
- args: [{ alias: 'rdxAccordionMultiple', transform: booleanAttribute }]
378
- }], orientation: [{
379
- type: HostBinding,
380
- args: ['attr.data-orientation']
381
- }, {
382
- type: Input,
383
- args: [{ alias: 'rdxAccordionOrientation' }]
384
- }], disabled: [{
385
- type: Input,
386
- args: [{ alias: 'rdxAccordionDisabled', transform: booleanAttribute }]
387
- }] } });
388
-
389
- /**
390
- * Generated bundle index. Do not edit.
391
- */
392
-
393
- export { RdxAccordionConfigToken, RdxAccordionContentDirective, RdxAccordionDirective, RdxAccordionHeaderDirective, RdxAccordionItemDirective, RdxAccordionStateDirective, RdxAccordionTriggerDirective, injectAccordionConfig, provideAccordionConfig };
394
- //# sourceMappingURL=radix-ng-primitives-accordion.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radix-ng-primitives-accordion.mjs","sources":["../../../packages/primitives/accordion/src/accordion-item/accordion-item.token.ts","../../../packages/primitives/accordion/src/accordion/accordion.token.ts","../../../packages/primitives/accordion/src/accordion-state.directive.ts","../../../packages/primitives/accordion/src/accordion-content/accordion-content.directive.ts","../../../packages/primitives/accordion/src/accordion-header/accordion-header.directive.ts","../../../packages/primitives/accordion/src/accordion-item/accordion-item.directive.ts","../../../packages/primitives/accordion/src/accordion-trigger/accordion-trigger.directive.ts","../../../packages/primitives/accordion/src/accordion.config.ts","../../../packages/primitives/accordion/src/accordion/accordion.directive.ts","../../../packages/primitives/accordion/radix-ng-primitives-accordion.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { RdxAccordionItemDirective } from './accordion-item.directive';\n\nexport const RdxAccordionItemToken = new InjectionToken<RdxAccordionItemDirective>(\n 'RdxAccordionItemToken'\n);\n\nexport function injectAccordionItem(): RdxAccordionItemDirective {\n return inject(RdxAccordionItemToken);\n}\n","import { inject, InjectionToken } from '@angular/core';\n\nimport type { RdxAccordionDirective } from './accordion.directive';\n\nexport const RdxAccordionToken = new InjectionToken<RdxAccordionDirective>('NgpAccordionToken');\n\nexport function injectAccordion(): RdxAccordionDirective {\n return inject(RdxAccordionToken);\n}\n","import { computed, Directive } from '@angular/core';\n\nimport { injectAccordionItem } from './accordion-item/accordion-item.token';\nimport { injectAccordion } from './accordion/accordion.token';\n\n@Directive({\n standalone: true,\n host: {\n '[attr.data-state]': 'state()',\n '[attr.data-disabled]': 'isDisabled',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class RdxAccordionStateDirective {\n /**\n * Access the accordion the trigger belongs to.\n */\n private readonly accordion = injectAccordion();\n\n /**\n * Access the item the trigger belongs to.\n */\n private readonly item = injectAccordionItem();\n\n /**\n * Determine the expanded state of the item.\n * @internal\n */\n readonly state = computed(() => (this.item.isExpanded() ? 'open' : 'closed'));\n\n /**\n * Determine the disabled state of the item.\n * @internal\n */\n get isDisabled(): boolean {\n return this.item.disabled || this.accordion.disabled;\n }\n\n /**\n * Determine the orientation of the accordion.\n * @internal\n */\n get orientation(): 'horizontal' | 'vertical' {\n return this.accordion.orientation;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n inject\n} from '@angular/core';\n\nimport { RdxAccordionItemToken } from '../accordion-item/accordion-item.token';\nimport { RdxAccordionStateDirective } from '../accordion-state.directive';\n\n@Directive({\n selector: '[rdxAccordionContent]',\n standalone: true,\n host: {\n role: 'region',\n '[id]': 'id',\n '[attr.aria-labelledby]': 'labelledby',\n '[style.display]': '!item.isExpanded() ? \"none\": \"\"'\n },\n hostDirectives: [RdxAccordionStateDirective]\n})\nexport class RdxAccordionContentDirective implements AfterViewInit {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the change detector ref.\n */\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n /**\n * Access the item the content belongs to.\n */\n protected readonly item = inject(RdxAccordionItemToken);\n\n /**\n * Derive the id of the content.\n * @internal\n */\n readonly id = `${this.item.id}-content`;\n\n /**\n * Derive the id of the trigger.\n * @internal\n */\n readonly labelledby = `${this.item.id}-trigger`;\n\n /**\n * Define the width of the content as a CSS variable, so it can be used in animations.\n * @internal\n */\n @HostBinding('style.--rdx-accordion-content-width.px')\n protected width = this.elementRef.nativeElement.scrollWidth;\n\n /**\n * Define the height of the content as a CSS variable, so it can be used in animations.\n * @internal\n */\n @HostBinding('style.--rdx-accordion-content-height.px')\n protected height = this.elementRef.nativeElement.scrollHeight;\n\n ngAfterViewInit(): void {\n this.updateContentSize();\n }\n\n /**\n * Update the size of the content.\n */\n private updateContentSize(): void {\n this.width = this.elementRef.nativeElement.scrollWidth;\n this.height = this.elementRef.nativeElement.scrollHeight;\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Directive } from '@angular/core';\n\nimport { RdxAccordionStateDirective } from '../accordion-state.directive';\n\n@Directive({\n selector: '[rdxAccordionHeader]',\n standalone: true,\n hostDirectives: [RdxAccordionStateDirective]\n})\nexport class RdxAccordionHeaderDirective {}\n","import { booleanAttribute, computed, Directive, EventEmitter, Input, Output } from '@angular/core';\n\nimport { RdxRovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\n\nimport { RdxAccordionStateDirective } from '../accordion-state.directive';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { RdxAccordionItemToken } from './accordion-item.token';\n\n/**\n * A unique id for the item.\n */\nlet uniqueId = 0;\n\n@Directive({\n selector: '[rdxAccordionItem]',\n standalone: true,\n providers: [{ provide: RdxAccordionItemToken, useExisting: RdxAccordionItemDirective }],\n hostDirectives: [RdxAccordionStateDirective, RdxRovingFocusItemDirective]\n})\nexport class RdxAccordionItemDirective {\n /**\n * Access the accordion the item belongs to.\n */\n private readonly accordion = injectAccordion();\n\n /**\n * Determines whether the item should be expanded.\n * @default false\n */\n @Input({ alias: 'rdxAccordionItemExpanded', transform: booleanAttribute }) expanded = false;\n\n /**\n * Determines whether the Item should be disabled.\n * @default false\n */\n @Input({ alias: 'rdxAccordionItemDisabled', transform: booleanAttribute }) disabled = false;\n\n /**\n * Event emitted when the Item is expanded.\n */\n @Output('rdxAccordionItemExpandedChange') readonly expandedChange = new EventEmitter<boolean>();\n\n /**\n * The unique id of the Item.\n * @internal\n */\n readonly id = `rdx-accordion-item-${uniqueId++}`;\n\n /**\n * Determine if this item is expanded.\n * @internal\n */\n readonly isExpanded = computed(() => this.accordion.expanded().includes(this.id));\n\n /**\n * Toggle the expanded state of the Item.\n */\n toggle(): void {\n // If the accordion or Item is disabled, do nothing.\n if (this.accordion.disabled || this.disabled) {\n return;\n }\n\n if (this.isExpanded()) {\n this.accordion.collapse(this.id);\n } else {\n this.accordion.expand(this.id);\n }\n\n this.expandedChange.emit(this.isExpanded());\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\n\nimport { RdxAccordionItemToken } from '../accordion-item/accordion-item.token';\nimport { RdxAccordionStateDirective } from '../accordion-state.directive';\n\n@Directive({\n selector: '[rdxAccordionTrigger]',\n standalone: true,\n hostDirectives: [RdxAccordionStateDirective],\n host: {\n '[id]': 'triggerId',\n '[attr.aria-expanded]': 'item.isExpanded()',\n '[attr.aria-controls]': 'contentId'\n }\n})\nexport class RdxAccordionTriggerDirective {\n /**\n * Access the item the trigger belongs to.\n */\n protected readonly item = inject(RdxAccordionItemToken);\n\n /**\n * Derive the id of the trigger.\n */\n protected get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /**\n * Get the id of the item content.\n * @internal\n */\n protected readonly contentId = `${this.item.id}-content`;\n\n /**\n * Toggle the expanded state of the item.\n */\n @HostListener('click')\n toggle(): void {\n this.item.toggle();\n }\n}\n","import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport const RdxAccordionConfigToken = new InjectionToken<RdxAccordionConfig>(\n 'RdxAccordionConfiguration'\n);\n\nexport interface RdxAccordionConfig {\n /**\n * Determines whether multiple items can be open simultaneously.\n * @default false\n */\n multiple: boolean;\n\n /**\n * The orientation of the accordion.\n * @default 'vertical'\n */\n orientation: 'horizontal' | 'vertical';\n}\n\nconst defaultAccordionConfig: RdxAccordionConfig = {\n multiple: false,\n orientation: 'vertical'\n};\n\n/**\n * Provide the default accordion configuration\n * @param config The accordion configuration\n * @returns The provider\n */\nexport function provideAccordionConfig(config: Partial<RdxAccordionConfig>): Provider[] {\n return [\n {\n provide: RdxAccordionConfigToken,\n useValue: { ...defaultAccordionConfig, ...config }\n }\n ];\n}\n\n/**\n * Inject the accordion configuration\n * @returns The global accordion configuration\n */\nexport function injectAccordionConfig(): RdxAccordionConfig {\n return inject(RdxAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;\n}\n","import { booleanAttribute, Directive, HostBinding, Input, OnInit, signal } from '@angular/core';\n\nimport {\n injectRovingFocusGroup,\n RdxRovingFocusGroupDirective\n} from '@radix-ng/primitives/roving-focus';\n\nimport { injectAccordionConfig } from '../accordion.config';\nimport { RdxAccordionToken } from './accordion.token';\n\n/**\n * The root accordion directive that all parts should be placed within.\n */\n@Directive({\n selector: '[rdxAccordion]',\n standalone: true,\n hostDirectives: [\n {\n directive: RdxRovingFocusGroupDirective,\n inputs: ['rdxRovingFocusGroupOrientation:orientation']\n }\n ],\n providers: [{ provide: RdxAccordionToken, useExisting: RdxAccordionDirective }],\n host: {\n '(focusout)': 'onTouched?.()'\n }\n})\nexport class RdxAccordionDirective implements OnInit {\n /**\n * Access the global accordion configuration.\n */\n private readonly config = injectAccordionConfig();\n\n /**\n * Access the roving focus group\n */\n private readonly rovingFocusGroup = injectRovingFocusGroup();\n\n /**\n * Determines whether multiple items can be open simultaneously.\n * @default false\n */\n @Input({ alias: 'rdxAccordionMultiple', transform: booleanAttribute }) multiple: boolean =\n this.config.multiple;\n\n /**\n * The orientation of the accordion.\n * @default 'vertical'\n */\n @HostBinding('attr.data-orientation')\n @Input({ alias: 'rdxAccordionOrientation' })\n orientation: 'horizontal' | 'vertical' = this.config.orientation;\n\n /**\n * Determines whether the accordion should be disabled.\n * @default false\n */\n @Input({ alias: 'rdxAccordionDisabled', transform: booleanAttribute }) disabled = false;\n\n /**\n * Store the currently expanded item(s).\n * @internal\n */\n readonly expanded = signal<string[]>([]);\n\n /**\n * The touched callback.\n */\n protected onTouched?: () => void;\n\n ngOnInit(): void {\n this.rovingFocusGroup.setOrientation(this.orientation);\n }\n /**\n * Expand an item.\n * @param id The id of the item to expand.\n */\n expand(id: string): void {\n this.expanded.set(this.multiple ? [...this.expanded(), id] : [id]);\n }\n\n /**\n * Collapse an Item.\n * @param id The id of the Item to collapse.\n */\n collapse(id: string): void {\n this.expanded.set(this.expanded().filter((expandedId) => expandedId !== id));\n }\n\n /**\n * Toggle an item.\n * @param id The id of the item to toggle.\n */\n toggle(id: string): void {\n if (this.expanded().includes(id)) {\n this.collapse(id);\n } else {\n this.expand(id);\n }\n }\n\n /**\n * Collapse all items.\n */\n collapseAll(): void {\n this.expanded.set([]);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxAccordionStateDirective","i1"],"mappings":"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"}