@ng-native/expo 0.3.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 (47) hide show
  1. package/dist/audio.js +2 -2
  2. package/dist/audio.js.map +1 -1
  3. package/dist/community-views.js +1 -1
  4. package/dist/community-views.js.map +1 -1
  5. package/dist/crypto.js +2 -2
  6. package/dist/crypto.js.map +1 -1
  7. package/dist/database.d.ts +18 -3
  8. package/dist/database.js +26 -7
  9. package/dist/database.js.map +1 -1
  10. package/dist/date-time-picker.d.ts +33 -0
  11. package/dist/date-time-picker.js +77 -0
  12. package/dist/date-time-picker.js.map +1 -0
  13. package/dist/dom-component.d.ts +5 -0
  14. package/dist/dom-component.js +57 -2
  15. package/dist/dom-component.js.map +1 -1
  16. package/dist/expo-ui-components.d.ts +150 -2
  17. package/dist/expo-ui-components.js +170 -3
  18. package/dist/expo-ui-components.js.map +1 -1
  19. package/dist/expo-ui.js +11 -1
  20. package/dist/expo-ui.js.map +1 -1
  21. package/dist/file-system.d.ts +7 -0
  22. package/dist/file-system.js +16 -3
  23. package/dist/file-system.js.map +1 -1
  24. package/dist/fonts.d.ts +0 -9
  25. package/dist/fonts.js +19 -14
  26. package/dist/fonts.js.map +1 -1
  27. package/dist/glass.d.ts +1 -1
  28. package/dist/index.d.ts +3 -2
  29. package/dist/index.js +3 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/live-activity.js +7 -1
  32. package/dist/live-activity.js.map +1 -1
  33. package/dist/location.d.ts +17 -0
  34. package/dist/location.js +18 -0
  35. package/dist/location.js.map +1 -1
  36. package/dist/native.d.ts +8 -1
  37. package/dist/native.js +21 -6
  38. package/dist/native.js.map +1 -1
  39. package/dist/register-expo-view.d.ts +2 -0
  40. package/dist/register-expo-view.js +1 -0
  41. package/dist/register-expo-view.js.map +1 -1
  42. package/dist/video.js +2 -2
  43. package/dist/video.js.map +1 -1
  44. package/dist/widget.d.ts +63 -0
  45. package/dist/widget.js +98 -0
  46. package/dist/widget.js.map +1 -0
  47. package/package.json +6 -2
@@ -24,9 +24,17 @@
24
24
  * registration is what makes it commit as the SwiftUI or Compose view.
25
25
  */
26
26
  import { Component, DestroyRef, forwardRef, ElementRef, booleanAttribute, computed, inject, input, model, output, signal, } from '@angular/core';
27
- import { HostEngine, nativePlatform, } from '@ng-native/fabric';
27
+ import { HostEngine, keepNativeView, nativePlatform, } from '@ng-native/fabric';
28
28
  import { optionalBoolean, optionalNumber } from "./transforms.js";
29
29
  import * as i0 from "@angular/core";
30
+ /**
31
+ * Says the component's host is the `@expo/ui` view its selector is registered as. A component of
32
+ * an app's own with a `ui-` selector does not, and its host is a plain view.
33
+ */
34
+ function nativeView() {
35
+ keepNativeView(inject(ElementRef).nativeElement);
36
+ return true;
37
+ }
30
38
  /**
31
39
  * The bridge from Yoga's layout to SwiftUI's; every other `ui-*` view goes inside one.
32
40
  * `matchContents` sizes the host to the SwiftUI content rather than the other way round, on both
@@ -35,6 +43,7 @@ import * as i0 from "@angular/core";
35
43
  * drawn in it spills outside it, where it can be seen but not touched or read by VoiceOver.
36
44
  */
