@unif/react-native-design 0.5.1 → 0.7.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.
- package/README.md +60 -10
- package/lib/module/components/ui/Confirm/ConfirmHost.js +57 -83
- package/lib/module/components/ui/Confirm/ConfirmHost.js.map +1 -1
- package/lib/module/components/ui/Confirm/styles.js +14 -8
- package/lib/module/components/ui/Confirm/styles.js.map +1 -1
- package/lib/module/components/ui/Toast/ToastHost.js +23 -3
- package/lib/module/components/ui/Toast/ToastHost.js.map +1 -1
- package/lib/module/components/ui/Toast/styles.js +1 -1
- package/lib/module/components/ui/Toast/styles.js.map +1 -1
- package/lib/module/components/ui/Toast/toast.js +4 -2
- package/lib/module/components/ui/Toast/toast.js.map +1 -1
- package/lib/module/components/ui/index.js +0 -1
- package/lib/module/components/ui/index.js.map +1 -1
- package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts +4 -3
- package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Confirm/styles.d.ts +11 -5
- package/lib/typescript/src/components/ui/Confirm/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Input/Input.d.ts +3 -3
- package/lib/typescript/src/components/ui/Search/Search.d.ts +3 -3
- package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts +3 -3
- package/lib/typescript/src/components/ui/Textarea/Textarea.d.ts +3 -3
- package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts +3 -0
- package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/index.d.ts +1 -1
- package/lib/typescript/src/components/ui/Toast/index.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/styles.d.ts +0 -1
- package/lib/typescript/src/components/ui/Toast/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/toast.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/types.d.ts +9 -3
- package/lib/typescript/src/components/ui/Toast/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/index.d.ts +1 -3
- package/lib/typescript/src/components/ui/index.d.ts.map +1 -1
- package/package.json +6 -3
- package/src/components/ui/Confirm/ConfirmHost.tsx +60 -103
- package/src/components/ui/Confirm/styles.ts +14 -8
- package/src/components/ui/Toast/ToastHost.tsx +20 -3
- package/src/components/ui/Toast/index.ts +1 -0
- package/src/components/ui/Toast/styles.ts +1 -1
- package/src/components/ui/Toast/toast.ts +2 -1
- package/src/components/ui/Toast/types.ts +10 -3
- package/src/components/ui/index.ts +1 -2
- package/lib/module/components/ui/BottomSheet/BottomSheet.js +0 -104
- package/lib/module/components/ui/BottomSheet/BottomSheet.js.map +0 -1
- package/lib/module/components/ui/BottomSheet/index.js +0 -4
- package/lib/module/components/ui/BottomSheet/index.js.map +0 -1
- package/lib/module/components/ui/BottomSheet/styles.js +0 -26
- package/lib/module/components/ui/BottomSheet/styles.js.map +0 -1
- package/lib/module/components/ui/BottomSheet/types.js +0 -4
- package/lib/module/components/ui/BottomSheet/types.js.map +0 -1
- package/lib/typescript/src/components/ui/BottomSheet/BottomSheet.d.ts +0 -4
- package/lib/typescript/src/components/ui/BottomSheet/BottomSheet.d.ts.map +0 -1
- package/lib/typescript/src/components/ui/BottomSheet/index.d.ts +0 -3
- package/lib/typescript/src/components/ui/BottomSheet/index.d.ts.map +0 -1
- package/lib/typescript/src/components/ui/BottomSheet/styles.d.ts +0 -23
- package/lib/typescript/src/components/ui/BottomSheet/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/ui/BottomSheet/types.d.ts +0 -26
- package/lib/typescript/src/components/ui/BottomSheet/types.d.ts.map +0 -1
- package/src/components/ui/BottomSheet/BottomSheet.tsx +0 -117
- package/src/components/ui/BottomSheet/index.ts +0 -2
- package/src/components/ui/BottomSheet/styles.ts +0 -20
- package/src/components/ui/BottomSheet/types.ts +0 -26
|
@@ -136,7 +136,7 @@ export declare const Input: import("react").ForwardRefExoticComponent<Omit<Reado
|
|
|
136
136
|
pointerEvents?: ("auto" | "box-none" | "box-only" | "none") | undefined;
|
|
137
137
|
removeClippedSubviews?: boolean | undefined;
|
|
138
138
|
experimental_accessibilityOrder?: Array<string> | undefined;
|
|
139
|
-
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
139
|
+
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "disableKeyboardShortcuts" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "scrollEnabled" | "spellCheck" | "textContentType" | "lineBreakModeIOS" | "smartInsertDelete" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
140
140
|
disableKeyboardShortcuts?: boolean | undefined;
|
|
141
141
|
clearButtonMode?: ("never" | "while-editing" | "unless-editing" | "always") | undefined;
|
|
142
142
|
clearTextOnFocus?: boolean | undefined;
|
|
@@ -153,7 +153,7 @@ export declare const Input: import("react").ForwardRefExoticComponent<Omit<Reado
|
|
|
153
153
|
lineBreakStrategyIOS?: ("none" | "standard" | "hangul-word" | "push-out") | undefined;
|
|
154
154
|
lineBreakModeIOS?: ("wordWrapping" | "char" | "clip" | "head" | "middle" | "tail") | undefined;
|
|
155
155
|
smartInsertDelete?: boolean | undefined;
|
|
156
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
156
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
157
157
|
cursorColor?: import("react-native").ColorValue | undefined;
|
|
158
158
|
selectionHandleColor?: import("react-native").ColorValue | undefined;
|
|
159
159
|
disableFullscreenUI?: boolean | undefined;
|
|
@@ -166,7 +166,7 @@ export declare const Input: import("react").ForwardRefExoticComponent<Omit<Reado
|
|
|
166
166
|
showSoftInputOnFocus?: boolean | undefined;
|
|
167
167
|
textBreakStrategy?: ("simple" | "highQuality" | "balanced") | undefined;
|
|
168
168
|
underlineColorAndroid?: import("react-native").ColorValue | undefined;
|
|
169
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
169
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
170
170
|
experimental_acceptDragAndDropTypes?: ReadonlyArray<string> | undefined;
|
|
171
171
|
autoCapitalize?: import("react-native").AutoCapitalize | undefined;
|
|
172
172
|
autoComplete?: ("additional-name" | "address-line1" | "address-line2" | "birthdate-day" | "birthdate-full" | "birthdate-month" | "birthdate-year" | "cc-csc" | "cc-exp" | "cc-exp-day" | "cc-exp-month" | "cc-exp-year" | "cc-number" | "cc-name" | "cc-given-name" | "cc-middle-name" | "cc-family-name" | "cc-type" | "country" | "current-password" | "email" | "family-name" | "gender" | "given-name" | "honorific-prefix" | "honorific-suffix" | "name" | "name-family" | "name-given" | "name-middle" | "name-middle-initial" | "name-prefix" | "name-suffix" | "new-password" | "nickname" | "one-time-code" | "organization" | "organization-title" | "password" | "password-new" | "postal-address" | "postal-address-country" | "postal-address-extended" | "postal-address-extended-postal-code" | "postal-address-locality" | "postal-address-region" | "postal-code" | "street-address" | "sms-otp" | "tel" | "tel-country-code" | "tel-national" | "tel-device" | "url" | "username" | "username-new" | "off") | undefined;
|
|
@@ -133,7 +133,7 @@ export declare const Search: React.ForwardRefExoticComponent<Omit<Readonly<Omit<
|
|
|
133
133
|
pointerEvents?: ("auto" | "box-none" | "box-only" | "none") | undefined;
|
|
134
134
|
removeClippedSubviews?: boolean | undefined;
|
|
135
135
|
experimental_accessibilityOrder?: Array<string> | undefined;
|
|
136
|
-
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
136
|
+
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "disableKeyboardShortcuts" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "scrollEnabled" | "spellCheck" | "textContentType" | "lineBreakModeIOS" | "smartInsertDelete" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
137
137
|
disableKeyboardShortcuts?: boolean | undefined;
|
|
138
138
|
clearButtonMode?: ("never" | "while-editing" | "unless-editing" | "always") | undefined;
|
|
139
139
|
clearTextOnFocus?: boolean | undefined;
|
|
@@ -150,7 +150,7 @@ export declare const Search: React.ForwardRefExoticComponent<Omit<Readonly<Omit<
|
|
|
150
150
|
lineBreakStrategyIOS?: ("none" | "standard" | "hangul-word" | "push-out") | undefined;
|
|
151
151
|
lineBreakModeIOS?: ("wordWrapping" | "char" | "clip" | "head" | "middle" | "tail") | undefined;
|
|
152
152
|
smartInsertDelete?: boolean | undefined;
|
|
153
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
153
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
154
154
|
cursorColor?: import("react-native").ColorValue | undefined;
|
|
155
155
|
selectionHandleColor?: import("react-native").ColorValue | undefined;
|
|
156
156
|
disableFullscreenUI?: boolean | undefined;
|
|
@@ -163,7 +163,7 @@ export declare const Search: React.ForwardRefExoticComponent<Omit<Readonly<Omit<
|
|
|
163
163
|
showSoftInputOnFocus?: boolean | undefined;
|
|
164
164
|
textBreakStrategy?: ("simple" | "highQuality" | "balanced") | undefined;
|
|
165
165
|
underlineColorAndroid?: import("react-native").ColorValue | undefined;
|
|
166
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
166
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
167
167
|
experimental_acceptDragAndDropTypes?: ReadonlyArray<string> | undefined;
|
|
168
168
|
autoCapitalize?: import("react-native").AutoCapitalize | undefined;
|
|
169
169
|
autoComplete?: ("additional-name" | "address-line1" | "address-line2" | "birthdate-day" | "birthdate-full" | "birthdate-month" | "birthdate-year" | "cc-csc" | "cc-exp" | "cc-exp-day" | "cc-exp-month" | "cc-exp-year" | "cc-number" | "cc-name" | "cc-given-name" | "cc-middle-name" | "cc-family-name" | "cc-type" | "country" | "current-password" | "email" | "family-name" | "gender" | "given-name" | "honorific-prefix" | "honorific-suffix" | "name" | "name-family" | "name-given" | "name-middle" | "name-middle-initial" | "name-prefix" | "name-suffix" | "new-password" | "nickname" | "one-time-code" | "organization" | "organization-title" | "password" | "password-new" | "postal-address" | "postal-address-country" | "postal-address-extended" | "postal-address-extended-postal-code" | "postal-address-locality" | "postal-address-region" | "postal-code" | "street-address" | "sms-otp" | "tel" | "tel-country-code" | "tel-national" | "tel-device" | "url" | "username" | "username-new" | "off") | undefined;
|
|
@@ -144,7 +144,7 @@ export declare const TextFieldBase: React.ForwardRefExoticComponent<Readonly<Omi
|
|
|
144
144
|
pointerEvents?: ("auto" | "box-none" | "box-only" | "none") | undefined;
|
|
145
145
|
removeClippedSubviews?: boolean | undefined;
|
|
146
146
|
experimental_accessibilityOrder?: Array<string> | undefined;
|
|
147
|
-
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
147
|
+
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "disableKeyboardShortcuts" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "scrollEnabled" | "spellCheck" | "textContentType" | "lineBreakModeIOS" | "smartInsertDelete" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
148
148
|
disableKeyboardShortcuts?: boolean | undefined;
|
|
149
149
|
clearButtonMode?: ("never" | "while-editing" | "unless-editing" | "always") | undefined;
|
|
150
150
|
clearTextOnFocus?: boolean | undefined;
|
|
@@ -161,7 +161,7 @@ export declare const TextFieldBase: React.ForwardRefExoticComponent<Readonly<Omi
|
|
|
161
161
|
lineBreakStrategyIOS?: ("none" | "standard" | "hangul-word" | "push-out") | undefined;
|
|
162
162
|
lineBreakModeIOS?: ("wordWrapping" | "char" | "clip" | "head" | "middle" | "tail") | undefined;
|
|
163
163
|
smartInsertDelete?: boolean | undefined;
|
|
164
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
164
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
165
165
|
cursorColor?: import("react-native").ColorValue | undefined;
|
|
166
166
|
selectionHandleColor?: import("react-native").ColorValue | undefined;
|
|
167
167
|
disableFullscreenUI?: boolean | undefined;
|
|
@@ -174,7 +174,7 @@ export declare const TextFieldBase: React.ForwardRefExoticComponent<Readonly<Omi
|
|
|
174
174
|
showSoftInputOnFocus?: boolean | undefined;
|
|
175
175
|
textBreakStrategy?: ("simple" | "highQuality" | "balanced") | undefined;
|
|
176
176
|
underlineColorAndroid?: import("react-native").ColorValue | undefined;
|
|
177
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
177
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
178
178
|
experimental_acceptDragAndDropTypes?: ReadonlyArray<string> | undefined;
|
|
179
179
|
autoCapitalize?: import("react-native").AutoCapitalize | undefined;
|
|
180
180
|
autoComplete?: ("additional-name" | "address-line1" | "address-line2" | "birthdate-day" | "birthdate-full" | "birthdate-month" | "birthdate-year" | "cc-csc" | "cc-exp" | "cc-exp-day" | "cc-exp-month" | "cc-exp-year" | "cc-number" | "cc-name" | "cc-given-name" | "cc-middle-name" | "cc-family-name" | "cc-type" | "country" | "current-password" | "email" | "family-name" | "gender" | "given-name" | "honorific-prefix" | "honorific-suffix" | "name" | "name-family" | "name-given" | "name-middle" | "name-middle-initial" | "name-prefix" | "name-suffix" | "new-password" | "nickname" | "one-time-code" | "organization" | "organization-title" | "password" | "password-new" | "postal-address" | "postal-address-country" | "postal-address-extended" | "postal-address-extended-postal-code" | "postal-address-locality" | "postal-address-region" | "postal-code" | "street-address" | "sms-otp" | "tel" | "tel-country-code" | "tel-national" | "tel-device" | "url" | "username" | "username-new" | "off") | undefined;
|
|
@@ -138,7 +138,7 @@ export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<Re
|
|
|
138
138
|
pointerEvents?: ("auto" | "box-none" | "box-only" | "none") | undefined;
|
|
139
139
|
removeClippedSubviews?: boolean | undefined;
|
|
140
140
|
experimental_accessibilityOrder?: Array<string> | undefined;
|
|
141
|
-
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
141
|
+
}>, never>>, "style" | "experimental_accessibilityOrder">, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "disableKeyboardShortcuts" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "scrollEnabled" | "spellCheck" | "textContentType" | "lineBreakModeIOS" | "smartInsertDelete" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
142
142
|
disableKeyboardShortcuts?: boolean | undefined;
|
|
143
143
|
clearButtonMode?: ("never" | "while-editing" | "unless-editing" | "always") | undefined;
|
|
144
144
|
clearTextOnFocus?: boolean | undefined;
|
|
@@ -155,7 +155,7 @@ export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<Re
|
|
|
155
155
|
lineBreakStrategyIOS?: ("none" | "standard" | "hangul-word" | "push-out") | undefined;
|
|
156
156
|
lineBreakModeIOS?: ("wordWrapping" | "char" | "clip" | "head" | "middle" | "tail") | undefined;
|
|
157
157
|
smartInsertDelete?: boolean | undefined;
|
|
158
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
158
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "textBreakStrategy" | "allowFontScaling" | "maxFontSizeMultiplier" | "numberOfLines" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "cursorColor" | "selectionHandleColor" | "disableFullscreenUI" | "importantForAutofill" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "rows" | "showSoftInputOnFocus" | "underlineColorAndroid" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
159
159
|
cursorColor?: import("react-native").ColorValue | undefined;
|
|
160
160
|
selectionHandleColor?: import("react-native").ColorValue | undefined;
|
|
161
161
|
disableFullscreenUI?: boolean | undefined;
|
|
@@ -168,7 +168,7 @@ export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<Re
|
|
|
168
168
|
showSoftInputOnFocus?: boolean | undefined;
|
|
169
169
|
textBreakStrategy?: ("simple" | "highQuality" | "balanced") | undefined;
|
|
170
170
|
underlineColorAndroid?: import("react-native").ColorValue | undefined;
|
|
171
|
-
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "
|
|
171
|
+
}>, "value" | "textAlign" | "onBlur" | "onFocus" | "style" | "selectionColor" | "allowFontScaling" | "maxFontSizeMultiplier" | "onPress" | "onPressIn" | "onPressOut" | "onChange" | "experimental_acceptDragAndDropTypes" | "autoCapitalize" | "autoComplete" | "autoCorrect" | "autoFocus" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "forwardedRef" | "enterKeyHint" | "inputMode" | "keyboardType" | "maxLength" | "multiline" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onKeyPress" | "onSelectionChange" | "onSubmitEditing" | "onScroll" | "placeholder" | "placeholderTextColor" | "readOnly" | "returnKeyType" | "secureTextEntry" | "selection" | "selectTextOnFocus" | "blurOnSubmit" | "submitBehavior"> & Omit<Readonly<{
|
|
172
172
|
experimental_acceptDragAndDropTypes?: ReadonlyArray<string> | undefined;
|
|
173
173
|
autoCapitalize?: import("react-native").AutoCapitalize | undefined;
|
|
174
174
|
autoComplete?: ("additional-name" | "address-line1" | "address-line2" | "birthdate-day" | "birthdate-full" | "birthdate-month" | "birthdate-year" | "cc-csc" | "cc-exp" | "cc-exp-day" | "cc-exp-month" | "cc-exp-year" | "cc-number" | "cc-name" | "cc-given-name" | "cc-middle-name" | "cc-family-name" | "cc-type" | "country" | "current-password" | "email" | "family-name" | "gender" | "given-name" | "honorific-prefix" | "honorific-suffix" | "name" | "name-family" | "name-given" | "name-middle" | "name-middle-initial" | "name-prefix" | "name-suffix" | "new-password" | "nickname" | "one-time-code" | "organization" | "organization-title" | "password" | "password-new" | "postal-address" | "postal-address-country" | "postal-address-extended" | "postal-address-extended-postal-code" | "postal-address-locality" | "postal-address-region" | "postal-code" | "street-address" | "sms-otp" | "tel" | "tel-country-code" | "tel-national" | "tel-device" | "url" | "username" | "username-new" | "off") | undefined;
|
|
@@ -3,6 +3,9 @@ import type { ToastHostProps } from './types';
|
|
|
3
3
|
/**
|
|
4
4
|
* 在根附近挂一次。监听 toast() 调用并渲染当前 toast。
|
|
5
5
|
* 同一时间只显示一条 —— 新的会替换旧的。
|
|
6
|
+
*
|
|
7
|
+
* 位置由 `entry.position`('top' / 'bottom' / 'center')决定,top/bottom 自动避让
|
|
8
|
+
* safe-area;进入动画方向随位置(top 从上滑、bottom/center 从下滑)。
|
|
6
9
|
*/
|
|
7
10
|
export declare function ToastHost({ testID, }?: ToastHostProps): React.JSX.Element | null;
|
|
8
11
|
//# sourceMappingURL=ToastHost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/ToastHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/ToastHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAa3D,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,GACP,GAAE,cAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6EhD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { toast } from './toast';
|
|
2
2
|
export { ToastHost } from './ToastHost';
|
|
3
|
-
export type { ToastEntry, ToastHostProps, ToastInput, ToastKind, } from './types';
|
|
3
|
+
export type { ToastEntry, ToastHostProps, ToastInput, ToastKind, ToastPosition, } from './types';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCrC,CAAC;AAEL;yDACyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAS1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/toast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAc,UAAU,EAAa,MAAM,SAAS,CAAC;AAG7E,eAAO,MAAM,KAAK,iBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/toast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAc,UAAU,EAAa,MAAM,SAAS,CAAC;AAG7E,eAAO,MAAM,KAAK,iBAAwB,CAAC;AAgB3C;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,WAAyB,UAAU;kBACrC,UAAU;qBACP,UAAU;mBACZ,UAAU;CACzB,CAAC"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
/** Toast 类型:info=灰点 / success=绿点 / error=红点 */
|
|
2
2
|
export type ToastKind = 'info' | 'success' | 'error';
|
|
3
|
+
/** Toast 显示位置:top=顶部 / bottom=底部(默认) / center=屏幕居中 */
|
|
4
|
+
export type ToastPosition = 'top' | 'bottom' | 'center';
|
|
3
5
|
/**
|
|
4
6
|
* `toast(...)` 调用入参:
|
|
5
|
-
* - 字符串简写:默认 info kind
|
|
6
|
-
* - 对象形式:可指定 kind
|
|
7
|
+
* - 字符串简写:默认 info kind、bottom 位置、3000ms duration
|
|
8
|
+
* - 对象形式:可指定 kind / duration / position
|
|
7
9
|
*/
|
|
8
10
|
export type ToastInput = string | {
|
|
9
11
|
/** 消息文本 */
|
|
10
12
|
message: string;
|
|
11
13
|
/** Toast 类型,默认 'info' */
|
|
12
14
|
kind?: ToastKind;
|
|
13
|
-
/** 自动消失毫秒数,默认
|
|
15
|
+
/** 自动消失毫秒数,默认 3000 */
|
|
14
16
|
duration?: number;
|
|
17
|
+
/** 显示位置,默认 'bottom' */
|
|
18
|
+
position?: ToastPosition;
|
|
15
19
|
};
|
|
16
20
|
export type ToastEntry = {
|
|
17
21
|
/** 唯一 id(自增),用于动画切换识别 */
|
|
@@ -22,6 +26,8 @@ export type ToastEntry = {
|
|
|
22
26
|
kind: ToastKind;
|
|
23
27
|
/** 显示毫秒数 */
|
|
24
28
|
duration: number;
|
|
29
|
+
/** 显示位置 */
|
|
30
|
+
position: ToastPosition;
|
|
25
31
|
};
|
|
26
32
|
/** Toast 订阅者函数签名(ToastHost 内部用) */
|
|
27
33
|
export type Subscriber = (entry: ToastEntry) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IACE,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Toast/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IACE,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,UAAU,GAAG;IACvB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,QAAQ,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export { Avatar } from './Avatar';
|
|
2
2
|
export type { AvatarProps, AvatarSize, AvatarVariant } from './Avatar';
|
|
3
|
-
export { BottomSheet } from './BottomSheet';
|
|
4
|
-
export type { BottomSheetProps } from './BottomSheet';
|
|
5
3
|
export { BlurLayer } from './BlurLayer';
|
|
6
4
|
export type { BlurLayerProps } from './BlurLayer';
|
|
7
5
|
export { Button } from './Button';
|
|
@@ -71,5 +69,5 @@ export type { TextareaProps } from './Textarea';
|
|
|
71
69
|
export { Thumbnail } from './Thumbnail';
|
|
72
70
|
export type { ThumbnailProps, ThumbnailSize } from './Thumbnail';
|
|
73
71
|
export { toast, ToastHost } from './Toast';
|
|
74
|
-
export type { ToastEntry, ToastHostProps, ToastInput, ToastKind, } from './Toast';
|
|
72
|
+
export type { ToastEntry, ToastHostProps, ToastInput, ToastKind, ToastPosition, } from './Toast';
|
|
75
73
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unif/react-native-design",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Unif 设计系统:theme + icons + utils + components",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -66,7 +66,6 @@
|
|
|
66
66
|
"@eslint/compat": "^2.0.3",
|
|
67
67
|
"@eslint/eslintrc": "^3.3.5",
|
|
68
68
|
"@eslint/js": "^10.0.1",
|
|
69
|
-
"@gorhom/bottom-sheet": "^5.2.14",
|
|
70
69
|
"@jest/globals": "^30.0.0",
|
|
71
70
|
"@react-native/babel-preset": "0.85.3",
|
|
72
71
|
"@react-native/eslint-config": "0.85.3",
|
|
@@ -97,7 +96,6 @@
|
|
|
97
96
|
"typescript": "^6.0.2"
|
|
98
97
|
},
|
|
99
98
|
"peerDependencies": {
|
|
100
|
-
"@gorhom/bottom-sheet": ">=5",
|
|
101
99
|
"@sbaiahmed1/react-native-blur": ">=4",
|
|
102
100
|
"react": "*",
|
|
103
101
|
"react-native": "*",
|
|
@@ -144,6 +142,11 @@
|
|
|
144
142
|
"modulePathIgnorePatterns": [
|
|
145
143
|
"<rootDir>/example/node_modules",
|
|
146
144
|
"<rootDir>/lib/"
|
|
145
|
+
],
|
|
146
|
+
"testPathIgnorePatterns": [
|
|
147
|
+
"/node_modules/",
|
|
148
|
+
"<rootDir>/website/",
|
|
149
|
+
"<rootDir>/example/"
|
|
147
150
|
]
|
|
148
151
|
},
|
|
149
152
|
"commitlint": {
|
|
@@ -1,134 +1,91 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
useRef,
|
|
6
|
-
useState,
|
|
7
|
-
} from 'react';
|
|
8
|
-
import { Text, View } from 'react-native';
|
|
9
|
-
import {
|
|
10
|
-
BottomSheetBackdrop,
|
|
11
|
-
BottomSheetFooter,
|
|
12
|
-
BottomSheetModal,
|
|
13
|
-
BottomSheetView,
|
|
14
|
-
type BottomSheetBackdropProps,
|
|
15
|
-
type BottomSheetFooterProps,
|
|
16
|
-
} from '@gorhom/bottom-sheet';
|
|
17
|
-
import { useThemedStyles } from '../../../theme';
|
|
1
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { Modal, Pressable, Text, View } from 'react-native';
|
|
3
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
|
+
import { space, useThemedStyles } from '../../../theme';
|
|
18
5
|
import { Button } from '../Button';
|
|
19
6
|
import { _subs } from './confirm';
|
|
20
7
|
import { makeStyles } from './styles';
|
|
21
8
|
import type { ConfirmEntry, Subscriber } from './types';
|
|
22
9
|
|
|
23
|
-
/** Scrim backdrop —— 单色半透黑 opacity 0.5 */
|
|
24
|
-
function ScrimBackdrop(props: BottomSheetBackdropProps) {
|
|
25
|
-
return (
|
|
26
|
-
<BottomSheetBackdrop
|
|
27
|
-
{...props}
|
|
28
|
-
appearsOnIndex={0}
|
|
29
|
-
disappearsOnIndex={-1}
|
|
30
|
-
opacity={0.5}
|
|
31
|
-
/>
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
10
|
/**
|
|
36
|
-
* Confirm
|
|
11
|
+
* Confirm 对话框宿主 —— App 根挂一次,监听 `confirm()` 调用并渲染。
|
|
37
12
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
13
|
+
* 原生 RN `Modal`(transparent + animationType slide)从底部滑入,backdrop 点击
|
|
14
|
+
* 取消、内层 sheet 拦截点击不冒泡。**不依赖 @gorhom**(0.6.0 去 @gorhom 后改为
|
|
15
|
+
* 纯 RN Modal + pub/sub 实现)。
|
|
40
16
|
*/
|
|
41
17
|
export function ConfirmHost(): React.JSX.Element | null {
|
|
42
18
|
const styles = useThemedStyles(makeStyles);
|
|
43
|
-
const
|
|
19
|
+
const insets = useSafeAreaInsets();
|
|
44
20
|
const [entry, setEntry] = useState<ConfirmEntry | null>(null);
|
|
45
21
|
|
|
46
22
|
useEffect(() => {
|
|
47
|
-
const sub: Subscriber = (next) =>
|
|
48
|
-
setEntry(next);
|
|
49
|
-
if (next) {
|
|
50
|
-
modalRef.current?.present();
|
|
51
|
-
} else {
|
|
52
|
-
modalRef.current?.dismiss();
|
|
53
|
-
}
|
|
54
|
-
};
|
|
23
|
+
const sub: Subscriber = (next) => setEntry(next);
|
|
55
24
|
_subs.add(sub);
|
|
56
25
|
return () => {
|
|
57
26
|
_subs.delete(sub);
|
|
58
27
|
};
|
|
59
28
|
}, []);
|
|
60
29
|
|
|
61
|
-
// onDismiss:drag-to-close / backdrop tap / 程序 dismiss 都触发,entry 还在视为取消
|
|
62
|
-
// 三个 handler 都用 useCallback + [entry] deps —— 让 renderFooter 的 useCallback
|
|
63
|
-
// deps 能正确锁定它们,引用稳定 = @gorhom 不会因 backdrop 重生成而抖动。
|
|
64
|
-
const handleDismiss = useCallback(() => {
|
|
65
|
-
if (entry) {
|
|
66
|
-
entry.resolve(false);
|
|
67
|
-
setEntry(null);
|
|
68
|
-
}
|
|
69
|
-
}, [entry]);
|
|
70
|
-
|
|
71
30
|
const handleConfirm = useCallback(() => {
|
|
72
31
|
entry?.resolve(true);
|
|
73
|
-
|
|
32
|
+
setEntry(null);
|
|
74
33
|
}, [entry]);
|
|
75
34
|
|
|
76
35
|
const handleCancel = useCallback(() => {
|
|
77
36
|
entry?.resolve(false);
|
|
78
|
-
|
|
37
|
+
setEntry(null);
|
|
79
38
|
}, [entry]);
|
|
80
39
|
|
|
81
|
-
const snapPoints = useMemo(() => ['30%'], []);
|
|
82
|
-
|
|
83
|
-
// 用 BottomSheetFooter 浮按钮:BottomSheetView 内部 absolute top/left/right 无 bottom,
|
|
84
|
-
// flex marginTop:auto 推不动按钮,所以必须走 footer + bottomInset 自动避让键盘。
|
|
85
|
-
const renderFooter = useCallback(
|
|
86
|
-
(props: BottomSheetFooterProps) =>
|
|
87
|
-
entry ? (
|
|
88
|
-
<BottomSheetFooter {...props} bottomInset={0}>
|
|
89
|
-
<View style={styles.actions}>
|
|
90
|
-
<Button
|
|
91
|
-
testID="confirm-cancel"
|
|
92
|
-
label={entry.cancelLabel ?? '取消'}
|
|
93
|
-
variant="secondary"
|
|
94
|
-
block
|
|
95
|
-
onPress={handleCancel}
|
|
96
|
-
/>
|
|
97
|
-
<Button
|
|
98
|
-
testID="confirm-ok"
|
|
99
|
-
label={entry.confirmLabel ?? '确认'}
|
|
100
|
-
variant={entry.destructive ? 'danger' : 'primary'}
|
|
101
|
-
block
|
|
102
|
-
onPress={handleConfirm}
|
|
103
|
-
/>
|
|
104
|
-
</View>
|
|
105
|
-
</BottomSheetFooter>
|
|
106
|
-
) : null,
|
|
107
|
-
[entry, styles.actions, handleCancel, handleConfirm]
|
|
108
|
-
);
|
|
109
|
-
|
|
110
40
|
return (
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
backdropComponent={ScrimBackdrop}
|
|
118
|
-
backgroundStyle={styles.sheetBackground}
|
|
119
|
-
footerComponent={renderFooter}
|
|
120
|
-
onDismiss={handleDismiss}
|
|
41
|
+
<Modal
|
|
42
|
+
visible={!!entry}
|
|
43
|
+
transparent
|
|
44
|
+
animationType="slide"
|
|
45
|
+
statusBarTranslucent
|
|
46
|
+
onRequestClose={handleCancel}
|
|
121
47
|
>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
48
|
+
{/* backdrop 点击取消;内层 sheet onPress 空占位拦截冒泡 */}
|
|
49
|
+
<Pressable
|
|
50
|
+
style={styles.backdrop}
|
|
51
|
+
onPress={handleCancel}
|
|
52
|
+
accessibilityRole="button"
|
|
53
|
+
accessibilityLabel="关闭"
|
|
54
|
+
>
|
|
55
|
+
<Pressable
|
|
56
|
+
style={[styles.sheet, { paddingBottom: insets.bottom + space['7'] }]}
|
|
57
|
+
onPress={() => {}}
|
|
58
|
+
>
|
|
59
|
+
{entry ? (
|
|
60
|
+
<>
|
|
61
|
+
<View style={styles.body}>
|
|
62
|
+
<Text style={styles.title} accessibilityRole="header">
|
|
63
|
+
{entry.title}
|
|
64
|
+
</Text>
|
|
65
|
+
{entry.message ? (
|
|
66
|
+
<Text style={styles.message}>{entry.message}</Text>
|
|
67
|
+
) : null}
|
|
68
|
+
</View>
|
|
69
|
+
<View style={styles.actions}>
|
|
70
|
+
<Button
|
|
71
|
+
testID="confirm-cancel"
|
|
72
|
+
label={entry.cancelLabel ?? '取消'}
|
|
73
|
+
variant="secondary"
|
|
74
|
+
block
|
|
75
|
+
onPress={handleCancel}
|
|
76
|
+
/>
|
|
77
|
+
<Button
|
|
78
|
+
testID="confirm-ok"
|
|
79
|
+
label={entry.confirmLabel ?? '确认'}
|
|
80
|
+
variant={entry.destructive ? 'danger' : 'primary'}
|
|
81
|
+
block
|
|
82
|
+
onPress={handleConfirm}
|
|
83
|
+
/>
|
|
84
|
+
</View>
|
|
85
|
+
</>
|
|
86
|
+
) : null}
|
|
87
|
+
</Pressable>
|
|
88
|
+
</Pressable>
|
|
89
|
+
</Modal>
|
|
133
90
|
);
|
|
134
91
|
}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
|
-
import { fw, space, type as t } from '../../../theme';
|
|
2
|
+
import { fw, r, space, type as t } from '../../../theme';
|
|
3
3
|
import type { ColorTokens } from '../../../theme';
|
|
4
4
|
|
|
5
|
-
/** Confirm 对话框 styles ——
|
|
6
|
-
*
|
|
5
|
+
/** Confirm 对话框 styles —— 原生 Modal(transparent + slide)底部弹出卡片:
|
|
6
|
+
* backdrop 半透黑铺满、点击取消;sheet 贴底圆角顶。不依赖 @gorhom。 */
|
|
7
7
|
export const makeStyles = (c: ColorTokens) =>
|
|
8
8
|
StyleSheet.create({
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
backdrop: {
|
|
10
|
+
flex: 1,
|
|
11
|
+
backgroundColor: c.scrim,
|
|
12
|
+
justifyContent: 'flex-end',
|
|
11
13
|
},
|
|
12
14
|
sheet: {
|
|
15
|
+
backgroundColor: c.surface,
|
|
16
|
+
borderTopLeftRadius: r(20),
|
|
17
|
+
borderTopRightRadius: r(20),
|
|
18
|
+
paddingTop: space['7'],
|
|
19
|
+
},
|
|
20
|
+
body: {
|
|
13
21
|
paddingHorizontal: space['9'],
|
|
14
|
-
paddingTop: space['4'],
|
|
15
22
|
gap: space['5'],
|
|
16
23
|
},
|
|
17
24
|
title: {
|
|
@@ -29,7 +36,6 @@ export const makeStyles = (c: ColorTokens) =>
|
|
|
29
36
|
flexDirection: 'row',
|
|
30
37
|
gap: space['4'],
|
|
31
38
|
paddingHorizontal: space['9'],
|
|
32
|
-
paddingTop: space['
|
|
33
|
-
paddingBottom: space['7'],
|
|
39
|
+
paddingTop: space['7'],
|
|
34
40
|
},
|
|
35
41
|
});
|