@swiftbrowser/react 0.9.6 → 0.9.8
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 +11 -0
- package/dist/components/controls.d.ts +2 -0
- package/dist/components/controls.d.ts.map +1 -1
- package/dist/components/stacks.d.ts +9 -0
- package/dist/components/stacks.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -16
- package/dist/index.js.map +1 -1
- package/dist/island.d.ts +10 -1
- package/dist/island.d.ts.map +1 -1
- package/dist/mount.d.ts +8 -0
- package/dist/mount.d.ts.map +1 -1
- package/dist/scrollReader.d.ts +17 -0
- package/dist/scrollReader.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -231,6 +231,13 @@ forward selects the row the entry recorded, through the row's own tap. The
|
|
|
231
231
|
URL is left alone: an app that maps screens to paths sets them with
|
|
232
232
|
`history.replaceState` on the entry the renderer made (a `pushState` of its
|
|
233
233
|
own would add a second entry for the same screen).
|
|
234
|
+
On a phone, a `fill` island follows the on-screen keyboard (`keyboard`,
|
|
235
|
+
on by default for `fill`, or `mount(..., { keyboard: true })`): its height
|
|
236
|
+
becomes a bottom inset, so a field, a bottom search field or a chat's
|
|
237
|
+
composer rises above it and a list stops above it, as on iOS, instead of
|
|
238
|
+
the browser panning the page to the field. A `content` island leaves the
|
|
239
|
+
page to the browser.
|
|
240
|
+
|
|
234
241
|
`<SwiftUIView history={false}>` (or `mount(..., { history: false })`) leaves
|
|
235
242
|
the history untouched, for an island in a page whose own router owns it.
|
|
236
243
|
|
|
@@ -320,6 +327,10 @@ opens it at its end and keeps the end in view as content is added while
|
|
|
320
327
|
the viewer is there (a chat); a viewer who scrolled up is left where they
|
|
321
328
|
are. `scrollTargetBehavior="paging"` or `"viewAligned"` on
|
|
322
329
|
a `ScrollView` snaps, with `scrollTargetLayout` on the stack inside.
|
|
330
|
+
`scrollPosition={[id, setId]}` on a `ScrollView` is `.scrollPosition(id:)`:
|
|
331
|
+
when scrolling settles it is set to the `scrollID` of the view at the
|
|
332
|
+
scroll view's leading edge (or `scrollPositionAnchor`), and setting it
|
|
333
|
+
scrolls there.
|
|
323
334
|
Name a coordinate space with `coordinateSpace="page"` on the `ScrollView`
|
|
324
335
|
(or any view), and a `GeometryReader` inside reads its frame there with
|
|
325
336
|
`proxy.frame({ named: 'page' })`, updated as the page scrolls.
|
|
@@ -108,6 +108,8 @@ export interface DatePickerProps extends ViewModifiers {
|
|
|
108
108
|
displayedComponents?: DatePickerComponents;
|
|
109
109
|
/** `in:` bounds. */
|
|
110
110
|
range?: readonly [Date | null, Date | null];
|
|
111
|
+
/** The IANA time zone the date and time are shown and edited in (`.environment(\\.timeZone)`); the viewer's when absent. */
|
|
112
|
+
timeZone?: string;
|
|
111
113
|
}
|
|
112
114
|
/** `DatePicker("Date", selection:)`: the compact style, with the browser's native pickers. */
|
|
113
115
|
export declare function DatePicker(props: DatePickerProps): ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { type Key, type ReactElement, type ReactNode } from 'react';
|
|
|
3
3
|
import type { EventHandlers } from '../host/instance';
|
|
4
4
|
import { type ModifierEntry, type ViewModifiers } from '../modifiers';
|
|
5
5
|
import { type UnitPointValue } from '../values';
|
|
6
|
+
import { type ScrollPositionValue } from '../scrollReader';
|
|
7
|
+
import type { BindingValue } from '../binding';
|
|
6
8
|
import { type ScrollSettings } from '../scrollEnvironment';
|
|
7
9
|
export interface VStackProps extends ViewModifiers {
|
|
8
10
|
alignment?: VStackAlignment;
|
|
@@ -41,6 +43,13 @@ export interface ScrollViewProps extends ViewModifiers {
|
|
|
41
43
|
* a viewer who scrolled away is left where they are.
|
|
42
44
|
*/
|
|
43
45
|
defaultScrollAnchor?: UnitPointValue;
|
|
46
|
+
/**
|
|
47
|
+
* `.scrollPosition(id:anchor:)`: the `scrollID` of the view at the anchor
|
|
48
|
+
* (the leading edge unless `scrollPositionAnchor` says otherwise), set
|
|
49
|
+
* when scrolling settles; setting it scrolls there.
|
|
50
|
+
*/
|
|
51
|
+
scrollPosition?: BindingValue<ScrollPositionValue>;
|
|
52
|
+
scrollPositionAnchor?: UnitPointValue;
|
|
44
53
|
children?: ReactNode;
|
|
45
54
|
}
|
|
46
55
|
export declare function ScrollView(props: ScrollViewProps): ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/components/stacks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,IAAI,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAChK,OAAO,EAA+D,KAAK,GAAG,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAA4C,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAYL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAKpD;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,SAAS,CAAC,EAAE,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;IACvE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAKpD;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAGpD;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAGpD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAGvD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,mGAAmG;IACnG,oBAAoB,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAChD,+CAA+C;IAC/C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/components/stacks.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type { ContentMarginsValue, ScrollEdgeEffectHiddenValue, ScrollEdgeEffect
|
|
|
17
17
|
export type { SheetModifier, AlertModifier, DetentValue } from './presentation';
|
|
18
18
|
export * from './values';
|
|
19
19
|
export { Path, type CGRect, type Point } from './path';
|
|
20
|
-
export { ScrollViewReader, type ScrollViewProxy } from './scrollReader';
|
|
20
|
+
export { ScrollViewReader, type ScrollViewProxy, type ScrollPositionValue } from './scrollReader';
|
|
21
21
|
export { useCoordinateSpaces } from './coordinateSpace';
|
|
22
22
|
export * from './components/stacks';
|
|
23
23
|
export * from './components/text';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,KAAK,mBAAmB,EACxB,UAAU,EACV,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,KAAK,mBAAmB,EACxB,UAAU,EACV,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChF,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { DefaultEventPriority, ConcurrentRoot } from "react-reconciler/constants
|
|
|
3
3
|
import Reconciler from "react-reconciler";
|
|
4
4
|
import { horizontalSizeClassFor } from "@swiftbrowser/web/src/protocol";
|
|
5
5
|
import { BrowserHistory } from "@swiftbrowser/web/src/browserHistory";
|
|
6
|
+
import { watchKeyboard } from "@swiftbrowser/web/src/deviceMode";
|
|
6
7
|
import { Renderer } from "@swiftbrowser/web/src/renderer";
|
|
7
8
|
import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
|
|
8
9
|
import { applyTypeSizeVariables } from "@swiftbrowser/web/src/typography";
|
|
@@ -442,6 +443,7 @@ function mount(screen, element, options = {}) {
|
|
|
442
443
|
root.setEnvironment(environment);
|
|
443
444
|
const browserHistory = (options.history ?? true) && typeof window !== "undefined" ? new BrowserHistory(renderer, screen) : null;
|
|
444
445
|
browserHistory?.enable();
|
|
446
|
+
const stopKeyboard = options.keyboard && typeof window !== "undefined" ? watchKeyboard((height) => renderer?.setKeyboard(height), { root: screen }) : null;
|
|
445
447
|
const applyScheme = () => {
|
|
446
448
|
const scheme = preferred ?? pageScheme;
|
|
447
449
|
const device = screen.closest(".device");
|
|
@@ -475,6 +477,7 @@ function mount(screen, element, options = {}) {
|
|
|
475
477
|
},
|
|
476
478
|
unmount() {
|
|
477
479
|
observer?.disconnect();
|
|
480
|
+
stopKeyboard?.();
|
|
478
481
|
browserHistory?.dispose();
|
|
479
482
|
screen.removeEventListener("sb:color-scheme", onPreferredScheme);
|
|
480
483
|
root.unmount();
|
|
@@ -518,6 +521,7 @@ function SwiftUIView({
|
|
|
518
521
|
assets,
|
|
519
522
|
safeArea,
|
|
520
523
|
history = true,
|
|
524
|
+
keyboard = fit === "fill",
|
|
521
525
|
className,
|
|
522
526
|
style
|
|
523
527
|
}) {
|
|
@@ -536,6 +540,7 @@ function SwiftUIView({
|
|
|
536
540
|
safeArea: insetsOf(safeArea, fit),
|
|
537
541
|
contentHeight: fit === "content",
|
|
538
542
|
history,
|
|
543
|
+
keyboard,
|
|
539
544
|
...assets ? { assets } : {}
|
|
540
545
|
});
|
|
541
546
|
mounted.current = instance;
|
|
@@ -543,7 +548,7 @@ function SwiftUIView({
|
|
|
543
548
|
mounted.current = null;
|
|
544
549
|
instance.unmount();
|
|
545
550
|
};
|
|
546
|
-
}, [fit, history]);
|
|
551
|
+
}, [fit, history, keyboard]);
|
|
547
552
|
useLayoutEffect(() => {
|
|
548
553
|
mounted.current?.root.render(tree);
|
|
549
554
|
});
|
|
@@ -792,6 +797,53 @@ function insets(edges, amount) {
|
|
|
792
797
|
}
|
|
793
798
|
return result;
|
|
794
799
|
}
|
|
800
|
+
const ScrollRequestContext = createContext(null);
|
|
801
|
+
let nextSerial = 1;
|
|
802
|
+
function ScrollViewReader({ children }) {
|
|
803
|
+
const [request, setRequest] = useState(null);
|
|
804
|
+
const proxy = {
|
|
805
|
+
scrollTo: (id, anchor) => setRequest({ id, anchor: anchor === void 0 ? null : unitPoint(anchor), serial: nextSerial++ })
|
|
806
|
+
};
|
|
807
|
+
return /* @__PURE__ */ jsx(ScrollRequestContext.Provider, { value: request, children: children(proxy) });
|
|
808
|
+
}
|
|
809
|
+
function ScrollTarget({ id, children }) {
|
|
810
|
+
const request = useContext(ScrollRequestContext);
|
|
811
|
+
const position = useContext(ScrollPositionContext);
|
|
812
|
+
const on = position ? { scrollposition: () => position.report(id) } : void 0;
|
|
813
|
+
if (request && request.id === id) return sb("styled", { style: { scrollID: true, scrollTo: { anchor: request.anchor, serial: request.serial } } }, on, children);
|
|
814
|
+
if (on) return sb("styled", { style: { scrollID: true } }, on, children);
|
|
815
|
+
return styled({ scrollID: true }, children);
|
|
816
|
+
}
|
|
817
|
+
const ScrollPositionContext = createContext(null);
|
|
818
|
+
function useScrollPosition(binding, anchor) {
|
|
819
|
+
const bound = binding !== void 0;
|
|
820
|
+
const [value, set] = bound ? readBinding(binding) : [null, () => void 0];
|
|
821
|
+
const last = useRef(void 0);
|
|
822
|
+
const reported = useRef(void 0);
|
|
823
|
+
const request = useRef(null);
|
|
824
|
+
const outer = useContext(ScrollRequestContext);
|
|
825
|
+
const point = anchor === void 0 ? null : unitPoint(anchor);
|
|
826
|
+
if (value !== last.current) {
|
|
827
|
+
last.current = value;
|
|
828
|
+
if (value !== null && value !== reported.current) request.current = { id: value, anchor: point, serial: nextSerial++ };
|
|
829
|
+
reported.current = void 0;
|
|
830
|
+
}
|
|
831
|
+
if (!bound) return null;
|
|
832
|
+
const props = { reportsPosition: true };
|
|
833
|
+
if (point) props["positionAnchor"] = point;
|
|
834
|
+
const own = request.current;
|
|
835
|
+
const current = own && (!outer || own.serial > outer.serial) ? own : outer;
|
|
836
|
+
const context = {
|
|
837
|
+
report: (id) => {
|
|
838
|
+
reported.current = id;
|
|
839
|
+
set(id);
|
|
840
|
+
}
|
|
841
|
+
};
|
|
842
|
+
return {
|
|
843
|
+
props,
|
|
844
|
+
provide: (children) => /* @__PURE__ */ jsx(ScrollPositionContext.Provider, { value: context, children: /* @__PURE__ */ jsx(ScrollRequestContext.Provider, { value: current, children }) })
|
|
845
|
+
};
|
|
846
|
+
}
|
|
795
847
|
const ScrollSettingsContext = createContext({});
|
|
796
848
|
function edgesOf(edges) {
|
|
797
849
|
const list = Array.isArray(edges) ? edges : [edges];
|
|
@@ -878,20 +930,6 @@ function Row({ tag, onDelete, deletable, onMove, movable, index, containerIndex,
|
|
|
878
930
|
children
|
|
879
931
|
);
|
|
880
932
|
}
|
|
881
|
-
const ScrollRequestContext = createContext(null);
|
|
882
|
-
let nextSerial = 1;
|
|
883
|
-
function ScrollViewReader({ children }) {
|
|
884
|
-
const [request, setRequest] = useState(null);
|
|
885
|
-
const proxy = {
|
|
886
|
-
scrollTo: (id, anchor) => setRequest({ id, anchor: anchor === void 0 ? null : unitPoint(anchor), serial: nextSerial++ })
|
|
887
|
-
};
|
|
888
|
-
return /* @__PURE__ */ jsx(ScrollRequestContext.Provider, { value: request, children: children(proxy) });
|
|
889
|
-
}
|
|
890
|
-
function ScrollTarget({ id, children }) {
|
|
891
|
-
const request = useContext(ScrollRequestContext);
|
|
892
|
-
if (request && request.id === id) return styled({ scrollID: true, scrollTo: { anchor: request.anchor, serial: request.serial } }, children);
|
|
893
|
-
return styled({ scrollID: true }, children);
|
|
894
|
-
}
|
|
895
933
|
const LAZY_BATCH = 12;
|
|
896
934
|
const LazyContext = createContext(null);
|
|
897
935
|
function LazyGroup({ rows, start = 0, wrap: wrap2 }) {
|
|
@@ -964,8 +1002,11 @@ function ScrollView(props) {
|
|
|
964
1002
|
if (own.defaultScrollAnchor !== void 0) scroll["defaultScrollAnchor"] = unitPoint(own.defaultScrollAnchor);
|
|
965
1003
|
const edgeEffect = edgeEffectProp(settings);
|
|
966
1004
|
if (edgeEffect) scroll["edgeEffect"] = edgeEffect;
|
|
1005
|
+
const position = useScrollPosition(own.scrollPosition, own.scrollPositionAnchor);
|
|
1006
|
+
if (position) Object.assign(scroll, position.props);
|
|
967
1007
|
const content = marginedContent(own.children, settings.margins, axes === "horizontal" ? "horizontal" : "vertical");
|
|
968
|
-
|
|
1008
|
+
const inner = providingScrollSettings(ownSettings, content);
|
|
1009
|
+
return applyModifiers(sb("scrollview", scroll, refresh.handlers, position ? position.provide(inner) : inner), modifiers);
|
|
969
1010
|
}
|
|
970
1011
|
function takeScrollSettings(modifiers) {
|
|
971
1012
|
let settings = {};
|
|
@@ -2978,6 +3019,7 @@ function DatePicker(props) {
|
|
|
2978
3019
|
max: seconds(own.range?.[1])
|
|
2979
3020
|
};
|
|
2980
3021
|
if (labelsHidden) pickerProps["labelsHidden"] = true;
|
|
3022
|
+
if (own.timeZone) pickerProps["timeZone"] = own.timeZone;
|
|
2981
3023
|
const label = labelsHidden || own.label === void 0 ? void 0 : /* @__PURE__ */ jsx(Text, { children: own.label });
|
|
2982
3024
|
return applyModifiers(sb("datepicker", pickerProps, { date: (event) => setDate(new Date(event.value * 1e3)) }, label), modifiers);
|
|
2983
3025
|
}
|