37
45
  export class UiHost {
46
+ nativeView = nativeView();
38
47
  matchContents = input(/* @ts-ignore */
39
48
  ...(ngDevMode ? [undefined, { debugName: "matchContents" }] : /* istanbul ignore next */ []));
40
49
  matchVertical = computed(() => {
@@ -68,6 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
68
77
  }], propDecorators: { matchContents: [{ type: i0.Input, args: [{ isSignal: true, alias: "matchContents", required: false }] }], ignoreSafeArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "ignoreSafeArea", required: false }] }], useViewportSizeMeasurement: [{ type: i0.Input, args: [{ isSignal: true, alias: "useViewportSizeMeasurement", required: false }] }] } });
69
78
  /** A SwiftUI `Menu`. Its trigger is the `label` or a `<ui-slot name="label">`; its items are children. */
70
79
  export class UiMenu {
80
+ nativeView = nativeView();
71
81
  label = input(/* @ts-ignore */
72
82
  ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
73
83
  /** An SF Symbol name. */
@@ -93,11 +103,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
93
103
  },
94
104
  }]
95
105
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], systemImage: [{ type: i0.Input, args: [{ isSignal: true, alias: "systemImage", required: false }] }], accessibilityLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibilityLabel", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
106
+ /**
107
+ * Views of the app's own inside SwiftUI or Compose content: the way back from a `ui-host`. What
108
+ * it holds is laid out by the engine, as anywhere else, and takes presses as anywhere else, so a
109
+ * row drawn with the app's own components can be a context menu's trigger or a sheet's body.
110
+ *
111
+ * It holds one element. `matchContents` sizes it to that element, both ways: the element needs a
112
+ * width of its own, since nothing here stretches it. Without `matchContents` it fills what the
113
+ * SwiftUI or Compose view around it offers, which inside a view sized to its content is a width
114
+ * and no height.
115
+ */
116
+ export class UiViewHost {
117
+ nativeView = nativeView();
118
+ matchContents = input(undefined, { ...(ngDevMode ? { debugName: "matchContents" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
119
+ /**
120
+ * For content presented in a window of its own, a sheet or a popover, where nothing above it
121
+ * delivers its touches: it then takes them itself, and is measured from itself.
122
+ */
123
+ layoutRoot = input(undefined, { ...(ngDevMode ? { debugName: "layoutRoot" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
124
+ modifiers = input(/* @ts-ignore */
125
+ ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiViewHost, deps: [], target: i0.ɵɵFactoryTarget.Component });
127
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.2.0", type: UiViewHost, isStandalone: true, selector: "ui-view-host", inputs: { matchContents: { classPropertyName: "matchContents", publicName: "matchContents", isSignal: true, isRequired: false, transformFunction: null }, layoutRoot: { classPropertyName: "layoutRoot", publicName: "layoutRoot", isSignal: true, isRequired: false, transformFunction: null }, modifiers: { classPropertyName: "modifiers", publicName: "modifiers", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "matchContents": "matchContents()", "expoInternalSizeFromChildren": "matchContents()", "layoutRoot": "layoutRoot()", "modifiers": "modifiers()" } }, ngImport: i0, template: '<ng-content />', isInline: true });
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiViewHost, decorators: [{
130
+ type: Component,
131
+ args: [{
132
+ selector: 'ui-view-host',
133
+ template: '<ng-content />',
134
+ host: {
135
+ '[matchContents]': 'matchContents()',
136
+ '[expoInternalSizeFromChildren]': 'matchContents()',
137
+ '[layoutRoot]': 'layoutRoot()',
138
+ '[modifiers]': 'modifiers()',
139
+ },
140
+ }]
141
+ }], propDecorators: { matchContents: [{ type: i0.Input, args: [{ isSignal: true, alias: "matchContents", required: false }] }], layoutRoot: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutRoot", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
142
+ /**
143
+ * A SwiftUI `contextMenu`: the menu a long press on its trigger opens, with the trigger lifted
144
+ * over the dimmed screen. iOS only.
145
+ *
146
+ * Its content is three slots: `<ui-slot name="trigger">` is what is always shown,
147
+ * `<ui-slot name="items">` holds the `ui-button`s, `ui-divider`s and `ui-section`s of the menu, and
148
+ * `<ui-slot name="preview">`, when there is one, is shown above the open menu in place of the
149
+ * trigger. All three are SwiftUI content, as everything inside a `ui-host` is.
150
+ */
151
+ export class UiContextMenu {
152
+ nativeView = nativeView();
153
+ modifiers = input(/* @ts-ignore */
154
+ ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
155
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiContextMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
156
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.2.0", type: UiContextMenu, isStandalone: true, selector: "ui-context-menu", inputs: { modifiers: { classPropertyName: "modifiers", publicName: "modifiers", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "modifiers": "modifiers()" } }, ngImport: i0, template: '<ng-content />', isInline: true });
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiContextMenu, decorators: [{
159
+ type: Component,
160
+ args: [{
161
+ selector: 'ui-context-menu',
162
+ template: '<ng-content />',
163
+ host: { '[modifiers]': 'modifiers()' },
164
+ }]
165
+ }], propDecorators: { modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
96
166
  /**
97
167
  * A SwiftUI `Button`, as a menu item or on its own, or Compose's on Android, which draws `label` as
98
168
  * text inside it. `systemImage` and `role` are SwiftUI's alone.
99
169
  */
100
170
  export class UiButton {
171
+ nativeView = nativeView();
101
172
  android = nativePlatform() === 'android';
102
173
  label = input(/* @ts-ignore */
103
174
  ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
@@ -106,11 +177,17 @@ export class UiButton {
106
177
  ...(ngDevMode ? [undefined, { debugName: "systemImage" }] : /* istanbul ignore next */ []));
107
178
  role = input(/* @ts-ignore */
108
179
  ...(ngDevMode ? [undefined, { debugName: "role" }] : /* istanbul ignore next */ []));
180
+ /**
181
+ * In a home-screen widget's layout, what a tap on it records for the app: see
182
+ * `@ng-native/expo/widget`.
183
+ */
184
+ target = input(/* @ts-ignore */
185
+ ...(ngDevMode ? [undefined, { debugName: "target" }] : /* istanbul ignore next */ []));
109
186
  modifiers = input(/* @ts-ignore */
110
187
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
111
188
  buttonPress = output();
112
189
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: UiButton, isStandalone: true, selector: "ui-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, systemImage: { classPropertyName: "systemImage", publicName: "systemImage", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, modifiers: { classPropertyName: "modifiers", publicName: "modifiers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonPress: "buttonPress" }, host: { listeners: { "buttonPressed": "android && buttonPress.emit($event)" }, properties: { "label": "label()", "systemImage": "systemImage()", "role": "role()", "modifiers": "modifiers()" } }, ngImport: i0, template: `@if (android && label()) {
190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: UiButton, isStandalone: true, selector: "ui-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, systemImage: { classPropertyName: "systemImage", publicName: "systemImage", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, modifiers: { classPropertyName: "modifiers", publicName: "modifiers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonPress: "buttonPress" }, host: { listeners: { "buttonPressed": "android && buttonPress.emit($event)" }, properties: { "label": "label()", "systemImage": "systemImage()", "role": "role()", "target": "target()", "modifiers": "modifiers()" } }, ngImport: i0, template: `@if (android && label()) {
114
191
  <ui-text [text]="label()" />
115
192
  }
116
193
  <ng-content />`, isInline: true, dependencies: [{ kind: "component", type: i0.forwardRef(() => UiText), selector: "ui-text", inputs: ["text", "modifiers"] }] });
@@ -129,12 +206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
129
206
  '[label]': 'label()',
130
207
  '[systemImage]': 'systemImage()',
131
208
  '[role]': 'role()',
209
+ '[target]': 'target()',
132
210
  '[modifiers]': 'modifiers()',
133
211
  },
134
212
  }]
135
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], systemImage: [{ type: i0.Input, args: [{ isSignal: true, alias: "systemImage", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }], buttonPress: [{ type: i0.Output, args: ["buttonPress"] }] } });
213
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], systemImage: [{ type: i0.Input, args: [{ isSignal: true, alias: "systemImage", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }], buttonPress: [{ type: i0.Output, args: ["buttonPress"] }] } });
136
214
  /** A SwiftUI `Divider`, or Compose's `HorizontalDivider`: a separator between groups of items. */
137
215
  export class UiDivider {
216
+ nativeView = nativeView();
138
217
  modifiers = input(/* @ts-ignore */
139
218
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
140
219
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -154,6 +233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
154
233
  * `allowsFullSwipe`.
155
234
  */
156
235
  export class UiSlot {
236
+ nativeView = nativeView();
157
237
  android = nativePlatform() === 'android';
158
238
  name = input.required(/* @ts-ignore */
159
239
  ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
@@ -179,6 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
179
259
  * swipe actions through `ui-swipe-actions`.
180
260
  */
181
261
  export class UiList {
262
+ nativeView = nativeView();
182
263
  modifiers = input(/* @ts-ignore */
183
264
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
184
265
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiList, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -198,6 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
198
279
  * slot per edge, as `ui-button`s.
199
280
  */
200
281
  export class UiSwipeActions {
282
+ nativeView = nativeView();
201
283
  modifiers = input(/* @ts-ignore */
202
284
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
203
285
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiSwipeActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -216,6 +298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
216
298
  * moves; note the d, which SwiftUI's event has and `@expo/ui`'s React prop does not.
217
299
  */
218
300
  export class UiSlider {
301
+ nativeView = nativeView();
219
302
  value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), transform: optionalNumber });
220
303
  min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: optionalNumber });
221
304
  max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -270,6 +353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
270
353
  * puts none.
271
354
  */
272
355
  export class UiVStack {
356
+ nativeView = nativeView();
273
357
  alignment = input(/* @ts-ignore */
274
358
  ...(ngDevMode ? [undefined, { debugName: "alignment" }] : /* istanbul ignore next */ []));
275
359
  spacing = input(undefined, { ...(ngDevMode ? { debugName: "spacing" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -299,6 +383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
299
383
  }], propDecorators: { alignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignment", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
300
384
  /** A SwiftUI `Image`: an SF Symbol by `systemName`, or a picture by `uiImage` URL. */
301
385
  export class UiImage {
386
+ nativeView = nativeView();
302
387
  systemName = input(/* @ts-ignore */
303
388
  ...(ngDevMode ? [undefined, { debugName: "systemName" }] : /* istanbul ignore next */ []));
304
389
  uiImage = input(/* @ts-ignore */
@@ -330,6 +415,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
330
415
  * `<ui-text>Us {{ score }}</ui-text>`, as `<text>` takes its own, or `text`, which wins over it.
331
416
  */
332
417
  export class UiText {
418
+ nativeView = nativeView();
333
419
  text = input(/* @ts-ignore */
334
420
  ...(ngDevMode ? [undefined, { debugName: "text" }] : /* istanbul ignore next */ []));
335
421
  modifiers = input(/* @ts-ignore */
@@ -387,6 +473,7 @@ function withDisabled(modifiers, disabled) {
387
473
  * `selection` is still accepted as ISO text, for a picker bound without a form.
388
474
  */
389
475
  export class UiDatePicker {
476
+ nativeView = nativeView();
390
477
  title = input(/* @ts-ignore */
391
478
  ...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
392
479
  selection = input(/* @ts-ignore */
@@ -461,6 +548,7 @@ const APPEARING_MS = 1000;
461
548
  * work for anything richer. `pickerStyle` is SwiftUI's (`menu`, `segmented`, `wheel`, `inline`).
462
549
  */
463
550
  export class UiPicker {
551
+ nativeView = nativeView();
464
552
  label = input(/* @ts-ignore */
465
553
  ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
466
554
  /** An SF Symbol name. */
@@ -541,6 +629,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
541
629
  * `isOn`, it shows what `isOn` says; without it, it switches itself. `label` is SwiftUI's alone.
542
630
  */
543
631
  export class UiToggle {
632
+ nativeView = nativeView();
544
633
  isOn = input(undefined, { ...(ngDevMode ? { debugName: "isOn" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
545
634
  label = input(/* @ts-ignore */
546
635
  ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
@@ -574,6 +663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
574
663
  }], propDecorators: { isOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOn", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }], isOnChange: [{ type: i0.Output, args: ["isOnChange"] }] } });
575
664
  /** A SwiftUI `Stepper`, between `min` and `max` by `step`. */
576
665
  export class UiStepper {
666
+ nativeView = nativeView();
577
667
  value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), transform: optionalNumber });
578
668
  min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: optionalNumber });
579
669
  max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -606,6 +696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
606
696
  * writes to it on the UI thread, and `textChange` reports each change.
607
697
  */
608
698
  export class UiTextField {
699
+ nativeView = nativeView();
609
700
  text = input(/* @ts-ignore */
610
701
  ...(ngDevMode ? [undefined, { debugName: "text" }] : /* istanbul ignore next */ []));
611
702
  placeholder = input(/* @ts-ignore */
@@ -630,6 +721,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
630
721
  }], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }], textChange: [{ type: i0.Output, args: ["textChange"] }] } });
631
722
  /** A SwiftUI `ColorPicker`. `selection` is a colour as hex. */
632
723
  export class UiColorPicker {
724
+ nativeView = nativeView();
633
725
  selection = input(/* @ts-ignore */
634
726
  ...(ngDevMode ? [undefined, { debugName: "selection" }] : /* istanbul ignore next */ []));
635
727
  label = input(/* @ts-ignore */
@@ -656,6 +748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
656
748
  }], propDecorators: { selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], supportsOpacity: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportsOpacity", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }] } });
657
749
  /** A SwiftUI `Gauge`: `value` between `min` and `max`, drawn as `type` says. */
658
750
  export class UiGauge {
751
+ nativeView = nativeView();
659
752
  value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), transform: optionalNumber });
660
753
  min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: optionalNumber });
661
754
  max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -689,11 +782,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
689
782
  },
690
783
  }]
691
784
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], currentValueLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentValueLabel", required: false }] }], minimumValueLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "minimumValueLabel", required: false }] }], maximumValueLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "maximumValueLabel", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
785
+ /**
786
+ * A Swift Charts chart of `data`, drawn as `type` says, iOS only, as Compose has no chart. Each
787
+ * style applies to its own type alone; `referenceLines` are drawn across it in `ruleStyle`.
788
+ * `showLegend` shows only when no point has a colour of its own.
789
+ */
790
+ export class UiChart {
791
+ nativeView = nativeView();
792
+ data = input.required(/* @ts-ignore */
793
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
794
+ type = input(/* @ts-ignore */
795
+ ...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
796
+ showGrid = input(undefined, { ...(ngDevMode ? { debugName: "showGrid" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
797
+ animate = input(undefined, { ...(ngDevMode ? { debugName: "animate" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
798
+ showLegend = input(undefined, { ...(ngDevMode ? { debugName: "showLegend" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
799
+ referenceLines = input(/* @ts-ignore */
800
+ ...(ngDevMode ? [undefined, { debugName: "referenceLines" }] : /* istanbul ignore next */ []));
801
+ lineStyle = input(/* @ts-ignore */
802
+ ...(ngDevMode ? [undefined, { debugName: "lineStyle" }] : /* istanbul ignore next */ []));
803
+ pointStyle = input(/* @ts-ignore */
804
+ ...(ngDevMode ? [undefined, { debugName: "pointStyle" }] : /* istanbul ignore next */ []));
805
+ areaStyle = input(/* @ts-ignore */
806
+ ...(ngDevMode ? [undefined, { debugName: "areaStyle" }] : /* istanbul ignore next */ []));
807
+ barStyle = input(/* @ts-ignore */
808
+ ...(ngDevMode ? [undefined, { debugName: "barStyle" }] : /* istanbul ignore next */ []));
809
+ pieStyle = input(/* @ts-ignore */
810
+ ...(ngDevMode ? [undefined, { debugName: "pieStyle" }] : /* istanbul ignore next */ []));
811
+ rectangleStyle = input(/* @ts-ignore */
812
+ ...(ngDevMode ? [undefined, { debugName: "rectangleStyle" }] : /* istanbul ignore next */ []));
813
+ ruleStyle = input(/* @ts-ignore */
814
+ ...(ngDevMode ? [undefined, { debugName: "ruleStyle" }] : /* istanbul ignore next */ []));
815
+ modifiers = input(/* @ts-ignore */
816
+ ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
817
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
818
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.2.0", type: UiChart, isStandalone: true, selector: "ui-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, referenceLines: { classPropertyName: "referenceLines", publicName: "referenceLines", isSignal: true, isRequired: false, transformFunction: null }, lineStyle: { classPropertyName: "lineStyle", publicName: "lineStyle", isSignal: true, isRequired: false, transformFunction: null }, pointStyle: { classPropertyName: "pointStyle", publicName: "pointStyle", isSignal: true, isRequired: false, transformFunction: null }, areaStyle: { classPropertyName: "areaStyle", publicName: "areaStyle", isSignal: true, isRequired: false, transformFunction: null }, barStyle: { classPropertyName: "barStyle", publicName: "barStyle", isSignal: true, isRequired: false, transformFunction: null }, pieStyle: { classPropertyName: "pieStyle", publicName: "pieStyle", isSignal: true, isRequired: false, transformFunction: null }, rectangleStyle: { classPropertyName: "rectangleStyle", publicName: "rectangleStyle", isSignal: true, isRequired: false, transformFunction: null }, ruleStyle: { classPropertyName: "ruleStyle", publicName: "ruleStyle", isSignal: true, isRequired: false, transformFunction: null }, modifiers: { classPropertyName: "modifiers", publicName: "modifiers", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "data": "data()", "type": "type()", "showGrid": "showGrid()", "animate": "animate()", "showLegend": "showLegend()", "referenceLines": "referenceLines()", "lineStyle": "lineStyle()", "pointStyle": "pointStyle()", "areaStyle": "areaStyle()", "barStyle": "barStyle()", "pieStyle": "pieStyle()", "rectangleStyle": "rectangleStyle()", "ruleStyle": "ruleStyle()", "modifiers": "modifiers()" } }, ngImport: i0, template: '', isInline: true });
819
+ }
820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiChart, decorators: [{
821
+ type: Component,
822
+ args: [{
823
+ selector: 'ui-chart',
824
+ template: '',
825
+ host: {
826
+ '[data]': 'data()',
827
+ '[type]': 'type()',
828
+ '[showGrid]': 'showGrid()',
829
+ '[animate]': 'animate()',
830
+ '[showLegend]': 'showLegend()',
831
+ '[referenceLines]': 'referenceLines()',
832
+ '[lineStyle]': 'lineStyle()',
833
+ '[pointStyle]': 'pointStyle()',
834
+ '[areaStyle]': 'areaStyle()',
835
+ '[barStyle]': 'barStyle()',
836
+ '[pieStyle]': 'pieStyle()',
837
+ '[rectangleStyle]': 'rectangleStyle()',
838
+ '[ruleStyle]': 'ruleStyle()',
839
+ '[modifiers]': 'modifiers()',
840
+ },
841
+ }]
842
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], referenceLines: [{ type: i0.Input, args: [{ isSignal: true, alias: "referenceLines", required: false }] }], lineStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineStyle", required: false }] }], pointStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "pointStyle", required: false }] }], areaStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "areaStyle", required: false }] }], barStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "barStyle", required: false }] }], pieStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "pieStyle", required: false }] }], rectangleStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "rectangleStyle", required: false }] }], ruleStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "ruleStyle", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
692
843
  /**
693
844
  * A SwiftUI `ProgressView`: a bar filled to `value`, from 0 to 1, or a spinner without one. On
694
845
  * Android, Compose's `LinearProgressIndicator`, a moving bar rather than a spinner without a value.
695
846
  */
696
847
  export class UiProgress {
848
+ nativeView = nativeView();
697
849
  android = nativePlatform() === 'android';
698
850
  value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), transform: optionalNumber });
699
851
  modifiers = input(/* @ts-ignore */
@@ -719,6 +871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
719
871
  * puts its own default spacing between children and Compose puts none.
720
872
  */
721
873
  export class UiHStack {
874
+ nativeView = nativeView();
722
875
  alignment = input(/* @ts-ignore */
723
876
  ...(ngDevMode ? [undefined, { debugName: "alignment" }] : /* istanbul ignore next */ []));
724
877
  spacing = input(undefined, { ...(ngDevMode ? { debugName: "spacing" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -751,6 +904,7 @@ function spacedBy(spacing) {
751
904
  }
752
905
  /** A SwiftUI `Spacer`: the room left over in its stack. */
753
906
  export class UiSpacer {
907
+ nativeView = nativeView();
754
908
  modifiers = input(/* @ts-ignore */
755
909
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
756
910
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiSpacer, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -781,6 +935,7 @@ const CONTENT_ALIGNMENT = {
781
935
  * Compose's `Box`, centred, as SwiftUI's is, unless `alignment` says otherwise.
782
936
  */
783
937
  export class UiZStack {
938
+ nativeView = nativeView();
784
939
  alignment = input(/* @ts-ignore */
785
940
  ...(ngDevMode ? [undefined, { debugName: "alignment" }] : /* istanbul ignore next */ []));
786
941
  modifiers = input(/* @ts-ignore */
@@ -804,6 +959,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
804
959
  }], propDecorators: { alignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignment", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
805
960
  /** A SwiftUI `Rectangle`, filling the space it is given. Colour it with `foregroundStyle`. */
806
961
  export class UiRectangle {
962
+ nativeView = nativeView();
807
963
  modifiers = input(/* @ts-ignore */
808
964
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
809
965
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiRectangle, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -819,6 +975,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
819
975
  }], propDecorators: { modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
820
976
  /** A SwiftUI `RoundedRectangle`, its corners rounded by `cornerRadius`. */
821
977
  export class UiRoundedRectangle {
978
+ nativeView = nativeView();
822
979
  cornerRadius = input(undefined, { ...(ngDevMode ? { debugName: "cornerRadius" } : /* istanbul ignore next */ {}), transform: optionalNumber });
823
980
  modifiers = input(/* @ts-ignore */
824
981
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
@@ -835,6 +992,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
835
992
  }], propDecorators: { cornerRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "cornerRadius", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
836
993
  /** A SwiftUI `UnevenRoundedRectangle`: a rectangle with a radius of its own for each corner. */
837
994
  export class UiUnevenRoundedRectangle {
995
+ nativeView = nativeView();
838
996
  topLeadingRadius = input(undefined, { ...(ngDevMode ? { debugName: "topLeadingRadius" } : /* istanbul ignore next */ {}), transform: optionalNumber });
839
997
  topTrailingRadius = input(undefined, { ...(ngDevMode ? { debugName: "topTrailingRadius" } : /* istanbul ignore next */ {}), transform: optionalNumber });
840
998
  bottomLeadingRadius = input(undefined, { ...(ngDevMode ? { debugName: "bottomLeadingRadius" } : /* istanbul ignore next */ {}), transform: optionalNumber });
@@ -860,6 +1018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
860
1018
  }], propDecorators: { topLeadingRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "topLeadingRadius", required: false }] }], topTrailingRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "topTrailingRadius", required: false }] }], bottomLeadingRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottomLeadingRadius", required: false }] }], bottomTrailingRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottomTrailingRadius", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
861
1019
  /** A SwiftUI `Capsule`: a rectangle with fully rounded ends. */
862
1020
  export class UiCapsule {
1021
+ nativeView = nativeView();
863
1022
  cornerStyle = input(/* @ts-ignore */
864
1023
  ...(ngDevMode ? [undefined, { debugName: "cornerStyle" }] : /* istanbul ignore next */ []));
865
1024
  modifiers = input(/* @ts-ignore */
@@ -877,6 +1036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
877
1036
  }], propDecorators: { cornerStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "cornerStyle", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
878
1037
  /** A SwiftUI `Circle`, as large as fits the space it is given. */
879
1038
  export class UiCircle {
1039
+ nativeView = nativeView();
880
1040
  modifiers = input(/* @ts-ignore */
881
1041
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
882
1042
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiCircle, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -892,6 +1052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
892
1052
  }], propDecorators: { modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
893
1053
  /** A SwiftUI `Ellipse`, filling the space it is given. */
894
1054
  export class UiEllipse {
1055
+ nativeView = nativeView();
895
1056
  modifiers = input(/* @ts-ignore */
896
1057
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
897
1058
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiEllipse, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -910,6 +1071,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
910
1071
  * translucent disc or panel behind its content.
911
1072
  */
912
1073
  export class UiAccessoryWidgetBackground {
1074
+ nativeView = nativeView();
913
1075
  modifiers = input(/* @ts-ignore */
914
1076
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
915
1077
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiAccessoryWidgetBackground, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -925,6 +1087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
925
1087
  }], propDecorators: { modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
926
1088
  /** A SwiftUI `Label`: a title beside an SF Symbol. */
927
1089
  export class UiLabel {
1090
+ nativeView = nativeView();
928
1091
  title = input(/* @ts-ignore */
929
1092
  ...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
930
1093
  /** An SF Symbol name. */
@@ -955,6 +1118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
955
1118
  * written inside it. In a widget, a link is how a tap opens the app at a deep link.
956
1119
  */
957
1120
  export class UiLink {
1121
+ nativeView = nativeView();
958
1122
  destination = input.required(/* @ts-ignore */
959
1123
  ...(ngDevMode ? [{ debugName: "destination" }] : /* istanbul ignore next */ []));
960
1124
  label = input(/* @ts-ignore */
@@ -978,6 +1142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
978
1142
  }], propDecorators: { destination: [{ type: i0.Input, args: [{ isSignal: true, alias: "destination", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
979
1143
  /** A SwiftUI `LabeledContent`: a label, and its content beside it. */
980
1144
  export class UiLabeledContent {
1145
+ nativeView = nativeView();
981
1146
  label = input(/* @ts-ignore */
982
1147
  ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
983
1148
  modifiers = input(/* @ts-ignore */
@@ -996,6 +1161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
996
1161
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
997
1162
  /** A SwiftUI `Form`: settings-style grouped rows. */
998
1163
  export class UiForm {
1164
+ nativeView = nativeView();
999
1165
  modifiers = input(/* @ts-ignore */
1000
1166
  ...(ngDevMode ? [undefined, { debugName: "modifiers" }] : /* istanbul ignore next */ []));
1001
1167
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -1011,6 +1177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
1011
1177
  }], propDecorators: { modifiers: [{ type: i0.Input, args: [{ isSignal: true, alias: "modifiers", required: false }] }] } });
1012
1178
  /** A SwiftUI `Section` of a form or a list, under `title`. */
1013
1179
  export class UiSection {
1180
+ nativeView = nativeView();
1014
1181
  title = input(/* @ts-ignore */
1015
1182
  ...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
1016
1183
  modifiers = input(/* @ts-ignore */