@raqm/ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +28 -0
  4. package/README.md +125 -3
  5. package/combobox/README.md +17 -0
  6. package/fesm2022/raqm-ui-accordion.mjs +414 -0
  7. package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
  8. package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
  9. package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/raqm-ui-alert.mjs +195 -0
  11. package/fesm2022/raqm-ui-alert.mjs.map +1 -0
  12. package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
  13. package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
  14. package/fesm2022/raqm-ui-attachment.mjs +435 -0
  15. package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
  16. package/fesm2022/raqm-ui-avatar.mjs +337 -0
  17. package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
  18. package/fesm2022/raqm-ui-badge.mjs +68 -0
  19. package/fesm2022/raqm-ui-badge.mjs.map +1 -0
  20. package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
  21. package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/raqm-ui-button-group.mjs +138 -0
  23. package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
  24. package/fesm2022/raqm-ui-button.mjs +295 -0
  25. package/fesm2022/raqm-ui-button.mjs.map +1 -0
  26. package/fesm2022/raqm-ui-calendar.mjs +1394 -0
  27. package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
  28. package/fesm2022/raqm-ui-card.mjs +331 -0
  29. package/fesm2022/raqm-ui-card.mjs.map +1 -0
  30. package/fesm2022/raqm-ui-carousel.mjs +410 -0
  31. package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
  32. package/fesm2022/raqm-ui-checkbox.mjs +86 -0
  33. package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
  34. package/fesm2022/raqm-ui-collapsible.mjs +266 -0
  35. package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
  36. package/fesm2022/raqm-ui-combobox.mjs +1584 -0
  37. package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
  38. package/fesm2022/raqm-ui-command.mjs +1210 -0
  39. package/fesm2022/raqm-ui-command.mjs.map +1 -0
  40. package/fesm2022/raqm-ui-context-menu.mjs +723 -0
  41. package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
  42. package/fesm2022/raqm-ui-dialog.mjs +1214 -0
  43. package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
  44. package/fesm2022/raqm-ui-drawer.mjs +687 -0
  45. package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
  46. package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
  47. package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
  48. package/fesm2022/raqm-ui-empty.mjs +272 -0
  49. package/fesm2022/raqm-ui-empty.mjs.map +1 -0
  50. package/fesm2022/raqm-ui-field.mjs +517 -0
  51. package/fesm2022/raqm-ui-field.mjs.map +1 -0
  52. package/fesm2022/raqm-ui-hover-card.mjs +828 -0
  53. package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
  54. package/fesm2022/raqm-ui-input-group.mjs +270 -0
  55. package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
  56. package/fesm2022/raqm-ui-input-otp.mjs +788 -0
  57. package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
  58. package/fesm2022/raqm-ui-input.mjs +73 -0
  59. package/fesm2022/raqm-ui-input.mjs.map +1 -0
  60. package/fesm2022/raqm-ui-item.mjs +495 -0
  61. package/fesm2022/raqm-ui-item.mjs.map +1 -0
  62. package/fesm2022/raqm-ui-kbd.mjs +80 -0
  63. package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
  64. package/fesm2022/raqm-ui-label.mjs +44 -0
  65. package/fesm2022/raqm-ui-label.mjs.map +1 -0
  66. package/fesm2022/raqm-ui-menubar.mjs +536 -0
  67. package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
  68. package/fesm2022/raqm-ui-native-select.mjs +131 -0
  69. package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
  70. package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
  71. package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
  72. package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
  73. package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
  74. package/fesm2022/raqm-ui-pagination.mjs +440 -0
  75. package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
  76. package/fesm2022/raqm-ui-popover.mjs +1495 -0
  77. package/fesm2022/raqm-ui-popover.mjs.map +1 -0
  78. package/fesm2022/raqm-ui-progress.mjs +369 -0
  79. package/fesm2022/raqm-ui-progress.mjs.map +1 -0
  80. package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
  81. package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
  82. package/fesm2022/raqm-ui-radio-group.mjs +151 -0
  83. package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
  84. package/fesm2022/raqm-ui-resizable.mjs +439 -0
  85. package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
  86. package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
  87. package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
  88. package/fesm2022/raqm-ui-select.mjs +1073 -0
  89. package/fesm2022/raqm-ui-select.mjs.map +1 -0
  90. package/fesm2022/raqm-ui-separator.mjs +103 -0
  91. package/fesm2022/raqm-ui-separator.mjs.map +1 -0
  92. package/fesm2022/raqm-ui-sheet.mjs +411 -0
  93. package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
  94. package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
  95. package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
  96. package/fesm2022/raqm-ui-skeleton.mjs +50 -0
  97. package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
  98. package/fesm2022/raqm-ui-slider.mjs +609 -0
  99. package/fesm2022/raqm-ui-slider.mjs.map +1 -0
  100. package/fesm2022/raqm-ui-spinner.mjs +137 -0
  101. package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
  102. package/fesm2022/raqm-ui-switch.mjs +109 -0
  103. package/fesm2022/raqm-ui-switch.mjs.map +1 -0
  104. package/fesm2022/raqm-ui-table.mjs +271 -0
  105. package/fesm2022/raqm-ui-table.mjs.map +1 -0
  106. package/fesm2022/raqm-ui-tabs.mjs +536 -0
  107. package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
  108. package/fesm2022/raqm-ui-textarea.mjs +37 -0
  109. package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
  110. package/fesm2022/raqm-ui-toast.mjs +918 -0
  111. package/fesm2022/raqm-ui-toast.mjs.map +1 -0
  112. package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
  113. package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
  114. package/fesm2022/raqm-ui-toggle.mjs +158 -0
  115. package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
  116. package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
  117. package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
  118. package/fesm2022/raqm-ui.mjs +50 -0
  119. package/input-otp/README.md +12 -0
  120. package/package.json +275 -3
  121. package/styles/theme.css +4322 -0
  122. package/types/raqm-ui-accordion.d.ts +124 -0
  123. package/types/raqm-ui-alert-dialog.d.ts +81 -0
  124. package/types/raqm-ui-alert.d.ts +29 -0
  125. package/types/raqm-ui-aspect-ratio.d.ts +13 -0
  126. package/types/raqm-ui-attachment.d.ts +72 -0
  127. package/types/raqm-ui-avatar.d.ts +67 -0
  128. package/types/raqm-ui-badge.d.ts +20 -0
  129. package/types/raqm-ui-breadcrumb.d.ts +35 -0
  130. package/types/raqm-ui-button-group.d.ts +27 -0
  131. package/types/raqm-ui-button.d.ts +80 -0
  132. package/types/raqm-ui-calendar.d.ts +359 -0
  133. package/types/raqm-ui-card.d.ts +34 -0
  134. package/types/raqm-ui-carousel.d.ts +81 -0
  135. package/types/raqm-ui-checkbox.d.ts +24 -0
  136. package/types/raqm-ui-collapsible.d.ts +72 -0
  137. package/types/raqm-ui-combobox.d.ts +405 -0
  138. package/types/raqm-ui-command.d.ts +256 -0
  139. package/types/raqm-ui-context-menu.d.ts +196 -0
  140. package/types/raqm-ui-dialog.d.ts +232 -0
  141. package/types/raqm-ui-drawer.d.ts +121 -0
  142. package/types/raqm-ui-dropdown-menu.d.ts +319 -0
  143. package/types/raqm-ui-empty.d.ts +35 -0
  144. package/types/raqm-ui-field.d.ts +88 -0
  145. package/types/raqm-ui-hover-card.d.ts +139 -0
  146. package/types/raqm-ui-input-group.d.ts +45 -0
  147. package/types/raqm-ui-input-otp.d.ts +197 -0
  148. package/types/raqm-ui-input.d.ts +16 -0
  149. package/types/raqm-ui-item.d.ts +71 -0
  150. package/types/raqm-ui-kbd.d.ts +12 -0
  151. package/types/raqm-ui-label.d.ts +6 -0
  152. package/types/raqm-ui-menubar.d.ts +159 -0
  153. package/types/raqm-ui-native-select.d.ts +23 -0
  154. package/types/raqm-ui-navigation-menu.d.ts +230 -0
  155. package/types/raqm-ui-overlay-internal.d.ts +5 -0
  156. package/types/raqm-ui-pagination.d.ts +84 -0
  157. package/types/raqm-ui-popover.d.ts +235 -0
  158. package/types/raqm-ui-progress.d.ts +79 -0
  159. package/types/raqm-ui-questionnaire.d.ts +217 -0
  160. package/types/raqm-ui-radio-group.d.ts +48 -0
  161. package/types/raqm-ui-resizable.d.ts +98 -0
  162. package/types/raqm-ui-scroll-area.d.ts +132 -0
  163. package/types/raqm-ui-select.d.ts +205 -0
  164. package/types/raqm-ui-separator.d.ts +21 -0
  165. package/types/raqm-ui-sheet.d.ts +79 -0
  166. package/types/raqm-ui-sidebar.d.ts +285 -0
  167. package/types/raqm-ui-skeleton.d.ts +6 -0
  168. package/types/raqm-ui-slider.d.ts +129 -0
  169. package/types/raqm-ui-spinner.d.ts +32 -0
  170. package/types/raqm-ui-switch.d.ts +32 -0
  171. package/types/raqm-ui-table.d.ts +36 -0
  172. package/types/raqm-ui-tabs.d.ts +154 -0
  173. package/types/raqm-ui-textarea.d.ts +6 -0
  174. package/types/raqm-ui-toast.d.ts +190 -0
  175. package/types/raqm-ui-toggle-group.d.ts +167 -0
  176. package/types/raqm-ui-toggle.d.ts +42 -0
  177. package/types/raqm-ui-tooltip.d.ts +207 -0
  178. package/types/raqm-ui.d.ts +50 -0
