@radix-ng/primitives 0.7.2 → 0.8.2

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 (89) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/src/accordion-content.directive.d.ts +64 -0
  4. package/accordion/src/accordion-header.directive.d.ts +23 -0
  5. package/accordion/src/accordion-item.directive.d.ts +36 -0
  6. package/accordion/src/accordion-root.directive.d.ts +57 -0
  7. package/accordion/src/accordion-trigger.directive.d.ts +31 -0
  8. package/checkbox/index.d.ts +2 -0
  9. package/checkbox/src/checkbox-button.directive.d.ts +8 -0
  10. package/checkbox/src/checkbox-indicator.directive.d.ts +1 -1
  11. package/checkbox/src/checkbox-input.directive.d.ts +9 -0
  12. package/checkbox/src/checkbox.directive.d.ts +7 -5
  13. package/dropdown-menu/README.md +1 -0
  14. package/dropdown-menu/index.d.ts +5 -0
  15. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +6 -0
  16. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +8 -0
  17. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
  18. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
  19. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +12 -0
  20. package/esm2022/accordion/index.mjs +6 -0
  21. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
  22. package/esm2022/accordion/src/accordion-content.directive.mjs +139 -0
  23. package/esm2022/accordion/src/accordion-header.directive.mjs +44 -0
  24. package/esm2022/accordion/src/accordion-item.directive.mjs +75 -0
  25. package/esm2022/accordion/src/accordion-root.directive.mjs +120 -0
  26. package/esm2022/accordion/src/accordion-trigger.directive.mjs +61 -0
  27. package/esm2022/checkbox/index.mjs +3 -1
  28. package/esm2022/checkbox/src/checkbox-button.directive.mjs +33 -0
  29. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +4 -3
  30. package/esm2022/checkbox/src/checkbox-input.directive.mjs +41 -0
  31. package/esm2022/checkbox/src/checkbox.directive.mjs +16 -20
  32. package/esm2022/dropdown-menu/index.mjs +6 -0
  33. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
  34. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +17 -0
  35. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +26 -0
  36. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
  37. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
  38. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +52 -0
  39. package/esm2022/label/src/label-root.directive.mjs +7 -8
  40. package/esm2022/menu/src/menu-item.directive.mjs +10 -4
  41. package/esm2022/menubar/src/menubar-trigger.directive.mjs +3 -3
  42. package/esm2022/radio/src/radio-item.directive.mjs +1 -2
  43. package/esm2022/switch/index.mjs +2 -1
  44. package/esm2022/switch/src/switch-input.directive.mjs +8 -6
  45. package/esm2022/switch/src/switch-root.directive.mjs +42 -18
  46. package/esm2022/switch/src/switch-thumb.directive.mjs +3 -3
  47. package/esm2022/tabs/index.mjs +38 -0
  48. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
  49. package/esm2022/tabs/src/tabs-content.directive.mjs +29 -0
  50. package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
  51. package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
  52. package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
  53. package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
  54. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +10 -1
  55. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +17 -7
  56. package/fesm2022/radix-ng-primitives-accordion.mjs +431 -0
  57. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-checkbox.mjs +87 -22
  59. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +125 -0
  61. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
  62. package/fesm2022/radix-ng-primitives-label.mjs +6 -7
  63. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-menu.mjs +9 -3
  65. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-menubar.mjs +2 -2
  67. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +0 -1
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-switch.mjs +50 -24
  71. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-tabs.mjs +222 -0
  73. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-toggle-group.mjs +25 -6
  75. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  76. package/label/src/label-root.directive.d.ts +3 -2
  77. package/menu/README.md +1 -0
  78. package/menu/src/menu-item.directive.d.ts +2 -1
  79. package/package.json +19 -1
  80. package/switch/index.d.ts +1 -0
  81. package/switch/src/switch-root.directive.d.ts +26 -9
  82. package/tabs/index.d.ts +15 -0
  83. package/tabs/src/tabs-content.directive.d.ts +8 -0
  84. package/tabs/src/tabs-context.service.d.ts +22 -0
  85. package/tabs/src/tabs-list.directive.d.ts +6 -0
  86. package/tabs/src/tabs-root.directive.d.ts +37 -0
  87. package/tabs/src/tabs-trigger.directive.d.ts +19 -0
  88. package/toggle-group/src/toggle-group-button.directive.d.ts +9 -0
  89. package/toggle-group/src/toggle-group-multi.directive.d.ts +19 -6
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Directive, EventEmitter, booleanAttribute, Input, Output, HostListener } from '@angular/core';
2
+ import { InjectionToken, inject, input, computed, Directive, EventEmitter, booleanAttribute, Input, Output } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
 
5
5
  const RdxCheckboxToken = new InjectionToken('RdxCheckboxToken');
@@ -7,20 +7,89 @@ function injectCheckbox() {
7
7
  return inject(RdxCheckboxToken);
8
8
  }
9
9
 
