@bacon-pos/ui 0.7.0 → 0.7.1
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/lib/commonjs/components/Menu/Menu.js +25 -52
- package/lib/commonjs/components/Menu/Menu.js.map +1 -1
- package/lib/commonjs/components/Menu/MenuButton.js +4 -0
- package/lib/commonjs/components/Menu/MenuButton.js.map +1 -1
- package/lib/commonjs/components/Menu/SelectButton.js +4 -0
- package/lib/commonjs/components/Menu/SelectButton.js.map +1 -1
- package/lib/commonjs/components/Menu/UserMenu.js +4 -0
- package/lib/commonjs/components/Menu/UserMenu.js.map +1 -1
- package/lib/commonjs/components/Menu/placement.js +84 -0
- package/lib/commonjs/components/Menu/placement.js.map +1 -0
- package/lib/commonjs/components/Menu/placement.test.js +186 -0
- package/lib/commonjs/components/Menu/placement.test.js.map +1 -0
- package/lib/commonjs/components/Select/Select.js +2 -0
- package/lib/commonjs/components/Select/Select.js.map +1 -1
- package/lib/module/components/Menu/Menu.js +27 -54
- package/lib/module/components/Menu/Menu.js.map +1 -1
- package/lib/module/components/Menu/MenuButton.js +4 -0
- package/lib/module/components/Menu/MenuButton.js.map +1 -1
- package/lib/module/components/Menu/SelectButton.js +4 -0
- package/lib/module/components/Menu/SelectButton.js.map +1 -1
- package/lib/module/components/Menu/UserMenu.js +4 -0
- package/lib/module/components/Menu/UserMenu.js.map +1 -1
- package/lib/module/components/Menu/placement.js +80 -0
- package/lib/module/components/Menu/placement.js.map +1 -0
- package/lib/module/components/Menu/placement.test.js +186 -0
- package/lib/module/components/Menu/placement.test.js.map +1 -0
- package/lib/module/components/Select/Select.js +2 -0
- package/lib/module/components/Select/Select.js.map +1 -1
- package/lib/typescript/commonjs/components/Menu/Menu.d.ts +7 -1
- package/lib/typescript/commonjs/components/Menu/Menu.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts +6 -2
- package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts +6 -2
- package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Menu/UserMenu.d.ts +6 -2
- package/lib/typescript/commonjs/components/Menu/UserMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Menu/placement.d.ts +47 -0
- package/lib/typescript/commonjs/components/Menu/placement.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Menu/placement.test.d.ts +2 -0
- package/lib/typescript/commonjs/components/Menu/placement.test.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Select/Select.d.ts +3 -1
- package/lib/typescript/commonjs/components/Select/Select.d.ts.map +1 -1
- package/lib/typescript/module/components/Menu/Menu.d.ts +7 -1
- package/lib/typescript/module/components/Menu/Menu.d.ts.map +1 -1
- package/lib/typescript/module/components/Menu/MenuButton.d.ts +6 -2
- package/lib/typescript/module/components/Menu/MenuButton.d.ts.map +1 -1
- package/lib/typescript/module/components/Menu/SelectButton.d.ts +6 -2
- package/lib/typescript/module/components/Menu/SelectButton.d.ts.map +1 -1
- package/lib/typescript/module/components/Menu/UserMenu.d.ts +6 -2
- package/lib/typescript/module/components/Menu/UserMenu.d.ts.map +1 -1
- package/lib/typescript/module/components/Menu/placement.d.ts +47 -0
- package/lib/typescript/module/components/Menu/placement.d.ts.map +1 -0
- package/lib/typescript/module/components/Menu/placement.test.d.ts +2 -0
- package/lib/typescript/module/components/Menu/placement.test.d.ts.map +1 -0
- package/lib/typescript/module/components/Select/Select.d.ts +3 -1
- package/lib/typescript/module/components/Select/Select.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Menu/Menu.tsx +37 -46
- package/src/components/Menu/MenuButton.tsx +9 -1
- package/src/components/Menu/SelectButton.tsx +9 -1
- package/src/components/Menu/UserMenu.tsx +9 -1
- package/src/components/Menu/placement.ts +107 -0
- package/src/components/Select/Select.tsx +4 -0
|
@@ -1,34 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
|
-
import { Animated, Dimensions, Easing, Modal, Platform, Pressable, View } from 'react-native';
|
|
4
|
+
import { Animated, Dimensions, Easing, Modal, Platform, Pressable, StatusBar, View } from 'react-native';
|
|
5
|
+
import { computeMenuPlacement } from "./placement.js";
|
|
5
6
|
|
|
6
7
|
/** A point on a box: a vertical and a horizontal edge/center. */
|
|
7
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
const V_FRAC = {
|
|
9
|
-
top: 0,
|
|
10
|
-
center: 0.5,
|
|
11
|
-
bottom: 1
|
|
12
|
-
};
|
|
13
|
-
const H_FRAC = {
|
|
14
|
-
left: 0,
|
|
15
|
-
center: 0.5,
|
|
16
|
-
right: 1
|
|
17
|
-
};
|
|
18
8
|
|
|
19
9
|
/** State handed to the trigger renderer and (optionally) the content renderer. */
|
|
20
|
-
|
|
10
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
11
|
const ZERO_INSETS = {
|
|
22
12
|
top: 0,
|
|
23
13
|
right: 0,
|
|
24
14
|
bottom: 0,
|
|
25
15
|
left: 0
|
|
26
16
|
};
|
|
27
|
-
function clamp(value, min, max) {
|
|
28
|
-
if (max < min) return min;
|
|
29
|
-
return Math.min(Math.max(value, min), max);
|
|
30
|
-
}
|
|
31
17
|
|
|
18
|
+
/** Default coordinate offset for the translucent Modal (Android status bar). */
|
|
19
|
+
const DEFAULT_STATUS_BAR_HEIGHT = Platform.OS === 'android' ? StatusBar.currentHeight ?? 0 : 0;
|
|
32
20
|
/**
|
|
33
21
|
* Anchored overlay menu. Renders a trigger inline and, when open, a floating
|
|
34
22
|
* panel positioned relative to the trigger via two origins — `anchorOrigin`
|
|
@@ -50,6 +38,7 @@ export function Menu({
|
|
|
50
38
|
offset = 8,
|
|
51
39
|
autoFit = true,
|
|
52
40
|
insets = ZERO_INSETS,
|
|
41
|
+
statusBarHeight = DEFAULT_STATUS_BAR_HEIGHT,
|
|
53
42
|
open: openProp,
|
|
54
43
|
onOpenChange,
|
|
55
44
|
screenPadding = 8,
|
|
@@ -117,43 +106,27 @@ export function Menu({
|
|
|
117
106
|
if (naturalHeight === null) setNaturalHeight(height);
|
|
118
107
|
};
|
|
119
108
|
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
horizontal: menuOrigin.horizontal,
|
|
142
|
-
vertical: up ? 'bottom' : 'top'
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
let top = 0;
|
|
146
|
-
let left = 0;
|
|
147
|
-
if (rect && menuSize) {
|
|
148
|
-
const screen = Dimensions.get('window');
|
|
149
|
-
const anchorX = rect.x + H_FRAC[effAnchor.horizontal] * rect.width;
|
|
150
|
-
const anchorY = rect.y + V_FRAC[effAnchor.vertical] * rect.height;
|
|
151
|
-
const offsetY = effMenu.vertical === 'top' ? offset : effMenu.vertical === 'bottom' ? -offset : 0;
|
|
152
|
-
left = anchorX - H_FRAC[effMenu.horizontal] * menuSize.width;
|
|
153
|
-
top = anchorY - V_FRAC[effMenu.vertical] * menuSize.height + offsetY;
|
|
154
|
-
left = clamp(left, screenPadding + insets.left, screen.width - insets.right - menuSize.width - screenPadding);
|
|
155
|
-
top = clamp(top, screenPadding + insets.top, screen.height - insets.bottom - menuSize.height - screenPadding);
|
|
156
|
-
}
|
|
109
|
+
// All positioning math lives in the pure `computeMenuPlacement` (unit-tested):
|
|
110
|
+
// it applies the status-bar offset, auto-fit flip, height cap and screen clamp.
|
|
111
|
+
const screen = Dimensions.get('window');
|
|
112
|
+
const placement = rect && naturalHeight !== null ? computeMenuPlacement({
|
|
113
|
+
rect,
|
|
114
|
+
menuWidth: menuSize?.width ?? 0,
|
|
115
|
+
menuHeight: menuSize?.height ?? naturalHeight,
|
|
116
|
+
naturalHeight,
|
|
117
|
+
anchorOrigin,
|
|
118
|
+
menuOrigin,
|
|
119
|
+
offset,
|
|
120
|
+
screenPadding,
|
|
121
|
+
insets,
|
|
122
|
+
screenWidth: screen.width,
|
|
123
|
+
screenHeight: screen.height,
|
|
124
|
+
statusBarHeight,
|
|
125
|
+
autoFit
|
|
126
|
+
}) : null;
|
|
127
|
+
const top = placement?.top ?? 0;
|
|
128
|
+
const left = placement?.left ?? 0;
|
|
129
|
+
const autoMaxHeight = placement?.maxHeight;
|
|
157
130
|
const placed = Boolean(rect && menuSize);
|
|
158
131
|
const content = typeof children === 'function' ? children({
|
|
159
132
|
close,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","Animated","Dimensions","Easing","Modal","Platform","Pressable","View","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Animated","Dimensions","Easing","Modal","Platform","Pressable","StatusBar","View","computeMenuPlacement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ZERO_INSETS","top","right","bottom","left","DEFAULT_STATUS_BAR_HEIGHT","OS","currentHeight","Menu","renderTrigger","children","anchorOrigin","vertical","horizontal","menuOrigin","offset","autoFit","insets","statusBarHeight","open","openProp","onOpenChange","screenPadding","triggerStyle","triggerRef","uncontrolledOpen","setUncontrolledOpen","isControlled","undefined","rect","setRect","menuSize","setMenuSize","naturalHeight","setNaturalHeight","anim","Value","current","setOpen","next","close","toggle","setValue","measureInWindow","x","y","width","height","timing","toValue","duration","easing","out","ease","useNativeDriver","start","onMenuLayout","e","nativeEvent","layout","screen","get","placement","menuWidth","menuHeight","screenWidth","screenHeight","autoMaxHeight","maxHeight","placed","Boolean","content","triggerWidth","ref","collapsable","style","alignSelf","visible","transparent","animationType","onRequestClose","statusBarTranslucent","accessibilityLabel","onPress","flex","onLayout","onStartShouldSetResponder","position","opacity","transform","scale","interpolate","inputRange","outputRange"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/Menu.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,6 +28,8 @@ export function MenuButton({
|
|
|
28
28
|
horizontal: 'right'
|
|
29
29
|
},
|
|
30
30
|
offset = 8,
|
|
31
|
+
insets,
|
|
32
|
+
statusBarHeight,
|
|
31
33
|
menuWidth,
|
|
32
34
|
showDividers,
|
|
33
35
|
closeOnSelect = true,
|
|
@@ -38,6 +40,8 @@ export function MenuButton({
|
|
|
38
40
|
anchorOrigin: anchorOrigin,
|
|
39
41
|
menuOrigin: menuOrigin,
|
|
40
42
|
offset: offset,
|
|
43
|
+
insets: insets,
|
|
44
|
+
statusBarHeight: statusBarHeight,
|
|
41
45
|
open: open,
|
|
42
46
|
onOpenChange: onOpenChange,
|
|
43
47
|
renderTrigger: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dropdown","IconButton","Menu","jsx","_jsx","MenuButton","options","onSelect","icon","accessibilityLabel","variant","size","shape","disabled","anchorOrigin","vertical","horizontal","menuOrigin","offset","menuWidth","showDividers","closeOnSelect","open","onOpenChange","renderTrigger","toggle","onPress","children","close","maxHeight","width","key"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/MenuButton.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,UAAU,QAA2E,6BAA0B;AAExH,SAASC,IAAI,
|
|
1
|
+
{"version":3,"names":["Dropdown","IconButton","Menu","jsx","_jsx","MenuButton","options","onSelect","icon","accessibilityLabel","variant","size","shape","disabled","anchorOrigin","vertical","horizontal","menuOrigin","offset","insets","statusBarHeight","menuWidth","showDividers","closeOnSelect","open","onOpenChange","renderTrigger","toggle","onPress","children","close","maxHeight","width","key"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/MenuButton.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,UAAU,QAA2E,6BAA0B;AAExH,SAASC,IAAI,QAA0C,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAyChE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAC;EACzBC,OAAO;EACPC,QAAQ;EACRC,IAAI,GAAG,MAAM;EACbC,kBAAkB,GAAG,cAAc;EACnCC,OAAO,GAAG,WAAW;EACrBC,IAAI,GAAG,IAAI;EACXC,KAAK,GAAG,OAAO;EACfC,QAAQ,GAAG,KAAK;EAChBC,YAAY,GAAG;IAAEC,QAAQ,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAQ,CAAC;EAC1DC,UAAU,GAAG;IAAEF,QAAQ,EAAE,KAAK;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACrDE,MAAM,GAAG,CAAC;EACVC,MAAM;EACNC,eAAe;EACfC,SAAS;EACTC,YAAY;EACZC,aAAa,GAAG,IAAI;EACpBC,IAAI;EACJC;AACe,CAAC,EAAE;EAClB,oBACErB,IAAA,CAACF,IAAI;IACHY,YAAY,EAAEA,YAAa;IAC3BG,UAAU,EAAEA,UAAW;IACvBC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,eAAe,EAAEA,eAAgB;IACjCI,IAAI,EAAEA,IAAK;IACXC,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,CAAC;MAAEC;IAAO,CAAC,kBACxBvB,IAAA,CAACH,UAAU;MACTO,IAAI,EAAEA,IAAK;MACXC,kBAAkB,EAAEA,kBAAmB;MACvCC,OAAO,EAAEA,OAAQ;MACjBC,IAAI,EAAEA,IAAK;MACXC,KAAK,EAAEA,KAAM;MACbC,QAAQ,EAAEA,QAAS;MACnBe,OAAO,EAAED;IAAO,CACjB,CACD;IAAAE,QAAA,EAEDA,CAAC;MAAEC,KAAK;MAAEC;IAAU,CAAC,kBACpB3B,IAAA,CAACJ,QAAQ;MACPM,OAAO,EAAEA,OAAQ;MACjB0B,KAAK,EAAEX,SAAU;MACjBU,SAAS,EAAEA,SAAU;MACrBT,YAAY,EAAEA,YAAa;MAC3Bf,QAAQ,EAAG0B,GAAG,IAAK;QACjB1B,QAAQ,GAAG0B,GAAG,CAAC;QACf,IAAIV,aAAa,EAAEO,KAAK,CAAC,CAAC;MAC5B;IAAE,CACH;EACF,CACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -59,6 +59,8 @@ export function SelectButton({
|
|
|
59
59
|
horizontal: 'left'
|
|
60
60
|
},
|
|
61
61
|
offset = 8,
|
|
62
|
+
insets,
|
|
63
|
+
statusBarHeight,
|
|
62
64
|
menuWidth,
|
|
63
65
|
showDividers,
|
|
64
66
|
closeOnSelect = true,
|
|
@@ -96,6 +98,8 @@ export function SelectButton({
|
|
|
96
98
|
anchorOrigin: anchorOrigin,
|
|
97
99
|
menuOrigin: menuOrigin,
|
|
98
100
|
offset: offset,
|
|
101
|
+
insets: insets,
|
|
102
|
+
statusBarHeight: statusBarHeight,
|
|
99
103
|
open: open,
|
|
100
104
|
onOpenChange: onOpenChange,
|
|
101
105
|
triggerStyle: fullWidth ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useTheme","Button","Dropdown","Icon","Menu","jsx","_jsx","triggerForeground","theme","variant","action","state","colors","secondaryForeground","inverseForeground","destructiveSubtleForeground","successForeground","successSubtleForeground","primaryForeground","SelectButton","options","value","valueProp","defaultValue","onChange","placeholder","placeholderIcon","showSelectedIcon","chevron","size","fullWidth","disabled","anchorOrigin","vertical","horizontal","menuOrigin","offset","menuWidth","showDividers","closeOnSelect","open","onOpenChange","isControlled","undefined","uncontrolled","setUncontrolled","selected","find","o","key","label","triggerIcon","icon","fg","iconSize","setValue","rows","map","leading","kind","name","trailing","color","feedback","success","triggerStyle","alignSelf","renderTrigger","toggle","onPress","leftIcon","rightIcon","children","close","maxHeight","width","onSelect"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/SelectButton.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,QAAQ,QAAQ,sBAAa;AACtC,SAASC,MAAM,QAA6C,qBAAkB;AAC9E,SAASC,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,IAAI,QAAQ,iBAAc;AAEnC,SAASC,IAAI,
|
|
1
|
+
{"version":3,"names":["useState","useTheme","Button","Dropdown","Icon","Menu","jsx","_jsx","triggerForeground","theme","variant","action","state","colors","secondaryForeground","inverseForeground","destructiveSubtleForeground","successForeground","successSubtleForeground","primaryForeground","SelectButton","options","value","valueProp","defaultValue","onChange","placeholder","placeholderIcon","showSelectedIcon","chevron","size","fullWidth","disabled","anchorOrigin","vertical","horizontal","menuOrigin","offset","insets","statusBarHeight","menuWidth","showDividers","closeOnSelect","open","onOpenChange","isControlled","undefined","uncontrolled","setUncontrolled","selected","find","o","key","label","triggerIcon","icon","fg","iconSize","setValue","rows","map","leading","kind","name","trailing","color","feedback","success","triggerStyle","alignSelf","renderTrigger","toggle","onPress","leftIcon","rightIcon","children","close","maxHeight","width","onSelect"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/SelectButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,6 +28,8 @@ export function UserMenu({
|
|
|
28
28
|
horizontal: 'left'
|
|
29
29
|
},
|
|
30
30
|
offset = 8,
|
|
31
|
+
insets,
|
|
32
|
+
statusBarHeight,
|
|
31
33
|
menuWidth,
|
|
32
34
|
showDividers,
|
|
33
35
|
closeOnSelect = true,
|
|
@@ -38,6 +40,8 @@ export function UserMenu({
|
|
|
38
40
|
anchorOrigin: anchorOrigin,
|
|
39
41
|
menuOrigin: menuOrigin,
|
|
40
42
|
offset: offset,
|
|
43
|
+
insets: insets,
|
|
44
|
+
statusBarHeight: statusBarHeight,
|
|
41
45
|
open: open,
|
|
42
46
|
onOpenChange: onOpenChange,
|
|
43
47
|
renderTrigger: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dropdown","UserChip","Menu","jsx","_jsx","UserMenu","options","onSelect","source","name","initials","size","chipBackgroundColor","chipColor","anchorOrigin","vertical","horizontal","menuOrigin","offset","menuWidth","showDividers","closeOnSelect","open","onOpenChange","renderTrigger","toggle","backgroundColor","color","onPress","children","close","maxHeight","width","key"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/UserMenu.tsx"],"mappings":";;AACA,SAASA,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,QAAQ,QAA2B,yBAAsB;AAClE,SAASC,IAAI,
|
|
1
|
+
{"version":3,"names":["Dropdown","UserChip","Menu","jsx","_jsx","UserMenu","options","onSelect","source","name","initials","size","chipBackgroundColor","chipColor","anchorOrigin","vertical","horizontal","menuOrigin","offset","insets","statusBarHeight","menuWidth","showDividers","closeOnSelect","open","onOpenChange","renderTrigger","toggle","backgroundColor","color","onPress","children","close","maxHeight","width","key"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/UserMenu.tsx"],"mappings":";;AACA,SAASA,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,QAAQ,QAA2B,yBAAsB;AAClE,SAASC,IAAI,QAA0C,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2ChE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAC;EACvBC,OAAO;EACPC,QAAQ;EACRC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,IAAI,GAAG,IAAI;EACXC,mBAAmB;EACnBC,SAAS;EACTC,YAAY,GAAG;IAAEC,QAAQ,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAO,CAAC;EACzDC,UAAU,GAAG;IAAEF,QAAQ,EAAE,KAAK;IAAEC,UAAU,EAAE;EAAO,CAAC;EACpDE,MAAM,GAAG,CAAC;EACVC,MAAM;EACNC,eAAe;EACfC,SAAS;EACTC,YAAY;EACZC,aAAa,GAAG,IAAI;EACpBC,IAAI;EACJC;AACa,CAAC,EAAE;EAChB,oBACErB,IAAA,CAACF,IAAI;IACHY,YAAY,EAAEA,YAAa;IAC3BG,UAAU,EAAEA,UAAW;IACvBC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,eAAe,EAAEA,eAAgB;IACjCI,IAAI,EAAEA,IAAK;IACXC,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,CAAC;MAAEC;IAAO,CAAC,kBACxBvB,IAAA,CAACH,QAAQ;MACPO,MAAM,EAAEA,MAAO;MACfC,IAAI,EAAEA,IAAK;MACXC,QAAQ,EAAEA,QAAS;MACnBC,IAAI,EAAEA,IAAK;MACXiB,eAAe,EAAEhB,mBAAoB;MACrCiB,KAAK,EAAEhB,SAAU;MACjBiB,OAAO,EAAEH;IAAO,CACjB,CACD;IAAAI,QAAA,EAEDA,CAAC;MAAEC,KAAK;MAAEC;IAAU,CAAC,kBACpB7B,IAAA,CAACJ,QAAQ;MACPM,OAAO,EAAEA,OAAQ;MACjB4B,KAAK,EAAEb,SAAU;MACjBY,SAAS,EAAEA,SAAU;MACrBX,YAAY,EAAEA,YAAa;MAC3Bf,QAAQ,EAAG4B,GAAG,IAAK;QACjB5B,QAAQ,GAAG4B,GAAG,CAAC;QACf,IAAIZ,aAAa,EAAES,KAAK,CAAC,CAAC;MAC5B;IAAE,CACH;EACF,CACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const V_FRAC = {
|
|
4
|
+
top: 0,
|
|
5
|
+
center: 0.5,
|
|
6
|
+
bottom: 1
|
|
7
|
+
};
|
|
8
|
+
const H_FRAC = {
|
|
9
|
+
left: 0,
|
|
10
|
+
center: 0.5,
|
|
11
|
+
right: 1
|
|
12
|
+
};
|
|
13
|
+
function clamp(value, min, max) {
|
|
14
|
+
if (max < min) return min;
|
|
15
|
+
return Math.min(Math.max(value, min), max);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Pure placement math for `Menu`. Kept side-effect-free so it can be unit-tested
|
|
20
|
+
* exhaustively (status-bar offset, flip, cap, clamp) independent of RN layout.
|
|
21
|
+
*
|
|
22
|
+
* The key correctness point: the trigger is measured in *window* coordinates but
|
|
23
|
+
* the menu is painted in a full-screen (`statusBarTranslucent`) Modal, so we add
|
|
24
|
+
* `statusBarHeight` when converting the trigger position into the Modal's space.
|
|
25
|
+
* Available-space math cancels the offset out, so it uses window coordinates.
|
|
26
|
+
*/
|
|
27
|
+
export function computeMenuPlacement(input) {
|
|
28
|
+
const {
|
|
29
|
+
rect,
|
|
30
|
+
menuWidth,
|
|
31
|
+
menuHeight,
|
|
32
|
+
naturalHeight,
|
|
33
|
+
anchorOrigin,
|
|
34
|
+
menuOrigin,
|
|
35
|
+
offset,
|
|
36
|
+
screenPadding,
|
|
37
|
+
insets,
|
|
38
|
+
screenWidth,
|
|
39
|
+
screenHeight,
|
|
40
|
+
statusBarHeight,
|
|
41
|
+
autoFit
|
|
42
|
+
} = input;
|
|
43
|
+
const isDropConfig = anchorOrigin.vertical === 'bottom' && menuOrigin.vertical === 'top' || anchorOrigin.vertical === 'top' && menuOrigin.vertical === 'bottom';
|
|
44
|
+
const preferredUp = anchorOrigin.vertical === 'top' && menuOrigin.vertical === 'bottom';
|
|
45
|
+
let effAnchor = anchorOrigin;
|
|
46
|
+
let effMenu = menuOrigin;
|
|
47
|
+
let maxHeight;
|
|
48
|
+
if (autoFit && isDropConfig) {
|
|
49
|
+
// Space math is in window coordinates (the status-bar offset cancels out).
|
|
50
|
+
const spaceBelow = screenHeight - insets.bottom - (rect.y + rect.height) - offset - screenPadding;
|
|
51
|
+
const spaceAbove = rect.y - insets.top - offset - screenPadding;
|
|
52
|
+
let up = preferredUp;
|
|
53
|
+
if (!preferredUp) up = naturalHeight > spaceBelow && spaceAbove > spaceBelow;else up = !(naturalHeight > spaceAbove && spaceBelow > spaceAbove);
|
|
54
|
+
const chosen = up ? spaceAbove : spaceBelow;
|
|
55
|
+
if (naturalHeight > chosen && chosen > 0) maxHeight = chosen;
|
|
56
|
+
effAnchor = {
|
|
57
|
+
horizontal: anchorOrigin.horizontal,
|
|
58
|
+
vertical: up ? 'top' : 'bottom'
|
|
59
|
+
};
|
|
60
|
+
effMenu = {
|
|
61
|
+
horizontal: menuOrigin.horizontal,
|
|
62
|
+
vertical: up ? 'bottom' : 'top'
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Convert the trigger position into the Modal's (full-screen) coordinate space.
|
|
67
|
+
const anchorX = rect.x + H_FRAC[effAnchor.horizontal] * rect.width;
|
|
68
|
+
const anchorY = rect.y + statusBarHeight + V_FRAC[effAnchor.vertical] * rect.height;
|
|
69
|
+
const offsetY = effMenu.vertical === 'top' ? offset : effMenu.vertical === 'bottom' ? -offset : 0;
|
|
70
|
+
let left = anchorX - H_FRAC[effMenu.horizontal] * menuWidth;
|
|
71
|
+
let top = anchorY - V_FRAC[effMenu.vertical] * menuHeight + offsetY;
|
|
72
|
+
left = clamp(left, screenPadding + insets.left, screenWidth - insets.right - menuWidth - screenPadding);
|
|
73
|
+
top = clamp(top, statusBarHeight + screenPadding + insets.top, screenHeight + statusBarHeight - insets.bottom - menuHeight - screenPadding);
|
|
74
|
+
return {
|
|
75
|
+
top,
|
|
76
|
+
left,
|
|
77
|
+
maxHeight
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=placement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["V_FRAC","top","center","bottom","H_FRAC","left","right","clamp","value","min","max","Math","computeMenuPlacement","input","rect","menuWidth","menuHeight","naturalHeight","anchorOrigin","menuOrigin","offset","screenPadding","insets","screenWidth","screenHeight","statusBarHeight","autoFit","isDropConfig","vertical","preferredUp","effAnchor","effMenu","maxHeight","spaceBelow","y","height","spaceAbove","up","chosen","horizontal","anchorX","x","width","anchorY","offsetY"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/placement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { computeMenuPlacement } from "./placement.js";
|
|
4
|
+
const base = {
|
|
5
|
+
rect: {
|
|
6
|
+
x: 100,
|
|
7
|
+
y: 50,
|
|
8
|
+
width: 60,
|
|
9
|
+
height: 40
|
|
10
|
+
},
|
|
11
|
+
menuWidth: 200,
|
|
12
|
+
menuHeight: 150,
|
|
13
|
+
naturalHeight: 150,
|
|
14
|
+
anchorOrigin: {
|
|
15
|
+
vertical: 'bottom',
|
|
16
|
+
horizontal: 'left'
|
|
17
|
+
},
|
|
18
|
+
menuOrigin: {
|
|
19
|
+
vertical: 'top',
|
|
20
|
+
horizontal: 'left'
|
|
21
|
+
},
|
|
22
|
+
offset: 8,
|
|
23
|
+
screenPadding: 8,
|
|
24
|
+
insets: {
|
|
25
|
+
top: 0,
|
|
26
|
+
right: 0,
|
|
27
|
+
bottom: 0,
|
|
28
|
+
left: 0
|
|
29
|
+
},
|
|
30
|
+
screenWidth: 1000,
|
|
31
|
+
screenHeight: 800,
|
|
32
|
+
statusBarHeight: 0,
|
|
33
|
+
autoFit: true
|
|
34
|
+
};
|
|
35
|
+
describe('computeMenuPlacement', () => {
|
|
36
|
+
it('drops the menu below the trigger by the offset', () => {
|
|
37
|
+
const {
|
|
38
|
+
top,
|
|
39
|
+
left,
|
|
40
|
+
maxHeight
|
|
41
|
+
} = computeMenuPlacement(base);
|
|
42
|
+
// top = trigger bottom (90) + offset (8)
|
|
43
|
+
expect(top).toBe(98);
|
|
44
|
+
expect(left).toBe(100);
|
|
45
|
+
expect(maxHeight).toBeUndefined();
|
|
46
|
+
});
|
|
47
|
+
it('adds the status-bar height to the vertical position (the Android bug fix)', () => {
|
|
48
|
+
const withoutSb = computeMenuPlacement(base).top;
|
|
49
|
+
const withSb = computeMenuPlacement({
|
|
50
|
+
...base,
|
|
51
|
+
statusBarHeight: 24
|
|
52
|
+
}).top;
|
|
53
|
+
// The menu shifts DOWN by exactly the status bar height so it clears the trigger.
|
|
54
|
+
expect(withSb - withoutSb).toBe(24);
|
|
55
|
+
expect(withSb).toBe(122);
|
|
56
|
+
});
|
|
57
|
+
it('does not offset on iOS / web (statusBarHeight 0)', () => {
|
|
58
|
+
expect(computeMenuPlacement({
|
|
59
|
+
...base,
|
|
60
|
+
statusBarHeight: 0
|
|
61
|
+
}).top).toBe(98);
|
|
62
|
+
});
|
|
63
|
+
it('flips above the trigger when there is no room below', () => {
|
|
64
|
+
const nearBottom = {
|
|
65
|
+
...base,
|
|
66
|
+
rect: {
|
|
67
|
+
x: 100,
|
|
68
|
+
y: 700,
|
|
69
|
+
width: 60,
|
|
70
|
+
height: 40
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const {
|
|
74
|
+
top
|
|
75
|
+
} = computeMenuPlacement(nearBottom);
|
|
76
|
+
// Opens up: menu bottom sits at trigger top (700) − offset (8) − menuHeight (150).
|
|
77
|
+
expect(top).toBe(542);
|
|
78
|
+
});
|
|
79
|
+
it('caps the height to the available space when the content overflows', () => {
|
|
80
|
+
const nearBottomTall = {
|
|
81
|
+
...base,
|
|
82
|
+
rect: {
|
|
83
|
+
x: 100,
|
|
84
|
+
y: 700,
|
|
85
|
+
width: 60,
|
|
86
|
+
height: 40
|
|
87
|
+
},
|
|
88
|
+
naturalHeight: 900,
|
|
89
|
+
menuHeight: 684 // already capped on the second layout pass
|
|
90
|
+
};
|
|
91
|
+
const {
|
|
92
|
+
maxHeight,
|
|
93
|
+
top
|
|
94
|
+
} = computeMenuPlacement(nearBottomTall);
|
|
95
|
+
// spaceAbove = 700 − 8 − 8 = 684
|
|
96
|
+
expect(maxHeight).toBe(684);
|
|
97
|
+
expect(top).toBe(8);
|
|
98
|
+
});
|
|
99
|
+
it('right-aligns the menu to the trigger', () => {
|
|
100
|
+
const {
|
|
101
|
+
left
|
|
102
|
+
} = computeMenuPlacement({
|
|
103
|
+
...base,
|
|
104
|
+
rect: {
|
|
105
|
+
x: 800,
|
|
106
|
+
y: 50,
|
|
107
|
+
width: 60,
|
|
108
|
+
height: 40
|
|
109
|
+
},
|
|
110
|
+
anchorOrigin: {
|
|
111
|
+
vertical: 'bottom',
|
|
112
|
+
horizontal: 'right'
|
|
113
|
+
},
|
|
114
|
+
menuOrigin: {
|
|
115
|
+
vertical: 'top',
|
|
116
|
+
horizontal: 'right'
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// menu right edge aligns with trigger right edge (860): left = 860 − 200
|
|
120
|
+
expect(left).toBe(660);
|
|
121
|
+
});
|
|
122
|
+
it('clamps to the right screen edge', () => {
|
|
123
|
+
const {
|
|
124
|
+
left
|
|
125
|
+
} = computeMenuPlacement({
|
|
126
|
+
...base,
|
|
127
|
+
rect: {
|
|
128
|
+
x: 950,
|
|
129
|
+
y: 50,
|
|
130
|
+
width: 60,
|
|
131
|
+
height: 40
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
// 1000 − 200 − 8 padding = 792
|
|
135
|
+
expect(left).toBe(792);
|
|
136
|
+
});
|
|
137
|
+
it('clamps the top below the status bar', () => {
|
|
138
|
+
const {
|
|
139
|
+
top
|
|
140
|
+
} = computeMenuPlacement({
|
|
141
|
+
...base,
|
|
142
|
+
rect: {
|
|
143
|
+
x: 100,
|
|
144
|
+
y: 0,
|
|
145
|
+
width: 60,
|
|
146
|
+
height: 10
|
|
147
|
+
},
|
|
148
|
+
anchorOrigin: {
|
|
149
|
+
vertical: 'top',
|
|
150
|
+
horizontal: 'left'
|
|
151
|
+
},
|
|
152
|
+
menuOrigin: {
|
|
153
|
+
vertical: 'bottom',
|
|
154
|
+
horizontal: 'left'
|
|
155
|
+
},
|
|
156
|
+
statusBarHeight: 24,
|
|
157
|
+
autoFit: false
|
|
158
|
+
});
|
|
159
|
+
// Would be negative; clamped to statusBarHeight (24) + padding (8) = 32
|
|
160
|
+
expect(top).toBe(32);
|
|
161
|
+
});
|
|
162
|
+
it('respects safe-area insets in the space calc (flips earlier)', () => {
|
|
163
|
+
const withInset = {
|
|
164
|
+
...base,
|
|
165
|
+
rect: {
|
|
166
|
+
x: 100,
|
|
167
|
+
y: 620,
|
|
168
|
+
width: 60,
|
|
169
|
+
height: 40
|
|
170
|
+
},
|
|
171
|
+
naturalHeight: 150,
|
|
172
|
+
insets: {
|
|
173
|
+
top: 0,
|
|
174
|
+
right: 0,
|
|
175
|
+
bottom: 120,
|
|
176
|
+
left: 0
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
// spaceBelow = 800 − 120 − 660 − 8 − 8 = 4 → not enough → flips up
|
|
180
|
+
const {
|
|
181
|
+
top
|
|
182
|
+
} = computeMenuPlacement(withInset);
|
|
183
|
+
expect(top).toBe(620 - 150 - 8); // opens up above the trigger
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
//# sourceMappingURL=placement.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["computeMenuPlacement","base","rect","x","y","width","height","menuWidth","menuHeight","naturalHeight","anchorOrigin","vertical","horizontal","menuOrigin","offset","screenPadding","insets","top","right","bottom","left","screenWidth","screenHeight","statusBarHeight","autoFit","describe","it","maxHeight","expect","toBe","toBeUndefined","withoutSb","withSb","nearBottom","nearBottomTall","withInset"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/placement.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -76,6 +76,7 @@ export function Select({
|
|
|
76
76
|
offset = 8,
|
|
77
77
|
autoFit = true,
|
|
78
78
|
insets,
|
|
79
|
+
statusBarHeight,
|
|
79
80
|
closeOnSelect,
|
|
80
81
|
style
|
|
81
82
|
}) {
|
|
@@ -149,6 +150,7 @@ export function Select({
|
|
|
149
150
|
offset: offset,
|
|
150
151
|
autoFit: autoFit,
|
|
151
152
|
insets: insets,
|
|
153
|
+
statusBarHeight: statusBarHeight,
|
|
152
154
|
triggerStyle: {
|
|
153
155
|
alignSelf: 'stretch'
|
|
154
156
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","Pressable","View","useTheme","Dropdown","Icon","Menu","Text","jsx","_jsx","jsxs","_jsxs","FOCUS_RING_SPREAD","FOCUS_RING_ALPHA","hexToRgba","hex","alpha","h","replace","full","length","c","r","parseInt","slice","g","b","SIZES","md","height","gap","iconSize","textVariant","lg","Select","options","multiple","value","defaultValue","onChange","label","helperText","error","placeholder","leftIcon","size","width","fullWidth","disabled","renderValue","matchTriggerWidth","menuWidth","maxHeight","anchorOrigin","vertical","horizontal","menuOrigin","offset","autoFit","insets","closeOnSelect","style","theme","sizeConfig","isControlled","undefined","internal","setInternal","current","selectedKeys","commit","next","selectSingle","key","toggleMulti","set","Set","has","delete","add","selectedOptions","filter","o","includes","isEmpty","displayText","map","join","hasError","Boolean","message","rows","leading","icon","kind","name","trailing","checked","color","colors","feedback","success","shouldClose","iconBox","alignItems","justifyContent","containerWidth","alignSelf","children","variant","marginBottom","marginLeft","triggerStyle","renderTrigger","open","toggle","showRing","borderColor","border","focus","default","ringColor","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","onPress","accessibilityRole","accessibilityState","expanded","accessibilityLabel","flexDirection","paddingHorizontal","borderWidth","borderRadius","radii","pill","backgroundColor","background","foreground","numberOfLines","flex","minWidth","transform","rotate","close","triggerWidth","autoMaxHeight","onSelect","marginTop"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Select/Select.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SACEC,SAAS,EACTC,IAAI,QAIC,cAAc;AACrB,SAASC,QAAQ,QAAQ,sBAAa;AAEtC,SAASC,QAAQ,QAA4B,yBAAsB;AACnE,SAASC,IAAI,QAAQ,iBAAc;AAEnC,SAASC,IAAI,QAA0C,iBAAc;AACrE,SAASC,IAAI,QAAQ,iBAAc;;AAEnC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,gBAAgB,GAAG,IAAI;;AAE7B;AACA,SAASC,SAASA,CAACC,GAAW,EAAEC,KAAa,EAAU;EACrD,MAAMC,CAAC,GAAGF,GAAG,CAACG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;EAC9B,MAAMC,IAAI,GAAGF,CAAC,CAACG,MAAM,KAAK,CAAC,GAAGH,CAAC,CAACC,OAAO,CAAC,IAAI,EAAGG,CAAC,IAAKA,CAAC,GAAGA,CAAC,CAAC,GAAGJ,CAAC;EAC/D,MAAMK,CAAC,GAAGC,QAAQ,CAACJ,IAAI,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EACxC,MAAMC,CAAC,GAAGF,QAAQ,CAACJ,IAAI,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EACxC,MAAME,CAAC,GAAGH,QAAQ,CAACJ,IAAI,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EACxC,OAAO,QAAQF,CAAC,KAAKG,CAAC,KAAKC,CAAC,KAAKV,KAAK,GAAG;AAC3C;AAIA,MAAMW,KAGL,GAAG;EACFC,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,GAAG,EAAE,CAAC;IAAEC,QAAQ,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAa,CAAC;EACnEC,EAAE,EAAE;IAAEJ,MAAM,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAY;AACpE,CAAC;;AAED;;
|
|
1
|
+
{"version":3,"names":["useState","Pressable","View","useTheme","Dropdown","Icon","Menu","Text","jsx","_jsx","jsxs","_jsxs","FOCUS_RING_SPREAD","FOCUS_RING_ALPHA","hexToRgba","hex","alpha","h","replace","full","length","c","r","parseInt","slice","g","b","SIZES","md","height","gap","iconSize","textVariant","lg","Select","options","multiple","value","defaultValue","onChange","label","helperText","error","placeholder","leftIcon","size","width","fullWidth","disabled","renderValue","matchTriggerWidth","menuWidth","maxHeight","anchorOrigin","vertical","horizontal","menuOrigin","offset","autoFit","insets","statusBarHeight","closeOnSelect","style","theme","sizeConfig","isControlled","undefined","internal","setInternal","current","selectedKeys","commit","next","selectSingle","key","toggleMulti","set","Set","has","delete","add","selectedOptions","filter","o","includes","isEmpty","displayText","map","join","hasError","Boolean","message","rows","leading","icon","kind","name","trailing","checked","color","colors","feedback","success","shouldClose","iconBox","alignItems","justifyContent","containerWidth","alignSelf","children","variant","marginBottom","marginLeft","triggerStyle","renderTrigger","open","toggle","showRing","borderColor","border","focus","default","ringColor","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","onPress","accessibilityRole","accessibilityState","expanded","accessibilityLabel","flexDirection","paddingHorizontal","borderWidth","borderRadius","radii","pill","backgroundColor","background","foreground","numberOfLines","flex","minWidth","transform","rotate","close","triggerWidth","autoMaxHeight","onSelect","marginTop"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Select/Select.tsx"],"mappings":"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","ignoreList":[]}
|