@ng-native/expo 0.2.0 → 0.4.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 (83) hide show
  1. package/README.md +32 -382
  2. package/dist/async-storage.d.ts +15 -0
  3. package/dist/async-storage.js +29 -0
  4. package/dist/async-storage.js.map +1 -0
  5. package/dist/audio.d.ts +10 -0
  6. package/dist/audio.js +26 -0
  7. package/dist/audio.js.map +1 -0
  8. package/dist/community-views.js +1 -1
  9. package/dist/community-views.js.map +1 -1
  10. package/dist/crypto.js +2 -2
  11. package/dist/crypto.js.map +1 -1
  12. package/dist/database.d.ts +18 -3
  13. package/dist/database.js +26 -7
  14. package/dist/database.js.map +1 -1
  15. package/dist/date-time-picker.d.ts +33 -0
  16. package/dist/date-time-picker.js +77 -0
  17. package/dist/date-time-picker.js.map +1 -0
  18. package/dist/dom-component.d.ts +5 -0
  19. package/dist/dom-component.js +57 -2
  20. package/dist/dom-component.js.map +1 -1
  21. package/dist/expo-ui-components.d.ts +292 -12
  22. package/dist/expo-ui-components.js +531 -41
  23. package/dist/expo-ui-components.js.map +1 -1
  24. package/dist/expo-ui.js +19 -6
  25. package/dist/expo-ui.js.map +1 -1
  26. package/dist/file-system.d.ts +7 -0
  27. package/dist/file-system.js +16 -3
  28. package/dist/file-system.js.map +1 -1
  29. package/dist/foldable.d.ts +78 -0
  30. package/dist/foldable.js +87 -0
  31. package/dist/foldable.js.map +1 -0
  32. package/dist/fonts.d.ts +3 -9
  33. package/dist/fonts.js +26 -16
  34. package/dist/fonts.js.map +1 -1
  35. package/dist/glass.d.ts +1 -1
  36. package/dist/image-picker.js +3 -9
  37. package/dist/image-picker.js.map +1 -1
  38. package/dist/index.d.ts +3 -2
  39. package/dist/index.js +3 -2
  40. package/dist/index.js.map +1 -1
  41. package/dist/live-activity.d.ts +88 -0
  42. package/dist/live-activity.js +156 -0
  43. package/dist/live-activity.js.map +1 -0
  44. package/dist/location.d.ts +17 -0
  45. package/dist/location.js +20 -7
  46. package/dist/location.js.map +1 -1
  47. package/dist/media-library.js +1 -3
  48. package/dist/media-library.js.map +1 -1
  49. package/dist/native.d.ts +12 -2
  50. package/dist/native.js +81 -10
  51. package/dist/native.js.map +1 -1
  52. package/dist/notifications.js +2 -4
  53. package/dist/notifications.js.map +1 -1
  54. package/dist/permissions.d.ts +2 -0
  55. package/dist/permissions.js +6 -0
  56. package/dist/permissions.js.map +1 -1
  57. package/dist/player.d.ts +24 -11
  58. package/dist/player.js +7 -26
  59. package/dist/player.js.map +1 -1
  60. package/dist/register-expo-view.d.ts +7 -0
  61. package/dist/register-expo-view.js +6 -1
  62. package/dist/register-expo-view.js.map +1 -1
  63. package/dist/screen-capture.js +2 -4
  64. package/dist/screen-capture.js.map +1 -1
  65. package/dist/secure-store.d.ts +15 -0
  66. package/dist/secure-store.js +30 -0
  67. package/dist/secure-store.js.map +1 -0
  68. package/dist/store.d.ts +5 -10
  69. package/dist/store.js +5 -36
  70. package/dist/store.js.map +1 -1
  71. package/dist/tracking.d.ts +1 -1
  72. package/dist/tracking.js +3 -5
  73. package/dist/tracking.js.map +1 -1
  74. package/dist/video.d.ts +5 -0
  75. package/dist/video.js +21 -0
  76. package/dist/video.js.map +1 -0
  77. package/dist/watch.d.ts +103 -0
  78. package/dist/watch.js +228 -0
  79. package/dist/watch.js.map +1 -0
  80. package/dist/widget.d.ts +63 -0
  81. package/dist/widget.js +98 -0
  82. package/dist/widget.js.map +1 -0
  83. package/package.json +53 -4