10
+ class RdxCheckboxInputDirective {
11
+ constructor() {
12
+ this.checkbox = injectCheckbox();
13
+ this.id = input();
14
+ this.elementId = computed(() => this.id() ? this.id() : `rdx-checkbox-${this.id()}`);
15
+ this.value = computed(() => {
16
+ const state = this.checkbox.state;
17
+ if (state === 'indeterminate') {
18
+ return '';
19
+ }
20
+ return state ? 'on' : 'off';
21
+ });
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxCheckboxInputDirective, isStandalone: true, selector: "input[CheckboxInput]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "checkbox", "tabindex": "-1" }, properties: { "checked": "checkbox.checked", "disabled": "checkbox.disabled", "required": "checkbox.required", "attr.id": "elementId()", "attr.aria-hidden": "true", "attr.aria-checked": "checkbox.indeterminate ? \"mixed\" : checkbox.checked", "attr.aria-required": "checkbox.required ? \"\" : null", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null", "attr.value": "value()" } }, ngImport: i0 }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxInputDirective, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ standalone: true,
30
+ selector: 'input[CheckboxInput]',
31
+ host: {
32
+ type: 'checkbox',
33
+ tabindex: '-1',
34
+ '[checked]': 'checkbox.checked',
35
+ '[disabled]': 'checkbox.disabled',
36
+ '[required]': 'checkbox.required',
37
+ '[attr.id]': 'elementId()',
38
+ '[attr.aria-hidden]': 'true',
39
+ '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
40
+ '[attr.aria-required]': 'checkbox.required ? "" : null',
41
+ '[attr.data-state]': 'checkbox.state',
42
+ '[attr.data-disabled]': 'checkbox.disabled ? "" : null',
43
+ '[attr.value]': 'value()'
44
+ }
45
+ }]
46
+ }] });
47
+
48
+ class RdxCheckboxButtonDirective {
49
+ constructor() {
50
+ this.checkbox = injectCheckbox();
51
+ this.id = input(null);
52
+ this.elementId = computed(() => this.id() ? this.id() : `rdx-checkbox-${this.id()}`);
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxCheckboxButtonDirective, isStandalone: true, selector: "button[CheckboxButton]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "checkbox", "tabindex": "-1" }, properties: { "checked": "checkbox.checked", "disabled": "checkbox.disabled", "required": "checkbox.required", "attr.id": "elementId()", "attr.aria-checked": "checkbox.indeterminate ? \"mixed\" : checkbox.checked", "attr.aria-required": "checkbox.required ? \"\" : null", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null" } }, ngImport: i0 }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxButtonDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{
60
+ standalone: true,
61
+ selector: 'button[CheckboxButton]',
62
+ host: {
63
+ type: 'button',
64
+ role: 'checkbox',
65
+ tabindex: '-1',
66
+ '[checked]': 'checkbox.checked',
67
+ '[disabled]': 'checkbox.disabled',
68
+ '[required]': 'checkbox.required',
69
+ '[attr.id]': 'elementId()',
70
+ '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
71
+ '[attr.aria-required]': 'checkbox.required ? "" : null',
72
+ '[attr.data-state]': 'checkbox.state',
73
+ '[attr.data-disabled]': 'checkbox.disabled ? "" : null'
74
+ }
75
+ }]
76
+ }] });
77
+
10
78
  class RdxCheckboxIndicatorDirective {
11
79
  constructor() {
12
80
  this.checkbox = injectCheckbox();
13
81
  }
14
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxCheckboxIndicatorDirective, isStandalone: true, selector: "[rdxCheckboxIndicator]", host: { properties: { "style.pointer-events": "\"none\"", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null" } }, ngImport: i0 }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxCheckboxIndicatorDirective, isStandalone: true, selector: "[CheckboxIndicator]", host: { properties: { "style.pointer-events": "\"none\"", "attr.aria-checked": "checkbox.indeterminate ? \"mixed\" : checkbox.checked", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null" } }, ngImport: i0 }); }
16
84
  }
17
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxIndicatorDirective, decorators: [{
18
86
  type: Directive,
19
87
  args: [{
20
- selector: '[rdxCheckboxIndicator]',
88
+ selector: '[CheckboxIndicator]',
21
89
  standalone: true,
22
90
  host: {
23
91
  '[style.pointer-events]': '"none"',
92
+ '[attr.aria-checked]': 'checkbox.indeterminate ? "mixed" : checkbox.checked',
24
93
  '[attr.data-state]': 'checkbox.state',
25
94
  '[attr.data-disabled]': 'checkbox.disabled ? "" : null'
26
95
  }
@@ -30,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
30
99
  class RdxCheckboxDirective {
31
100
  constructor() {
32
101
  /**
33
- * Defines whether the checkbox is checked.
102
+ * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.
34
103
  */
35
104
  this.checked = false;
36
105
  /**
@@ -41,6 +110,7 @@ class RdxCheckboxDirective {
41
110
  * Defines whether the checkbox is disabled.
42
111
  */
43
112
  this.disabled = false;
113
+ this.required = false;
44
114
  /**
45
115
  * Event emitted when the checkbox checked state changes.
46
116
  */
@@ -59,13 +129,13 @@ class RdxCheckboxDirective {
59
129
  }
60
130
  return this.checked ? 'checked' : 'unchecked';
61
131
  }
62
- onKeydown(event) {
132
+ onKeyDown(event) {
63
133
  // According to WAI ARIA, Checkboxes don't activate on enter keypress
64
134
  if (event.key === 'Enter') {
65
135
  event.preventDefault();
66
136
  }
67
137
  }
68
- onClick() {
138
+ onClick($event) {
69
139
  if (this.disabled) {
70
140
  return;
71
141
  }
@@ -76,6 +146,7 @@ class RdxCheckboxDirective {
76
146
  this.indeterminate = false;
77
147
  this.indeterminateChange.emit(this.indeterminate);
78
148
  }
149
+ $event.preventDefault();
79
150
  }
80
151
  onBlur() {
81
152
  this.onTouched?.();
@@ -121,7 +192,7 @@ class RdxCheckboxDirective {
121
192
  this.disabled = isDisabled;
122
193
  }
123
194
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
124
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxCheckboxDirective, isStandalone: true, selector: "button[rdxCheckbox]", inputs: { checked: ["checked", "checked", booleanAttribute], indeterminate: ["indeterminate", "indeterminate", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { attributes: { "type": "button", "role": "checkbox" }, listeners: { "keydown": "onKeydown($event)", "click": "onClick()", "blur": "onBlur()" }, properties: { "disabled": "disabled", "attr.aria-checked": "indeterminate ? \"mixed\" : checked", "attr.data-disabled": "disabled ? \"\" : null", "attr.data-state": "state" } }, providers: [
195
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxCheckboxDirective, isStandalone: true, selector: "[CheckboxRoot]", inputs: { checked: ["checked", "checked", booleanAttribute], indeterminate: ["indeterminate", "indeterminate", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute] }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)", "blur": "onBlur()" }, properties: { "disabled": "disabled", "attr.data-disabled": "disabled ? \"\" : null", "attr.data-state": "state" } }, providers: [
125
196
  { provide: RdxCheckboxToken, useExisting: RdxCheckboxDirective },
126
197
  { provide: NG_VALUE_ACCESSOR, useExisting: RdxCheckboxDirective, multi: true }
127
198
  ], usesOnChanges: true, ngImport: i0 }); }
@@ -129,19 +200,19 @@ class RdxCheckboxDirective {
129
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxCheckboxDirective, decorators: [{
130
201
  type: Directive,
131
202
  args: [{
132
- selector: 'button[rdxCheckbox]',
203
+ selector: '[CheckboxRoot]',
133
204
  standalone: true,
134
205
  providers: [
135
206
  { provide: RdxCheckboxToken, useExisting: RdxCheckboxDirective },
136
207
  { provide: NG_VALUE_ACCESSOR, useExisting: RdxCheckboxDirective, multi: true }
137
208
  ],
138
209
  host: {
139
- type: 'button',
140
- role: 'checkbox',
141
210
  '[disabled]': 'disabled',
142
- '[attr.aria-checked]': 'indeterminate ? "mixed" : checked',
143
211
  '[attr.data-disabled]': 'disabled ? "" : null',
144
- '[attr.data-state]': 'state'
212
+ '[attr.data-state]': 'state',
213
+ '(keydown)': 'onKeyDown($event)',
214
+ '(click)': 'onClick($event)',
215
+ '(blur)': 'onBlur()'
145
216
  }
146
217
  }]
147
218
  }], propDecorators: { checked: [{
@@ -153,24 +224,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
153
224
  }], disabled: [{
154
225
  type: Input,
155
226
  args: [{ transform: booleanAttribute }]
227
+ }], required: [{
228
+ type: Input,
229
+ args: [{ transform: booleanAttribute }]
156
230
  }], checkedChange: [{
157
231
  type: Output
158
232
  }], indeterminateChange: [{
159
233
  type: Output
160
- }], onKeydown: [{
161
- type: HostListener,
162
- args: ['keydown', ['$event']]
163
- }], onClick: [{
164
- type: HostListener,
165
- args: ['click']
166
- }], onBlur: [{
167
- type: HostListener,
168
- args: ['blur']
169
234
  }] } });
170
235
 
171
236
  /**
172
237
  * Generated bundle index. Do not edit.
173
238
  */
174
239
 
175
- export { RdxCheckboxDirective, RdxCheckboxIndicatorDirective, RdxCheckboxToken, injectCheckbox };
240
+ export { RdxCheckboxButtonDirective, RdxCheckboxDirective, RdxCheckboxIndicatorDirective, RdxCheckboxInputDirective, RdxCheckboxToken, injectCheckbox };
176
241
  //# sourceMappingURL=radix-ng-primitives-checkbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-checkbox.mjs","sources":["../../../packages/primitives/checkbox/src/checkbox.token.ts","../../../packages/primitives/checkbox/src/checkbox-indicator.directive.ts","../../../packages/primitives/checkbox/src/checkbox.directive.ts","../../../packages/primitives/checkbox/radix-ng-primitives-checkbox.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { RdxCheckboxDirective } from './checkbox.directive';\n\nexport const RdxCheckboxToken = new InjectionToken<RdxCheckboxDirective>('RdxCheckboxToken');\n\nexport function injectCheckbox(): RdxCheckboxDirective {\n return inject(RdxCheckboxToken);\n}\n","import { Directive } from '@angular/core';\n\nimport { injectCheckbox } from './checkbox.token';\n\n@Directive({\n selector: '[rdxCheckboxIndicator]',\n standalone: true,\n host: {\n '[style.pointer-events]': '\"none\"',\n '[attr.data-state]': 'checkbox.state',\n '[attr.data-disabled]': 'checkbox.disabled ? \"\" : null'\n }\n})\nexport class RdxCheckboxIndicatorDirective {\n protected readonly checkbox = injectCheckbox();\n}\n","import {\n booleanAttribute,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RdxCheckboxToken } from './checkbox.token';\n\nexport type CheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n@Directive({\n selector: 'button[rdxCheckbox]',\n standalone: true,\n providers: [\n { provide: RdxCheckboxToken, useExisting: RdxCheckboxDirective },\n { provide: NG_VALUE_ACCESSOR, useExisting: RdxCheckboxDirective, multi: true }\n ],\n host: {\n type: 'button',\n role: 'checkbox',\n '[disabled]': 'disabled',\n '[attr.aria-checked]': 'indeterminate ? \"mixed\" : checked',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.data-state]': 'state'\n }\n})\nexport class RdxCheckboxDirective implements ControlValueAccessor, OnChanges {\n /**\n * Defines whether the checkbox is checked.\n */\n @Input({ transform: booleanAttribute }) checked = false;\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n @Input({ transform: booleanAttribute }) indeterminate = false;\n\n /**\n * Defines whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Event emitted when the checkbox checked state changes.\n */\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n\n /**\n * Event emitted when the indeterminate state changes.\n */\n @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n\n /**\n * Determine the state\n */\n get state(): CheckboxState {\n if (this.indeterminate) {\n return 'indeterminate';\n }\n return this.checked ? 'checked' : 'unchecked';\n }\n\n /**\n * Store the callback function that should be called when the checkbox checked state changes.\n * @internal\n */\n private onChange?: (checked: boolean) => void;\n\n /**\n * Store the callback function that should be called when the checkbox is blurred.\n * @internal\n */\n private onTouched?: () => void;\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n @HostListener('click')\n onClick(): void {\n if (this.disabled) {\n return;\n }\n\n this.checked = this.indeterminate ? true : !this.checked;\n this.checkedChange.emit(this.checked);\n this.onChange?.(this.checked);\n\n if (this.indeterminate) {\n this.indeterminate = false;\n this.indeterminateChange.emit(this.indeterminate);\n }\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onTouched?.();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['checked'] && !changes['checked'].isFirstChange()) {\n this.checkedChange.emit(this.checked);\n }\n if (changes['indeterminate'] && !changes['indeterminate'].isFirstChange()) {\n this.indeterminateChange.emit(this.indeterminate);\n }\n }\n\n /**\n * Sets the checked state of the checkbox.\n * @param checked The checked state of the checkbox.\n * @internal\n */\n writeValue(checked: boolean): void {\n this.checked = checked;\n }\n\n /**\n * Registers a callback function that should be called when the checkbox checked state changes.\n * @param fn The callback function.\n * @internal\n */\n registerOnChange(fn: (checked: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a callback function that should be called when the checkbox is blurred.\n * @param fn The callback function.\n * @internal\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the checkbox.\n * @param isDisabled The disabled state of the checkbox.\n * @internal\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-checkbox.mjs","sources":["../../../packages/primitives/checkbox/src/checkbox.token.ts","../../../packages/primitives/checkbox/src/checkbox-input.directive.ts","../../../packages/primitives/checkbox/src/checkbox-button.directive.ts","../../../packages/primitives/checkbox/src/checkbox-indicator.directive.ts","../../../packages/primitives/checkbox/src/checkbox.directive.ts","../../../packages/primitives/checkbox/radix-ng-primitives-checkbox.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { RdxCheckboxDirective } from './checkbox.directive';\n\nexport const RdxCheckboxToken = new InjectionToken<RdxCheckboxDirective>('RdxCheckboxToken');\n\nexport function injectCheckbox(): RdxCheckboxDirective {\n return inject(RdxCheckboxToken);\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { injectCheckbox } from './checkbox.token';\n\n@Directive({\n standalone: true,\n selector: 'input[CheckboxInput]',\n host: {\n type: 'checkbox',\n tabindex: '-1',\n '[checked]': 'checkbox.checked',\n '[disabled]': 'checkbox.disabled',\n '[required]': 'checkbox.required',\n '[attr.id]': 'elementId()',\n '[attr.aria-hidden]': 'true',\n '[attr.aria-checked]': 'checkbox.indeterminate ? \"mixed\" : checkbox.checked',\n '[attr.aria-required]': 'checkbox.required ? \"\" : null',\n '[attr.data-state]': 'checkbox.state',\n '[attr.data-disabled]': 'checkbox.disabled ? \"\" : null',\n '[attr.value]': 'value()'\n }\n})\nexport class RdxCheckboxInputDirective {\n protected readonly checkbox = injectCheckbox();\n\n readonly id = input<string>();\n protected readonly elementId = computed(() =>\n this.id() ? this.id() : `rdx-checkbox-${this.id()}`\n );\n\n protected readonly value = computed(() => {\n const state = this.checkbox.state;\n if (state === 'indeterminate') {\n return '';\n }\n\n return state ? 'on' : 'off';\n });\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { injectCheckbox } from './checkbox.token';\n\n@Directive({\n standalone: true,\n selector: 'button[CheckboxButton]',\n host: {\n type: 'button',\n role: 'checkbox',\n tabindex: '-1',\n '[checked]': 'checkbox.checked',\n '[disabled]': 'checkbox.disabled',\n '[required]': 'checkbox.required',\n '[attr.id]': 'elementId()',\n '[attr.aria-checked]': 'checkbox.indeterminate ? \"mixed\" : checkbox.checked',\n '[attr.aria-required]': 'checkbox.required ? \"\" : null',\n '[attr.data-state]': 'checkbox.state',\n '[attr.data-disabled]': 'checkbox.disabled ? \"\" : null'\n }\n})\nexport class RdxCheckboxButtonDirective {\n protected readonly checkbox = injectCheckbox();\n\n readonly id = input<string | null>(null);\n protected readonly elementId = computed(() =>\n this.id() ? this.id() : `rdx-checkbox-${this.id()}`\n );\n}\n","import { Directive } from '@angular/core';\n\nimport { injectCheckbox } from './checkbox.token';\n\n@Directive({\n selector: '[CheckboxIndicator]',\n standalone: true,\n host: {\n '[style.pointer-events]': '\"none\"',\n '[attr.aria-checked]': 'checkbox.indeterminate ? \"mixed\" : checkbox.checked',\n '[attr.data-state]': 'checkbox.state',\n '[attr.data-disabled]': 'checkbox.disabled ? \"\" : null'\n }\n})\nexport class RdxCheckboxIndicatorDirective {\n protected readonly checkbox = injectCheckbox();\n}\n","import {\n booleanAttribute,\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RdxCheckboxToken } from './checkbox.token';\n\nexport type CheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n@Directive({\n selector: '[CheckboxRoot]',\n standalone: true,\n providers: [\n { provide: RdxCheckboxToken, useExisting: RdxCheckboxDirective },\n { provide: NG_VALUE_ACCESSOR, useExisting: RdxCheckboxDirective, multi: true }\n ],\n host: {\n '[disabled]': 'disabled',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.data-state]': 'state',\n\n '(keydown)': 'onKeyDown($event)',\n '(click)': 'onClick($event)',\n '(blur)': 'onBlur()'\n }\n})\nexport class RdxCheckboxDirective implements ControlValueAccessor, OnChanges {\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.\n */\n @Input({ transform: booleanAttribute }) checked = false;\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n @Input({ transform: booleanAttribute }) indeterminate = false;\n\n /**\n * Defines whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input({ transform: booleanAttribute }) required = false;\n\n /**\n * Event emitted when the checkbox checked state changes.\n */\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n\n /**\n * Event emitted when the indeterminate state changes.\n */\n @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n\n /**\n * Determine the state\n */\n get state(): CheckboxState {\n if (this.indeterminate) {\n return 'indeterminate';\n }\n return this.checked ? 'checked' : 'unchecked';\n }\n\n /**\n * Store the callback function that should be called when the checkbox checked state changes.\n * @internal\n */\n private onChange?: (checked: boolean) => void;\n\n /**\n * Store the callback function that should be called when the checkbox is blurred.\n * @internal\n */\n private onTouched?: () => void;\n\n protected onKeyDown(event: KeyboardEvent): void {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n protected onClick($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.checked = this.indeterminate ? true : !this.checked;\n this.checkedChange.emit(this.checked);\n this.onChange?.(this.checked);\n\n if (this.indeterminate) {\n this.indeterminate = false;\n this.indeterminateChange.emit(this.indeterminate);\n }\n\n $event.preventDefault();\n }\n\n protected onBlur(): void {\n this.onTouched?.();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['checked'] && !changes['checked'].isFirstChange()) {\n this.checkedChange.emit(this.checked);\n }\n if (changes['indeterminate'] && !changes['indeterminate'].isFirstChange()) {\n this.indeterminateChange.emit(this.indeterminate);\n }\n }\n\n /**\n * Sets the checked state of the checkbox.\n * @param checked The checked state of the checkbox.\n * @internal\n */\n writeValue(checked: boolean): void {\n this.checked = checked;\n }\n\n /**\n * Registers a callback function that should be called when the checkbox checked state changes.\n * @param fn The callback function.\n * @internal\n */\n registerOnChange(fn: (checked: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a callback function that should be called when the checkbox is blurred.\n * @param fn The callback function.\n * @internal\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the checkbox.\n * @param isDisabled The disabled state of the checkbox.\n * @internal\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import * as i1 from '@angular/cdk/menu';
2
+ import { CdkMenuTrigger } from '@angular/cdk/menu';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, input, booleanAttribute, Directive } from '@angular/core';
5
+ import { outputFromObservable } from '@angular/core/rxjs-interop';
6
+ import * as i1$1 from '@radix-ng/primitives/menu';
7
+ import { RdxMenuItemDirective, RdxMenuSeparatorDirective, RdxMenuContentDirective } from '@radix-ng/primitives/menu';
8
+
9
+ class RdxDropdownMenuTriggerDirective {
10
+ constructor() {
11
+ this.cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });
12
+ this.disabled = input(false, {
13
+ transform: booleanAttribute
14
+ });
15
+ /*
16
+ * Event handler called when the open state of the dropdown menu changes.
17
+ * // TODO: mv to RootMenuDropdown
18
+ */
19
+ this.onOpenChange = outputFromObservable(this.cdkMenuTrigger?.opened);
20
+ }
21
+ onPointerDown($event) {
22
+ // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
23
+ // but not when the control key is pressed (avoiding MacOS right click)
24
+ if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {
25
+ /* empty */
26
+ if (!this.cdkMenuTrigger.isOpen()) {
27
+ // prevent trigger focusing when opening
28
+ // this allows the content to be given focus without competition
29
+ $event.preventDefault();
30
+ }
31
+ }
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[DropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "cdkMenuTrigger.isOpen()", "attr.data-state": "cdkMenuTrigger.isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "DropdownMenuTrigger"] }], ngImport: i0 }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuTriggerDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[DropdownMenuTrigger]',
40
+ standalone: true,
41
+ hostDirectives: [
42
+ { directive: CdkMenuTrigger, inputs: ['cdkMenuTriggerFor: DropdownMenuTrigger'] }
43
+ ],
44
+ host: {
45
+ type: 'button',
46
+ '[attr.aria-haspopup]': "'menu'",
47
+ '[attr.aria-expanded]': 'cdkMenuTrigger.isOpen()',
48
+ '[attr.data-state]': "cdkMenuTrigger.isOpen() ? 'open': 'closed'",
49
+ '[attr.data-disabled]': "disabled() ? '' : undefined",
50
+ '[disabled]': 'disabled()',
51
+ '(pointerdown)': 'onPointerDown($event)'
52
+ }
53
+ }]
54
+ }] });
55
+
56
+ class RdxDropdownMenuItemDirective {
57
+ constructor() {
58
+ /*
59
+ * When true, prevents the user from interacting with the item.
60
+ */
61
+ this.disabled = input(false, {
62
+ transform: booleanAttribute,
63
+ alias: 'rdxDisabled'
64
+ });
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
67
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxDropdownMenuItemDirective, isStandalone: true, selector: "[DropdownMenuItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "rdxDisabled", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1$1.RdxMenuItemDirective, inputs: ["rdxDisabled", "disabled"] }], ngImport: i0 }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuItemDirective, decorators: [{
70
+ type: Directive,
71
+ args: [{
72
+ selector: '[DropdownMenuItem]',
73
+ standalone: true,
74
+ hostDirectives: [{ directive: RdxMenuItemDirective, inputs: ['rdxDisabled: disabled '] }]
75
+ }]
76
+ }] });
77
+
78
+ class RdxDropdownMenuSeparatorDirective {
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxDropdownMenuSeparatorDirective, isStandalone: true, selector: "[DropdownMenuSeparator]", host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "'horizontal'" } }, hostDirectives: [{ directive: i1$1.RdxMenuSeparatorDirective }], ngImport: i0 }); }
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, decorators: [{
83
+ type: Directive,
84
+ args: [{
85
+ selector: '[DropdownMenuSeparator]',
86
+ standalone: true,
87
+ hostDirectives: [RdxMenuSeparatorDirective],
88
+ host: {
89
+ role: 'separator',
90
+ '[attr.aria-orientation]': "'horizontal'"
91
+ }
92
+ }]
93
+ }] });
94
+
95
+ class RdxDropdownMenuContentDirective {
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
97
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxDropdownMenuContentDirective, isStandalone: true, selector: "[DropdownMenuContent]", hostDirectives: [{ directive: i1$1.RdxMenuContentDirective }], ngImport: i0 }); }
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuContentDirective, decorators: [{
100
+ type: Directive,
101
+ args: [{
102
+ selector: '[DropdownMenuContent]',
103
+ standalone: true,
104
+ hostDirectives: [RdxMenuContentDirective]
105
+ }]
106
+ }] });
107
+
108
+ class RdxDropdownMenuLabelDirective {
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
110
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxDropdownMenuLabelDirective, isStandalone: true, selector: "div[DropdownMenuLabel]", ngImport: i0 }); }
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxDropdownMenuLabelDirective, decorators: [{
113
+ type: Directive,
114
+ args: [{
115
+ selector: 'div[DropdownMenuLabel]',
116
+ standalone: true
117
+ }]
118
+ }] });
119
+
120
+ /**
121
+ * Generated bundle index. Do not edit.
122
+ */
123
+
124
+ export { RdxDropdownMenuContentDirective, RdxDropdownMenuItemDirective, RdxDropdownMenuLabelDirective, RdxDropdownMenuSeparatorDirective, RdxDropdownMenuTriggerDirective };
125
+ //# sourceMappingURL=radix-ng-primitives-dropdown-menu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-dropdown-menu.mjs","sources":["../../../packages/primitives/dropdown-menu/src/dropdown-menu-trigger.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-separator.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-content.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-label.directive.ts","../../../packages/primitives/dropdown-menu/radix-ng-primitives-dropdown-menu.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[DropdownMenuTrigger]',\n standalone: true,\n hostDirectives: [\n { directive: CdkMenuTrigger, inputs: ['cdkMenuTriggerFor: DropdownMenuTrigger'] }\n ],\n host: {\n type: 'button',\n '[attr.aria-haspopup]': \"'menu'\",\n '[attr.aria-expanded]': 'cdkMenuTrigger.isOpen()',\n '[attr.data-state]': \"cdkMenuTrigger.isOpen() ? 'open': 'closed'\",\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n\n '(pointerdown)': 'onPointerDown($event)'\n }\n})\nexport class RdxDropdownMenuTriggerDirective {\n protected readonly cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });\n\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n /*\n * Event handler called when the open state of the dropdown menu changes.\n * // TODO: mv to RootMenuDropdown\n */\n onOpenChange = outputFromObservable(this.cdkMenuTrigger?.opened);\n\n onPointerDown($event: MouseEvent) {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {\n /* empty */\n if (!this.cdkMenuTrigger.isOpen()) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n $event.preventDefault();\n }\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\n\nimport { RdxMenuItemDirective } from '@radix-ng/primitives/menu';\n\n@Directive({\n selector: '[DropdownMenuItem]',\n standalone: true,\n hostDirectives: [{ directive: RdxMenuItemDirective, inputs: ['rdxDisabled: disabled '] }]\n})\nexport class RdxDropdownMenuItemDirective {\n /*\n * When true, prevents the user from interacting with the item.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n alias: 'rdxDisabled'\n });\n}\n","import { Directive } from '@angular/core';\n\nimport { RdxMenuSeparatorDirective } from '@radix-ng/primitives/menu';\n\n@Directive({\n selector: '[DropdownMenuSeparator]',\n standalone: true,\n hostDirectives: [RdxMenuSeparatorDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxDropdownMenuSeparatorDirective {}\n","import { Directive } from '@angular/core';\n\nimport { RdxMenuContentDirective } from '@radix-ng/primitives/menu';\n\n@Directive({\n selector: '[DropdownMenuContent]',\n standalone: true,\n hostDirectives: [RdxMenuContentDirective]\n})\nexport class RdxDropdownMenuContentDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[DropdownMenuLabel]',\n standalone: true\n})\nexport class RdxDropdownMenuLabelDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, inject, ElementRef, Directive, Input } from '@angular/core';
2
+ import { input, computed, inject, ElementRef, Directive } from '@angular/core';
3
3
 
