@swiftbrowser/react 0.26.2 → 0.26.4
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 +15 -3
- package/dist/components/lists.d.ts +4 -2
- package/dist/components/lists.d.ts.map +1 -1
- package/dist/environment.d.ts +16 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -9
- package/dist/index.js.map +1 -1
- package/dist/modifiers.d.ts +2 -0
- package/dist/modifiers.d.ts.map +1 -1
- package/dist/mount.d.ts +27 -2
- package/dist/mount.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -42,10 +42,10 @@ One command lays out an app that runs the same code on iOS and the web:
|
|
|
42
42
|
npx @swiftbrowser/cli native init MyApp
|
|
43
43
|
cd MyApp && npm install
|
|
44
44
|
npm run dev:web # the app as a web page, at http://localhost:5175/
|
|
45
|
-
npm run build #
|
|
45
|
+
npm run build # apple/app.js, the bundle MyApp.xcodeproj runs natively (iOS and macOS)
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
The app is `src/App.tsx`, beside `
|
|
48
|
+
The app is `src/App.tsx`, beside `apple/` (the Xcode target's folder: the
|
|
49
49
|
App file, the asset catalog and the bundle), `web/` and `MyApp.xcodeproj`,
|
|
50
50
|
as React Native lays its shells out. `src/index.tsx` is the iOS entry (`run(<App />)`
|
|
51
51
|
in a [SwiftBrowser Native](https://github.com/noya-app/SwiftBrowser/blob/main/Native/README.md)
|
|
@@ -189,7 +189,8 @@ ordered list. A layered style is an array: `foregroundStyle={['white',
|
|
|
189
189
|
`symbolRenderingMode="palette"` symbol draws its disc in. The environment
|
|
190
190
|
modifiers (`buttonStyle`, `controlSize`, `pickerStyle`, `toggleStyle`, `labelsHidden`,
|
|
191
191
|
`symbolRenderingMode`) are React contexts the views below read, and
|
|
192
|
-
`navigationTitle`, `
|
|
192
|
+
`navigationTitle`, `navigationSubtitle` (the Mac idiom's title bar draws it; iOS
|
|
193
|
+
ignores it), `toolbar`, `toolbarRole`, `toolbarVisibility` (the
|
|
193
194
|
navigation bar or the bottom bar hidden, as `.toolbar(.hidden, for:)`),
|
|
194
195
|
`statusBarHidden`, `searchable`, `sheet`, `alert`,
|
|
195
196
|
`presentationDetents` and `preferredColorScheme` attach to the enclosing
|
|
@@ -419,6 +420,17 @@ titles when regular and the first column when compact.
|
|
|
419
420
|
/>
|
|
420
421
|
```
|
|
421
422
|
|
|
423
|
+
### Platform
|
|
424
|
+
|
|
425
|
+
`usePlatform()` is `ios` or `macos`: the platform the app is drawn as. A
|
|
426
|
+
page decides it from the browser unless `mount`'s `platform` option says
|
|
427
|
+
(`auto`, the default, is `macos` for a fine pointer that can hover at the
|
|
428
|
+
regular width, iOS otherwise); a preview page's device picker sets it from
|
|
429
|
+
the device chosen (a Mac window is `macos`); the native app sends the OS it
|
|
430
|
+
runs on. The views adapt on their own as SwiftUI's do; read it for a layout
|
|
431
|
+
that differs between a phone and a Mac beyond what the size class says. The
|
|
432
|
+
Mac idiom the web renderer draws is being built (docs/notes/macos.md).
|
|
433
|
+
|
|
422
434
|
### Scene phase
|
|
423
435
|
|
|
424
436
|
`useScenePhase()` is `@Environment(\.scenePhase)`: `active` while the app is
|
|
@@ -6,6 +6,8 @@ import { type ViewModifiers } from '../modifiers';
|
|
|
6
6
|
export type Selection<T> = T | null | Set<T>;
|
|
7
7
|
export interface ListProps<T = unknown> extends ViewModifiers {
|
|
8
8
|
listStyle?: ListStyle;
|
|
9
|
+
/** A `Form`: on a Mac the rows are laid out in the columns style (labels in a column before their controls). */
|
|
10
|
+
form?: boolean;
|
|
9
11
|
/** Edit mode (`EditButton`). */
|
|
10
12
|
editing?: BindingValue<boolean>;
|
|
11
13
|
/** `List(selection:)`: rows with a `tag` (or a `NavigationLink` value) become selectable; a `Set` selects several. */
|
|
@@ -14,8 +16,8 @@ export interface ListProps<T = unknown> extends ViewModifiers {
|
|
|
14
16
|
children?: ReactNode;
|
|
15
17
|
}
|
|
16
18
|
export declare function List<T = unknown>(props: ListProps<T>): ReactNode;
|
|
17
|
-
/** `Form { }`: an inset grouped list, as the shim draws it. */
|
|
18
|
-
export declare function Form(props: Omit<ListProps, 'listStyle' | 'selection' | 'onSelectionChange'>): ReactNode;
|
|
19
|
+
/** `Form { }`: an inset grouped list, as the shim draws it; on a Mac its rows are laid out in the columns style. */
|
|
20
|
+
export declare function Form(props: Omit<ListProps, 'listStyle' | 'selection' | 'onSelectionChange' | 'form'>): ReactNode;
|
|
19
21
|
export interface SectionProps extends ViewModifiers {
|
|
20
22
|
/** A string or a `<Text>` becomes the section's header text; any other view is a view header. */
|
|
21
23
|
header?: ReactNode;
|
|
@@ -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,
|
|
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,gHAAgH;IAChH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,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,CAoDhE;AAED,oHAAoH;AACpH,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC,GAAG,SAAS,CAEhH;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,iGAAiG;IACjG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,2HAA2H;IAC3H,UAAU,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAyBtD"}
|
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, size class, scene phase).
|
|
5
5
|
*/
|
|
6
|
-
import type { ButtonStyle, ColorScheme, DynamicTypeSize, PickerStyle, ScenePhase, ToggleStyle } from '@swiftbrowser/web/src/protocol';
|
|
6
|
+
import type { ButtonStyle, ColorScheme, DynamicTypeSize, PickerStyle, Platform, ScenePhase, 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. */
|
|
@@ -47,6 +47,7 @@ export declare function useViewEnvironment(): ViewEnvironment;
|
|
|
47
47
|
/** Wrap `children` in an environment with `values` added. */
|
|
48
48
|
export declare function withEnvironment(values: ViewEnvironment, children: ReactNode): ReactNode;
|
|
49
49
|
export type HorizontalSizeClass = 'compact' | 'regular';
|
|
50
|
+
export type { Platform };
|
|
50
51
|
export interface Environment {
|
|
51
52
|
colorScheme: ColorScheme;
|
|
52
53
|
dynamicTypeSize: DynamicTypeSize;
|
|
@@ -59,6 +60,13 @@ export interface Environment {
|
|
|
59
60
|
* tab, an app the viewer left). `active` where nothing says otherwise.
|
|
60
61
|
*/
|
|
61
62
|
scenePhase: ScenePhase;
|
|
63
|
+
/**
|
|
64
|
+
* The platform the app is drawn as (docs/notes/macos.md): `ios` (the
|
|
65
|
+
* default) or `macos`. The renderer draws that platform's idiom; a page
|
|
66
|
+
* decides it from the browser (`mount`'s `platform`), a native app from
|
|
67
|
+
* the OS it runs on. Fixed for the app's life.
|
|
68
|
+
*/
|
|
69
|
+
platform: Platform;
|
|
62
70
|
}
|
|
63
71
|
export type { ScenePhase };
|
|
64
72
|
export declare const EnvironmentContext: import("react").Context<Environment>;
|
|
@@ -81,6 +89,13 @@ export declare function useHorizontalSizeClass(): HorizontalSizeClass;
|
|
|
81
89
|
* app follows its scene. Refresh what time moved on when it turns `active`.
|
|
82
90
|
*/
|
|
83
91
|
export declare function useScenePhase(): ScenePhase;
|
|
92
|
+
/**
|
|
93
|
+
* The platform the app is drawn as, `ios` or `macos` (docs/notes/macos.md):
|
|
94
|
+
* for a layout that differs between a phone and a Mac beyond what the size
|
|
95
|
+
* class says (a toolbar's placement, a window's columns). The views adapt
|
|
96
|
+
* on their own, as SwiftUI's do.
|
|
97
|
+
*/
|
|
98
|
+
export declare function usePlatform(): Platform;
|
|
84
99
|
/** `@Environment(\.redactionReasons)`: whether the views below are placeholders. */
|
|
85
100
|
export declare function useRedacted(): boolean;
|
|
86
101
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -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,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { SwiftUIView, type SwiftUIViewProps } from './island';
|
|
|
12
12
|
export { useContextBridge } from './bridge';
|
|
13
13
|
export type { Binding, BindingValue } from './binding';
|
|
14
14
|
export { readBinding } from './binding';
|
|
15
|
-
export { useColorScheme, useDynamicTypeSize, useHorizontalSizeClass, useScenePhase, useRedacted, type HorizontalSizeClass, type ScenePhase, useDismiss, useViewEnvironment, type ControlSize, type SymbolRenderingMode, type KeyboardType, type TextContentType, type TextInputHints, type Environment, type ViewEnvironment, } from './environment';
|
|
15
|
+
export { useColorScheme, useDynamicTypeSize, useHorizontalSizeClass, useScenePhase, usePlatform, useRedacted, type HorizontalSizeClass, type ScenePhase, type Platform, useDismiss, useViewEnvironment, type ControlSize, type SymbolRenderingMode, type KeyboardType, type TextContentType, type TextInputHints, type Environment, type ViewEnvironment, } from './environment';
|
|
16
16
|
export { useNavigation } from './navigation-context';
|
|
17
17
|
export type { ViewModifiers, ForegroundLayers, BackgroundValue, SearchableModifier, ToolbarItemPlacementName, ToolbarRole, Visibility, CoordinateSpaceValue, DragGestureModifier, DragValue, GestureValue, TapGestureModifier, MagnifyGestureModifier, RotateGestureModifier, PinchValue, TouchPoint, TouchesPhase, TouchesHandler, SwipeActionsModifier, AlignmentGuideName, DropDestinationModifier, InspectorModifier, ContainerAxes, ContainerRelativeFrameValue, } from './modifiers';
|
|
18
18
|
export { VisualEffect, type ScrollTransitionClosure, type ScrollTransitionPhase, type ScrollTransitionSpec, type VisualEffectClosure, } from './visualEffect';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,8 @@ const EnvironmentContext = createContext({
|
|
|
33
33
|
colorScheme: "light",
|
|
34
34
|
dynamicTypeSize: "large",
|
|
35
35
|
horizontalSizeClass: "compact",
|
|
36
|
-
scenePhase: "active"
|
|
36
|
+
scenePhase: "active",
|
|
37
|
+
platform: "ios"
|
|
37
38
|
});
|
|
38
39
|
function EnvironmentProvider({ value, children }) {
|
|
39
40
|
return createElement(EnvironmentContext.Provider, { value }, children);
|
|
@@ -56,6 +57,9 @@ function useHorizontalSizeClass() {
|
|
|
56
57
|
function useScenePhase() {
|
|
57
58
|
return useContext(EnvironmentContext).scenePhase;
|
|
58
59
|
}
|
|
60
|
+
function usePlatform() {
|
|
61
|
+
return useContext(EnvironmentContext).platform;
|
|
62
|
+
}
|
|
59
63
|
function useRedacted() {
|
|
60
64
|
return useContext(ViewEnvironmentContext).redacted === true;
|
|
61
65
|
}
|
|
@@ -418,7 +422,7 @@ function deepEqual(a, b) {
|
|
|
418
422
|
if (keys.length !== Object.keys(right).length) return false;
|
|
419
423
|
return keys.every((key) => key in right && deepEqual(left[key], right[key]));
|
|
420
424
|
}
|
|
421
|
-
const DEFAULT_ENVIRONMENT = { colorScheme: "light", dynamicTypeSize: "large", horizontalSizeClass: "compact", scenePhase: "active" };
|
|
425
|
+
const DEFAULT_ENVIRONMENT = { colorScheme: "light", dynamicTypeSize: "large", horizontalSizeClass: "compact", scenePhase: "active", platform: "ios" };
|
|
422
426
|
const roots = /* @__PURE__ */ new Set();
|
|
423
427
|
const HostTreeContext = createContext(null);
|
|
424
428
|
function createSwiftUIRoot(sink, options = {}) {
|
|
@@ -663,7 +667,7 @@ function RegisterDestination({ destination }) {
|
|
|
663
667
|
navigation?.registerDestination(destination);
|
|
664
668
|
return null;
|
|
665
669
|
}
|
|
666
|
-
const SCREEN_PROPS = ["title", "displayMode", "toolbarRole", "navigationBarHidden", "bottomBarHidden", "statusBarHidden"];
|
|
670
|
+
const SCREEN_PROPS = ["title", "subtitle", "displayMode", "toolbarRole", "navigationBarHidden", "bottomBarHidden", "statusBarHidden"];
|
|
667
671
|
function screenPrefs(props, key) {
|
|
668
672
|
const picked = {};
|
|
669
673
|
for (const name of SCREEN_PROPS) if (name in props) picked[name] = props[name];
|
|
@@ -932,25 +936,33 @@ function measureText(text, font$1 = "body", width) {
|
|
|
932
936
|
const constrained = typeof width === "number" && Number.isFinite(width) && width > 0 ? width : null;
|
|
933
937
|
return installed(text, font(font$1), constrained);
|
|
934
938
|
}
|
|
939
|
+
function decidePlatform(width, media = matchesMedia) {
|
|
940
|
+
return horizontalSizeClassFor(width) === "regular" && media("(hover: hover) and (pointer: fine)") ? "macos" : "ios";
|
|
941
|
+
}
|
|
942
|
+
function matchesMedia(query) {
|
|
943
|
+
return typeof matchMedia === "function" && matchMedia(query).matches;
|
|
944
|
+
}
|
|
935
945
|
function mount(screen, element, options = {}) {
|
|
936
946
|
let renderer = null;
|
|
937
947
|
const root = createSwiftUIRoot((ops) => renderer?.applyOps(ops));
|
|
938
948
|
renderer = new Renderer(screen, (event) => root.dispatch(event));
|
|
939
949
|
renderer.fileDrops = "reference";
|
|
940
|
-
const measurer = (text, font2,
|
|
950
|
+
const measurer = (text, font2, width2) => renderer.measureText(text, font2, width2);
|
|
941
951
|
installTextMeasurer(measurer);
|
|
942
952
|
let pageScheme = options.colorScheme ?? "light";
|
|
943
953
|
let preferred = null;
|
|
954
|
+
const width = screen.clientWidth || 393;
|
|
944
955
|
const environment = {
|
|
945
956
|
colorScheme: pageScheme,
|
|
946
957
|
dynamicTypeSize: options.dynamicTypeSize ?? "large",
|
|
947
|
-
horizontalSizeClass: horizontalSizeClassFor(
|
|
948
|
-
scenePhase: typeof document !== "undefined" ? currentScenePhase() : "active"
|
|
958
|
+
horizontalSizeClass: horizontalSizeClassFor(width),
|
|
959
|
+
scenePhase: typeof document !== "undefined" ? currentScenePhase() : "active",
|
|
960
|
+
platform: options.platform === void 0 || options.platform === "auto" ? decidePlatform(width) : options.platform
|
|
949
961
|
};
|
|
950
962
|
renderer.contentHeight = options.contentHeight ?? false;
|
|
951
963
|
if (options.assets) renderer.setAssetCatalog(options.assets);
|
|
952
964
|
if (options.app) browserEnvironment.files?.setApp?.(options.app);
|
|
953
|
-
renderer.setEnvironment({ colorScheme: environment.colorScheme, dynamicTypeSize: environment.dynamicTypeSize });
|
|
965
|
+
renderer.setEnvironment({ colorScheme: environment.colorScheme, dynamicTypeSize: environment.dynamicTypeSize, platform: environment.platform });
|
|
954
966
|
if (options.safeArea !== void 0) renderer.setSafeArea(options.safeArea);
|
|
955
967
|
root.setEnvironment(environment);
|
|
956
968
|
const browserHistory = (options.history ?? true) && typeof window !== "undefined" ? new BrowserHistory(renderer, screen) : null;
|
|
@@ -988,6 +1000,12 @@ function mount(screen, element, options = {}) {
|
|
|
988
1000
|
renderer?.setEnvironment({ ...next, colorScheme: scheme });
|
|
989
1001
|
root.setEnvironment({ ...next, colorScheme: scheme });
|
|
990
1002
|
},
|
|
1003
|
+
setSafeArea(insets2) {
|
|
1004
|
+
renderer?.setSafeArea(insets2);
|
|
1005
|
+
},
|
|
1006
|
+
viewportChanged() {
|
|
1007
|
+
renderer?.viewportChanged();
|
|
1008
|
+
},
|
|
991
1009
|
unmount() {
|
|
992
1010
|
observer?.disconnect();
|
|
993
1011
|
stopScenePhase?.();
|
|
@@ -1286,7 +1304,7 @@ function SwiftUIView({
|
|
|
1286
1304
|
mounted.current?.renderer.setSafeArea(insets2);
|
|
1287
1305
|
}, [insetsKey]);
|
|
1288
1306
|
useLayoutEffect(() => {
|
|
1289
|
-
if (device.current) applyTypeSizeVariables(device.current, dynamicTypeSize);
|
|
1307
|
+
if (device.current) applyTypeSizeVariables(device.current, dynamicTypeSize, mounted.current?.renderer.platform);
|
|
1290
1308
|
mounted.current?.setEnvironment({ colorScheme, dynamicTypeSize });
|
|
1291
1309
|
}, [colorScheme, dynamicTypeSize]);
|
|
1292
1310
|
const classes = ["device", "sb-island", className].filter(Boolean).join(" ");
|
|
@@ -2512,6 +2530,7 @@ const MODIFIER_KEYS = /* @__PURE__ */ new Set([
|
|
|
2512
2530
|
"toggleStyle",
|
|
2513
2531
|
"labelsHidden",
|
|
2514
2532
|
"navigationTitle",
|
|
2533
|
+
"navigationSubtitle",
|
|
2515
2534
|
"navigationBarTitleDisplayMode",
|
|
2516
2535
|
"toolbarRole",
|
|
2517
2536
|
"toolbarVisibility",
|
|
@@ -2931,6 +2950,9 @@ function apply(key, value, node, sides) {
|
|
|
2931
2950
|
case "navigationTitle":
|
|
2932
2951
|
sides.push(sb(PREF_KIND, { title: value }, void 0, void 0, "navscreen"));
|
|
2933
2952
|
return node;
|
|
2953
|
+
case "navigationSubtitle":
|
|
2954
|
+
sides.push(sb(PREF_KIND, { subtitle: value }, void 0, void 0, "navscreen"));
|
|
2955
|
+
return node;
|
|
2934
2956
|
case "navigationBarTitleDisplayMode":
|
|
2935
2957
|
sides.push(sb(PREF_KIND, { displayMode: value }, void 0, void 0, "navscreen"));
|
|
2936
2958
|
return node;
|
|
@@ -5704,6 +5726,7 @@ function List(props) {
|
|
|
5704
5726
|
const { own, modifiers } = splitProps(props);
|
|
5705
5727
|
const [editing] = own.editing !== void 0 ? readBinding(own.editing) : [false];
|
|
5706
5728
|
const listProps = { style: own.listStyle ?? "insetGrouped" };
|
|
5729
|
+
if (own.form) listProps["form"] = true;
|
|
5707
5730
|
if (editing) listProps["editing"] = true;
|
|
5708
5731
|
let selection = null;
|
|
5709
5732
|
const split = useContext(SplitSelectionContext);
|
|
@@ -5747,7 +5770,7 @@ function List(props) {
|
|
|
5747
5770
|
);
|
|
5748
5771
|
}
|
|
5749
5772
|
function Form(props) {
|
|
5750
|
-
return /* @__PURE__ */ jsx(List, { ...props });
|
|
5773
|
+
return /* @__PURE__ */ jsx(List, { ...props, form: true });
|
|
5751
5774
|
}
|
|
5752
5775
|
function Section(props) {
|
|
5753
5776
|
const { own, modifiers } = splitProps(props);
|
|
@@ -7395,6 +7418,7 @@ export {
|
|
|
7395
7418
|
useHorizontalSizeClass,
|
|
7396
7419
|
useNamespace,
|
|
7397
7420
|
useNavigation,
|
|
7421
|
+
usePlatform,
|
|
7398
7422
|
useRedacted,
|
|
7399
7423
|
useRefreshable,
|
|
7400
7424
|
useReportSplitSelection,
|