@radix-ng/primitives 0.1.0 → 0.2.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 (148) hide show
  1. package/README.md +2 -4
  2. package/checkbox/src/checkbox-indicator.directive.d.ts +6 -0
  3. package/checkbox/src/checkbox.directive.d.ts +71 -0
  4. package/checkbox/src/checkbox.token.d.ts +4 -0
  5. package/esm2022/checkbox/index.mjs +4 -0
  6. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +5 -0
  7. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +23 -0
  8. package/esm2022/checkbox/src/checkbox.directive.mjs +135 -0
  9. package/esm2022/checkbox/src/checkbox.token.mjs +6 -0
  10. package/esm2022/index.mjs +2 -0
  11. package/esm2022/label/index.mjs +2 -0
  12. package/esm2022/label/radix-ng-primitives-label.mjs +5 -0
  13. package/esm2022/label/src/label.directive.mjs +46 -0
  14. package/esm2022/progress/index.mjs +3 -0
  15. package/esm2022/progress/radix-ng-primitives-progress.mjs +5 -0
  16. package/esm2022/progress/src/progress-indicator.directive.mjs +23 -0
  17. package/esm2022/progress/src/progress.directive.mjs +62 -0
  18. package/esm2022/progress/src/progress.token.mjs +6 -0
  19. package/esm2022/radio/index.mjs +6 -0
  20. package/esm2022/radio/radix-ng-primitives-radio.mjs +5 -0
  21. package/esm2022/radio/src/radio-group.directive.mjs +108 -0
  22. package/esm2022/radio/src/radio-group.token.mjs +6 -0
  23. package/esm2022/radio/src/radio-indicator.directive.mjs +30 -0
  24. package/esm2022/radio/src/radio-item.directive.mjs +79 -0
  25. package/esm2022/radio/src/radio-item.token.mjs +6 -0
  26. package/esm2022/radix-ng-primitives.mjs +5 -0
  27. package/esm2022/roving-focus/index.mjs +5 -0
  28. package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +5 -0
  29. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +115 -0
  30. package/esm2022/roving-focus/src/roving-focus-group.token.mjs +9 -0
  31. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +91 -0
  32. package/esm2022/roving-focus/src/roving-focus-item.token.mjs +6 -0
  33. package/esm2022/separator/index.mjs +2 -0
  34. package/esm2022/separator/radix-ng-primitives-separator.mjs +5 -0
  35. package/esm2022/separator/src/separator.directive.mjs +37 -0
  36. package/esm2022/switch/index.mjs +4 -0
  37. package/esm2022/switch/radix-ng-primitives-switch.mjs +5 -0
  38. package/esm2022/switch/src/switch-thumb.directive.mjs +25 -0
  39. package/esm2022/switch/src/switch.directive.mjs +125 -0
  40. package/esm2022/switch/src/switch.token.mjs +6 -0
  41. package/esm2022/visually-hidden/index.mjs +2 -0
  42. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +5 -0
  43. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +42 -0
  44. package/fesm2022/radix-ng-primitives-checkbox.mjs +166 -0
  45. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -0
  46. package/fesm2022/radix-ng-primitives-label.mjs +53 -0
  47. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -0
  48. package/fesm2022/radix-ng-primitives-progress.mjs +93 -0
  49. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-radio.mjs +221 -0
  51. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -0
  52. package/fesm2022/radix-ng-primitives-roving-focus.mjs +220 -0
  53. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -0
  54. package/fesm2022/radix-ng-primitives-separator.mjs +44 -0
  55. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -0
  56. package/fesm2022/radix-ng-primitives-switch.mjs +158 -0
  57. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +49 -0
  59. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -0
  60. package/fesm2022/radix-ng-primitives.mjs +4 -0
  61. package/fesm2022/radix-ng-primitives.mjs.map +1 -0
  62. package/label/src/label.directive.d.ts +14 -0
  63. package/package.json +88 -24
  64. package/progress/src/progress-indicator.directive.d.ts +6 -0
  65. package/progress/src/progress.directive.d.ts +26 -0
  66. package/progress/src/progress.token.d.ts +4 -0
  67. package/radio/README.md +1 -0
  68. package/radio/index.d.ts +5 -0
  69. package/radio/src/radio-group.directive.d.ts +65 -0
  70. package/radio/src/radio-group.token.d.ts +4 -0
  71. package/radio/src/radio-indicator.directive.d.ts +13 -0
  72. package/radio/src/radio-item.directive.d.ts +36 -0
  73. package/radio/src/radio-item.token.d.ts +4 -0
  74. package/roving-focus/src/roving-focus-group.directive.d.ts +55 -0
  75. package/roving-focus/src/roving-focus-group.token.d.ts +7 -0
  76. package/roving-focus/src/roving-focus-item.directive.d.ts +52 -0
  77. package/roving-focus/src/roving-focus-item.token.d.ts +4 -0
  78. package/separator/src/separator.directive.d.ts +16 -0
  79. package/switch/src/switch-thumb.directive.d.ts +9 -0
  80. package/switch/src/switch.directive.d.ts +73 -0
  81. package/switch/src/switch.token.d.ts +4 -0
  82. package/visually-hidden/src/visually-hidden.directive.d.ts +11 -0
  83. package/.docs/overview/accessibility.docs.mdx +0 -45
  84. package/.docs/overview/installation.docs.mdx +0 -15
  85. package/.docs/overview/introduction.docs.mdx +0 -59
  86. package/.docs/utils/storybook.ts +0 -30
  87. package/.eslintrc.json +0 -56
  88. package/.storybook/helpers/bages-config.ts +0 -43
  89. package/.storybook/main.ts +0 -24
  90. package/.storybook/manager-head.html +0 -76
  91. package/.storybook/manager.ts +0 -6
  92. package/.storybook/preview.ts +0 -58
  93. package/.storybook/rdxTheme.ts +0 -8
  94. package/.storybook/tsconfig.json +0 -20
  95. package/CHANGELOG.md +0 -6
  96. package/checkbox/ng-package.json +0 -5
  97. package/checkbox/src/checkbox-indicator.directive.ts +0 -15
  98. package/checkbox/src/checkbox.directive.ts +0 -138
  99. package/checkbox/src/checkbox.token.ts +0 -8
  100. package/checkbox/stories/checkbox.component.ts +0 -50
  101. package/checkbox/stories/checkbox.stories.ts +0 -29
  102. package/checkbox/stories/style.css +0 -265
  103. package/jest.config.ts +0 -22
  104. package/label/ng-package.json +0 -5
  105. package/label/src/label.directive.ts +0 -36
  106. package/label/stories/label.docs.mdx +0 -40
  107. package/label/stories/label.stories.ts +0 -63
  108. package/ng-package.json +0 -7
  109. package/progress/ng-package.json +0 -5
  110. package/progress/src/progress-indicator.directive.ts +0 -15
  111. package/progress/src/progress.directive.ts +0 -51
  112. package/progress/src/progress.token.ts +0 -8
  113. package/progress/stories/progress.docs.mdx +0 -66
  114. package/progress/stories/progress.stories.ts +0 -61
  115. package/project.json +0 -90
  116. package/roving-focus/ng-package.json +0 -5
  117. package/roving-focus/src/roving-focus-group.directive.ts +0 -135
  118. package/roving-focus/src/roving-focus-group.token.ts +0 -13
  119. package/roving-focus/src/roving-focus-item.directive.ts +0 -98
  120. package/roving-focus/src/roving-focus-item.token.ts +0 -10
  121. package/separator/ng-package.json +0 -5
  122. package/separator/src/separator.directive.spec.ts +0 -59
  123. package/separator/src/separator.directive.ts +0 -24
  124. package/separator/stories/separator.docs.mdx +0 -38
  125. package/separator/stories/separator.stories.ts +0 -91
  126. package/switch/ng-package.json +0 -5
  127. package/switch/src/switch-thumb.directive.ts +0 -17
  128. package/switch/src/switch.directive.ts +0 -132
  129. package/switch/src/switch.token.ts +0 -8
  130. package/switch/stories/switch.docs.mdx +0 -74
  131. package/switch/stories/switch.stories.ts +0 -76
  132. package/test-setup.ts +0 -8
  133. package/tsconfig.json +0 -32
  134. package/tsconfig.lib.json +0 -19
  135. package/tsconfig.lib.prod.json +0 -9
  136. package/tsconfig.spec.json +0 -21
  137. package/visually-hidden/ng-package.json +0 -5
  138. package/visually-hidden/src/visually-hidden.directive.spec.ts +0 -48
  139. package/visually-hidden/src/visually-hidden.directive.ts +0 -35
  140. package/visually-hidden/stories/visually-hidden.docs.mdx +0 -35
  141. /package/checkbox/{index.ts → index.d.ts} +0 -0
  142. /package/{index.ts → index.d.ts} +0 -0
  143. /package/label/{index.ts → index.d.ts} +0 -0
  144. /package/progress/{index.ts → index.d.ts} +0 -0
  145. /package/roving-focus/{index.ts → index.d.ts} +0 -0
  146. /package/separator/{index.ts → index.d.ts} +0 -0
  147. /package/switch/{index.ts → index.d.ts} +0 -0
  148. /package/visually-hidden/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,221 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, EventEmitter, booleanAttribute, Directive, Input, Output, HostListener } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i1 from '@radix-ng/primitives/roving-focus';
