react-native-nitro-modal 0.2.0 → 0.3.0-rc
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/README.md +48 -4
- package/android/src/main/java/com/margelo/nitro/nitromodal/BottomSheetPresenter.kt +335 -34
- package/android/src/main/java/com/margelo/nitro/nitromodal/HybridNitroModal.kt +63 -22
- package/android/src/main/java/com/margelo/nitro/nitromodal/ModalConfig.kt +31 -1
- package/android/src/main/java/com/margelo/nitro/nitromodal/ModalContentRoot.kt +48 -5
- package/android/src/main/java/com/margelo/nitro/nitromodal/ModalPresenter.kt +63 -4
- package/android/src/main/java/com/margelo/nitro/nitromodal/NitroModalHostView.kt +68 -8
- package/ios/HybridNitroModal.swift +111 -20
- package/ios/ModalConfig.swift +44 -2
- package/ios/NitroModalHostView.swift +73 -8
- package/ios/SheetView.swift +575 -0
- package/ios/SheetViewController.swift +19 -450
- package/lib/module/NitroModal.js +38 -5
- package/lib/module/NitroModal.js.map +1 -1
- package/lib/module/NitroModalView.web.js +55 -25
- package/lib/module/NitroModalView.web.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/AnimatedValue.js +3 -0
- package/lib/module/web/AnimatedValue.js.map +1 -1
- package/lib/module/web/ModalConfig.js +8 -4
- package/lib/module/web/ModalConfig.js.map +1 -1
- package/lib/module/web/ModalController.js +29 -2
- package/lib/module/web/ModalController.js.map +1 -1
- package/lib/module/web/ModalPresenter.js +47 -12
- package/lib/module/web/ModalPresenter.js.map +1 -1
- package/lib/module/web/SheetPresenter.js +54 -29
- package/lib/module/web/SheetPresenter.js.map +1 -1
- package/lib/module/web/dom.js +13 -0
- package/lib/module/web/dom.js.map +1 -1
- package/lib/typescript/src/NitroModal.d.ts +33 -2
- package/lib/typescript/src/NitroModal.d.ts.map +1 -1
- package/lib/typescript/src/NitroModal.nitro.d.ts +29 -2
- package/lib/typescript/src/NitroModal.nitro.d.ts.map +1 -1
- package/lib/typescript/src/NitroModalView.web.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/web/AnimatedValue.d.ts +1 -0
- package/lib/typescript/src/web/AnimatedValue.d.ts.map +1 -1
- package/lib/typescript/src/web/ModalConfig.d.ts +6 -0
- package/lib/typescript/src/web/ModalConfig.d.ts.map +1 -1
- package/lib/typescript/src/web/ModalController.d.ts +5 -0
- package/lib/typescript/src/web/ModalController.d.ts.map +1 -1
- package/lib/typescript/src/web/ModalPresenter.d.ts +9 -0
- package/lib/typescript/src/web/ModalPresenter.d.ts.map +1 -1
- package/lib/typescript/src/web/SheetPresenter.d.ts +1 -1
- package/lib/typescript/src/web/SheetPresenter.d.ts.map +1 -1
- package/lib/typescript/src/web/dom.d.ts +2 -0
- package/lib/typescript/src/web/dom.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridNitroModalSpec.cpp +60 -6
- package/nitrogen/generated/android/c++/JHybridNitroModalSpec.hpp +10 -2
- package/nitrogen/generated/android/c++/JNamedSheetDetent.hpp +64 -0
- package/nitrogen/generated/android/c++/JSheetDetent.cpp +26 -0
- package/nitrogen/generated/android/c++/JSheetDetent.hpp +42 -37
- package/nitrogen/generated/android/c++/views/JHybridNitroModalStateUpdater.cpp +20 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromodal/HybridNitroModalSpec.kt +40 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromodal/NamedSheetDetent.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromodal/SheetDetent.kt +47 -10
- package/nitrogen/generated/android/nitromodal+autolinking.cmake +1 -0
- package/nitrogen/generated/ios/NitroModal-Swift-Cxx-Bridge.hpp +53 -8
- package/nitrogen/generated/ios/NitroModal-Swift-Cxx-Umbrella.hpp +4 -3
- package/nitrogen/generated/ios/c++/HybridNitroModalSpecSwift.hpp +32 -5
- package/nitrogen/generated/ios/c++/views/HybridNitroModalComponent.mm +24 -0
- package/nitrogen/generated/ios/swift/HybridNitroModalSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridNitroModalSpec_cxx.swift +110 -5
- package/nitrogen/generated/ios/swift/NamedSheetDetent.swift +48 -0
- package/nitrogen/generated/ios/swift/SheetDetent.swift +15 -33
- package/nitrogen/generated/shared/c++/HybridNitroModalSpec.cpp +8 -0
- package/nitrogen/generated/shared/c++/HybridNitroModalSpec.hpp +14 -5
- package/nitrogen/generated/shared/c++/{SheetDetent.hpp → NamedSheetDetent.hpp} +17 -17
- package/nitrogen/generated/shared/c++/views/HybridNitroModalComponent.cpp +9 -1
- package/nitrogen/generated/shared/c++/views/HybridNitroModalComponent.hpp +15 -2
- package/nitrogen/generated/shared/json/NitroModalConfig.json +4 -0
- package/package.json +1 -1
- package/src/NitroModal.nitro.ts +30 -2
- package/src/NitroModal.tsx +68 -4
- package/src/NitroModalView.web.tsx +54 -12
- package/src/index.tsx +2 -0
- package/src/web/AnimatedValue.ts +4 -0
- package/src/web/ModalConfig.ts +13 -3
- package/src/web/ModalController.ts +35 -2
- package/src/web/ModalPresenter.ts +46 -11
- package/src/web/SheetPresenter.ts +98 -33
- package/src/web/dom.ts +17 -0
|
@@ -6,8 +6,10 @@ import { AnimatedValue, INSTANT } from "./AnimatedValue.js";
|
|
|
6
6
|
import { findVerticalScroller, isTextInput, prefersReducedMotion, suppressNextClick } from "./dom.js";
|
|
7
7
|
import { ModalPresenter } from "./ModalPresenter.js";
|
|
8
8
|
|
|
9
|
-
/** Gap kept above
|
|
9
|
+
/** Gap kept above a modal sheet at its tallest. */
|
|
10
10
|
const TOP_GAP = 10;
|
|
11
|
+
/** How far below its lowest detent the sheet must be pulled to refresh. */
|
|
12
|
+
const REFRESH_THRESHOLD = 56;
|
|
11
13
|
/**
|
|
12
14
|
* Extra sheet height below the viewport so it stays attached to the bottom
|
|
13
15
|
* edge while rubber-banding upward.
|
|
@@ -35,28 +37,44 @@ const EXIT = {
|
|
|
35
37
|
response: 0.45,
|
|
36
38
|
dampingRatio: 0.8
|
|
37
39
|
};
|
|
38
|
-
function sheetWidth(available) {
|
|
39
|
-
return Math.min(available, MAX_WIDTH);
|
|
40
|
+
function sheetWidth(available, isInline) {
|
|
41
|
+
return isInline ? available : Math.min(available, MAX_WIDTH);
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
/** Tallest height the content may occupy (excludes the bottom safe area). */
|
|
43
|
-
function maximumDetentValue(viewportHeight, insets) {
|
|
44
|
-
|
|
45
|
+
function maximumDetentValue(viewportHeight, insets, isInline) {
|
|
46
|
+
const gap = isInline ? 0 : TOP_GAP;
|
|
47
|
+
return Math.max(0, viewportHeight - insets.top - insets.bottom - gap);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Content height at `detent`; `fitContent` uses the measured `fitting` height. */
|
|
51
|
+
function detentHeight(detent, maximum, fitting) {
|
|
52
|
+
switch (detent) {
|
|
53
|
+
case 'small':
|
|
54
|
+
return maximum * 0.25;
|
|
55
|
+
case 'medium':
|
|
56
|
+
return maximum * 0.5;
|
|
57
|
+
case 'large':
|
|
58
|
+
return maximum;
|
|
59
|
+
case 'fitContent':
|
|
60
|
+
return Math.min(Math.max(fitting, 1), maximum);
|
|
61
|
+
default:
|
|
62
|
+
return Number.isFinite(detent) ? Math.min(Math.max(detent, 1), maximum) : maximum;
|
|
63
|
+
}
|
|
45
64
|
}
|
|
46
65
|
|
|
47
66
|
/** Height the content may occupy at the largest of `detents`. */
|
|
48
67
|
function contentHeight(detents, maximum) {
|
|
49
|
-
if (detents.length === 0
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return detents.includes('medium') ? maximum * 0.5 : maximum * 0.25;
|
|
68
|
+
if (detents.length === 0) return maximum;
|
|
69
|
+
// `fitContent` content can grow up to the maximum.
|
|
70
|
+
return Math.max(...detents.map(detent => detentHeight(detent, maximum, maximum)));
|
|
53
71
|
}
|
|
54
72
|
|
|
55
73
|
/** Best guess of the content area before the sheet is on screen. */
|
|
56
|
-
export function sheetContentArea(detents, viewport, insets) {
|
|
74
|
+
export function sheetContentArea(detents, viewport, insets, isInline) {
|
|
57
75
|
return {
|
|
58
|
-
width: sheetWidth(viewport.width),
|
|
59
|
-
height: contentHeight(detents, maximumDetentValue(viewport.height, insets))
|
|
76
|
+
width: sheetWidth(viewport.width, isInline),
|
|
77
|
+
height: contentHeight(detents, maximumDetentValue(viewport.height, insets, isInline))
|
|
60
78
|
};
|
|
61
79
|
}
|
|
62
80
|
function rubberBand(offset, dimension) {
|
|
@@ -159,23 +177,13 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
159
177
|
return this.config.detents.length > 0 ? this.config.detents : ['fitContent'];
|
|
160
178
|
}
|
|
161
179
|
get maximumDetentValue() {
|
|
162
|
-
return maximumDetentValue(this.viewport.height, this.insets);
|
|
180
|
+
return maximumDetentValue(this.viewport.height, this.insets, this.config.isInline);
|
|
163
181
|
}
|
|
164
182
|
get keyboardLift() {
|
|
165
183
|
return this.config.keyboardBehavior === 'none' ? 0 : Math.max(0, this.keyboardHeight - this.insets.bottom);
|
|
166
184
|
}
|
|
167
185
|
height(detent) {
|
|
168
|
-
|
|
169
|
-
switch (detent) {
|
|
170
|
-
case 'small':
|
|
171
|
-
return maximum * 0.25;
|
|
172
|
-
case 'medium':
|
|
173
|
-
return maximum * 0.5;
|
|
174
|
-
case 'large':
|
|
175
|
-
return maximum;
|
|
176
|
-
case 'fitContent':
|
|
177
|
-
return Math.min(Math.max(this.contentSize.height, 1), maximum);
|
|
178
|
-
}
|
|
186
|
+
return detentHeight(detent, this.maximumDetentValue, this.contentSize.height);
|
|
179
187
|
}
|
|
180
188
|
|
|
181
189
|
/** Sheet top when resting on `detents[index]`. The bottom safe area is added below the content. */
|
|
@@ -185,7 +193,7 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
185
193
|
} = this;
|
|
186
194
|
const detent = detents[Math.min(Math.max(index, 0), detents.length - 1)] ?? 'fitContent';
|
|
187
195
|
const top = this.viewport.height - this.insets.bottom - this.keyboardLift - this.height(detent);
|
|
188
|
-
return Math.max(top, this.insets.top + TOP_GAP);
|
|
196
|
+
return Math.max(top, this.insets.top + (this.config.isInline ? 0 : TOP_GAP));
|
|
189
197
|
}
|
|
190
198
|
get detentTops() {
|
|
191
199
|
return this.detents.map((_, index) => this.restingTop(index));
|
|
@@ -196,7 +204,7 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
196
204
|
content,
|
|
197
205
|
grabber
|
|
198
206
|
} = this.elements;
|
|
199
|
-
const width = sheetWidth(this.viewport.width);
|
|
207
|
+
const width = sheetWidth(this.viewport.width, this.config.isInline);
|
|
200
208
|
const radius = `${this.config.cornerRadius ?? DEFAULT_CORNER_RADIUS}px`;
|
|
201
209
|
Object.assign(surface.style, {
|
|
202
210
|
left: `${(this.viewport.width - width) / 2}px`,
|
|
@@ -262,6 +270,9 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
262
270
|
active: false,
|
|
263
271
|
rawTop: 0,
|
|
264
272
|
sheetDrove: false,
|
|
273
|
+
contentScrolled: false,
|
|
274
|
+
canRefresh: false,
|
|
275
|
+
refreshArmed: false,
|
|
265
276
|
samples: []
|
|
266
277
|
};
|
|
267
278
|
}
|
|
@@ -283,8 +294,10 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
283
294
|
}
|
|
284
295
|
activate(drag) {
|
|
285
296
|
drag.active = true;
|
|
297
|
+
const isSettled = !this.top.isAnimating;
|
|
286
298
|
this.top.stop();
|
|
287
299
|
drag.rawTop = this.top.value;
|
|
300
|
+
drag.canRefresh = this.config.pullToRefreshEnabled && !this.config.dismissOnSwipe && isSettled && Math.abs(drag.rawTop - Math.max(...this.detentTops)) < 1;
|
|
288
301
|
const {
|
|
289
302
|
surface
|
|
290
303
|
} = this.elements;
|
|
@@ -313,20 +326,29 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
313
326
|
} = drag;
|
|
314
327
|
if (scroller) {
|
|
315
328
|
// The browser's own scrolling is prevented for this gesture, so the
|
|
316
|
-
// content is scrolled here whenever the sheet can't move.
|
|
329
|
+
// content is scrolled here whenever the sheet can't move. Up: expand
|
|
330
|
+
// the sheet before scrolling. Down: scroll back to the top before
|
|
331
|
+
// collapsing the sheet, in a separate gesture.
|
|
317
332
|
const minTop = Math.min(...this.detentTops);
|
|
318
|
-
const drive = delta < 0 ? drag.rawTop > minTop + 0.5 : scroller.scrollTop <= 0;
|
|
333
|
+
const drive = delta < 0 ? drag.rawTop > minTop + 0.5 : !drag.contentScrolled && scroller.scrollTop <= 0;
|
|
319
334
|
if (drive) {
|
|
320
335
|
drag.rawTop = Math.max(drag.rawTop + delta, minTop);
|
|
321
336
|
} else {
|
|
322
337
|
scroller.scrollTop -= delta;
|
|
338
|
+
if (delta !== 0) {
|
|
339
|
+
drag.contentScrolled = true;
|
|
340
|
+
}
|
|
323
341
|
}
|
|
324
342
|
drag.sheetDrove = drive;
|
|
325
343
|
} else {
|
|
326
344
|
drag.rawTop += delta;
|
|
327
345
|
drag.sheetDrove = true;
|
|
328
346
|
}
|
|
329
|
-
|
|
347
|
+
const top = this.constrained(drag.rawTop);
|
|
348
|
+
if (drag.canRefresh) {
|
|
349
|
+
drag.refreshArmed = top - Math.max(...this.detentTops) >= REFRESH_THRESHOLD;
|
|
350
|
+
}
|
|
351
|
+
this.top.set(top);
|
|
330
352
|
}
|
|
331
353
|
release(drag) {
|
|
332
354
|
this.stopTracking();
|
|
@@ -353,6 +375,9 @@ export class SheetPresenter extends ModalPresenter {
|
|
|
353
375
|
this.listener.onDetentChange(index);
|
|
354
376
|
}
|
|
355
377
|
this.settle(SETTLE, velocity);
|
|
378
|
+
if (drag.refreshArmed) {
|
|
379
|
+
this.listener.onPullToRefresh();
|
|
380
|
+
}
|
|
356
381
|
}
|
|
357
382
|
|
|
358
383
|
/** Abandons the gesture without settling (the exit or the content takes over). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AnimatedValue","INSTANT","findVerticalScroller","isTextInput","prefersReducedMotion","suppressNextClick","ModalPresenter","TOP_GAP","OVERSCROLL","DEFAULT_CORNER_RADIUS","MAX_WIDTH","POINTER_SLOP","VELOCITY_WINDOW_MS","ENTER","type","response","dampingRatio","SETTLE","EXIT","sheetWidth","available","Math","min","maximumDetentValue","viewportHeight","insets","max","top","bottom","contentHeight","detents","maximum","length","includes","sheetContentArea","viewport","width","height","rubberBand","offset","dimension","findTouch","touches","id","i","touch","item","identifier","undefined","SheetPresenter","selectedIndex","isOffscreen","drag","releaseVelocity","value","render","constructor","config","listener","initialDetentIndex","snapToDetent","index","animateToRest","onDetentChange","didShow","surface","elements","addEventListener","handleTouchStart","passive","handleTouchMove","handleTouchEnd","handlePointerDown","layout","set","animateIn","settle","animateOut","onEnd","cancelDrag","velocity","animateTo","motion","stopAtTarget","configDidChange","viewportDidChange","contentSizeDidChange","stopAnimations","stop","teardown","removeEventListener","keyboardLift","keyboardBehavior","keyboardHeight","detent","contentSize","restingTop","detentTops","map","_","content","grabber","radius","cornerRadius","Object","assign","style","left","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","display","grabberVisible","reportContentArea","transform","backdrop","opacity","String","backdropAlpha","lowest","notifyPresented","active","canDrag","entering","isDismissing","beginDrag","input","x","y","target","startX","startY","lastY","scroller","rawTop","sheetDrove","samples","claim","slop","dx","dy","abs","scrollTop","activate","dispatchEvent","Event","setProperty","window","getSelection","removeAllRanges","moveDrag","delta","time","performance","now","push","shift","minTop","drive","constrained","release","stopTracking","tops","projected","dismissOnSwipe","onSwipeDismiss","reduce","best","candidate","handlePointerMove","handlePointerUp","removeProperty","filter","sample","first","last","maxTop","event","clientX","clientY","changedTouches","owner","cancelable","preventDefault","pointerType","button","pointerId"],"sourceRoot":"../../../src","sources":["web/SheetPresenter.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AnimatedValue","INSTANT","findVerticalScroller","isTextInput","prefersReducedMotion","suppressNextClick","ModalPresenter","TOP_GAP","REFRESH_THRESHOLD","OVERSCROLL","DEFAULT_CORNER_RADIUS","MAX_WIDTH","POINTER_SLOP","VELOCITY_WINDOW_MS","ENTER","type","response","dampingRatio","SETTLE","EXIT","sheetWidth","available","isInline","Math","min","maximumDetentValue","viewportHeight","insets","gap","max","top","bottom","detentHeight","detent","maximum","fitting","Number","isFinite","contentHeight","detents","length","map","sheetContentArea","viewport","width","height","rubberBand","offset","dimension","findTouch","touches","id","i","touch","item","identifier","undefined","SheetPresenter","selectedIndex","isOffscreen","drag","releaseVelocity","value","render","constructor","config","listener","initialDetentIndex","snapToDetent","index","animateToRest","onDetentChange","didShow","surface","elements","addEventListener","handleTouchStart","passive","handleTouchMove","handleTouchEnd","handlePointerDown","layout","set","animateIn","settle","animateOut","onEnd","cancelDrag","velocity","animateTo","motion","stopAtTarget","configDidChange","viewportDidChange","contentSizeDidChange","includes","stopAnimations","stop","teardown","removeEventListener","keyboardLift","keyboardBehavior","keyboardHeight","contentSize","restingTop","detentTops","_","content","grabber","radius","cornerRadius","Object","assign","style","left","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","display","grabberVisible","reportContentArea","transform","backdrop","opacity","String","backdropAlpha","lowest","notifyPresented","active","canDrag","entering","isDismissing","beginDrag","input","x","y","target","startX","startY","lastY","scroller","rawTop","sheetDrove","contentScrolled","canRefresh","refreshArmed","samples","claim","slop","dx","dy","abs","scrollTop","activate","isSettled","isAnimating","pullToRefreshEnabled","dismissOnSwipe","dispatchEvent","Event","setProperty","window","getSelection","removeAllRanges","moveDrag","delta","time","performance","now","push","shift","minTop","drive","constrained","release","stopTracking","tops","projected","onSwipeDismiss","reduce","best","candidate","onPullToRefresh","handlePointerMove","handlePointerUp","removeProperty","filter","sample","first","last","maxTop","event","clientX","clientY","changedTouches","owner","cancelable","preventDefault","pointerType","button","pointerId"],"sourceRoot":"../../../src","sources":["web/SheetPresenter.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/web/dom.js
CHANGED
|
@@ -42,6 +42,19 @@ export function readSafeAreaInsets() {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/** The part of the safe area insets that `element` overlaps. */
|
|
46
|
+
export function inlineInsets(element) {
|
|
47
|
+
const safeArea = readSafeAreaInsets();
|
|
48
|
+
const rect = element.getBoundingClientRect();
|
|
49
|
+
const clamp = (value, max) => Math.min(Math.max(value, 0), max);
|
|
50
|
+
return {
|
|
51
|
+
top: clamp(safeArea.top - rect.top, rect.height),
|
|
52
|
+
right: clamp(rect.right - (window.innerWidth - safeArea.right), rect.width),
|
|
53
|
+
bottom: clamp(rect.bottom - (window.innerHeight - safeArea.bottom), rect.height),
|
|
54
|
+
left: clamp(safeArea.left - rect.left, rect.width)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
45
58
|
/**
|
|
46
59
|
* Height of the on-screen keyboard over a layout viewport `layoutHeight` tall.
|
|
47
60
|
* Mobile browsers keep the layout viewport and shrink the visual one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ZERO_INSETS","top","right","bottom","left","canUseDOM","window","document","toCSSColor","argb","opacity","value","channel","shift","Math","floor","alpha","min","max","Number","toFixed","safeAreaProbe","readSafeAreaInsets","isConnected","body","probe","createElement","setAttribute","style","cssText","appendChild","getComputedStyle","parseFloat","paddingTop","paddingRight","paddingBottom","paddingLeft","readKeyboardHeight","layoutHeight","visual","visualViewport","abs","scale","covered","offsetTop","
|
|
1
|
+
{"version":3,"names":["ZERO_INSETS","top","right","bottom","left","canUseDOM","window","document","toCSSColor","argb","opacity","value","channel","shift","Math","floor","alpha","min","max","Number","toFixed","safeAreaProbe","readSafeAreaInsets","isConnected","body","probe","createElement","setAttribute","style","cssText","appendChild","getComputedStyle","parseFloat","paddingTop","paddingRight","paddingBottom","paddingLeft","inlineInsets","element","safeArea","rect","getBoundingClientRect","clamp","height","innerWidth","width","innerHeight","readKeyboardHeight","layoutHeight","visual","visualViewport","abs","scale","covered","offsetTop","round","estimateViewport","documentElement","clientWidth","isVerticalScroller","node","HTMLElement","scrollHeight","clientHeight","overflowY","findVerticalScroller","target","root","Element","parentElement","canScrollWithin","deltaY","canScroll","scrollTop","isTextInput","closest","suppressNextClick","swallow","event","stopPropagation","preventDefault","addEventListener","capture","once","setTimeout","removeEventListener","prefersReducedMotion","matchMedia","matches","clipValue","clipOverflow","CSS","supports"],"sourceRoot":"../../../src","sources":["web/dom.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { type ReactNode, type Ref } from 'react';
|
|
2
2
|
import { type ColorValue, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
3
|
import type { DismissReason, KeyboardBehavior, ModalMode, PopupAnimation, SheetDetent } from './NitroModal.nitro.js';
|
|
4
|
+
/**
|
|
5
|
+
* Where a `bottomSheet` lives.
|
|
6
|
+
* - `modal`: presented over the whole app, with a backdrop.
|
|
7
|
+
* - `inline`: inside the component's own frame (`style`), as part of your
|
|
8
|
+
* screen. No backdrop, the views behind it stay interactive, and the user
|
|
9
|
+
* can't dismiss it.
|
|
10
|
+
*/
|
|
11
|
+
export type ModalPresentation = 'modal' | 'inline';
|
|
4
12
|
export interface NitroModalRef {
|
|
5
13
|
/** Opens the modal. Only for uncontrolled usage (no `isOpen` prop). */
|
|
6
14
|
present(): void;
|
|
@@ -18,7 +26,23 @@ export interface NitroModalProps {
|
|
|
18
26
|
isOpen?: boolean;
|
|
19
27
|
/** @default 'bottomSheet' */
|
|
20
28
|
mode?: ModalMode;
|
|
21
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* `inline` keeps a `bottomSheet` inside this component's frame, like a
|
|
31
|
+
* persistent sheet that is part of the screen. Popups are always modal.
|
|
32
|
+
* @default 'modal'
|
|
33
|
+
*/
|
|
34
|
+
presentation?: ModalPresentation;
|
|
35
|
+
/**
|
|
36
|
+
* Inline only: the frame the sheet lives in, laid out like any view.
|
|
37
|
+
* The sheet rests against its bottom edge and its largest detent reaches its
|
|
38
|
+
* top edge. @default StyleSheet.absoluteFill
|
|
39
|
+
*/
|
|
40
|
+
style?: StyleProp<ViewStyle>;
|
|
41
|
+
/**
|
|
42
|
+
* Sheet heights, smallest first: named sizes, or the content height in
|
|
43
|
+
* dp/pt above the bottom safe area. Android uses at most three.
|
|
44
|
+
* @default ['fitContent']
|
|
45
|
+
*/
|
|
22
46
|
detents?: SheetDetent[];
|
|
23
47
|
/** @default 0 */
|
|
24
48
|
initialDetentIndex?: number;
|
|
@@ -51,9 +75,16 @@ export interface NitroModalProps {
|
|
|
51
75
|
onDetentChange?: (index: number) => void;
|
|
52
76
|
onBackdropPress?: () => void;
|
|
53
77
|
onBackButtonPress?: () => void;
|
|
78
|
+
/**
|
|
79
|
+
* Pull-to-refresh: the user dragged the sheet down past its lowest detent
|
|
80
|
+
* and let go. Only for sheets that can't be swiped away (inline, or
|
|
81
|
+
* `dismissOnSwipe={false}`), and only from a gesture that starts with the
|
|
82
|
+
* sheet resting on its lowest detent.
|
|
83
|
+
*/
|
|
84
|
+
onPullToRefresh?: () => void;
|
|
54
85
|
children?: ReactNode;
|
|
55
86
|
testID?: string;
|
|
56
87
|
ref?: Ref<NitroModalRef>;
|
|
57
88
|
}
|
|
58
|
-
export declare function NitroModal({ isOpen, mode, detents, initialDetentIndex, backdropColor, backdropOpacity, backdropBlur, dismissOnBackdropPress, dismissOnSwipe, dismissOnBackButton, showGrabber, cornerRadius, backgroundColor, keyboardBehavior, popupAnimation, contentContainerStyle, onPresent, onDismiss, onDetentChange, onBackdropPress, onBackButtonPress, children, testID, ref, }: NitroModalProps): import("react").JSX.Element;
|
|
89
|
+
export declare function NitroModal({ isOpen, mode, presentation, style, detents, initialDetentIndex, backdropColor, backdropOpacity, backdropBlur, dismissOnBackdropPress, dismissOnSwipe, dismissOnBackButton, showGrabber, cornerRadius, backgroundColor, keyboardBehavior, popupAnimation, contentContainerStyle, onPresent, onDismiss, onDetentChange, onBackdropPress, onBackButtonPress, onPullToRefresh, children, testID, ref, }: NitroModalProps): import("react").JSX.Element;
|
|
59
90
|
//# sourceMappingURL=NitroModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NitroModal.d.ts","sourceRoot":"","sources":["../../../src/NitroModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAEhB,SAAS,
|
|
1
|
+
{"version":3,"file":"NitroModal.d.ts","sourceRoot":"","sources":["../../../src/NitroModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,19 @@ import type { HybridView, HybridViewMethods, HybridViewProps } from 'react-nativ
|
|
|
7
7
|
*/
|
|
8
8
|
export type ModalMode = 'bottomSheet' | 'popup';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Named resting heights of a `bottomSheet`.
|
|
11
11
|
* - `small`: ~25% of the available height.
|
|
12
12
|
* - `medium`: ~50% of the available height.
|
|
13
13
|
* - `large`: the full available height.
|
|
14
14
|
* - `fitContent`: the measured height of the React content.
|
|
15
15
|
*/
|
|
16
|
-
export type
|
|
16
|
+
export type NamedSheetDetent = 'small' | 'medium' | 'large' | 'fitContent';
|
|
17
|
+
/**
|
|
18
|
+
* A resting height of a `bottomSheet`: a named height, or the height
|
|
19
|
+
* (dp/pt) of the content above the bottom safe area, clamped to the
|
|
20
|
+
* available height.
|
|
21
|
+
*/
|
|
22
|
+
export type SheetDetent = NamedSheetDetent | number;
|
|
17
23
|
/**
|
|
18
24
|
* How the modal reacts to the software keyboard.
|
|
19
25
|
* - `pan`: the sheet/card is translated above the keyboard, in sync with the
|
|
@@ -36,6 +42,12 @@ export interface NitroModalProps extends HybridViewProps {
|
|
|
36
42
|
/** Whether the modal should be presented. */
|
|
37
43
|
isOpen: boolean;
|
|
38
44
|
mode: ModalMode;
|
|
45
|
+
/**
|
|
46
|
+
* A `bottomSheet` that lives inside the host view's own bounds instead of
|
|
47
|
+
* being presented over the app: no backdrop, touches outside the sheet
|
|
48
|
+
* reach the views behind it, and the user can't dismiss it.
|
|
49
|
+
*/
|
|
50
|
+
isInline: boolean;
|
|
39
51
|
/** Detents of a `bottomSheet`, smallest first. At most 3 are used on Android. */
|
|
40
52
|
detents: SheetDetent[];
|
|
41
53
|
/** Index into `detents` that the sheet opens at. */
|
|
@@ -56,6 +68,11 @@ export interface NitroModalProps extends HybridViewProps {
|
|
|
56
68
|
contentBackgroundColor?: number;
|
|
57
69
|
keyboardBehavior: KeyboardBehavior;
|
|
58
70
|
popupAnimation: PopupAnimation;
|
|
71
|
+
/**
|
|
72
|
+
* Pulling a `bottomSheet` down past its lowest detent calls
|
|
73
|
+
* `onPullToRefresh`. Needs `dismissOnSwipe` off (always the case inline).
|
|
74
|
+
*/
|
|
75
|
+
pullToRefreshEnabled: boolean;
|
|
59
76
|
/** The present transition finished. */
|
|
60
77
|
onPresent?: () => void;
|
|
61
78
|
/** The modal is fully gone. Fired exactly once for every presentation request. */
|
|
@@ -67,6 +84,16 @@ export interface NitroModalProps extends HybridViewProps {
|
|
|
67
84
|
onBackButtonPress?: () => void;
|
|
68
85
|
/** The area available to the content changed (rotation, keyboard, sheet sizing). */
|
|
69
86
|
onContentAreaChange?: (area: ModalContentArea) => void;
|
|
87
|
+
/**
|
|
88
|
+
* The user pulled the sheet down past its lowest detent and let go. The
|
|
89
|
+
* gesture must start with the sheet resting on that detent.
|
|
90
|
+
*/
|
|
91
|
+
onPullToRefresh?: () => void;
|
|
92
|
+
/**
|
|
93
|
+
* Inline sheets: where the sheet's top rests within the host view (or
|
|
94
|
+
* will, once it settles). Lets React lay the content out where it is shown.
|
|
95
|
+
*/
|
|
96
|
+
onRestingTopChange?: (top: number) => void;
|
|
70
97
|
}
|
|
71
98
|
export interface NitroModalMethods extends HybridViewMethods {
|
|
72
99
|
present(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NitroModal.nitro.d.ts","sourceRoot":"","sources":["../../../src/NitroModal.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"NitroModal.nitro.d.ts","sourceRoot":"","sources":["../../../src/NitroModal.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,sCAAsC;AACtC,MAAM,MAAM,aAAa,GACvB,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kFAAkF;IAClF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,oDAAoD;IACpD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NitroModalView.web.d.ts","sourceRoot":"","sources":["../../../src/NitroModalView.web.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NitroModalView.web.d.ts","sourceRoot":"","sources":["../../../src/NitroModalView.web.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAoB,CAAC;AAW7E,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEtC;AAsJD,eAAO,MAAM,cAAc,EAAmC,eAAe,CAC3E,eAAe,EACf,iBAAiB,CAClB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { NitroModal, type NitroModalProps, type NitroModalRef, } from './NitroModal.js';
|
|
2
|
-
export type { DismissReason, KeyboardBehavior, ModalMode, PopupAnimation, SheetDetent, } from './NitroModal.nitro.js';
|
|
1
|
+
export { NitroModal, type ModalPresentation, type NitroModalProps, type NitroModalRef, } from './NitroModal.js';
|
|
2
|
+
export type { DismissReason, KeyboardBehavior, ModalMode, NamedSheetDetent, PopupAnimation, SheetDetent, } from './NitroModal.nitro.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,iBAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,uBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,iBAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,uBAAoB,CAAC"}
|
|
@@ -37,6 +37,7 @@ export declare class AnimatedValue {
|
|
|
37
37
|
/** `precision`: distance from the target at which a spring counts as settled. */
|
|
38
38
|
constructor(value: number, precision: number, onChange: (value: number) => void);
|
|
39
39
|
get value(): number;
|
|
40
|
+
get isAnimating(): boolean;
|
|
40
41
|
/** Jumps to `value`, cancelling any animation. */
|
|
41
42
|
set(value: number): void;
|
|
42
43
|
stop(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedValue.d.ts","sourceRoot":"","sources":["../../../../src/web/AnimatedValue.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,MAAM,GACd;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC,CAAC;AAEN,mFAAmF;AACnF,eAAO,MAAM,OAAO,EAAE,MAIrB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAgBD;;;;GAIG;AACH,qBAAa,aAAa;IAUtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAK;IAErB,iFAAiF;gBAE/E,KAAK,EAAE,MAAM,EACI,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAKpD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,kDAAkD;IAClD,GAAG,CAAC,KAAK,EAAE,MAAM;IAOjB,IAAI;IAQJ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAwBtE,OAAO,CAAC,IAAI,CAyBV;IAEF,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,UAAU;CA8BnB"}
|
|
1
|
+
{"version":3,"file":"AnimatedValue.d.ts","sourceRoot":"","sources":["../../../../src/web/AnimatedValue.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,MAAM,GACd;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC,CAAC;AAEN,mFAAmF;AACnF,eAAO,MAAM,OAAO,EAAE,MAIrB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAgBD;;;;GAIG;AACH,qBAAa,aAAa;IAUtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAK;IAErB,iFAAiF;gBAE/E,KAAK,EAAE,MAAM,EACI,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAKpD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,kDAAkD;IAClD,GAAG,CAAC,KAAK,EAAE,MAAM;IAOjB,IAAI;IAQJ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAwBtE,OAAO,CAAC,IAAI,CAyBV;IAEF,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,UAAU;CA8BnB"}
|
|
@@ -2,6 +2,11 @@ import type { KeyboardBehavior, ModalMode, NitroModalProps, PopupAnimation, Shee
|
|
|
2
2
|
/** Snapshot of the props that shape a presentation. */
|
|
3
3
|
export interface ModalConfig {
|
|
4
4
|
mode: ModalMode;
|
|
5
|
+
/**
|
|
6
|
+
* A `bottomSheet` rendered in place, filling the host view: no backdrop,
|
|
7
|
+
* the page behind stays interactive, and the user can't dismiss it.
|
|
8
|
+
*/
|
|
9
|
+
isInline: boolean;
|
|
5
10
|
detents: SheetDetent[];
|
|
6
11
|
initialDetentIndex: number;
|
|
7
12
|
/** 0xAARRGGBB, from `processColor`. */
|
|
@@ -18,6 +23,7 @@ export interface ModalConfig {
|
|
|
18
23
|
contentBackgroundColor: number | null;
|
|
19
24
|
keyboardBehavior: KeyboardBehavior;
|
|
20
25
|
popupAnimation: PopupAnimation;
|
|
26
|
+
pullToRefreshEnabled: boolean;
|
|
21
27
|
}
|
|
22
28
|
export declare function makeConfig(props: NitroModalProps): ModalConfig;
|
|
23
29
|
export declare function isSameConfig(a: ModalConfig, b: ModalConfig): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalConfig.d.ts","sourceRoot":"","sources":["../../../../src/web/ModalConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,wBAAqB,CAAC;AAE7B,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ModalConfig.d.ts","sourceRoot":"","sources":["../../../../src/web/ModalConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,wBAAqB,CAAC;AAE7B,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAuB9D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAMpE"}
|
|
@@ -29,6 +29,8 @@ export declare class ModalController implements PresenterListener {
|
|
|
29
29
|
private isAttached;
|
|
30
30
|
private presenter;
|
|
31
31
|
private elements;
|
|
32
|
+
/** Inline: the element the sheet fills. */
|
|
33
|
+
private host;
|
|
32
34
|
private lastContentArea;
|
|
33
35
|
/** `setMounted` renders (or removes) the modal's elements. */
|
|
34
36
|
constructor(setMounted: (mounted: boolean) => void);
|
|
@@ -37,6 +39,8 @@ export declare class ModalController implements PresenterListener {
|
|
|
37
39
|
detach(): void;
|
|
38
40
|
/** The host view rendered with new props. */
|
|
39
41
|
update(props: NitroModalProps): void;
|
|
42
|
+
/** Inline: the element the sheet fills, rendered in place. */
|
|
43
|
+
hostDidChange(host: HTMLElement | null): void;
|
|
40
44
|
elementsDidMount(elements: ModalElements): void;
|
|
41
45
|
elementsWillUnmount(): void;
|
|
42
46
|
contentDidRender(): void;
|
|
@@ -57,6 +61,7 @@ export declare class ModalController implements PresenterListener {
|
|
|
57
61
|
onBackdropPress(): void;
|
|
58
62
|
onSwipeDismiss(): void;
|
|
59
63
|
onDetentChange(index: number): void;
|
|
64
|
+
onPullToRefresh(): void;
|
|
60
65
|
onContentAreaChange(width: number, height: number): void;
|
|
61
66
|
/** Lets React size the content before the first presentation. */
|
|
62
67
|
private reportEstimatedContentArea;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalController.d.ts","sourceRoot":"","sources":["../../../../src/web/ModalController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ModalController.d.ts","sourceRoot":"","sources":["../../../../src/web/ModalController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAqB,CAAC;AAQ7B,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EAClB,MAAM,qBAAkB,CAAC;AAM1B;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IAkC3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAjCvC,QAAQ,CAAC,OAAO,EAAE,IAAI,CACpB,iBAAiB,EACjB,SAAS,GAAG,SAAS,GAAG,cAAc,CACvC,CAQC;IAEF,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAiB;IAC9B,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAAS;IAC1B,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAS;IAC9B,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,2CAA2C;IAC3C,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,eAAe,CAAiC;IAExD,8DAA8D;gBACjC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAInE,MAAM;IAKN,uGAAuG;IACvG,MAAM;IAiBN,6CAA6C;IAC7C,MAAM,CAAC,KAAK,EAAE,eAAe;IAqB7B,8DAA8D;IAC9D,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAQtC,gBAAgB,CAAC,QAAQ,EAAE,aAAa;IAOxC,mBAAmB;IAInB,gBAAgB;IAIhB,6EAA6E;IAC7E,eAAe,aAOb;IAIF,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAQtB,6FAA6F;IAC7F,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;IAclB,WAAW;IAUX,WAAW;IAIX,eAAe;IAOf,cAAc;IAMd,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,eAAe;IAIf,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWjD,iEAAiE;IACjE,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,kBAAkB,CAIxB;CACH"}
|
|
@@ -21,6 +21,8 @@ export interface PresenterListener {
|
|
|
21
21
|
onSwipeDismiss(): void;
|
|
22
22
|
onDetentChange(index: number): void;
|
|
23
23
|
onContentAreaChange(width: number, height: number): void;
|
|
24
|
+
/** The user pulled the sheet past its lowest detent and let go. */
|
|
25
|
+
onPullToRefresh(): void;
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Owns one presentation from show to dismiss. Subclasses lay out the surface
|
|
@@ -31,6 +33,9 @@ export interface PresenterListener {
|
|
|
31
33
|
* Transitions are interruptible: dismissing mid-enter turns the enter around,
|
|
32
34
|
* and `cancelDismiss` turns an exit back around. Once an exit starts the modal
|
|
33
35
|
* stops taking input.
|
|
36
|
+
*
|
|
37
|
+
* Inline, the elements fill the host view in place of a full-window layer:
|
|
38
|
+
* only the surface takes input, and the keyboard is left to the page.
|
|
34
39
|
*/
|
|
35
40
|
export declare abstract class ModalPresenter {
|
|
36
41
|
protected config: ModalConfig;
|
|
@@ -47,6 +52,8 @@ export declare abstract class ModalPresenter {
|
|
|
47
52
|
private finished;
|
|
48
53
|
private observedContent;
|
|
49
54
|
private resizeObserver;
|
|
55
|
+
/** Inline: follows the host's size, which can change without a window resize. */
|
|
56
|
+
private hostObserver;
|
|
50
57
|
constructor(config: ModalConfig, listener: PresenterListener);
|
|
51
58
|
get isShown(): boolean;
|
|
52
59
|
/** Takes over the rendered elements and starts the enter transition. */
|
|
@@ -84,6 +91,8 @@ export declare abstract class ModalPresenter {
|
|
|
84
91
|
protected teardown(): void;
|
|
85
92
|
private finish;
|
|
86
93
|
private applyBackdrop;
|
|
94
|
+
/** Inline, only the surface takes input; the rest reaches the page. */
|
|
95
|
+
private setInteractive;
|
|
87
96
|
private measureViewport;
|
|
88
97
|
/** Re-targets the observer at the content's root element. Returns whether its size changed. */
|
|
89
98
|
private observeContent;
|