4
4
  let idIterator = 0;
5
5
  class RdxLabelRootDirective {
6
6
  constructor() {
7
- this.id = `rdx-label-${idIterator++}`;
7
+ this.id = input(`rdx-label-${idIterator++}`);
8
+ this.elementId = computed(() => (this.id() ? this.id() : null));
8
9
  /**
9
10
  * The id of the element the label is associated with.
10
11
  * @default '-'
@@ -29,7 +30,7 @@ class RdxLabelRootDirective {
29
30
  }
30
31
  }
31
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxLabelRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
32
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxLabelRootDirective, isStandalone: true, selector: "label[LabelRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, htmlFor: { classPropertyName: "htmlFor", publicName: "htmlFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "onMouseDown($event)" }, properties: { "attr.id": "this.id", "attr.for": "htmlFor ? htmlFor() : null" } }, exportAs: ["LabelRoot"], ngImport: i0 }); }
33
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxLabelRootDirective, isStandalone: true, selector: "label[LabelRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, htmlFor: { classPropertyName: "htmlFor", publicName: "htmlFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "onMouseDown($event)" }, properties: { "attr.id": "this.elementId()", "attr.for": "htmlFor ? htmlFor() : null" } }, exportAs: ["LabelRoot"], ngImport: i0 }); }
33
34
  }
34
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxLabelRootDirective, decorators: [{
35
36
  type: Directive,
@@ -38,14 +39,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
38
39
  exportAs: 'LabelRoot',
39
40
  standalone: true,
40
41
  host: {
41
- '[attr.id]': 'this.id',
42
+ '[attr.id]': 'this.elementId()',
42
43
  '[attr.for]': 'htmlFor ? htmlFor() : null',
43
44
  '(mousedown)': 'onMouseDown($event)'
44
45
  }
45
46
  }]
46
- }], propDecorators: { id: [{
47
- type: Input
48
- }] } });
47
+ }] });
49
48
 
50
49
  /**
51
50
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-label.mjs","sources":["../../../packages/primitives/label/src/label-root.directive.ts","../../../packages/primitives/label/radix-ng-primitives-label.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Input, input } from '@angular/core';\n\nlet idIterator = 0;\n\n@Directive({\n selector: 'label[LabelRoot]',\n exportAs: 'LabelRoot',\n standalone: true,\n host: {\n '[attr.id]': 'this.id',\n '[attr.for]': 'htmlFor ? htmlFor() : null',\n '(mousedown)': 'onMouseDown($event)'\n }\n})\nexport class RdxLabelRootDirective {\n @Input() id = `rdx-label-${idIterator++}`;\n\n /**\n * The id of the element the label is associated with.\n * @default '-'\n */\n readonly htmlFor = input<string>('');\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // prevent text selection when double-clicking label\n // The main problem with double-clicks in a web app is that\n // you will have to create special code to handle this on touch enabled devices.\n onMouseDown(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n // only prevent text selection if clicking inside the label itself\n if (['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {\n return;\n }\n\n // prevent text selection when double-clicking label\n if (\n this.elementRef.nativeElement.contains(target) &&\n !event.defaultPrevented &&\n event.detail > 1\n ) {\n event.preventDefault();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,IAAI,UAAU,GAAG,CAAC,CAAC;MAYN,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;AAWa,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,UAAA,EAAa,UAAU,EAAE,EAAE,CAAC;AAE1C;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAEpB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC,CAAC;AAsBjE,KAAA;;;;AAjBG,IAAA,WAAW,CAAC,KAAiB,EAAA;AACzB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;;AAG3C,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACpE,OAAO;SACV;;QAGD,IACI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9C,CAAC,KAAK,CAAC,gBAAgB;AACvB,YAAA,KAAK,CAAC,MAAM,GAAG,CAAC,EAClB;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;8GA9BQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,SAAS;AACtB,wBAAA,YAAY,EAAE,4BAA4B;AAC1C,wBAAA,aAAa,EAAE,qBAAqB;AACvC,qBAAA;AACJ,iBAAA,CAAA;8BAEY,EAAE,EAAA,CAAA;sBAAV,KAAK;;;ACfV;;AAEG;;;;"}
1
+ {"version":3,"file":"radix-ng-primitives-label.mjs","sources":["../../../packages/primitives/label/src/label-root.directive.ts","../../../packages/primitives/label/radix-ng-primitives-label.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input } from '@angular/core';\n\nlet idIterator = 0;\n\n@Directive({\n selector: 'label[LabelRoot]',\n exportAs: 'LabelRoot',\n standalone: true,\n host: {\n '[attr.id]': 'this.elementId()',\n '[attr.for]': 'htmlFor ? htmlFor() : null',\n '(mousedown)': 'onMouseDown($event)'\n }\n})\nexport class RdxLabelRootDirective {\n readonly id = input<string>(`rdx-label-${idIterator++}`);\n protected readonly elementId = computed(() => (this.id() ? this.id() : null));\n /**\n * The id of the element the label is associated with.\n * @default '-'\n */\n readonly htmlFor = input<string>('');\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // prevent text selection when double-clicking label\n // The main problem with double-clicks in a web app is that\n // you will have to create special code to handle this on touch enabled devices.\n onMouseDown(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n // only prevent text selection if clicking inside the label itself\n if (['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {\n return;\n }\n\n // prevent text selection when double-clicking label\n if (\n this.elementRef.nativeElement.contains(target) &&\n !event.defaultPrevented &&\n event.detail > 1\n ) {\n event.preventDefault();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,IAAI,UAAU,GAAG,CAAC,CAAC;MAYN,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;QAWa,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,CAAA,UAAA,EAAa,UAAU,EAAE,CAAA,CAAE,CAAC,CAAC;QACtC,IAAS,CAAA,SAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9E;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAEpB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC,CAAC;AAsBjE,KAAA;;;;AAjBG,IAAA,WAAW,CAAC,KAAiB,EAAA;AACzB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;;AAG3C,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACpE,OAAO;SACV;;QAGD,IACI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9C,CAAC,KAAK,CAAC,gBAAgB;AACvB,YAAA,KAAK,CAAC,MAAM,GAAG,CAAC,EAClB;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;8GA9BQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,YAAY,EAAE,4BAA4B;AAC1C,wBAAA,aAAa,EAAE,qBAAqB;AACvC,qBAAA;AACJ,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, inject, input, booleanAttribute, computed, effect, NgModule } from '@angular/core';
2
+ import { Directive, inject, input, booleanAttribute, computed, effect, Output, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/menu';
4
4
  import { CdkMenu, CdkMenuGroup, CdkMenuItem } from '@angular/cdk/menu';
5
5
  import * as i1$1 from '@radix-ng/primitives/separator';
@@ -51,17 +51,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
51
51
  class RdxMenuItemDirective {
52
52
  constructor() {
53
53
  this.cdkMenuItem = inject(CdkMenuItem, { host: true });
54
+ // When true, prevents the user from interacting with the item.
54
55
  this.disabled = input(false, {
55
56
  transform: booleanAttribute,
56
57
  alias: 'rdxDisabled'
57
58
  });
58
59
  this.disabledState = computed(() => this.disabled());
60
+ // Event handler called when the user selects an item (via mouse or keyboard).
61
+ this.onSelect = this.cdkMenuItem.triggered;
59
62
  effect(() => {
60
63
  this.cdkMenuItem.disabled = this.disabled();
61
64
  });
62
65
  }
63
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxMenuItemDirective, isStandalone: true, selector: "[MenuItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "rdxDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "menuitem", "type": "button", "tabindex": "0" }, properties: { "attr.data-orientation": "'horizontal'", "attr.data-disabled": "disabledState() ? '' : undefined", "disabled": "disabledState()" } }, hostDirectives: [{ directive: i1.CdkMenuItem }], ngImport: i0 }); }
67
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxMenuItemDirective, isStandalone: true, selector: "[MenuItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "rdxDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect" }, host: { attributes: { "role": "menuitem", "type": "button", "tabindex": "0" }, properties: { "attr.data-orientation": "'horizontal'", "attr.data-disabled": "disabledState() ? '' : undefined", "disabled": "disabledState()" } }, hostDirectives: [{ directive: i1.CdkMenuItem }], ngImport: i0 }); }
65
68
  }