@@ -14,6 +14,7 @@ export interface UiModifier {
14
14
  * drawn in it spills outside it, where it can be seen but not touched or read by VoiceOver.
15
15
  */
16
16
  export declare class UiHost {
17
+ protected readonly nativeView: true;
17
18
  readonly matchContents: import("@angular/core").InputSignal<boolean | {
18
19
  readonly vertical?: boolean;
19
20
  readonly horizontal?: boolean;
@@ -27,6 +28,7 @@ export declare class UiHost {
27
28
  }
28
29
  /** A SwiftUI `Menu`. Its trigger is the `label` or a `<ui-slot name="label">`; its items are children. */
29
30
  export declare class UiMenu {
31
+ protected readonly nativeView: true;
30
32
  readonly label: import("@angular/core").InputSignal<string | undefined>;
31
33
  /** An SF Symbol name. */
32
34
  readonly systemImage: import("@angular/core").InputSignal<string | undefined>;
@@ -35,19 +37,67 @@ export declare class UiMenu {
35
37
  static ɵfac: i0.ɵɵFactoryDeclaration<UiMenu, never>;
36
38
  static ɵcmp: i0.ɵɵComponentDeclaration<UiMenu, "ui-menu", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "systemImage": { "alias": "systemImage"; "required": false; "isSignal": true; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
37
39
  }
38
- /** A SwiftUI `Button`, as a menu item or on its own. */
40
+ /**
41
+ * Views of the app's own inside SwiftUI or Compose content: the way back from a `ui-host`. What
42
+ * it holds is laid out by the engine, as anywhere else, and takes presses as anywhere else, so a
43
+ * row drawn with the app's own components can be a context menu's trigger or a sheet's body.
44
+ *
45
+ * It holds one element. `matchContents` sizes it to that element, both ways: the element needs a
46
+ * width of its own, since nothing here stretches it. Without `matchContents` it fills what the
47
+ * SwiftUI or Compose view around it offers, which inside a view sized to its content is a width
48
+ * and no height.
49
+ */
50
+ export declare class UiViewHost {
51
+ protected readonly nativeView: true;
52
+ readonly matchContents: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
53
+ /**
54
+ * For content presented in a window of its own, a sheet or a popover, where nothing above it
55
+ * delivers its touches: it then takes them itself, and is measured from itself.
56
+ */
57
+ readonly layoutRoot: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
58
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiViewHost, never>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiViewHost, "ui-view-host", never, { "matchContents": { "alias": "matchContents"; "required": false; "isSignal": true; }; "layoutRoot": { "alias": "layoutRoot"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
61
+ }
62
+ /**
63
+ * A SwiftUI `contextMenu`: the menu a long press on its trigger opens, with the trigger lifted
64
+ * over the dimmed screen. iOS only.
65
+ *
66
+ * Its content is three slots: `<ui-slot name="trigger">` is what is always shown,
67
+ * `<ui-slot name="items">` holds the `ui-button`s, `ui-divider`s and `ui-section`s of the menu, and
68
+ * `<ui-slot name="preview">`, when there is one, is shown above the open menu in place of the
69
+ * trigger. All three are SwiftUI content, as everything inside a `ui-host` is.
70
+ */
71
+ export declare class UiContextMenu {
72
+ protected readonly nativeView: true;
73
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiContextMenu, never>;
75
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiContextMenu, "ui-context-menu", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
76
+ }
77
+ /**
78
+ * A SwiftUI `Button`, as a menu item or on its own, or Compose's on Android, which draws `label` as
79
+ * text inside it. `systemImage` and `role` are SwiftUI's alone.
80
+ */
39
81
  export declare class UiButton {
82
+ protected readonly nativeView: true;
83
+ protected readonly android: boolean;
40
84
  readonly label: import("@angular/core").InputSignal<string | undefined>;
41
85
  /** An SF Symbol name. */
42
86
  readonly systemImage: import("@angular/core").InputSignal<string | undefined>;
43
87
  readonly role: import("@angular/core").InputSignal<"default" | "cancel" | "destructive" | undefined>;
88
+ /**
89
+ * In a home-screen widget's layout, what a tap on it records for the app: see
90
+ * `@ng-native/expo/widget`.
91
+ */
92
+ readonly target: import("@angular/core").InputSignal<string | undefined>;
44
93
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
45
94
  readonly buttonPress: import("@angular/core").OutputEmitterRef<NativeSyntheticEvent<Record<string, never>>>;
46
95
  static ɵfac: i0.ɵɵFactoryDeclaration<UiButton, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<UiButton, "ui-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "systemImage": { "alias": "systemImage"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, { "buttonPress": "buttonPress"; }, never, ["*"], true, never>;
96
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiButton, "ui-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "systemImage": { "alias": "systemImage"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, { "buttonPress": "buttonPress"; }, never, ["*"], true, never>;
48
97
  }
49
- /** A SwiftUI `Divider`: a separator between groups of menu items. */
98
+ /** A SwiftUI `Divider`, or Compose's `HorizontalDivider`: a separator between groups of items. */
50
99
  export declare class UiDivider {
100
+ protected readonly nativeView: true;
51
101
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
52
102
  static ɵfac: i0.ɵɵFactoryDeclaration<UiDivider, never>;
53
103
  static ɵcmp: i0.ɵɵComponentDeclaration<UiDivider, "ui-divider", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -58,6 +108,8 @@ export declare class UiDivider {
58
108
  * `allowsFullSwipe`.
59
109
  */
60
110
  export declare class UiSlot {
111
+ protected readonly nativeView: true;
112
+ protected readonly android: boolean;
61
113
  readonly name: import("@angular/core").InputSignal<string>;
62
114
  readonly extraProps: import("@angular/core").InputSignal<Readonly<Record<string, unknown>> | undefined>;
63
115
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSlot, never>;
@@ -68,6 +120,7 @@ export declare class UiSlot {
68
120
  * swipe actions through `ui-swipe-actions`.
69
121
  */
70
122
  export declare class UiList {
123
+ protected readonly nativeView: true;
71
124
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
72
125
  static ɵfac: i0.ɵɵFactoryDeclaration<UiList, never>;
73
126
  static ɵcmp: i0.ɵɵComponentDeclaration<UiList, "ui-list", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -78,6 +131,7 @@ export declare class UiList {
78
131
  * slot per edge, as `ui-button`s.
79
132
  */
80
133
  export declare class UiSwipeActions {
134
+ protected readonly nativeView: true;
81
135
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
82
136
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSwipeActions, never>;
83
137
  static ɵcmp: i0.ɵɵComponentDeclaration<UiSwipeActions, "ui-swipe-actions", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -87,10 +141,11 @@ export type UiSliderChangeEvent = NativeSyntheticEvent<{
87
141
  readonly value: number;
88
142
  }>;
89
143
  /**
90
- * A SwiftUI `Slider`, iOS only. `valueChanged` reports each new value as the thumb moves; note the
91
- * d, which the native event has and `@expo/ui`'s React prop does not.
144
+ * A SwiftUI `Slider`, or Compose's on Android. `valueChanged` reports each new value as the thumb
145
+ * moves; note the d, which SwiftUI's event has and `@expo/ui`'s React prop does not.
92
146
  */
93
147
  export declare class UiSlider {
148
+ protected readonly nativeView: true;
94
149
  readonly value: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
95
150
  readonly min: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
96
151
  readonly max: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
@@ -98,19 +153,35 @@ export declare class UiSlider {
98
153
  readonly steps: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
99
154
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
100
155
  readonly valueChanged: import("@angular/core").OutputEmitterRef<UiSliderChangeEvent>;
156
+ protected readonly android: boolean;
157
+ /** A whole number of steps, which is all Compose can draw. */
158
+ private readonly wholeSteps;
159
+ /** SwiftUI takes a step size, and draws 0 to 1 unless it has both ends. */
160
+ protected readonly stepSize: import("@angular/core").Signal<number | undefined>;
161
+ /** Compose takes the number of points between the ends. */
162
+ protected readonly stepsBetween: import("@angular/core").Signal<number | undefined>;
101
163
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSlider, never>;
102
164
  static ɵcmp: i0.ɵɵComponentDeclaration<UiSlider, "ui-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, { "valueChanged": "valueChanged"; }, never, never, true, never>;
103
165
  }
104
- /** A SwiftUI `VStack`. */
166
+ /**
167
+ * A SwiftUI `VStack`, or Compose's `Column` on Android, centred, as SwiftUI's is, unless `alignment`
168
+ * says otherwise. Without `spacing`, SwiftUI puts its own default spacing between children and Compose
169
+ * puts none.
170
+ */
105
171
  export declare class UiVStack {
172
+ protected readonly nativeView: true;
106
173
  readonly alignment: import("@angular/core").InputSignal<"leading" | "center" | "trailing" | undefined>;
107
174
  readonly spacing: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
108
175
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
176
+ protected readonly android: boolean;
177
+ protected readonly spacedBy: typeof spacedBy;
178
+ protected composeAlignment(alignment: 'leading' | 'center' | 'trailing' | undefined): "center" | "start" | "end";
109
179
  static ɵfac: i0.ɵɵFactoryDeclaration<UiVStack, never>;
110
180
  static ɵcmp: i0.ɵɵComponentDeclaration<UiVStack, "ui-vstack", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
111
181
  }
112
182
  /** A SwiftUI `Image`: an SF Symbol by `systemName`, or a picture by `uiImage` URL. */
113
183
  export declare class UiImage {
184
+ protected readonly nativeView: true;
114
185
  readonly systemName: import("@angular/core").InputSignal<string | undefined>;
115
186
  readonly uiImage: import("@angular/core").InputSignal<string | undefined>;
116
187
  readonly size: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
@@ -119,12 +190,16 @@ export declare class UiImage {
119
190
  static ɵfac: i0.ɵɵFactoryDeclaration<UiImage, never>;
120
191
  static ɵcmp: i0.ɵɵComponentDeclaration<UiImage, "ui-image", never, { "systemName": { "alias": "systemName"; "required": false; "isSignal": true; }; "uiImage": { "alias": "uiImage"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
121
192
  }
122
- /** A SwiftUI `Text`. */
193
+ /**
194
+ * A SwiftUI `Text`, or Compose's on Android. Its text is what is written inside it,
195
+ * `<ui-text>Us {{ score }}</ui-text>`, as `<text>` takes its own, or `text`, which wins over it.
196
+ */
123
197
  export declare class UiText {
198
+ protected readonly nativeView: true;
124
199
  readonly text: import("@angular/core").InputSignal<string | undefined>;
125
200
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
126
201
  static ɵfac: i0.ɵɵFactoryDeclaration<UiText, never>;
127
- static ɵcmp: i0.ɵɵComponentDeclaration<UiText, "ui-text", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
202
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiText, "ui-text", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
128
203
  }
129
204
  /**
130
205
  * What `ui-date-picker` sends when the user picks: the chosen moment, which SwiftUI reports in
@@ -148,6 +223,7 @@ export type UiDateChangeEvent = NativeSyntheticEvent<{
148
223
  * `selection` is still accepted as ISO text, for a picker bound without a form.
149
224
  */
150
225
  export declare class UiDatePicker {
226
+ protected readonly nativeView: true;
151
227
  readonly title: import("@angular/core").InputSignal<string | undefined>;
152
228
  readonly selection: import("@angular/core").InputSignal<string | undefined>;
153
229
  readonly displayedComponents: import("@angular/core").InputSignal<readonly ("date" | "hourAndMinute")[] | undefined>;
@@ -191,11 +267,12 @@ export interface UiPickerOption {
191
267
  * work for anything richer. `pickerStyle` is SwiftUI's (`menu`, `segmented`, `wheel`, `inline`).
192
268
  */
193
269
  export declare class UiPicker {
270
+ protected readonly nativeView: true;
194
271
  readonly label: import("@angular/core").InputSignal<string | undefined>;
195
272
  /** An SF Symbol name. */
196
273
  readonly systemImage: import("@angular/core").InputSignal<string | undefined>;
197
274
  readonly options: import("@angular/core").InputSignal<readonly UiPickerOption[] | undefined>;
198
- readonly pickerStyle: import("@angular/core").InputSignal<"automatic" | "menu" | "segmented" | "wheel" | "inline" | "palette" | undefined>;
275
+ readonly pickerStyle: import("@angular/core").InputSignal<"inline" | "automatic" | "menu" | "segmented" | "wheel" | "palette" | undefined>;
199
276
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
200
277
  /** The chosen option's value: what `[formField]` binds. */
201
278
  readonly value: import("@angular/core").ModelSignal<string | number | null>;
@@ -216,12 +293,22 @@ export declare class UiPicker {
216
293
  export type UiToggleChangeEvent = NativeSyntheticEvent<{
217
294
  readonly isOn: boolean;
218
295
  }>;
219
- /** A SwiftUI `Toggle`. `isOnChange` reports each flip. */
296
+ /**
297
+ * A SwiftUI `Toggle`, or Compose's `Switch` on Android. `isOnChange` reports each flip. Bound to
298
+ * `isOn`, it shows what `isOn` says; without it, it switches itself. `label` is SwiftUI's alone.
299
+ */
220
300
  export declare class UiToggle {
301
+ protected readonly nativeView: true;
221
302
  readonly isOn: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
222
303
  readonly label: import("@angular/core").InputSignal<string | undefined>;
223
304
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
224
305
  readonly isOnChange: import("@angular/core").OutputEmitterRef<UiToggleChangeEvent>;
306
+ protected readonly android: boolean;
307
+ /** What Compose's switch shows without `isOn`: SwiftUI's keeps this itself, Compose's does not. */
308
+ protected readonly switchedOn: import("@angular/core").WritableSignal<boolean>;
309
+ protected checked(event: NativeSyntheticEvent<{
310
+ readonly value: boolean;
311
+ }>): void;
225
312
  static ɵfac: i0.ɵɵFactoryDeclaration<UiToggle, never>;
226
313
  static ɵcmp: i0.ɵɵComponentDeclaration<UiToggle, "ui-toggle", never, { "isOn": { "alias": "isOn"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, { "isOnChange": "isOnChange"; }, never, ["*"], true, never>;
227
314
  }
@@ -231,6 +318,7 @@ export type UiStepperChangeEvent = NativeSyntheticEvent<{
231
318
  }>;
232
319
  /** A SwiftUI `Stepper`, between `min` and `max` by `step`. */
233
320
  export declare class UiStepper {
321
+ protected readonly nativeView: true;
234
322
  readonly value: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
235
323
  readonly min: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
236
324
  readonly max: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
@@ -250,6 +338,7 @@ export type UiTextFieldChangeEvent = NativeSyntheticEvent<{
250
338
  * writes to it on the UI thread, and `textChange` reports each change.
251
339
  */
252
340
  export declare class UiTextField {
341
+ protected readonly nativeView: true;
253
342
  readonly text: import("@angular/core").InputSignal<NativeState<string> | null | undefined>;
254
343
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
255
344
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
@@ -263,6 +352,7 @@ export type UiColorChangeEvent = NativeSyntheticEvent<{
263
352
  }>;
264
353
  /** A SwiftUI `ColorPicker`. `selection` is a colour as hex. */
265
354
  export declare class UiColorPicker {
355
+ protected readonly nativeView: true;
266
356
  readonly selection: import("@angular/core").InputSignal<string | undefined>;
267
357
  readonly label: import("@angular/core").InputSignal<string | undefined>;
268
358
  readonly supportsOpacity: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
@@ -273,6 +363,7 @@ export declare class UiColorPicker {
273
363
  }
274
364
  /** A SwiftUI `Gauge`: `value` between `min` and `max`, drawn as `type` says. */
275
365
  export declare class UiGauge {
366
+ protected readonly nativeView: true;
276
367
  readonly value: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
277
368
  readonly min: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
278
369
  readonly max: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
@@ -284,29 +375,215 @@ export declare class UiGauge {
284
375
  static ɵfac: i0.ɵɵFactoryDeclaration<UiGauge, never>;
285
376
  static ɵcmp: i0.ɵɵComponentDeclaration<UiGauge, "ui-gauge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "currentValueLabel": { "alias": "currentValueLabel"; "required": false; "isSignal": true; }; "minimumValueLabel": { "alias": "minimumValueLabel"; "required": false; "isSignal": true; }; "maximumValueLabel": { "alias": "maximumValueLabel"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
286
377
  }
287
- /** A SwiftUI `ProgressView`: a bar filled to `value`, from 0 to 1, or a spinner without one. */
378
+ /** One point of a `ui-chart`: `x`, a label or a number, against `y`, with a colour of its own. */
379
+ export interface UiChartDataPoint {
380
+ readonly x: string | number;
381
+ readonly y: number;
382
+ readonly color?: string;
383
+ }
384
+ /** How a `ui-chart` draws its points: `pie` needs iOS 17. */
385
+ export type UiChartType = 'line' | 'point' | 'bar' | 'area' | 'pie' | 'rectangle';
386
+ /** The symbol a `ui-chart` marks a point with. */
387
+ export type UiChartPointSymbol = 'circle' | 'square' | 'diamond';
388
+ /** A line chart's line: its dashes, width, colour, and the symbol at each point. */
389
+ export interface UiChartLineStyle {
390
+ readonly dashArray?: readonly number[];
391
+ readonly width?: number;
392
+ readonly pointStyle?: UiChartPointSymbol;
393
+ readonly pointSize?: number;
394
+ readonly color?: string;
395
+ }
396
+ /** A point chart's symbol and its size. */
397
+ export interface UiChartPointStyle {
398
+ readonly pointStyle?: UiChartPointSymbol;
399
+ readonly pointSize?: number;
400
+ }
401
+ /** An area chart's fill. */
402
+ export interface UiChartAreaStyle {
403
+ readonly color?: string;
404
+ }
405
+ /** A bar chart's bars: their corner radius and width. */
406
+ export interface UiChartBarStyle {
407
+ readonly cornerRadius?: number;
408
+ readonly width?: number;
409
+ }
410
+ /** A pie chart's slices: `innerRadius` from 0, a full pie, to 0.5 for a donut, and the gap between. */
411
+ export interface UiChartPieStyle {
412
+ readonly innerRadius?: number;
413
+ readonly angularInset?: number;
414
+ }
415
+ /** A rectangle chart's colour and corner radius. */
416
+ export interface UiChartRectangleStyle {
417
+ readonly color?: string;
418
+ readonly cornerRadius?: number;
419
+ }
420
+ /** The lines `referenceLines` draws across a `ui-chart`. */
421
+ export interface UiChartRuleStyle {
422
+ readonly color?: string;
423
+ readonly lineWidth?: number;
424
+ readonly dashArray?: readonly number[];
425
+ }
426
+ /**
427
+ * A Swift Charts chart of `data`, drawn as `type` says, iOS only, as Compose has no chart. Each
428
+ * style applies to its own type alone; `referenceLines` are drawn across it in `ruleStyle`.
429
+ * `showLegend` shows only when no point has a colour of its own.
430
+ */
431
+ export declare class UiChart {
432
+ protected readonly nativeView: true;
433
+ readonly data: import("@angular/core").InputSignal<readonly UiChartDataPoint[]>;
434
+ readonly type: import("@angular/core").InputSignal<UiChartType | undefined>;
435
+ readonly showGrid: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
436
+ readonly animate: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
437
+ readonly showLegend: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
438
+ readonly referenceLines: import("@angular/core").InputSignal<readonly UiChartDataPoint[] | undefined>;
439
+ readonly lineStyle: import("@angular/core").InputSignal<UiChartLineStyle | undefined>;
440
+ readonly pointStyle: import("@angular/core").InputSignal<UiChartPointStyle | undefined>;
441
+ readonly areaStyle: import("@angular/core").InputSignal<UiChartAreaStyle | undefined>;
442
+ readonly barStyle: import("@angular/core").InputSignal<UiChartBarStyle | undefined>;
443
+ readonly pieStyle: import("@angular/core").InputSignal<UiChartPieStyle | undefined>;
444
+ readonly rectangleStyle: import("@angular/core").InputSignal<UiChartRectangleStyle | undefined>;
445
+ readonly ruleStyle: import("@angular/core").InputSignal<UiChartRuleStyle | undefined>;
446
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
447
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiChart, never>;
448
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiChart, "ui-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "animate": { "alias": "animate"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "referenceLines": { "alias": "referenceLines"; "required": false; "isSignal": true; }; "lineStyle": { "alias": "lineStyle"; "required": false; "isSignal": true; }; "pointStyle": { "alias": "pointStyle"; "required": false; "isSignal": true; }; "areaStyle": { "alias": "areaStyle"; "required": false; "isSignal": true; }; "barStyle": { "alias": "barStyle"; "required": false; "isSignal": true; }; "pieStyle": { "alias": "pieStyle"; "required": false; "isSignal": true; }; "rectangleStyle": { "alias": "rectangleStyle"; "required": false; "isSignal": true; }; "ruleStyle": { "alias": "ruleStyle"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
449
+ }
450
+ /**
451
+ * A SwiftUI `ProgressView`: a bar filled to `value`, from 0 to 1, or a spinner without one. On
452
+ * Android, Compose's `LinearProgressIndicator`, a moving bar rather than a spinner without a value.
453
+ */
288
454
  export declare class UiProgress {
455
+ protected readonly nativeView: true;
456
+ protected readonly android: boolean;
289
457
  readonly value: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
290
458
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
291
459
  static ɵfac: i0.ɵɵFactoryDeclaration<UiProgress, never>;
292
460
  static ɵcmp: i0.ɵɵComponentDeclaration<UiProgress, "ui-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
293
461
  }
294
- /** A SwiftUI `HStack`. */
462
+ /**
463
+ * A SwiftUI `HStack`, or Compose's `Row` on Android, centred, as SwiftUI's is, unless `alignment`
464
+ * says otherwise. Compose has no `firstTextBaseline`, and centres instead. Without `spacing`, SwiftUI
465
+ * puts its own default spacing between children and Compose puts none.
466
+ */
295
467
  export declare class UiHStack {
468
+ protected readonly nativeView: true;
296
469
  readonly alignment: import("@angular/core").InputSignal<"center" | "top" | "bottom" | "firstTextBaseline" | undefined>;
297
470
  readonly spacing: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
298
471
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
472
+ protected readonly android: boolean;
473
+ protected readonly spacedBy: typeof spacedBy;
474
+ protected composeAlignment(alignment: 'top' | 'center' | 'bottom' | 'firstTextBaseline' | undefined): "center" | "top" | "bottom";
299
475
  static ɵfac: i0.ɵɵFactoryDeclaration<UiHStack, never>;
300
476
  static ɵcmp: i0.ɵɵComponentDeclaration<UiHStack, "ui-hstack", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
301
477
  }
478
+ declare function spacedBy(spacing: number | undefined): {
479
+ spacedBy: number;
480
+ } | undefined;
302
481
  /** A SwiftUI `Spacer`: the room left over in its stack. */
303
482
  export declare class UiSpacer {
483
+ protected readonly nativeView: true;
304
484
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
305
485
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSpacer, never>;
306
486
  static ɵcmp: i0.ɵɵComponentDeclaration<UiSpacer, "ui-spacer", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
307
487
  }
488
+ /** Where `ui-zstack` puts its layers, as SwiftUI names it. */
489
+ export type UiZStackAlignment = 'center' | 'leading' | 'trailing' | 'top' | 'bottom' | 'topLeading' | 'topTrailing' | 'bottomLeading' | 'bottomTrailing';
490
+ /**
491
+ * A SwiftUI `ZStack`: its children drawn over one another, the first at the back. On Android,
492
+ * Compose's `Box`, centred, as SwiftUI's is, unless `alignment` says otherwise.
493
+ */
494
+ export declare class UiZStack {
495
+ protected readonly nativeView: true;
496
+ readonly alignment: import("@angular/core").InputSignal<UiZStackAlignment | undefined>;
497
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
498
+ protected readonly android: boolean;
499
+ protected readonly contentAlignment: Record<UiZStackAlignment, string>;
500
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiZStack, never>;
501
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiZStack, "ui-zstack", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
502
+ }
503
+ /** A SwiftUI `Rectangle`, filling the space it is given. Colour it with `foregroundStyle`. */
504
+ export declare class UiRectangle {
505
+ protected readonly nativeView: true;
506
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
507
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiRectangle, never>;
508
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiRectangle, "ui-rectangle", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
509
+ }
510
+ /** A SwiftUI `RoundedRectangle`, its corners rounded by `cornerRadius`. */
511
+ export declare class UiRoundedRectangle {
512
+ protected readonly nativeView: true;
513
+ readonly cornerRadius: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
514
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
515
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiRoundedRectangle, never>;
516
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiRoundedRectangle, "ui-rounded-rectangle", never, { "cornerRadius": { "alias": "cornerRadius"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
517
+ }
518
+ /** A SwiftUI `UnevenRoundedRectangle`: a rectangle with a radius of its own for each corner. */
519
+ export declare class UiUnevenRoundedRectangle {
520
+ protected readonly nativeView: true;
521
+ readonly topLeadingRadius: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
522
+ readonly topTrailingRadius: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
523
+ readonly bottomLeadingRadius: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
524
+ readonly bottomTrailingRadius: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
525
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
526
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiUnevenRoundedRectangle, never>;
527
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiUnevenRoundedRectangle, "ui-uneven-rounded-rectangle", never, { "topLeadingRadius": { "alias": "topLeadingRadius"; "required": false; "isSignal": true; }; "topTrailingRadius": { "alias": "topTrailingRadius"; "required": false; "isSignal": true; }; "bottomLeadingRadius": { "alias": "bottomLeadingRadius"; "required": false; "isSignal": true; }; "bottomTrailingRadius": { "alias": "bottomTrailingRadius"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
528
+ }
529
+ /** A SwiftUI `Capsule`: a rectangle with fully rounded ends. */
530
+ export declare class UiCapsule {
531
+ protected readonly nativeView: true;
532
+ readonly cornerStyle: import("@angular/core").InputSignal<"continuous" | "circular" | undefined>;
533
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
534
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiCapsule, never>;
535
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiCapsule, "ui-capsule", never, { "cornerStyle": { "alias": "cornerStyle"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
536
+ }
537
+ /** A SwiftUI `Circle`, as large as fits the space it is given. */
538
+ export declare class UiCircle {
539
+ protected readonly nativeView: true;
540
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
541
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiCircle, never>;
542
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiCircle, "ui-circle", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
543
+ }
544
+ /** A SwiftUI `Ellipse`, filling the space it is given. */
545
+ export declare class UiEllipse {
546
+ protected readonly nativeView: true;
547
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
548
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiEllipse, never>;
549
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiEllipse, "ui-ellipse", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
550
+ }
551
+ /**
552
+ * WidgetKit's `AccessoryWidgetBackground`: the system's backdrop for a lock screen widget, the
553
+ * translucent disc or panel behind its content.
554
+ */
555
+ export declare class UiAccessoryWidgetBackground {
556
+ protected readonly nativeView: true;
557
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
558
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiAccessoryWidgetBackground, never>;
559
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiAccessoryWidgetBackground, "ui-accessory-widget-background", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
560
+ }
561
+ /** A SwiftUI `Label`: a title beside an SF Symbol. */
562
+ export declare class UiLabel {
563
+ protected readonly nativeView: true;
564
+ readonly title: import("@angular/core").InputSignal<string | undefined>;
565
+ /** An SF Symbol name. */
566
+ readonly systemImage: import("@angular/core").InputSignal<string | undefined>;
567
+ readonly color: import("@angular/core").InputSignal<string | undefined>;
568
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
569
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiLabel, never>;
570
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiLabel, "ui-label", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "systemImage": { "alias": "systemImage"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
571
+ }
572
+ /**
573
+ * A SwiftUI `Link`: opens `destination`, a URL, when tapped. It shows `label`, or the views
574
+ * written inside it. In a widget, a link is how a tap opens the app at a deep link.
575
+ */
576
+ export declare class UiLink {
577
+ protected readonly nativeView: true;
578
+ readonly destination: import("@angular/core").InputSignal<string>;
579
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
580
+ readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
581
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiLink, never>;
582
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiLink, "ui-link", never, { "destination": { "alias": "destination"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
583
+ }
308
584
  /** A SwiftUI `LabeledContent`: a label, and its content beside it. */
309
585
  export declare class UiLabeledContent {
586
+ protected readonly nativeView: true;
310
587
  readonly label: import("@angular/core").InputSignal<string | undefined>;
311
588
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
312
589
  static ɵfac: i0.ɵɵFactoryDeclaration<UiLabeledContent, never>;
@@ -314,14 +591,17 @@ export declare class UiLabeledContent {
314
591
  }
315
592
  /** A SwiftUI `Form`: settings-style grouped rows. */
316
593
  export declare class UiForm {
594
+ protected readonly nativeView: true;
317
595
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
318
596
  static ɵfac: i0.ɵɵFactoryDeclaration<UiForm, never>;
319
597
  static ɵcmp: i0.ɵɵComponentDeclaration<UiForm, "ui-form", never, { "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
320
598
  }
321
599
  /** A SwiftUI `Section` of a form or a list, under `title`. */
322
600
  export declare class UiSection {
601
+ protected readonly nativeView: true;
323
602
  readonly title: import("@angular/core").InputSignal<string | undefined>;
324
603
  readonly modifiers: import("@angular/core").InputSignal<readonly UiModifier[] | undefined>;
325
604
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSection, never>;
326
605
  static ɵcmp: i0.ɵɵComponentDeclaration<UiSection, "ui-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
327
606
  }
607
+ export {};