@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 @@
1
+ {"version":3,"file":"raqm-ui-context-menu.mjs","names":[],"sources":["../../../projects/ui/context-menu/context-menu.ts","../../../projects/ui/context-menu/context-menu-trigger.directive.ts","../../../projects/ui/context-menu/public-api.ts"],"sourcesContent":["import { Directive, TemplateRef, effect, inject, input } from '@angular/core';\r\nimport { CdkMenuTrigger, CdkTargetMenuAim } from '@angular/cdk/menu';\r\nimport { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport {\r\n RAQM_MENU_SUBMENU_POSITIONS,\r\n RaqmMenuDirective,\r\n RaqmMenuGroupDirective,\r\n RaqmMenuLabelDirective,\r\n RaqmMenuSeparatorDirective,\r\n RaqmMenuShortcutDirective,\r\n RaqmMenuItemDirective,\r\n RaqmMenuTriggerDirective,\r\n RaqmMenuCheckboxItemDirective,\r\n RaqmMenuRadioGroupDirective,\r\n RaqmMenuRadioItemDirective,\r\n} from '@raqm/ui/dropdown-menu';\r\n\r\n// Submenus default to a +4 vertical offset (direction-independent), not Dropdown's -3.\r\nconst CONTEXT_SUBMENU_POSITIONS: ConnectedPosition[] = [\r\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetY: 4 },\r\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetY: 4 },\r\n];\r\n\r\n/** Root popup; the shared menu engine supplies ARIA, focus, typeahead and dismissal. */\r\n@Directive({\r\n selector: '[raqm-context-menu-content]',\r\n hostDirectives: [RaqmMenuDirective, CdkTargetMenuAim],\r\n host: { class: 'raqm-context-menu-content' },\r\n})\r\nexport class RaqmContextMenuContentDirective {}\r\n\r\n/** Semantic group; consumers associate labels using id and aria-labelledby. */\r\n@Directive({ selector: '[raqm-context-menu-group]', hostDirectives: [RaqmMenuGroupDirective] })\r\nexport class RaqmContextMenuGroupDirective {}\r\n\r\n/** Passive group label with optional inset. */\r\n@Directive({\r\n selector: '[raqm-context-menu-label]',\r\n hostDirectives: [{ directive: RaqmMenuLabelDirective, inputs: ['inset'] }],\r\n})\r\nexport class RaqmContextMenuLabelDirective {}\r\n\r\n/** Menu action with shipped native-anchor guards; disabled/triggered are exposed transitively by CDK. */\r\n@Directive({\r\n selector: 'button[raqm-context-menu-item], a[raqm-context-menu-item]',\r\n hostDirectives: [\r\n {\r\n directive: RaqmMenuItemDirective,\r\n inputs: ['inset', 'raqm-menu-item: raqm-context-menu-item'],\r\n },\r\n ],\r\n host: { class: 'raqm-context-menu-item' },\r\n})\r\nexport class RaqmContextMenuItemDirective {}\r\n\r\n/**\r\n * Structural submenu boundary; CDK scopes its stack through the submenu trigger/template.\r\n *\r\n * @remarks\r\n * Publishes the family's placement default on an ancestor, so it is available before\r\n * the trigger host directive initializes; an application `[positions]` still wins.\r\n */\r\n@Directive({\r\n selector: '[raqm-context-menu-sub]',\r\n providers: [{ provide: RAQM_MENU_SUBMENU_POSITIONS, useValue: CONTEXT_SUBMENU_POSITIONS }],\r\n host: { class: 'raqm-context-menu-sub' },\r\n})\r\nexport class RaqmContextMenuSubDirective {}\r\n\r\n/** Submenu opener with CDK hover intent and direction-aware arrow navigation/placement. */\r\n@Directive({\r\n selector: 'button[raqm-context-menu-sub-trigger-for]',\r\n hostDirectives: [\r\n { directive: RaqmMenuItemDirective, inputs: ['inset'] },\r\n RaqmMenuTriggerDirective,\r\n ],\r\n host: { class: 'raqm-context-menu-sub-trigger' },\r\n})\r\nexport class RaqmContextMenuSubTriggerDirective {\r\n readonly template = input.required<TemplateRef<unknown>>({\r\n alias: 'raqm-context-menu-sub-trigger-for',\r\n });\r\n private readonly trigger = inject(CdkMenuTrigger);\r\n constructor() {\r\n effect(() => {\r\n this.trigger.menuTemplateRef = this.template();\r\n });\r\n }\r\n}\r\n\r\n/** Nested popup; retains the shared focus/keyboard and hover transit engine. */\r\n@Directive({\r\n selector: '[raqm-context-menu-sub-content]',\r\n hostDirectives: [RaqmMenuDirective, CdkTargetMenuAim],\r\n host: { class: 'raqm-context-menu-content raqm-context-menu-sub-content' },\r\n})\r\nexport class RaqmContextMenuSubContentDirective {}\r\n\r\n/** Keep-open checkbox: the shared checked model, disabled input and checkedChange output. */\r\n@Directive({\r\n selector: 'button[raqm-context-menu-checkbox-item]',\r\n hostDirectives: [\r\n {\r\n directive: RaqmMenuCheckboxItemDirective,\r\n inputs: ['inset', 'checked'],\r\n outputs: ['checkedChange'],\r\n },\r\n ],\r\n host: { class: 'raqm-context-menu-checkbox-item' },\r\n})\r\nexport class RaqmContextMenuCheckboxItemDirective {}\r\n\r\n/** Exclusive string-value group, reusing the shipped CDK radio scope and value model. */\r\n@Directive({\r\n selector: '[raqm-context-menu-radio-group]',\r\n hostDirectives: [\r\n { directive: RaqmMenuRadioGroupDirective, inputs: ['value'], outputs: ['valueChange'] },\r\n ],\r\n})\r\nexport class RaqmContextMenuRadioGroupDirective {}\r\n\r\n/** Keep-open exclusive choice with a trailing check indicator. */\r\n@Directive({\r\n selector: 'button[raqm-context-menu-radio-item]',\r\n hostDirectives: [{ directive: RaqmMenuRadioItemDirective, inputs: ['value', 'inset'] }],\r\n host: { class: 'raqm-context-menu-radio-item' },\r\n})\r\nexport class RaqmContextMenuRadioItemDirective {}\r\n\r\n/** Nonfocusable horizontal separator between action groups. */\r\n@Directive({\r\n selector: '[raqm-context-menu-separator]',\r\n hostDirectives: [RaqmMenuSeparatorDirective],\r\n})\r\nexport class RaqmContextMenuSeparatorDirective {}\r\n\r\n/** Display-only keyboard hint; no global accelerator is registered. */\r\n@Directive({\r\n selector: '[raqm-context-menu-shortcut]',\r\n hostDirectives: [RaqmMenuShortcutDirective],\r\n})\r\nexport class RaqmContextMenuShortcutDirective {}\r\n","import { Directive, DestroyRef, ElementRef, OnInit, inject, isDevMode } from '@angular/core';\r\n\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { CdkMenu, MENU_STACK } from '@angular/cdk/menu';\r\n\r\nimport {\r\n RaqmMenuOverlaySync,\r\n RaqmMenuDirection,\r\n RaqmContextMenuTriggerBase,\r\n} from '@raqm/ui/dropdown-menu';\r\n\r\n@Directive({\r\n selector: '[raqm-context-menu-trigger-for]',\r\n hostDirectives: [\r\n RaqmMenuDirection,\r\n {\r\n directive: RaqmContextMenuTriggerBase,\r\n inputs: [\r\n 'cdkContextMenuTriggerFor: raqm-context-menu-trigger-for',\r\n 'cdkContextMenuPosition: positions',\r\n 'cdkContextMenuDisabled: disabled',\r\n ],\r\n outputs: ['cdkContextMenuOpened: opened', 'cdkContextMenuClosed: closed'],\r\n },\r\n ],\r\n host: {\r\n class: 'raqm-context-menu-trigger',\r\n '(keydown)': 'onKeydown($event)',\r\n '(pointerdown)': 'onPointerDown($event)',\r\n '(pointermove)': 'onPointerMove($event)',\r\n '(pointerup)': 'cancelLongPress()',\r\n '(pointercancel)': 'cancelLongPress()',\r\n '(lostpointercapture)': 'cancelLongPress()',\r\n '(pointerleave)': 'cancelLongPress()',\r\n },\r\n})\r\nexport class RaqmContextMenuTriggerDirective implements OnInit {\r\n private readonly trigger = inject(RaqmContextMenuTriggerBase);\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private readonly stack = inject(MENU_STACK);\r\n // Host destroy hook and nearest directionality are shared with the overlay sync helper.\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly directionality = inject(Directionality);\r\n // Context panels anchor to the pointer, so available height is measured from it.\r\n private readonly overlaySync = new RaqmMenuOverlaySync(\r\n this.trigger,\r\n this.element,\r\n this.destroyRef,\r\n this.directionality,\r\n { matchAnchorWidth: false, anchorPoint: () => this.trigger.menuAnchorPoint },\r\n );\r\n private press: { id: number; x: number; y: number } | null = null;\r\n private pressTimer: ReturnType<typeof setTimeout> | undefined;\r\n private longPressOpened = false;\r\n private suppressCompatibilityUntil = 0;\r\n\r\n // Capture precedes the composed CDK contextmenu listener, preventing a native\r\n // long-press event from reopening/repositioning the menu after our timer fires.\r\n private readonly guardContextMenu = (event: Event): void => {\r\n if (\r\n !this.trigger.disabled &&\r\n (this.press !== null || Date.now() < this.suppressCompatibilityUntil)\r\n ) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n return;\r\n }\r\n // CDK opens at the event point; record it so the helper measures from the pointer.\r\n if (event instanceof MouseEvent) {\r\n this.trigger.menuAnchorPoint = { x: event.clientX, y: event.clientY };\r\n this.overlaySync.refresh();\r\n }\r\n };\r\n private readonly guardCompatibilityClick = (event: Event): void => {\r\n if (Date.now() < this.suppressCompatibilityUntil) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n };\r\n\r\n constructor() {\r\n // A button trigger never submits its form; an authored type is preserved.\r\n if (this.element instanceof HTMLButtonElement && !this.element.hasAttribute('type')) {\r\n this.element.setAttribute('type', 'button');\r\n }\r\n // CDK's context trigger intentionally has no parent-trigger focus policy.\r\n // Restore only for Escape/activation, never for outside-click/Tab dismissal.\r\n const subscription = this.stack.closed.subscribe(({ focusParentTrigger }) => {\r\n if (focusParentTrigger && this.stack.isEmpty() && this.element.isConnected) {\r\n this.element.focus({ preventScroll: true });\r\n }\r\n });\r\n this.element.addEventListener('contextmenu', this.guardContextMenu, true);\r\n this.element.addEventListener('click', this.guardCompatibilityClick, true);\r\n this.destroyRef.onDestroy(() => {\r\n this.cancelLongPress();\r\n subscription.unsubscribe();\r\n this.element.removeEventListener('contextmenu', this.guardContextMenu, true);\r\n this.element.removeEventListener('click', this.guardCompatibilityClick, true);\r\n });\r\n }\r\n\r\n /** 500ms stationary press; movement over 10px on either axis cancels it. */\r\n protected onPointerDown(event: PointerEvent): void {\r\n this.cancelLongPress();\r\n this.suppressCompatibilityUntil = 0;\r\n this.longPressOpened = false;\r\n if (\r\n this.trigger.disabled ||\r\n !event.isPrimary ||\r\n event.button !== 0 ||\r\n (event.pointerType !== 'touch' && event.pointerType !== 'pen')\r\n )\r\n return;\r\n event.stopPropagation();\r\n const press = { id: event.pointerId, x: event.clientX, y: event.clientY };\r\n this.press = press;\r\n // No preventDefault, pointer capture or touch-action override: taps and native\r\n // scrolling remain untouched until a genuine stationary long press completes.\r\n this.pressTimer = setTimeout(() => {\r\n this.pressTimer = undefined;\r\n if (this.press !== press || this.trigger.disabled || !this.element.isConnected) return;\r\n this.suppressCompatibilityUntil = Date.now() + 1500;\r\n this.longPressOpened = true;\r\n this.trigger.open({ x: press.x, y: press.y });\r\n const menu = this.stack.peek();\r\n if (menu instanceof CdkMenu) menu.focusFirstItem('touch');\r\n }, 500);\r\n }\r\n\r\n protected onPointerMove(event: PointerEvent): void {\r\n if (\r\n this.press &&\r\n (event.pointerId !== this.press.id ||\r\n Math.abs(event.clientX - this.press.x) > 10 ||\r\n Math.abs(event.clientY - this.press.y) > 10)\r\n ) {\r\n this.cancelLongPress();\r\n }\r\n }\r\n\r\n protected cancelLongPress(): void {\r\n if (this.longPressOpened) {\r\n this.suppressCompatibilityUntil = Date.now() + 1500;\r\n this.longPressOpened = false;\r\n }\r\n if (this.pressTimer !== undefined) clearTimeout(this.pressTimer);\r\n this.pressTimer = undefined;\r\n this.press = null;\r\n }\r\n\r\n /** Cursor-side default, with a four-pixel offset and collision fallback. */\r\n ngOnInit(): void {\r\n this.trigger.menuPosition ??= [\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'top', offsetY: 4 },\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\r\n ];\r\n if (isDevMode()) this.checkHostContract();\r\n }\r\n\r\n // Non-native hosts are the region exception: they must supply role, name and tabindex.\r\n private checkHostContract(): void {\r\n if (this.element.matches('button, a[href], input, select, textarea, summary')) return;\r\n const named =\r\n this.element.hasAttribute('aria-label') ||\r\n this.element.hasAttribute('aria-labelledby') ||\r\n (this.element.textContent ?? '').trim().length > 0;\r\n if (!this.element.hasAttribute('role')) {\r\n console.error(\r\n '[raqm-context-menu] A region trigger needs an explicit role (for example role=\"button\").',\r\n );\r\n } else if (!named) {\r\n console.error(\r\n '[raqm-context-menu] A region trigger needs an accessible name (`aria-label`, `aria-labelledby` or text).',\r\n );\r\n }\r\n if (!this.element.hasAttribute('tabindex')) {\r\n console.error(\r\n '[raqm-context-menu] A region trigger owns its `tabindex`; add one so the keyboard can reach it.',\r\n );\r\n }\r\n }\r\n\r\n /** Only opening keys are translated; all menu keys remain owned by the shipped CDK engine. */\r\n protected onKeydown(event: KeyboardEvent): void {\r\n if (\r\n this.trigger.disabled ||\r\n event.defaultPrevented ||\r\n !(event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey)) ||\r\n event.altKey ||\r\n event.ctrlKey ||\r\n event.metaKey\r\n )\r\n return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (event.repeat) return;\r\n const rect = this.element.getBoundingClientRect();\r\n const x =\r\n this.element.ownerDocument.defaultView?.getComputedStyle(this.element).direction === 'rtl'\r\n ? rect.right\r\n : rect.left;\r\n this.trigger.open({ x, y: rect.bottom });\r\n const menu = this.stack.peek();\r\n if (menu instanceof CdkMenu) menu.focusFirstItem('keyboard');\r\n }\r\n}\r\n","// Public API for `@raqm/ui/context-menu`; the root entry point re-exports these symbols.\r\nimport {\r\n RaqmContextMenuCheckboxItemDirective,\r\n RaqmContextMenuContentDirective,\r\n RaqmContextMenuGroupDirective,\r\n RaqmContextMenuItemDirective,\r\n RaqmContextMenuLabelDirective,\r\n RaqmContextMenuRadioGroupDirective,\r\n RaqmContextMenuRadioItemDirective,\r\n RaqmContextMenuSeparatorDirective,\r\n RaqmContextMenuShortcutDirective,\r\n RaqmContextMenuSubContentDirective,\r\n RaqmContextMenuSubDirective,\r\n RaqmContextMenuSubTriggerDirective,\r\n} from './context-menu';\r\nimport { RaqmContextMenuTriggerDirective } from './context-menu-trigger.directive';\r\n\r\nexport {\r\n RaqmContextMenuCheckboxItemDirective,\r\n RaqmContextMenuContentDirective,\r\n RaqmContextMenuGroupDirective,\r\n RaqmContextMenuItemDirective,\r\n RaqmContextMenuLabelDirective,\r\n RaqmContextMenuRadioGroupDirective,\r\n RaqmContextMenuRadioItemDirective,\r\n RaqmContextMenuSeparatorDirective,\r\n RaqmContextMenuShortcutDirective,\r\n RaqmContextMenuSubContentDirective,\r\n RaqmContextMenuSubDirective,\r\n RaqmContextMenuSubTriggerDirective,\r\n RaqmContextMenuTriggerDirective,\r\n};\r\n\r\nexport const RaqmContextMenu = [\r\n RaqmContextMenuTriggerDirective,\r\n RaqmContextMenuContentDirective,\r\n RaqmContextMenuGroupDirective,\r\n RaqmContextMenuLabelDirective,\r\n RaqmContextMenuItemDirective,\r\n RaqmContextMenuSubDirective,\r\n RaqmContextMenuSubTriggerDirective,\r\n RaqmContextMenuSubContentDirective,\r\n RaqmContextMenuCheckboxItemDirective,\r\n RaqmContextMenuRadioGroupDirective,\r\n RaqmContextMenuRadioItemDirective,\r\n RaqmContextMenuSeparatorDirective,\r\n RaqmContextMenuShortcutDirective,\r\n] as const;\r\n"],"mappings":"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"}