@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.
- package/coverage.svg +1 -1
- package/lib/commonjs/components/Menu/index.js +499 -0
- package/lib/commonjs/components/Menu/index.js.map +1 -0
- package/lib/commonjs/components/Menu/styles.js +100 -0
- package/lib/commonjs/components/Menu/styles.js.map +1 -0
- package/lib/commonjs/components/Select/index.js +57 -22
- package/lib/commonjs/components/Select/index.js.map +1 -1
- package/lib/commonjs/components/Select/styles.js +1 -40
- package/lib/commonjs/components/Select/styles.js.map +1 -1
- package/lib/commonjs/components/Slider/getSliderPopupPosition.js +16 -6
- package/lib/commonjs/components/Slider/getSliderPopupPosition.js.map +1 -1
- package/lib/commonjs/components/Slider/index.js +17 -5
- package/lib/commonjs/components/Slider/index.js.map +1 -1
- package/lib/commonjs/components/Toast/index.js +1 -1
- package/lib/commonjs/components/Toast/index.js.map +1 -1
- package/lib/commonjs/components/index.js +12 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/picker/surfaces.js +16 -9
- package/lib/commonjs/components/picker/surfaces.js.map +1 -1
- package/lib/commonjs/figma/Menu.Item.figma.js +52 -0
- package/lib/commonjs/figma/Menu.Item.figma.js.map +1 -0
- package/lib/commonjs/figma/Menu.figma.js +29 -0
- package/lib/commonjs/figma/Menu.figma.js.map +1 -0
- package/lib/commonjs/providers/forge-design/provider.js +25 -11
- package/lib/commonjs/providers/forge-design/provider.js.map +1 -1
- package/lib/commonjs/providers/toast/insets-container.js +4 -1
- package/lib/commonjs/providers/toast/insets-container.js.map +1 -1
- package/lib/commonjs/providers/toast/provider.js +126 -45
- package/lib/commonjs/providers/toast/provider.js.map +1 -1
- package/lib/commonjs/providers/toast/toast-item-renderer.js +2 -1
- package/lib/commonjs/providers/toast/toast-item-renderer.js.map +1 -1
- package/lib/module/components/Menu/index.js +495 -0
- package/lib/module/components/Menu/index.js.map +1 -0
- package/lib/module/components/Menu/styles.js +96 -0
- package/lib/module/components/Menu/styles.js.map +1 -0
- package/lib/module/components/Select/index.js +55 -20
- package/lib/module/components/Select/index.js.map +1 -1
- package/lib/module/components/Select/styles.js +0 -39
- package/lib/module/components/Select/styles.js.map +1 -1
- package/lib/module/components/Slider/getSliderPopupPosition.js +16 -6
- package/lib/module/components/Slider/getSliderPopupPosition.js.map +1 -1
- package/lib/module/components/Slider/index.js +20 -8
- package/lib/module/components/Slider/index.js.map +1 -1
- package/lib/module/components/Toast/index.js +1 -1
- package/lib/module/components/Toast/index.js.map +1 -1
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/picker/surfaces.js +18 -11
- package/lib/module/components/picker/surfaces.js.map +1 -1
- package/lib/module/figma/Menu.Item.figma.js +46 -0
- package/lib/module/figma/Menu.Item.figma.js.map +1 -0
- package/lib/module/figma/Menu.figma.js +23 -0
- package/lib/module/figma/Menu.figma.js.map +1 -0
- package/lib/module/providers/forge-design/provider.js +26 -12
- package/lib/module/providers/forge-design/provider.js.map +1 -1
- package/lib/module/providers/toast/insets-container.js +5 -2
- package/lib/module/providers/toast/insets-container.js.map +1 -1
- package/lib/module/providers/toast/provider.js +126 -45
- package/lib/module/providers/toast/provider.js.map +1 -1
- package/lib/module/providers/toast/toast-item-renderer.js +2 -1
- package/lib/module/providers/toast/toast-item-renderer.js.map +1 -1
- package/lib/typescript/components/Menu/index.d.ts +119 -0
- package/lib/typescript/components/Menu/index.d.ts.map +1 -0
- package/lib/typescript/components/Menu/styles.d.ts +24 -0
- package/lib/typescript/components/Menu/styles.d.ts.map +1 -0
- package/lib/typescript/components/Select/index.d.ts.map +1 -1
- package/lib/typescript/components/Select/styles.d.ts +0 -7
- package/lib/typescript/components/Select/styles.d.ts.map +1 -1
- package/lib/typescript/components/Slider/getSliderPopupPosition.d.ts +1 -1
- package/lib/typescript/components/Slider/getSliderPopupPosition.d.ts.map +1 -1
- package/lib/typescript/components/Slider/index.d.ts.map +1 -1
- package/lib/typescript/components/Toast/types.d.ts +2 -2
- package/lib/typescript/components/Toast/types.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/components/picker/surfaces.d.ts.map +1 -1
- package/lib/typescript/figma/Menu.Item.figma.d.ts +8 -0
- package/lib/typescript/figma/Menu.Item.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Menu.figma.d.ts +8 -0
- package/lib/typescript/figma/Menu.figma.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/provider.d.ts.map +1 -1
- package/lib/typescript/providers/toast/insets-container.d.ts.map +1 -1
- package/lib/typescript/providers/toast/lifecycle.context.d.ts +2 -2
- package/lib/typescript/providers/toast/lifecycle.context.d.ts.map +1 -1
- package/lib/typescript/providers/toast/provider.d.ts.map +1 -1
- package/lib/typescript/providers/toast/toast-item-renderer.d.ts.map +1 -1
- package/lib/typescript/providers/toast/types.d.ts +22 -8
- package/lib/typescript/providers/toast/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/components/Menu/index.tsx +654 -0
- package/src/components/Menu/styles.ts +153 -0
- package/src/components/Select/index.tsx +58 -23
- package/src/components/Select/styles.ts +0 -59
- package/src/components/Slider/getSliderPopupPosition.ts +19 -7
- package/src/components/Slider/index.tsx +25 -9
- package/src/components/Toast/index.tsx +1 -1
- package/src/components/Toast/types.ts +2 -2
- package/src/components/index.ts +1 -0
- package/src/components/picker/surfaces.tsx +13 -9
- package/src/providers/forge-design/provider.tsx +35 -16
- package/src/providers/toast/insets-container.tsx +3 -2
- package/src/providers/toast/lifecycle.context.tsx +2 -2
- package/src/providers/toast/provider.tsx +150 -51
- package/src/providers/toast/toast-item-renderer.tsx +5 -1
- package/src/providers/toast/types.ts +22 -8
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useMemo } from 'react';
|
|
4
|
+
import { Platform, ScrollView, Text, View } from 'react-native';
|
|
5
|
+
import { Check } from '@cdx-ui/icons';
|
|
6
|
+
import { MenuCheckboxItem as MenuCheckboxItemPrimitive, MenuItem as MenuItemPrimitive, MenuOverlayRoot as MenuOverlayRootPrimitive, MenuPopup as MenuPopupPrimitive, MenuRadioGroup as MenuRadioGroupPrimitive, MenuRadioItem as MenuRadioItemPrimitive, MenuRoot as MenuRootPrimitive, MenuTrigger as MenuTriggerPrimitive, Slot, dataAttributes, mergeDataAttributes, useOptionalMenuItemContext, useOptionalMenuPopupContext } from '@cdx-ui/primitives';
|
|
7
|
+
import { cn, ParentContext, useParentContext, useStyleContext } from '@cdx-ui/utils';
|
|
8
|
+
import { Icon } from '../Icon';
|
|
9
|
+
import { positionToDataIcon } from '../../utils/positionToDataIcon';
|
|
10
|
+
import { menuItemIconVariants, menuItemLabelVariants, menuItemIndicatorVariants, menuItemShortcutVariants, menuItemVariants, menuRootVariants, menuSectionLabelVariants, menuSeparatorLineVariants, menuSeparatorVariants } from './styles';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const SCOPE = 'MENU';
|
|
13
|
+
const MENU_MAX_HEIGHT = 240;
|
|
14
|
+
const useMenuStyleContext = () => {
|
|
15
|
+
const ctx = useStyleContext(SCOPE);
|
|
16
|
+
return {
|
|
17
|
+
size: ctx?.size ?? 'default',
|
|
18
|
+
color: ctx?.color ?? 'neutral'
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const useMenuItemStyleValue = (sizeProp, color) => {
|
|
22
|
+
const {
|
|
23
|
+
size: contextSize
|
|
24
|
+
} = useMenuStyleContext();
|
|
25
|
+
const parent = useParentContext();
|
|
26
|
+
const size = sizeProp ?? contextSize ?? 'default';
|
|
27
|
+
const contextValue = useMemo(() => ({
|
|
28
|
+
...parent,
|
|
29
|
+
[SCOPE]: {
|
|
30
|
+
size,
|
|
31
|
+
color
|
|
32
|
+
}
|
|
33
|
+
}), [parent, size, color]);
|
|
34
|
+
return {
|
|
35
|
+
contextValue,
|
|
36
|
+
size
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// OVERLAY ROOT
|
|
42
|
+
// =============================================================================
|
|
43
|
+
|
|
44
|
+
const MenuOverlayRoot = /*#__PURE__*/forwardRef(({
|
|
45
|
+
className,
|
|
46
|
+
style,
|
|
47
|
+
children,
|
|
48
|
+
...props
|
|
49
|
+
}, ref) => /*#__PURE__*/_jsx(MenuOverlayRootPrimitive, {
|
|
50
|
+
ref: ref,
|
|
51
|
+
className: className,
|
|
52
|
+
style: style,
|
|
53
|
+
...props,
|
|
54
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
55
|
+
slot: 'menu-root'
|
|
56
|
+
})),
|
|
57
|
+
children: children
|
|
58
|
+
}));
|
|
59
|
+
MenuOverlayRoot.displayName = 'Menu';
|
|
60
|
+
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// TRIGGER
|
|
63
|
+
// =============================================================================
|
|
64
|
+
|
|
65
|
+
const MenuTrigger = /*#__PURE__*/forwardRef(({
|
|
66
|
+
className,
|
|
67
|
+
style,
|
|
68
|
+
children,
|
|
69
|
+
...props
|
|
70
|
+
}, ref) => /*#__PURE__*/_jsx(MenuTriggerPrimitive, {
|
|
71
|
+
ref: ref,
|
|
72
|
+
className: className,
|
|
73
|
+
style: style,
|
|
74
|
+
...props,
|
|
75
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
76
|
+
slot: 'menu-trigger'
|
|
77
|
+
})),
|
|
78
|
+
children: children
|
|
79
|
+
}));
|
|
80
|
+
MenuTrigger.displayName = 'Menu.Trigger';
|
|
81
|
+
|
|
82
|
+
// =============================================================================
|
|
83
|
+
// POPUP
|
|
84
|
+
// =============================================================================
|
|
85
|
+
|
|
86
|
+
const MenuPopup = /*#__PURE__*/forwardRef(({
|
|
87
|
+
className,
|
|
88
|
+
style,
|
|
89
|
+
children,
|
|
90
|
+
...props
|
|
91
|
+
}, ref) => /*#__PURE__*/_jsx(MenuPopupPrimitive, {
|
|
92
|
+
ref: ref,
|
|
93
|
+
className: cn('min-w-48', Platform.select({
|
|
94
|
+
web: 'w-max max-w-full',
|
|
95
|
+
default: 'self-start'
|
|
96
|
+
}), className),
|
|
97
|
+
style: style,
|
|
98
|
+
...props,
|
|
99
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
100
|
+
slot: 'menu-popup'
|
|
101
|
+
})),
|
|
102
|
+
children: children
|
|
103
|
+
}));
|
|
104
|
+
MenuPopup.displayName = 'Menu.Popup';
|
|
105
|
+
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// CONTENT (menu list surface)
|
|
108
|
+
// =============================================================================
|
|
109
|
+
|
|
110
|
+
const MenuContent = /*#__PURE__*/forwardRef(({
|
|
111
|
+
scrollable = false,
|
|
112
|
+
asSurface = false,
|
|
113
|
+
className,
|
|
114
|
+
style,
|
|
115
|
+
children,
|
|
116
|
+
...props
|
|
117
|
+
}, ref) => {
|
|
118
|
+
const parent = useParentContext();
|
|
119
|
+
const popup = useOptionalMenuPopupContext();
|
|
120
|
+
const ctx = useMemo(() => ({
|
|
121
|
+
...parent,
|
|
122
|
+
[SCOPE]: {
|
|
123
|
+
size: 'default'
|
|
124
|
+
}
|
|
125
|
+
}), [parent]);
|
|
126
|
+
const shouldScroll = scrollable || popup !== null;
|
|
127
|
+
const constrainedStyle = popup === null ? undefined : {
|
|
128
|
+
flexShrink: 1,
|
|
129
|
+
maxHeight: popup.availableHeight === undefined ? undefined : Math.min(MENU_MAX_HEIGHT, popup.availableHeight),
|
|
130
|
+
maxWidth: popup.availableWidth
|
|
131
|
+
};
|
|
132
|
+
const computedClassName = cn(menuRootVariants({
|
|
133
|
+
scrollable: shouldScroll
|
|
134
|
+
}), className);
|
|
135
|
+
const content = shouldScroll ? /*#__PURE__*/_jsx(ScrollView, {
|
|
136
|
+
className: "shrink",
|
|
137
|
+
style: constrainedStyle,
|
|
138
|
+
scrollEventThrottle: 16,
|
|
139
|
+
nestedScrollEnabled: true,
|
|
140
|
+
children: children
|
|
141
|
+
}) : children;
|
|
142
|
+
return /*#__PURE__*/_jsx(ParentContext.Provider, {
|
|
143
|
+
value: ctx,
|
|
144
|
+
children: /*#__PURE__*/_jsx(MenuRootPrimitive, {
|
|
145
|
+
ref: ref,
|
|
146
|
+
scrollable: shouldScroll,
|
|
147
|
+
asSurface: asSurface,
|
|
148
|
+
className: computedClassName,
|
|
149
|
+
style: [style, constrainedStyle],
|
|
150
|
+
...props,
|
|
151
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
152
|
+
slot: 'menu-content'
|
|
153
|
+
})),
|
|
154
|
+
children: content
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
MenuContent.displayName = 'Menu.Content';
|
|
159
|
+
|
|
160
|
+
// =============================================================================
|
|
161
|
+
// ITEM
|
|
162
|
+
// =============================================================================
|
|
163
|
+
|
|
164
|
+
const MenuItem = /*#__PURE__*/forwardRef(({
|
|
165
|
+
asChild,
|
|
166
|
+
color = 'neutral',
|
|
167
|
+
inset = false,
|
|
168
|
+
size: sizeProp,
|
|
169
|
+
className,
|
|
170
|
+
style,
|
|
171
|
+
children,
|
|
172
|
+
...props
|
|
173
|
+
}, ref) => {
|
|
174
|
+
const {
|
|
175
|
+
contextValue,
|
|
176
|
+
size
|
|
177
|
+
} = useMenuItemStyleValue(sizeProp, color);
|
|
178
|
+
const computedClassName = cn(menuItemVariants({
|
|
179
|
+
color,
|
|
180
|
+
inset,
|
|
181
|
+
size
|
|
182
|
+
}), className);
|
|
183
|
+
return /*#__PURE__*/_jsx(ParentContext.Provider, {
|
|
184
|
+
value: contextValue,
|
|
185
|
+
children: /*#__PURE__*/_jsx(MenuItemPrimitive, {
|
|
186
|
+
ref: ref,
|
|
187
|
+
asChild: asChild,
|
|
188
|
+
className: computedClassName,
|
|
189
|
+
style: style,
|
|
190
|
+
...props,
|
|
191
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
192
|
+
slot: 'menu-item'
|
|
193
|
+
})),
|
|
194
|
+
children: children
|
|
195
|
+
})
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
MenuItem.displayName = 'Menu.Item';
|
|
199
|
+
const MenuCheckboxItem = /*#__PURE__*/forwardRef(({
|
|
200
|
+
asChild,
|
|
201
|
+
color = 'neutral',
|
|
202
|
+
inset = false,
|
|
203
|
+
size: sizeProp,
|
|
204
|
+
className,
|
|
205
|
+
style,
|
|
206
|
+
children,
|
|
207
|
+
...props
|
|
208
|
+
}, ref) => {
|
|
209
|
+
const {
|
|
210
|
+
contextValue,
|
|
211
|
+
size
|
|
212
|
+
} = useMenuItemStyleValue(sizeProp, color);
|
|
213
|
+
return /*#__PURE__*/_jsx(ParentContext.Provider, {
|
|
214
|
+
value: contextValue,
|
|
215
|
+
children: /*#__PURE__*/_jsx(MenuCheckboxItemPrimitive, {
|
|
216
|
+
ref: ref,
|
|
217
|
+
asChild: asChild,
|
|
218
|
+
className: cn(menuItemVariants({
|
|
219
|
+
color,
|
|
220
|
+
inset,
|
|
221
|
+
size
|
|
222
|
+
}), className),
|
|
223
|
+
style: style,
|
|
224
|
+
...props,
|
|
225
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
226
|
+
slot: 'menu-checkbox-item'
|
|
227
|
+
})),
|
|
228
|
+
children: children
|
|
229
|
+
})
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
MenuCheckboxItem.displayName = 'Menu.CheckboxItem';
|
|
233
|
+
const MenuRadioGroup = /*#__PURE__*/forwardRef(({
|
|
234
|
+
asChild,
|
|
235
|
+
className,
|
|
236
|
+
style,
|
|
237
|
+
children,
|
|
238
|
+
...props
|
|
239
|
+
}, ref) => /*#__PURE__*/_jsx(MenuRadioGroupPrimitive, {
|
|
240
|
+
ref: ref,
|
|
241
|
+
asChild: asChild,
|
|
242
|
+
className: className,
|
|
243
|
+
style: style,
|
|
244
|
+
...props,
|
|
245
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
246
|
+
slot: 'menu-radio-group'
|
|
247
|
+
})),
|
|
248
|
+
children: children
|
|
249
|
+
}));
|
|
250
|
+
MenuRadioGroup.displayName = 'Menu.RadioGroup';
|
|
251
|
+
const MenuRadioItem = /*#__PURE__*/forwardRef(({
|
|
252
|
+
asChild,
|
|
253
|
+
color = 'neutral',
|
|
254
|
+
inset = false,
|
|
255
|
+
size: sizeProp,
|
|
256
|
+
className,
|
|
257
|
+
style,
|
|
258
|
+
children,
|
|
259
|
+
...props
|
|
260
|
+
}, ref) => {
|
|
261
|
+
const {
|
|
262
|
+
contextValue,
|
|
263
|
+
size
|
|
264
|
+
} = useMenuItemStyleValue(sizeProp, color);
|
|
265
|
+
return /*#__PURE__*/_jsx(ParentContext.Provider, {
|
|
266
|
+
value: contextValue,
|
|
267
|
+
children: /*#__PURE__*/_jsx(MenuRadioItemPrimitive, {
|
|
268
|
+
ref: ref,
|
|
269
|
+
asChild: asChild,
|
|
270
|
+
className: cn(menuItemVariants({
|
|
271
|
+
color,
|
|
272
|
+
inset,
|
|
273
|
+
size
|
|
274
|
+
}), className),
|
|
275
|
+
style: style,
|
|
276
|
+
...props,
|
|
277
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
278
|
+
slot: 'menu-radio-item'
|
|
279
|
+
})),
|
|
280
|
+
children: children
|
|
281
|
+
})
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
MenuRadioItem.displayName = 'Menu.RadioItem';
|
|
285
|
+
|
|
286
|
+
// =============================================================================
|
|
287
|
+
// ITEM SLOTS
|
|
288
|
+
// =============================================================================
|
|
289
|
+
|
|
290
|
+
const MenuItemLabel = /*#__PURE__*/forwardRef(({
|
|
291
|
+
asChild,
|
|
292
|
+
className,
|
|
293
|
+
style,
|
|
294
|
+
children,
|
|
295
|
+
isChecked: checkedProp,
|
|
296
|
+
size,
|
|
297
|
+
...props
|
|
298
|
+
}, ref) => {
|
|
299
|
+
const {
|
|
300
|
+
color
|
|
301
|
+
} = useMenuStyleContext();
|
|
302
|
+
const menuItemCtx = useOptionalMenuItemContext();
|
|
303
|
+
const checked = checkedProp ?? menuItemCtx?.checked ?? false;
|
|
304
|
+
const Comp = asChild ? Slot : Text;
|
|
305
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
306
|
+
ref: ref,
|
|
307
|
+
className: cn(menuItemLabelVariants({
|
|
308
|
+
size,
|
|
309
|
+
color
|
|
310
|
+
}), checked ? 'font-medium' : undefined, className),
|
|
311
|
+
style: style,
|
|
312
|
+
...props,
|
|
313
|
+
...mergeDataAttributes(dataAttributes({
|
|
314
|
+
slot: 'menu-item-label',
|
|
315
|
+
state: checked ? 'checked' : 'unchecked'
|
|
316
|
+
}), props),
|
|
317
|
+
children: children
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
MenuItemLabel.displayName = 'Menu.ItemLabel';
|
|
321
|
+
const MenuItemIcon = ({
|
|
322
|
+
asChild,
|
|
323
|
+
as,
|
|
324
|
+
position = 'leading',
|
|
325
|
+
className,
|
|
326
|
+
style,
|
|
327
|
+
children,
|
|
328
|
+
...props
|
|
329
|
+
}) => {
|
|
330
|
+
const {
|
|
331
|
+
color
|
|
332
|
+
} = useMenuStyleContext();
|
|
333
|
+
const computedClassName = cn(menuItemIconVariants({
|
|
334
|
+
color
|
|
335
|
+
}), className);
|
|
336
|
+
const slotData = mergeDataAttributes(props, dataAttributes({
|
|
337
|
+
slot: 'menu-item-icon'
|
|
338
|
+
}), positionToDataIcon(position));
|
|
339
|
+
if (asChild) {
|
|
340
|
+
return /*#__PURE__*/_jsx(Slot, {
|
|
341
|
+
className: computedClassName,
|
|
342
|
+
style: style,
|
|
343
|
+
accessibilityElementsHidden: true,
|
|
344
|
+
"aria-hidden": true,
|
|
345
|
+
...props,
|
|
346
|
+
...slotData,
|
|
347
|
+
children: children
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
if (!as) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
return /*#__PURE__*/_jsx(Icon, {
|
|
354
|
+
as: as,
|
|
355
|
+
className: computedClassName,
|
|
356
|
+
style: style,
|
|
357
|
+
accessibilityElementsHidden: true,
|
|
358
|
+
"aria-hidden": true,
|
|
359
|
+
...props,
|
|
360
|
+
...slotData
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
MenuItemIcon.displayName = 'Menu.ItemIcon';
|
|
364
|
+
const MenuItemShortcut = /*#__PURE__*/forwardRef(({
|
|
365
|
+
asChild,
|
|
366
|
+
className,
|
|
367
|
+
style,
|
|
368
|
+
children,
|
|
369
|
+
...props
|
|
370
|
+
}, ref) => {
|
|
371
|
+
const Comp = asChild ? Slot : Text;
|
|
372
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
373
|
+
ref: ref,
|
|
374
|
+
className: cn(menuItemShortcutVariants(), className),
|
|
375
|
+
style: style,
|
|
376
|
+
accessibilityElementsHidden: true,
|
|
377
|
+
"aria-hidden": true,
|
|
378
|
+
...props,
|
|
379
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
380
|
+
slot: 'menu-item-shortcut'
|
|
381
|
+
})),
|
|
382
|
+
children: children
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
MenuItemShortcut.displayName = 'Menu.ItemShortcut';
|
|
386
|
+
const MenuItemIndicator = ({
|
|
387
|
+
asChild,
|
|
388
|
+
as = Check,
|
|
389
|
+
isChecked: checkedProp,
|
|
390
|
+
position = 'trailing',
|
|
391
|
+
className,
|
|
392
|
+
style,
|
|
393
|
+
children,
|
|
394
|
+
...props
|
|
395
|
+
}) => {
|
|
396
|
+
const menuItemContext = useOptionalMenuItemContext();
|
|
397
|
+
const checked = checkedProp ?? menuItemContext?.checked ?? false;
|
|
398
|
+
if (!checked) {
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
const computedClassName = cn(menuItemIndicatorVariants(), className);
|
|
402
|
+
const slotData = mergeDataAttributes(props, dataAttributes({
|
|
403
|
+
slot: 'menu-item-indicator'
|
|
404
|
+
}), positionToDataIcon(position));
|
|
405
|
+
if (asChild) {
|
|
406
|
+
return /*#__PURE__*/_jsx(Slot, {
|
|
407
|
+
className: computedClassName,
|
|
408
|
+
style: style,
|
|
409
|
+
accessibilityElementsHidden: true,
|
|
410
|
+
"aria-hidden": true,
|
|
411
|
+
...props,
|
|
412
|
+
...slotData,
|
|
413
|
+
children: children
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
return /*#__PURE__*/_jsx(Icon, {
|
|
417
|
+
as: as,
|
|
418
|
+
className: computedClassName,
|
|
419
|
+
style: style,
|
|
420
|
+
accessibilityElementsHidden: true,
|
|
421
|
+
"aria-hidden": true,
|
|
422
|
+
...props,
|
|
423
|
+
...slotData
|
|
424
|
+
});
|
|
425
|
+
};
|
|
426
|
+
MenuItemIndicator.displayName = 'Menu.ItemIndicator';
|
|
427
|
+
|
|
428
|
+
// =============================================================================
|
|
429
|
+
// NON-INTERACTIVE SLOTS
|
|
430
|
+
// =============================================================================
|
|
431
|
+
|
|
432
|
+
const MenuSectionLabel = /*#__PURE__*/forwardRef(({
|
|
433
|
+
asChild,
|
|
434
|
+
className,
|
|
435
|
+
style,
|
|
436
|
+
children,
|
|
437
|
+
...props
|
|
438
|
+
}, ref) => {
|
|
439
|
+
const Comp = asChild ? Slot : Text;
|
|
440
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
441
|
+
ref: ref,
|
|
442
|
+
className: cn(menuSectionLabelVariants(), className),
|
|
443
|
+
style: style,
|
|
444
|
+
accessibilityRole: "header",
|
|
445
|
+
...props,
|
|
446
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
447
|
+
slot: 'menu-section-label'
|
|
448
|
+
})),
|
|
449
|
+
children: children
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
MenuSectionLabel.displayName = 'Menu.SectionLabel';
|
|
453
|
+
const MenuSeparator = /*#__PURE__*/forwardRef(({
|
|
454
|
+
className,
|
|
455
|
+
style,
|
|
456
|
+
...props
|
|
457
|
+
}, ref) => {
|
|
458
|
+
return /*#__PURE__*/_jsx(View, {
|
|
459
|
+
ref: ref,
|
|
460
|
+
className: cn(menuSeparatorVariants(), className),
|
|
461
|
+
style: style,
|
|
462
|
+
accessibilityElementsHidden: true,
|
|
463
|
+
importantForAccessibility: "no-hide-descendants",
|
|
464
|
+
"aria-hidden": true,
|
|
465
|
+
...props,
|
|
466
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
467
|
+
slot: 'menu-separator'
|
|
468
|
+
})),
|
|
469
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
470
|
+
className: menuSeparatorLineVariants()
|
|
471
|
+
})
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
MenuSeparator.displayName = 'Menu.Separator';
|
|
475
|
+
|
|
476
|
+
// =============================================================================
|
|
477
|
+
// COMPOUND EXPORT
|
|
478
|
+
// =============================================================================
|
|
479
|
+
|
|
480
|
+
export const Menu = Object.assign(MenuOverlayRoot, {
|
|
481
|
+
Trigger: MenuTrigger,
|
|
482
|
+
Popup: MenuPopup,
|
|
483
|
+
Content: MenuContent,
|
|
484
|
+
Item: MenuItem,
|
|
485
|
+
CheckboxItem: MenuCheckboxItem,
|
|
486
|
+
RadioGroup: MenuRadioGroup,
|
|
487
|
+
RadioItem: MenuRadioItem,
|
|
488
|
+
ItemLabel: MenuItemLabel,
|
|
489
|
+
ItemIcon: MenuItemIcon,
|
|
490
|
+
ItemShortcut: MenuItemShortcut,
|
|
491
|
+
ItemIndicator: MenuItemIndicator,
|
|
492
|
+
SectionLabel: MenuSectionLabel,
|
|
493
|
+
Separator: MenuSeparator
|
|
494
|
+
});
|
|
495
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useMemo","Platform","ScrollView","Text","View","Check","MenuCheckboxItem","MenuCheckboxItemPrimitive","MenuItem","MenuItemPrimitive","MenuOverlayRoot","MenuOverlayRootPrimitive","MenuPopup","MenuPopupPrimitive","MenuRadioGroup","MenuRadioGroupPrimitive","MenuRadioItem","MenuRadioItemPrimitive","MenuRoot","MenuRootPrimitive","MenuTrigger","MenuTriggerPrimitive","Slot","dataAttributes","mergeDataAttributes","useOptionalMenuItemContext","useOptionalMenuPopupContext","cn","ParentContext","useParentContext","useStyleContext","Icon","positionToDataIcon","menuItemIconVariants","menuItemLabelVariants","menuItemIndicatorVariants","menuItemShortcutVariants","menuItemVariants","menuRootVariants","menuSectionLabelVariants","menuSeparatorLineVariants","menuSeparatorVariants","jsx","_jsx","SCOPE","MENU_MAX_HEIGHT","useMenuStyleContext","ctx","size","color","useMenuItemStyleValue","sizeProp","contextSize","parent","contextValue","className","style","children","props","ref","slot","displayName","select","web","default","MenuContent","scrollable","asSurface","popup","shouldScroll","constrainedStyle","undefined","flexShrink","maxHeight","availableHeight","Math","min","maxWidth","availableWidth","computedClassName","content","scrollEventThrottle","nestedScrollEnabled","Provider","value","asChild","inset","MenuItemLabel","isChecked","checkedProp","menuItemCtx","checked","Comp","state","MenuItemIcon","as","position","slotData","accessibilityElementsHidden","MenuItemShortcut","MenuItemIndicator","menuItemContext","MenuSectionLabel","accessibilityRole","MenuSeparator","importantForAccessibility","Menu","Object","assign","Trigger","Popup","Content","Item","CheckboxItem","RadioGroup","RadioItem","ItemLabel","ItemIcon","ItemShortcut","ItemIndicator","SectionLabel","Separator"],"sourceRoot":"../../../../src","sources":["components/Menu/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC3D,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AAC/F,SAASC,KAAK,QAAQ,eAAe;AACrC,SACEC,gBAAgB,IAAIC,yBAAyB,EAC7CC,QAAQ,IAAIC,iBAAiB,EAC7BC,eAAe,IAAIC,wBAAwB,EAC3CC,SAAS,IAAIC,kBAAkB,EAC/BC,cAAc,IAAIC,uBAAuB,EACzCC,aAAa,IAAIC,sBAAsB,EACvCC,QAAQ,IAAIC,iBAAiB,EAC7BC,WAAW,IAAIC,oBAAoB,EACnCC,IAAI,EACJC,cAAc,EACdC,mBAAmB,EACnBC,0BAA0B,EAC1BC,2BAA2B,QAStB,oBAAoB;AAC3B,SAASC,EAAE,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,eAAe,QAAQ,eAAe;AACpF,SAASC,IAAI,QAAwB,SAAS;AAC9C,SAASC,kBAAkB,QAA+B,gCAAgC;AAC1F,SACEC,oBAAoB,EACpBC,qBAAqB,EACrBC,yBAAyB,EACzBC,wBAAwB,EACxBC,gBAAgB,EAChBC,gBAAgB,EAChBC,wBAAwB,EACxBC,yBAAyB,EACzBC,qBAAqB,QAGhB,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElB,MAAMC,KAAK,GAAG,MAAM;AACpB,MAAMC,eAAe,GAAG,GAAG;AAE3B,MAAMC,mBAAmB,GAAGA,CAAA,KAAoD;EAC9E,MAAMC,GAAG,GAAGjB,eAAe,CAACc,KAAK,CAAqC;EACtE,OAAO;IAAEI,IAAI,EAAED,GAAG,EAAEC,IAAI,IAAI,SAAS;IAAEC,KAAK,EAAEF,GAAG,EAAEE,KAAK,IAAI;EAAU,CAAC;AACzE,CAAC;AAED,MAAMC,qBAAqB,GAAGA,CAC5BC,QAAsC,EACtCF,KAAiD,KAC9C;EACH,MAAM;IAAED,IAAI,EAAEI;EAAY,CAAC,GAAGN,mBAAmB,CAAC,CAAC;EACnD,MAAMO,MAAM,GAAGxB,gBAAgB,CAAC,CAAC;EACjC,MAAMmB,IAAI,GAAGG,QAAQ,IAAIC,WAAW,IAAI,SAAS;EACjD,MAAME,YAAY,GAAGtD,OAAO,CAC1B,OAAO;IAAE,GAAGqD,MAAM;IAAE,CAACT,KAAK,GAAG;MAAEI,IAAI;MAAEC;IAAM;EAAE,CAAC,CAAC,EAC/C,CAACI,MAAM,EAAEL,IAAI,EAAEC,KAAK,CACtB,CAAC;EAED,OAAO;IAAEK,YAAY;IAAEN;EAAK,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;;AAMA,MAAMtC,eAAe,gBAAGX,UAAU,CAChC,CAAC;EAAEwD,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC5ChB,IAAA,CAAChC,wBAAwB;EACvBgD,GAAG,EAAEA,GAAI;EACTJ,SAAS,EAAEA,SAAU;EACrBC,KAAK,EAAEA,KAAM;EAAA,GACTE,KAAK;EAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAY,CAAC,CAAC,CAAC;EAAAH,QAAA,EAEpEA;AAAQ,CACe,CAE9B,CAAC;AAED/C,eAAe,CAACmD,WAAW,GAAG,MAAM;;AAEpC;AACA;AACA;;AAOA,MAAMzC,WAAW,gBAAGrB,UAAU,CAC5B,CAAC;EAAEwD,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC5ChB,IAAA,CAACtB,oBAAoB;EACnBsC,GAAG,EAAEA,GAAI;EACTJ,SAAS,EAAEA,SAAU;EACrBC,KAAK,EAAEA,KAAM;EAAA,GACTE,KAAK;EAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAe,CAAC,CAAC,CAAC;EAAAH,QAAA,EAEvEA;AAAQ,CACW,CAE1B,CAAC;AAEDrC,WAAW,CAACyC,WAAW,GAAG,cAAc;;AAExC;AACA;AACA;;AAOA,MAAMjD,SAAS,gBAAGb,UAAU,CAC1B,CAAC;EAAEwD,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC5ChB,IAAA,CAAC9B,kBAAkB;EACjB8C,GAAG,EAAEA,GAAI;EACTJ,SAAS,EAAE5B,EAAE,CACX,UAAU,EACV1B,QAAQ,CAAC6D,MAAM,CAAC;IACdC,GAAG,EAAE,kBAAkB;IACvBC,OAAO,EAAE;EACX,CAAC,CAAC,EACFT,SACF,CAAE;EACFC,KAAK,EAAEA,KAAM;EAAA,GACTE,KAAK;EAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAa,CAAC,CAAC,CAAC;EAAAH,QAAA,EAErEA;AAAQ,CACS,CAExB,CAAC;AAED7C,SAAS,CAACiD,WAAW,GAAG,YAAY;;AAEpC;AACA;AACA;;AASA,MAAMI,WAAW,gBAAGlE,UAAU,CAC5B,CAAC;EAAEmE,UAAU,GAAG,KAAK;EAAEC,SAAS,GAAG,KAAK;EAAEZ,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxF,MAAMN,MAAM,GAAGxB,gBAAgB,CAAC,CAAC;EACjC,MAAMuC,KAAK,GAAG1C,2BAA2B,CAAC,CAAC;EAC3C,MAAMqB,GAAG,GAAG/C,OAAO,CAAC,OAAO;IAAE,GAAGqD,MAAM;IAAE,CAACT,KAAK,GAAG;MAAEI,IAAI,EAAE;IAAmB;EAAE,CAAC,CAAC,EAAE,CAACK,MAAM,CAAC,CAAC;EAC3F,MAAMgB,YAAY,GAAGH,UAAU,IAAIE,KAAK,KAAK,IAAI;EACjD,MAAME,gBAAgB,GACpBF,KAAK,KAAK,IAAI,GACVG,SAAS,GACT;IACEC,UAAU,EAAE,CAAC;IACbC,SAAS,EACPL,KAAK,CAACM,eAAe,KAAKH,SAAS,GAC/BA,SAAS,GACTI,IAAI,CAACC,GAAG,CAAC/B,eAAe,EAAEuB,KAAK,CAACM,eAAe,CAAC;IACtDG,QAAQ,EAAET,KAAK,CAACU;EAClB,CAAC;EAEP,MAAMC,iBAAiB,GAAGpD,EAAE,CAACW,gBAAgB,CAAC;IAAE4B,UAAU,EAAEG;EAAa,CAAC,CAAC,EAAEd,SAAS,CAAC;EAEvF,MAAMyB,OAAO,GAAGX,YAAY,gBAC1B1B,IAAA,CAACzC,UAAU;IACTqD,SAAS,EAAC,QAAQ;IAClBC,KAAK,EAAEc,gBAAiB;IACxBW,mBAAmB,EAAE,EAAG;IACxBC,mBAAmB;IAAAzB,QAAA,EAElBA;EAAQ,CACC,CAAC,GAEbA,QACD;EAED,oBACEd,IAAA,CAACf,aAAa,CAACuD,QAAQ;IAACC,KAAK,EAAErC,GAAI;IAAAU,QAAA,eACjCd,IAAA,CAACxB,iBAAiB;MAChBwC,GAAG,EAAEA,GAAI;MACTO,UAAU,EAAEG,YAAa;MACzBF,SAAS,EAAEA,SAAU;MACrBZ,SAAS,EAAEwB,iBAAkB;MAC7BvB,KAAK,EAAE,CAACA,KAAK,EAAEc,gBAAgB,CAAE;MAAA,GAC7BZ,KAAK;MAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;QAAEqC,IAAI,EAAE;MAAe,CAAC,CAAC,CAAC;MAAAH,QAAA,EAEvEuB;IAAO,CACS;EAAC,CACE,CAAC;AAE7B,CACF,CAAC;AAEDf,WAAW,CAACJ,WAAW,GAAG,cAAc;;AAExC;AACA;AACA;;AAaA,MAAMrD,QAAQ,gBAAGT,UAAU,CACzB,CACE;EACEsF,OAAO;EACPpC,KAAK,GAAG,SAAS;EACjBqC,KAAK,GAAG,KAAK;EACbtC,IAAI,EAAEG,QAAQ;EACdI,SAAS;EACTC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM;IAAEL,YAAY;IAAEN;EAAK,CAAC,GAAGE,qBAAqB,CAACC,QAAQ,EAAEF,KAAK,CAAC;EAErE,MAAM8B,iBAAiB,GAAGpD,EAAE,CAACU,gBAAgB,CAAC;IAAEY,KAAK;IAAEqC,KAAK;IAAEtC;EAAK,CAAC,CAAC,EAAEO,SAAS,CAAC;EAEjF,oBACEZ,IAAA,CAACf,aAAa,CAACuD,QAAQ;IAACC,KAAK,EAAE9B,YAAa;IAAAG,QAAA,eAC1Cd,IAAA,CAAClC,iBAAiB;MAChBkD,GAAG,EAAEA,GAAI;MACT0B,OAAO,EAAEA,OAAQ;MACjB9B,SAAS,EAAEwB,iBAAkB;MAC7BvB,KAAK,EAAEA,KAAM;MAAA,GACTE,KAAK;MAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;QAAEqC,IAAI,EAAE;MAAY,CAAC,CAAC,CAAC;MAAAH,QAAA,EAEpEA;IAAQ,CACQ;EAAC,CACE,CAAC;AAE7B,CACF,CAAC;AAEDjD,QAAQ,CAACqD,WAAW,GAAG,WAAW;AAUlC,MAAMvD,gBAAgB,gBAAGP,UAAU,CACjC,CACE;EACEsF,OAAO;EACPpC,KAAK,GAAG,SAAS;EACjBqC,KAAK,GAAG,KAAK;EACbtC,IAAI,EAAEG,QAAQ;EACdI,SAAS;EACTC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM;IAAEL,YAAY;IAAEN;EAAK,CAAC,GAAGE,qBAAqB,CAACC,QAAQ,EAAEF,KAAK,CAAC;EAErE,oBACEN,IAAA,CAACf,aAAa,CAACuD,QAAQ;IAACC,KAAK,EAAE9B,YAAa;IAAAG,QAAA,eAC1Cd,IAAA,CAACpC,yBAAyB;MACxBoD,GAAG,EAAEA,GAAI;MACT0B,OAAO,EAAEA,OAAQ;MACjB9B,SAAS,EAAE5B,EAAE,CAACU,gBAAgB,CAAC;QAAEY,KAAK;QAAEqC,KAAK;QAAEtC;MAAK,CAAC,CAAC,EAAEO,SAAS,CAAE;MACnEC,KAAK,EAAEA,KAAM;MAAA,GACTE,KAAK;MAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;QAAEqC,IAAI,EAAE;MAAqB,CAAC,CAAC,CAAC;MAAAH,QAAA,EAE7EA;IAAQ,CACgB;EAAC,CACN,CAAC;AAE7B,CACF,CAAC;AAEDnD,gBAAgB,CAACuD,WAAW,GAAG,mBAAmB;AAQlD,MAAM/C,cAAc,gBAAGf,UAAU,CAC/B,CAAC;EAAEsF,OAAO;EAAE9B,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBACrDhB,IAAA,CAAC5B,uBAAuB;EACtB4C,GAAG,EAAEA,GAAI;EACT0B,OAAO,EAAEA,OAAQ;EACjB9B,SAAS,EAAEA,SAAU;EACrBC,KAAK,EAAEA,KAAM;EAAA,GACTE,KAAK;EAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAmB,CAAC,CAAC,CAAC;EAAAH,QAAA,EAE3EA;AAAQ,CACc,CAE7B,CAAC;AAED3C,cAAc,CAAC+C,WAAW,GAAG,iBAAiB;AAU9C,MAAM7C,aAAa,gBAAGjB,UAAU,CAC9B,CACE;EACEsF,OAAO;EACPpC,KAAK,GAAG,SAAS;EACjBqC,KAAK,GAAG,KAAK;EACbtC,IAAI,EAAEG,QAAQ;EACdI,SAAS;EACTC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM;IAAEL,YAAY;IAAEN;EAAK,CAAC,GAAGE,qBAAqB,CAACC,QAAQ,EAAEF,KAAK,CAAC;EAErE,oBACEN,IAAA,CAACf,aAAa,CAACuD,QAAQ;IAACC,KAAK,EAAE9B,YAAa;IAAAG,QAAA,eAC1Cd,IAAA,CAAC1B,sBAAsB;MACrB0C,GAAG,EAAEA,GAAI;MACT0B,OAAO,EAAEA,OAAQ;MACjB9B,SAAS,EAAE5B,EAAE,CAACU,gBAAgB,CAAC;QAAEY,KAAK;QAAEqC,KAAK;QAAEtC;MAAK,CAAC,CAAC,EAAEO,SAAS,CAAE;MACnEC,KAAK,EAAEA,KAAM;MAAA,GACTE,KAAK;MAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;QAAEqC,IAAI,EAAE;MAAkB,CAAC,CAAC,CAAC;MAAAH,QAAA,EAE1EA;IAAQ,CACa;EAAC,CACH,CAAC;AAE7B,CACF,CAAC;AAEDzC,aAAa,CAAC6C,WAAW,GAAG,gBAAgB;;AAE5C;AACA;AACA;;AASA,MAAM0B,aAAa,gBAAGxF,UAAU,CAC9B,CAAC;EAAEsF,OAAO;EAAE9B,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE+B,SAAS,EAAEC,WAAW;EAAEzC,IAAI;EAAE,GAAGU;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxF,MAAM;IAAEV;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EACvC,MAAM4C,WAAW,GAAGjE,0BAA0B,CAAC,CAAC;EAChD,MAAMkE,OAAO,GAAGF,WAAW,IAAIC,WAAW,EAAEC,OAAO,IAAI,KAAK;EAC5D,MAAMC,IAAI,GAAGP,OAAO,GAAG/D,IAAI,GAAGnB,IAAI;EAElC,oBACEwC,IAAA,CAACiD,IAAI;IACHjC,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAE5B,EAAE,CACXO,qBAAqB,CAAC;MAAEc,IAAI;MAAEC;IAAM,CAAC,CAAC,EACtC0C,OAAO,GAAG,aAAa,GAAGpB,SAAS,EACnChB,SACF,CAAE;IACFC,KAAK,EAAEA,KAAM;IAAA,GACTE,KAAK;IAAA,GACLlC,mBAAmB,CACrBD,cAAc,CAAC;MACbqC,IAAI,EAAE,iBAAiB;MACvBiC,KAAK,EAAEF,OAAO,GAAG,SAAS,GAAG;IAC/B,CAAC,CAAC,EACFjC,KACF,CAAC;IAAAD,QAAA,EAEAA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAED8B,aAAa,CAAC1B,WAAW,GAAG,gBAAgB;AAU5C,MAAMiC,YAAY,GAAGA,CAAC;EACpBT,OAAO;EACPU,EAAE;EACFC,QAAQ,GAAG,SAAS;EACpBzC,SAAS;EACTC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACc,CAAC,KAAK;EACvB,MAAM;IAAET;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EACvC,MAAMiC,iBAAiB,GAAGpD,EAAE,CAACM,oBAAoB,CAAC;IAAEgB;EAAM,CAAC,CAAC,EAAEM,SAAS,CAAC;EACxE,MAAM0C,QAAQ,GAAGzE,mBAAmB,CAClCkC,KAAK,EACLnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAiB,CAAC,CAAC,EAC1C5B,kBAAkB,CAACgE,QAAQ,CAC7B,CAAC;EAED,IAAIX,OAAO,EAAE;IACX,oBACE1C,IAAA,CAACrB,IAAI;MACHiC,SAAS,EAAEwB,iBAAkB;MAC7BvB,KAAK,EAAEA,KAAM;MACb0C,2BAA2B;MAC3B,mBAAW;MAAA,GACPxC,KAAK;MAAA,GACLuC,QAAQ;MAAAxC,QAAA,EAEXA;IAAQ,CACL,CAAC;EAEX;EAEA,IAAI,CAACsC,EAAE,EAAE;IACP,OAAO,IAAI;EACb;EAEA,oBACEpD,IAAA,CAACZ,IAAI;IACHgE,EAAE,EAAEA,EAAG;IACPxC,SAAS,EAAEwB,iBAAkB;IAC7BvB,KAAK,EAAEA,KAAM;IACb0C,2BAA2B;IAC3B,mBAAW;IAAA,GACPxC,KAAK;IAAA,GACLuC;EAAQ,CACb,CAAC;AAEN,CAAC;AAEDH,YAAY,CAACjC,WAAW,GAAG,eAAe;AAO1C,MAAMsC,gBAAgB,gBAAGpG,UAAU,CACjC,CAAC;EAAEsF,OAAO;EAAE9B,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAMiC,IAAI,GAAGP,OAAO,GAAG/D,IAAI,GAAGnB,IAAI;EAElC,oBACEwC,IAAA,CAACiD,IAAI;IACHjC,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAE5B,EAAE,CAACS,wBAAwB,CAAC,CAAC,EAAEmB,SAAS,CAAE;IACrDC,KAAK,EAAEA,KAAM;IACb0C,2BAA2B;IAC3B,mBAAW;IAAA,GACPxC,KAAK;IAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;MAAEqC,IAAI,EAAE;IAAqB,CAAC,CAAC,CAAC;IAAAH,QAAA,EAE7EA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAED0C,gBAAgB,CAACtC,WAAW,GAAG,mBAAmB;AAWlD,MAAMuC,iBAAiB,GAAGA,CAAC;EACzBf,OAAO;EACPU,EAAE,GAAG1F,KAAK;EACVmF,SAAS,EAAEC,WAAW;EACtBO,QAAQ,GAAG,UAAU;EACrBzC,SAAS;EACTC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACmB,CAAC,KAAK;EAC5B,MAAM2C,eAAe,GAAG5E,0BAA0B,CAAC,CAAC;EACpD,MAAMkE,OAAO,GAAGF,WAAW,IAAIY,eAAe,EAAEV,OAAO,IAAI,KAAK;EAChE,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,MAAMZ,iBAAiB,GAAGpD,EAAE,CAACQ,yBAAyB,CAAC,CAAC,EAAEoB,SAAS,CAAC;EACpE,MAAM0C,QAAQ,GAAGzE,mBAAmB,CAClCkC,KAAK,EACLnC,cAAc,CAAC;IAAEqC,IAAI,EAAE;EAAsB,CAAC,CAAC,EAC/C5B,kBAAkB,CAACgE,QAAQ,CAC7B,CAAC;EAED,IAAIX,OAAO,EAAE;IACX,oBACE1C,IAAA,CAACrB,IAAI;MACHiC,SAAS,EAAEwB,iBAAkB;MAC7BvB,KAAK,EAAEA,KAAM;MACb0C,2BAA2B;MAC3B,mBAAW;MAAA,GACPxC,KAAK;MAAA,GACLuC,QAAQ;MAAAxC,QAAA,EAEXA;IAAQ,CACL,CAAC;EAEX;EAEA,oBACEd,IAAA,CAACZ,IAAI;IACHgE,EAAE,EAAEA,EAAG;IACPxC,SAAS,EAAEwB,iBAAkB;IAC7BvB,KAAK,EAAEA,KAAM;IACb0C,2BAA2B;IAC3B,mBAAW;IAAA,GACPxC,KAAK;IAAA,GACLuC;EAAQ,CACb,CAAC;AAEN,CAAC;AAEDG,iBAAiB,CAACvC,WAAW,GAAG,oBAAoB;;AAEpD;AACA;AACA;;AAOA,MAAMyC,gBAAgB,gBAAGvG,UAAU,CACjC,CAAC;EAAEsF,OAAO;EAAE9B,SAAS;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAMiC,IAAI,GAAGP,OAAO,GAAG/D,IAAI,GAAGnB,IAAI;EAElC,oBACEwC,IAAA,CAACiD,IAAI;IACHjC,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAE5B,EAAE,CAACY,wBAAwB,CAAC,CAAC,EAAEgB,SAAS,CAAE;IACrDC,KAAK,EAAEA,KAAM;IACb+C,iBAAiB,EAAC,QAAQ;IAAA,GACtB7C,KAAK;IAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;MAAEqC,IAAI,EAAE;IAAqB,CAAC,CAAC,CAAC;IAAAH,QAAA,EAE7EA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAED6C,gBAAgB,CAACzC,WAAW,GAAG,mBAAmB;AAMlD,MAAM2C,aAAa,gBAAGzG,UAAU,CAC9B,CAAC;EAAEwD,SAAS;EAAEC,KAAK;EAAE,GAAGE;AAAM,CAAC,EAAEC,GAAG,KAAK;EACvC,oBACEhB,IAAA,CAACvC,IAAI;IACHuD,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAE5B,EAAE,CAACc,qBAAqB,CAAC,CAAC,EAAEc,SAAS,CAAE;IAClDC,KAAK,EAAEA,KAAM;IACb0C,2BAA2B;IAC3BO,yBAAyB,EAAC,qBAAqB;IAC/C,mBAAW;IAAA,GACP/C,KAAK;IAAA,GACLlC,mBAAmB,CAACkC,KAAK,EAAEnC,cAAc,CAAC;MAAEqC,IAAI,EAAE;IAAiB,CAAC,CAAC,CAAC;IAAAH,QAAA,eAE1Ed,IAAA,CAACvC,IAAI;MAACmD,SAAS,EAAEf,yBAAyB,CAAC;IAAE,CAAE;EAAC,CAC5C,CAAC;AAEX,CACF,CAAC;AAEDgE,aAAa,CAAC3C,WAAW,GAAG,gBAAgB;;AAE5C;AACA;AACA;;AAkBA,OAAO,MAAM6C,IAAI,GAAGC,MAAM,CAACC,MAAM,CAAClG,eAAe,EAAE;EACjDmG,OAAO,EAAEzF,WAAW;EACpB0F,KAAK,EAAElG,SAAS;EAChBmG,OAAO,EAAE9C,WAAW;EACpB+C,IAAI,EAAExG,QAAQ;EACdyG,YAAY,EAAE3G,gBAAgB;EAC9B4G,UAAU,EAAEpG,cAAc;EAC1BqG,SAAS,EAAEnG,aAAa;EACxBoG,SAAS,EAAE7B,aAAa;EACxB8B,QAAQ,EAAEvB,YAAY;EACtBwB,YAAY,EAAEnB,gBAAgB;EAC9BoB,aAAa,EAAEnB,iBAAiB;EAChCoB,YAAY,EAAElB,gBAAgB;EAC9BmB,SAAS,EAAEjB;AACb,CAAC,CAA0B","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import { cva } from '@cdx-ui/utils';
|
|
5
|
+
import { DISABLED_CURSOR, TRANSITION_COLORS } from '../../styles/constants';
|
|
6
|
+
export const menuRootVariants = cva(['bg-surface-primary', 'border border-stroke-secondary', 'overflow-hidden', 'rounded-xl', 'p-1', 'shadow-lg', 'web:outline-none'], {
|
|
7
|
+
variants: {
|
|
8
|
+
scrollable: {
|
|
9
|
+
true: 'max-h-60 shrink',
|
|
10
|
+
false: ''
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
scrollable: false
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
export const menuItemVariants = cva(['flex-row items-center gap-2', 'min-h-9', 'rounded-lg', TRANSITION_COLORS, 'data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none', DISABLED_CURSOR, 'data-[state=checked]:bg-surface-action-tint data-[state=checked]:font-medium', Platform.select({
|
|
18
|
+
default: 'data-[active=true]:bg-surface-action-tint-active',
|
|
19
|
+
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'
|
|
20
|
+
})], {
|
|
21
|
+
variants: {
|
|
22
|
+
color: {
|
|
23
|
+
neutral: 'text-content-primary',
|
|
24
|
+
danger: 'text-content-danger data-[hover=true]:bg-surface-danger-tint-hover data-[highlighted=true]:bg-surface-danger-tint-hover'
|
|
25
|
+
},
|
|
26
|
+
inset: {
|
|
27
|
+
true: '',
|
|
28
|
+
false: ''
|
|
29
|
+
},
|
|
30
|
+
size: {
|
|
31
|
+
default: 'px-3 py-2',
|
|
32
|
+
small: 'px-2.5 py-1.5'
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
compoundVariants: [{
|
|
36
|
+
inset: true,
|
|
37
|
+
size: 'default',
|
|
38
|
+
class: 'ps-8 pe-3 py-2'
|
|
39
|
+
}, {
|
|
40
|
+
inset: true,
|
|
41
|
+
size: 'small',
|
|
42
|
+
class: 'ps-8 pe-2.5 py-1.5'
|
|
43
|
+
}, {
|
|
44
|
+
inset: false,
|
|
45
|
+
size: 'default',
|
|
46
|
+
class: 'px-3 py-2'
|
|
47
|
+
}, {
|
|
48
|
+
inset: false,
|
|
49
|
+
size: 'small',
|
|
50
|
+
class: 'px-2.5 py-1.5'
|
|
51
|
+
}],
|
|
52
|
+
defaultVariants: {
|
|
53
|
+
color: 'neutral',
|
|
54
|
+
inset: false,
|
|
55
|
+
size: 'default'
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
export const menuItemLabelVariants = cva(['text-start', Platform.select({
|
|
59
|
+
default: 'shrink-0',
|
|
60
|
+
web: 'min-w-0 flex-1'
|
|
61
|
+
})], {
|
|
62
|
+
variants: {
|
|
63
|
+
size: {
|
|
64
|
+
default: 'text-[0.875rem]',
|
|
65
|
+
small: 'text-[0.75rem]'
|
|
66
|
+
},
|
|
67
|
+
color: {
|
|
68
|
+
neutral: 'text-content-primary',
|
|
69
|
+
danger: 'text-content-danger'
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
defaultVariants: {
|
|
73
|
+
size: 'default',
|
|
74
|
+
color: 'neutral'
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
export const menuItemIconVariants = cva(['shrink-0', 'size-5'], {
|
|
78
|
+
variants: {
|
|
79
|
+
color: {
|
|
80
|
+
neutral: 'text-content-secondary',
|
|
81
|
+
danger: 'text-content-danger'
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
defaultVariants: {
|
|
85
|
+
color: 'neutral'
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
export const menuItemShortcutVariants = cva(['shrink-0 text-content-tertiary', 'text-[0.75rem]', 'ms-auto']);
|
|
89
|
+
export const menuItemIndicatorVariants = cva(['shrink-0 data-[icon=inline-end]:ms-auto', 'text-content-action', 'size-5']);
|
|
90
|
+
export const menuSectionLabelVariants = cva(['px-3 py-1.5', 'text-[0.75rem] font-medium', 'text-content-tertiary']);
|
|
91
|
+
export const menuSeparatorVariants = cva([
|
|
92
|
+
// Bleed past menu `p-1` inset so the line spans the full panel width (Figma: px-[-4px]).
|
|
93
|
+
// Omit `w-full`: percentage width ignores the negative margins and leaves a right-side gap.
|
|
94
|
+
'self-stretch py-1 -mx-1']);
|
|
95
|
+
export const menuSeparatorLineVariants = cva(['h-px w-full bg-stroke-secondary']);
|
|
96
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","cva","DISABLED_CURSOR","TRANSITION_COLORS","menuRootVariants","variants","scrollable","true","false","defaultVariants","menuItemVariants","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":[]}
|