@cdx-ui/primitives 0.0.1-beta.159 → 0.0.1-beta.160

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 (233) hide show
  1. package/lib/commonjs/dialog/DialogContent.js +17 -3
  2. package/lib/commonjs/dialog/DialogContent.js.map +1 -1
  3. package/lib/commonjs/dialog/DialogPopup.js +5 -1
  4. package/lib/commonjs/dialog/DialogPopup.js.map +1 -1
  5. package/lib/commonjs/index.js +54 -0
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/menu/MenuCheckboxItem.js +42 -0
  8. package/lib/commonjs/menu/MenuCheckboxItem.js.map +1 -0
  9. package/lib/commonjs/menu/MenuItem.js +142 -0
  10. package/lib/commonjs/menu/MenuItem.js.map +1 -0
  11. package/lib/commonjs/menu/MenuOverlayRoot.js +80 -0
  12. package/lib/commonjs/menu/MenuOverlayRoot.js.map +1 -0
  13. package/lib/commonjs/menu/MenuPopup.js +78 -0
  14. package/lib/commonjs/menu/MenuPopup.js.map +1 -0
  15. package/lib/commonjs/menu/MenuRadioGroup.js +48 -0
  16. package/lib/commonjs/menu/MenuRadioGroup.js.map +1 -0
  17. package/lib/commonjs/menu/MenuRadioItem.js +32 -0
  18. package/lib/commonjs/menu/MenuRadioItem.js.map +1 -0
  19. package/lib/commonjs/menu/MenuRoot.js +139 -0
  20. package/lib/commonjs/menu/MenuRoot.js.map +1 -0
  21. package/lib/commonjs/menu/MenuTrigger.js +59 -0
  22. package/lib/commonjs/menu/MenuTrigger.js.map +1 -0
  23. package/lib/commonjs/menu/context.js +36 -0
  24. package/lib/commonjs/menu/context.js.map +1 -0
  25. package/lib/commonjs/menu/index.js +118 -0
  26. package/lib/commonjs/menu/index.js.map +1 -0
  27. package/lib/commonjs/menu/overlayContext.js +30 -0
  28. package/lib/commonjs/menu/overlayContext.js.map +1 -0
  29. package/lib/commonjs/menu/types.js +6 -0
  30. package/lib/commonjs/menu/types.js.map +1 -0
  31. package/lib/commonjs/menu/useMenuNavigation.js +87 -0
  32. package/lib/commonjs/menu/useMenuNavigation.js.map +1 -0
  33. package/lib/commonjs/menu/useMenuOverlayLifecycle.js +68 -0
  34. package/lib/commonjs/menu/useMenuOverlayLifecycle.js.map +1 -0
  35. package/lib/commonjs/menu/useMenuTrigger.js +115 -0
  36. package/lib/commonjs/menu/useMenuTrigger.js.map +1 -0
  37. package/lib/commonjs/overlay/OverlayContainer.js +2 -3
  38. package/lib/commonjs/overlay/OverlayContainer.js.map +1 -1
  39. package/lib/commonjs/overlay/OverlayStack.js +125 -0
  40. package/lib/commonjs/overlay/OverlayStack.js.map +1 -0
  41. package/lib/commonjs/overlay/constants.js +7 -1
  42. package/lib/commonjs/overlay/constants.js.map +1 -1
  43. package/lib/commonjs/overlay/getAnchoredOverlayPosition.js +188 -0
  44. package/lib/commonjs/overlay/getAnchoredOverlayPosition.js.map +1 -0
  45. package/lib/commonjs/overlay/index.js +39 -0
  46. package/lib/commonjs/overlay/index.js.map +1 -1
  47. package/lib/commonjs/overlay/useAnchoredOverlay.js +127 -0
  48. package/lib/commonjs/overlay/useAnchoredOverlay.js.map +1 -0
  49. package/lib/commonjs/overlay/useDismissOverlay.js +8 -1
  50. package/lib/commonjs/overlay/useDismissOverlay.js.map +1 -1
  51. package/lib/commonjs/overlay/useDismissOverlay.web.js +11 -3
  52. package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
  53. package/lib/commonjs/overlay/useEscapeKey.js +8 -1
  54. package/lib/commonjs/overlay/useEscapeKey.js.map +1 -1
  55. package/lib/commonjs/overlay/useEscapeKey.web.js +11 -3
  56. package/lib/commonjs/overlay/useEscapeKey.web.js.map +1 -1
  57. package/lib/commonjs/overlay/useOverlayPosition.js +16 -7
  58. package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
  59. package/lib/commonjs/portal/portal.js +86 -63
  60. package/lib/commonjs/portal/portal.js.map +1 -1
  61. package/lib/commonjs/select/SelectContent.js +23 -11
  62. package/lib/commonjs/select/SelectContent.js.map +1 -1
  63. package/lib/commonjs/select/useListboxNavigation.js +10 -11
  64. package/lib/commonjs/select/useListboxNavigation.js.map +1 -1
  65. package/lib/commonjs/tooltip/TooltipContent.js +25 -24
  66. package/lib/commonjs/tooltip/TooltipContent.js.map +1 -1
  67. package/lib/commonjs/tooltip/getTooltipPosition.js +37 -84
  68. package/lib/commonjs/tooltip/getTooltipPosition.js.map +1 -1
  69. package/lib/module/dialog/DialogContent.js +18 -4
  70. package/lib/module/dialog/DialogContent.js.map +1 -1
  71. package/lib/module/dialog/DialogPopup.js +5 -1
  72. package/lib/module/dialog/DialogPopup.js.map +1 -1
  73. package/lib/module/index.js +2 -1
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/menu/MenuCheckboxItem.js +38 -0
  76. package/lib/module/menu/MenuCheckboxItem.js.map +1 -0
  77. package/lib/module/menu/MenuItem.js +138 -0
  78. package/lib/module/menu/MenuItem.js.map +1 -0
  79. package/lib/module/menu/MenuOverlayRoot.js +76 -0
  80. package/lib/module/menu/MenuOverlayRoot.js.map +1 -0
  81. package/lib/module/menu/MenuPopup.js +74 -0
  82. package/lib/module/menu/MenuPopup.js.map +1 -0
  83. package/lib/module/menu/MenuRadioGroup.js +44 -0
  84. package/lib/module/menu/MenuRadioGroup.js.map +1 -0
  85. package/lib/module/menu/MenuRadioItem.js +28 -0
  86. package/lib/module/menu/MenuRadioItem.js.map +1 -0
  87. package/lib/module/menu/MenuRoot.js +135 -0
  88. package/lib/module/menu/MenuRoot.js.map +1 -0
  89. package/lib/module/menu/MenuTrigger.js +55 -0
  90. package/lib/module/menu/MenuTrigger.js.map +1 -0
  91. package/lib/module/menu/context.js +27 -0
  92. package/lib/module/menu/context.js.map +1 -0
  93. package/lib/module/menu/index.js +13 -0
  94. package/lib/module/menu/index.js.map +1 -0
  95. package/lib/module/menu/overlayContext.js +24 -0
  96. package/lib/module/menu/overlayContext.js.map +1 -0
  97. package/lib/module/menu/types.js +4 -0
  98. package/lib/module/menu/types.js.map +1 -0
  99. package/lib/module/menu/useMenuNavigation.js +84 -0
  100. package/lib/module/menu/useMenuNavigation.js.map +1 -0
  101. package/lib/module/menu/useMenuOverlayLifecycle.js +63 -0
  102. package/lib/module/menu/useMenuOverlayLifecycle.js.map +1 -0
  103. package/lib/module/menu/useMenuTrigger.js +111 -0
  104. package/lib/module/menu/useMenuTrigger.js.map +1 -0
  105. package/lib/module/overlay/OverlayContainer.js +2 -3
  106. package/lib/module/overlay/OverlayContainer.js.map +1 -1
  107. package/lib/module/overlay/OverlayStack.js +119 -0
  108. package/lib/module/overlay/OverlayStack.js.map +1 -0
  109. package/lib/module/overlay/constants.js +6 -0
  110. package/lib/module/overlay/constants.js.map +1 -1
  111. package/lib/module/overlay/getAnchoredOverlayPosition.js +183 -0
  112. package/lib/module/overlay/getAnchoredOverlayPosition.js.map +1 -0
  113. package/lib/module/overlay/index.js +4 -1
  114. package/lib/module/overlay/index.js.map +1 -1
  115. package/lib/module/overlay/useAnchoredOverlay.js +123 -0
  116. package/lib/module/overlay/useAnchoredOverlay.js.map +1 -0
  117. package/lib/module/overlay/useDismissOverlay.js +9 -1
  118. package/lib/module/overlay/useDismissOverlay.js.map +1 -1
  119. package/lib/module/overlay/useDismissOverlay.web.js +11 -3
  120. package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
  121. package/lib/module/overlay/useEscapeKey.js +9 -1
  122. package/lib/module/overlay/useEscapeKey.js.map +1 -1
  123. package/lib/module/overlay/useEscapeKey.web.js +11 -3
  124. package/lib/module/overlay/useEscapeKey.web.js.map +1 -1
  125. package/lib/module/overlay/useOverlayPosition.js +16 -7
  126. package/lib/module/overlay/useOverlayPosition.js.map +1 -1
  127. package/lib/module/portal/portal.js +86 -64
  128. package/lib/module/portal/portal.js.map +1 -1
  129. package/lib/module/select/SelectContent.js +25 -13
  130. package/lib/module/select/SelectContent.js.map +1 -1
  131. package/lib/module/select/useListboxNavigation.js +10 -11
  132. package/lib/module/select/useListboxNavigation.js.map +1 -1
  133. package/lib/module/tooltip/TooltipContent.js +30 -29
  134. package/lib/module/tooltip/TooltipContent.js.map +1 -1
  135. package/lib/module/tooltip/getTooltipPosition.js +37 -84
  136. package/lib/module/tooltip/getTooltipPosition.js.map +1 -1
  137. package/lib/typescript/dialog/DialogContent.d.ts.map +1 -1
  138. package/lib/typescript/dialog/DialogPopup.d.ts.map +1 -1
  139. package/lib/typescript/index.d.ts +2 -1
  140. package/lib/typescript/index.d.ts.map +1 -1
  141. package/lib/typescript/menu/MenuCheckboxItem.d.ts +6 -0
  142. package/lib/typescript/menu/MenuCheckboxItem.d.ts.map +1 -0
  143. package/lib/typescript/menu/MenuItem.d.ts +8 -0
  144. package/lib/typescript/menu/MenuItem.d.ts.map +1 -0
  145. package/lib/typescript/menu/MenuOverlayRoot.d.ts +8 -0
  146. package/lib/typescript/menu/MenuOverlayRoot.d.ts.map +1 -0
  147. package/lib/typescript/menu/MenuPopup.d.ts +8 -0
  148. package/lib/typescript/menu/MenuPopup.d.ts.map +1 -0
  149. package/lib/typescript/menu/MenuRadioGroup.d.ts +8 -0
  150. package/lib/typescript/menu/MenuRadioGroup.d.ts.map +1 -0
  151. package/lib/typescript/menu/MenuRadioItem.d.ts +6 -0
  152. package/lib/typescript/menu/MenuRadioItem.d.ts.map +1 -0
  153. package/lib/typescript/menu/MenuRoot.d.ts +8 -0
  154. package/lib/typescript/menu/MenuRoot.d.ts.map +1 -0
  155. package/lib/typescript/menu/MenuTrigger.d.ts +7 -0
  156. package/lib/typescript/menu/MenuTrigger.d.ts.map +1 -0
  157. package/lib/typescript/menu/context.d.ts +15 -0
  158. package/lib/typescript/menu/context.d.ts.map +1 -0
  159. package/lib/typescript/menu/index.d.ts +12 -0
  160. package/lib/typescript/menu/index.d.ts.map +1 -0
  161. package/lib/typescript/menu/overlayContext.d.ts +35 -0
  162. package/lib/typescript/menu/overlayContext.d.ts.map +1 -0
  163. package/lib/typescript/menu/types.d.ts +104 -0
  164. package/lib/typescript/menu/types.d.ts.map +1 -0
  165. package/lib/typescript/menu/useMenuNavigation.d.ts +16 -0
  166. package/lib/typescript/menu/useMenuNavigation.d.ts.map +1 -0
  167. package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts +15 -0
  168. package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts.map +1 -0
  169. package/lib/typescript/menu/useMenuTrigger.d.ts +35 -0
  170. package/lib/typescript/menu/useMenuTrigger.d.ts.map +1 -0
  171. package/lib/typescript/overlay/OverlayContainer.d.ts.map +1 -1
  172. package/lib/typescript/overlay/OverlayStack.d.ts +46 -0
  173. package/lib/typescript/overlay/OverlayStack.d.ts.map +1 -0
  174. package/lib/typescript/overlay/constants.d.ts +5 -0
  175. package/lib/typescript/overlay/constants.d.ts.map +1 -1
  176. package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts +45 -0
  177. package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts.map +1 -0
  178. package/lib/typescript/overlay/index.d.ts +5 -2
  179. package/lib/typescript/overlay/index.d.ts.map +1 -1
  180. package/lib/typescript/overlay/useAnchoredOverlay.d.ts +15 -0
  181. package/lib/typescript/overlay/useAnchoredOverlay.d.ts.map +1 -0
  182. package/lib/typescript/overlay/useDismissOverlay.d.ts +2 -1
  183. package/lib/typescript/overlay/useDismissOverlay.d.ts.map +1 -1
  184. package/lib/typescript/overlay/useDismissOverlay.web.d.ts +2 -1
  185. package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
  186. package/lib/typescript/overlay/useEscapeKey.d.ts +2 -1
  187. package/lib/typescript/overlay/useEscapeKey.d.ts.map +1 -1
  188. package/lib/typescript/overlay/useEscapeKey.web.d.ts +2 -1
  189. package/lib/typescript/overlay/useEscapeKey.web.d.ts.map +1 -1
  190. package/lib/typescript/overlay/useOverlayPosition.d.ts +5 -1
  191. package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
  192. package/lib/typescript/portal/portal.d.ts +3 -0
  193. package/lib/typescript/portal/portal.d.ts.map +1 -1
  194. package/lib/typescript/select/SelectContent.d.ts.map +1 -1
  195. package/lib/typescript/select/useListboxNavigation.d.ts.map +1 -1
  196. package/lib/typescript/tooltip/TooltipContent.d.ts.map +1 -1
  197. package/lib/typescript/tooltip/getTooltipPosition.d.ts +6 -8
  198. package/lib/typescript/tooltip/getTooltipPosition.d.ts.map +1 -1
  199. package/package.json +3 -3
  200. package/src/dialog/DialogContent.tsx +16 -4
  201. package/src/dialog/DialogPopup.tsx +5 -1
  202. package/src/index.ts +23 -0
  203. package/src/menu/MenuCheckboxItem.tsx +51 -0
  204. package/src/menu/MenuItem.tsx +197 -0
  205. package/src/menu/MenuOverlayRoot.tsx +100 -0
  206. package/src/menu/MenuPopup.tsx +81 -0
  207. package/src/menu/MenuRadioGroup.tsx +48 -0
  208. package/src/menu/MenuRadioItem.tsx +32 -0
  209. package/src/menu/MenuRoot.tsx +190 -0
  210. package/src/menu/MenuTrigger.tsx +57 -0
  211. package/src/menu/context.tsx +38 -0
  212. package/src/menu/index.ts +36 -0
  213. package/src/menu/overlayContext.tsx +61 -0
  214. package/src/menu/types.ts +119 -0
  215. package/src/menu/useMenuNavigation.ts +102 -0
  216. package/src/menu/useMenuOverlayLifecycle.ts +77 -0
  217. package/src/menu/useMenuTrigger.ts +161 -0
  218. package/src/overlay/OverlayContainer.tsx +3 -1
  219. package/src/overlay/OverlayStack.tsx +202 -0
  220. package/src/overlay/constants.ts +6 -0
  221. package/src/overlay/getAnchoredOverlayPosition.ts +326 -0
  222. package/src/overlay/index.ts +29 -1
  223. package/src/overlay/useAnchoredOverlay.ts +153 -0
  224. package/src/overlay/useDismissOverlay.ts +10 -2
  225. package/src/overlay/useDismissOverlay.web.ts +9 -2
  226. package/src/overlay/useEscapeKey.ts +13 -1
  227. package/src/overlay/useEscapeKey.web.ts +13 -3
  228. package/src/overlay/useOverlayPosition.ts +35 -8
  229. package/src/portal/portal.tsx +109 -69
  230. package/src/select/SelectContent.tsx +29 -17
  231. package/src/select/useListboxNavigation.ts +12 -9
  232. package/src/tooltip/TooltipContent.tsx +32 -34
  233. package/src/tooltip/getTooltipPosition.ts +58 -125