66
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxMenuItemDirective, decorators: [{
67
70
  type: Directive,
@@ -74,11 +77,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
74
77
  type: 'button',
75
78
  tabindex: '0',
76
79
  '[attr.data-orientation]': "'horizontal'",
80
+ //'[attr.data-highlighted]': "",
77
81
  '[attr.data-disabled]': "disabledState() ? '' : undefined",
78
82
  '[disabled]': 'disabledState()'
79
83
  }
80
84
  }]
81
- }], ctorParameters: () => [] });
85
+ }], ctorParameters: () => [], propDecorators: { onSelect: [{
86
+ type: Output
87
+ }] } });
82
88
 
83
89
  class RdxMenuLabelDirective {
84
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxMenuLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-menu.mjs","sources":["../../../packages/primitives/menu/src/menu-content.directive.ts","../../../packages/primitives/menu/src/menu-directive.ts","../../../packages/primitives/menu/src/menu-group.directive.ts","../../../packages/primitives/menu/src/menu-item.directive.ts","../../../packages/primitives/menu/src/menu-label.directive.ts","../../../packages/primitives/menu/src/menu-separator.directive.ts","../../../packages/primitives/menu/index.ts","../../../packages/primitives/menu/radix-ng-primitives-menu.ts"],"sourcesContent":["import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[MenuContent]',\n standalone: true,\n hostDirectives: [CdkMenu]\n})\nexport class RdxMenuContentDirective {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[Menu],[MenuSub]',\n standalone: true,\n host: {},\n hostDirectives: [CdkMenu]\n})\nexport class RdxMenuDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[MenuGroup]',\n standalone: true,\n hostDirectives: [CdkMenuGroup],\n host: {\n role: 'group'\n }\n})\nexport class RdxMenuGroupDirective {}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[MenuItem]',\n standalone: true,\n hostDirectives: [CdkMenuItem],\n host: {\n role: 'menuitem',\n type: 'button',\n tabindex: '0',\n '[attr.data-orientation]': \"'horizontal'\",\n '[attr.data-disabled]': \"disabledState() ? '' : undefined\",\n '[disabled]': 'disabledState()'\n }\n})\nexport class RdxMenuItemDirective {\n private readonly cdkMenuItem = inject(CdkMenuItem, { host: true });\n\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n alias: 'rdxDisabled'\n });\n\n protected readonly disabledState = computed(() => this.disabled());\n\n constructor() {\n effect(() => {\n this.cdkMenuItem.disabled = this.disabled();\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[MenuLabel]',\n standalone: true\n})\nexport class RdxMenuLabelDirective {}\n","import { Directive } from '@angular/core';\n\nimport { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\n\n@Directive({\n selector: '[MenuSeparator]',\n standalone: true,\n hostDirectives: [RdxSeparatorRootDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxMenuSeparatorDirective {}\n","import { NgModule } from '@angular/core';\n\nimport { RdxMenuContentDirective } from './src/menu-content.directive';\nimport { RdxMenuDirective } from './src/menu-directive';\nimport { RdxMenuGroupDirective } from './src/menu-group.directive';\nimport { RdxMenuItemDirective } from './src/menu-item.directive';\nimport { RdxMenuLabelDirective } from './src/menu-label.directive';\nimport { RdxMenuSeparatorDirective } from './src/menu-separator.directive';\n\nexport * from './src/menu-directive';\nexport * from './src/menu-group.directive';\nexport * from './src/menu-item.directive';\nexport * from './src/menu-separator.directive';\nexport * from './src/menu-content.directive';\nexport * from './src/menu-label.directive';\n\nconst menuImports = [\n RdxMenuDirective,\n RdxMenuGroupDirective,\n RdxMenuItemDirective,\n RdxMenuSeparatorDirective,\n RdxMenuContentDirective,\n RdxMenuLabelDirective\n];\n\n@NgModule({\n imports: [...menuImports],\n exports: [...menuImports]\n})\nexport class MenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-menu.mjs","sources":["../../../packages/primitives/menu/src/menu-content.directive.ts","../../../packages/primitives/menu/src/menu-directive.ts","../../../packages/primitives/menu/src/menu-group.directive.ts","../../../packages/primitives/menu/src/menu-item.directive.ts","../../../packages/primitives/menu/src/menu-label.directive.ts","../../../packages/primitives/menu/src/menu-separator.directive.ts","../../../packages/primitives/menu/index.ts","../../../packages/primitives/menu/radix-ng-primitives-menu.ts"],"sourcesContent":["import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[MenuContent]',\n standalone: true,\n hostDirectives: [CdkMenu]\n})\nexport class RdxMenuContentDirective {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[Menu],[MenuSub]',\n standalone: true,\n host: {},\n hostDirectives: [CdkMenu]\n})\nexport class RdxMenuDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[MenuGroup]',\n standalone: true,\n hostDirectives: [CdkMenuGroup],\n host: {\n role: 'group'\n }\n})\nexport class RdxMenuGroupDirective {}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n Output\n} from '@angular/core';\n\ntype radixProps = {\n disabled: boolean;\n onSelect: () => {};\n};\n\n@Directive({\n selector: '[MenuItem]',\n standalone: true,\n hostDirectives: [CdkMenuItem],\n host: {\n role: 'menuitem',\n type: 'button',\n tabindex: '0',\n '[attr.data-orientation]': \"'horizontal'\",\n //'[attr.data-highlighted]': \"\",\n '[attr.data-disabled]': \"disabledState() ? '' : undefined\",\n '[disabled]': 'disabledState()'\n }\n})\nexport class RdxMenuItemDirective {\n private readonly cdkMenuItem = inject(CdkMenuItem, { host: true });\n\n // When true, prevents the user from interacting with the item.\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n alias: 'rdxDisabled'\n });\n\n protected readonly disabledState = computed(() => this.disabled());\n\n // Event handler called when the user selects an item (via mouse or keyboard).\n @Output()\n onSelect = this.cdkMenuItem.triggered;\n\n constructor() {\n effect(() => {\n this.cdkMenuItem.disabled = this.disabled();\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[MenuLabel]',\n standalone: true\n})\nexport class RdxMenuLabelDirective {}\n","import { Directive } from '@angular/core';\n\nimport { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\n\n@Directive({\n selector: '[MenuSeparator]',\n standalone: true,\n hostDirectives: [RdxSeparatorRootDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxMenuSeparatorDirective {}\n","import { NgModule } from '@angular/core';\n\nimport { RdxMenuContentDirective } from './src/menu-content.directive';\nimport { RdxMenuDirective } from './src/menu-directive';\nimport { RdxMenuGroupDirective } from './src/menu-group.directive';\nimport { RdxMenuItemDirective } from './src/menu-item.directive';\nimport { RdxMenuLabelDirective } from './src/menu-label.directive';\nimport { RdxMenuSeparatorDirective } from './src/menu-separator.directive';\n\nexport * from './src/menu-directive';\nexport * from './src/menu-group.directive';\nexport * from './src/menu-item.directive';\nexport * from './src/menu-separator.directive';\nexport * from './src/menu-content.directive';\nexport * from './src/menu-label.directive';\n\nconst menuImports = [\n RdxMenuDirective,\n RdxMenuGroupDirective,\n RdxMenuItemDirective,\n RdxMenuSeparatorDirective,\n RdxMenuContentDirective,\n RdxMenuLabelDirective\n];\n\n@NgModule({\n imports: [...menuImports],\n exports: [...menuImports]\n})\nexport class MenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -176,7 +176,7 @@ class RdxMenuBarTriggerDirective {
176
176
  }
177
177
  }
