@cdx-ui/components 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 (105) hide show
  1. package/coverage.svg +1 -1
  2. package/lib/commonjs/components/Menu/index.js +499 -0
  3. package/lib/commonjs/components/Menu/index.js.map +1 -0
  4. package/lib/commonjs/components/Menu/styles.js +100 -0
  5. package/lib/commonjs/components/Menu/styles.js.map +1 -0
  6. package/lib/commonjs/components/Select/index.js +57 -22
  7. package/lib/commonjs/components/Select/index.js.map +1 -1
  8. package/lib/commonjs/components/Select/styles.js +1 -40
  9. package/lib/commonjs/components/Select/styles.js.map +1 -1
  10. package/lib/commonjs/components/Slider/getSliderPopupPosition.js +16 -6
  11. package/lib/commonjs/components/Slider/getSliderPopupPosition.js.map +1 -1
  12. package/lib/commonjs/components/Slider/index.js +17 -5
  13. package/lib/commonjs/components/Slider/index.js.map +1 -1
  14. package/lib/commonjs/components/Toast/index.js +1 -1
  15. package/lib/commonjs/components/Toast/index.js.map +1 -1
  16. package/lib/commonjs/components/index.js +12 -0
  17. package/lib/commonjs/components/index.js.map +1 -1
  18. package/lib/commonjs/components/picker/surfaces.js +16 -9
  19. package/lib/commonjs/components/picker/surfaces.js.map +1 -1
  20. package/lib/commonjs/figma/Menu.Item.figma.js +52 -0
  21. package/lib/commonjs/figma/Menu.Item.figma.js.map +1 -0
  22. package/lib/commonjs/figma/Menu.figma.js +29 -0
  23. package/lib/commonjs/figma/Menu.figma.js.map +1 -0
  24. package/lib/commonjs/providers/forge-design/provider.js +25 -11
  25. package/lib/commonjs/providers/forge-design/provider.js.map +1 -1
  26. package/lib/commonjs/providers/toast/insets-container.js +4 -1
  27. package/lib/commonjs/providers/toast/insets-container.js.map +1 -1
  28. package/lib/commonjs/providers/toast/provider.js +126 -45
  29. package/lib/commonjs/providers/toast/provider.js.map +1 -1
  30. package/lib/commonjs/providers/toast/toast-item-renderer.js +2 -1
  31. package/lib/commonjs/providers/toast/toast-item-renderer.js.map +1 -1
  32. package/lib/module/components/Menu/index.js +495 -0
  33. package/lib/module/components/Menu/index.js.map +1 -0
  34. package/lib/module/components/Menu/styles.js +96 -0
  35. package/lib/module/components/Menu/styles.js.map +1 -0
  36. package/lib/module/components/Select/index.js +55 -20
  37. package/lib/module/components/Select/index.js.map +1 -1
  38. package/lib/module/components/Select/styles.js +0 -39
  39. package/lib/module/components/Select/styles.js.map +1 -1
  40. package/lib/module/components/Slider/getSliderPopupPosition.js +16 -6
  41. package/lib/module/components/Slider/getSliderPopupPosition.js.map +1 -1
  42. package/lib/module/components/Slider/index.js +20 -8
  43. package/lib/module/components/Slider/index.js.map +1 -1
  44. package/lib/module/components/Toast/index.js +1 -1
  45. package/lib/module/components/Toast/index.js.map +1 -1
  46. package/lib/module/components/index.js +1 -0
  47. package/lib/module/components/index.js.map +1 -1
  48. package/lib/module/components/picker/surfaces.js +18 -11
  49. package/lib/module/components/picker/surfaces.js.map +1 -1
  50. package/lib/module/figma/Menu.Item.figma.js +46 -0
  51. package/lib/module/figma/Menu.Item.figma.js.map +1 -0
  52. package/lib/module/figma/Menu.figma.js +23 -0
  53. package/lib/module/figma/Menu.figma.js.map +1 -0
  54. package/lib/module/providers/forge-design/provider.js +26 -12
  55. package/lib/module/providers/forge-design/provider.js.map +1 -1
  56. package/lib/module/providers/toast/insets-container.js +5 -2
  57. package/lib/module/providers/toast/insets-container.js.map +1 -1
  58. package/lib/module/providers/toast/provider.js +126 -45
  59. package/lib/module/providers/toast/provider.js.map +1 -1
  60. package/lib/module/providers/toast/toast-item-renderer.js +2 -1
  61. package/lib/module/providers/toast/toast-item-renderer.js.map +1 -1
  62. package/lib/typescript/components/Menu/index.d.ts +119 -0
  63. package/lib/typescript/components/Menu/index.d.ts.map +1 -0
  64. package/lib/typescript/components/Menu/styles.d.ts +24 -0
  65. package/lib/typescript/components/Menu/styles.d.ts.map +1 -0
  66. package/lib/typescript/components/Select/index.d.ts.map +1 -1
  67. package/lib/typescript/components/Select/styles.d.ts +0 -7
  68. package/lib/typescript/components/Select/styles.d.ts.map +1 -1
  69. package/lib/typescript/components/Slider/getSliderPopupPosition.d.ts +1 -1
  70. package/lib/typescript/components/Slider/getSliderPopupPosition.d.ts.map +1 -1
  71. package/lib/typescript/components/Slider/index.d.ts.map +1 -1
  72. package/lib/typescript/components/Toast/types.d.ts +2 -2
  73. package/lib/typescript/components/Toast/types.d.ts.map +1 -1
  74. package/lib/typescript/components/index.d.ts +1 -0
  75. package/lib/typescript/components/index.d.ts.map +1 -1
  76. package/lib/typescript/components/picker/surfaces.d.ts.map +1 -1
  77. package/lib/typescript/figma/Menu.Item.figma.d.ts +8 -0
  78. package/lib/typescript/figma/Menu.Item.figma.d.ts.map +1 -0
  79. package/lib/typescript/figma/Menu.figma.d.ts +8 -0
  80. package/lib/typescript/figma/Menu.figma.d.ts.map +1 -0
  81. package/lib/typescript/providers/forge-design/provider.d.ts.map +1 -1
  82. package/lib/typescript/providers/toast/insets-container.d.ts.map +1 -1
  83. package/lib/typescript/providers/toast/lifecycle.context.d.ts +2 -2
  84. package/lib/typescript/providers/toast/lifecycle.context.d.ts.map +1 -1
  85. package/lib/typescript/providers/toast/provider.d.ts.map +1 -1
  86. package/lib/typescript/providers/toast/toast-item-renderer.d.ts.map +1 -1
  87. package/lib/typescript/providers/toast/types.d.ts +22 -8
  88. package/lib/typescript/providers/toast/types.d.ts.map +1 -1
  89. package/package.json +5 -5
  90. package/src/components/Menu/index.tsx +654 -0
  91. package/src/components/Menu/styles.ts +153 -0
  92. package/src/components/Select/index.tsx +58 -23
  93. package/src/components/Select/styles.ts +0 -59
  94. package/src/components/Slider/getSliderPopupPosition.ts +19 -7
  95. package/src/components/Slider/index.tsx +25 -9
  96. package/src/components/Toast/index.tsx +1 -1
  97. package/src/components/Toast/types.ts +2 -2
  98. package/src/components/index.ts +1 -0
  99. package/src/components/picker/surfaces.tsx +13 -9
  100. package/src/providers/forge-design/provider.tsx +35 -16
  101. package/src/providers/toast/insets-container.tsx +3 -2
  102. package/src/providers/toast/lifecycle.context.tsx +2 -2
  103. package/src/providers/toast/provider.tsx +150 -51
  104. package/src/providers/toast/toast-item-renderer.tsx +5 -1
  105. package/src/providers/toast/types.ts +22 -8