@@ -6,75 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.TOOLTIP_Z_INDEX = exports.TOOLTIP_PLACEMENTS = void 0;
7
7
  exports.getTooltipAnchorStyle = getTooltipAnchorStyle;
8
8
  var _reactNative = require("react-native");
9
- const TOOLTIP_PLACEMENTS = exports.TOOLTIP_PLACEMENTS = ['auto', 'auto-start', 'auto-end', 'top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'];
9
+ var _getAnchoredOverlayPosition = require("../overlay/getAnchoredOverlayPosition");
10
+ const TOOLTIP_PLACEMENTS = exports.TOOLTIP_PLACEMENTS = _getAnchoredOverlayPosition.OVERLAY_PLACEMENTS;
10
11
  const TOOLTIP_Z_INDEX = exports.TOOLTIP_Z_INDEX = 9999;
11
- const SCREEN_PADDING = 8;
12
- function parsePlacement(placement) {
13
- if (placement === 'auto' || placement === 'auto-start' || placement === 'auto-end') {
14
- return 'auto';
15
- }
16
- const segments = placement.split('-');
17
- const side = segments[0];
18
- if (segments.length === 1) {
19
- return {
20
- side,
21
- align: 'center'
22
- };
23
- }
24
- return {
25
- side,
26
- align: segments[1]
27
- };
28
- }
29
- function resolveAutoPlacement(anchor, viewport, alignPreference) {
30
- const spaceTop = anchor.y - SCREEN_PADDING;
31
- const spaceBottom = viewport.height - anchor.y - anchor.height - SCREEN_PADDING;
32
- const spaceLeft = anchor.x - SCREEN_PADDING;
33
- const spaceRight = viewport.width - anchor.x - anchor.width - SCREEN_PADDING;
34
- const spaces = [{
35
- side: 'top',
36
- value: spaceTop
37
- }, {
38
- side: 'bottom',
39
- value: spaceBottom
40
- }, {
41
- side: 'left',
42
- value: spaceLeft
43
- }, {
44
- side: 'right',
45
- value: spaceRight
46
- }];
47
- const best = spaces.reduce((current, next) => next.value > current.value ? next : current);
48
- return {
49
- side: best.side,
50
- align: alignPreference
51
- };
52
- }
53
- function getAlignOffset(anchor, align, axis) {
54
- if (align === 'start') {
55
- return axis === 'horizontal' ? anchor.x : anchor.y;
56
- }
57
- if (align === 'end') {
58
- return axis === 'horizontal' ? anchor.x + anchor.width : anchor.y + anchor.height;
59
- }
60
- return axis === 'horizontal' ? anchor.x + anchor.width / 2 : anchor.y + anchor.height / 2;
61
- }
62
- function getTooltipAnchorStyle(anchor, placement, offset, viewport) {
63
- const parsed = parsePlacement(placement);
64
- const resolved = parsed === 'auto' ? resolveAutoPlacement(anchor, viewport, placement === 'auto-start' ? 'start' : placement === 'auto-end' ? 'end' : 'center') : parsed;
65
- const position = _reactNative.Platform.OS === 'web' ? 'fixed' : 'absolute';
66
- const style = {
67
- position,
68
- zIndex: TOOLTIP_Z_INDEX
69
- };
70
- const {
71
- side,
72
- align
73
- } = resolved;
12
+ function getCompatibilityTransform({
13
+ side,
14
+ align
15
+ }) {
74
16
  if (side === 'top') {
75
- style.top = anchor.y - offset;
76
- style.left = getAlignOffset(anchor, align, 'horizontal');
77
- style.transform = align === 'center' ? [{
17
+ return align === 'center' ? [{
78
18
  translateX: '-50%'
79
19
  }, {
80
20
  translateY: '-100%'
@@ -85,18 +25,16 @@ function getTooltipAnchorStyle(anchor, placement, offset, viewport) {
85
25
  }] : [{
86
26
  translateY: '-100%'
87
27
  }];
88
- } else if (side === 'bottom') {
89
- style.top = anchor.y + anchor.height + offset;
90
- style.left = getAlignOffset(anchor, align, 'horizontal');
91
- style.transform = align === 'center' ? [{
28
+ }
29
+ if (side === 'bottom') {
30
+ return align === 'center' ? [{
92
31
  translateX: '-50%'
93
32
  }] : align === 'end' ? [{
94
33
  translateX: '-100%'
95
34
  }] : undefined;
96
- } else if (side === 'left') {
97
- style.left = anchor.x - offset;
98
- style.top = getAlignOffset(anchor, align, 'vertical');
99
- style.transform = align === 'center' ? [{
35
+ }
36
+ if (side === 'left') {
37
+ return align === 'center' ? [{
100
38
  translateX: '-100%'
101
39
  }, {
102
40
  translateY: '-50%'
@@ -107,17 +45,32 @@ function getTooltipAnchorStyle(anchor, placement, offset, viewport) {
107
45
  }] : [{
108
46
  translateX: '-100%'
109
47
  }];
110
- } else {
111
- style.left = anchor.x + anchor.width + offset;
112
- style.top = getAlignOffset(anchor, align, 'vertical');
113
- style.transform = align === 'center' ? [{
114
- translateY: '-50%'
115
- }] : align === 'end' ? [{
116
- translateY: '-100%'
117
- }] : undefined;
118
48
  }
49
+ return align === 'center' ? [{
50
+ translateY: '-50%'
51
+ }] : align === 'end' ? [{
52
+ translateY: '-100%'
53
+ }] : undefined;
54
+ }
55
+ function getTooltipAnchorStyle(anchor, placement, offset, viewport) {
56
+ const result = (0, _getAnchoredOverlayPosition.getAnchoredOverlayPosition)(anchor, {
57
+ width: 0,
58
+ height: 0
59
+ }, viewport, {
60
+ placement,
61
+ offset,
62
+ collisionBehavior: 'none'
63
+ });
64
+ const resolved = result.resolvedPlacement;
65
+ const position = _reactNative.Platform.OS === 'web' ? 'fixed' : 'absolute';
119
66
  return {
120
- style,
67
+ style: {
68
+ position,
69
+ left: result.style.left,
70
+ top: result.style.top,
71
+ zIndex: TOOLTIP_Z_INDEX,
72
+ transform: getCompatibilityTransform(resolved)
73
+ },
121
74
  resolved
122
75
  };
123
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","TOOLTIP_PLACEMENTS","exports","TOOLTIP_Z_INDEX","SCREEN_PADDING","parsePlacement","placement","segments","split","side","length","align","resolveAutoPlacement","anchor","viewport","alignPreference","spaceTop","y","spaceBottom","height","spaceLeft","x","spaceRight","width","spaces","value","best","reduce","current","next","getAlignOffset","axis","getTooltipAnchorStyle","offset","parsed","resolved","position","Platform","OS","style","zIndex","top","left","transform","translateX","translateY","undefined"],"sourceRoot":"../../../src","sources":["tooltip/getTooltipPosition.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_getAnchoredOverlayPosition","TOOLTIP_PLACEMENTS","exports","OVERLAY_PLACEMENTS","TOOLTIP_Z_INDEX","getCompatibilityTransform","side","align","translateX","translateY","undefined","getTooltipAnchorStyle","anchor","placement","offset","viewport","result","getAnchoredOverlayPosition","width","height","collisionBehavior","resolved","resolvedPlacement","position","Platform","OS","style","left","top","zIndex","transform"],"sourceRoot":"../../../src","sources":["tooltip/getTooltipPosition.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AASO,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,8CAAkB;AAQ7C,MAAMC,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAG,IAAI;AAEnC,SAASC,yBAAyBA,CAAC;EACjCC,IAAI;EACJC;AACwB,CAAC,EAA0B;EACnD,IAAID,IAAI,KAAK,KAAK,EAAE;IAClB,OAAOC,KAAK,KAAK,QAAQ,GACpB,CAAC;MAAEC,UAAU,EAAE;IAAO,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAQ,CAAC,CAAC,GAClDF,KAAK,KAAK,KAAK,GACZ,CAAC;MAAEC,UAAU,EAAE;IAAQ,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAQ,CAAC,CAAC,GAClD,CAAC;MAAEA,UAAU,EAAE;IAAQ,CAAC,CAA4B;EAC7D;EAEA,IAAIH,IAAI,KAAK,QAAQ,EAAE;IACrB,OAAOC,KAAK,KAAK,QAAQ,GACpB,CAAC;MAAEC,UAAU,EAAE;IAAO,CAAC,CAAC,GACzBD,KAAK,KAAK,KAAK,GACZ,CAAC;MAAEC,UAAU,EAAE;IAAQ,CAAC,CAAC,GAC1BE,SAAS;EACjB;EAEA,IAAIJ,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOC,KAAK,KAAK,QAAQ,GACpB,CAAC;MAAEC,UAAU,EAAE;IAAQ,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAO,CAAC,CAAC,GAClDF,KAAK,KAAK,KAAK,GACZ,CAAC;MAAEC,UAAU,EAAE;IAAQ,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAQ,CAAC,CAAC,GAClD,CAAC;MAAED,UAAU,EAAE;IAAQ,CAAC,CAA4B;EAC7D;EAEA,OAAOD,KAAK,KAAK,QAAQ,GACpB,CAAC;IAAEE,UAAU,EAAE;EAAO,CAAC,CAAC,GACzBF,KAAK,KAAK,KAAK,GACZ,CAAC;IAAEE,UAAU,EAAE;EAAQ,CAAC,CAAC,GAC1BC,SAAS;AACjB;AAEO,SAASC,qBAAqBA,CACnCC,MAAoB,EACpBC,SAA2B,EAC3BC,MAAc,EACdC,QAA2C,EACe;EAC1D,MAAMC,MAAM,GAAG,IAAAC,sDAA0B,EAACL,MAAM,EAAE;IAAEM,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC,EAAEJ,QAAQ,EAAE;IACnFF,SAAS;IACTC,MAAM;IACNM,iBAAiB,EAAE;EACrB,CAAC,CAAC;EACF,MAAMC,QAAQ,GAAGL,MAAM,CAACM,iBAAiB;EACzC,MAAMC,QAAQ,GAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,UAAoC;EACxF,OAAO;IACLC,KAAK,EAAE;MACLH,QAAQ;MACRI,IAAI,EAAEX,MAAM,CAACU,KAAK,CAACC,IAAI;MACvBC,GAAG,EAAEZ,MAAM,CAACU,KAAK,CAACE,GAAG;MACrBC,MAAM,EAAEzB,eAAe;MACvB0B,SAAS,EAAEzB,yBAAyB,CAACgB,QAAQ;IAC/C,CAAC;IACDA;EACF,CAAC;AACH","ignoreList":[]}
@@ -4,7 +4,7 @@ import { forwardRef, useCallback, useEffect } from 'react';
4
4
  import { BackHandler, Platform, View } from 'react-native';
5
5
  import { FocusScope } from '@react-native-aria/focus';
6
6
  import { Slot } from '../slot';
7
- import { useEscapeKey } from '../overlay';
7
+ import { useEscapeKey, useOverlayStackRegistration } from '../overlay';
8
8
  import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
9
9
  import { useDialog } from './context';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -34,18 +34,32 @@ export const DialogContent = /*#__PURE__*/forwardRef(({
34
34
  const handleClose = useCallback(() => {
35
35
  onOpenChange(false);
36
36
  }, [onOpenChange]);
37
- useEscapeKey(open && closeOnEscKey, handleClose);
37
+ useEscapeKey(open && closeOnEscKey, handleClose, {
38
+ id: nativeID,
39
+ groupId: nativeID,
40
+ layer: 'modal'
41
+ });
42
+ const {
43
+ isTopmost
44
+ } = useOverlayStackRegistration({
45
+ active: open && Platform.OS !== 'web',
46
+ capabilities: ['back'],
47
+ id: nativeID,
48
+ groupId: nativeID,
49
+ layer: 'modal'
50
+ });
38
51
  useEffect(() => {
39
52
  // BackHandler is native-only; react-native-web warns on every subscription.
40
53
  if (!open || Platform.OS === 'web') return;
41
54
  const backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
42
- onOpenChange(false);
55
+ if (!isTopmost('back')) return false;
56
+ handleClose();
43
57
  return true;
44
58
  });
45
59
  return () => {
46
60
  backHandler.remove();
47
61
  };
48
- }, [open, onOpenChange]);
62
+ }, [handleClose, isTopmost, open]);
49
63
  if (!forceMount && !open) {
50
64
  return null;
51
65
  }
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useCallback","useEffect","BackHandler","Platform","View","FocusScope","Slot","useEscapeKey","dataAttributes","mergeDataAttributes","useDialog","jsx","_jsx","DialogContent","asChild","forceMount","children","props","ref","open","onOpenChange","closeOnEscKey","nativeID","role","handleClose","OS","backHandler","addEventListener","remove","Comp","ariaProps","contain","restoreFocus","autoFocus","undefined","state","displayName"],"sourceRoot":"../../../src","sources":["dialog/DialogContent.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,EAAEC,SAAS,QAA2B,OAAO;AAC7E,SAASC,WAAW,EAAEC,QAAQ,EAAEC,IAAI,QAAwB,cAAc;AAC1E,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,YAAY,QAAQ,YAAY;AACzC,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,SAAS,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAKtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,gBAAGd,UAAU,CACrC,CAAC;EAAEe,OAAO,GAAG,KAAK;EAAEC,UAAU,GAAG,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACpE,MAAM;IAAEC,IAAI;IAAEC,YAAY;IAAEC,aAAa;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGb,SAAS,CAAC,CAAC;EAEzE,MAAMc,WAAW,GAAGxB,WAAW,CAAC,MAAM;IACpCoB,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElBb,YAAY,CAACY,IAAI,IAAIE,aAAa,EAAEG,WAAW,CAAC;EAEhDvB,SAAS,CAAC,MAAM;IACd;IACA,IAAI,CAACkB,IAAI,IAAIhB,QAAQ,CAACsB,EAAE,KAAK,KAAK,EAAE;IAEpC,MAAMC,WAAW,GAAGxB,WAAW,CAACyB,gBAAgB,CAAC,mBAAmB,EAAE,MAAM;MAC1EP,YAAY,CAAC,KAAK,CAAC;MACnB,OAAO,IAAI;IACb,CAAC,CAAC;IAEF,OAAO,MAAM;MACXM,WAAW,CAACE,MAAM,CAAC,CAAC;IACtB,CAAC;EACH,CAAC,EAAE,CAACT,IAAI,EAAEC,YAAY,CAAC,CAAC;EAExB,IAAI,CAACL,UAAU,IAAI,CAACI,IAAI,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,MAAMU,IAAI,GAAGf,OAAO,GAAGR,IAAI,GAAGF,IAAI;EAElC,MAAM0B,SAAS,GAAG;IAChBP,IAAI;IACJ,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,GAAGD,QAAQ,QAAQ;IACtC,kBAAkB,EAAE,GAAGA,QAAQ;EACjC,CAAC;EAED,oBACEV,IAAA,CAACP,UAAU;IAAC0B,OAAO,EAAEZ,IAAK;IAACa,YAAY;IAACC,SAAS,EAAEd,IAAK;IAAAH,QAAA,eACtDJ,IAAA,CAACiB,IAAI;MACHX,GAAG,EAAEA,GAAI;MACTI,QAAQ,EAAEA,QAAS;MAAA,GACfQ,SAAS;MAAA,GACRb,KAAK;MAAA,GACNR,mBAAmB,CACrBQ,KAAK,EACLF,UAAU,GAAGmB,SAAS,GAAG1B,cAAc,CAAC;QAAE2B,KAAK,EAAEhB,IAAI,GAAG,MAAM,GAAG;MAAS,CAAC,CAC7E,CAAC;MAAAH,QAAA,EAEAA;IAAQ,CACL;EAAC,CACG,CAAC;AAEjB,CACF,CAAC;AAEDH,aAAa,CAACuB,WAAW,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","BackHandler","Platform","View","FocusScope","Slot","useEscapeKey","useOverlayStackRegistration","dataAttributes","mergeDataAttributes","useDialog","jsx","_jsx","DialogContent","asChild","forceMount","children","props","ref","open","onOpenChange","closeOnEscKey","nativeID","role","handleClose","id","groupId","layer","isTopmost","active","OS","capabilities","backHandler","addEventListener","remove","Comp","ariaProps","contain","restoreFocus","autoFocus","undefined","state","displayName"],"sourceRoot":"../../../src","sources":["dialog/DialogContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,11 @@ export const DialogPopup = /*#__PURE__*/forwardRef(({
30
30
  const handleClose = useCallback(() => {
31
31
  onOpenChange(false);
32
32
  }, [onOpenChange]);
33
- useEscapeKey(open && closeOnEscKey, handleClose);
33
+ useEscapeKey(open && closeOnEscKey, handleClose, {
34
+ id: nativeID,
35
+ groupId: nativeID,
36
+ layer: 'modal'
37
+ });
34
38
  if (!(open || forceMount)) {
35
39
  return null;
36
40
  }
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useCallback","KeyboardAvoidingView","Modal","Platform","Pressable","StyleSheet","View","FocusScope","Slot","MODAL_OVERLAY_Z_INDEX","useEscapeKey","createPortalFn","dataAttributes","mergeDataAttributes","useDialog","jsx","_jsx","jsxs","_jsxs","DialogPopup","asChild","children","forceMount","avoidKeyboard","keyboardVerticalOffset","zIndex","overlayClassName","props","ref","open","onOpenChange","closeOnBackdropPress","closeOnEscKey","nativeID","role","handleClose","overlayProps","onPress","accessible","importantForAccessibility","className","slot","ariaProps","popupAttrs","state","Comp","OS","contain","restoreFocus","autoFocus","style","position","inset","display","alignItems","justifyContent","document","body","keyboardBehavior","select","ios","default","undefined","visible","transparent","statusBarTranslucent","onRequestClose","styles","fill","center","pointerEvents","behavior","displayName","create","flex"],"sourceRoot":"../../../src","sources":["dialog/DialogPopup.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useCallback","KeyboardAvoidingView","Modal","Platform","Pressable","StyleSheet","View","FocusScope","Slot","MODAL_OVERLAY_Z_INDEX","useEscapeKey","createPortalFn","dataAttributes","mergeDataAttributes","useDialog","jsx","_jsx","jsxs","_jsxs","DialogPopup","asChild","children","forceMount","avoidKeyboard","keyboardVerticalOffset","zIndex","overlayClassName","props","ref","open","onOpenChange","closeOnBackdropPress","closeOnEscKey","nativeID","role","handleClose","id","groupId","layer","overlayProps","onPress","accessible","importantForAccessibility","className","slot","ariaProps","popupAttrs","state","Comp","OS","contain","restoreFocus","autoFocus","style","position","inset","display","alignItems","justifyContent","document","body","keyboardBehavior","select","ios","default","undefined","visible","transparent","statusBarTranslucent","onRequestClose","styles","fill","center","pointerEvents","behavior","displayName","create","flex"],"sourceRoot":"../../../src","sources":["dialog/DialogPopup.tsx"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,8 @@ export * from './date-time-list';
23
23
  export * from './date-time-picker';
24
24
  export * from './link';
25
25
  export * from './list-item';
26
- export { MODAL_OVERLAY_Z_INDEX, OverlayContainer, OverlayInsetsProvider, useAnchorPosition, useDismissOverlay, useEscapeKey, useOverlayPosition } from './overlay';
26
+ export * from './menu';
27
+ export { MODAL_OVERLAY_Z_INDEX, NOTIFICATION_OVERLAY_Z_INDEX, OVERLAY_PLACEMENTS, getAnchoredOverlayPosition, OverlayContainer, OverlayInsetsProvider, OverlayStackProvider, useAnchorPosition, useAnchoredOverlay, useDismissOverlay, useEscapeKey, useOverlayStackRegistration, useOverlayPosition } from './overlay';
27
28
  export * from './select';
28
29
  export * from './switch';
29
30
  export * from './tabs';
@@ -1 +1 @@
1
- {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","OverlayContainer","OverlayInsetsProvider","useAnchorPosition","useDismissOverlay","useEscapeKey","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","assignRef","createPortalFn","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SACEA,qBAAqB,EAErBC,gBAAgB,EAChBC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,EACjBC,YAAY,EACZC,kBAAkB,QAGb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,UAAU;AAExB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OVERLAY_PLACEMENTS","getAnchoredOverlayPosition","OverlayContainer","OverlayInsetsProvider","OverlayStackProvider","useAnchorPosition","useAnchoredOverlay","useDismissOverlay","useEscapeKey","useOverlayStackRegistration","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","assignRef","createPortalFn","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,SACEA,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAElBC,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,2BAA2B,EAC3BC,kBAAkB,QAmBb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,UAAU;AAExB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { composeEventHandlers, useControllableState } from '@cdx-ui/utils';
5
+ import { MenuItem } from './MenuItem';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const MenuCheckboxItem = /*#__PURE__*/forwardRef(({
8
+ asChild,
9
+ children,
10
+ isChecked: checkedProp,
11
+ defaultIsChecked = false,
12
+ onChange,
13
+ onPress,
14
+ closeOnSelect = false,
15
+ ...props
16
+ }, ref) => {
17
+ const [checked = false, setCheckedState] = useControllableState({
18
+ prop: checkedProp,
19
+ defaultProp: defaultIsChecked
20
+ });
21
+ const toggleChecked = () => {
22
+ const nextChecked = !checked;
23
+ setCheckedState(nextChecked);
24
+ onChange?.(nextChecked);
25
+ };
26
+ return /*#__PURE__*/_jsx(MenuItem, {
27
+ ref: ref,
28
+ asChild: asChild,
29
+ itemRole: "menuitemcheckbox",
30
+ isChecked: checked,
31
+ closeOnSelect: closeOnSelect,
32
+ onPress: composeEventHandlers(onPress, toggleChecked),
33
+ ...props,
34
+ children: children
35
+ });
36
+ });
37
+ MenuCheckboxItem.displayName = 'MenuCheckboxItem';
38
+ //# sourceMappingURL=MenuCheckboxItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","composeEventHandlers","useControllableState","MenuItem","jsx","_jsx","MenuCheckboxItem","asChild","children","isChecked","checkedProp","defaultIsChecked","onChange","onPress","closeOnSelect","props","ref","checked","setCheckedState","prop","defaultProp","toggleChecked","nextChecked","itemRole","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuCheckboxItem.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AAErD,SAASC,oBAAoB,EAAEC,oBAAoB,QAAQ,eAAe;AAC1E,SAASC,QAAQ,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtC,OAAO,MAAMC,gBAAgB,gBAAGN,UAAU,CACxC,CACE;EACEO,OAAO;EACPC,QAAQ;EACRC,SAAS,EAAEC,WAAW;EACtBC,gBAAgB,GAAG,KAAK;EACxBC,QAAQ;EACRC,OAAO;EACPC,aAAa,GAAG,KAAK;EACrB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM,CAACC,OAAO,GAAG,KAAK,EAAEC,eAAe,CAAC,GAAGhB,oBAAoB,CAAU;IACvEiB,IAAI,EAAET,WAAW;IACjBU,WAAW,EAAET;EACf,CAAC,CAAC;EACF,MAAMU,aAAa,GAAGA,CAAA,KAAM;IAC1B,MAAMC,WAAW,GAAG,CAACL,OAAO;IAC5BC,eAAe,CAACI,WAAW,CAAC;IAC5BV,QAAQ,GAAGU,WAAW,CAAC;EACzB,CAAC;EAED,oBACEjB,IAAA,CAACF,QAAQ;IACPa,GAAG,EAAEA,GAAI;IACTT,OAAO,EAAEA,OAAQ;IACjBgB,QAAQ,EAAC,kBAAkB;IAC3Bd,SAAS,EAAEQ,OAAQ;IACnBH,aAAa,EAAEA,aAAc;IAC7BD,OAAO,EAAEZ,oBAAoB,CAACY,OAAO,EAAEQ,aAAa,CAAE;IAAA,GAClDN,KAAK;IAAAP,QAAA,EAERA;EAAQ,CACD,CAAC;AAEf,CACF,CAAC;AAEDF,gBAAgB,CAACkB,WAAW,GAAG,kBAAkB","ignoreList":[]}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useEffect, useId, useMemo, useRef } from 'react';
4
+ import { Platform, Pressable } from 'react-native';
5
+ import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
6
+ import { useFocus, useFocusRing } from '@react-native-aria/focus';
7
+ import { useHover, usePress } from '@react-native-aria/interactions';
8
+ import { Slot } from '../slot';
9
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
10
+ import { MenuItemProvider, useMenuContext } from './context';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export const MenuItem = /*#__PURE__*/forwardRef(({
13
+ asChild,
14
+ children,
15
+ itemRole = 'menuitem',
16
+ isChecked = false,
17
+ disabled: disabledProp = false,
18
+ closeOnSelect: closeOnSelectProp,
19
+ isHovered: isHoveredProp,
20
+ isActive: isActiveProp,
21
+ isFocused: isFocusedProp,
22
+ isFocusVisible: isFocusVisibleProp,
23
+ isDisabled: isDisabledProp,
24
+ onPress,
25
+ ...props
26
+ }, ref) => {
27
+ const {
28
+ menuId,
29
+ registerItem,
30
+ unregisterItem,
31
+ focusedItemId,
32
+ setFocusedItemId,
33
+ closeOnSelect: closeOverlayOnSelect,
34
+ dismissOverlay
35
+ } = useMenuContext();
36
+ const reactId = useId();
37
+ const itemId = `menu-item-${reactId}`;
38
+ const domId = props.id ?? `${menuId}-item-${reactId}`;
39
+ const disabled = !!disabledProp || !!isDisabledProp;
40
+ const highlighted = focusedItemId === itemId;
41
+ const isSelectable = itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio';
42
+ const closeOnSelect = closeOnSelectProp ?? closeOverlayOnSelect;
43
+ const resolvedRole = Platform.OS === 'web' ? itemRole : itemRole === 'menuitemcheckbox' ? 'checkbox' : itemRole === 'menuitemradio' ? 'radio' : 'menuitem';
44
+ const nodeRef = useRef(null);
45
+ const mergedRef = mergeRefs(ref, nodeRef);
46
+ const onPressRef = useRef(onPress);
47
+ onPressRef.current = onPress;
48
+ const invokePress = useCallback(event => {
49
+ if (!disabled) {
50
+ onPressRef.current?.(event);
51
+ if (closeOnSelect) {
52
+ dismissOverlay?.('select');
53
+ }
54
+ }
55
+ }, [disabled, closeOnSelect, dismissOverlay]);
56
+ useEffect(() => {
57
+ registerItem(itemId, {
58
+ disabled,
59
+ node: nodeRef.current
60
+ });
61
+ return () => unregisterItem(itemId);
62
+ }, [itemId, disabled, registerItem, unregisterItem]);
63
+ const {
64
+ isFocusVisible,
65
+ focusProps: focusRingProps
66
+ } = useFocusRing();
67
+ const {
68
+ pressProps,
69
+ isPressed: isActive
70
+ } = usePress({
71
+ isDisabled: disabled
72
+ });
73
+ const {
74
+ isFocused,
75
+ focusProps
76
+ } = useFocus();
77
+ const {
78
+ isHovered,
79
+ hoverProps
80
+ } = useHover();
81
+ const interactionState = useMemo(() => ({
82
+ hover: !!(isHoveredProp || isHovered),
83
+ focus: !!(isFocusedProp || isFocused),
84
+ active: !!(isActiveProp || isActive),
85
+ disabled: !!disabled,
86
+ focusVisible: !!(isFocusVisibleProp || isFocusVisible),
87
+ highlighted,
88
+ checked: isChecked
89
+ }), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible, highlighted, isChecked]);
90
+ const isRovingTabStop = highlighted;
91
+ const webProps = Platform.OS === 'web' ? {
92
+ tabIndex: isRovingTabStop ? 0 : -1
93
+ } : {};
94
+ const handlePressWithFocus = useCallback(_ => {
95
+ if (!disabled) {
96
+ setFocusedItemId(itemId);
97
+ }
98
+ }, [disabled, itemId, setFocusedItemId]);
99
+ const Comp = asChild ? Slot : Pressable;
100
+ return /*#__PURE__*/_jsx(MenuItemProvider, {
101
+ value: interactionState,
102
+ children: /*#__PURE__*/_jsx(Comp, {
103
+ ref: mergedRef,
104
+ role: resolvedRole,
105
+ id: domId,
106
+ "aria-checked": isSelectable ? isChecked : undefined,
107
+ "aria-disabled": disabled,
108
+ disabled: disabled,
109
+ accessibilityState: {
110
+ disabled,
111
+ ...(isSelectable ? {
112
+ checked: isChecked
113
+ } : {})
114
+ },
115
+ ...webProps,
116
+ ...props,
117
+ ...mergeDataAttributes(props, dataAttributes({
118
+ hover: interactionState.hover,
119
+ focus: interactionState.focus,
120
+ active: interactionState.active,
121
+ disabled: interactionState.disabled,
122
+ focusVisible: interactionState.focusVisible,
123
+ highlighted: interactionState.highlighted,
124
+ state: isSelectable ? isChecked ? 'checked' : 'unchecked' : undefined
125
+ })),
126
+ onPress: composeEventHandlers(invokePress, handlePressWithFocus),
127
+ onPressIn: composeEventHandlers(props?.onPressIn, pressProps.onPressIn),
128
+ onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
129
+ onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
130
+ onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
131
+ onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus, () => setFocusedItemId(itemId)),
132
+ onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
133
+ children: children
134
+ })
135
+ });
136
+ });
137
+ MenuItem.displayName = 'MenuItem';
138
+ //# sourceMappingURL=MenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useId","useMemo","useRef","Platform","Pressable","composeEventHandlers","mergeRefs","useFocus","useFocusRing","useHover","usePress","Slot","dataAttributes","mergeDataAttributes","MenuItemProvider","useMenuContext","jsx","_jsx","MenuItem","asChild","children","itemRole","isChecked","disabled","disabledProp","closeOnSelect","closeOnSelectProp","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","onPress","props","ref","menuId","registerItem","unregisterItem","focusedItemId","setFocusedItemId","closeOverlayOnSelect","dismissOverlay","reactId","itemId","domId","id","highlighted","isSelectable","resolvedRole","OS","nodeRef","mergedRef","onPressRef","current","invokePress","event","node","focusProps","focusRingProps","pressProps","isPressed","hoverProps","interactionState","hover","focus","active","focusVisible","checked","isRovingTabStop","webProps","tabIndex","handlePressWithFocus","_","Comp","value","role","undefined","accessibilityState","state","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useId, useMemo, useRef } from 'react';
4
+ import { View } from 'react-native';
5
+ import { useControllableState } from '@cdx-ui/utils';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { MenuOverlayProvider } from './overlayContext';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export const MenuOverlayRoot = /*#__PURE__*/forwardRef(({
11
+ asChild,
12
+ children,
13
+ isOpen: openProp,
14
+ defaultOpen = false,
15
+ onOpenChange,
16
+ disabled = false,
17
+ placement = 'bottom-start',
18
+ offset = 4,
19
+ crossOffset = 0,
20
+ ...props
21
+ }, ref) => {
22
+ const [open, setOpenState] = useControllableState({
23
+ prop: openProp,
24
+ defaultProp: defaultOpen,
25
+ onChange: onOpenChange
26
+ });
27
+ const closeReasonRef = useRef('programmatic');
28
+ const setOpen = useCallback(nextOpen => {
29
+ if (disabled && nextOpen) {
30
+ return;
31
+ }
32
+ if (nextOpen) {
33
+ closeReasonRef.current = 'programmatic';
34
+ }
35
+ setOpenState(nextOpen);
36
+ }, [disabled, setOpenState]);
37
+ const triggerRef = useRef(null);
38
+ const contentRef = useRef(null);
39
+ const focusOnOpenRef = useRef('menu');
40
+ const reactId = useId();
41
+ const triggerId = `menu-trigger-${reactId}`;
42
+ const menuId = `menu-content-${reactId}`;
43
+ const closeMenu = useCallback((reason = 'programmatic') => {
44
+ closeReasonRef.current = reason;
45
+ setOpen(false);
46
+ }, [setOpen]);
47
+ const contextValue = useMemo(() => ({
48
+ open: open ?? false,
49
+ setOpen,
50
+ closeMenu,
51
+ disabled,
52
+ placement,
53
+ offset,
54
+ crossOffset,
55
+ triggerRef,
56
+ triggerId,
57
+ menuId,
58
+ contentRef,
59
+ focusOnOpenRef,
60
+ closeReasonRef
61
+ }), [open, setOpen, closeMenu, disabled, placement, offset, crossOffset, triggerId, menuId]);
62
+ const Comp = asChild ? Slot : View;
63
+ return /*#__PURE__*/_jsx(MenuOverlayProvider, {
64
+ value: contextValue,
65
+ children: /*#__PURE__*/_jsx(Comp, {
66
+ ref: ref,
67
+ ...props,
68
+ ...mergeDataAttributes(props, dataAttributes({
69
+ slot: 'menu'
70
+ })),
71
+ children: children
72
+ })
73
+ });
74
+ });
75
+ MenuOverlayRoot.displayName = 'MenuOverlayRoot';
76
+ //# sourceMappingURL=MenuOverlayRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useId","useMemo","useRef","View","useControllableState","Slot","dataAttributes","mergeDataAttributes","MenuOverlayProvider","jsx","_jsx","MenuOverlayRoot","asChild","children","isOpen","openProp","defaultOpen","onOpenChange","disabled","placement","offset","crossOffset","props","ref","open","setOpenState","prop","defaultProp","onChange","closeReasonRef","setOpen","nextOpen","current","triggerRef","contentRef","focusOnOpenRef","reactId","triggerId","menuId","closeMenu","reason","contextValue","Comp","value","slot","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuOverlayRoot.tsx"],"mappings":"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","ignoreList":[]}