@swiftbrowser/react 0.17.8 → 0.18.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/README.md +243 -14
- package/dist/appStorage.d.ts +43 -0
- package/dist/appStorage.d.ts.map +1 -0
- package/dist/attributedText.d.ts +76 -0
- package/dist/attributedText.d.ts.map +1 -0
- package/dist/audioRecorder.d.ts +52 -0
- package/dist/audioRecorder.d.ts.map +1 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/components/charts.d.ts +5 -0
- package/dist/components/charts.d.ts.map +1 -1
- package/dist/components/containers.d.ts +5 -0
- package/dist/components/containers.d.ts.map +1 -1
- package/dist/components/controls.d.ts +84 -8
- package/dist/components/controls.d.ts.map +1 -1
- package/dist/components/geometry.d.ts +18 -0
- package/dist/components/geometry.d.ts.map +1 -1
- package/dist/components/images.d.ts.map +1 -1
- package/dist/components/lists.d.ts.map +1 -1
- package/dist/components/media.d.ts +18 -10
- package/dist/components/media.d.ts.map +1 -1
- package/dist/components/stacks.d.ts +70 -4
- package/dist/components/stacks.d.ts.map +1 -1
- package/dist/environment.d.ts +2 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/fileManager.d.ts +58 -0
- package/dist/fileManager.d.ts.map +1 -0
- package/dist/host/root.d.ts +16 -2
- package/dist/host/root.d.ts.map +1 -1
- package/dist/host/tree.d.ts +9 -0
- package/dist/host/tree.d.ts.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1200 -369
- package/dist/index.js.map +1 -1
- package/dist/measureText.d.ts +32 -0
- package/dist/measureText.d.ts.map +1 -0
- package/dist/modifiers.d.ts +81 -5
- package/dist/modifiers.d.ts.map +1 -1
- package/dist/mount.d.ts +5 -0
- package/dist/mount.d.ts.map +1 -1
- package/dist/presentation.d.ts +5 -1
- package/dist/presentation.d.ts.map +1 -1
- package/dist/scrollReader.d.ts +34 -8
- package/dist/scrollReader.d.ts.map +1 -1
- package/dist/undo.d.ts +108 -0
- package/dist/undo.d.ts.map +1 -0
- package/dist/visualEffect.d.ts +10 -14
- package/dist/visualEffect.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@ import type { TextFieldStyle } from '@swiftbrowser/web/src/protocol';
|
|
|
2
2
|
import { type ReactElement, type ReactNode } from 'react';
|
|
3
3
|
import { type BindingValue } from '../binding';
|
|
4
4
|
import { type ToolbarItemPlacementName, type ViewModifiers } from '../modifiers';
|
|
5
|
+
import { AttributedText, type TextSelection } from '../attributedText';
|
|
5
6
|
export interface ButtonProps extends ViewModifiers {
|
|
6
7
|
title?: string;
|
|
7
8
|
role?: 'destructive' | 'cancel';
|
|
@@ -61,20 +62,67 @@ export interface StepperProps extends ViewModifiers {
|
|
|
61
62
|
children?: ReactNode;
|
|
62
63
|
}
|
|
63
64
|
export declare function Stepper(props: StepperProps): ReactNode;
|
|
64
|
-
export interface
|
|
65
|
+
export interface TextFieldBaseProps extends ViewModifiers {
|
|
65
66
|
/** The placeholder (SwiftUI's title). */
|
|
66
67
|
placeholder?: string;
|
|
67
68
|
text: BindingValue<string>;
|
|
68
69
|
onChange?: (text: string) => void;
|
|
69
70
|
onSubmit?: () => void;
|
|
71
|
+
/**
|
|
72
|
+
* Backspace with nothing selected and the caret at the start of the text
|
|
73
|
+
* (an empty field included): there is nothing for the key to delete, so
|
|
74
|
+
* the app hears it, to merge the field into what comes before it, say.
|
|
75
|
+
*/
|
|
76
|
+
onDeleteBackward?: () => void;
|
|
70
77
|
textFieldStyle?: TextFieldStyle;
|
|
71
78
|
secure?: boolean;
|
|
72
79
|
axis?: 'vertical';
|
|
73
|
-
|
|
80
|
+
}
|
|
81
|
+
export type TextFieldProps<F extends FocusValue = FocusValue> = TextFieldBaseProps & FocusProps<F>;
|
|
82
|
+
/**
|
|
83
|
+
* `TextField("Name", text:)`. Overloads for the two focus bindings
|
|
84
|
+
* (`FocusProps`) rather than their union alone, so an inline binding's
|
|
85
|
+
* setter still infers its type.
|
|
86
|
+
*/
|
|
87
|
+
export declare function TextField(props: TextFieldBaseProps & BoundFocusProps): ReactNode;
|
|
88
|
+
export declare function TextField<F extends FocusValue>(props: TextFieldBaseProps & SharedFocusProps<F>): ReactNode;
|
|
89
|
+
export declare function SecureField(props: Omit<TextFieldBaseProps & BoundFocusProps, 'secure'>): ReactNode;
|
|
90
|
+
export declare function SecureField<F extends FocusValue>(props: Omit<TextFieldBaseProps & SharedFocusProps<F>, 'secure'>): ReactNode;
|
|
91
|
+
/** `@FocusState var field: Field?`: what stands for a field among those sharing one focus binding. */
|
|
92
|
+
export type FocusValue = string | number;
|
|
93
|
+
/**
|
|
94
|
+
* `.focused($isFocused)`: the field takes the focus while true, and sets it
|
|
95
|
+
* as the viewer focuses or leaves it. A value the app sets from `onSubmit`
|
|
96
|
+
* (true again) wins over the keyboard's dismissal, and a field that takes
|
|
97
|
+
* the focus is scrolled into view.
|
|
98
|
+
*/
|
|
99
|
+
export interface BoundFocusProps {
|
|
74
100
|
focused?: BindingValue<boolean>;
|
|
101
|
+
focusedValue?: undefined;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* `.focused($field, equals: value)`: the binding holds the focused field's
|
|
105
|
+
* value (null for none) and is shared by the fields, each naming its own
|
|
106
|
+
* with `focusedValue`. A field taking the focus sets its value; one losing
|
|
107
|
+
* it clears the value only while it is still its own, so a handler for
|
|
108
|
+
* `onSubmit` that moved the focus to another field (or set this one's
|
|
109
|
+
* again) wins over the keyboard's dismissal, and the field it names is
|
|
110
|
+
* scrolled into view.
|
|
111
|
+
*/
|
|
112
|
+
export interface SharedFocusProps<F extends FocusValue> {
|
|
113
|
+
focused: BindingValue<F | null>;
|
|
114
|
+
focusedValue: F;
|
|
75
115
|
}
|
|
76
|
-
export
|
|
77
|
-
|
|
116
|
+
export type FocusProps<F extends FocusValue = FocusValue> = BoundFocusProps | SharedFocusProps<F>;
|
|
117
|
+
/**
|
|
118
|
+
* A field's own focus over its `FocusProps` (read loosely: `splitProps`
|
|
119
|
+
* flattens the union): whether it has the focus, and the setter for a change
|
|
120
|
+
* the renderer reports; null when unbound.
|
|
121
|
+
*/
|
|
122
|
+
export declare function focusBinding<F extends FocusValue>(props: {
|
|
123
|
+
focused?: BindingValue<boolean> | BindingValue<F | null> | undefined;
|
|
124
|
+
focusedValue?: F | undefined;
|
|
125
|
+
}): [boolean, (on: boolean) => void] | null;
|
|
78
126
|
export interface ProgressViewProps extends ViewModifiers {
|
|
79
127
|
/** Determinate progress (`value / total`); absent: the spinning indicator. */
|
|
80
128
|
value?: number;
|
|
@@ -123,11 +171,39 @@ export interface DatePickerProps extends ViewModifiers {
|
|
|
123
171
|
}
|
|
124
172
|
/** `DatePicker("Date", selection:)`: the compact style, with the browser's native pickers. */
|
|
125
173
|
export declare function DatePicker(props: DatePickerProps): ReactNode;
|
|
126
|
-
|
|
174
|
+
interface TextEditorBaseProps extends ViewModifiers {
|
|
175
|
+
/**
|
|
176
|
+
* `TextEditor(text:selection:)`, on a plain editor or a rich one: the
|
|
177
|
+
* editor writes the selection as the viewer moves the caret or selects
|
|
178
|
+
* (UTF-16 offsets into the text), and one the app sets moves the caret
|
|
179
|
+
* (when the app focuses the editor, if it is not focused).
|
|
180
|
+
*/
|
|
181
|
+
selection?: BindingValue<TextSelection>;
|
|
182
|
+
/** As a `TextField`'s: Backspace with the caret at the start of the text and nothing selected. */
|
|
183
|
+
onDeleteBackward?: () => void;
|
|
184
|
+
}
|
|
185
|
+
export interface PlainTextEditorProps extends TextEditorBaseProps {
|
|
127
186
|
text: BindingValue<string>;
|
|
128
187
|
onChange?: (text: string) => void;
|
|
129
|
-
focused?: BindingValue<boolean>;
|
|
130
188
|
}
|
|
131
|
-
/**
|
|
132
|
-
export
|
|
189
|
+
/** A rich editor: its text is `AttributedText`, drawn with each run's attributes. */
|
|
190
|
+
export interface AttributedTextEditorProps extends TextEditorBaseProps {
|
|
191
|
+
text: BindingValue<AttributedText>;
|
|
192
|
+
onChange?: (text: AttributedText) => void;
|
|
193
|
+
}
|
|
194
|
+
/** The editor's props with a focus binding as a `TextField`'s (`FocusProps`). */
|
|
195
|
+
export type TextEditorProps<F extends FocusValue = FocusValue> = (PlainTextEditorProps | AttributedTextEditorProps) & FocusProps<F>;
|
|
196
|
+
/**
|
|
197
|
+
* `TextEditor(text:)`: a multi-line field filling its proposal (as tall as
|
|
198
|
+
* its lines under `.scrollDisabled(true)`). Given `AttributedText` it is
|
|
199
|
+
* the rich editor: what the viewer types takes the attributes of the text
|
|
200
|
+
* around it (`AttributedText.replacingCharacters`). Overloads (the text,
|
|
201
|
+
* then the focus binding) rather than the union alone, so an inline
|
|
202
|
+
* binding's setter still infers its type.
|
|
203
|
+
*/
|
|
204
|
+
export declare function TextEditor(props: PlainTextEditorProps & BoundFocusProps): ReactNode;
|
|
205
|
+
export declare function TextEditor<F extends FocusValue>(props: PlainTextEditorProps & SharedFocusProps<F>): ReactNode;
|
|
206
|
+
export declare function TextEditor(props: AttributedTextEditorProps & BoundFocusProps): ReactNode;
|
|
207
|
+
export declare function TextEditor<F extends FocusValue>(props: AttributedTextEditorProps & SharedFocusProps<F>): ReactNode;
|
|
208
|
+
export {};
|
|
133
209
|
//# sourceMappingURL=controls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqD,cAAc,
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,24 @@ export declare function geometryProxy(reported: ReportedGeometry, spaces: Readon
|
|
|
78
78
|
* page for them from then on.
|
|
79
79
|
*/
|
|
80
80
|
export declare function GeometryReader(props: GeometryReaderProps): ReactNode;
|
|
81
|
+
export type GeometryChangeHandler = ((proxy: GeometryProxy) => void) | GeometryChangeSpec<any>;
|
|
82
|
+
export interface GeometryChangeSpec<T> {
|
|
83
|
+
/** The `of:` transform: what of the view's geometry the action watches (`proxy.size`, `proxy.frame('global')`…). */
|
|
84
|
+
of: (proxy: GeometryProxy) => T;
|
|
85
|
+
/** Called when the transform's answer changes, with the new and the old value (the first time, both the new). */
|
|
86
|
+
action: (value: T, oldValue: T) => void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* `.onGeometryChange(for:of:action:)` (iOS 18): the view in a box that
|
|
90
|
+
* reports its size (and its frame on screen once the transform reads it,
|
|
91
|
+
* kept current as the page scrolls) without changing its layout; the
|
|
92
|
+
* action runs after the render that heard a change, as SwiftUI's does, so it
|
|
93
|
+
* may set state. A function form is called with the proxy on every change.
|
|
94
|
+
*/
|
|
95
|
+
export declare function GeometryChangeView({ handler, children }: {
|
|
96
|
+
handler: GeometryChangeHandler;
|
|
97
|
+
children?: ReactNode;
|
|
98
|
+
}): ReactNode;
|
|
81
99
|
/** A proposal axis: points, `Infinity`, or `null` (unspecified). */
|
|
82
100
|
export interface LayoutProposal {
|
|
83
101
|
width: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/components/geometry.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAa,aAAa,EAAE,sBAAsB,EAAsC,MAAM,gCAAgC,CAAC;AAC3I,OAAO,
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/components/geometry.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/components/images.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/components/images.tsx"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9E,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,kGAAkG;IAClG,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CA8D5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/components/lists.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAA2D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhG,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAW5F,gEAAgE;AAChE,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gCAAgC;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,sHAAsH;IACtH,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACtE,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CA8ChE;AAED,+DAA+D;AAC/D,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAEvG;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,iGAAiG;IACjG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/components/lists.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAA2D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhG,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAW5F,gEAAgE;AAChE,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gCAAgC;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,sHAAsH;IACtH,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACtE,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CA8ChE;AAED,+DAA+D;AAC/D,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAEvG;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,iGAAiG;IACjG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAatD"}
|
|
@@ -42,10 +42,22 @@ interface PlayerState {
|
|
|
42
42
|
status: 'playing' | 'waiting' | 'paused';
|
|
43
43
|
failed: string | null;
|
|
44
44
|
}
|
|
45
|
+
export interface AVPlayerOptions {
|
|
46
|
+
loop?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* `addPeriodicTimeObserver(forInterval:)`: how often, in seconds, the
|
|
49
|
+
* position is reported while playing (`onTime`); four times a second
|
|
50
|
+
* without it. A scrubber that moves with the sound asks for a frame
|
|
51
|
+
* (`1 / 60`): the page reports once per animation frame, the native app
|
|
52
|
+
* sixty times a second.
|
|
53
|
+
*/
|
|
54
|
+
report?: number;
|
|
55
|
+
}
|
|
45
56
|
/**
|
|
46
57
|
* `AVPlayer`: what plays, the rate, mute and volume, seeks. A view showing
|
|
47
58
|
* it re-renders when those change; the position (`currentTime`, several
|
|
48
|
-
* reports a second) re-renders nothing: read
|
|
59
|
+
* reports a second, or as often as `report` asks) re-renders nothing: read
|
|
60
|
+
* it or listen with `onTime`.
|
|
49
61
|
*/
|
|
50
62
|
export declare class AVPlayer {
|
|
51
63
|
protected state: PlayerState;
|
|
@@ -53,9 +65,9 @@ export declare class AVPlayer {
|
|
|
53
65
|
private timeListeners;
|
|
54
66
|
private time;
|
|
55
67
|
private serial;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
68
|
+
/** @internal The `report` interval for the views showing this player. */
|
|
69
|
+
readonly report: number | undefined;
|
|
70
|
+
constructor(url?: string | null, options?: AVPlayerOptions);
|
|
59
71
|
get url(): string | null;
|
|
60
72
|
get rate(): number;
|
|
61
73
|
get isPlaying(): boolean;
|
|
@@ -96,9 +108,7 @@ export declare class AVPlayer {
|
|
|
96
108
|
*/
|
|
97
109
|
export declare class AVQueuePlayer extends AVPlayer {
|
|
98
110
|
private upcoming;
|
|
99
|
-
constructor(urls?: readonly string[], options?:
|
|
100
|
-
loop?: boolean;
|
|
101
|
-
});
|
|
111
|
+
constructor(urls?: readonly string[], options?: AVPlayerOptions);
|
|
102
112
|
/** The current item (if any) and the items after it. */
|
|
103
113
|
items(): string[];
|
|
104
114
|
/** Plays the next item, or ends with nothing (`currentItem` null, paused) when there is none. */
|
|
@@ -111,9 +121,7 @@ export declare class AVQueuePlayer extends AVPlayer {
|
|
|
111
121
|
protected ended(): void;
|
|
112
122
|
}
|
|
113
123
|
/** A player kept for the component's life, re-rendering it when what it plays changes. */
|
|
114
|
-
export declare function useAVPlayer(url?: string | null, options?:
|
|
115
|
-
loop?: boolean;
|
|
116
|
-
}): AVPlayer;
|
|
124
|
+
export declare function useAVPlayer(url?: string | null, options?: AVPlayerOptions): AVPlayer;
|
|
117
125
|
export interface VideoPlayerProps extends ViewModifiers {
|
|
118
126
|
player: AVPlayer | null;
|
|
119
127
|
/** `videoGravity`: fit (default), fill, or stretch. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/components/media.tsx"],"names":[],"mappings":"AAAA,kGAAkG;AAElG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpG,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAM9E,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,aAAa,GACb;IAAE,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAC7D;IAAE,QAAQ,EAAE;QAAE,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC;CAClD;AAED,kHAAkH;AAClH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,SAAS,CAgDjF;AAMD,KAAK,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE5D,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/components/media.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
import type { FrameAlignment, GridItem as GridItemProps, GridRowAlignment, HStackAlignment, ScrollAxes, VStackAlignment } from '@swiftbrowser/web/src/protocol';
|
|
1
|
+
import type { FrameAlignment, GridItem as GridItemProps, GridRowAlignment, HStackAlignment, PinnedView, ScrollAxes, ScrollGeometryEvent, VStackAlignment } from '@swiftbrowser/web/src/protocol';
|
|
2
2
|
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
|
|
7
|
-
import type { BindingValue } from '../binding';
|
|
6
|
+
import { type ScrollPositionBinding } from '../scrollReader';
|
|
8
7
|
import { type ScrollSettings } from '../scrollEnvironment';
|
|
8
|
+
/**
|
|
9
|
+
* `PinnedScrollableViews`: what a lazy stack or grid keeps in view
|
|
10
|
+
* (`pinnedViews: [.sectionHeaders]`): each `Section`'s header stays at the
|
|
11
|
+
* scroll view's leading edge while its section passes, pushed out by the
|
|
12
|
+
* next section's; a footer stays at the trailing edge the same way.
|
|
13
|
+
*/
|
|
14
|
+
export type PinnedViews = PinnedView[];
|
|
15
|
+
/** The pinned views of the lazy stack or grid around a `Section` (its string header then becomes a view, so it can pin). */
|
|
16
|
+
export declare const PinnedContext: import("react").Context<PinnedViews | null>;
|
|
9
17
|
export interface VStackProps extends ViewModifiers {
|
|
10
18
|
alignment?: VStackAlignment;
|
|
11
19
|
spacing?: number | null;
|
|
12
20
|
/** `.scrollTargetLayout()`: the children are the enclosing scroll view's snap points. */
|
|
13
21
|
scrollTargetLayout?: boolean;
|
|
22
|
+
/** `LazyVStack(pinnedViews:)` (a `LazyVStack`'s; see `PinnedViews`). */
|
|
23
|
+
pinnedViews?: PinnedViews;
|
|
14
24
|
children?: ReactNode;
|
|
15
25
|
}
|
|
16
26
|
export declare function VStack(props: VStackProps): ReactNode;
|
|
@@ -18,6 +28,8 @@ export interface HStackProps extends ViewModifiers {
|
|
|
18
28
|
alignment?: HStackAlignment | 'firstTextBaseline' | 'lastTextBaseline';
|
|
19
29
|
spacing?: number | null;
|
|
20
30
|
scrollTargetLayout?: boolean;
|
|
31
|
+
/** `LazyHStack(pinnedViews:)` (a `LazyHStack`'s; see `PinnedViews`). */
|
|
32
|
+
pinnedViews?: PinnedViews;
|
|
21
33
|
children?: ReactNode;
|
|
22
34
|
}
|
|
23
35
|
export declare function HStack(props: HStackProps): ReactNode;
|
|
@@ -37,6 +49,8 @@ export interface ScrollViewProps extends ViewModifiers {
|
|
|
37
49
|
scrollTargetBehavior?: 'viewAligned' | 'paging';
|
|
38
50
|
/** `.scrollDismissesKeyboard(.immediately)` */
|
|
39
51
|
scrollDismissesKeyboard?: boolean;
|
|
52
|
+
/** `.scrollIndicators(_:)`: `hidden` draws no scroll bars (a pager's). */
|
|
53
|
+
scrollIndicators?: 'automatic' | 'visible' | 'hidden';
|
|
40
54
|
/**
|
|
41
55
|
* `.defaultScrollAnchor(_:)`: where the content starts (`"bottom"`: its end
|
|
42
56
|
* in view, as a chat) and stays when it grows while the viewer is there;
|
|
@@ -48,10 +62,58 @@ export interface ScrollViewProps extends ViewModifiers {
|
|
|
48
62
|
* (the leading edge unless `scrollPositionAnchor` says otherwise), set
|
|
49
63
|
* when scrolling settles; setting it scrolls there.
|
|
50
64
|
*/
|
|
51
|
-
scrollPosition?:
|
|
65
|
+
scrollPosition?: ScrollPositionBinding;
|
|
52
66
|
scrollPositionAnchor?: UnitPointValue;
|
|
67
|
+
/**
|
|
68
|
+
* `.onScrollGeometryChange(for:of:action:)`: hears the scroll view's
|
|
69
|
+
* geometry (its content offset and size, its own size, the visible
|
|
70
|
+
* rectangle) as it scrolls and lays out. A function is called on every
|
|
71
|
+
* change; `{ of, action }` calls `action(value, oldValue)` only when `of`
|
|
72
|
+
* (the `for:` transform) answers differently, so an app that watches the
|
|
73
|
+
* content size alone is not rendered per frame of a scroll.
|
|
74
|
+
*/
|
|
75
|
+
onScrollGeometryChange?: ScrollGeometryChangeHandler;
|
|
53
76
|
children?: ReactNode;
|
|
54
77
|
}
|
|
78
|
+
/** SwiftUI's `ScrollGeometry`. */
|
|
79
|
+
export interface ScrollGeometry {
|
|
80
|
+
/** The visible area's origin in the content. */
|
|
81
|
+
contentOffset: {
|
|
82
|
+
x: number;
|
|
83
|
+
y: number;
|
|
84
|
+
};
|
|
85
|
+
contentSize: {
|
|
86
|
+
width: number;
|
|
87
|
+
height: number;
|
|
88
|
+
};
|
|
89
|
+
/** The scroll view's own size. */
|
|
90
|
+
containerSize: {
|
|
91
|
+
width: number;
|
|
92
|
+
height: number;
|
|
93
|
+
};
|
|
94
|
+
/** Space the view scrolls into past its content (under a bar covering its bottom). */
|
|
95
|
+
contentInsets: {
|
|
96
|
+
top: number;
|
|
97
|
+
leading: number;
|
|
98
|
+
bottom: number;
|
|
99
|
+
trailing: number;
|
|
100
|
+
};
|
|
101
|
+
/** The content's part in view: `contentOffset` and `containerSize`. */
|
|
102
|
+
visibleRect: {
|
|
103
|
+
x: number;
|
|
104
|
+
y: number;
|
|
105
|
+
width: number;
|
|
106
|
+
height: number;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export type ScrollGeometryChangeHandler = ((geometry: ScrollGeometry) => void) | ScrollGeometryChangeSpec<any>;
|
|
110
|
+
export interface ScrollGeometryChangeSpec<T> {
|
|
111
|
+
/** The `for:` transform: what of the geometry the action watches. */
|
|
112
|
+
of: (geometry: ScrollGeometry) => T;
|
|
113
|
+
action: (value: T, oldValue: T) => void;
|
|
114
|
+
}
|
|
115
|
+
/** The geometry a `scrollgeometry` event reports. */
|
|
116
|
+
export declare function scrollGeometryOf(event: ScrollGeometryEvent): ScrollGeometry;
|
|
55
117
|
export declare function ScrollView(props: ScrollViewProps): ReactNode;
|
|
56
118
|
/**
|
|
57
119
|
* The scroll modifiers written on a `ScrollView` or `List` itself: they apply
|
|
@@ -144,6 +206,8 @@ export interface LazyVGridProps extends ViewModifiers {
|
|
|
144
206
|
columns: GridItemProps[];
|
|
145
207
|
alignment?: FrameAlignment;
|
|
146
208
|
spacing?: number | null;
|
|
209
|
+
/** `LazyVGrid(pinnedViews:)`: the `Section` headers (footers) stay in view as their cells scroll. */
|
|
210
|
+
pinnedViews?: PinnedViews;
|
|
147
211
|
children?: ReactNode;
|
|
148
212
|
}
|
|
149
213
|
export declare function LazyVGrid(props: LazyVGridProps): ReactNode;
|
|
@@ -153,6 +217,8 @@ export interface LazyHGridProps extends ViewModifiers {
|
|
|
153
217
|
alignment?: 'top' | 'center' | 'bottom' | 'firstTextBaseline' | 'lastTextBaseline';
|
|
154
218
|
/** Between the columns (8 by default). */
|
|
155
219
|
spacing?: number | null;
|
|
220
|
+
/** `LazyHGrid(pinnedViews:)`: as for `LazyVGrid`, along the leading edge. */
|
|
221
|
+
pinnedViews?: PinnedViews;
|
|
156
222
|
children?: ReactNode;
|
|
157
223
|
}
|
|
158
224
|
/**
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/components/stacks.tsx"],"names":[],"mappings":"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"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* below it (`.buttonStyle`, `.controlSize`…), and the device environment the
|
|
4
4
|
* page sets (color scheme, Dynamic Type size).
|
|
5
5
|
*/
|
|
6
|
-
import type { ButtonStyle, ColorScheme, DynamicTypeSize, PickerStyle } from '@swiftbrowser/web/src/protocol';
|
|
6
|
+
import type { ButtonStyle, ColorScheme, DynamicTypeSize, PickerStyle, ToggleStyle } from '@swiftbrowser/web/src/protocol';
|
|
7
7
|
import { type ReactNode } from 'react';
|
|
8
8
|
export type ControlSize = 'mini' | 'small' | 'regular' | 'large' | 'extraLarge';
|
|
9
9
|
/** `.symbolRenderingMode(_:)`: `palette` draws a symbol's layers in the foreground styles' levels. */
|
|
@@ -23,6 +23,7 @@ export interface ViewEnvironment {
|
|
|
23
23
|
buttonStyle?: ButtonStyle;
|
|
24
24
|
controlSize?: ControlSize;
|
|
25
25
|
pickerStyle?: PickerStyle;
|
|
26
|
+
toggleStyle?: ToggleStyle;
|
|
26
27
|
labelsHidden?: boolean;
|
|
27
28
|
/** `.refreshable`: the nearest `List` or `ScrollView` below runs it on a pull. */
|
|
28
29
|
refresh?: () => unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fileManager`: Foundation's `FileManager.default` for the app's own files,
|
|
3
|
+
* with `URL.documentsDirectory` and its siblings. Paths are `file:` URLs. On
|
|
4
|
+
* a page the files live in the app's IndexedDB database, the same iOS-like
|
|
5
|
+
* home a Swift app has there (`/data`: `Documents`, `Library/Application
|
|
6
|
+
* Support`, `Library/Caches`, and `/tmp` for the session); in a SwiftBrowser
|
|
7
|
+
* Native app they are the app's sandbox. The calls are asynchronous on both,
|
|
8
|
+
* since the page's storage is: the one departure from Swift.
|
|
9
|
+
*
|
|
10
|
+
* `loadURL` is what a `VideoPlayer`, an `AudioPlayer` or an `Image` loads a
|
|
11
|
+
* file at; they call it themselves for a `file:` URL, so an app hands them
|
|
12
|
+
* the file's URL as it would natively.
|
|
13
|
+
*/
|
|
14
|
+
import type { FileAttributes, FileDirectories, FilesHost } from '@swiftbrowser/web/src/files';
|
|
15
|
+
export type { FileAttributes, FileDirectories };
|
|
16
|
+
/** What `write` takes: bytes, a Blob or a File, or text (written as UTF-8). */
|
|
17
|
+
export type FileContents = Uint8Array | ArrayBuffer | Blob | string;
|
|
18
|
+
export interface FileManager {
|
|
19
|
+
/** Whether this page or app keeps files; the calls below fail `unsupported: …` where it does not. */
|
|
20
|
+
readonly available: boolean;
|
|
21
|
+
/** `URL.documentsDirectory`: the app's documents, kept across launches. */
|
|
22
|
+
readonly documentsDirectory: string;
|
|
23
|
+
/** `URL.applicationSupportDirectory`: the app's own data, kept across launches. */
|
|
24
|
+
readonly applicationSupportDirectory: string;
|
|
25
|
+
/** `URL.cachesDirectory`: what can be made again. */
|
|
26
|
+
readonly cachesDirectory: string;
|
|
27
|
+
/** `FileManager.temporaryDirectory`: empty at every launch. */
|
|
28
|
+
readonly temporaryDirectory: string;
|
|
29
|
+
/** `url.appending(path:)`: the `file:` URL of `path` below `directory`. */
|
|
30
|
+
url(directory: string, path: string): string;
|
|
31
|
+
/** `Data(contentsOf:)`: the file's bytes. */
|
|
32
|
+
contents(url: string): Promise<Uint8Array>;
|
|
33
|
+
/** `String(contentsOf:)`: the file as UTF-8 text. */
|
|
34
|
+
text(url: string): Promise<string>;
|
|
35
|
+
/** `Data.write(to:)`: writes the file, replacing one there; its directory must exist. */
|
|
36
|
+
write(url: string, contents: FileContents): Promise<void>;
|
|
37
|
+
/** `contentsOfDirectory(at:)`: the URLs of what the directory holds, by name. */
|
|
38
|
+
contentsOfDirectory(url: string): Promise<string[]>;
|
|
39
|
+
/** `createDirectory(at:withIntermediateDirectories: true)`. */
|
|
40
|
+
createDirectory(url: string): Promise<void>;
|
|
41
|
+
/** `fileExists(atPath:)`. */
|
|
42
|
+
fileExists(url: string): Promise<boolean>;
|
|
43
|
+
/** `attributesOfItem(atPath:)`: the size, the modification time where known, and whether it is a directory; fails `notFound: …`. */
|
|
44
|
+
attributesOfItem(url: string): Promise<FileAttributes>;
|
|
45
|
+
/** `moveItem(at:to:)`: to a URL nothing is at, in a directory that exists. */
|
|
46
|
+
moveItem(from: string, to: string): Promise<void>;
|
|
47
|
+
/** `copyItem(at:to:)`: to a URL nothing is at, in a directory that exists. */
|
|
48
|
+
copyItem(from: string, to: string): Promise<void>;
|
|
49
|
+
/** `removeItem(at:)`: a file, or a directory and all it holds. */
|
|
50
|
+
removeItem(url: string): Promise<void>;
|
|
51
|
+
/** A URL the page can load the file at (an object URL of its bytes; natively the URL itself). */
|
|
52
|
+
loadURL(url: string): Promise<string>;
|
|
53
|
+
}
|
|
54
|
+
/** A file manager over the host `host` answers (the environment's, looked up at each call, for the default). */
|
|
55
|
+
export declare function createFileManager(host: () => FilesHost | undefined): FileManager;
|
|
56
|
+
/** `FileManager.default`: the app's files through the renderer environment's host. */
|
|
57
|
+
export declare const fileManager: FileManager;
|
|
58
|
+
//# sourceMappingURL=fileManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileManager.d.ts","sourceRoot":"","sources":["../src/fileManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI9F,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,qGAAqG;IACrG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,mFAAmF;IACnF,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,qDAAqD;IACrD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,+DAA+D;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,qDAAqD;IACrD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,yFAAyF;IACzF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iFAAiF;IACjF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,+DAA+D;IAC/D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6BAA6B;IAC7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,oIAAoI;IACpI,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,kEAAkE;IAClE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,iGAAiG;IACjG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAmBD,gHAAgH;AAChH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,CAwChF;AAED,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,WAA+D,CAAC"}
|
package/dist/host/root.d.ts
CHANGED
|
@@ -26,11 +26,25 @@ export type { ColorScheme, DynamicTypeSize, Op };
|
|
|
26
26
|
* place. Call it before the first root; `react-dom` does the same for itself.
|
|
27
27
|
*/
|
|
28
28
|
export declare function injectIntoDevTools(): boolean;
|
|
29
|
+
/** `AnimationCompletionCriteria`: when a `withAnimation` completion runs. */
|
|
30
|
+
export type AnimationCompletionCriteria = 'logicallyComplete' | 'removed';
|
|
31
|
+
export interface WithAnimationOptions {
|
|
32
|
+
/**
|
|
33
|
+
* `logicallyComplete` (the default) calls the completion when the
|
|
34
|
+
* animation's duration has passed; `removed` once every effect of it is
|
|
35
|
+
* gone (a spring's last settling included).
|
|
36
|
+
*/
|
|
37
|
+
completionCriteria?: AnimationCompletionCriteria;
|
|
38
|
+
}
|
|
29
39
|
/**
|
|
30
40
|
* `withAnimation { }`: the state changes `body` makes render in one pass whose
|
|
31
41
|
* `commit` carries the animation, so the renderer animates every frame and
|
|
32
|
-
* style change of the pass.
|
|
42
|
+
* style change of the pass. With a `completion`
|
|
43
|
+
* (`withAnimation(_:completionCriteria:_:completion:)`) the renderer answers
|
|
44
|
+
* once the pass has finished animating and the completion runs then; a body
|
|
45
|
+
* that changes nothing to render runs it at once.
|
|
33
46
|
*/
|
|
34
|
-
export declare function withAnimation<T>(animation: Animation | undefined, body: () => T): T;
|
|
47
|
+
export declare function withAnimation<T>(animation: Animation | undefined, body: () => T, completion?: () => void): T;
|
|
48
|
+
export declare function withAnimation<T>(animation: Animation | undefined, options: WithAnimationOptions, body: () => T, completion?: () => void): T;
|
|
35
49
|
export declare function withAnimation<T>(body: () => T): T;
|
|
36
50
|
//# sourceMappingURL=root.d.ts.map
|
package/dist/host/root.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/host/root.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACjH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,MAAM,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC;IAChB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,kFAAkF;IAClF,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACzD;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAgD5D;AAED,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/host/root.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACjH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,MAAM,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC;IAChB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,kFAAkF;IAClF,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACzD;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAgD5D;AAED,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,6EAA6E;AAC7E,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;CAClD;AAID;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;AAC9G,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;AAC7I,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/host/tree.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ export declare class HostTree {
|
|
|
19
19
|
private retired;
|
|
20
20
|
/** `withAnimation`: stamped on the next `commit`. */
|
|
21
21
|
pendingAnimation: Animation | undefined;
|
|
22
|
+
/** `withAnimation(_:completionCriteria:_:completion:)`: stamped on the next `commit` with its serial; the callback waits in `completions`. */
|
|
23
|
+
pendingCompletion: {
|
|
24
|
+
serial: number;
|
|
25
|
+
criteria: 'logicallyComplete' | 'removed';
|
|
26
|
+
callback: () => void;
|
|
27
|
+
} | undefined;
|
|
28
|
+
private readonly completions;
|
|
22
29
|
/** The root's `colorScheme` last sent (`.preferredColorScheme`); undefined while none was. */
|
|
23
30
|
private committedColorScheme;
|
|
24
31
|
constructor(sink: OpsSink);
|
|
@@ -27,6 +34,8 @@ export declare class HostTree {
|
|
|
27
34
|
/** Emit the ops for everything that changed since the last commit. */
|
|
28
35
|
commit(): void;
|
|
29
36
|
flush(): Op[];
|
|
37
|
+
/** Whether a pass is still animating with this completion serial. */
|
|
38
|
+
awaitsCompletion(serial: number): boolean;
|
|
30
39
|
/** Hand a renderer event to the element's handler for its type. */
|
|
31
40
|
dispatch(event: RendererEvent): void;
|
|
32
41
|
}
|
package/dist/host/tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/host/tree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/host/tree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAY,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAEhH,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;AAqC1C,qBAAa,QAAQ;IAgBP,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAgE;IACvF,OAAO,CAAC,MAAM,CAAK;IACnB,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,aAAa,CAAuB;IAC5C,4EAA4E;IAC5E,OAAO,CAAC,OAAO,CAAgB;IAC/B,qDAAqD;IACrD,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC;IACxC,8IAA8I;IAC9I,iBAAiB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACnH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,8FAA8F;IAC9F,OAAO,CAAC,oBAAoB,CAAsC;gBAErC,IAAI,EAAE,OAAO;IAE1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAgB1C,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAoBzD,sEAAsE;IACtE,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,EAAE,EAAE;IAwHb,qEAAqE;IACrE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIzC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAgBrC;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAazD"}
|