@oxy.so/bloom 4.22.0 → 4.22.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/docs/bottom-sheet.mdx +4 -0
- package/docs/chip.mdx +1 -0
- package/lib/commonjs/bottom-sheet/BottomSheet.js +35 -43
- package/lib/commonjs/bottom-sheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/bottom-sheet/BottomSheetBase.js +1 -1
- package/lib/commonjs/chip/ChipRow.js +2 -0
- package/lib/commonjs/chip/ChipRow.js.map +1 -1
- package/lib/module/bottom-sheet/BottomSheet.js +36 -44
- package/lib/module/bottom-sheet/BottomSheet.js.map +1 -1
- package/lib/module/bottom-sheet/BottomSheetBase.js +1 -1
- package/lib/module/chip/ChipRow.js +2 -0
- package/lib/module/chip/ChipRow.js.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/types.d.ts +2 -1
- package/lib/typescript/commonjs/bottom-sheet/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/chip/ChipRow.d.ts +1 -1
- package/lib/typescript/commonjs/chip/ChipRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/chip/types.d.ts +9 -0
- package/lib/typescript/commonjs/chip/types.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/types.d.ts +2 -1
- package/lib/typescript/module/bottom-sheet/types.d.ts.map +1 -1
- package/lib/typescript/module/chip/ChipRow.d.ts +1 -1
- package/lib/typescript/module/chip/ChipRow.d.ts.map +1 -1
- package/lib/typescript/module/chip/types.d.ts +9 -0
- package/lib/typescript/module/chip/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bottom-sheet/BottomSheet.tsx +32 -36
- package/src/bottom-sheet/BottomSheetBase.tsx +1 -1
- package/src/bottom-sheet/types.ts +2 -1
- package/src/chip/ChipRow.tsx +2 -0
- package/src/chip/types.ts +9 -0
package/docs/bottom-sheet.mdx
CHANGED
|
@@ -31,6 +31,10 @@ function Example() {
|
|
|
31
31
|
}
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
+
## Keyboard
|
|
35
|
+
|
|
36
|
+
On native the sheet follows the keyboard through `react-native-keyboard-controller`, using the app's **one** `<KeyboardProvider>` at its root (`OxyProvider` mounts it for Oxy apps). The sheet mounts no provider of its own inside its `Modal`, and neither should anything else: every provider suspends its main-window callback while a `Modal` is up and resumes it from the dialog's dismiss listener, of which a dialog keeps only the last. With two providers, one stays suspended after the first sheet closes, and every `KeyboardAvoidingView` under it stops following the keyboard until the app restarts (Alia #608, Android 16). Without any root provider the sheet does not track the keyboard, like every other keyboard-controller consumer in that app.
|
|
37
|
+
|
|
34
38
|
## Ref methods
|
|
35
39
|
|
|
36
40
|
| Method | Description |
|
package/docs/chip.mdx
CHANGED
|
@@ -125,6 +125,7 @@ import { Chip, ChipRow } from '@oxy.so/bloom/chip';
|
|
|
125
125
|
| `contentInset` | side padding inside the scroller |
|
|
126
126
|
| `fadeColor` | the surface BEHIND the row — the row cannot know it. Default the page background; pass the card colour when the row sits on a card, or the fade blends into the wrong thing |
|
|
127
127
|
| `ringInset` | room kept for a pill's focus ring inside the scroller, taken back out with negative margins so the row still lines up. Default 4 |
|
|
128
|
+
| `keyboardShouldPersistTaps` | native: whether a tap on a pill while the keyboard is open reaches the pill. Default `handled` (React Native's own `never` spends the first tap dismissing the keyboard) |
|
|
128
129
|
| `role` / `accessibilityLabel` | the row's semantics, which belong to the caller |
|
|
129
130
|
|
|
130
131
|
The fade is web only (it is a CSS gradient); the row scrolls on both platforms.
|
|
@@ -23,45 +23,39 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
23
23
|
// the specifier shape that does NOT work.
|
|
24
24
|
const noopKeyboardHandler = (_handlers, _deps) => {};
|
|
25
25
|
let useKeyboardHandler = noopKeyboardHandler;
|
|
26
|
-
|
|
27
|
-
// react-native-keyboard-controller's <KeyboardProvider>. We re-establish it
|
|
28
|
-
// INSIDE the sheet's RN <Modal> (see the render below): a <Modal> mounts into
|
|
29
|
-
// its OWN native root, and neither the app-root GestureHandlerRootView nor the
|
|
30
|
-
// app-root KeyboardProvider's native KeyboardControllerView extend across that
|
|
31
|
-
// boundary. Without a provider inside the Modal, keyboard-controller consumers
|
|
32
|
-
// (this sheet's keyboard tracker, plus any TextInputs in `children`) read the
|
|
33
|
-
// default empty KeyboardContext — logging "Couldn't find real values for
|
|
34
|
-
// KeyboardContext ..." — and receive no keyboard insets. When the optional
|
|
35
|
-
// module is absent, or on web (no RN Modal native-window boundary, keyboard is
|
|
36
|
-
// the browser's concern), this resolves to a passthrough that just renders its
|
|
37
|
-
// children, so no provider is introduced where one isn't needed.
|
|
38
|
-
const PassthroughKeyboardProvider = ({
|
|
39
|
-
children
|
|
40
|
-
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
41
|
-
children: children
|
|
42
|
-
});
|
|
43
|
-
let KeyboardProvider = PassthroughKeyboardProvider;
|
|
44
26
|
if (_reactNative.Platform.OS !== 'web' && typeof require !== 'undefined') {
|
|
45
27
|
try {
|
|
46
28
|
const keyboardController = require('react-native-keyboard-controller');
|
|
47
29
|
useKeyboardHandler = keyboardController.useKeyboardHandler ?? noopKeyboardHandler;
|
|
48
|
-
KeyboardProvider = keyboardController.KeyboardProvider ?? PassthroughKeyboardProvider;
|
|
49
30
|
} catch {
|
|
50
|
-
// react-native-keyboard-controller not available — keep the no-op
|
|
51
|
-
// handler and passthrough provider.
|
|
31
|
+
// react-native-keyboard-controller not available — keep the no-op handler.
|
|
52
32
|
}
|
|
53
33
|
}
|
|
54
34
|
|
|
55
35
|
/**
|
|
56
|
-
* Registers the sheet's keyboard-height tracker
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
36
|
+
* Registers the sheet's keyboard-height tracker, writing the live keyboard
|
|
37
|
+
* height into the shared value that drives the sheet's translate/height styles.
|
|
38
|
+
* Renders nothing.
|
|
39
|
+
*
|
|
40
|
+
* It reads the APP's one `<KeyboardProvider>`, and the sheet deliberately does
|
|
41
|
+
* not mount a second one inside its `<Modal>`:
|
|
42
|
+
*
|
|
43
|
+
* - React context crosses a `<Modal>` like any other element, so this hook
|
|
44
|
+
* finds the app-root provider from inside the sheet.
|
|
45
|
+
* - The native events cross too: when a `<Modal>` shows, the root provider's
|
|
46
|
+
* `ModalAttachedWatcher` (keyboard-controller ≥ 1.13, Android) attaches a
|
|
47
|
+
* keyboard callback to the dialog's window and propagates it to the ROOT
|
|
48
|
+
* provider's view, which is where this handler is registered.
|
|
49
|
+
* - A second provider breaks the app until it restarts. Every provider's
|
|
50
|
+
* watcher answers the same `topShow`: each SUSPENDS its own main-window
|
|
51
|
+
* callback and then calls `dialog.setOnDismissListener` to un-suspend it —
|
|
52
|
+
* and a dialog keeps only the LAST listener. So on dismiss one provider
|
|
53
|
+
* resumes and the others stay suspended for good: after the first sheet, the
|
|
54
|
+
* app's `KeyboardAvoidingView`s never saw the keyboard again (Alia #608,
|
|
55
|
+
* Android 16, keyboard-controller 1.21.9 and unchanged in 1.22.5).
|
|
56
|
+
*
|
|
57
|
+
* No app-root provider means keyboard-controller works nowhere in that app; the
|
|
58
|
+
* hook then no-ops (and warns in development) like every other consumer.
|
|
65
59
|
*/
|
|
66
60
|
function SheetKeyboardSync({
|
|
67
61
|
keyboardHeight
|
|
@@ -82,10 +76,10 @@ function SheetKeyboardSync({
|
|
|
82
76
|
}
|
|
83
77
|
|
|
84
78
|
/**
|
|
85
|
-
* Native shell: RN's `<Modal>` (its own native root window) + the
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
79
|
+
* Native shell: RN's `<Modal>` (its own native root window) + the sheet's
|
|
80
|
+
* keyboard tracker + a `<GestureHandlerRootView>` (the app-root GHRV does not
|
|
81
|
+
* cross the Modal's native-window boundary, so pan gestures need their own root
|
|
82
|
+
* here). No `<KeyboardProvider>`: see `SheetKeyboardSync`.
|
|
89
83
|
*/
|
|
90
84
|
function NativeShell({
|
|
91
85
|
visible,
|
|
@@ -99,15 +93,13 @@ function NativeShell({
|
|
|
99
93
|
animationType: "none",
|
|
100
94
|
statusBarTranslucent: true,
|
|
101
95
|
onRequestClose: onRequestClose,
|
|
102
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
103
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
})]
|
|
110
|
-
})
|
|
96
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blurTarget.GlassBlurWindow, {
|
|
97
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SheetKeyboardSync, {
|
|
98
|
+
keyboardHeight: keyboardHeight
|
|
99
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
|
|
100
|
+
style: styles.rootView,
|
|
101
|
+
children: children
|
|
102
|
+
})]
|
|
111
103
|
})
|
|
112
104
|
});
|
|
113
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_blurTarget","_reactNativeGestureHandler","_BottomSheetBase","_jsxRuntime","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_blurTarget","_reactNativeGestureHandler","_BottomSheetBase","_jsxRuntime","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","Platform","OS","keyboardController","SheetKeyboardSync","keyboardHeight","onMove","e","value","height","onEnd","NativeShell","visible","onRequestClose","children","jsx","Modal","transparent","animationType","statusBarTranslucent","jsxs","GlassBlurWindow","GestureHandlerRootView","style","styles","rootView","BottomSheet","exports","forwardRef","props","ref","BottomSheetBase","Shell","displayName","StyleSheet","create","flex","_default","default"],"sourceRoot":"../../../src","sources":["bottom-sheet/BottomSheet.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAEA,IAAAI,gBAAA,GAAAJ,OAAA;AAAoD,IAAAK,WAAA,GAAAL,OAAA;AAGpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,mBAAmB,GAAGA,CAACC,SAA0D,EAAEC,KAAgB,KAAK,CAAC,CAAC;AAChH,IAAIC,kBAAwG,GAAGH,mBAAmB;AAElI,IAAII,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOX,OAAO,KAAK,WAAW,EAAE;EACzD,IAAI;IACA,MAAMY,kBAAkB,GAAGZ,OAAO,CAAC,kCAAkC,CAAC;IACtES,kBAAkB,GAAGG,kBAAkB,CAACH,kBAAkB,IAAIH,mBAAmB;EACrF,CAAC,CAAC,MAAM;IACJ;EAAA;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,iBAAiBA,CAAC;EAAEC;AAAwD,CAAC,EAAE;EACpFL,kBAAkB,CAAC;IACfM,MAAM,EAAGC,CAAC,IAAK;MACX,SAAS;;MACTF,cAAc,CAACG,KAAK,GAAGD,CAAC,CAACE,MAAM;IACnC,CAAC;IACDC,KAAK,EAAGH,CAAC,IAAK;MACV,SAAS;;MACTF,cAAc,CAACG,KAAK,GAAGD,CAAC,CAACE,MAAM;IACnC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,WAAWA,CAAC;EAAEC,OAAO;EAAEC,cAAc;EAAER,cAAc;EAAES;AAAgC,CAAC,EAAE;EAC/F,oBACI,IAAAlB,WAAA,CAAAmB,GAAA,EAACvB,YAAA,CAAAwB,KAAK;IAACJ,OAAO,EAAEA,OAAQ;IAACK,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACN,cAAc,EAAEA,cAAe;IAAAC,QAAA,eAS1G,IAAAlB,WAAA,CAAAwB,IAAA,EAAC3B,WAAA,CAAA4B,eAAe;MAAAP,QAAA,gBACZ,IAAAlB,WAAA,CAAAmB,GAAA,EAACX,iBAAiB;QAACC,cAAc,EAAEA;MAAe,CAAE,CAAC,eACrD,IAAAT,WAAA,CAAAmB,GAAA,EAACrB,0BAAA,CAAA4B,sBAAsB;QAACC,KAAK,EAAEC,MAAM,CAACC,QAAS;QAAAX,QAAA,EAAEA;MAAQ,CAAyB,CAAC;IAAA,CACtE;EAAC,CACf,CAAC;AAEhB;AAEA,MAAMY,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,iBAAU,EAAC,CAACC,KAAuB,EAAEC,GAAuC,kBAC5F,IAAAlC,WAAA,CAAAmB,GAAA,EAACpB,gBAAA,CAAAoC,eAAe;EAAA,GAAKF,KAAK;EAAEC,GAAG,EAAEA,GAAI;EAACE,KAAK,EAAErB;AAAY,CAAE,CAC9D,CAAC;AAEFe,WAAW,CAACO,WAAW,GAAG,aAAa;AAEvC,MAAMT,MAAM,GAAGU,uBAAU,CAACC,MAAM,CAAC;EAC7BV,QAAQ,EAAE;IACNW,IAAI,EAAE;EACV;AACJ,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAV,OAAA,CAAAW,OAAA,GAEYZ,WAAW","ignoreList":[]}
|
|
@@ -571,7 +571,7 @@ const BottomSheetBase = exports.BottomSheetBase = /*#__PURE__*/(0, _react.forwar
|
|
|
571
571
|
}, [colors.background, theme.isDark, detached]);
|
|
572
572
|
|
|
573
573
|
// Publish the sheet's keyboard shared value to the shell so the native
|
|
574
|
-
// shell can drive it
|
|
574
|
+
// shell's keyboard tracker can drive it. Kept stable
|
|
575
575
|
// (shared values are stable refs) so the shell never re-mounts for this.
|
|
576
576
|
if (!rendered) return null;
|
|
577
577
|
|
|
@@ -59,6 +59,7 @@ function ChipRowComponent({
|
|
|
59
59
|
role = 'group',
|
|
60
60
|
accessibilityLabel,
|
|
61
61
|
disabled,
|
|
62
|
+
keyboardShouldPersistTaps = 'handled',
|
|
62
63
|
style,
|
|
63
64
|
contentContainerStyle,
|
|
64
65
|
testID
|
|
@@ -148,6 +149,7 @@ function ChipRowComponent({
|
|
|
148
149
|
} : {}),
|
|
149
150
|
horizontal: true,
|
|
150
151
|
showsHorizontalScrollIndicator: false,
|
|
152
|
+
keyboardShouldPersistTaps: keyboardShouldPersistTaps,
|
|
151
153
|
scrollEventThrottle: 16,
|
|
152
154
|
onScroll: onScroll,
|
|
153
155
|
onLayout: onLayout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_adoptStyleSheet","_useTheme","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IS_WEB","Platform","OS","CHIP_ROW_EDGE","exports","STYLE_ID","TRACK","BLOOM_CHIP_ROW_CSS","ChipRowComponent","children","gap","contentInset","fadeColor","ringInset","role","accessibilityLabel","disabled","style","contentContainerStyle","testID","theme","useTheme","React","useEffect","adoptStyleSheet","scroll","setScroll","useState","x","viewport","content","overflow","useMemo","chipRowOverflow","fade","colors","background","onScroll","useCallback","event","contentOffset","layoutMeasurement","contentSize","nativeEvent","width","onLayout","layout","previous","onContentSizeChange","edgeStyle","side","position","top","bottom","left","right","backgroundImage","jsxs","View","undefined","minWidth","jsx","ScrollView","dataSet","bloomChipRowTrack","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","flexGrow","marginTop","marginBottom","marginLeft","marginRight","flexDirection","alignItems","paddingTop","paddingBottom","paddingLeft","paddingRight","pointerEvents","next","ChipRow","memo","displayName"],"sourceRoot":"../../../src","sources":["chip/ChipRow.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAA+D,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAG/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMkB,MAAM,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK;;AAEpC;AACO,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,EAAE;AAE/B,MAAME,QAAQ,GAAG,wBAAwB;AACzC,MAAMC,KAAK,GAAG,6BAA6B;AAE3C,MAAMC,kBAAkB,GAAG;AAC3B,EAAED,KAAK;AACP;AACA;AACA;AACA,EAAEA,KAAK;AACP;AACA;AACA,CAAC;AAED,SAASE,gBAAgBA,CAAC;EACxBC,QAAQ;EACRC,GAAG,GAAG,CAAC;EACPC,YAAY,GAAG,CAAC;EAChBC,SAAS;EACTC,SAAS,GAAG,CAAC;EACbC,IAAI,GAAG,OAAO;EACdC,kBAAkB;EAClBC,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC;AACY,CAAC,EAAE;EACf,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxBC,cAAK,CAACC,SAAS,CAAC,MAAM;IACpB,IAAAC,gCAAe,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_adoptStyleSheet","_useTheme","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IS_WEB","Platform","OS","CHIP_ROW_EDGE","exports","STYLE_ID","TRACK","BLOOM_CHIP_ROW_CSS","ChipRowComponent","children","gap","contentInset","fadeColor","ringInset","role","accessibilityLabel","disabled","keyboardShouldPersistTaps","style","contentContainerStyle","testID","theme","useTheme","React","useEffect","adoptStyleSheet","scroll","setScroll","useState","x","viewport","content","overflow","useMemo","chipRowOverflow","fade","colors","background","onScroll","useCallback","event","contentOffset","layoutMeasurement","contentSize","nativeEvent","width","onLayout","layout","previous","onContentSizeChange","edgeStyle","side","position","top","bottom","left","right","backgroundImage","jsxs","View","undefined","minWidth","jsx","ScrollView","dataSet","bloomChipRowTrack","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","flexGrow","marginTop","marginBottom","marginLeft","marginRight","flexDirection","alignItems","paddingTop","paddingBottom","paddingLeft","paddingRight","pointerEvents","next","ChipRow","memo","displayName"],"sourceRoot":"../../../src","sources":["chip/ChipRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { Modal, Platform, StyleSheet } from 'react-native';
|
|
|
5
5
|
import { GlassBlurWindow } from "../glass/blur-target.js";
|
|
6
6
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
7
7
|
import { BottomSheetBase } from "./BottomSheetBase.js";
|
|
8
|
-
import {
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
// Keyboard handling — only on native platforms. On web, keyboard events are
|
|
10
10
|
// handled by the browser (and the web build resolves to `index.web.tsx`, which
|
|
11
11
|
// never imports this module). `react-native-keyboard-controller` is an OPTIONAL
|
|
@@ -19,45 +19,39 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
19
19
|
// the specifier shape that does NOT work.
|
|
20
20
|
const noopKeyboardHandler = (_handlers, _deps) => {};
|
|
21
21
|
let useKeyboardHandler = noopKeyboardHandler;
|
|
22
|
-
|
|
23
|
-
// react-native-keyboard-controller's <KeyboardProvider>. We re-establish it
|
|
24
|
-
// INSIDE the sheet's RN <Modal> (see the render below): a <Modal> mounts into
|
|
25
|
-
// its OWN native root, and neither the app-root GestureHandlerRootView nor the
|
|
26
|
-
// app-root KeyboardProvider's native KeyboardControllerView extend across that
|
|
27
|
-
// boundary. Without a provider inside the Modal, keyboard-controller consumers
|
|
28
|
-
// (this sheet's keyboard tracker, plus any TextInputs in `children`) read the
|
|
29
|
-
// default empty KeyboardContext — logging "Couldn't find real values for
|
|
30
|
-
// KeyboardContext ..." — and receive no keyboard insets. When the optional
|
|
31
|
-
// module is absent, or on web (no RN Modal native-window boundary, keyboard is
|
|
32
|
-
// the browser's concern), this resolves to a passthrough that just renders its
|
|
33
|
-
// children, so no provider is introduced where one isn't needed.
|
|
34
|
-
const PassthroughKeyboardProvider = ({
|
|
35
|
-
children
|
|
36
|
-
}) => /*#__PURE__*/_jsx(_Fragment, {
|
|
37
|
-
children: children
|
|
38
|
-
});
|
|
39
|
-
let KeyboardProvider = PassthroughKeyboardProvider;
|
|
40
22
|
if (Platform.OS !== 'web' && typeof require !== 'undefined') {
|
|
41
23
|
try {
|
|
42
24
|
const keyboardController = require('react-native-keyboard-controller');
|
|
43
25
|
useKeyboardHandler = keyboardController.useKeyboardHandler ?? noopKeyboardHandler;
|
|
44
|
-
KeyboardProvider = keyboardController.KeyboardProvider ?? PassthroughKeyboardProvider;
|
|
45
26
|
} catch {
|
|
46
|
-
// react-native-keyboard-controller not available — keep the no-op
|
|
47
|
-
// handler and passthrough provider.
|
|
27
|
+
// react-native-keyboard-controller not available — keep the no-op handler.
|
|
48
28
|
}
|
|
49
29
|
}
|
|
50
30
|
|
|
51
31
|
/**
|
|
52
|
-
* Registers the sheet's keyboard-height tracker
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
32
|
+
* Registers the sheet's keyboard-height tracker, writing the live keyboard
|
|
33
|
+
* height into the shared value that drives the sheet's translate/height styles.
|
|
34
|
+
* Renders nothing.
|
|
35
|
+
*
|
|
36
|
+
* It reads the APP's one `<KeyboardProvider>`, and the sheet deliberately does
|
|
37
|
+
* not mount a second one inside its `<Modal>`:
|
|
38
|
+
*
|
|
39
|
+
* - React context crosses a `<Modal>` like any other element, so this hook
|
|
40
|
+
* finds the app-root provider from inside the sheet.
|
|
41
|
+
* - The native events cross too: when a `<Modal>` shows, the root provider's
|
|
42
|
+
* `ModalAttachedWatcher` (keyboard-controller ≥ 1.13, Android) attaches a
|
|
43
|
+
* keyboard callback to the dialog's window and propagates it to the ROOT
|
|
44
|
+
* provider's view, which is where this handler is registered.
|
|
45
|
+
* - A second provider breaks the app until it restarts. Every provider's
|
|
46
|
+
* watcher answers the same `topShow`: each SUSPENDS its own main-window
|
|
47
|
+
* callback and then calls `dialog.setOnDismissListener` to un-suspend it —
|
|
48
|
+
* and a dialog keeps only the LAST listener. So on dismiss one provider
|
|
49
|
+
* resumes and the others stay suspended for good: after the first sheet, the
|
|
50
|
+
* app's `KeyboardAvoidingView`s never saw the keyboard again (Alia #608,
|
|
51
|
+
* Android 16, keyboard-controller 1.21.9 and unchanged in 1.22.5).
|
|
52
|
+
*
|
|
53
|
+
* No app-root provider means keyboard-controller works nowhere in that app; the
|
|
54
|
+
* hook then no-ops (and warns in development) like every other consumer.
|
|
61
55
|
*/
|
|
62
56
|
function SheetKeyboardSync({
|
|
63
57
|
keyboardHeight
|
|
@@ -78,10 +72,10 @@ function SheetKeyboardSync({
|
|
|
78
72
|
}
|
|
79
73
|
|
|
80
74
|
/**
|
|
81
|
-
* Native shell: RN's `<Modal>` (its own native root window) + the
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
75
|
+
* Native shell: RN's `<Modal>` (its own native root window) + the sheet's
|
|
76
|
+
* keyboard tracker + a `<GestureHandlerRootView>` (the app-root GHRV does not
|
|
77
|
+
* cross the Modal's native-window boundary, so pan gestures need their own root
|
|
78
|
+
* here). No `<KeyboardProvider>`: see `SheetKeyboardSync`.
|
|
85
79
|
*/
|
|
86
80
|
function NativeShell({
|
|
87
81
|
visible,
|
|
@@ -95,15 +89,13 @@ function NativeShell({
|
|
|
95
89
|
animationType: "none",
|
|
96
90
|
statusBarTranslucent: true,
|
|
97
91
|
onRequestClose: onRequestClose,
|
|
98
|
-
children: /*#__PURE__*/
|
|
99
|
-
children: /*#__PURE__*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
})]
|
|
106
|
-
})
|
|
92
|
+
children: /*#__PURE__*/_jsxs(GlassBlurWindow, {
|
|
93
|
+
children: [/*#__PURE__*/_jsx(SheetKeyboardSync, {
|
|
94
|
+
keyboardHeight: keyboardHeight
|
|
95
|
+
}), /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
96
|
+
style: styles.rootView,
|
|
97
|
+
children: children
|
|
98
|
+
})]
|
|
107
99
|
})
|
|
108
100
|
});
|
|
109
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","Modal","Platform","StyleSheet","GlassBlurWindow","GestureHandlerRootView","BottomSheetBase","
|
|
1
|
+
{"version":3,"names":["forwardRef","Modal","Platform","StyleSheet","GlassBlurWindow","GestureHandlerRootView","BottomSheetBase","jsx","_jsx","jsxs","_jsxs","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","OS","require","keyboardController","SheetKeyboardSync","keyboardHeight","onMove","e","value","height","onEnd","NativeShell","visible","onRequestClose","children","transparent","animationType","statusBarTranslucent","style","styles","rootView","BottomSheet","props","ref","Shell","displayName","create","flex"],"sourceRoot":"../../../src","sources":["bottom-sheet/BottomSheet.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,KAAK,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AAE1D,SAASC,eAAe,QAAQ,yBAAsB;AACtD,SAASC,sBAAsB,QAAQ,8BAA8B;AAErE,SAASC,eAAe,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAGA,CAACC,SAA0D,EAAEC,KAAgB,KAAK,CAAC,CAAC;AAChH,IAAIC,kBAAwG,GAAGH,mBAAmB;AAElI,IAAIT,QAAQ,CAACa,EAAE,KAAK,KAAK,IAAI,OAAOC,OAAO,KAAK,WAAW,EAAE;EACzD,IAAI;IACA,MAAMC,kBAAkB,GAAGD,OAAO,CAAC,kCAAkC,CAAC;IACtEF,kBAAkB,GAAGG,kBAAkB,CAACH,kBAAkB,IAAIH,mBAAmB;EACrF,CAAC,CAAC,MAAM;IACJ;EAAA;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,iBAAiBA,CAAC;EAAEC;AAAwD,CAAC,EAAE;EACpFL,kBAAkB,CAAC;IACfM,MAAM,EAAGC,CAAC,IAAK;MACX,SAAS;;MACTF,cAAc,CAACG,KAAK,GAAGD,CAAC,CAACE,MAAM;IACnC,CAAC;IACDC,KAAK,EAAGH,CAAC,IAAK;MACV,SAAS;;MACTF,cAAc,CAACG,KAAK,GAAGD,CAAC,CAACE,MAAM;IACnC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,WAAWA,CAAC;EAAEC,OAAO;EAAEC,cAAc;EAAER,cAAc;EAAES;AAAgC,CAAC,EAAE;EAC/F,oBACIpB,IAAA,CAACP,KAAK;IAACyB,OAAO,EAAEA,OAAQ;IAACG,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACJ,cAAc,EAAEA,cAAe;IAAAC,QAAA,eAS1GlB,KAAA,CAACN,eAAe;MAAAwB,QAAA,gBACZpB,IAAA,CAACU,iBAAiB;QAACC,cAAc,EAAEA;MAAe,CAAE,CAAC,eACrDX,IAAA,CAACH,sBAAsB;QAAC2B,KAAK,EAAEC,MAAM,CAACC,QAAS;QAAAN,QAAA,EAAEA;MAAQ,CAAyB,CAAC;IAAA,CACtE;EAAC,CACf,CAAC;AAEhB;AAEA,MAAMO,WAAW,gBAAGnC,UAAU,CAAC,CAACoC,KAAuB,EAAEC,GAAuC,kBAC5F7B,IAAA,CAACF,eAAe;EAAA,GAAK8B,KAAK;EAAEC,GAAG,EAAEA,GAAI;EAACC,KAAK,EAAEb;AAAY,CAAE,CAC9D,CAAC;AAEFU,WAAW,CAACI,WAAW,GAAG,aAAa;AAEvC,MAAMN,MAAM,GAAG9B,UAAU,CAACqC,MAAM,CAAC;EAC7BN,QAAQ,EAAE;IACNO,IAAI,EAAE;EACV;AACJ,CAAC,CAAC;AAEF,eAAeN,WAAW;AAI1B,SAASA,WAAW","ignoreList":[]}
|
|
@@ -566,7 +566,7 @@ export const BottomSheetBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
566
566
|
}, [colors.background, theme.isDark, detached]);
|
|
567
567
|
|
|
568
568
|
// Publish the sheet's keyboard shared value to the shell so the native
|
|
569
|
-
// shell can drive it
|
|
569
|
+
// shell's keyboard tracker can drive it. Kept stable
|
|
570
570
|
// (shared values are stable refs) so the shell never re-mounts for this.
|
|
571
571
|
if (!rendered) return null;
|
|
572
572
|
|
|
@@ -54,6 +54,7 @@ function ChipRowComponent({
|
|
|
54
54
|
role = 'group',
|
|
55
55
|
accessibilityLabel,
|
|
56
56
|
disabled,
|
|
57
|
+
keyboardShouldPersistTaps = 'handled',
|
|
57
58
|
style,
|
|
58
59
|
contentContainerStyle,
|
|
59
60
|
testID
|
|
@@ -143,6 +144,7 @@ function ChipRowComponent({
|
|
|
143
144
|
} : {}),
|
|
144
145
|
horizontal: true,
|
|
145
146
|
showsHorizontalScrollIndicator: false,
|
|
147
|
+
keyboardShouldPersistTaps: keyboardShouldPersistTaps,
|
|
146
148
|
scrollEventThrottle: 16,
|
|
147
149
|
onScroll: onScroll,
|
|
148
150
|
onLayout: onLayout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useMemo","useState","Platform","ScrollView","View","adoptStyleSheet","useTheme","chipRowOverflow","jsx","_jsx","jsxs","_jsxs","IS_WEB","OS","CHIP_ROW_EDGE","STYLE_ID","TRACK","BLOOM_CHIP_ROW_CSS","ChipRowComponent","children","gap","contentInset","fadeColor","ringInset","role","accessibilityLabel","disabled","style","contentContainerStyle","testID","theme","useEffect","scroll","setScroll","x","viewport","content","overflow","fade","colors","background","onScroll","event","contentOffset","layoutMeasurement","contentSize","nativeEvent","width","onLayout","layout","previous","onContentSizeChange","edgeStyle","side","position","top","bottom","left","right","backgroundImage","undefined","minWidth","dataSet","bloomChipRowTrack","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","flexGrow","marginTop","marginBottom","marginLeft","marginRight","flexDirection","alignItems","paddingTop","paddingBottom","paddingLeft","paddingRight","pointerEvents","next","ChipRow","displayName"],"sourceRoot":"../../../src","sources":["chip/ChipRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACnE,SACEC,QAAQ,EACRC,UAAU,EACVC,IAAI,QAIC,cAAc;AAErB,SAASC,eAAe,QAAQ,gCAA6B;AAE7D,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,eAAe,QAA4B,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,MAAM,GAAGV,QAAQ,CAACW,EAAE,KAAK,KAAK;;AAEpC;AACA,OAAO,MAAMC,aAAa,GAAG,EAAE;AAE/B,MAAMC,QAAQ,GAAG,wBAAwB;AACzC,MAAMC,KAAK,GAAG,6BAA6B;AAE3C,MAAMC,kBAAkB,GAAG;AAC3B,EAAED,KAAK;AACP;AACA;AACA;AACA,EAAEA,KAAK;AACP;AACA;AACA,CAAC;AAED,SAASE,gBAAgBA,CAAC;EACxBC,QAAQ;EACRC,GAAG,GAAG,CAAC;EACPC,YAAY,GAAG,CAAC;EAChBC,SAAS;EACTC,SAAS,GAAG,CAAC;EACbC,IAAI,GAAG,OAAO;EACdC,kBAAkB;EAClBC,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC;AACY,CAAC,EAAE;EACf,MAAMC,KAAK,
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useMemo","useState","Platform","ScrollView","View","adoptStyleSheet","useTheme","chipRowOverflow","jsx","_jsx","jsxs","_jsxs","IS_WEB","OS","CHIP_ROW_EDGE","STYLE_ID","TRACK","BLOOM_CHIP_ROW_CSS","ChipRowComponent","children","gap","contentInset","fadeColor","ringInset","role","accessibilityLabel","disabled","keyboardShouldPersistTaps","style","contentContainerStyle","testID","theme","useEffect","scroll","setScroll","x","viewport","content","overflow","fade","colors","background","onScroll","event","contentOffset","layoutMeasurement","contentSize","nativeEvent","width","onLayout","layout","previous","onContentSizeChange","edgeStyle","side","position","top","bottom","left","right","backgroundImage","undefined","minWidth","dataSet","bloomChipRowTrack","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","flexGrow","marginTop","marginBottom","marginLeft","marginRight","flexDirection","alignItems","paddingTop","paddingBottom","paddingLeft","paddingRight","pointerEvents","next","ChipRow","displayName"],"sourceRoot":"../../../src","sources":["chip/ChipRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAyFvF,QAAA,MAAM,WAAW,yFAEf,CAAC;AAUH,eAAe,WAAW,CAAC;AAE3B,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -129,7 +129,8 @@ export interface BottomSheetProps {
|
|
|
129
129
|
/**
|
|
130
130
|
* Props consumed by a platform Shell — the outermost wrapper that hosts the
|
|
131
131
|
* sheet body in a full-screen overlay. Native wraps it in RN's `<Modal>` +
|
|
132
|
-
* `<
|
|
132
|
+
* `<GestureHandlerRootView>` (keyboard tracking reads the app's own root
|
|
133
|
+
* `<KeyboardProvider>`, never a second one); web wraps it in bloom's
|
|
133
134
|
* stable DOM `<Portal>` + a fixed `<GestureHandlerRootView>`. Splitting the
|
|
134
135
|
* shell is what lets web avoid RN-Web's `<Modal>`/`ModalPortal`, whose host
|
|
135
136
|
* node is orphaned under React 19 concurrent/StrictMode so the sheet mounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACtG,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACtG,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACrD"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import type { ChipRowProps } from './types';
|
|
3
3
|
/** Width of each edge's fade. */
|
|
4
4
|
export declare const CHIP_ROW_EDGE = 40;
|
|
5
|
-
declare function ChipRowComponent({ children, gap, contentInset, fadeColor, ringInset, role, accessibilityLabel, disabled, style, contentContainerStyle, testID, }: ChipRowProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function ChipRowComponent({ children, gap, contentInset, fadeColor, ringInset, role, accessibilityLabel, disabled, keyboardShouldPersistTaps, style, contentContainerStyle, testID, }: ChipRowProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare const ChipRow: React.MemoExoticComponent<typeof ChipRowComponent>;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=ChipRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipRow.d.ts","sourceRoot":"","sources":["../../../../src/chip/ChipRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4B5C,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAehC,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,GAAO,EACP,YAAgB,EAChB,SAAS,EACT,SAAa,EACb,IAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,qBAAqB,EACrB,MAAM,GACP,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ChipRow.d.ts","sourceRoot":"","sources":["../../../../src/chip/ChipRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4B5C,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAehC,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,GAAO,EACP,YAAgB,EAChB,SAAS,EACT,SAAa,EACb,IAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,yBAAqC,EACrC,KAAK,EACL,qBAAqB,EACrB,MAAM,GACP,EAAE,YAAY,2CAkGd;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
|
|
@@ -127,6 +127,15 @@ export interface ChipRowProps {
|
|
|
127
127
|
accessibilityLabel?: string;
|
|
128
128
|
/** Marks the whole row disabled to assistive technology (web `aria-disabled`). */
|
|
129
129
|
disabled?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Whether a tap on a pill while the software keyboard is open reaches the
|
|
132
|
+
* pill. Default `handled`: the pill takes the press and the keyboard stays.
|
|
133
|
+
* React Native's own default (`never`) spends the first tap dismissing the
|
|
134
|
+
* keyboard, so a row of pills under a text field — a composer's audience and
|
|
135
|
+
* language pills, a search screen's filters — needed two taps, and the first
|
|
136
|
+
* one dropped the keyboard the reader was typing with. Native only.
|
|
137
|
+
*/
|
|
138
|
+
keyboardShouldPersistTaps?: 'always' | 'never' | 'handled';
|
|
130
139
|
style?: StyleProp<ViewStyle>;
|
|
131
140
|
contentContainerStyle?: StyleProp<ViewStyle>;
|
|
132
141
|
testID?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chip/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chip/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAyFvF,QAAA,MAAM,WAAW,yFAEf,CAAC;AAUH,eAAe,WAAW,CAAC;AAE3B,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -129,7 +129,8 @@ export interface BottomSheetProps {
|
|
|
129
129
|
/**
|
|
130
130
|
* Props consumed by a platform Shell — the outermost wrapper that hosts the
|
|
131
131
|
* sheet body in a full-screen overlay. Native wraps it in RN's `<Modal>` +
|
|
132
|
-
* `<
|
|
132
|
+
* `<GestureHandlerRootView>` (keyboard tracking reads the app's own root
|
|
133
|
+
* `<KeyboardProvider>`, never a second one); web wraps it in bloom's
|
|
133
134
|
* stable DOM `<Portal>` + a fixed `<GestureHandlerRootView>`. Splitting the
|
|
134
135
|
* shell is what lets web avoid RN-Web's `<Modal>`/`ModalPortal`, whose host
|
|
135
136
|
* node is orphaned under React 19 concurrent/StrictMode so the sheet mounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACtG,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACtG,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACrD"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import type { ChipRowProps } from './types';
|
|
3
3
|
/** Width of each edge's fade. */
|
|
4
4
|
export declare const CHIP_ROW_EDGE = 40;
|
|
5
|
-
declare function ChipRowComponent({ children, gap, contentInset, fadeColor, ringInset, role, accessibilityLabel, disabled, style, contentContainerStyle, testID, }: ChipRowProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function ChipRowComponent({ children, gap, contentInset, fadeColor, ringInset, role, accessibilityLabel, disabled, keyboardShouldPersistTaps, style, contentContainerStyle, testID, }: ChipRowProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare const ChipRow: React.MemoExoticComponent<typeof ChipRowComponent>;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=ChipRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipRow.d.ts","sourceRoot":"","sources":["../../../../src/chip/ChipRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4B5C,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAehC,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,GAAO,EACP,YAAgB,EAChB,SAAS,EACT,SAAa,EACb,IAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,qBAAqB,EACrB,MAAM,GACP,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ChipRow.d.ts","sourceRoot":"","sources":["../../../../src/chip/ChipRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4B5C,iCAAiC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAehC,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,GAAO,EACP,YAAgB,EAChB,SAAS,EACT,SAAa,EACb,IAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,yBAAqC,EACrC,KAAK,EACL,qBAAqB,EACrB,MAAM,GACP,EAAE,YAAY,2CAkGd;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
|
|
@@ -127,6 +127,15 @@ export interface ChipRowProps {
|
|
|
127
127
|
accessibilityLabel?: string;
|
|
128
128
|
/** Marks the whole row disabled to assistive technology (web `aria-disabled`). */
|
|
129
129
|
disabled?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Whether a tap on a pill while the software keyboard is open reaches the
|
|
132
|
+
* pill. Default `handled`: the pill takes the press and the keyboard stays.
|
|
133
|
+
* React Native's own default (`never`) spends the first tap dismissing the
|
|
134
|
+
* keyboard, so a row of pills under a text field — a composer's audience and
|
|
135
|
+
* language pills, a search screen's filters — needed two taps, and the first
|
|
136
|
+
* one dropped the keyboard the reader was typing with. Native only.
|
|
137
|
+
*/
|
|
138
|
+
keyboardShouldPersistTaps?: 'always' | 'never' | 'handled';
|
|
130
139
|
style?: StyleProp<ViewStyle>;
|
|
131
140
|
contentContainerStyle?: StyleProp<ViewStyle>;
|
|
132
141
|
testID?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chip/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chip/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -22,41 +22,39 @@ import type { BottomSheetProps, BottomSheetRef, BottomSheetShellProps } from './
|
|
|
22
22
|
const noopKeyboardHandler = (_handlers: Record<string, (e: { height: number }) => void>, _deps: unknown[]) => {};
|
|
23
23
|
let useKeyboardHandler: (handlers: Record<string, (e: { height: number }) => void>, deps: unknown[]) => void = noopKeyboardHandler;
|
|
24
24
|
|
|
25
|
-
// react-native-keyboard-controller's <KeyboardProvider>. We re-establish it
|
|
26
|
-
// INSIDE the sheet's RN <Modal> (see the render below): a <Modal> mounts into
|
|
27
|
-
// its OWN native root, and neither the app-root GestureHandlerRootView nor the
|
|
28
|
-
// app-root KeyboardProvider's native KeyboardControllerView extend across that
|
|
29
|
-
// boundary. Without a provider inside the Modal, keyboard-controller consumers
|
|
30
|
-
// (this sheet's keyboard tracker, plus any TextInputs in `children`) read the
|
|
31
|
-
// default empty KeyboardContext — logging "Couldn't find real values for
|
|
32
|
-
// KeyboardContext ..." — and receive no keyboard insets. When the optional
|
|
33
|
-
// module is absent, or on web (no RN Modal native-window boundary, keyboard is
|
|
34
|
-
// the browser's concern), this resolves to a passthrough that just renders its
|
|
35
|
-
// children, so no provider is introduced where one isn't needed.
|
|
36
|
-
const PassthroughKeyboardProvider = ({ children }: { children: React.ReactNode }) => <>{children}</>;
|
|
37
|
-
let KeyboardProvider: React.ComponentType<{ children: React.ReactNode }> = PassthroughKeyboardProvider;
|
|
38
|
-
|
|
39
25
|
if (Platform.OS !== 'web' && typeof require !== 'undefined') {
|
|
40
26
|
try {
|
|
41
27
|
const keyboardController = require('react-native-keyboard-controller');
|
|
42
28
|
useKeyboardHandler = keyboardController.useKeyboardHandler ?? noopKeyboardHandler;
|
|
43
|
-
KeyboardProvider = keyboardController.KeyboardProvider ?? PassthroughKeyboardProvider;
|
|
44
29
|
} catch {
|
|
45
|
-
// react-native-keyboard-controller not available — keep the no-op
|
|
46
|
-
// handler and passthrough provider.
|
|
30
|
+
// react-native-keyboard-controller not available — keep the no-op handler.
|
|
47
31
|
}
|
|
48
32
|
}
|
|
49
33
|
|
|
50
34
|
/**
|
|
51
|
-
* Registers the sheet's keyboard-height tracker
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
35
|
+
* Registers the sheet's keyboard-height tracker, writing the live keyboard
|
|
36
|
+
* height into the shared value that drives the sheet's translate/height styles.
|
|
37
|
+
* Renders nothing.
|
|
38
|
+
*
|
|
39
|
+
* It reads the APP's one `<KeyboardProvider>`, and the sheet deliberately does
|
|
40
|
+
* not mount a second one inside its `<Modal>`:
|
|
41
|
+
*
|
|
42
|
+
* - React context crosses a `<Modal>` like any other element, so this hook
|
|
43
|
+
* finds the app-root provider from inside the sheet.
|
|
44
|
+
* - The native events cross too: when a `<Modal>` shows, the root provider's
|
|
45
|
+
* `ModalAttachedWatcher` (keyboard-controller ≥ 1.13, Android) attaches a
|
|
46
|
+
* keyboard callback to the dialog's window and propagates it to the ROOT
|
|
47
|
+
* provider's view, which is where this handler is registered.
|
|
48
|
+
* - A second provider breaks the app until it restarts. Every provider's
|
|
49
|
+
* watcher answers the same `topShow`: each SUSPENDS its own main-window
|
|
50
|
+
* callback and then calls `dialog.setOnDismissListener` to un-suspend it —
|
|
51
|
+
* and a dialog keeps only the LAST listener. So on dismiss one provider
|
|
52
|
+
* resumes and the others stay suspended for good: after the first sheet, the
|
|
53
|
+
* app's `KeyboardAvoidingView`s never saw the keyboard again (Alia #608,
|
|
54
|
+
* Android 16, keyboard-controller 1.21.9 and unchanged in 1.22.5).
|
|
55
|
+
*
|
|
56
|
+
* No app-root provider means keyboard-controller works nowhere in that app; the
|
|
57
|
+
* hook then no-ops (and warns in development) like every other consumer.
|
|
60
58
|
*/
|
|
61
59
|
function SheetKeyboardSync({ keyboardHeight }: { keyboardHeight: SharedValue<number> }) {
|
|
62
60
|
useKeyboardHandler({
|
|
@@ -73,27 +71,25 @@ function SheetKeyboardSync({ keyboardHeight }: { keyboardHeight: SharedValue<num
|
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
/**
|
|
76
|
-
* Native shell: RN's `<Modal>` (its own native root window) + the
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
74
|
+
* Native shell: RN's `<Modal>` (its own native root window) + the sheet's
|
|
75
|
+
* keyboard tracker + a `<GestureHandlerRootView>` (the app-root GHRV does not
|
|
76
|
+
* cross the Modal's native-window boundary, so pan gestures need their own root
|
|
77
|
+
* here). No `<KeyboardProvider>`: see `SheetKeyboardSync`.
|
|
80
78
|
*/
|
|
81
79
|
function NativeShell({ visible, onRequestClose, keyboardHeight, children }: BottomSheetShellProps) {
|
|
82
80
|
return (
|
|
83
81
|
<Modal visible={visible} transparent animationType="none" statusBarTranslucent onRequestClose={onRequestClose}>
|
|
84
82
|
{/*
|
|
85
83
|
This <Modal> is its own native window — the same boundary the
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
GestureHandlerRootView below is re-established for.
|
|
85
|
+
`GlassBlurWindow` declares it to the glass layer, which is the
|
|
88
86
|
ONLY thing that lets a backdrop in here take an Android blur target:
|
|
89
87
|
a BlurView in the app's own window would be a descendant of what it
|
|
90
88
|
blurs, and that segfaults. See `glass/blur-target.tsx`.
|
|
91
89
|
*/}
|
|
92
90
|
<GlassBlurWindow>
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
<GestureHandlerRootView style={styles.rootView}>{children}</GestureHandlerRootView>
|
|
96
|
-
</KeyboardProvider>
|
|
91
|
+
<SheetKeyboardSync keyboardHeight={keyboardHeight} />
|
|
92
|
+
<GestureHandlerRootView style={styles.rootView}>{children}</GestureHandlerRootView>
|
|
97
93
|
</GlassBlurWindow>
|
|
98
94
|
</Modal>
|
|
99
95
|
);
|
|
@@ -606,7 +606,7 @@ export const BottomSheetBase = forwardRef((props: BottomSheetBaseProps, ref: Rea
|
|
|
606
606
|
}, [colors.background, theme.isDark, detached]);
|
|
607
607
|
|
|
608
608
|
// Publish the sheet's keyboard shared value to the shell so the native
|
|
609
|
-
// shell can drive it
|
|
609
|
+
// shell's keyboard tracker can drive it. Kept stable
|
|
610
610
|
// (shared values are stable refs) so the shell never re-mounts for this.
|
|
611
611
|
if (!rendered) return null;
|
|
612
612
|
|
|
@@ -127,7 +127,8 @@ export interface BottomSheetProps {
|
|
|
127
127
|
/**
|
|
128
128
|
* Props consumed by a platform Shell — the outermost wrapper that hosts the
|
|
129
129
|
* sheet body in a full-screen overlay. Native wraps it in RN's `<Modal>` +
|
|
130
|
-
* `<
|
|
130
|
+
* `<GestureHandlerRootView>` (keyboard tracking reads the app's own root
|
|
131
|
+
* `<KeyboardProvider>`, never a second one); web wraps it in bloom's
|
|
131
132
|
* stable DOM `<Portal>` + a fixed `<GestureHandlerRootView>`. Splitting the
|
|
132
133
|
* shell is what lets web avoid RN-Web's `<Modal>`/`ModalPortal`, whose host
|
|
133
134
|
* node is orphaned under React 19 concurrent/StrictMode so the sheet mounts
|
package/src/chip/ChipRow.tsx
CHANGED
|
@@ -65,6 +65,7 @@ function ChipRowComponent({
|
|
|
65
65
|
role = 'group',
|
|
66
66
|
accessibilityLabel,
|
|
67
67
|
disabled,
|
|
68
|
+
keyboardShouldPersistTaps = 'handled',
|
|
68
69
|
style,
|
|
69
70
|
contentContainerStyle,
|
|
70
71
|
testID,
|
|
@@ -127,6 +128,7 @@ function ChipRowComponent({
|
|
|
127
128
|
{...(IS_WEB ? ({ dataSet: { bloomChipRowTrack: '' } } as Record<string, unknown>) : {})}
|
|
128
129
|
horizontal
|
|
129
130
|
showsHorizontalScrollIndicator={false}
|
|
131
|
+
keyboardShouldPersistTaps={keyboardShouldPersistTaps}
|
|
130
132
|
scrollEventThrottle={16}
|
|
131
133
|
onScroll={onScroll}
|
|
132
134
|
onLayout={onLayout}
|
package/src/chip/types.ts
CHANGED
|
@@ -132,6 +132,15 @@ export interface ChipRowProps {
|
|
|
132
132
|
accessibilityLabel?: string;
|
|
133
133
|
/** Marks the whole row disabled to assistive technology (web `aria-disabled`). */
|
|
134
134
|
disabled?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Whether a tap on a pill while the software keyboard is open reaches the
|
|
137
|
+
* pill. Default `handled`: the pill takes the press and the keyboard stays.
|
|
138
|
+
* React Native's own default (`never`) spends the first tap dismissing the
|
|
139
|
+
* keyboard, so a row of pills under a text field — a composer's audience and
|
|
140
|
+
* language pills, a search screen's filters — needed two taps, and the first
|
|
141
|
+
* one dropped the keyboard the reader was typing with. Native only.
|
|
142
|
+
*/
|
|
143
|
+
keyboardShouldPersistTaps?: 'always' | 'never' | 'handled';
|
|
135
144
|
style?: StyleProp<ViewStyle>;
|
|
136
145
|
contentContainerStyle?: StyleProp<ViewStyle>;
|
|
137
146
|
testID?: string;
|