@swiftbrowser/react 0.26.3 → 0.26.5

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 CHANGED
@@ -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`, `toolbar`, `toolbarRole`, `toolbarVisibility` (the
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
@@ -6,6 +6,16 @@ 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;
11
+ /** `.formStyle(_:)` on a `Form`: on a Mac `grouped` lays it out in grouped sections, `columns` (and the default) in the columns style. */
12
+ formStyle?: 'automatic' | 'grouped' | 'columns';
13
+ /**
14
+ * `.environment(\.defaultMinListRowHeight, _)`: the rows are at least this
15
+ * tall. Absent, the platform's default (44 on iOS, 24 on a Mac); a Mac app
16
+ * spaces a content list's rows like a sidebar's, 32 (`usePlatform`).
17
+ */
18
+ minRowHeight?: number;
9
19
  /** Edit mode (`EditButton`). */
10
20
  editing?: BindingValue<boolean>;
11
21
  /** `List(selection:)`: rows with a `tag` (or a `NavigationLink` value) become selectable; a `Set` selects several. */
@@ -14,8 +24,8 @@ export interface ListProps<T = unknown> extends ViewModifiers {
14
24
  children?: ReactNode;
15
25
  }
16
26
  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;
27
+ /** `Form { }`: an inset grouped list, as the shim draws it; on a Mac its rows are laid out in the columns style. */
28
+ export declare function Form(props: Omit<ListProps, 'listStyle' | 'selection' | 'onSelectionChange' | 'form'>): ReactNode;
19
29
  export interface SectionProps extends ViewModifiers {
20
30
  /** A string or a `<Text>` becomes the section's header text; any other view is a view header. */
21
31
  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,CAmDhE;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,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"}
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,0IAA0I;IAC1I,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,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,CAsDhE;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/host/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAa,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IACnC,2EAA2E;IAC3E,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IACvD,sEAAsE;IACtE,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/C,uEAAuE;IACvE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,UAAU,IAAI,MAAM,CAAC;IACrB,iHAAiH;IACjH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,gHAAgH;IAChH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,qGAAqG;IACrG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACvC,kGAAkG;IAClG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,qFAAqF;IACrF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAkJ7C"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/host/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAa,EAAE,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IACnC,2EAA2E;IAC3E,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IACvD,sEAAsE;IACtE,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/C,uEAAuE;IACvE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,UAAU,IAAI,MAAM,CAAC;IACrB,iHAAiH;IACjH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,gHAAgH;IAChH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,qGAAqG;IACrG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACvC,kGAAkG;IAClG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,qFAAqF;IACrF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAmJ7C"}
package/dist/index.js CHANGED
@@ -605,7 +605,7 @@ function createRemoteRoot() {
605
605
  eventHandler?.(event);
606
606
  },
607
607
  setEnvironment(environment) {
608
- if (lastEnvironment && lastEnvironment.colorScheme === environment.colorScheme && lastEnvironment.dynamicTypeSize === environment.dynamicTypeSize && lastEnvironment.horizontalSizeClass === environment.horizontalSizeClass && lastEnvironment.scenePhase === environment.scenePhase)
608
+ if (lastEnvironment && lastEnvironment.colorScheme === environment.colorScheme && lastEnvironment.dynamicTypeSize === environment.dynamicTypeSize && lastEnvironment.horizontalSizeClass === environment.horizontalSizeClass && lastEnvironment.scenePhase === environment.scenePhase && lastEnvironment.platform === environment.platform)
609
609
  return;
610
610
  lastEnvironment = environment;
611
611
  environmentHandler?.(environment);
@@ -667,7 +667,7 @@ function RegisterDestination({ destination }) {
667
667
  navigation?.registerDestination(destination);
668
668
  return null;
669
669
  }
670
- const SCREEN_PROPS = ["title", "displayMode", "toolbarRole", "navigationBarHidden", "bottomBarHidden", "statusBarHidden"];
670
+ const SCREEN_PROPS = ["title", "subtitle", "displayMode", "toolbarRole", "navigationBarHidden", "bottomBarHidden", "statusBarHidden"];
671
671
  function screenPrefs(props, key) {
672
672
  const picked = {};
673
673
  for (const name of SCREEN_PROPS) if (name in props) picked[name] = props[name];
@@ -2530,6 +2530,7 @@ const MODIFIER_KEYS = /* @__PURE__ */ new Set([
2530
2530
  "toggleStyle",
2531
2531
  "labelsHidden",
2532
2532
  "navigationTitle",
2533
+ "navigationSubtitle",
2533
2534
  "navigationBarTitleDisplayMode",
2534
2535
  "toolbarRole",
2535
2536
  "toolbarVisibility",
@@ -2949,6 +2950,9 @@ function apply(key, value, node, sides) {
2949
2950
  case "navigationTitle":
2950
2951
  sides.push(sb(PREF_KIND, { title: value }, void 0, void 0, "navscreen"));
2951
2952
  return node;
2953
+ case "navigationSubtitle":
2954
+ sides.push(sb(PREF_KIND, { subtitle: value }, void 0, void 0, "navscreen"));
2955
+ return node;
2952
2956
  case "navigationBarTitleDisplayMode":
2953
2957
  sides.push(sb(PREF_KIND, { displayMode: value }, void 0, void 0, "navscreen"));
2954
2958
  return node;
@@ -5722,6 +5726,9 @@ function List(props) {
5722
5726
  const { own, modifiers } = splitProps(props);
5723
5727
  const [editing] = own.editing !== void 0 ? readBinding(own.editing) : [false];
5724
5728
  const listProps = { style: own.listStyle ?? "insetGrouped" };
5729
+ if (own.form) listProps["form"] = true;
5730
+ if (own.form && own.formStyle && own.formStyle !== "automatic") listProps["formStyle"] = own.formStyle;
5731
+ if (own.minRowHeight !== void 0 && Number.isFinite(own.minRowHeight)) listProps["minRowHeight"] = Math.max(0, own.minRowHeight);
5725
5732
  if (editing) listProps["editing"] = true;
5726
5733
  let selection = null;
5727
5734
  const split = useContext(SplitSelectionContext);
@@ -5765,7 +5772,7 @@ function List(props) {
5765
5772
  );
5766
5773
  }
5767
5774
  function Form(props) {
5768
- return /* @__PURE__ */ jsx(List, { ...props });
5775
+ return /* @__PURE__ */ jsx(List, { ...props, form: true });
5769
5776
  }
5770
5777
  function Section(props) {
5771
5778
  const { own, modifiers } = splitProps(props);