@swiftbrowser/react 0.17.8 → 0.18.0

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.
Files changed (49) hide show
  1. package/README.md +243 -14
  2. package/dist/appStorage.d.ts +43 -0
  3. package/dist/appStorage.d.ts.map +1 -0
  4. package/dist/attributedText.d.ts +76 -0
  5. package/dist/attributedText.d.ts.map +1 -0
  6. package/dist/audioRecorder.d.ts +52 -0
  7. package/dist/audioRecorder.d.ts.map +1 -0
  8. package/dist/bridge.d.ts.map +1 -1
  9. package/dist/components/charts.d.ts +5 -0
  10. package/dist/components/charts.d.ts.map +1 -1
  11. package/dist/components/containers.d.ts +5 -0
  12. package/dist/components/containers.d.ts.map +1 -1
  13. package/dist/components/controls.d.ts +84 -8
  14. package/dist/components/controls.d.ts.map +1 -1
  15. package/dist/components/geometry.d.ts +18 -0
  16. package/dist/components/geometry.d.ts.map +1 -1
  17. package/dist/components/images.d.ts.map +1 -1
  18. package/dist/components/lists.d.ts.map +1 -1
  19. package/dist/components/media.d.ts +18 -10
  20. package/dist/components/media.d.ts.map +1 -1
  21. package/dist/components/stacks.d.ts +70 -4
  22. package/dist/components/stacks.d.ts.map +1 -1
  23. package/dist/environment.d.ts +2 -1
  24. package/dist/environment.d.ts.map +1 -1
  25. package/dist/fileManager.d.ts +58 -0
  26. package/dist/fileManager.d.ts.map +1 -0
  27. package/dist/host/root.d.ts +16 -2
  28. package/dist/host/root.d.ts.map +1 -1
  29. package/dist/host/tree.d.ts +9 -0
  30. package/dist/host/tree.d.ts.map +1 -1
  31. package/dist/index.d.ts +9 -3
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1200 -369
  34. package/dist/index.js.map +1 -1
  35. package/dist/measureText.d.ts +32 -0
  36. package/dist/measureText.d.ts.map +1 -0
  37. package/dist/modifiers.d.ts +81 -5
  38. package/dist/modifiers.d.ts.map +1 -1
  39. package/dist/mount.d.ts +5 -0
  40. package/dist/mount.d.ts.map +1 -1
  41. package/dist/presentation.d.ts +5 -1
  42. package/dist/presentation.d.ts.map +1 -1
  43. package/dist/scrollReader.d.ts +34 -8
  44. package/dist/scrollReader.d.ts.map +1 -1
  45. package/dist/undo.d.ts +108 -0
  46. package/dist/undo.d.ts.map +1 -0
  47. package/dist/visualEffect.d.ts +10 -14
  48. package/dist/visualEffect.d.ts.map +1 -1
  49. 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 TextFieldProps extends ViewModifiers {
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
- /** `.focused($isFocused)`: the field takes the focus while true, and sets it as the viewer focuses or leaves it. */
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 declare function TextField(props: TextFieldProps): ReactNode;
77
- export declare function SecureField(props: Omit<TextFieldProps, 'secure'>): ReactNode;
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
- export interface TextEditorProps extends ViewModifiers {
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
- /** `TextEditor(text:)`: a multi-line field filling its proposal. */
132
- export declare function TextEditor(props: TextEditorProps): ReactNode;
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":"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"}
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":"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"}
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":"AAAA,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,CA2D5D"}
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,CAStD"}
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 it or listen with `onTime`.
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
- constructor(url?: string | null, options?: {
57
- loop?: boolean;
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":"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"}
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 ScrollPositionValue } from '../scrollReader';
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?: BindingValue<ScrollPositionValue>;
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;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,EAAqB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,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;;;;OAIG;IACH,cAAc,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,cAAc,CAa7E;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,CAEhG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,CAmBhH;AAED,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,sDAAsD;AACtD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAIlD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,aAAa;IACpD,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,iGAAiG;IACjG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACxC,iHAAiH;IACjH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CACpD;AAED,iHAAiH;AACjH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAO7F;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAoB5D;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,YAAY,EAAE,CAkCzG;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACtI,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/C;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,IAAI,GAAE,YAAiB,GAAG,aAAa,CAW/D;yBAXe,QAAQ;6BAYM;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,cAAc,CAAA;KAAE,KAAQ,aAAa;uBAE9G,MAAM,YAAW;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,cAAc,CAAA;KAAE,KAAQ,aAAa;4BAEjF;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,cAAc,CAAA;KAAE,KAAG,aAAa;;AAGjI,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAM1D;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,iFAAiF;IACjF,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;IACnF,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAM1D;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAWhD;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAGtD"}
1
+ {"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/components/stacks.tsx"],"names":[],"mappings":"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"}
@@ -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":"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"}
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"}
@@ -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
@@ -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;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACrF,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC"}
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"}
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/host/tree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnF,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;IAaP,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,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,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;IA8Gb,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAUrC;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAazD"}
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"}