178
178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxMenuBarTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
179
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxMenuBarTriggerDirective, isStandalone: true, selector: "[MenuBarTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "menuitem" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "cdkTrigger.isOpen()", "attr.data-state": "cdkTrigger.isOpen() ? 'open': 'close'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "MenuBarTrigger"] }], ngImport: i0 }); }
179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxMenuBarTriggerDirective, isStandalone: true, selector: "[MenuBarTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "menuitem" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "cdkTrigger.isOpen()", "attr.data-state": "cdkTrigger.isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "MenuBarTrigger"] }], ngImport: i0 }); }
180
180
  }
181
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxMenuBarTriggerDirective, decorators: [{
182
182
  type: Directive,
@@ -189,7 +189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
189
189
  role: 'menuitem',
190
190
  '[attr.aria-haspopup]': "'menu'",
191
191
  '[attr.aria-expanded]': 'cdkTrigger.isOpen()',
192
- '[attr.data-state]': "cdkTrigger.isOpen() ? 'open': 'close'",
192
+ '[attr.data-state]': "cdkTrigger.isOpen() ? 'open': 'closed'",
193
193
  '[attr.data-disabled]': "disabled() ? '' : undefined",
194
194
  '[disabled]': 'disabled()',
195
195
  '(pointerdown)': 'onPointerDown($event)'