@swiftbrowser/react 0.9.13 → 0.10.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 +28 -2
- package/dist/components/charts.d.ts +2 -0
- package/dist/components/charts.d.ts.map +1 -1
- package/dist/components/controls.d.ts +8 -0
- package/dist/components/controls.d.ts.map +1 -1
- package/dist/components/images.d.ts +9 -0
- package/dist/components/images.d.ts.map +1 -1
- package/dist/environment.d.ts +13 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/fileImporter.d.ts +20 -0
- package/dist/fileImporter.d.ts.map +1 -0
- package/dist/host/root.d.ts +7 -0
- package/dist/host/root.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -5
- package/dist/index.js.map +1 -1
- package/dist/modifiers.d.ts +12 -1
- package/dist/modifiers.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -399,6 +399,30 @@ real views laid over the canvas, so they draw above its other commands. `useAVPl
|
|
|
399
399
|
mute, volume, rate) that `VideoPlayer` shows in the page's `<video>`; the
|
|
400
400
|
position is read or observed without re-rendering.
|
|
401
401
|
|
|
402
|
+
An image is inert, as a SwiftUI image is. `<AsyncImage url={…}
|
|
403
|
+
webInteractions />` gives a remote picture the browser's own image
|
|
404
|
+
interactions back: a long press's Save / Share / Copy on iOS, dragging it
|
|
405
|
+
out of the page, the right-click menu. Use it on an image with no tap,
|
|
406
|
+
gesture or context menu of its own.
|
|
407
|
+
|
|
408
|
+
`keyboardType`, `textContentType`, `textInputAutocapitalization` and
|
|
409
|
+
`autocorrectionDisabled` are SwiftUI's text input hints, for the field they
|
|
410
|
+
are written on or the fields below: `<TextField text={[email, setEmail]}
|
|
411
|
+
keyboardType="emailAddress" textContentType="emailAddress"
|
|
412
|
+
textInputAutocapitalization="never" />` asks for the email keyboard and
|
|
413
|
+
autofill, without capitals.
|
|
414
|
+
|
|
415
|
+
`fileImporter` is the browser's file chooser, opened when `isPresented`
|
|
416
|
+
turns true; set it from a button's action, since a browser opens a chooser
|
|
417
|
+
only within a tap. `onCompletion` gets the chosen `File`s, and a dismissed
|
|
418
|
+
chooser calls `onCancellation`:
|
|
419
|
+
|
|
420
|
+
```tsx
|
|
421
|
+
<Button title="Upload Logo" action={() => setImporting(true)}
|
|
422
|
+
fileImporter={{ isPresented: [importing, setImporting], allowedContentTypes: ['image/png', 'image/jpeg', '.svg'],
|
|
423
|
+
onCompletion: ([file]) => upload(file) }} />
|
|
424
|
+
```
|
|
425
|
+
|
|
402
426
|
### Mouse, keyboard and effects
|
|
403
427
|
|
|
404
428
|
A web app may have a mouse and a keyboard, so the modifiers SwiftUI keeps
|
|
@@ -436,7 +460,9 @@ with their values in `x` and `y`: categories, numbers or dates. The
|
|
|
436
460
|
component builds the scales and ticks the Swift Charts module builds
|
|
437
461
|
(bands, nice numeric domains that include zero, calendar strides), groups
|
|
438
462
|
lines and areas by series, colors `foregroundStyleBy` series from the chart
|
|
439
|
-
palette with a legend, and places `annotation`s.
|
|
463
|
+
palette with a legend, and places `annotation`s. `yAxisFormat` writes
|
|
464
|
+
the numeric axis's labels (`.chartYAxis { AxisMarks(format:) }`), as in
|
|
465
|
+
`yAxisFormat={(v) => `$${v}`}`.
|
|
440
466
|
|
|
441
467
|
## Mixing with ordinary React
|
|
442
468
|
|
|
@@ -567,7 +593,7 @@ read with a hook). Props, callbacks and external stores need no bridging.
|
|
|
567
593
|
- **Controls**: `Button` (styles, roles, sizes), `Toggle`, `Picker`,
|
|
568
594
|
`Slider`, `Stepper`, `TextField` and `SecureField` (focus bindings, submit
|
|
569
595
|
labels), `TextEditor`, `DatePicker`, `ColorPicker`, `ShareLink`, `Menu`,
|
|
570
|
-
`EditButton`.
|
|
596
|
+
`EditButton`, `fileImporter`.
|
|
571
597
|
- **Containers**: `List` (selection, edit mode, swipe actions, deletion,
|
|
572
598
|
reordering, pull to refresh), `Form`, `Section`, `Table`, `GroupBox`,
|
|
573
599
|
`DisclosureGroup`, `ControlGroup`, `ContentUnavailableView`.
|
|
@@ -86,6 +86,8 @@ export interface ChartProps extends ViewModifiers {
|
|
|
86
86
|
domain?: readonly [number, number];
|
|
87
87
|
includesZero?: boolean;
|
|
88
88
|
};
|
|
89
|
+
/** `.chartYAxis { AxisMarks(format:) }`: the text of a numeric axis's labels (`(v) => `$${v}``). */
|
|
90
|
+
yAxisFormat?: (value: number) => string;
|
|
89
91
|
children?: ReactNode;
|
|
90
92
|
}
|
|
91
93
|
/** Steps of 1, 2, 2.5, 5 × 10ᵏ, the one nearest `span / (desired − 1)`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../src/components/charts.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../src/components/charts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ export interface ButtonProps extends ViewModifiers {
|
|
|
8
8
|
action?: () => void;
|
|
9
9
|
/** The label, when there is no `title`. */
|
|
10
10
|
children?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* What `EditButton` sets: the edit mode the button shows and flips. The
|
|
13
|
+
* `button` op carries it so a native renderer can draw the platform's edit
|
|
14
|
+
* button (iOS's checkmark while editing); the web renderer draws the title.
|
|
15
|
+
*/
|
|
16
|
+
editMode?: 'active' | 'inactive';
|
|
11
17
|
}
|
|
12
18
|
export declare function Button(props: ButtonProps): ReactNode;
|
|
13
19
|
export interface ToggleProps extends ViewModifiers {
|
|
@@ -79,6 +85,8 @@ export interface ProgressViewProps extends ViewModifiers {
|
|
|
79
85
|
export declare function ProgressView(props: ProgressViewProps): ReactNode;
|
|
80
86
|
export interface ToolbarItemProps {
|
|
81
87
|
placement?: ToolbarItemPlacementName;
|
|
88
|
+
/** `.sharedBackgroundVisibility(_:)`: `hidden` draws the item without the bar's shared glass. */
|
|
89
|
+
sharedBackgroundVisibility?: 'automatic' | 'visible' | 'hidden';
|
|
82
90
|
children?: ReactNode;
|
|
83
91
|
}
|
|
84
92
|
/** `ToolbarItem(placement:) { }`, inside a `toolbar` modifier. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqD,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAY,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EAAsE,KAAK,wBAAwB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AASrJ,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/components/controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,15 @@ export interface AsyncImageProps extends ViewModifiers {
|
|
|
8
8
|
placeholder?: ReactNode;
|
|
9
9
|
/** Shown when the image failed to load (the placeholder by default). */
|
|
10
10
|
failure?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Keep the browser's own image interactions: a long press's Save / Share /
|
|
13
|
+
* Copy on iOS, dragging the image out, the right-click menu. Off by
|
|
14
|
+
* default, as a SwiftUI image is inert; for an image with no tap, gesture
|
|
15
|
+
* or context menu of its own.
|
|
16
|
+
*/
|
|
17
|
+
webInteractions?: boolean;
|
|
18
|
+
/** `.accessibilityLabel(_:)`: what the picture shows (alt text). */
|
|
19
|
+
accessibilityLabel?: string | undefined;
|
|
11
20
|
}
|
|
12
21
|
/**
|
|
13
22
|
* `AsyncImage(url:)`: the page loads the image to learn its size (the
|
|
@@ -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;AAE9E,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,CAAC;
|
|
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;AAE9E,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAuC5D"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -8,6 +8,17 @@ 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. */
|
|
10
10
|
export type SymbolRenderingMode = 'monochrome' | 'multicolor' | 'hierarchical' | 'palette';
|
|
11
|
+
/** The text input hints a text field carries (the `textfield` element's props of the same names). */
|
|
12
|
+
export interface TextInputHints {
|
|
13
|
+
keyboard?: KeyboardType | undefined;
|
|
14
|
+
contentType?: TextContentType | undefined;
|
|
15
|
+
autocapitalization?: 'never' | 'words' | 'sentences' | 'characters' | undefined;
|
|
16
|
+
autocorrectionDisabled?: boolean | undefined;
|
|
17
|
+
}
|
|
18
|
+
/** `UIKeyboardType`'s cases. */
|
|
19
|
+
export type KeyboardType = 'default' | 'asciiCapable' | 'numbersAndPunctuation' | 'URL' | 'numberPad' | 'phonePad' | 'namePhonePad' | 'emailAddress' | 'decimalPad' | 'twitter' | 'webSearch' | 'asciiCapableNumberPad';
|
|
20
|
+
/** `UITextContentType`'s names. */
|
|
21
|
+
export type TextContentType = 'name' | 'givenName' | 'familyName' | 'emailAddress' | 'telephoneNumber' | 'username' | 'password' | 'newPassword' | 'oneTimeCode' | 'URL' | 'fullStreetAddress' | 'postalCode' | 'creditCardNumber';
|
|
11
22
|
export interface ViewEnvironment {
|
|
12
23
|
buttonStyle?: ButtonStyle;
|
|
13
24
|
controlSize?: ControlSize;
|
|
@@ -17,6 +28,8 @@ export interface ViewEnvironment {
|
|
|
17
28
|
refresh?: () => unknown;
|
|
18
29
|
/** `.submitLabel`: the return key's label of the text fields below. */
|
|
19
30
|
submitLabel?: string;
|
|
31
|
+
/** `.keyboardType`, `.textContentType`, `.textInputAutocapitalization`, `.autocorrectionDisabled` for the text fields below. */
|
|
32
|
+
textInputHints?: TextInputHints;
|
|
20
33
|
/** `.labelStyle`: how the `Label`s below draw. */
|
|
21
34
|
labelStyle?: 'automatic' | 'titleAndIcon' | 'titleOnly' | 'iconOnly' | undefined;
|
|
22
35
|
/** `.redacted(reason: .placeholder)`: text and images below draw as placeholder shapes. */
|
|
@@ -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;AAC7G,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;AAEhF,sGAAsG;AACtG,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IACxB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACjF,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;IAC5C,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB,0CAAqC,CAAC;AAEzE,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,CAEvF;AAOD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,sGAAsG;IACtG,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,sCAI7B,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAEhH;AAED,oCAAoC;AACpC,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,mEAAmE;AACnE,eAAO,MAAM,cAAc,iCAAwB,IAAI,SAAe,CAAC;AAEvE,wBAAgB,UAAU,IAAI,MAAM,IAAI,CAGvC;AAED,4CAA4C;AAC5C,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED,oFAAoF;AACpF,wBAAgB,WAAW,IAAI,OAAO,CAErC"}
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `.fileImporter(isPresented:allowedContentTypes:…)`: the browser's file
|
|
3
|
+
* chooser in place of the Files app. A browser opens a chooser only within a
|
|
4
|
+
* tap; a tap's state changes render before its event returns (host/root.ts),
|
|
5
|
+
* so the layout effect that sees `isPresented` turn true opens it in time.
|
|
6
|
+
* Set `isPresented` from a button's action. `onCompletion` gets the chosen
|
|
7
|
+
* `File`s; a dismissed chooser calls `onCancellation` instead, as on iOS.
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from 'react';
|
|
10
|
+
import { type BindingValue } from './binding';
|
|
11
|
+
export interface FileImporterModifier {
|
|
12
|
+
isPresented: BindingValue<boolean>;
|
|
13
|
+
/** What the chooser offers (its `accept`): MIME types, patterns (`image/*`) or extensions (`.svg`); any file when empty. */
|
|
14
|
+
allowedContentTypes: string[];
|
|
15
|
+
allowsMultipleSelection?: boolean;
|
|
16
|
+
onCompletion: (files: File[]) => void;
|
|
17
|
+
onCancellation?: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function FileImporterPresenter(spec: FileImporterModifier): ReactNode;
|
|
20
|
+
//# sourceMappingURL=fileImporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileImporter.d.ts","sourceRoot":"","sources":["../src/fileImporter.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,4HAA4H;IAC5H,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,CAuB3E"}
|
package/dist/host/root.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ export interface SwiftUIRoot {
|
|
|
19
19
|
}
|
|
20
20
|
export declare function createSwiftUIRoot(sink: OpsSink): SwiftUIRoot;
|
|
21
21
|
export type { ColorScheme, DynamicTypeSize, Op };
|
|
22
|
+
/**
|
|
23
|
+
* Registers the reconciler with the React DevTools hook (`__REACT_DEVTOOLS_GLOBAL_HOOK__`)
|
|
24
|
+
* when the page has one: DevTools then sees the SwiftUI tree, and React Fast
|
|
25
|
+
* Refresh (whose runtime installs that hook) can refresh its components in
|
|
26
|
+
* place. Call it before the first root; `react-dom` does the same for itself.
|
|
27
|
+
*/
|
|
28
|
+
export declare function injectIntoDevTools(): boolean;
|
|
22
29
|
/**
|
|
23
30
|
* `withAnimation { }`: the state changes `body` makes render in one pass whose
|
|
24
31
|
* `commit` carries the animation, so the renderer animates every frame and
|
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;;;;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;;;;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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
* SwiftBrowser's render ops; `createSwiftUIRoot` hands them to the renderer
|
|
4
4
|
* of @swiftbrowser/web, which draws them with its iOS layout engine.
|
|
5
5
|
*/
|
|
6
|
-
export { createSwiftUIRoot, withAnimation, type SwiftUIRoot } from './host/root';
|
|
6
|
+
export { createSwiftUIRoot, injectIntoDevTools, withAnimation, type SwiftUIRoot } from './host/root';
|
|
7
7
|
export { mount, type MountOptions, type Mounted } from './mount';
|
|
8
8
|
export { SwiftUIView, type SwiftUIViewProps } from './island';
|
|
9
9
|
export { useContextBridge } from './bridge';
|
|
10
10
|
export type { Binding, BindingValue } from './binding';
|
|
11
11
|
export { readBinding } from './binding';
|
|
12
|
-
export { useColorScheme, useDynamicTypeSize, useHorizontalSizeClass, useRedacted, type HorizontalSizeClass, useDismiss, useViewEnvironment, type ControlSize, type SymbolRenderingMode, type Environment, type ViewEnvironment, } from './environment';
|
|
12
|
+
export { useColorScheme, useDynamicTypeSize, useHorizontalSizeClass, useRedacted, type HorizontalSizeClass, useDismiss, useViewEnvironment, type ControlSize, type SymbolRenderingMode, type KeyboardType, type TextContentType, type TextInputHints, type Environment, type ViewEnvironment, } from './environment';
|
|
13
13
|
export { useNavigation } from './navigation-context';
|
|
14
14
|
export type { ViewModifiers, ForegroundLayers, BackgroundValue, SearchableModifier, ToolbarItemPlacementName, ToolbarRole, DragGestureModifier, DragValue, MagnifyGestureModifier, RotateGestureModifier, PinchValue, SwipeActionsModifier, AlignmentGuideName, DropDestinationModifier, InspectorModifier, ContainerAxes, ContainerRelativeFrameValue, } from './modifiers';
|
|
15
15
|
export { VisualEffect, type ScrollTransitionClosure, type ScrollTransitionPhase, type ScrollTransitionSpec, type VisualEffectClosure, } from './visualEffect';
|
|
16
16
|
export type { ContentMarginsValue, ScrollEdgeEffectHiddenValue, ScrollEdgeEffectStyle, ScrollEdgeEffectStyleValue, ScrollEdges } from './scrollEnvironment';
|
|
17
17
|
export type { SheetModifier, AlertModifier, DetentValue } from './presentation';
|
|
18
|
+
export type { FileImporterModifier } from './fileImporter';
|
|
18
19
|
export * from './values';
|
|
19
20
|
export { Path, type CGRect, type Point } from './path';
|
|
20
21
|
export { ScrollViewReader, type ScrollViewProxy, type ScrollPositionValue } from './scrollReader';
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,11 +7,11 @@ import { watchKeyboard } from "@swiftbrowser/web/src/deviceMode";
|
|
|
7
7
|
import { Renderer } from "@swiftbrowser/web/src/renderer";
|
|
8
8
|
import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
|
|
9
9
|
import { applyTypeSizeVariables } from "@swiftbrowser/web/src/typography";
|
|
10
|
+
import { browserEnvironment, performHostRequest } from "@swiftbrowser/web/src/hostRequests";
|
|
10
11
|
import { registerHostContent, notifyHostContentChange, unregisterHostContent } from "@swiftbrowser/web/src/hostContent";
|
|
11
12
|
import { createRoot } from "react-dom/client";
|
|
12
13
|
import { flushSync } from "react-dom";
|
|
13
14
|
import { chooseColor } from "@swiftbrowser/web/src/colorPicker";
|
|
14
|
-
import { performHostRequest, browserEnvironment } from "@swiftbrowser/web/src/hostRequests";
|
|
15
15
|
import { timingFor } from "@swiftbrowser/web/src/animation";
|
|
16
16
|
const ViewEnvironmentContext = createContext({});
|
|
17
17
|
function useViewEnvironment() {
|
|
@@ -415,6 +415,9 @@ function createSwiftUIRoot(sink) {
|
|
|
415
415
|
}
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
|
+
function injectIntoDevTools() {
|
|
419
|
+
return reconciler.injectIntoDevTools() === true;
|
|
420
|
+
}
|
|
418
421
|
function withAnimation(first, second) {
|
|
419
422
|
const animation = typeof first === "function" ? { type: "default" } : first ?? { type: "default" };
|
|
420
423
|
const body = typeof first === "function" ? first : second;
|
|
@@ -651,6 +654,30 @@ function DropDestination({ action, isTargeted, accepts, children }) {
|
|
|
651
654
|
children
|
|
652
655
|
);
|
|
653
656
|
}
|
|
657
|
+
function FileImporterPresenter(spec) {
|
|
658
|
+
const [presented, setPresented] = readBinding(spec.isPresented);
|
|
659
|
+
const latest = useRef(spec);
|
|
660
|
+
latest.current = spec;
|
|
661
|
+
const choosing = useRef(false);
|
|
662
|
+
useLayoutEffect(() => {
|
|
663
|
+
if (!presented || choosing.current) return;
|
|
664
|
+
const { allowedContentTypes, allowsMultipleSelection } = latest.current;
|
|
665
|
+
const pick = browserEnvironment.pickFiles;
|
|
666
|
+
if (!pick) {
|
|
667
|
+
setPresented(false);
|
|
668
|
+
latest.current.onCancellation?.();
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
choosing.current = true;
|
|
672
|
+
void pick({ accept: allowedContentTypes.join(","), multiple: allowsMultipleSelection === true }).then((files) => {
|
|
673
|
+
choosing.current = false;
|
|
674
|
+
setPresented(false);
|
|
675
|
+
if (files.length > 0) latest.current.onCompletion(files);
|
|
676
|
+
else latest.current.onCancellation?.();
|
|
677
|
+
});
|
|
678
|
+
}, [presented, setPresented]);
|
|
679
|
+
return null;
|
|
680
|
+
}
|
|
654
681
|
const HIERARCHY = { primary: 1, secondary: 2, tertiary: 3, quaternary: 4 };
|
|
655
682
|
function rgb(r2, g, b, a = 1) {
|
|
656
683
|
return { r: r2, g, b, a };
|
|
@@ -1789,6 +1816,10 @@ const MODIFIER_KEYS = /* @__PURE__ */ new Set([
|
|
|
1789
1816
|
"preferredColorScheme",
|
|
1790
1817
|
"refreshable",
|
|
1791
1818
|
"submitLabel",
|
|
1819
|
+
"keyboardType",
|
|
1820
|
+
"textContentType",
|
|
1821
|
+
"textInputAutocapitalization",
|
|
1822
|
+
"autocorrectionDisabled",
|
|
1792
1823
|
"labelStyle",
|
|
1793
1824
|
"task",
|
|
1794
1825
|
"onChangeOf",
|
|
@@ -1804,6 +1835,7 @@ const MODIFIER_KEYS = /* @__PURE__ */ new Set([
|
|
|
1804
1835
|
"layoutValue",
|
|
1805
1836
|
"safeAreaInset",
|
|
1806
1837
|
"popover",
|
|
1838
|
+
"fileImporter",
|
|
1807
1839
|
"redacted",
|
|
1808
1840
|
"keyboardShortcut",
|
|
1809
1841
|
"onKeyPress",
|
|
@@ -1939,7 +1971,11 @@ const ENVIRONMENT_KEYS = /* @__PURE__ */ new Set([
|
|
|
1939
1971
|
"labelStyle",
|
|
1940
1972
|
"redacted",
|
|
1941
1973
|
"textCase",
|
|
1942
|
-
"symbolRenderingMode"
|
|
1974
|
+
"symbolRenderingMode",
|
|
1975
|
+
"keyboardType",
|
|
1976
|
+
"textContentType",
|
|
1977
|
+
"textInputAutocapitalization",
|
|
1978
|
+
"autocorrectionDisabled"
|
|
1943
1979
|
]);
|
|
1944
1980
|
const SCROLL_KEYS = /* @__PURE__ */ new Set(["scrollEdgeEffectStyle", "scrollEdgeEffectHidden", "contentMargins"]);
|
|
1945
1981
|
function neutral(key, node) {
|
|
@@ -2263,6 +2299,14 @@ function apply(key, value, node, sides) {
|
|
|
2263
2299
|
return withEnvironment({ refresh: value }, node);
|
|
2264
2300
|
case "submitLabel":
|
|
2265
2301
|
return withEnvironment({ submitLabel: value }, node);
|
|
2302
|
+
case "keyboardType":
|
|
2303
|
+
return withTextInputHint({ keyboard: value }, node);
|
|
2304
|
+
case "textContentType":
|
|
2305
|
+
return withTextInputHint({ contentType: value ?? void 0 }, node);
|
|
2306
|
+
case "textInputAutocapitalization":
|
|
2307
|
+
return withTextInputHint({ autocapitalization: value ?? void 0 }, node);
|
|
2308
|
+
case "autocorrectionDisabled":
|
|
2309
|
+
return withTextInputHint({ autocorrectionDisabled: value === true }, node);
|
|
2266
2310
|
case "labelStyle":
|
|
2267
2311
|
return withEnvironment({ labelStyle: value }, node);
|
|
2268
2312
|
case "task": {
|
|
@@ -2305,6 +2349,9 @@ function apply(key, value, node, sides) {
|
|
|
2305
2349
|
case "popover":
|
|
2306
2350
|
sides.push(createElement(SheetPresenter, value));
|
|
2307
2351
|
return node;
|
|
2352
|
+
case "fileImporter":
|
|
2353
|
+
sides.push(createElement(FileImporterPresenter, value));
|
|
2354
|
+
return node;
|
|
2308
2355
|
case "redacted":
|
|
2309
2356
|
return withEnvironment({ redacted: Boolean(value) }, node);
|
|
2310
2357
|
case "keyboardShortcut":
|
|
@@ -2356,6 +2403,13 @@ function apply(key, value, node, sides) {
|
|
|
2356
2403
|
}
|
|
2357
2404
|
}
|
|
2358
2405
|
}
|
|
2406
|
+
function withTextInputHint(hint, node) {
|
|
2407
|
+
return createElement(TextInputHint, { hint }, node);
|
|
2408
|
+
}
|
|
2409
|
+
function TextInputHint({ hint, children }) {
|
|
2410
|
+
const outer = useViewEnvironment().textInputHints;
|
|
2411
|
+
return withEnvironment({ textInputHints: { ...outer, ...hint } }, children);
|
|
2412
|
+
}
|
|
2359
2413
|
const NO_INSETS = { top: 0, leading: 0, bottom: 0, trailing: 0 };
|
|
2360
2414
|
const NO_GEOMETRY = { size: { width: 0, height: 0 }, origin: null, safeArea: NO_INSETS, scrollView: null };
|
|
2361
2415
|
function nextGeometry(event, reported) {
|
|
@@ -2857,6 +2911,7 @@ function Button(props) {
|
|
|
2857
2911
|
const controlSize = ownSize ?? environment.controlSize;
|
|
2858
2912
|
const buttonProps = { role: own.role ?? null, style };
|
|
2859
2913
|
if (controlSize !== void 0 && controlSize !== "regular") buttonProps["controlSize"] = controlSize;
|
|
2914
|
+
if (own.editMode !== void 0) buttonProps["editMode"] = own.editMode;
|
|
2860
2915
|
const label = own.title !== void 0 ? /* @__PURE__ */ jsx(Text, { children: own.title }) : own.children;
|
|
2861
2916
|
const tap = () => {
|
|
2862
2917
|
own.action?.();
|
|
@@ -2962,6 +3017,17 @@ function TextField(props) {
|
|
|
2962
3017
|
const { own, modifiers } = splitProps(props);
|
|
2963
3018
|
const environment = useViewEnvironment();
|
|
2964
3019
|
const ownSubmitLabel = takeModifier(modifiers, "submitLabel");
|
|
3020
|
+
const keyboardType = takeModifier(modifiers, "keyboardType");
|
|
3021
|
+
const textContentType = takeModifier(modifiers, "textContentType");
|
|
3022
|
+
const autocapitalization = takeModifier(modifiers, "textInputAutocapitalization");
|
|
3023
|
+
const autocorrectionDisabled = takeModifier(modifiers, "autocorrectionDisabled");
|
|
3024
|
+
const hints = {
|
|
3025
|
+
...environment.textInputHints,
|
|
3026
|
+
...keyboardType !== void 0 ? { keyboard: keyboardType } : {},
|
|
3027
|
+
...textContentType !== void 0 ? { contentType: textContentType ?? void 0 } : {},
|
|
3028
|
+
...autocapitalization !== void 0 ? { autocapitalization: autocapitalization ?? void 0 } : {},
|
|
3029
|
+
...autocorrectionDisabled !== void 0 ? { autocorrectionDisabled } : {}
|
|
3030
|
+
};
|
|
2965
3031
|
const [text, setText] = readBinding(own.text, own.onChange);
|
|
2966
3032
|
const fieldProps = {
|
|
2967
3033
|
text,
|
|
@@ -2973,6 +3039,10 @@ function TextField(props) {
|
|
|
2973
3039
|
if (own.axis) fieldProps["axis"] = own.axis;
|
|
2974
3040
|
const submitLabel = ownSubmitLabel ?? environment.submitLabel;
|
|
2975
3041
|
if (submitLabel) fieldProps["submitLabel"] = submitLabel;
|
|
3042
|
+
if (hints.keyboard && hints.keyboard !== "default") fieldProps["keyboard"] = hints.keyboard;
|
|
3043
|
+
if (hints.contentType) fieldProps["contentType"] = hints.contentType;
|
|
3044
|
+
if (hints.autocapitalization) fieldProps["autocapitalization"] = hints.autocapitalization;
|
|
3045
|
+
if (hints.autocorrectionDisabled) fieldProps["autocorrectionDisabled"] = true;
|
|
2976
3046
|
const focus = own.focused !== void 0 ? readBinding(own.focused) : null;
|
|
2977
3047
|
if (focus) fieldProps["focused"] = focus[0];
|
|
2978
3048
|
return applyModifiers(
|
|
@@ -3012,7 +3082,8 @@ function ProgressView(props) {
|
|
|
3012
3082
|
);
|
|
3013
3083
|
}
|
|
3014
3084
|
function ToolbarItem(props) {
|
|
3015
|
-
|
|
3085
|
+
const hidden = props.sharedBackgroundVisibility === "hidden";
|
|
3086
|
+
return sb("toolbar", hidden ? { placement: toolbarPlacement(props.placement), sharedBackground: "hidden" } : { placement: toolbarPlacement(props.placement) }, void 0, props.children);
|
|
3016
3087
|
}
|
|
3017
3088
|
const ToolbarItemGroup = ToolbarItem;
|
|
3018
3089
|
function ToolbarSpacer(props) {
|
|
@@ -3323,7 +3394,7 @@ function Menu(props) {
|
|
|
3323
3394
|
function EditButton(props) {
|
|
3324
3395
|
const { own, modifiers } = splitProps(props);
|
|
3325
3396
|
const [editing, setEditing] = readBinding(own.editMode, own.onChange);
|
|
3326
|
-
return applyModifiers(/* @__PURE__ */ jsx(Button, { title: editing ? "Done" : "Edit", action: () => setEditing(!editing) }), modifiers);
|
|
3397
|
+
return applyModifiers(/* @__PURE__ */ jsx(Button, { title: editing ? "Done" : "Edit", editMode: editing ? "active" : "inactive", action: () => setEditing(!editing) }), modifiers);
|
|
3327
3398
|
}
|
|
3328
3399
|
const loaded = /* @__PURE__ */ new Map();
|
|
3329
3400
|
function AsyncImage(props) {
|
|
@@ -3355,7 +3426,14 @@ function AsyncImage(props) {
|
|
|
3355
3426
|
if (state === null) return own.placeholder ?? null;
|
|
3356
3427
|
if (state === "failed") return own.failure ?? own.placeholder ?? null;
|
|
3357
3428
|
return applyModifiers(
|
|
3358
|
-
sb("image", {
|
|
3429
|
+
sb("image", {
|
|
3430
|
+
url: state.url,
|
|
3431
|
+
resizable: own.resizable ?? false,
|
|
3432
|
+
width: state.width,
|
|
3433
|
+
height: state.height,
|
|
3434
|
+
...own.webInteractions ? { webInteractions: true } : {},
|
|
3435
|
+
...own.accessibilityLabel ? { accessibilityLabel: own.accessibilityLabel } : {}
|
|
3436
|
+
}),
|
|
3359
3437
|
modifiers
|
|
3360
3438
|
);
|
|
3361
3439
|
}
|
|
@@ -3588,6 +3666,11 @@ function Chart(props) {
|
|
|
3588
3666
|
}
|
|
3589
3667
|
const xScale = scaleFor(xValues, { domain: own.xScale?.domain });
|
|
3590
3668
|
const yScale = scaleFor(yValues, { includesZero: own.yScale?.includesZero ?? true, domain: own.yScale?.domain });
|
|
3669
|
+
if (own.yAxisFormat && yScale.kind === "number") {
|
|
3670
|
+
const [lo, hi] = yScale.domain;
|
|
3671
|
+
const format = own.yAxisFormat;
|
|
3672
|
+
yScale.labels = yScale.labels.map((label) => ({ ...label, text: format(Number((lo + label.at * (hi - lo)).toFixed(10))) }));
|
|
3673
|
+
}
|
|
3591
3674
|
const round2 = (n) => Math.round(n * 1e6) / 1e6;
|
|
3592
3675
|
const ux = (v) => round2(xScale.unit(v));
|
|
3593
3676
|
const uy = (v) => round2(1 - yScale.unit(v));
|
|
@@ -4593,6 +4676,7 @@ export {
|
|
|
4593
4676
|
geometryProxy,
|
|
4594
4677
|
gradient,
|
|
4595
4678
|
hex,
|
|
4679
|
+
injectIntoDevTools,
|
|
4596
4680
|
insets,
|
|
4597
4681
|
keyframeValues,
|
|
4598
4682
|
mount,
|