package/coverage.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="108" height="20" role="img" aria-label="coverage: 90.2%"><title>coverage: 90.2%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="108" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="47" height="20" fill="#4b0"/><rect width="108" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="835" y="150" fill-opacity=".8" filter="url(#blur)" textLength="370">90.2%</text><text x="835" y="150" fill-opacity=".3" textLength="370">90.2%</text></g><text x="835" y="140" textLength="370">90.2%</text></g></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="108" height="20" role="img" aria-label="coverage: 90.7%"><title>coverage: 90.7%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="108" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="47" height="20" fill="#4b0"/><rect width="108" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="835" y="150" fill-opacity=".8" filter="url(#blur)" textLength="370">90.7%</text><text x="835" y="150" fill-opacity=".3" textLength="370">90.7%</text></g><text x="835" y="140" textLength="370">90.7%</text></g></g></svg>
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Menu = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _icons = require("@cdx-ui/icons");
10
+ var _primitives = require("@cdx-ui/primitives");
11
+ var _utils = require("@cdx-ui/utils");
12
+ var _Icon = require("../Icon");
13
+ var _positionToDataIcon = require("../../utils/positionToDataIcon");
14
+ var _styles = require("./styles");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const SCOPE = 'MENU';
17
+ const MENU_MAX_HEIGHT = 240;
18
+ const useMenuStyleContext = () => {
19
+ const ctx = (0, _utils.useStyleContext)(SCOPE);
20
+ return {
21
+ size: ctx?.size ?? 'default',
22
+ color: ctx?.color ?? 'neutral'
23
+ };
24
+ };
25
+ const useMenuItemStyleValue = (sizeProp, color) => {
26
+ const {
27
+ size: contextSize
28
+ } = useMenuStyleContext();
29
+ const parent = (0, _utils.useParentContext)();
30
+ const size = sizeProp ?? contextSize ?? 'default';
31
+ const contextValue = (0, _react.useMemo)(() => ({
32
+ ...parent,
33
+ [SCOPE]: {
34
+ size,
35
+ color
36
+ }
37
+ }), [parent, size, color]);
38
+ return {
39
+ contextValue,
40
+ size
41
+ };
42
+ };
43
+
44
+ // =============================================================================
45
+ // OVERLAY ROOT
46
+ // =============================================================================
47
+
48
+ const MenuOverlayRoot = /*#__PURE__*/(0, _react.forwardRef)(({
49
+ className,
50
+ style,
51
+ children,
52
+ ...props
53
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuOverlayRoot, {
54
+ ref: ref,
55
+ className: className,
56
+ style: style,
57
+ ...props,
58
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
59
+ slot: 'menu-root'
60
+ })),
61
+ children: children
62
+ }));
63
+ MenuOverlayRoot.displayName = 'Menu';
64
+
65
+ // =============================================================================
66
+ // TRIGGER
67
+ // =============================================================================
68
+
69
+ const MenuTrigger = /*#__PURE__*/(0, _react.forwardRef)(({
70
+ className,
71
+ style,
72
+ children,
73
+ ...props
74
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuTrigger, {
75
+ ref: ref,
76
+ className: className,
77
+ style: style,
78
+ ...props,
79
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
80
+ slot: 'menu-trigger'
81
+ })),
82
+ children: children
83
+ }));
84
+ MenuTrigger.displayName = 'Menu.Trigger';
85
+
86
+ // =============================================================================
87
+ // POPUP
88
+ // =============================================================================
89
+
90
+ const MenuPopup = /*#__PURE__*/(0, _react.forwardRef)(({
91
+ className,
92
+ style,
93
+ children,
94
+ ...props
95
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuPopup, {
96
+ ref: ref,
97
+ className: (0, _utils.cn)('min-w-48', _reactNative.Platform.select({
98
+ web: 'w-max max-w-full',
99
+ default: 'self-start'
100
+ }), className),
101
+ style: style,
102
+ ...props,
103
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
104
+ slot: 'menu-popup'
105
+ })),
106
+ children: children
107
+ }));
108
+ MenuPopup.displayName = 'Menu.Popup';
109
+
110
+ // =============================================================================
111
+ // CONTENT (menu list surface)
112
+ // =============================================================================
113
+
114
+ const MenuContent = /*#__PURE__*/(0, _react.forwardRef)(({
115
+ scrollable = false,
116
+ asSurface = false,
117
+ className,
118
+ style,
119
+ children,
120
+ ...props
121
+ }, ref) => {
122
+ const parent = (0, _utils.useParentContext)();
123
+ const popup = (0, _primitives.useOptionalMenuPopupContext)();
124
+ const ctx = (0, _react.useMemo)(() => ({
125
+ ...parent,
126
+ [SCOPE]: {
127
+ size: 'default'
128
+ }
129
+ }), [parent]);
130
+ const shouldScroll = scrollable || popup !== null;
131
+ const constrainedStyle = popup === null ? undefined : {
132
+ flexShrink: 1,
133
+ maxHeight: popup.availableHeight === undefined ? undefined : Math.min(MENU_MAX_HEIGHT, popup.availableHeight),
134
+ maxWidth: popup.availableWidth
135
+ };
136
+ const computedClassName = (0, _utils.cn)((0, _styles.menuRootVariants)({
137
+ scrollable: shouldScroll
138
+ }), className);
139
+ const content = shouldScroll ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
140
+ className: "shrink",
141
+ style: constrainedStyle,
142
+ scrollEventThrottle: 16,
143
+ nestedScrollEnabled: true,
144
+ children: children
145
+ }) : children;
146
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.ParentContext.Provider, {
147
+ value: ctx,
148
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuRoot, {
149
+ ref: ref,
150
+ scrollable: shouldScroll,
151
+ asSurface: asSurface,
152
+ className: computedClassName,
153
+ style: [style, constrainedStyle],
154
+ ...props,
155
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
156
+ slot: 'menu-content'
157
+ })),
158
+ children: content
159
+ })
160
+ });
161
+ });
162
+ MenuContent.displayName = 'Menu.Content';
163
+
164
+ // =============================================================================
165
+ // ITEM
166
+ // =============================================================================
167
+
168
+ const MenuItem = /*#__PURE__*/(0, _react.forwardRef)(({
169
+ asChild,
170
+ color = 'neutral',
171
+ inset = false,
172
+ size: sizeProp,
173
+ className,
174
+ style,
175
+ children,
176
+ ...props
177
+ }, ref) => {
178
+ const {
179
+ contextValue,
180
+ size
181
+ } = useMenuItemStyleValue(sizeProp, color);
182
+ const computedClassName = (0, _utils.cn)((0, _styles.menuItemVariants)({
183
+ color,
184
+ inset,
185
+ size
186
+ }), className);
187
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.ParentContext.Provider, {
188
+ value: contextValue,
189
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuItem, {
190
+ ref: ref,
191
+ asChild: asChild,
192
+ className: computedClassName,
193
+ style: style,
194
+ ...props,
195
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
196
+ slot: 'menu-item'
197
+ })),
198
+ children: children
199
+ })
200
+ });
201
+ });
202
+ MenuItem.displayName = 'Menu.Item';
203
+ const MenuCheckboxItem = /*#__PURE__*/(0, _react.forwardRef)(({
204
+ asChild,
205
+ color = 'neutral',
206
+ inset = false,
207
+ size: sizeProp,
208
+ className,
209
+ style,
210
+ children,
211
+ ...props
212
+ }, ref) => {
213
+ const {
214
+ contextValue,
215
+ size
216
+ } = useMenuItemStyleValue(sizeProp, color);
217
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.ParentContext.Provider, {
218
+ value: contextValue,
219
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuCheckboxItem, {
220
+ ref: ref,
221
+ asChild: asChild,
222
+ className: (0, _utils.cn)((0, _styles.menuItemVariants)({
223
+ color,
224
+ inset,
225
+ size
226
+ }), className),
227
+ style: style,
228
+ ...props,
229
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
230
+ slot: 'menu-checkbox-item'
231
+ })),
232
+ children: children
233
+ })
234
+ });
235
+ });
236
+ MenuCheckboxItem.displayName = 'Menu.CheckboxItem';
237
+ const MenuRadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
238
+ asChild,
239
+ className,
240
+ style,
241
+ children,
242
+ ...props
243
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuRadioGroup, {
244
+ ref: ref,
245
+ asChild: asChild,
246
+ className: className,
247
+ style: style,
248
+ ...props,
249
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
250
+ slot: 'menu-radio-group'
251
+ })),
252
+ children: children
253
+ }));
254
+ MenuRadioGroup.displayName = 'Menu.RadioGroup';
255
+ const MenuRadioItem = /*#__PURE__*/(0, _react.forwardRef)(({
256
+ asChild,
257
+ color = 'neutral',
258
+ inset = false,
259
+ size: sizeProp,
260
+ className,
261
+ style,
262
+ children,
263
+ ...props
264
+ }, ref) => {
265
+ const {
266
+ contextValue,
267
+ size
268
+ } = useMenuItemStyleValue(sizeProp, color);
269
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.ParentContext.Provider, {
270
+ value: contextValue,
271
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.MenuRadioItem, {
272
+ ref: ref,
273
+ asChild: asChild,
274
+ className: (0, _utils.cn)((0, _styles.menuItemVariants)({
275
+ color,
276
+ inset,
277
+ size
278
+ }), className),
279
+ style: style,
280
+ ...props,
281
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
282
+ slot: 'menu-radio-item'
283
+ })),
284
+ children: children
285
+ })
286
+ });
287
+ });
288
+ MenuRadioItem.displayName = 'Menu.RadioItem';
289
+
290
+ // =============================================================================
291
+ // ITEM SLOTS
292
+ // =============================================================================
293
+
294
+ const MenuItemLabel = /*#__PURE__*/(0, _react.forwardRef)(({
295
+ asChild,
296
+ className,
297
+ style,
298
+ children,
299
+ isChecked: checkedProp,
300
+ size,
301
+ ...props
302
+ }, ref) => {
303
+ const {
304
+ color
305
+ } = useMenuStyleContext();
306
+ const menuItemCtx = (0, _primitives.useOptionalMenuItemContext)();
307
+ const checked = checkedProp ?? menuItemCtx?.checked ?? false;
308
+ const Comp = asChild ? _primitives.Slot : _reactNative.Text;
309
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
310
+ ref: ref,
311
+ className: (0, _utils.cn)((0, _styles.menuItemLabelVariants)({
312
+ size,
313
+ color
314
+ }), checked ? 'font-medium' : undefined, className),
315
+ style: style,
316
+ ...props,
317
+ ...(0, _primitives.mergeDataAttributes)((0, _primitives.dataAttributes)({
318
+ slot: 'menu-item-label',
319
+ state: checked ? 'checked' : 'unchecked'
320
+ }), props),
321
+ children: children
322
+ });
323
+ });
324
+ MenuItemLabel.displayName = 'Menu.ItemLabel';
325
+ const MenuItemIcon = ({
326
+ asChild,
327
+ as,
328
+ position = 'leading',
329
+ className,
330
+ style,
331
+ children,
332
+ ...props
333
+ }) => {
334
+ const {
335
+ color
336
+ } = useMenuStyleContext();
337
+ const computedClassName = (0, _utils.cn)((0, _styles.menuItemIconVariants)({
338
+ color
339
+ }), className);
340
+ const slotData = (0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
341
+ slot: 'menu-item-icon'
342
+ }), (0, _positionToDataIcon.positionToDataIcon)(position));
343
+ if (asChild) {
344
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Slot, {
345
+ className: computedClassName,
346
+ style: style,
347
+ accessibilityElementsHidden: true,
348
+ "aria-hidden": true,
349
+ ...props,
350
+ ...slotData,
351
+ children: children
352
+ });
353
+ }
354
+ if (!as) {
355
+ return null;
356
+ }
357
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
358
+ as: as,
359
+ className: computedClassName,
360
+ style: style,
361
+ accessibilityElementsHidden: true,
362
+ "aria-hidden": true,
363
+ ...props,
364
+ ...slotData
365
+ });
366
+ };
367
+ MenuItemIcon.displayName = 'Menu.ItemIcon';
368
+ const MenuItemShortcut = /*#__PURE__*/(0, _react.forwardRef)(({
369
+ asChild,
370
+ className,
371
+ style,
372
+ children,
373
+ ...props
374
+ }, ref) => {
375
+ const Comp = asChild ? _primitives.Slot : _reactNative.Text;
376
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
377
+ ref: ref,
378
+ className: (0, _utils.cn)((0, _styles.menuItemShortcutVariants)(), className),
379
+ style: style,
380
+ accessibilityElementsHidden: true,
381
+ "aria-hidden": true,
382
+ ...props,
383
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
384
+ slot: 'menu-item-shortcut'
385
+ })),
386
+ children: children
387
+ });
388
+ });
389
+ MenuItemShortcut.displayName = 'Menu.ItemShortcut';
390
+ const MenuItemIndicator = ({
391
+ asChild,
392
+ as = _icons.Check,
393
+ isChecked: checkedProp,
394
+ position = 'trailing',
395
+ className,
396
+ style,
397
+ children,
398
+ ...props
399
+ }) => {
400
+ const menuItemContext = (0, _primitives.useOptionalMenuItemContext)();
401
+ const checked = checkedProp ?? menuItemContext?.checked ?? false;
402
+ if (!checked) {
403
+ return null;
404
+ }
405
+ const computedClassName = (0, _utils.cn)((0, _styles.menuItemIndicatorVariants)(), className);
406
+ const slotData = (0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
407
+ slot: 'menu-item-indicator'
408
+ }), (0, _positionToDataIcon.positionToDataIcon)(position));
409
+ if (asChild) {
410
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Slot, {
411
+ className: computedClassName,
412
+ style: style,
413
+ accessibilityElementsHidden: true,
414
+ "aria-hidden": true,
415
+ ...props,
416
+ ...slotData,
417
+ children: children
418
+ });
419
+ }
420
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
421
+ as: as,
422
+ className: computedClassName,
423
+ style: style,
424
+ accessibilityElementsHidden: true,
425
+ "aria-hidden": true,
426
+ ...props,
427
+ ...slotData
428
+ });
429
+ };
430
+ MenuItemIndicator.displayName = 'Menu.ItemIndicator';
431
+
432
+ // =============================================================================
433
+ // NON-INTERACTIVE SLOTS
434
+ // =============================================================================
435
+
436
+ const MenuSectionLabel = /*#__PURE__*/(0, _react.forwardRef)(({
437
+ asChild,
438
+ className,
439
+ style,
440
+ children,
441
+ ...props
442
+ }, ref) => {
443
+ const Comp = asChild ? _primitives.Slot : _reactNative.Text;
444
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
445
+ ref: ref,
446
+ className: (0, _utils.cn)((0, _styles.menuSectionLabelVariants)(), className),
447
+ style: style,
448
+ accessibilityRole: "header",
449
+ ...props,
450
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
451
+ slot: 'menu-section-label'
452
+ })),
453
+ children: children
454
+ });
455
+ });
456
+ MenuSectionLabel.displayName = 'Menu.SectionLabel';
457
+ const MenuSeparator = /*#__PURE__*/(0, _react.forwardRef)(({
458
+ className,
459
+ style,
460
+ ...props
461
+ }, ref) => {
462
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
463
+ ref: ref,
464
+ className: (0, _utils.cn)((0, _styles.menuSeparatorVariants)(), className),
465
+ style: style,
466
+ accessibilityElementsHidden: true,
467
+ importantForAccessibility: "no-hide-descendants",
468
+ "aria-hidden": true,
469
+ ...props,
470
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
471
+ slot: 'menu-separator'
472
+ })),
473
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
474
+ className: (0, _styles.menuSeparatorLineVariants)()
475
+ })
476
+ });
477
+ });
478
+ MenuSeparator.displayName = 'Menu.Separator';
479
+
480
+ // =============================================================================
481
+ // COMPOUND EXPORT
482
+ // =============================================================================
483
+
484
+ const Menu = exports.Menu = Object.assign(MenuOverlayRoot, {
485
+ Trigger: MenuTrigger,
486
+ Popup: MenuPopup,
487
+ Content: MenuContent,
488
+ Item: MenuItem,
489
+ CheckboxItem: MenuCheckboxItem,
490
+ RadioGroup: MenuRadioGroup,
491
+ RadioItem: MenuRadioItem,
492
+ ItemLabel: MenuItemLabel,
493
+ ItemIcon: MenuItemIcon,
494
+ ItemShortcut: MenuItemShortcut,
495
+ ItemIndicator: MenuItemIndicator,
496
+ SectionLabel: MenuSectionLabel,
497
+ Separator: MenuSeparator
498
+ });
499
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_icons","_primitives","_utils","_Icon","_positionToDataIcon","_styles","_jsxRuntime","SCOPE","MENU_MAX_HEIGHT","useMenuStyleContext","ctx","useStyleContext","size","color","useMenuItemStyleValue","sizeProp","contextSize","parent","useParentContext","contextValue","useMemo","MenuOverlayRoot","forwardRef","className","style","children","props","ref","jsx","mergeDataAttributes","dataAttributes","slot","displayName","MenuTrigger","MenuPopup","cn","Platform","select","web","default","MenuContent","scrollable","asSurface","popup","useOptionalMenuPopupContext","shouldScroll","constrainedStyle","undefined","flexShrink","maxHeight","availableHeight","Math","min","maxWidth","availableWidth","computedClassName","menuRootVariants","content","ScrollView","scrollEventThrottle","nestedScrollEnabled","ParentContext","Provider","value","MenuRoot","MenuItem","asChild","inset","menuItemVariants","MenuCheckboxItem","MenuRadioGroup","MenuRadioItem","MenuItemLabel","isChecked","checkedProp","menuItemCtx","useOptionalMenuItemContext","checked","Comp","Slot","Text","menuItemLabelVariants","state","MenuItemIcon","as","position","menuItemIconVariants","slotData","positionToDataIcon","accessibilityElementsHidden","Icon","MenuItemShortcut","menuItemShortcutVariants","MenuItemIndicator","Check","menuItemContext","menuItemIndicatorVariants","MenuSectionLabel","menuSectionLabelVariants","accessibilityRole","MenuSeparator","View","menuSeparatorVariants","importantForAccessibility","menuSeparatorLineVariants","Menu","exports","Object","assign","Trigger","Popup","Content","Item","CheckboxItem","RadioGroup","RadioItem","ItemLabel","ItemIcon","ItemShortcut","ItemIndicator","SectionLabel","Separator"],"sourceRoot":"../../../../src","sources":["components/Menu/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.menuSeparatorVariants = exports.menuSeparatorLineVariants = exports.menuSectionLabelVariants = exports.menuRootVariants = exports.menuItemVariants = exports.menuItemShortcutVariants = exports.menuItemLabelVariants = exports.menuItemIndicatorVariants = exports.menuItemIconVariants = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _utils = require("@cdx-ui/utils");
9
+ var _constants = require("../../styles/constants");
10
+ const menuRootVariants = exports.menuRootVariants = (0, _utils.cva)(['bg-surface-primary', 'border border-stroke-secondary', 'overflow-hidden', 'rounded-xl', 'p-1', 'shadow-lg', 'web:outline-none'], {
11
+ variants: {
12
+ scrollable: {
13
+ true: 'max-h-60 shrink',
14
+ false: ''
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ scrollable: false
19
+ }
20
+ });
21
+ const menuItemVariants = exports.menuItemVariants = (0, _utils.cva)(['flex-row items-center gap-2', 'min-h-9', 'rounded-lg', _constants.TRANSITION_COLORS, 'data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none', _constants.DISABLED_CURSOR, 'data-[state=checked]:bg-surface-action-tint data-[state=checked]:font-medium', _reactNative.Platform.select({
22
+ default: 'data-[active=true]:bg-surface-action-tint-active',
23
+ web: 'data-[hover=true]:bg-surface-action-tint-hover data-[active=true]:data-[hover=true]:bg-surface-action-tint-active data-[highlighted=true]:bg-surface-action-tint-hover'
24
+ })], {
25
+ variants: {
26
+ color: {
27
+ neutral: 'text-content-primary',
28
+ danger: 'text-content-danger data-[hover=true]:bg-surface-danger-tint-hover data-[highlighted=true]:bg-surface-danger-tint-hover'
29
+ },
30
+ inset: {
31
+ true: '',
32
+ false: ''
33
+ },
34
+ size: {
35
+ default: 'px-3 py-2',
36
+ small: 'px-2.5 py-1.5'
37
+ }
38
+ },
39
+ compoundVariants: [{
40
+ inset: true,
41
+ size: 'default',
42
+ class: 'ps-8 pe-3 py-2'
43
+ }, {
44
+ inset: true,
45
+ size: 'small',
46
+ class: 'ps-8 pe-2.5 py-1.5'
47
+ }, {
48
+ inset: false,
49
+ size: 'default',
50
+ class: 'px-3 py-2'
51
+ }, {
52
+ inset: false,
53
+ size: 'small',
54
+ class: 'px-2.5 py-1.5'
55
+ }],
56
+ defaultVariants: {
57
+ color: 'neutral',
58
+ inset: false,
59
+ size: 'default'
60
+ }
61
+ });
62
+ const menuItemLabelVariants = exports.menuItemLabelVariants = (0, _utils.cva)(['text-start', _reactNative.Platform.select({
63
+ default: 'shrink-0',
64
+ web: 'min-w-0 flex-1'
65
+ })], {
66
+ variants: {
67
+ size: {
68
+ default: 'text-[0.875rem]',
69
+ small: 'text-[0.75rem]'
70
+ },
71
+ color: {
72
+ neutral: 'text-content-primary',
73
+ danger: 'text-content-danger'
74
+ }
75
+ },
76
+ defaultVariants: {
77
+ size: 'default',
78
+ color: 'neutral'
79
+ }
80
+ });
81
+ const menuItemIconVariants = exports.menuItemIconVariants = (0, _utils.cva)(['shrink-0', 'size-5'], {
82
+ variants: {
83
+ color: {
84
+ neutral: 'text-content-secondary',
85
+ danger: 'text-content-danger'
86
+ }
87
+ },
88
+ defaultVariants: {
89
+ color: 'neutral'
90
+ }
91
+ });
92
+ const menuItemShortcutVariants = exports.menuItemShortcutVariants = (0, _utils.cva)(['shrink-0 text-content-tertiary', 'text-[0.75rem]', 'ms-auto']);
93
+ const menuItemIndicatorVariants = exports.menuItemIndicatorVariants = (0, _utils.cva)(['shrink-0 data-[icon=inline-end]:ms-auto', 'text-content-action', 'size-5']);
94
+ const menuSectionLabelVariants = exports.menuSectionLabelVariants = (0, _utils.cva)(['px-3 py-1.5', 'text-[0.75rem] font-medium', 'text-content-tertiary']);
95
+ const menuSeparatorVariants = exports.menuSeparatorVariants = (0, _utils.cva)([
96
+ // Bleed past menu `p-1` inset so the line spans the full panel width (Figma: px-[-4px]).
97
+ // Omit `w-full`: percentage width ignores the negative margins and leaves a right-side gap.
98
+ 'self-stretch py-1 -mx-1']);
99
+ const menuSeparatorLineVariants = exports.menuSeparatorLineVariants = (0, _utils.cva)(['h-px w-full bg-stroke-secondary']);
100
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_utils","_constants","menuRootVariants","exports","cva","variants","scrollable","true","false","defaultVariants","menuItemVariants","TRANSITION_COLORS","DISABLED_CURSOR","Platform","select","default","web","color","neutral","danger","inset","size","small","compoundVariants","class","menuItemLabelVariants","menuItemIconVariants","menuItemShortcutVariants","menuItemIndicatorVariants","menuSectionLabelVariants","menuSeparatorVariants","menuSeparatorLineVariants"],"sourceRoot":"../../../../src","sources":["components/Menu/styles.ts"],"mappings":"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","ignoreList":[]}