@expo/ui 58.0.13 → 58.0.15
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/CHANGELOG.md +17 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/ui/DatePickerView.kt +35 -2
- package/android/src/main/java/expo/modules/ui/DateRangePickerView.kt +35 -2
- package/android/src/main/java/expo/modules/ui/HostView.kt +21 -0
- package/android/src/main/java/expo/modules/ui/RNHostView.kt +22 -1
- package/build/State/useWorkletCallback.d.ts +1 -1
- package/build/community/datetime-picker/DateTimePicker.android.js +17 -4
- package/build/community/datetime-picker/DateTimePicker.android.js.map +1 -1
- package/build/community/datetime-picker/utils.d.ts +10 -0
- package/build/community/datetime-picker/utils.js +19 -0
- package/build/community/datetime-picker/utils.js.map +1 -0
- package/build/jetpack-compose/DatePicker/index.d.ts +38 -0
- package/build/jetpack-compose/DatePicker/index.js.map +1 -1
- package/build/jetpack-compose/MaterialSymbolsAssetsTransformer.fx.js.map +1 -1
- package/build/swift-ui/Toolbar/index.d.ts +2 -0
- package/build/swift-ui/Toolbar/index.js +2 -0
- package/build/swift-ui/Toolbar/index.js.map +1 -1
- package/build/swift-ui/modifiers/hingeObservation.d.ts +1 -1
- package/build/swift-ui/modifiers/hingeObservation.js +1 -1
- package/build/swift-ui/modifiers/index.d.ts +1 -0
- package/build/swift-ui/modifiers/index.js +1 -0
- package/build/swift-ui/modifiers/index.js.map +1 -1
- package/build/swift-ui/modifiers/searchable.d.ts +83 -0
- package/build/swift-ui/modifiers/searchable.js +74 -0
- package/build/swift-ui/modifiers/searchable.js.map +1 -0
- package/ios/ChartView.swift +8 -6
- package/ios/Modifiers/SearchToolbarBehaviorModifier.swift +35 -0
- package/ios/Modifiers/SearchableModifier.swift +94 -0
- package/ios/Modifiers/ViewModifierRegistry.swift +8 -0
- package/ios/Picker/PickerView.swift +9 -7
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.13/expo.modules.ui-58.0.13-sources.jar → 58.0.15/expo.modules.ui-58.0.15-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.13/expo.modules.ui-58.0.13.module → 58.0.15/expo.modules.ui-58.0.15.module} +22 -22
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.module.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.13/expo.modules.ui-58.0.13.pom → 58.0.15/expo.modules.ui-58.0.15.pom} +1 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.15/expo.modules.ui-58.0.15.pom.sha512 +1 -0
- package/package.json +2 -2
- package/prebuilds/output/debug/xcframeworks/ExpoUI.tar.gz +0 -0
- package/prebuilds/output/release/xcframeworks/ExpoUI.tar.gz +0 -0
- package/src/State/useWorkletCallback.ts +1 -1
- package/src/community/datetime-picker/DateTimePicker.android.tsx +18 -4
- package/src/community/datetime-picker/utils.ts +21 -0
- package/src/jetpack-compose/DatePicker/index.tsx +38 -0
- package/src/jetpack-compose/MaterialSymbolsAssetsTransformer.fx.ts +6 -2
- package/src/swift-ui/Toolbar/index.tsx +2 -0
- package/src/swift-ui/modifiers/hingeObservation.ts +1 -1
- package/src/swift-ui/modifiers/index.ts +1 -0
- package/src/swift-ui/modifiers/searchable.ts +107 -0
- package/build/ts-declarations/react-native-assets.d.ts +0 -31
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar +0 -0
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha512 +0 -1
- package/src/ts-declarations/react-native-assets.d.ts +0 -31
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
} from '../../jetpack-compose/DatePicker';
|
|
7
7
|
import { Host } from '../../jetpack-compose/Host';
|
|
8
8
|
import { buildEvent, buildChangeEvent, type DateTimePickerProps } from './types';
|
|
9
|
+
import { localDateToUtcDayISOString, utcDayToLocalDate } from './utils';
|
|
9
10
|
|
|
10
11
|
function modeToDisplayedComponents(
|
|
11
12
|
mode: DateTimePickerProps['mode']
|
|
@@ -52,6 +53,14 @@ export function DateTimePicker(props: DateTimePickerProps) {
|
|
|
52
53
|
negativeButton,
|
|
53
54
|
} = props;
|
|
54
55
|
|
|
56
|
+
// Material3 date pickers work in UTC days, while `value` and the reported date are local —
|
|
57
|
+
// matching `@react-native-community/datetimepicker`. Send `value`'s local calendar day as a UTC
|
|
58
|
+
// day and convert the picked UTC day back, keeping `value`'s time of day. The native side
|
|
59
|
+
// already converts `minimumDate`/`maximumDate` by their local calendar day. Time pickers read
|
|
60
|
+
// local hours from the instant, so they take `value` unchanged.
|
|
61
|
+
const usesDateComponents = mode !== 'time';
|
|
62
|
+
const initialDate = usesDateComponents ? localDateToUtcDayISOString(value) : value.toISOString();
|
|
63
|
+
|
|
55
64
|
const onDismissed = () => {
|
|
56
65
|
if (onDismissProp) {
|
|
57
66
|
onDismissProp();
|
|
@@ -70,10 +79,11 @@ export function DateTimePicker(props: DateTimePickerProps) {
|
|
|
70
79
|
};
|
|
71
80
|
|
|
72
81
|
const onDateSelected = (date: Date) => {
|
|
82
|
+
const selected = usesDateComponents ? utcDayToLocalDate(date, value) : date;
|
|
73
83
|
if (onValueChange) {
|
|
74
|
-
onValueChange(buildChangeEvent(
|
|
84
|
+
onValueChange(buildChangeEvent(selected), selected);
|
|
75
85
|
} else {
|
|
76
|
-
onChange?.(buildEvent(
|
|
86
|
+
onChange?.(buildEvent(selected), selected);
|
|
77
87
|
}
|
|
78
88
|
};
|
|
79
89
|
|
|
@@ -81,7 +91,7 @@ export function DateTimePicker(props: DateTimePickerProps) {
|
|
|
81
91
|
minimumDate || maximumDate ? { start: minimumDate, end: maximumDate } : undefined;
|
|
82
92
|
|
|
83
93
|
const dialogProps = {
|
|
84
|
-
initialDate
|
|
94
|
+
initialDate,
|
|
85
95
|
color: accentColor,
|
|
86
96
|
confirmButtonLabel: positiveButton?.label,
|
|
87
97
|
dismissButtonLabel: negativeButton?.label,
|
|
@@ -111,7 +121,7 @@ export function DateTimePicker(props: DateTimePickerProps) {
|
|
|
111
121
|
return (
|
|
112
122
|
<Host matchContents={{ vertical: true }} style={style}>
|
|
113
123
|
<AndroidPicker
|
|
114
|
-
initialDate={
|
|
124
|
+
initialDate={initialDate}
|
|
115
125
|
displayedComponents={modeToDisplayedComponents(mode)}
|
|
116
126
|
variant={displayToAndroidVariant(display)}
|
|
117
127
|
selectableDates={selectableDates}
|
|
@@ -119,6 +129,10 @@ export function DateTimePicker(props: DateTimePickerProps) {
|
|
|
119
129
|
color={accentColor}
|
|
120
130
|
onDateSelected={onDateSelected}
|
|
121
131
|
showVariantToggle={false}
|
|
132
|
+
// Match iOS, where the inline picker has no label: hide Material 3's "Select date" title
|
|
133
|
+
// and its selected-date headline.
|
|
134
|
+
showTitle={false}
|
|
135
|
+
showHeadline={false}
|
|
122
136
|
{...(testID ? { testID } : undefined)}
|
|
123
137
|
/>
|
|
124
138
|
</Host>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Material3's DatePicker (and the native side's `toUtcDayMillis` bounds conversion) works in UTC
|
|
2
|
+
// days, while `value`, `minimumDate`, and `maximumDate` are local dates — matching
|
|
3
|
+
// `@react-native-community/datetimepicker`. These helpers convert between the two.
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns the ISO string of the UTC midnight of `value`'s local calendar day, so Material3 shows
|
|
7
|
+
* the same day the user sees locally.
|
|
8
|
+
*/
|
|
9
|
+
export function localDateToUtcDayISOString(value: Date): string {
|
|
10
|
+
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate())).toISOString();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Converts the UTC-midnight day reported by Material3 back into a local date, keeping the time of
|
|
15
|
+
* day from `timeOfDay`.
|
|
16
|
+
*/
|
|
17
|
+
export function utcDayToLocalDate(utcDay: Date, timeOfDay: Date): Date {
|
|
18
|
+
const result = new Date(timeOfDay);
|
|
19
|
+
result.setFullYear(utcDay.getUTCFullYear(), utcDay.getUTCMonth(), utcDay.getUTCDate());
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
@@ -131,6 +131,20 @@ export interface DateTimePickerProps {
|
|
|
131
131
|
* @default true
|
|
132
132
|
*/
|
|
133
133
|
showVariantToggle?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Whether the picker shows its title, such as "Select date". When `false`, the picker passes
|
|
136
|
+
* `null` to Material 3's `title` slot. This prop has no effect when `displayedComponents` is
|
|
137
|
+
* `'hourAndMinute'`.
|
|
138
|
+
* @default true
|
|
139
|
+
*/
|
|
140
|
+
showTitle?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Whether the picker shows its headline, which displays the current selection. When `false`,
|
|
143
|
+
* the picker passes `null` to Material 3's `headline` slot. This prop has no effect when
|
|
144
|
+
* `displayedComponents` is `'hourAndMinute'`.
|
|
145
|
+
* @default true
|
|
146
|
+
*/
|
|
147
|
+
showHeadline?: boolean;
|
|
134
148
|
/**
|
|
135
149
|
* The components that the picker should display.
|
|
136
150
|
* On Android, you can have a picker that selects just the date or just the time.
|
|
@@ -252,6 +266,18 @@ export interface DateRangePickerProps {
|
|
|
252
266
|
* @default true
|
|
253
267
|
*/
|
|
254
268
|
showVariantToggle?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Whether the picker shows its title, such as "Select date". When `false`, the picker passes
|
|
271
|
+
* `null` to Material 3's `title` slot.
|
|
272
|
+
* @default true
|
|
273
|
+
*/
|
|
274
|
+
showTitle?: boolean;
|
|
275
|
+
/**
|
|
276
|
+
* Whether the picker shows its headline, which displays the current selection. When `false`,
|
|
277
|
+
* the picker passes `null` to Material 3's `headline` slot.
|
|
278
|
+
* @default true
|
|
279
|
+
*/
|
|
280
|
+
showHeadline?: boolean;
|
|
255
281
|
/**
|
|
256
282
|
* The tint color to use on the picker elements.
|
|
257
283
|
*/
|
|
@@ -332,6 +358,18 @@ export interface DatePickerDialogProps {
|
|
|
332
358
|
initialDate?: string | null;
|
|
333
359
|
variant?: AndroidVariant;
|
|
334
360
|
showVariantToggle?: boolean;
|
|
361
|
+
/**
|
|
362
|
+
* Whether the picker shows its title, such as "Select date". When `false`, the picker passes
|
|
363
|
+
* `null` to Material 3's `title` slot.
|
|
364
|
+
* @default true
|
|
365
|
+
*/
|
|
366
|
+
showTitle?: boolean;
|
|
367
|
+
/**
|
|
368
|
+
* Whether the picker shows its headline, which displays the current selection. When `false`,
|
|
369
|
+
* the picker passes `null` to Material 3's `headline` slot.
|
|
370
|
+
* @default true
|
|
371
|
+
*/
|
|
372
|
+
showHeadline?: boolean;
|
|
335
373
|
confirmButtonLabel?: string;
|
|
336
374
|
dismissButtonLabel?: string;
|
|
337
375
|
color?: ColorValue;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { Image } from 'react-native';
|
|
2
|
-
import type AssetSourceResolver from 'react-native/
|
|
2
|
+
import type { AssetSourceResolver } from 'react-native/unstable-internals-do-not-use';
|
|
3
|
+
|
|
4
|
+
type AssetResolver = AssetSourceResolver & {
|
|
5
|
+
asset: { type?: string };
|
|
6
|
+
};
|
|
3
7
|
|
|
4
8
|
// @ts-expect-error: addCustomSourceTransformer type is not exported
|
|
5
9
|
if (typeof Image.resolveAssetSource.addCustomSourceTransformer === 'function') {
|
|
6
10
|
// @ts-expect-error: addCustomSourceTransformer type is not exported
|
|
7
|
-
Image.resolveAssetSource.addCustomSourceTransformer((resolver:
|
|
11
|
+
Image.resolveAssetSource.addCustomSourceTransformer((resolver: AssetResolver) => {
|
|
8
12
|
if (
|
|
9
13
|
process.env.EXPO_OS === 'android' &&
|
|
10
14
|
resolver.asset.type === 'xml' &&
|
|
@@ -96,6 +96,7 @@ function ToolbarContent(props: ToolbarContentProps) {
|
|
|
96
96
|
* ```
|
|
97
97
|
*
|
|
98
98
|
* @platform ios
|
|
99
|
+
* @platform tvos
|
|
99
100
|
*/
|
|
100
101
|
export function ToolbarItem({
|
|
101
102
|
placement = 'automatic',
|
|
@@ -125,6 +126,7 @@ export function ToolbarItem({
|
|
|
125
126
|
* ```
|
|
126
127
|
*
|
|
127
128
|
* @platform ios
|
|
129
|
+
* @platform tvos
|
|
128
130
|
*/
|
|
129
131
|
function ToolbarComponent(props: ToolbarProps) {
|
|
130
132
|
const { modifiers, children, ...restProps } = props;
|
|
@@ -49,7 +49,7 @@ export type HingeChangeHandler = (oldContext: HingeContext, newContext: HingeCon
|
|
|
49
49
|
* state for interactions and effects, not for layout.
|
|
50
50
|
*
|
|
51
51
|
* Pass a plain function to run it on the JS thread, or a callback from
|
|
52
|
-
* [`useWorkletCallback`](
|
|
52
|
+
* [`useWorkletCallback`](./usenativestate/#useworkletcallbackcallback) to run it synchronously on the UI
|
|
53
53
|
* thread, which suits driving a native state value from the continuous `angle`.
|
|
54
54
|
*
|
|
55
55
|
* The first call happens when the view appears, and its old context has a `null` hinge. On devices
|
|
@@ -1999,6 +1999,7 @@ export * from './presentationModifiers';
|
|
|
1999
1999
|
export * from './environment';
|
|
2000
2000
|
export type { ShapeStyle } from './shapeStyle';
|
|
2001
2001
|
export * from './scrollPosition';
|
|
2002
|
+
export * from './searchable';
|
|
2002
2003
|
export * from './symbolEffect';
|
|
2003
2004
|
export * from './scrollObservation';
|
|
2004
2005
|
export * from './hingeObservation';
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { getStateId, type ObservableState } from '../../State';
|
|
2
|
+
import { createModifier, createModifierWithEventListener } from './createModifier';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The placement of a search field in a view hierarchy.
|
|
6
|
+
*
|
|
7
|
+
* - `automatic`: SwiftUI places the search field automatically.
|
|
8
|
+
* - `toolbar`: The search field appears in the toolbar. Falls back to `automatic` on tvOS.
|
|
9
|
+
* - `sidebar`: The search field appears in the sidebar of a navigation view. Falls back to
|
|
10
|
+
* `automatic` on tvOS.
|
|
11
|
+
* - `navigationBarDrawer`: The search field appears in the navigation bar. Falls back to
|
|
12
|
+
* `automatic` on macOS and tvOS.
|
|
13
|
+
*/
|
|
14
|
+
export type SearchFieldPlacement = 'automatic' | 'toolbar' | 'sidebar' | 'navigationBarDrawer';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Marks this view as searchable, which configures the display of a search field.
|
|
18
|
+
*
|
|
19
|
+
* @param text - The text to display and edit in the search field. An `ObservableState<string>`
|
|
20
|
+
* created with `useNativeState`.
|
|
21
|
+
* @param options.placement - The preferred placement of the search field within the containing
|
|
22
|
+
* view hierarchy. Defaults to `automatic`.
|
|
23
|
+
* @param options.prompt - The prompt of the search field, which provides users with guidance on
|
|
24
|
+
* what to search for.
|
|
25
|
+
* @param options.onChange - Fires on the JS thread when the user edits or clears the search field.
|
|
26
|
+
* It does not fire for values written from JavaScript.
|
|
27
|
+
*
|
|
28
|
+
* @platform ios
|
|
29
|
+
* @platform tvos
|
|
30
|
+
* @platform macos
|
|
31
|
+
*
|
|
32
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/searchable(text:placement:prompt:)-18a8f).
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const query = useNativeState('');
|
|
37
|
+
*
|
|
38
|
+
* <Host>
|
|
39
|
+
* <NavigationStack>
|
|
40
|
+
* <List
|
|
41
|
+
* modifiers={[
|
|
42
|
+
* searchable(query, {
|
|
43
|
+
* prompt: 'Search agents',
|
|
44
|
+
* onChange: (text) => setFilter(text),
|
|
45
|
+
* }),
|
|
46
|
+
* ]}>
|
|
47
|
+
* {rows.map((row) => (
|
|
48
|
+
* <Text key={row.id}>{row.name}</Text>
|
|
49
|
+
* ))}
|
|
50
|
+
* </List>
|
|
51
|
+
* </NavigationStack>
|
|
52
|
+
* </Host>
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export const searchable = (
|
|
56
|
+
text: ObservableState<string>,
|
|
57
|
+
options?: {
|
|
58
|
+
placement?: SearchFieldPlacement;
|
|
59
|
+
prompt?: string;
|
|
60
|
+
onChange?: (text: string) => void;
|
|
61
|
+
}
|
|
62
|
+
) => {
|
|
63
|
+
const params = {
|
|
64
|
+
text: getStateId(text),
|
|
65
|
+
placement: options?.placement,
|
|
66
|
+
prompt: options?.prompt,
|
|
67
|
+
};
|
|
68
|
+
const onChange = options?.onChange;
|
|
69
|
+
if (onChange) {
|
|
70
|
+
return createModifierWithEventListener(
|
|
71
|
+
'searchable',
|
|
72
|
+
(event: { text?: string }) => onChange(event?.text ?? ''),
|
|
73
|
+
params
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return createModifier('searchable', params);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* The behavior of a search field in a toolbar.
|
|
81
|
+
*
|
|
82
|
+
* - `automatic`: The automatic behavior.
|
|
83
|
+
* - `minimize`: A search toolbar behavior that prefers rendering a search field as a button-like
|
|
84
|
+
* control. Falls back to `automatic` on macOS and tvOS.
|
|
85
|
+
*/
|
|
86
|
+
export type SearchToolbarBehavior = 'automatic' | 'minimize';
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Configures the behavior for search in the toolbar.
|
|
90
|
+
*
|
|
91
|
+
* On iOS below 26.0, the modifier is a no-op.
|
|
92
|
+
*
|
|
93
|
+
* @param behavior - The search field behavior.
|
|
94
|
+
*
|
|
95
|
+
* @platform ios 26.0+
|
|
96
|
+
* @platform tvos 26.0+
|
|
97
|
+
* @platform macos 26.0+
|
|
98
|
+
*
|
|
99
|
+
* @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/searchtoolbarbehavior(_:)).
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```tsx
|
|
103
|
+
* <List modifiers={[searchable(query), searchToolbarBehavior('minimize')]}>
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export const searchToolbarBehavior = (behavior: SearchToolbarBehavior) =>
|
|
107
|
+
createModifier('searchToolbarBehavior', { behavior });
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
declare module 'react-native/Libraries/Image/AssetSourceResolver' {
|
|
2
|
-
import type { PackagerAsset } from 'react-native/asset-registry';
|
|
3
|
-
|
|
4
|
-
export type ResolvedAssetSource = {
|
|
5
|
-
__packager_asset: boolean;
|
|
6
|
-
width?: number | null;
|
|
7
|
-
height?: number | null;
|
|
8
|
-
uri: string;
|
|
9
|
-
scale: number;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export default class AssetSourceResolver {
|
|
13
|
-
serverUrl: string | null;
|
|
14
|
-
jsbundleUrl: string | null;
|
|
15
|
-
asset: PackagerAsset & { fileHashes?: string[] };
|
|
16
|
-
|
|
17
|
-
constructor(serverUrl: string | null, jsbundleUrl: string | null, asset: PackagerAsset);
|
|
18
|
-
|
|
19
|
-
isLoadedFromServer(): boolean;
|
|
20
|
-
isLoadedFromFileSystem(): boolean;
|
|
21
|
-
defaultAsset(): ResolvedAssetSource;
|
|
22
|
-
assetServerURL(): ResolvedAssetSource;
|
|
23
|
-
scaledAssetPath(): ResolvedAssetSource;
|
|
24
|
-
scaledAssetURLNearBundle(): ResolvedAssetSource;
|
|
25
|
-
resourceIdentifierWithoutScale(): ResolvedAssetSource;
|
|
26
|
-
drawableFolderInBundle(): ResolvedAssetSource;
|
|
27
|
-
fromSource(source: string): ResolvedAssetSource;
|
|
28
|
-
|
|
29
|
-
static pickScale(scales: number[], deviceScale: number): number;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
041ed0d6d536bbcf8d08e7a653bea8ef
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e587fcde7f1c58c339f95759565034f989a49dcf
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
eee15e7c9f3aeb7b3941ead7ce0e72d8174b0b95964c69ef5a1d5fbf02536fbe
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3e6c99d1b6aa74d01d30339d222653a631dae2abf99075e4c25fc171fbb33f9d55bca7daee4d1cd4c6ecdcdc89fb71067de948ac4a91135b6ce38cbb337c52d1
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar
DELETED
|
Binary file
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
26e374a25a5054c68e67a99ea46b3858
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1409db74c61bae87d4830fa0652a822c1ba21d80
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dc0a8e5a28e1f4f7d722e8706b5858844aa6eac089e89e5f8099374b309bed60
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.aar.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ef66aaa30d2d2703c4ff5c36c117ffaf8dd41a2d2a9a8a286224b817f77d20ae2298cd6e0959e1a78ccc3c741cbc286db2e8d5a086b4ed9e11acc6a206207d68
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
52b71a4f4df5e14f0d8981c716abf0b5
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.module.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9733a96d1ff7d223a5f70be6e6dfe7bb8e87a65d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f69ec3f19d8e25695b4285ffd82dc9c7fae64d77138b3650c75c96d785069f25
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
62bb4e1488c2d1ec2a92018daf0e9a3743b13f2eac6fd9f2824b2811a50ea67f94d13aa8bda773a19bf65987b34813baeefa2103ea9af839451034086683378e
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
163d916be872a111d5f095a7fa13dc3c
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3cd5de5e06cb53c184c41eb8b7136e576bdfae63
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8140b397ebcb1f6d3c375179559510d32fdeeb8b95772cba5bc2119bc5c7e5ed
|
package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.13/expo.modules.ui-58.0.13.pom.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
877cc4dd09304c8a40de927737422f89e43dbb7893f8d529edbf585b886113ec03bd15df807d3776ff1b22b5214390277f2fdfa2b525eb950968e534bf3a39ad
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
declare module 'react-native/Libraries/Image/AssetSourceResolver' {
|
|
2
|
-
import type { PackagerAsset } from 'react-native/asset-registry';
|
|
3
|
-
|
|
4
|
-
export type ResolvedAssetSource = {
|
|
5
|
-
__packager_asset: boolean;
|
|
6
|
-
width?: number | null;
|
|
7
|
-
height?: number | null;
|
|
8
|
-
uri: string;
|
|
9
|
-
scale: number;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export default class AssetSourceResolver {
|
|
13
|
-
serverUrl: string | null;
|
|
14
|
-
jsbundleUrl: string | null;
|
|
15
|
-
asset: PackagerAsset & { fileHashes?: string[] };
|
|
16
|
-
|
|
17
|
-
constructor(serverUrl: string | null, jsbundleUrl: string | null, asset: PackagerAsset);
|
|
18
|
-
|
|
19
|
-
isLoadedFromServer(): boolean;
|
|
20
|
-
isLoadedFromFileSystem(): boolean;
|
|
21
|
-
defaultAsset(): ResolvedAssetSource;
|
|
22
|
-
assetServerURL(): ResolvedAssetSource;
|
|
23
|
-
scaledAssetPath(): ResolvedAssetSource;
|
|
24
|
-
scaledAssetURLNearBundle(): ResolvedAssetSource;
|
|
25
|
-
resourceIdentifierWithoutScale(): ResolvedAssetSource;
|
|
26
|
-
drawableFolderInBundle(): ResolvedAssetSource;
|
|
27
|
-
fromSource(source: string): ResolvedAssetSource;
|
|
28
|
-
|
|
29
|
-
static pickScale(scales: number[], deviceScale: number): number;
|
|
30
|
-
}
|
|
31
|
-
}
|