@@ -0,0 +1,723 @@
1
+ import * as i0 from "@angular/core";
2
+ import { DestroyRef, Directive, ElementRef, effect, inject, input, isDevMode } from "@angular/core";
3
+ import * as i2 from "@angular/cdk/menu";
4
+ import { CdkMenu, CdkMenuTrigger, CdkTargetMenuAim, MENU_STACK } from "@angular/cdk/menu";
5
+ import * as i1 from "@raqm/ui/dropdown-menu";
6
+ import { RAQM_MENU_SUBMENU_POSITIONS, RaqmContextMenuTriggerBase, RaqmMenuCheckboxItemDirective, RaqmMenuDirection, RaqmMenuDirective, RaqmMenuGroupDirective, RaqmMenuItemDirective, RaqmMenuLabelDirective, RaqmMenuOverlaySync, RaqmMenuRadioGroupDirective, RaqmMenuRadioItemDirective, RaqmMenuSeparatorDirective, RaqmMenuShortcutDirective, RaqmMenuTriggerDirective } from "@raqm/ui/dropdown-menu";
7
+ import { Directionality } from "@angular/cdk/bidi";
8
+ const CONTEXT_SUBMENU_POSITIONS = [{
9
+ originX: "end",
10
+ originY: "top",
11
+ overlayX: "start",
12
+ overlayY: "top",
13
+ offsetY: 4
14
+ }, {
15
+ originX: "start",
16
+ originY: "top",
17
+ overlayX: "end",
18
+ overlayY: "top",
19
+ offsetY: 4
20
+ }];
21
+ var RaqmContextMenuContentDirective = class RaqmContextMenuContentDirective {
22
+ static ɵfac = i0.ɵɵngDeclareFactory({
23
+ minVersion: "12.0.0",
24
+ version: "22.2.2",
25
+ ngImport: i0,
26
+ type: RaqmContextMenuContentDirective,
27
+ deps: [],
28
+ target: i0.ɵɵFactoryTarget.Directive
29
+ });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({
31
+ minVersion: "14.0.0",
32
+ version: "22.2.2",
33
+ type: RaqmContextMenuContentDirective,
34
+ isStandalone: true,
35
+ selector: "[raqm-context-menu-content]",
36
+ host: { classAttribute: "raqm-context-menu-content" },
37
+ hostDirectives: [{ directive: i1.RaqmMenuDirective }, { directive: i2.CdkTargetMenuAim }],
38
+ ngImport: i0
39
+ });
40
+ };
41
+ i0.ɵɵngDeclareClassMetadata({
42
+ minVersion: "12.0.0",
43
+ version: "22.2.2",
44
+ ngImport: i0,
45
+ type: RaqmContextMenuContentDirective,
46
+ decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: "[raqm-context-menu-content]",
50
+ hostDirectives: [RaqmMenuDirective, CdkTargetMenuAim],
51
+ host: { class: "raqm-context-menu-content" }
52
+ }]
53
+ }]
54
+ });
55
+ var RaqmContextMenuGroupDirective = class RaqmContextMenuGroupDirective {
56
+ static ɵfac = i0.ɵɵngDeclareFactory({
57
+ minVersion: "12.0.0",
58
+ version: "22.2.2",
59
+ ngImport: i0,
60
+ type: RaqmContextMenuGroupDirective,
61
+ deps: [],
62
+ target: i0.ɵɵFactoryTarget.Directive
63
+ });
64
+ static ɵdir = i0.ɵɵngDeclareDirective({
65
+ minVersion: "14.0.0",
66
+ version: "22.2.2",
67
+ type: RaqmContextMenuGroupDirective,
68
+ isStandalone: true,
69
+ selector: "[raqm-context-menu-group]",
70
+ hostDirectives: [{ directive: i1.RaqmMenuGroupDirective }],
71
+ ngImport: i0
72
+ });
73
+ };
74
+ i0.ɵɵngDeclareClassMetadata({
75
+ minVersion: "12.0.0",
76
+ version: "22.2.2",
77
+ ngImport: i0,
78
+ type: RaqmContextMenuGroupDirective,
79
+ decorators: [{
80
+ type: Directive,
81
+ args: [{
82
+ selector: "[raqm-context-menu-group]",
83
+ hostDirectives: [RaqmMenuGroupDirective]
84
+ }]
85
+ }]
86
+ });
87
+ var RaqmContextMenuLabelDirective = class RaqmContextMenuLabelDirective {
88
+ static ɵfac = i0.ɵɵngDeclareFactory({
89
+ minVersion: "12.0.0",
90
+ version: "22.2.2",
91
+ ngImport: i0,
92
+ type: RaqmContextMenuLabelDirective,
93
+ deps: [],
94
+ target: i0.ɵɵFactoryTarget.Directive
95
+ });
96
+ static ɵdir = i0.ɵɵngDeclareDirective({
97
+ minVersion: "14.0.0",
98
+ version: "22.2.2",
99
+ type: RaqmContextMenuLabelDirective,
100
+ isStandalone: true,
101
+ selector: "[raqm-context-menu-label]",
102
+ hostDirectives: [{
103
+ directive: i1.RaqmMenuLabelDirective,
104
+ inputs: ["inset", "inset"]
105
+ }],
106
+ ngImport: i0
107
+ });
108
+ };
109
+ i0.ɵɵngDeclareClassMetadata({
110
+ minVersion: "12.0.0",
111
+ version: "22.2.2",
112
+ ngImport: i0,
113
+ type: RaqmContextMenuLabelDirective,
114
+ decorators: [{
115
+ type: Directive,
116
+ args: [{
117
+ selector: "[raqm-context-menu-label]",
118
+ hostDirectives: [{
119
+ directive: RaqmMenuLabelDirective,
120
+ inputs: ["inset"]
121
+ }]
122
+ }]
123
+ }]
124
+ });
125
+ var RaqmContextMenuItemDirective = class RaqmContextMenuItemDirective {
126
+ static ɵfac = i0.ɵɵngDeclareFactory({
127
+ minVersion: "12.0.0",
128
+ version: "22.2.2",
129
+ ngImport: i0,
130
+ type: RaqmContextMenuItemDirective,
131
+ deps: [],
132
+ target: i0.ɵɵFactoryTarget.Directive
133
+ });
134
+ static ɵdir = i0.ɵɵngDeclareDirective({
135
+ minVersion: "14.0.0",
136
+ version: "22.2.2",
137
+ type: RaqmContextMenuItemDirective,
138
+ isStandalone: true,
139
+ selector: "button[raqm-context-menu-item], a[raqm-context-menu-item]",
140
+ host: { classAttribute: "raqm-context-menu-item" },
141
+ hostDirectives: [{
142
+ directive: i1.RaqmMenuItemDirective,
143
+ inputs: [
144
+ "inset",
145
+ "inset",
146
+ "raqm-menu-item",
147
+ "raqm-context-menu-item"
148
+ ]
149
+ }],
150
+ ngImport: i0
151
+ });
152
+ };
153
+ i0.ɵɵngDeclareClassMetadata({
154
+ minVersion: "12.0.0",
155
+ version: "22.2.2",
156
+ ngImport: i0,
157
+ type: RaqmContextMenuItemDirective,
158
+ decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: "button[raqm-context-menu-item], a[raqm-context-menu-item]",
162
+ hostDirectives: [{
163
+ directive: RaqmMenuItemDirective,
164
+ inputs: ["inset", "raqm-menu-item: raqm-context-menu-item"]
165
+ }],
166
+ host: { class: "raqm-context-menu-item" }
167
+ }]
168
+ }]
169
+ });
170
+ var RaqmContextMenuSubDirective = class RaqmContextMenuSubDirective {
171
+ static ɵfac = i0.ɵɵngDeclareFactory({
172
+ minVersion: "12.0.0",
173
+ version: "22.2.2",
174
+ ngImport: i0,
175
+ type: RaqmContextMenuSubDirective,
176
+ deps: [],
177
+ target: i0.ɵɵFactoryTarget.Directive
178
+ });
179
+ static ɵdir = i0.ɵɵngDeclareDirective({
180
+ minVersion: "14.0.0",
181
+ version: "22.2.2",
182
+ type: RaqmContextMenuSubDirective,
183
+ isStandalone: true,
184
+ selector: "[raqm-context-menu-sub]",
185
+ host: { classAttribute: "raqm-context-menu-sub" },
186
+ providers: [{
187
+ provide: RAQM_MENU_SUBMENU_POSITIONS,
188
+ useValue: CONTEXT_SUBMENU_POSITIONS
189
+ }],
190
+ ngImport: i0
191
+ });
192
+ };
193
+ i0.ɵɵngDeclareClassMetadata({
194
+ minVersion: "12.0.0",
195
+ version: "22.2.2",
196
+ ngImport: i0,
197
+ type: RaqmContextMenuSubDirective,
198
+ decorators: [{
199
+ type: Directive,
200
+ args: [{
201
+ selector: "[raqm-context-menu-sub]",
202
+ providers: [{
203
+ provide: RAQM_MENU_SUBMENU_POSITIONS,
204
+ useValue: CONTEXT_SUBMENU_POSITIONS
205
+ }],
206
+ host: { class: "raqm-context-menu-sub" }
207
+ }]
208
+ }]
209
+ });
210
+ var RaqmContextMenuSubTriggerDirective = class RaqmContextMenuSubTriggerDirective {
211
+ template = input.required({
212
+ ...ngDevMode ? { debugName: "template" } : /* istanbul ignore next */ {},
213
+ alias: "raqm-context-menu-sub-trigger-for"
214
+ });
215
+ trigger = inject(CdkMenuTrigger);
216
+ constructor() {
217
+ effect(() => {
218
+ this.trigger.menuTemplateRef = this.template();
219
+ });
220
+ }
221
+ static ɵfac = i0.ɵɵngDeclareFactory({
222
+ minVersion: "12.0.0",
223
+ version: "22.2.2",
224
+ ngImport: i0,
225
+ type: RaqmContextMenuSubTriggerDirective,
226
+ deps: [],
227
+ target: i0.ɵɵFactoryTarget.Directive
228
+ });
229
+ static ɵdir = i0.ɵɵngDeclareDirective({
230
+ minVersion: "17.1.0",
231
+ version: "22.2.2",
232
+ type: RaqmContextMenuSubTriggerDirective,
233
+ isStandalone: true,
234
+ selector: "button[raqm-context-menu-sub-trigger-for]",
235
+ inputs: { template: {
236
+ classPropertyName: "template",
237
+ publicName: "raqm-context-menu-sub-trigger-for",
238
+ isSignal: true,
239
+ isRequired: true,
240
+ transformFunction: null
241
+ } },
242
+ host: { classAttribute: "raqm-context-menu-sub-trigger" },
243
+ hostDirectives: [{
244
+ directive: i1.RaqmMenuItemDirective,
245
+ inputs: ["inset", "inset"]
246
+ }, { directive: i1.RaqmMenuTriggerDirective }],
247
+ ngImport: i0
248
+ });
249
+ };
250
+ i0.ɵɵngDeclareClassMetadata({
251
+ minVersion: "12.0.0",
252
+ version: "22.2.2",
253
+ ngImport: i0,
254
+ type: RaqmContextMenuSubTriggerDirective,
255
+ decorators: [{
256
+ type: Directive,
257
+ args: [{
258
+ selector: "button[raqm-context-menu-sub-trigger-for]",
259
+ hostDirectives: [{
260
+ directive: RaqmMenuItemDirective,
261
+ inputs: ["inset"]
262
+ }, RaqmMenuTriggerDirective],
263
+ host: { class: "raqm-context-menu-sub-trigger" }
264
+ }]
265
+ }],
266
+ ctorParameters: () => [],
267
+ propDecorators: { template: [{
268
+ type: i0.Input,
269
+ args: [{
270
+ isSignal: true,
271
+ alias: "raqm-context-menu-sub-trigger-for",
272
+ required: true
273
+ }]
274
+ }] }
275
+ });
276
+ var RaqmContextMenuSubContentDirective = class RaqmContextMenuSubContentDirective {
277
+ static ɵfac = i0.ɵɵngDeclareFactory({
278
+ minVersion: "12.0.0",
279
+ version: "22.2.2",
280
+ ngImport: i0,
281
+ type: RaqmContextMenuSubContentDirective,
282
+ deps: [],
283
+ target: i0.ɵɵFactoryTarget.Directive
284
+ });
285
+ static ɵdir = i0.ɵɵngDeclareDirective({
286
+ minVersion: "14.0.0",
287
+ version: "22.2.2",
288
+ type: RaqmContextMenuSubContentDirective,
289
+ isStandalone: true,
290
+ selector: "[raqm-context-menu-sub-content]",
291
+ host: { classAttribute: "raqm-context-menu-content raqm-context-menu-sub-content" },
292
+ hostDirectives: [{ directive: i1.RaqmMenuDirective }, { directive: i2.CdkTargetMenuAim }],
293
+ ngImport: i0
294
+ });
295
+ };
296
+ i0.ɵɵngDeclareClassMetadata({
297
+ minVersion: "12.0.0",
298
+ version: "22.2.2",
299
+ ngImport: i0,
300
+ type: RaqmContextMenuSubContentDirective,
301
+ decorators: [{
302
+ type: Directive,
303
+ args: [{
304
+ selector: "[raqm-context-menu-sub-content]",
305
+ hostDirectives: [RaqmMenuDirective, CdkTargetMenuAim],
306
+ host: { class: "raqm-context-menu-content raqm-context-menu-sub-content" }
307
+ }]
308
+ }]
309
+ });
310
+ var RaqmContextMenuCheckboxItemDirective = class RaqmContextMenuCheckboxItemDirective {
311
+ static ɵfac = i0.ɵɵngDeclareFactory({
312
+ minVersion: "12.0.0",
313
+ version: "22.2.2",
314
+ ngImport: i0,
315
+ type: RaqmContextMenuCheckboxItemDirective,
316
+ deps: [],
317
+ target: i0.ɵɵFactoryTarget.Directive
318
+ });
319
+ static ɵdir = i0.ɵɵngDeclareDirective({
320
+ minVersion: "14.0.0",
321
+ version: "22.2.2",
322
+ type: RaqmContextMenuCheckboxItemDirective,
323
+ isStandalone: true,
324
+ selector: "button[raqm-context-menu-checkbox-item]",
325
+ host: { classAttribute: "raqm-context-menu-checkbox-item" },
326
+ hostDirectives: [{
327
+ directive: i1.RaqmMenuCheckboxItemDirective,
328
+ inputs: [
329
+ "inset",
330
+ "inset",
331
+ "checked",
332
+ "checked"
333
+ ],
334
+ outputs: ["checkedChange", "checkedChange"]
335
+ }],
336
+ ngImport: i0
337
+ });
338
+ };
339
+ i0.ɵɵngDeclareClassMetadata({
340
+ minVersion: "12.0.0",
341
+ version: "22.2.2",
342
+ ngImport: i0,
343
+ type: RaqmContextMenuCheckboxItemDirective,
344
+ decorators: [{
345
+ type: Directive,
346
+ args: [{
347
+ selector: "button[raqm-context-menu-checkbox-item]",
348
+ hostDirectives: [{
349
+ directive: RaqmMenuCheckboxItemDirective,
350
+ inputs: ["inset", "checked"],
351
+ outputs: ["checkedChange"]
352
+ }],
353
+ host: { class: "raqm-context-menu-checkbox-item" }
354
+ }]
355
+ }]
356
+ });
357
+ var RaqmContextMenuRadioGroupDirective = class RaqmContextMenuRadioGroupDirective {
358
+ static ɵfac = i0.ɵɵngDeclareFactory({
359
+ minVersion: "12.0.0",
360
+ version: "22.2.2",
361
+ ngImport: i0,
362
+ type: RaqmContextMenuRadioGroupDirective,
363
+ deps: [],
364
+ target: i0.ɵɵFactoryTarget.Directive
365
+ });
366
+ static ɵdir = i0.ɵɵngDeclareDirective({
367
+ minVersion: "14.0.0",
368
+ version: "22.2.2",
369
+ type: RaqmContextMenuRadioGroupDirective,
370
+ isStandalone: true,
371
+ selector: "[raqm-context-menu-radio-group]",
372
+ hostDirectives: [{
373
+ directive: i1.RaqmMenuRadioGroupDirective,
374
+ inputs: ["value", "value"],
375
+ outputs: ["valueChange", "valueChange"]
376
+ }],
377
+ ngImport: i0
378
+ });
379
+ };
380
+ i0.ɵɵngDeclareClassMetadata({
381
+ minVersion: "12.0.0",
382
+ version: "22.2.2",
383
+ ngImport: i0,
384
+ type: RaqmContextMenuRadioGroupDirective,
385
+ decorators: [{
386
+ type: Directive,
387
+ args: [{
388
+ selector: "[raqm-context-menu-radio-group]",
389
+ hostDirectives: [{
390
+ directive: RaqmMenuRadioGroupDirective,
391
+ inputs: ["value"],
392
+ outputs: ["valueChange"]
393
+ }]
394
+ }]
395
+ }]
396
+ });
397
+ var RaqmContextMenuRadioItemDirective = class RaqmContextMenuRadioItemDirective {
398
+ static ɵfac = i0.ɵɵngDeclareFactory({
399
+ minVersion: "12.0.0",
400
+ version: "22.2.2",
401
+ ngImport: i0,
402
+ type: RaqmContextMenuRadioItemDirective,
403
+ deps: [],
404
+ target: i0.ɵɵFactoryTarget.Directive
405
+ });
406
+ static ɵdir = i0.ɵɵngDeclareDirective({
407
+ minVersion: "14.0.0",
408
+ version: "22.2.2",
409
+ type: RaqmContextMenuRadioItemDirective,
410
+ isStandalone: true,
411
+ selector: "button[raqm-context-menu-radio-item]",
412
+ host: { classAttribute: "raqm-context-menu-radio-item" },
413
+ hostDirectives: [{
414
+ directive: i1.RaqmMenuRadioItemDirective,
415
+ inputs: [
416
+ "value",
417
+ "value",
418
+ "inset",
419
+ "inset"
420
+ ]
421
+ }],
422
+ ngImport: i0
423
+ });
424
+ };
425
+ i0.ɵɵngDeclareClassMetadata({
426
+ minVersion: "12.0.0",
427
+ version: "22.2.2",
428
+ ngImport: i0,
429
+ type: RaqmContextMenuRadioItemDirective,
430
+ decorators: [{
431
+ type: Directive,
432
+ args: [{
433
+ selector: "button[raqm-context-menu-radio-item]",
434
+ hostDirectives: [{
435
+ directive: RaqmMenuRadioItemDirective,
436
+ inputs: ["value", "inset"]
437
+ }],
438
+ host: { class: "raqm-context-menu-radio-item" }
439
+ }]
440
+ }]
441
+ });
442
+ var RaqmContextMenuSeparatorDirective = class RaqmContextMenuSeparatorDirective {
443
+ static ɵfac = i0.ɵɵngDeclareFactory({
444
+ minVersion: "12.0.0",
445
+ version: "22.2.2",
446
+ ngImport: i0,
447
+ type: RaqmContextMenuSeparatorDirective,
448
+ deps: [],
449
+ target: i0.ɵɵFactoryTarget.Directive
450
+ });
451
+ static ɵdir = i0.ɵɵngDeclareDirective({
452
+ minVersion: "14.0.0",
453
+ version: "22.2.2",
454
+ type: RaqmContextMenuSeparatorDirective,
455
+ isStandalone: true,
456
+ selector: "[raqm-context-menu-separator]",
457
+ hostDirectives: [{ directive: i1.RaqmMenuSeparatorDirective }],
458
+ ngImport: i0
459
+ });
460
+ };
461
+ i0.ɵɵngDeclareClassMetadata({
462
+ minVersion: "12.0.0",
463
+ version: "22.2.2",
464
+ ngImport: i0,
465
+ type: RaqmContextMenuSeparatorDirective,
466
+ decorators: [{
467
+ type: Directive,
468
+ args: [{
469
+ selector: "[raqm-context-menu-separator]",
470
+ hostDirectives: [RaqmMenuSeparatorDirective]
471
+ }]
472
+ }]
473
+ });
474
+ var RaqmContextMenuShortcutDirective = class RaqmContextMenuShortcutDirective {
475
+ static ɵfac = i0.ɵɵngDeclareFactory({
476
+ minVersion: "12.0.0",
477
+ version: "22.2.2",
478
+ ngImport: i0,
479
+ type: RaqmContextMenuShortcutDirective,
480
+ deps: [],
481
+ target: i0.ɵɵFactoryTarget.Directive
482
+ });
483
+ static ɵdir = i0.ɵɵngDeclareDirective({
484
+ minVersion: "14.0.0",
485
+ version: "22.2.2",
486
+ type: RaqmContextMenuShortcutDirective,
487
+ isStandalone: true,
488
+ selector: "[raqm-context-menu-shortcut]",
489
+ hostDirectives: [{ directive: i1.RaqmMenuShortcutDirective }],
490
+ ngImport: i0
491
+ });
492
+ };
493
+ i0.ɵɵngDeclareClassMetadata({
494
+ minVersion: "12.0.0",
495
+ version: "22.2.2",
496
+ ngImport: i0,
497
+ type: RaqmContextMenuShortcutDirective,
498
+ decorators: [{
499
+ type: Directive,
500
+ args: [{
501
+ selector: "[raqm-context-menu-shortcut]",
502
+ hostDirectives: [RaqmMenuShortcutDirective]
503
+ }]
504
+ }]
505
+ });
506
+ var RaqmContextMenuTriggerDirective = class RaqmContextMenuTriggerDirective {
507
+ trigger = inject(RaqmContextMenuTriggerBase);
508
+ element = inject(ElementRef).nativeElement;
509
+ stack = inject(MENU_STACK);
510
+ destroyRef = inject(DestroyRef);
511
+ directionality = inject(Directionality);
512
+ overlaySync = new RaqmMenuOverlaySync(this.trigger, this.element, this.destroyRef, this.directionality, {
513
+ matchAnchorWidth: false,
514
+ anchorPoint: () => this.trigger.menuAnchorPoint
515
+ });
516
+ press = null;
517
+ pressTimer;
518
+ longPressOpened = false;
519
+ suppressCompatibilityUntil = 0;
520
+ guardContextMenu = (event) => {
521
+ if (!this.trigger.disabled && (this.press !== null || Date.now() < this.suppressCompatibilityUntil)) {
522
+ event.preventDefault();
523
+ event.stopImmediatePropagation();
524
+ return;
525
+ }
526
+ if (event instanceof MouseEvent) {
527
+ this.trigger.menuAnchorPoint = {
528
+ x: event.clientX,
529
+ y: event.clientY
530
+ };
531
+ this.overlaySync.refresh();
532
+ }
533
+ };
534
+ guardCompatibilityClick = (event) => {
535
+ if (Date.now() < this.suppressCompatibilityUntil) {
536
+ event.preventDefault();
537
+ event.stopImmediatePropagation();
538
+ }
539
+ };
540
+ constructor() {
541
+ if (this.element instanceof HTMLButtonElement && !this.element.hasAttribute("type")) this.element.setAttribute("type", "button");
542
+ const subscription = this.stack.closed.subscribe(({ focusParentTrigger }) => {
543
+ if (focusParentTrigger && this.stack.isEmpty() && this.element.isConnected) this.element.focus({ preventScroll: true });
544
+ });
545
+ this.element.addEventListener("contextmenu", this.guardContextMenu, true);
546
+ this.element.addEventListener("click", this.guardCompatibilityClick, true);
547
+ this.destroyRef.onDestroy(() => {
548
+ this.cancelLongPress();
549
+ subscription.unsubscribe();
550
+ this.element.removeEventListener("contextmenu", this.guardContextMenu, true);
551
+ this.element.removeEventListener("click", this.guardCompatibilityClick, true);
552
+ });
553
+ }
554
+ onPointerDown(event) {
555
+ this.cancelLongPress();
556
+ this.suppressCompatibilityUntil = 0;
557
+ this.longPressOpened = false;
558
+ if (this.trigger.disabled || !event.isPrimary || event.button !== 0 || event.pointerType !== "touch" && event.pointerType !== "pen") return;
559
+ event.stopPropagation();
560
+ const press = {
561
+ id: event.pointerId,
562
+ x: event.clientX,
563
+ y: event.clientY
564
+ };
565
+ this.press = press;
566
+ this.pressTimer = setTimeout(() => {
567
+ this.pressTimer = void 0;
568
+ if (this.press !== press || this.trigger.disabled || !this.element.isConnected) return;
569
+ this.suppressCompatibilityUntil = Date.now() + 1500;
570
+ this.longPressOpened = true;
571
+ this.trigger.open({
572
+ x: press.x,
573
+ y: press.y
574
+ });
575
+ const menu = this.stack.peek();
576
+ if (menu instanceof CdkMenu) menu.focusFirstItem("touch");
577
+ }, 500);
578
+ }
579
+ onPointerMove(event) {
580
+ if (this.press && (event.pointerId !== this.press.id || Math.abs(event.clientX - this.press.x) > 10 || Math.abs(event.clientY - this.press.y) > 10)) this.cancelLongPress();
581
+ }
582
+ cancelLongPress() {
583
+ if (this.longPressOpened) {
584
+ this.suppressCompatibilityUntil = Date.now() + 1500;
585
+ this.longPressOpened = false;
586
+ }
587
+ if (this.pressTimer !== void 0) clearTimeout(this.pressTimer);
588
+ this.pressTimer = void 0;
589
+ this.press = null;
590
+ }
591
+ ngOnInit() {
592
+ this.trigger.menuPosition ??= [{
593
+ originX: "start",
594
+ originY: "top",
595
+ overlayX: "start",
596
+ overlayY: "top",
597
+ offsetY: 4
598
+ }, {
599
+ originX: "end",
600
+ originY: "bottom",
601
+ overlayX: "end",
602
+ overlayY: "bottom",
603
+ offsetY: -4
604
+ }];
605
+ if (isDevMode()) this.checkHostContract();
606
+ }
607
+ checkHostContract() {
608
+ if (this.element.matches("button, a[href], input, select, textarea, summary")) return;
609
+ const named = this.element.hasAttribute("aria-label") || this.element.hasAttribute("aria-labelledby") || (this.element.textContent ?? "").trim().length > 0;
610
+ if (!this.element.hasAttribute("role")) console.error("[raqm-context-menu] A region trigger needs an explicit role (for example role=\"button\").");
611
+ else if (!named) console.error("[raqm-context-menu] A region trigger needs an accessible name (`aria-label`, `aria-labelledby` or text).");
612
+ if (!this.element.hasAttribute("tabindex")) console.error("[raqm-context-menu] A region trigger owns its `tabindex`; add one so the keyboard can reach it.");
613
+ }
614
+ onKeydown(event) {
615
+ if (this.trigger.disabled || event.defaultPrevented || !(event.key === "ContextMenu" || event.key === "F10" && event.shiftKey) || event.altKey || event.ctrlKey || event.metaKey) return;
616
+ event.preventDefault();
617
+ event.stopPropagation();
618
+ if (event.repeat) return;
619
+ const rect = this.element.getBoundingClientRect();
620
+ const x = this.element.ownerDocument.defaultView?.getComputedStyle(this.element).direction === "rtl" ? rect.right : rect.left;
621
+ this.trigger.open({
622
+ x,
623
+ y: rect.bottom
624
+ });
625
+ const menu = this.stack.peek();
626
+ if (menu instanceof CdkMenu) menu.focusFirstItem("keyboard");
627
+ }
628
+ static ɵfac = i0.ɵɵngDeclareFactory({
629
+ minVersion: "12.0.0",
630
+ version: "22.2.2",
631
+ ngImport: i0,
632
+ type: RaqmContextMenuTriggerDirective,
633
+ deps: [],
634
+ target: i0.ɵɵFactoryTarget.Directive
635
+ });
636
+ static ɵdir = i0.ɵɵngDeclareDirective({
637
+ minVersion: "14.0.0",
638
+ version: "22.2.2",
639
+ type: RaqmContextMenuTriggerDirective,
640
+ isStandalone: true,
641
+ selector: "[raqm-context-menu-trigger-for]",
642
+ host: {
643
+ listeners: {
644
+ "keydown": "onKeydown($event)",
645
+ "pointerdown": "onPointerDown($event)",
646
+ "pointermove": "onPointerMove($event)",
647
+ "pointerup": "cancelLongPress()",
648
+ "pointercancel": "cancelLongPress()",
649
+ "lostpointercapture": "cancelLongPress()",
650
+ "pointerleave": "cancelLongPress()"
651
+ },
652
+ classAttribute: "raqm-context-menu-trigger"
653
+ },
654
+ hostDirectives: [{ directive: i1.RaqmMenuDirection }, {
655
+ directive: i1.RaqmContextMenuTriggerBase,
656
+ inputs: [
657
+ "cdkContextMenuTriggerFor",
658
+ "raqm-context-menu-trigger-for",
659
+ "cdkContextMenuPosition",
660
+ "positions",
661
+ "cdkContextMenuDisabled",
662
+ "disabled"
663
+ ],
664
+ outputs: [
665
+ "cdkContextMenuOpened",
666
+ "opened",
667
+ "cdkContextMenuClosed",
668
+ "closed"
669
+ ]
670
+ }],
671
+ ngImport: i0
672
+ });
673
+ };
674
+ i0.ɵɵngDeclareClassMetadata({
675
+ minVersion: "12.0.0",
676
+ version: "22.2.2",
677
+ ngImport: i0,
678
+ type: RaqmContextMenuTriggerDirective,
679
+ decorators: [{
680
+ type: Directive,
681
+ args: [{
682
+ selector: "[raqm-context-menu-trigger-for]",
683
+ hostDirectives: [RaqmMenuDirection, {
684
+ directive: RaqmContextMenuTriggerBase,
685
+ inputs: [
686
+ "cdkContextMenuTriggerFor: raqm-context-menu-trigger-for",
687
+ "cdkContextMenuPosition: positions",
688
+ "cdkContextMenuDisabled: disabled"
689
+ ],
690
+ outputs: ["cdkContextMenuOpened: opened", "cdkContextMenuClosed: closed"]
691
+ }],
692
+ host: {
693
+ class: "raqm-context-menu-trigger",
694
+ "(keydown)": "onKeydown($event)",
695
+ "(pointerdown)": "onPointerDown($event)",
696
+ "(pointermove)": "onPointerMove($event)",
697
+ "(pointerup)": "cancelLongPress()",
698
+ "(pointercancel)": "cancelLongPress()",
699
+ "(lostpointercapture)": "cancelLongPress()",
700
+ "(pointerleave)": "cancelLongPress()"
701
+ }
702
+ }]
703
+ }],
704
+ ctorParameters: () => []
705
+ });
706
+ const RaqmContextMenu = [
707
+ RaqmContextMenuTriggerDirective,
708
+ RaqmContextMenuContentDirective,
709
+ RaqmContextMenuGroupDirective,
710
+ RaqmContextMenuLabelDirective,
711
+ RaqmContextMenuItemDirective,
712
+ RaqmContextMenuSubDirective,
713
+ RaqmContextMenuSubTriggerDirective,
714
+ RaqmContextMenuSubContentDirective,
715
+ RaqmContextMenuCheckboxItemDirective,
716
+ RaqmContextMenuRadioGroupDirective,
717
+ RaqmContextMenuRadioItemDirective,
718
+ RaqmContextMenuSeparatorDirective,
719
+ RaqmContextMenuShortcutDirective
720
+ ];
721
+ export { RaqmContextMenu, RaqmContextMenuCheckboxItemDirective, RaqmContextMenuContentDirective, RaqmContextMenuGroupDirective, RaqmContextMenuItemDirective, RaqmContextMenuLabelDirective, RaqmContextMenuRadioGroupDirective, RaqmContextMenuRadioItemDirective, RaqmContextMenuSeparatorDirective, RaqmContextMenuShortcutDirective, RaqmContextMenuSubContentDirective, RaqmContextMenuSubDirective, RaqmContextMenuSubTriggerDirective, RaqmContextMenuTriggerDirective };
722
+
723
+ //# sourceMappingURL=raqm-ui-context-menu.mjs.map