5
+ import { RovingFocusGroupDirective, RovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';
6
+
7
+ const RadioGroupToken = new InjectionToken('RadioGroupToken');
8
+ function injectRadioGroup() {
9
+ return inject(RadioGroupToken);
10
+ }
11
+
12
+ class RadioGroupDirective {
13
+ constructor() {
14
+ /**
15
+ * Whether the radio group is disabled.
16
+ */
17
+ this.disabled = false;
18
+ /**
19
+ * The orientation of the radio group.
20
+ * @default 'horizontal'
21
+ */
22
+ this.orientation = 'horizontal';
23
+ /**
24
+ * Event emitted when the value of the radio group changes.
25
+ */
26
+ this.valueChange = new EventEmitter();
27
+ }
28
+ /**
29
+ * Select a radio item.
30
+ * @param value The value of the radio item to select.
31
+ */
32
+ select(value) {
33
+ this.value = value;
34
+ this.valueChange.emit(value);
35
+ this.onChange?.(value);
36
+ }
37
+ /**
38
+ * Update the value of the radio group.
39
+ * @param value The new value of the radio group.
40
+ * @internal
41
+ */
42
+ writeValue(value) {
43
+ this.value = value;
44
+ }
45
+ /**
46
+ * Register a callback function to call when the value of the radio group changes.
47
+ * @param fn The callback function to call when the value of the radio group changes.
48
+ * @internal
49
+ */
50
+ registerOnChange(fn) {
51
+ this.onChange = fn;
52
+ }
53
+ registerOnTouched(fn) {
54
+ this.onTouched = fn;
55
+ }
56
+ /**
57
+ * Set the disabled state of the radio group.
58
+ * @param isDisabled Whether the radio group is disabled.
59
+ * @internal
60
+ */
61
+ setDisabledState(isDisabled) {
62
+ this.disabled = isDisabled;
63
+ }
64
+ /**
65
+ * When focus leaves the radio group, mark it as touched.
66
+ * @internal
67
+ */
68
+ onFocusout() {
69
+ this.onTouched?.();
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RadioGroupDirective, isStandalone: true, selector: "[rdxRadioGroup]", inputs: { value: ["rdxRadioGroupValue", "value"], disabled: ["rdxRadioGroupDisabled", "disabled", booleanAttribute], orientation: ["rdxRadioGroupOrientation", "orientation"] }, outputs: { valueChange: "rdxRadioGroupValueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "focusout": "onFocusout()" }, properties: { "attr.aria-orientation": "orientation", "attr.data-disabled": "disabled ? \"\" : null" } }, providers: [
73
+ { provide: RadioGroupToken, useExisting: RadioGroupDirective },
74
+ { provide: NG_VALUE_ACCESSOR, useExisting: RadioGroupDirective, multi: true }
75
+ ], hostDirectives: [{ directive: i1.RovingFocusGroupDirective }], ngImport: i0 }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioGroupDirective, decorators: [{
78
+ type: Directive,
79
+ args: [{
80
+ selector: '[rdxRadioGroup]',
81
+ standalone: true,
82
+ providers: [
83
+ { provide: RadioGroupToken, useExisting: RadioGroupDirective },
84
+ { provide: NG_VALUE_ACCESSOR, useExisting: RadioGroupDirective, multi: true }
85
+ ],
86
+ hostDirectives: [RovingFocusGroupDirective],
87
+ host: {
88
+ role: 'radiogroup',
89
+ '[attr.aria-orientation]': 'orientation',
90
+ '[attr.data-disabled]': 'disabled ? "" : null'
91
+ }
92
+ }]
93
+ }], propDecorators: { value: [{
94
+ type: Input,
95
+ args: ['rdxRadioGroupValue']
96
+ }], disabled: [{
97
+ type: Input,
98
+ args: [{
99
+ alias: 'rdxRadioGroupDisabled',
100
+ transform: booleanAttribute
101
+ }]
102
+ }], orientation: [{
103
+ type: Input,
104
+ args: ['rdxRadioGroupOrientation']
105
+ }], valueChange: [{
106
+ type: Output,
107
+ args: ['rdxRadioGroupValueChange']
108
+ }], onFocusout: [{
109
+ type: HostListener,
110
+ args: ['focusout']
111
+ }] } });
112
+
113
+ const RadioItemToken = new InjectionToken('RadioItemToken');
114
+ function injectRadioItem() {
115
+ return inject(RadioItemToken);
116
+ }
117
+
118
+ class RadioItemDirective {
119
+ constructor() {
120
+ /**
121
+ * Access the radio group.
122
+ */
123
+ this.radioGroup = injectRadioGroup();
124
+ /**
125
+ * Whether the radio item is disabled.
126
+ * @default false
127
+ */
128
+ this.disabled = false;
129
+ }
130
+ /**
131
+ * Handle keydown events.
132
+ * @param event The keydown event.
133
+ * @internal
134
+ */
135
+ onKeydown(event) {
136
+ // According to WAI ARIA, radio groups don't activate items on enter keypress
137
+ if (event.key === 'Enter') {
138
+ event.preventDefault();
139
+ }
140
+ }
141
+ /**
142
+ * When the item receives focus, select it.
143
+ * @internal
144
+ */
145
+ onFocus() {
146
+ this.radioGroup.select(this.value);
147
+ }
148
+ /**
149
+ * When the item receives a click, select it.
150
+ * @internal
151
+ */
152
+ onClick() {
153
+ this.radioGroup.select(this.value);
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
156
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RadioItemDirective, isStandalone: true, selector: "button[rdxRadioItem]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute] }, host: { attributes: { "type": "button", "role": "radio" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()", "click": "onClick()" }, properties: { "attr.aria-checked": "radioGroup.value === value ? \"true\" : \"false\"", "attr.data-disabled": "disabled ? \"\" : null", "attr.data-state": "radioGroup.value === value ? \"checked\" : \"unchecked\"" } }, providers: [{ provide: RadioItemToken, useExisting: RadioItemDirective }], hostDirectives: [{ directive: i1.RovingFocusItemDirective }], ngImport: i0 }); }
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioItemDirective, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: 'button[rdxRadioItem]',
162
+ standalone: true,
163
+ hostDirectives: [RovingFocusItemDirective],
164
+ providers: [{ provide: RadioItemToken, useExisting: RadioItemDirective }],
165
+ host: {
166
+ type: 'button',
167
+ role: 'radio',
168
+ '[attr.aria-checked]': 'radioGroup.value === value ? "true" : "false"',
169
+ '[attr.data-disabled]': 'disabled ? "" : null',
170
+ '[attr.data-state]': 'radioGroup.value === value ? "checked" : "unchecked"'
171
+ }
172
+ }]
173
+ }], propDecorators: { value: [{
174
+ type: Input,
175
+ args: [{ required: true }]
176
+ }], disabled: [{
177
+ type: Input,
178
+ args: [{ transform: booleanAttribute }]
179
+ }], onKeydown: [{
180
+ type: HostListener,
181
+ args: ['keydown', ['$event']]
182
+ }], onFocus: [{
183
+ type: HostListener,
184
+ args: ['focus']
185
+ }], onClick: [{
186
+ type: HostListener,
187
+ args: ['click']
188
+ }] } });
189
+
190
+ class RadioIndicatorDirective {
191
+ constructor() {
192
+ /**
193
+ * Access the radio group.
194
+ */
195
+ this.radioGroup = injectRadioGroup();
196
+ /**
197
+ * Access the radio group item.
198
+ */
199
+ this.radioItem = injectRadioItem();
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RadioIndicatorDirective, isStandalone: true, selector: "[rdxRadioIndicator]", host: { properties: { "attr.data-state": "radioGroup.value === this.radioItem.value ? \"checked\" : \"unchecked\"", "attr.data-disabled": "radioItem.disabled ? \"\" : null" } }, ngImport: i0 }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RadioIndicatorDirective, decorators: [{
205
+ type: Directive,
206
+ args: [{
207
+ selector: '[rdxRadioIndicator]',
208
+ standalone: true,
209
+ host: {
210
+ '[attr.data-state]': 'radioGroup.value === this.radioItem.value ? "checked" : "unchecked"',
211
+ '[attr.data-disabled]': 'radioItem.disabled ? "" : null'
212
+ }
213
+ }]
214
+ }] });
215
+
216
+ /**
217
+ * Generated bundle index. Do not edit.
218
+ */
219
+
220
+ export { RadioGroupDirective, RadioGroupToken, RadioIndicatorDirective, RadioItemDirective, RadioItemToken, injectRadioGroup, injectRadioItem };
221
+ //# sourceMappingURL=radix-ng-primitives-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-radio.mjs","sources":["../../../packages/primitives/radio/src/radio-group.token.ts","../../../packages/primitives/radio/src/radio-group.directive.ts","../../../packages/primitives/radio/src/radio-item.token.ts","../../../packages/primitives/radio/src/radio-item.directive.ts","../../../packages/primitives/radio/src/radio-indicator.directive.ts","../../../packages/primitives/radio/radix-ng-primitives-radio.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { RadioGroupDirective } from './radio-group.directive';\n\nexport const RadioGroupToken = new InjectionToken<RadioGroupDirective>('RadioGroupToken');\n\nexport function injectRadioGroup(): RadioGroupDirective {\n return inject(RadioGroupToken);\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n booleanAttribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { RovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';\nimport { RadioGroupToken } from './radio-group.token';\n\n@Directive({\n selector: '[rdxRadioGroup]',\n standalone: true,\n providers: [\n { provide: RadioGroupToken, useExisting: RadioGroupDirective },\n { provide: NG_VALUE_ACCESSOR, useExisting: RadioGroupDirective, multi: true }\n ],\n hostDirectives: [RovingFocusGroupDirective],\n host: {\n role: 'radiogroup',\n '[attr.aria-orientation]': 'orientation',\n '[attr.data-disabled]': 'disabled ? \"\" : null'\n }\n})\nexport class RadioGroupDirective implements ControlValueAccessor {\n /**\n * The value of the radio group.\n */\n @Input('rdxRadioGroupValue') value?: string;\n\n /**\n * Whether the radio group is disabled.\n */\n @Input({\n alias: 'rdxRadioGroupDisabled',\n transform: booleanAttribute\n })\n disabled = false;\n\n /**\n * The orientation of the radio group.\n * @default 'horizontal'\n */\n @Input('rdxRadioGroupOrientation') orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Event emitted when the value of the radio group changes.\n */\n @Output('rdxRadioGroupValueChange') readonly valueChange = new EventEmitter<string>();\n\n /**\n * The callback function to call when the value of the radio group changes.\n * @internal\n */\n private onChange?: (value: string) => void;\n\n /**\n * The callback function to call when the radio group is touched.\n * @internal\n */\n private onTouched?: () => void;\n\n /**\n * Select a radio item.\n * @param value The value of the radio item to select.\n */\n select(value: string): void {\n this.value = value;\n this.valueChange.emit(value);\n this.onChange?.(value);\n }\n\n /**\n * Update the value of the radio group.\n * @param value The new value of the radio group.\n * @internal\n */\n writeValue(value: string): void {\n this.value = value;\n }\n\n /**\n * Register a callback function to call when the value of the radio group changes.\n * @param fn The callback function to call when the value of the radio group changes.\n * @internal\n */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Set the disabled state of the radio group.\n * @param isDisabled Whether the radio group is disabled.\n * @internal\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * When focus leaves the radio group, mark it as touched.\n * @internal\n */\n @HostListener('focusout')\n protected onFocusout(): void {\n this.onTouched?.();\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { RadioItemDirective } from './radio-item.directive';\n\nexport const RadioItemToken = new InjectionToken<RadioItemDirective>('RadioItemToken');\n\nexport function injectRadioItem(): RadioItemDirective {\n return inject(RadioItemToken);\n}\n","import { Directive, HostListener, Input, booleanAttribute } from '@angular/core';\nimport { injectRadioGroup } from './radio-group.token';\nimport { RadioItemToken } from './radio-item.token';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { RovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\n\n@Directive({\n selector: 'button[rdxRadioItem]',\n standalone: true,\n hostDirectives: [RovingFocusItemDirective],\n providers: [{ provide: RadioItemToken, useExisting: RadioItemDirective }],\n host: {\n type: 'button',\n role: 'radio',\n '[attr.aria-checked]': 'radioGroup.value === value ? \"true\" : \"false\"',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.data-state]': 'radioGroup.value === value ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RadioItemDirective {\n /**\n * Access the radio group.\n */\n protected readonly radioGroup = injectRadioGroup();\n\n /**\n * The value of the radio item.\n */\n @Input({ required: true }) value!: string;\n\n /**\n * Whether the radio item is disabled.\n * @default false\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Handle keydown events.\n * @param event The keydown event.\n * @internal\n */\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n /**\n * When the item receives focus, select it.\n * @internal\n */\n @HostListener('focus')\n protected onFocus(): void {\n this.radioGroup.select(this.value);\n }\n\n /**\n * When the item receives a click, select it.\n * @internal\n */\n @HostListener('click')\n protected onClick(): void {\n this.radioGroup.select(this.value);\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectRadioGroup } from './radio-group.token';\nimport { injectRadioItem } from './radio-item.token';\n\n@Directive({\n selector: '[rdxRadioIndicator]',\n standalone: true,\n host: {\n '[attr.data-state]': 'radioGroup.value === this.radioItem.value ? \"checked\" : \"unchecked\"',\n '[attr.data-disabled]': 'radioItem.disabled ? \"\" : null'\n }\n})\nexport class RadioIndicatorDirective {\n /**\n * Access the radio group.\n */\n protected readonly radioGroup = injectRadioGroup();\n\n /**\n * Access the radio group item.\n */\n protected readonly radioItem = injectRadioItem();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAGa,eAAe,GAAG,IAAI,cAAc,CAAsB,iBAAiB,EAAE;SAE1E,gBAAgB,GAAA;AAC5B,IAAA,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC;;MCoBa,mBAAmB,CAAA;AAdhC,IAAA,WAAA,GAAA;AAoBI;;AAEG;QAKH,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEjB;;;AAGG;QACgC,IAAW,CAAA,WAAA,GAA8B,YAAY,CAAC;AAEzF;;AAEG;AAC0C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AA+DzF,KAAA;AAjDG;;;AAGG;AACH,IAAA,MAAM,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;KAC1B;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;AAED;;;AAGG;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC;KACtB;8GAtFQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,EAAA,UAAA,EAWb,gBAAgB,CAtBpB,EAAA,WAAA,EAAA,CAAA,0BAAA,EAAA,aAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC9D,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;AAChF,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAQQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,qBAAqB,EAAE;wBAC9D,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;AAChF,qBAAA;oBACD,cAAc,EAAE,CAAC,yBAAyB,CAAC;AAC3C,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,yBAAyB,EAAE,aAAa;AACxC,wBAAA,sBAAsB,EAAE,sBAAsB;AACjD,qBAAA;AACJ,iBAAA,CAAA;8BAKgC,KAAK,EAAA,CAAA;sBAAjC,KAAK;uBAAC,oBAAoB,CAAA;gBAS3B,QAAQ,EAAA,CAAA;sBAJP,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,SAAS,EAAE,gBAAgB;AAC9B,qBAAA,CAAA;gBAOkC,WAAW,EAAA,CAAA;sBAA7C,KAAK;uBAAC,0BAA0B,CAAA;gBAKY,WAAW,EAAA,CAAA;sBAAvD,MAAM;uBAAC,0BAA0B,CAAA;gBA4DxB,UAAU,EAAA,CAAA;sBADnB,YAAY;uBAAC,UAAU,CAAA;;;MC3Gf,cAAc,GAAG,IAAI,cAAc,CAAqB,gBAAgB,EAAE;SAEvE,eAAe,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;AAClC;;MCYa,kBAAkB,CAAA;AAb/B,IAAA,WAAA,GAAA;AAcI;;AAEG;QACgB,IAAU,CAAA,UAAA,GAAG,gBAAgB,EAAE,CAAC;AAOnD;;;AAGG;QACqC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAgC5D,KAAA;AA9BG;;;;AAIG;AAEO,IAAA,SAAS,CAAC,KAAoB,EAAA;;AAEpC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;AAED;;;AAGG;IAEO,OAAO,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAED;;;AAGG;IAEO,OAAO,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;8GA9CQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAeP,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAxBzB,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,mDAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,0DAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAShE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,CAAC,wBAAwB,CAAC;oBAC1C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAoB,kBAAA,EAAE,CAAC;AACzE,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,qBAAqB,EAAE,+CAA+C;AACtE,wBAAA,sBAAsB,EAAE,sBAAsB;AAC9C,wBAAA,mBAAmB,EAAE,sDAAsD;AAC9E,qBAAA;AACJ,iBAAA,CAAA;8BAU8B,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMe,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQ5B,SAAS,EAAA,CAAA;sBADlB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAazB,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,CAAA;gBAUX,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,CAAA;;;MClDZ,uBAAuB,CAAA;AARpC,IAAA,WAAA,GAAA;AASI;;AAEG;QACgB,IAAU,CAAA,UAAA,GAAG,gBAAgB,EAAE,CAAC;AAEnD;;AAEG;QACgB,IAAS,CAAA,SAAA,GAAG,eAAe,EAAE,CAAC;AACpD,KAAA;8GAVY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,yEAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,qEAAqE;AAC1F,wBAAA,sBAAsB,EAAE,gCAAgC;AAC3D,qBAAA;AACJ,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
@@ -0,0 +1,220 @@
1
+ import { FocusKeyManager } from '@angular/cdk/a11y';
2
+ import { Directionality } from '@angular/cdk/bidi';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, inject, DestroyRef, QueryList, booleanAttribute, Directive, Input, ElementRef, ChangeDetectorRef, numberAttribute, HostBinding, HostListener } from '@angular/core';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { filter } from 'rxjs';
7
+
8
+ const RovingFocusGroupToken = new InjectionToken('RovingFocusToken');
9
+ /**
10
+ * Inject the roving focus directive instance.
11
+ */
12
+ function injectRovingFocusGroup() {
13
+ return inject(RovingFocusGroupToken);
14
+ }
15
+
16
+ class RovingFocusGroupDirective {
17
+ constructor() {
18
+ this.directionality = inject(Directionality);
19
+ this.destroyRef = inject(DestroyRef);
20
+ /**
21
+ * Create a query list of all the roving focus items.
22
+ * We don't use ContentChildren as dynamically added items may not be in the correct order.
23
+ */
24
+ this.items = new QueryList();
25
+ /**
26
+ * Create the focus key manager instance.
27
+ * @internal
28
+ */
29
+ this.keyManager = new FocusKeyManager(this.items);
30
+ /**
31
+ * Determine the orientation of the roving focus group.
32
+ * @default vertical
33
+ */
34
+ this.orientation = 'vertical';
35
+ /**
36
+ * Determine if focus should wrap when the end or beginning is reached.
37
+ * @default true
38
+ */
39
+ this.wrap = true;
40
+ }
41
+ ngOnInit() {
42
+ this.keyManager.withWrap(this.wrap);
43
+ this.setOrientation(this.orientation);
44
+ // update the key manager orientation if the document direction changes
45
+ this.directionality.change
46
+ .pipe(filter(() => this.orientation === 'horizontal'), takeUntilDestroyed(this.destroyRef))
47
+ .subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));
48
+ }
49
+ ngOnChanges(changes) {
50
+ if ('orientation' in changes) {
51
+ this.setOrientation(this.orientation);
52
+ }
53
+ if ('wrap' in changes) {
54
+ this.keyManager.withWrap(this.wrap);
55
+ }
56
+ }
57
+ ngOnDestroy() {
58
+ this.keyManager.destroy();
59
+ }
60
+ /**
61
+ * Register a roving focus item.
62
+ * @param item The roving focus item to register.
63
+ */
64
+ register(item) {
65
+ // add the item to the query list by sort the items based on their order
66
+ this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));
67
+ // if this is the first item, make it the active item
68
+ if (this.items.length === 1) {
69
+ this.keyManager.updateActiveItem(item);
70
+ }
71
+ }
72
+ /**
73
+ * Unregister a roving focus item.
74
+ * @param item The roving focus item to unregister.
75
+ */
76
+ unregister(item) {
77
+ // determine if the item being removed is the active item
78
+ const isActive = this.keyManager.activeItem === item;
79
+ // remove the item from the query list
80
+ this.items.reset(this.items.toArray().filter((i) => i !== item));
81
+ // if the item being removed is the active item, make the first item the active item
82
+ if (isActive) {
83
+ this.keyManager.updateActiveItem(0);
84
+ }
85
+ }
86
+ /**
87
+ * Handle key events on the roving focus items.
88
+ * @param event The key event.
89
+ * @internal
90
+ */
91
+ onKeydown(event) {
92
+ this.keyManager.onKeydown(event);
93
+ }
94
+ /**
95
+ * Set the orientation of the roving focus group.
96
+ * @param orientation The orientation of the roving focus group.
97
+ */
98
+ setOrientation(orientation) {
99
+ this.orientation = orientation;
100
+ if (orientation === 'horizontal') {
101
+ this.keyManager.withHorizontalOrientation(this.directionality.value);
102
+ }
103
+ else {
104
+ this.keyManager.withVerticalOrientation();
105
+ }
106
+ }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
108
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RovingFocusGroupDirective, isStandalone: true, selector: "[rdxRovingFocusGroup]", inputs: { orientation: "orientation", wrap: ["wrap", "wrap", booleanAttribute] }, providers: [{ provide: RovingFocusGroupToken, useExisting: RovingFocusGroupDirective }], usesOnChanges: true, ngImport: i0 }); }
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusGroupDirective, decorators: [{
111
+ type: Directive,
112
+ args: [{
113
+ selector: '[rdxRovingFocusGroup]',
114
+ standalone: true,
115
+ providers: [{ provide: RovingFocusGroupToken, useExisting: RovingFocusGroupDirective }]
116
+ }]
117
+ }], propDecorators: { orientation: [{
118
+ type: Input
119
+ }], wrap: [{
120
+ type: Input,
121
+ args: [{ transform: booleanAttribute }]
122
+ }] } });
123
+
124
+ const RovingFocusItemToken = new InjectionToken('RovingFocusItemToken');
125
+ function injectRovingFocusItem() {
126
+ return inject(RovingFocusItemToken);
127
+ }
128
+
129
+ class RovingFocusItemDirective {
130
+ constructor() {
131
+ /**
132
+ * Access the group the roving focus item belongs to.
133
+ */
134
+ this.group = injectRovingFocusGroup();
135
+ /**
136
+ * Access the element reference of the roving focus item.
137
+ */
138
+ this.elementRef = inject((ElementRef));
139
+ /**
140
+ * Access the destroyRef
141
+ */
142
+ this.destroyRef = inject(DestroyRef);
143
+ /**
144
+ * Access the change detector ref
145
+ */
146
+ this.changeDetectorRef = inject(ChangeDetectorRef);
147
+ /**
148
+ * Define the order of the roving focus item in the group.
149
+ */
150
+ this.order = 0;
151
+ /**
152
+ * Define if the item is disabled.
153
+ */
154
+ this.disabled = false;
155
+ }
156
+ /**
157
+ * Derive the tabindex of the roving focus item.
158
+ * @internal
159
+ */
160
+ get tabindex() {
161
+ return this.group.keyManager.activeItem === this ? 0 : -1;
162
+ }
163
+ ngOnInit() {
164
+ // register the roving focus item with the group
165
+ this.group.register(this);
166
+ // listen for changes to the active item and run change detection
167
+ this.group.keyManager.change
168
+ .pipe(takeUntilDestroyed(this.destroyRef))
169
+ .subscribe(() => this.changeDetectorRef.markForCheck());
170
+ }
171
+ ngOnDestroy() {
172
+ // unregister the roving focus item with the group
173
+ this.group.unregister(this);
174
+ }
175
+ /**
176
+ * Handle key events on the roving focus item.
177
+ * @param event The key event.
178
+ * @internal
179
+ */
180
+ onKeydown(event) {
181
+ this.group.onKeydown(event);
182
+ }
183
+ /**
184
+ * Focus the roving focus item.
185
+ * @param origin The origin of the focus request.
186
+ * @internal
187
+ */
188
+ focus() {
189
+ this.elementRef?.nativeElement.focus();
190
+ }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
192
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RovingFocusItemDirective, isStandalone: true, selector: "[rdxRovingFocusItem]", inputs: { order: ["order", "order", numberAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, providers: [{ provide: RovingFocusItemToken, useExisting: RovingFocusItemDirective }], ngImport: i0 }); }
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusItemDirective, decorators: [{
195
+ type: Directive,
196
+ args: [{
197
+ selector: '[rdxRovingFocusItem]',
198
+ standalone: true,
199
+ providers: [{ provide: RovingFocusItemToken, useExisting: RovingFocusItemDirective }]
200
+ }]
201
+ }], propDecorators: { order: [{
202
+ type: Input,
203
+ args: [{ transform: numberAttribute }]
204
+ }], disabled: [{
205
+ type: Input,
206
+ args: [{ transform: booleanAttribute }]
207
+ }], tabindex: [{
208
+ type: HostBinding,
209
+ args: ['attr.tabindex']
210
+ }], onKeydown: [{
211
+ type: HostListener,
212
+ args: ['keydown', ['$event']]
213
+ }] } });
214
+
215
+ /**
216
+ * Generated bundle index. Do not edit.
217
+ */
218
+
219
+ export { RovingFocusGroupDirective, RovingFocusGroupToken, RovingFocusItemDirective, RovingFocusItemToken, injectRovingFocusGroup, injectRovingFocusItem };
220
+ //# sourceMappingURL=radix-ng-primitives-roving-focus.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-roving-focus.mjs","sources":["../../../packages/primitives/roving-focus/src/roving-focus-group.token.ts","../../../packages/primitives/roving-focus/src/roving-focus-group.directive.ts","../../../packages/primitives/roving-focus/src/roving-focus-item.token.ts","../../../packages/primitives/roving-focus/src/roving-focus-item.directive.ts","../../../packages/primitives/roving-focus/radix-ng-primitives-roving-focus.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { RovingFocusGroupDirective } from './roving-focus-group.directive';\n\nexport const RovingFocusGroupToken = new InjectionToken<RovingFocusGroupDirective>(\n 'RovingFocusToken'\n);\n\n/**\n * Inject the roving focus directive instance.\n */\nexport function injectRovingFocusGroup(): RovingFocusGroupDirective {\n return inject(RovingFocusGroupToken);\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n DestroyRef,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs';\nimport type { RovingFocusItemDirective } from './roving-focus-item.directive';\nimport { RovingFocusGroupToken } from './roving-focus-group.token';\n\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n standalone: true,\n providers: [{ provide: RovingFocusGroupToken, useExisting: RovingFocusGroupDirective }]\n})\nexport class RovingFocusGroupDirective implements OnInit, OnChanges, OnDestroy {\n private readonly directionality = inject(Directionality);\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Create a query list of all the roving focus items.\n * We don't use ContentChildren as dynamically added items may not be in the correct order.\n */\n private readonly items = new QueryList<RovingFocusItemDirective>();\n\n /**\n * Create the focus key manager instance.\n * @internal\n */\n readonly keyManager = new FocusKeyManager<RovingFocusItemDirective>(this.items);\n\n /**\n * Determine the orientation of the roving focus group.\n * @default vertical\n */\n @Input() orientation: 'horizontal' | 'vertical' = 'vertical';\n\n /**\n * Determine if focus should wrap when the end or beginning is reached.\n * @default true\n */\n @Input({ transform: booleanAttribute }) wrap = true;\n\n ngOnInit(): void {\n this.keyManager.withWrap(this.wrap);\n\n this.setOrientation(this.orientation);\n\n // update the key manager orientation if the document direction changes\n this.directionality.change\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('orientation' in changes) {\n this.setOrientation(this.orientation);\n }\n\n if ('wrap' in changes) {\n this.keyManager.withWrap(this.wrap);\n }\n }\n\n ngOnDestroy(): void {\n this.keyManager.destroy();\n }\n\n /**\n * Register a roving focus item.\n * @param item The roving focus item to register.\n */\n register(item: RovingFocusItemDirective): void {\n // add the item to the query list by sort the items based on their order\n this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));\n\n // if this is the first item, make it the active item\n if (this.items.length === 1) {\n this.keyManager.updateActiveItem(item);\n }\n }\n\n /**\n * Unregister a roving focus item.\n * @param item The roving focus item to unregister.\n */\n unregister(item: RovingFocusItemDirective): void {\n // determine if the item being removed is the active item\n const isActive = this.keyManager.activeItem === item;\n\n // remove the item from the query list\n this.items.reset(this.items.toArray().filter((i) => i !== item));\n\n // if the item being removed is the active item, make the first item the active item\n if (isActive) {\n this.keyManager.updateActiveItem(0);\n }\n }\n\n /**\n * Handle key events on the roving focus items.\n * @param event The key event.\n * @internal\n */\n onKeydown(event: KeyboardEvent): void {\n this.keyManager.onKeydown(event);\n }\n\n /**\n * Set the orientation of the roving focus group.\n * @param orientation The orientation of the roving focus group.\n */\n setOrientation(orientation: 'horizontal' | 'vertical'): void {\n this.orientation = orientation;\n\n if (orientation === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.directionality.value);\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { RovingFocusItemDirective } from './roving-focus-item.directive';\n\nexport const RovingFocusItemToken = new InjectionToken<RovingFocusItemDirective>(\n 'RovingFocusItemToken'\n);\n\nexport function injectRovingFocusItem(): RovingFocusItemDirective {\n return inject(RovingFocusItemToken);\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectRovingFocusGroup } from './roving-focus-group.token';\nimport { RovingFocusItemToken } from './roving-focus-item.token';\n\n@Directive({\n selector: '[rdxRovingFocusItem]',\n standalone: true,\n providers: [{ provide: RovingFocusItemToken, useExisting: RovingFocusItemDirective }]\n})\nexport class RovingFocusItemDirective implements OnInit, OnDestroy, FocusableOption {\n /**\n * Access the group the roving focus item belongs to.\n */\n private readonly group = injectRovingFocusGroup();\n\n /**\n * Access the element reference of the roving focus item.\n */\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the destroyRef\n */\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Access the change detector ref\n */\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n /**\n * Define the order of the roving focus item in the group.\n */\n @Input({ transform: numberAttribute }) order = 0;\n\n /**\n * Define if the item is disabled.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Derive the tabindex of the roving focus item.\n * @internal\n */\n @HostBinding('attr.tabindex')\n get tabindex(): number {\n return this.group.keyManager.activeItem === this ? 0 : -1;\n }\n\n ngOnInit(): void {\n // register the roving focus item with the group\n this.group.register(this);\n\n // listen for changes to the active item and run change detection\n this.group.keyManager.change\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n ngOnDestroy(): void {\n // unregister the roving focus item with the group\n this.group.unregister(this);\n }\n\n /**\n * Handle key events on the roving focus item.\n * @param event The key event.\n * @internal\n */\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n this.group.onKeydown(event);\n }\n\n /**\n * Focus the roving focus item.\n * @param origin The origin of the focus request.\n * @internal\n */\n focus(): void {\n this.elementRef?.nativeElement.focus();\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,44 @@
1
+ import * as i0 from '@angular/core';
2
+ import { booleanAttribute, Directive, Input } from '@angular/core';
3
+
4
+ class SeparatorDirective {
5
+ constructor() {
6
+ /**
7
+ * The orientation of the separator.
8
+ * @default 'horizontal'
9
+ */
10
+ this.orientation = 'horizontal';
11
+ /**
12
+ * Whether the separator is for decoration purposes. If true, the separator will not be included in the accessibility tree.
13
+ * @default false
14
+ */
15
+ this.decorative = false;
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: SeparatorDirective, isStandalone: true, selector: "[rdxSeparator]", inputs: { orientation: ["rdxSeparatorOrientation", "orientation"], decorative: ["rdxSeparatorDecorative", "decorative", booleanAttribute] }, host: { properties: { "attr.role": "decorative ? \"none\" : \"separator\"", "attr.aria-orientation": "!decorative && orientation === \"vertical\" ? \"vertical\" : null", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SeparatorDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[rdxSeparator]',
24
+ standalone: true,
25
+ host: {
26
+ '[attr.role]': 'decorative ? "none" : "separator"',
27
+ '[attr.aria-orientation]': '!decorative && orientation === "vertical" ? "vertical" : null',
28
+ '[attr.data-orientation]': 'orientation'
29
+ }
30
+ }]
31
+ }], propDecorators: { orientation: [{
32
+ type: Input,
33
+ args: ['rdxSeparatorOrientation']
34
+ }], decorative: [{
35
+ type: Input,
36
+ args: [{ alias: 'rdxSeparatorDecorative', transform: booleanAttribute }]
37
+ }] } });
38
+
39
+ /**
40
+ * Generated bundle index. Do not edit.
41
+ */
42
+
43
+ export { SeparatorDirective };
44
+ //# sourceMappingURL=radix-ng-primitives-separator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-separator.mjs","sources":["../../../packages/primitives/separator/src/separator.directive.ts","../../../packages/primitives/separator/radix-ng-primitives-separator.ts"],"sourcesContent":["import { Directive, Input, booleanAttribute } from '@angular/core';\n\n@Directive({\n selector: '[rdxSeparator]',\n standalone: true,\n host: {\n '[attr.role]': 'decorative ? \"none\" : \"separator\"',\n '[attr.aria-orientation]': '!decorative && orientation === \"vertical\" ? \"vertical\" : null',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class SeparatorDirective {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n @Input('rdxSeparatorOrientation') orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Whether the separator is for decoration purposes. If true, the separator will not be included in the accessibility tree.\n * @default false\n */\n @Input({ alias: 'rdxSeparatorDecorative', transform: booleanAttribute }) decorative = false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAWa,kBAAkB,CAAA;AAT/B,IAAA,WAAA,GAAA;AAUI;;;AAGG;QAC+B,IAAW,CAAA,WAAA,GAA8B,YAAY,CAAC;AAExF;;;AAGG;QACsE,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAC/F,KAAA;8GAZY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,0KAW0B,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,uCAAA,EAAA,uBAAA,EAAA,mEAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAX5D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,mCAAmC;AAClD,wBAAA,yBAAyB,EAAE,+DAA+D;AAC1F,wBAAA,yBAAyB,EAAE,aAAa;AAC3C,qBAAA;AACJ,iBAAA,CAAA;8BAMqC,WAAW,EAAA,CAAA;sBAA5C,KAAK;uBAAC,yBAAyB,CAAA;gBAMyC,UAAU,EAAA,CAAA;sBAAlF,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;ACtB3E;;AAEG;;;;"}