@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.
Files changed (61) hide show
  1. package/README.md +60 -10
  2. package/lib/module/components/ui/Confirm/ConfirmHost.js +57 -83
  3. package/lib/module/components/ui/Confirm/ConfirmHost.js.map +1 -1
  4. package/lib/module/components/ui/Confirm/styles.js +14 -8
  5. package/lib/module/components/ui/Confirm/styles.js.map +1 -1
  6. package/lib/module/components/ui/Toast/ToastHost.js +23 -3
  7. package/lib/module/components/ui/Toast/ToastHost.js.map +1 -1
  8. package/lib/module/components/ui/Toast/styles.js +1 -1
  9. package/lib/module/components/ui/Toast/styles.js.map +1 -1
  10. package/lib/module/components/ui/Toast/toast.js +4 -2
  11. package/lib/module/components/ui/Toast/toast.js.map +1 -1
  12. package/lib/module/components/ui/index.js +0 -1
  13. package/lib/module/components/ui/index.js.map +1 -1
  14. package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts +4 -3
  15. package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts.map +1 -1
  16. package/lib/typescript/src/components/ui/Confirm/styles.d.ts +11 -5
  17. package/lib/typescript/src/components/ui/Confirm/styles.d.ts.map +1 -1
  18. package/lib/typescript/src/components/ui/Input/Input.d.ts +3 -3
  19. package/lib/typescript/src/components/ui/Search/Search.d.ts +3 -3
  20. package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts +3 -3
  21. package/lib/typescript/src/components/ui/Textarea/Textarea.d.ts +3 -3
  22. package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts +3 -0
  23. package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts.map +1 -1
  24. package/lib/typescript/src/components/ui/Toast/index.d.ts +1 -1
  25. package/lib/typescript/src/components/ui/Toast/index.d.ts.map +1 -1
  26. package/lib/typescript/src/components/ui/Toast/styles.d.ts +0 -1
  27. package/lib/typescript/src/components/ui/Toast/styles.d.ts.map +1 -1
  28. package/lib/typescript/src/components/ui/Toast/toast.d.ts.map +1 -1
  29. package/lib/typescript/src/components/ui/Toast/types.d.ts +9 -3
  30. package/lib/typescript/src/components/ui/Toast/types.d.ts.map +1 -1
  31. package/lib/typescript/src/components/ui/index.d.ts +1 -3
  32. package/lib/typescript/src/components/ui/index.d.ts.map +1 -1
  33. package/package.json +6 -3
  34. package/src/components/ui/Confirm/ConfirmHost.tsx +60 -103
  35. package/src/components/ui/Confirm/styles.ts +14 -8
  36. package/src/components/ui/Toast/ToastHost.tsx +20 -3
  37. package/src/components/ui/Toast/index.ts +1 -0
  38. package/src/components/ui/Toast/styles.ts +1 -1
  39. package/src/components/ui/Toast/toast.ts +2 -1
  40. package/src/components/ui/Toast/types.ts +10 -3
  41. package/src/components/ui/index.ts +1 -2
  42. package/lib/module/components/ui/BottomSheet/BottomSheet.js +0 -104
  43. package/lib/module/components/ui/BottomSheet/BottomSheet.js.map +0 -1
  44. package/lib/module/components/ui/BottomSheet/index.js +0 -4
  45. package/lib/module/components/ui/BottomSheet/index.js.map +0 -1
  46. package/lib/module/components/ui/BottomSheet/styles.js +0 -26
  47. package/lib/module/components/ui/BottomSheet/styles.js.map +0 -1
  48. package/lib/module/components/ui/BottomSheet/types.js +0 -4
  49. package/lib/module/components/ui/BottomSheet/types.js.map +0 -1
  50. package/lib/typescript/src/components/ui/BottomSheet/BottomSheet.d.ts +0 -4
  51. package/lib/typescript/src/components/ui/BottomSheet/BottomSheet.d.ts.map +0 -1
  52. package/lib/typescript/src/components/ui/BottomSheet/index.d.ts +0 -3
  53. package/lib/typescript/src/components/ui/BottomSheet/index.d.ts.map +0 -1
  54. package/lib/typescript/src/components/ui/BottomSheet/styles.d.ts +0 -23
  55. package/lib/typescript/src/components/ui/BottomSheet/styles.d.ts.map +0 -1
  56. package/lib/typescript/src/components/ui/BottomSheet/types.d.ts +0 -26
  57. package/lib/typescript/src/components/ui/BottomSheet/types.d.ts.map +0 -1
  58. package/src/components/ui/BottomSheet/BottomSheet.tsx +0 -117
  59. package/src/components/ui/BottomSheet/index.ts +0 -2
  60. package/src/components/ui/BottomSheet/styles.ts +0 -20
  61. package/src/components/ui/BottomSheet/types.ts +0 -26
package/README.md CHANGED
@@ -5,10 +5,14 @@
5
5
  [![License](https://img.shields.io/npm/l/@unif/react-native-design.svg?color=blue)](LICENSE)
6
6
  [![Docs](https://img.shields.io/badge/docs-unif--design.github.io-orange.svg)](https://unif-design.github.io/react-native-design/)
7
7
 
8
- Unif 设计系统:theme(设计令牌)+ 组件 + 图标 + utils,面向 RN 0.85 新架构(Fabric + concurrent React)。所有 Unif 应用与端能力包的 UI 基座。
8
+ Unif 设计系统 —— theme(设计令牌)+ 组件 + 图标 + utils,面向 React Native 0.85 新架构(Fabric + TurboModule)。所有 Unif 应用与端能力包的 UI 基座。
9
9
 
10
- > 📖 **完整文档**(快速开始 · 组件 · 设计令牌 · 设计原则):
11
- > **https://unif-design.github.io/react-native-design/**
10
+ ## 特性
11
+
12
+ - **运行时主题**:`useColors()` 角色 token 跟随系统 light/dark 自动切换;`useThemedStyles` + 模块顶层 `makeStyles` 缓存样式,绝不内联 hex。
13
+ - **40+ 组件**:Button、Card、Cell、NavBar、BottomSheet、Toast 等原子组件 + AvatarWithRing、GlassStats 等通用复合组件,全部从包根 barrel 导出,无需深路径。
14
+ - **a11y 内建**:交互组件预设 `accessibilityRole`;`IconButton` 的 `accessibilityLabel` 为类型必填。
15
+ - **图标集 + 严格 TS**:`IconName` 闭集类型、`<Icon>` 自动继承主题色;`strict` + `noUncheckedIndexedAccess`,类型随包发布。
12
16
 
13
17
  ## 安装
14
18
 
@@ -16,20 +20,66 @@ Unif 设计系统:theme(设计令牌)+ 组件 + 图标 + utils,面向 RN 0.8
16
20
  yarn add @unif/react-native-design
17
21
  ```
18
22
 
19
- 需要一组 peer(`react-native-svg` / `react-native-gesture-handler` / `react-native-reanimated` / `react-native-worklets` / `react-native-safe-area-context` / `react-native-reanimated-carousel` / `@gorhom/bottom-sheet` / `@sbaiahmed1/react-native-blur`)+ 根挂 `ThemeProvider`,详见[文档站 · 快速开始](https://unif-design.github.io/react-native-design/docs/getting-started)。
23
+ 本库不打包原生依赖,宿主工程需自行安装下列 peer 并完成原生侧配置:
24
+
25
+ ```sh
26
+ yarn add react-native-svg \
27
+ react-native-gesture-handler \
28
+ react-native-reanimated \
29
+ react-native-worklets \
30
+ react-native-safe-area-context \
31
+ react-native-reanimated-carousel \
32
+ @gorhom/bottom-sheet \
33
+ @sbaiahmed1/react-native-blur
34
+ ```
35
+
36
+ iOS 另需在 `ios/` 执行 `bundle exec pod install`。完整步骤见[文档站 · 快速开始](https://unif-design.github.io/react-native-design/docs/getting-started)。
37
+
38
+ ## 快速开始
20
39
 
21
- ## 用法
40
+ App 根挂一次 `ThemeProvider`,命令式 host(`ToastHost` / `ConfirmHost`)按需添加;`makeStyles` 必须写在模块顶层:
22
41
 
23
42
  ```tsx
24
- import { Button, useColors, useThemedStyles } from '@unif/react-native-design';
43
+ import {
44
+ ThemeProvider, ToastHost, Button, useThemedStyles, type ColorTokens,
45
+ } from '@unif/react-native-design';
46
+ import { View } from 'react-native';
25
47
 
26
- function MyScreen() {
27
- const c = useColors();
28
- return <Button label="提交" onPress={() => {}} />;
48
+ // inline 会破坏 useThemedStyles 的样式缓存
49
+ const makeStyles = (c: ColorTokens) => ({
50
+ wrap: { padding: 16, backgroundColor: c.surface },
51
+ });
52
+
53
+ function Demo() {
54
+ const styles = useThemedStyles(makeStyles);
55
+ return (
56
+ <View style={styles.wrap}>
57
+ <Button label="保存" onPress={() => {}} />
58
+ </View>
59
+ );
29
60
  }
61
+
62
+ export const App = () => (
63
+ <ThemeProvider>
64
+ <Demo />
65
+ <ToastHost />
66
+ </ThemeProvider>
67
+ );
30
68
  ```
31
69
 
32
- 组件 API、token 调色板、暗色适配、设计原则 —— 见[文档站](https://unif-design.github.io/react-native-design/)。
70
+ ## 文档
71
+
72
+ - **文档站**(快速开始 · 组件 API · 设计令牌 · 设计原则):https://unif-design.github.io/react-native-design/
73
+ - **AI / LLM**(纯 Markdown,按需 fetch,别凭记忆猜 API):
74
+ [llms.txt 索引](https://unif-design.github.io/react-native-design/llms.txt) · [llms-full.txt 全文](https://unif-design.github.io/react-native-design/llms-full.txt)
75
+ - **Agent Skill** `using-unif-design`(覆盖组件 API、token 规则、与原生 RN 的关键差异):
76
+ `/plugin marketplace add unif-design/react-native-skills` → `/plugin install unif-react-native@unif-react-native-skills`
77
+
78
+ ## 兼容性
79
+
80
+ - React Native **0.85+**(新架构 Fabric + TurboModule;随 RN 0.85 对应 concurrent React)
81
+ - React 19、TypeScript 6
82
+ - Node.js ≥ 24.13(见 `.nvmrc`)
33
83
 
34
84
  ## 许可
35
85
 
@@ -1,110 +1,84 @@
1
1
  "use strict";
2
2
 
3
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
- import { Text, View } from 'react-native';
5
- import { BottomSheetBackdrop, BottomSheetFooter, BottomSheetModal, BottomSheetView } from '@gorhom/bottom-sheet';
6
- import { useThemedStyles } from "../../../theme/index.js";
3
+ import React, { useCallback, useEffect, useState } from 'react';
4
+ import { Modal, Pressable, Text, View } from 'react-native';
5
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
6
+ import { space, useThemedStyles } from "../../../theme/index.js";
7
7
  import { Button } from "../Button/index.js";
8
8
  import { _subs } from "./confirm.js";
9
9
  import { makeStyles } from "./styles.js";
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
- /** Scrim backdrop —— 单色半透黑 opacity 0.5 */
12
- function ScrimBackdrop(props) {
13
- return /*#__PURE__*/_jsx(BottomSheetBackdrop, {
14
- ...props,
15
- appearsOnIndex: 0,
16
- disappearsOnIndex: -1,
17
- opacity: 0.5
18
- });
19
- }
20
-
21
11
  /**
22
- * Confirm 对话框 Portal —— App 根挂一次,监听 `confirm()` 调用并渲染。
12
+ * Confirm 对话框宿主 —— App 根挂一次,监听 `confirm()` 调用并渲染。
23
13
  *
24
- * `<BottomSheetModal>` + `<BottomSheetModalProvider>`,通过 Provider Portal
25
- * 自动渲染到 App 顶层 —— 整屏 backdrop + 不受 React tree 位置影响。
14
+ * 原生 RN `Modal`(transparent + animationType slide)从底部滑入,backdrop 点击
15
+ * 取消、内层 sheet 拦截点击不冒泡。**不依赖 @gorhom**(0.6.0 @gorhom 后改为
16
+ * 纯 RN Modal + pub/sub 实现)。
26
17
  */
27
18
  export function ConfirmHost() {
28
19
  const styles = useThemedStyles(makeStyles);
29
- const modalRef = useRef(null);
20
+ const insets = useSafeAreaInsets();
30
21
  const [entry, setEntry] = useState(null);
31
22
  useEffect(() => {
32
- const sub = next => {
33
- setEntry(next);
34
- if (next) {
35
- modalRef.current?.present();
36
- } else {
37
- modalRef.current?.dismiss();
38
- }
39
- };
23
+ const sub = next => setEntry(next);
40
24
  _subs.add(sub);
41
25
  return () => {
42
26
  _subs.delete(sub);
43
27
  };
44
28
  }, []);
45
-
46
- // onDismiss:drag-to-close / backdrop tap / 程序 dismiss 都触发,entry 还在视为取消
47
- // 三个 handler 都用 useCallback + [entry] deps —— 让 renderFooter 的 useCallback
48
- // deps 能正确锁定它们,引用稳定 = @gorhom 不会因 backdrop 重生成而抖动。
49
- const handleDismiss = useCallback(() => {
50
- if (entry) {
51
- entry.resolve(false);
52
- setEntry(null);
53
- }
54
- }, [entry]);
55
29
  const handleConfirm = useCallback(() => {
56
30
  entry?.resolve(true);
57
- modalRef.current?.dismiss();
31
+ setEntry(null);
58
32
  }, [entry]);
59
33
  const handleCancel = useCallback(() => {
60
34
  entry?.resolve(false);
61
- modalRef.current?.dismiss();
35
+ setEntry(null);
62
36
  }, [entry]);
63
- const snapPoints = useMemo(() => ['30%'], []);
64
-
65
- // 用 BottomSheetFooter 浮按钮:BottomSheetView 内部 absolute top/left/right 无 bottom,
66
- // flex marginTop:auto 推不动按钮,所以必须走 footer + bottomInset 自动避让键盘。
67
- const renderFooter = useCallback(props => entry ? /*#__PURE__*/_jsx(BottomSheetFooter, {
68
- ...props,
69
- bottomInset: 0,
70
- children: /*#__PURE__*/_jsxs(View, {
71
- style: styles.actions,
72
- children: [/*#__PURE__*/_jsx(Button, {
73
- testID: "confirm-cancel",
74
- label: entry.cancelLabel ?? '取消',
75
- variant: "secondary",
76
- block: true,
77
- onPress: handleCancel
78
- }), /*#__PURE__*/_jsx(Button, {
79
- testID: "confirm-ok",
80
- label: entry.confirmLabel ?? '确认',
81
- variant: entry.destructive ? 'danger' : 'primary',
82
- block: true,
83
- onPress: handleConfirm
84
- })]
85
- })
86
- }) : null, [entry, styles.actions, handleCancel, handleConfirm]);
87
- return /*#__PURE__*/_jsx(BottomSheetModal, {
88
- ref: modalRef,
89
- snapPoints: snapPoints,
90
- index: 0,
91
- enableDynamicSizing: false,
92
- enableOverDrag: false,
93
- backdropComponent: ScrimBackdrop,
94
- backgroundStyle: styles.sheetBackground,
95
- footerComponent: renderFooter,
96
- onDismiss: handleDismiss,
97
- children: /*#__PURE__*/_jsx(BottomSheetView, {
98
- style: styles.sheet,
99
- children: entry ? /*#__PURE__*/_jsxs(_Fragment, {
100
- children: [/*#__PURE__*/_jsx(Text, {
101
- style: styles.title,
102
- children: entry.title
103
- }), entry.message ? /*#__PURE__*/_jsx(Text, {
104
- style: styles.message,
105
- children: entry.message
106
- }) : null]
107
- }) : null
37
+ return /*#__PURE__*/_jsx(Modal, {
38
+ visible: !!entry,
39
+ transparent: true,
40
+ animationType: "slide",
41
+ statusBarTranslucent: true,
42
+ onRequestClose: handleCancel,
43
+ children: /*#__PURE__*/_jsx(Pressable, {
44
+ style: styles.backdrop,
45
+ onPress: handleCancel,
46
+ accessibilityRole: "button",
47
+ accessibilityLabel: "\u5173\u95ED",
48
+ children: /*#__PURE__*/_jsx(Pressable, {
49
+ style: [styles.sheet, {
50
+ paddingBottom: insets.bottom + space['7']
51
+ }],
52
+ onPress: () => {},
53
+ children: entry ? /*#__PURE__*/_jsxs(_Fragment, {
54
+ children: [/*#__PURE__*/_jsxs(View, {
55
+ style: styles.body,
56
+ children: [/*#__PURE__*/_jsx(Text, {
57
+ style: styles.title,
58
+ accessibilityRole: "header",
59
+ children: entry.title
60
+ }), entry.message ? /*#__PURE__*/_jsx(Text, {
61
+ style: styles.message,
62
+ children: entry.message
63
+ }) : null]
64
+ }), /*#__PURE__*/_jsxs(View, {
65
+ style: styles.actions,
66
+ children: [/*#__PURE__*/_jsx(Button, {
67
+ testID: "confirm-cancel",
68
+ label: entry.cancelLabel ?? '取消',
69
+ variant: "secondary",
70
+ block: true,
71
+ onPress: handleCancel
72
+ }), /*#__PURE__*/_jsx(Button, {
73
+ testID: "confirm-ok",
74
+ label: entry.confirmLabel ?? '确认',
75
+ variant: entry.destructive ? 'danger' : 'primary',
76
+ block: true,
77
+ onPress: handleConfirm
78
+ })]
79
+ })]
80
+ }) : null
81
+ })
108
82
  })
109
83
  });
110
84
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","Text","View","BottomSheetBackdrop","BottomSheetFooter","BottomSheetModal","BottomSheetView","useThemedStyles","Button","_subs","makeStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ScrimBackdrop","props","appearsOnIndex","disappearsOnIndex","opacity","ConfirmHost","styles","modalRef","entry","setEntry","sub","next","current","present","dismiss","add","delete","handleDismiss","resolve","handleConfirm","handleCancel","snapPoints","renderFooter","bottomInset","children","style","actions","testID","label","cancelLabel","variant","block","onPress","confirmLabel","destructive","ref","index","enableDynamicSizing","enableOverDrag","backdropComponent","backgroundStyle","sheetBackground","footerComponent","onDismiss","sheet","title","message"],"sourceRoot":"../../../../../src","sources":["components/ui/Confirm/ConfirmHost.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useState","Modal","Pressable","Text","View","useSafeAreaInsets","space","useThemedStyles","Button","_subs","makeStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ConfirmHost","styles","insets","entry","setEntry","sub","next","add","delete","handleConfirm","resolve","handleCancel","visible","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","backdrop","onPress","accessibilityRole","accessibilityLabel","sheet","paddingBottom","bottom","body","title","message","actions","testID","label","cancelLabel","variant","block","confirmLabel","destructive"],"sourceRoot":"../../../../../src","sources":["components/ui/Confirm/ConfirmHost.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
- import { fw, space, type as t } from "../../../theme/index.js";
5
- /** Confirm 对话框 styles —— title/message BottomSheetView 顶部段,
6
- * actions BottomSheetFooter 自动浮到 sheet 底部。 */
4
+ import { fw, r, space, type as t } from "../../../theme/index.js";
5
+ /** Confirm 对话框 styles —— 原生 Modal(transparent + slide)底部弹出卡片:
6
+ * backdrop 半透黑铺满、点击取消;sheet 贴底圆角顶。不依赖 @gorhom。 */
7
7
  export const makeStyles = c => StyleSheet.create({
8
- sheetBackground: {
9
- backgroundColor: c.surface
8
+ backdrop: {
9
+ flex: 1,
10
+ backgroundColor: c.scrim,
11
+ justifyContent: 'flex-end'
10
12
  },
11
13
  sheet: {
14
+ backgroundColor: c.surface,
15
+ borderTopLeftRadius: r(20),
16
+ borderTopRightRadius: r(20),
17
+ paddingTop: space['7']
18
+ },
19
+ body: {
12
20
  paddingHorizontal: space['9'],
13
- paddingTop: space['4'],
14
21
  gap: space['5']
15
22
  },
16
23
  title: {
@@ -28,8 +35,7 @@ export const makeStyles = c => StyleSheet.create({
28
35
  flexDirection: 'row',
29
36
  gap: space['4'],
30
37
  paddingHorizontal: space['9'],
31
- paddingTop: space['5'],
32
- paddingBottom: space['7']
38
+ paddingTop: space['7']
33
39
  }
34
40
  });
35
41
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","fw","space","type","t","makeStyles","c","create","sheetBackground","backgroundColor","surface","sheet","paddingHorizontal","paddingTop","gap","title","fontSize","heroSm","fontWeight","semi","color","foreground","letterSpacing","message","body","foregroundMuted","lineHeight","actions","flexDirection","paddingBottom"],"sourceRoot":"../../../../../src","sources":["components/ui/Confirm/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGrD;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCN,UAAU,CAACO,MAAM,CAAC;EAChBC,eAAe,EAAE;IACfC,eAAe,EAAEH,CAAC,CAACI;EACrB,CAAC;EACDC,KAAK,EAAE;IACLC,iBAAiB,EAAEV,KAAK,CAAC,GAAG,CAAC;IAC7BW,UAAU,EAAEX,KAAK,CAAC,GAAG,CAAC;IACtBY,GAAG,EAAEZ,KAAK,CAAC,GAAG;EAChB,CAAC;EACDa,KAAK,EAAE;IACLC,QAAQ,EAAEZ,CAAC,CAACa,MAAM;IAClBC,UAAU,EAAEjB,EAAE,CAACkB,IAAI;IACnBC,KAAK,EAAEd,CAAC,CAACe,UAAU;IACnBC,aAAa,EAAE,CAAC;EAClB,CAAC;EACDC,OAAO,EAAE;IACPP,QAAQ,EAAEZ,CAAC,CAACoB,IAAI;IAChBJ,KAAK,EAAEd,CAAC,CAACmB,eAAe;IACxBC,UAAU,EAAEtB,CAAC,CAACoB,IAAI,GAAG;EACvB,CAAC;EACDG,OAAO,EAAE;IACPC,aAAa,EAAE,KAAK;IACpBd,GAAG,EAAEZ,KAAK,CAAC,GAAG,CAAC;IACfU,iBAAiB,EAAEV,KAAK,CAAC,GAAG,CAAC;IAC7BW,UAAU,EAAEX,KAAK,CAAC,GAAG,CAAC;IACtB2B,aAAa,EAAE3B,KAAK,CAAC,GAAG;EAC1B;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","fw","r","space","type","t","makeStyles","c","create","backdrop","flex","backgroundColor","scrim","justifyContent","sheet","surface","borderTopLeftRadius","borderTopRightRadius","paddingTop","body","paddingHorizontal","gap","title","fontSize","heroSm","fontWeight","semi","color","foreground","letterSpacing","message","foregroundMuted","lineHeight","actions","flexDirection"],"sourceRoot":"../../../../../src","sources":["components/ui/Confirm/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,EAAEC,CAAC,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGxD;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCP,UAAU,CAACQ,MAAM,CAAC;EAChBC,QAAQ,EAAE;IACRC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEJ,CAAC,CAACK,KAAK;IACxBC,cAAc,EAAE;EAClB,CAAC;EACDC,KAAK,EAAE;IACLH,eAAe,EAAEJ,CAAC,CAACQ,OAAO;IAC1BC,mBAAmB,EAAEd,CAAC,CAAC,EAAE,CAAC;IAC1Be,oBAAoB,EAAEf,CAAC,CAAC,EAAE,CAAC;IAC3BgB,UAAU,EAAEf,KAAK,CAAC,GAAG;EACvB,CAAC;EACDgB,IAAI,EAAE;IACJC,iBAAiB,EAAEjB,KAAK,CAAC,GAAG,CAAC;IAC7BkB,GAAG,EAAElB,KAAK,CAAC,GAAG;EAChB,CAAC;EACDmB,KAAK,EAAE;IACLC,QAAQ,EAAElB,CAAC,CAACmB,MAAM;IAClBC,UAAU,EAAExB,EAAE,CAACyB,IAAI;IACnBC,KAAK,EAAEpB,CAAC,CAACqB,UAAU;IACnBC,aAAa,EAAE,CAAC;EAClB,CAAC;EACDC,OAAO,EAAE;IACPP,QAAQ,EAAElB,CAAC,CAACc,IAAI;IAChBQ,KAAK,EAAEpB,CAAC,CAACwB,eAAe;IACxBC,UAAU,EAAE3B,CAAC,CAACc,IAAI,GAAG;EACvB,CAAC;EACDc,OAAO,EAAE;IACPC,aAAa,EAAE,KAAK;IACpBb,GAAG,EAAElB,KAAK,CAAC,GAAG,CAAC;IACfiB,iBAAiB,EAAEjB,KAAK,CAAC,GAAG,CAAC;IAC7Be,UAAU,EAAEf,KAAK,CAAC,GAAG;EACvB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -2,20 +2,25 @@
2
2
 
3
3
  import React, { useEffect, useRef, useState } from 'react';
4
4
  import { Text, View } from 'react-native';
5
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
6
  import Animated, { cancelAnimation, runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
6
- import { useColors, useThemedStyles, motion } from "../../../theme/index.js";
7
+ import { useColors, useThemedStyles, motion, space } from "../../../theme/index.js";
7
8
  import { dotColorFor, makeStyles } from "./styles.js";
8
9
  import { _subs } from "./toast.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
11
  /**
11
12
  * 在根附近挂一次。监听 toast() 调用并渲染当前 toast。
12
13
  * 同一时间只显示一条 —— 新的会替换旧的。
14
+ *
15
+ * 位置由 `entry.position`('top' / 'bottom' / 'center')决定,top/bottom 自动避让
16
+ * safe-area;进入动画方向随位置(top 从上滑、bottom/center 从下滑)。
13
17
  */
14
18
  export function ToastHost({
15
19
  testID
16
20
  } = {}) {
17
21
  const c = useColors();
18
22
  const styles = useThemedStyles(makeStyles);
23
+ const insets = useSafeAreaInsets();
19
24
  const [entry, setEntry] = useState(null);
20
25
  const op = useSharedValue(0);
21
26
  const ty = useSharedValue(8);
@@ -32,8 +37,12 @@ export function ToastHost({
32
37
  }, []);
33
38
  useEffect(() => {
34
39
  if (!entry) return;
40
+ // 进入方向:top 从上(-8)滑入,bottom / center 从下(8)滑入
41
+ const from = entry.position === 'top' ? -8 : 8;
35
42
  cancelAnimation(op);
36
43
  cancelAnimation(ty);
44
+ op.value = 0;
45
+ ty.value = from;
37
46
  op.value = withTiming(1, {
38
47
  duration: motion.base
39
48
  });
@@ -44,7 +53,7 @@ export function ToastHost({
44
53
  op.value = withTiming(0, {
45
54
  duration: motion.base
46
55
  });
47
- ty.value = withTiming(8, {
56
+ ty.value = withTiming(from, {
48
57
  duration: motion.base
49
58
  }, finished => {
50
59
  if (finished) runOnJS(setEntry)(null);
@@ -63,9 +72,20 @@ export function ToastHost({
63
72
  }]
64
73
  }));
65
74
  if (!entry) return null;
75
+
76
+ // 位置:top=顶部(safe-area + 间距)/ center=屏幕居中 / bottom=底部(默认)
77
+ const posStyle = entry.position === 'top' ? {
78
+ top: insets.top + space[10]
79
+ } : entry.position === 'center' ? {
80
+ top: 0,
81
+ bottom: 0,
82
+ justifyContent: 'center'
83
+ } : {
84
+ bottom: insets.bottom + space[10]
85
+ };
66
86
  const dotColor = dotColorFor(entry.kind, c);
67
87
  return /*#__PURE__*/_jsx(View, {
68
- style: styles.host,
88
+ style: [styles.host, posStyle],
69
89
  pointerEvents: "none",
70
90
  testID: testID,
71
91
  children: /*#__PURE__*/_jsxs(Animated.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Text","View","Animated","cancelAnimation","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useColors","useThemedStyles","motion","dotColorFor","makeStyles","_subs","jsx","_jsx","jsxs","_jsxs","ToastHost","testID","c","styles","entry","setEntry","op","ty","dismissTimer","sub","next","current","clearTimeout","add","delete","value","duration","base","setTimeout","finished","animatedStyle","opacity","transform","translateY","dotColor","kind","style","host","pointerEvents","children","toast","dot","backgroundColor","text","undefined","message"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/ToastHost.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Text","View","useSafeAreaInsets","Animated","cancelAnimation","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useColors","useThemedStyles","motion","space","dotColorFor","makeStyles","_subs","jsx","_jsx","jsxs","_jsxs","ToastHost","testID","c","styles","insets","entry","setEntry","op","ty","dismissTimer","sub","next","current","clearTimeout","add","delete","from","position","value","duration","base","setTimeout","finished","animatedStyle","opacity","transform","translateY","posStyle","top","bottom","justifyContent","dotColor","kind","style","host","pointerEvents","children","toast","dot","backgroundColor","text","undefined","message"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/ToastHost.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,10 @@ import { StyleSheet } from 'react-native';
4
4
  import { fw, r, radius, space, type as t } from "../../../theme/index.js";
5
5
  export const makeStyles = c => StyleSheet.create({
6
6
  host: {
7
+ // 定位(top/bottom/center)由 ToastHost 按 entry.position 注入,这里只留通用
7
8
  position: 'absolute',
8
9
  left: 0,
9
10
  right: 0,
10
- bottom: space[10],
11
11
  alignItems: 'center',
12
12
  // zIndex: toast 浮层 —— 盖在 Screen 内容之上(navigator / overlay 之下)。
13
13
  // 同级兄弟节点无 z 顺序需求,但作为 absolute 浮岛对其他屏内 absolute 节点
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","fw","r","radius","space","type","t","makeStyles","c","create","host","position","left","right","bottom","alignItems","zIndex","toast","flexDirection","gap","backgroundColor","inverseSurface","borderRadius","md","paddingHorizontal","paddingVertical","maxWidth","dot","width","height","text","color","inverseOnSurface","fontSize","sm","fontWeight","medium","flexShrink","dotColorFor","kind","success","error"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,EAAE,EAAEC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGhE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCR,UAAU,CAACS,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJC,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAEV,KAAK,CAAC,EAAE,CAAC;IACjBW,UAAU,EAAE,QAAQ;IACpB;IACA;IACA;IACAC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLC,aAAa,EAAE,KAAK;IACpBH,UAAU,EAAE,QAAQ;IACpBI,GAAG,EAAEf,KAAK,CAAC,CAAC,CAAC;IACbgB,eAAe,EAAEZ,CAAC,CAACa,cAAc;IACjCC,YAAY,EAAEnB,MAAM,CAACoB,EAAE;IACvBC,iBAAiB,EAAEpB,KAAK,CAAC,CAAC,CAAC;IAC3BqB,eAAe,EAAErB,KAAK,CAAC,CAAC,CAAC;IACzBsB,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACH;IACAC,KAAK,EAAE1B,CAAC,CAAC,CAAC,CAAC;IACX2B,MAAM,EAAE3B,CAAC,CAAC,CAAC,CAAC;IACZoB,YAAY,EAAEpB,CAAC,CAAC,CAAC;EACnB,CAAC;EACD4B,IAAI,EAAE;IACJC,KAAK,EAAEvB,CAAC,CAACwB,gBAAgB;IACzBC,QAAQ,EAAE3B,CAAC,CAAC4B,EAAE;IACdC,UAAU,EAAElC,EAAE,CAACmC,MAAM;IACrBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEJ;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,IAAe,EAAE/B,CAAc,EAAiB;EAC1E,QAAQ+B,IAAI;IACV,KAAK,SAAS;MACZ,OAAO/B,CAAC,CAACgC,OAAO;IAClB,KAAK,OAAO;MACV,OAAOhC,CAAC,CAACiC,KAAK;IAChB,KAAK,MAAM;MACT,OAAO,IAAI;EACf;AACF","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","fw","r","radius","space","type","t","makeStyles","c","create","host","position","left","right","alignItems","zIndex","toast","flexDirection","gap","backgroundColor","inverseSurface","borderRadius","md","paddingHorizontal","paddingVertical","maxWidth","dot","width","height","text","color","inverseOnSurface","fontSize","sm","fontWeight","medium","flexShrink","dotColorFor","kind","success","error"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,EAAE,EAAEC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGhE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCR,UAAU,CAACS,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJ;IACAC,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,UAAU,EAAE,QAAQ;IACpB;IACA;IACA;IACAC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLC,aAAa,EAAE,KAAK;IACpBH,UAAU,EAAE,QAAQ;IACpBI,GAAG,EAAEd,KAAK,CAAC,CAAC,CAAC;IACbe,eAAe,EAAEX,CAAC,CAACY,cAAc;IACjCC,YAAY,EAAElB,MAAM,CAACmB,EAAE;IACvBC,iBAAiB,EAAEnB,KAAK,CAAC,CAAC,CAAC;IAC3BoB,eAAe,EAAEpB,KAAK,CAAC,CAAC,CAAC;IACzBqB,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACH;IACAC,KAAK,EAAEzB,CAAC,CAAC,CAAC,CAAC;IACX0B,MAAM,EAAE1B,CAAC,CAAC,CAAC,CAAC;IACZmB,YAAY,EAAEnB,CAAC,CAAC,CAAC;EACnB,CAAC;EACD2B,IAAI,EAAE;IACJC,KAAK,EAAEtB,CAAC,CAACuB,gBAAgB;IACzBC,QAAQ,EAAE1B,CAAC,CAAC2B,EAAE;IACdC,UAAU,EAAEjC,EAAE,CAACkC,MAAM;IACrBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEJ;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,IAAe,EAAE9B,CAAc,EAAiB;EAC1E,QAAQ8B,IAAI;IACV,KAAK,SAAS;MACZ,OAAO9B,CAAC,CAAC+B,OAAO;IAClB,KAAK,OAAO;MACV,OAAO/B,CAAC,CAACgC,KAAK;IAChB,KAAK,MAAM;MACT,OAAO,IAAI;EACf;AACF","ignoreList":[]}
@@ -13,12 +13,14 @@ function emit(input, kind = 'info') {
13
13
  id: ++_id,
14
14
  message: input,
15
15
  kind,
16
- duration: 3000
16
+ duration: 3000,
17
+ position: 'bottom'
17
18
  } : {
18
19
  id: ++_id,
19
20
  message: input.message,
20
21
  kind: input.kind ?? kind,
21
- duration: input.duration ?? 3000
22
+ duration: input.duration ?? 3000,
23
+ position: input.position ?? 'bottom'
22
24
  };
23
25
  _subs.forEach(s => s(entry));
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_id","_subs","Set","emit","input","kind","entry","id","message","duration","forEach","s","toast","Object","assign","info","success","error"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/toast.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAGA,IAAIA,GAAG,GAAG,CAAC;AACX,OAAO,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAa,CAAC;AAE1C,SAASC,IAAIA,CAACC,KAAiB,EAAEC,IAAe,GAAG,MAAM,EAAE;EACzD,MAAMC,KAAiB,GACrB,OAAOF,KAAK,KAAK,QAAQ,GACrB;IAAEG,EAAE,EAAE,EAAEP,GAAG;IAAEQ,OAAO,EAAEJ,KAAK;IAAEC,IAAI;IAAEI,QAAQ,EAAE;EAAK,CAAC,GACnD;IACEF,EAAE,EAAE,EAAEP,GAAG;IACTQ,OAAO,EAAEJ,KAAK,CAACI,OAAO;IACtBH,IAAI,EAAED,KAAK,CAACC,IAAI,IAAIA,IAAI;IACxBI,QAAQ,EAAEL,KAAK,CAACK,QAAQ,IAAI;EAC9B,CAAC;EACPR,KAAK,CAACS,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACL,KAAK,CAAC,CAAC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,KAAK,GAAGC,MAAM,CAACC,MAAM,CAAEV,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,MAAM,CAAC,EAAE;EAC7EW,IAAI,EAAGX,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,MAAM,CAAC;EAChDY,OAAO,EAAGZ,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,SAAS,CAAC;EACtDa,KAAK,EAAGb,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,OAAO;AACnD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_id","_subs","Set","emit","input","kind","entry","id","message","duration","position","forEach","s","toast","Object","assign","info","success","error"],"sourceRoot":"../../../../../src","sources":["components/ui/Toast/toast.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAGA,IAAIA,GAAG,GAAG,CAAC;AACX,OAAO,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAa,CAAC;AAE1C,SAASC,IAAIA,CAACC,KAAiB,EAAEC,IAAe,GAAG,MAAM,EAAE;EACzD,MAAMC,KAAiB,GACrB,OAAOF,KAAK,KAAK,QAAQ,GACrB;IAAEG,EAAE,EAAE,EAAEP,GAAG;IAAEQ,OAAO,EAAEJ,KAAK;IAAEC,IAAI;IAAEI,QAAQ,EAAE,IAAI;IAAEC,QAAQ,EAAE;EAAS,CAAC,GACvE;IACEH,EAAE,EAAE,EAAEP,GAAG;IACTQ,OAAO,EAAEJ,KAAK,CAACI,OAAO;IACtBH,IAAI,EAAED,KAAK,CAACC,IAAI,IAAIA,IAAI;IACxBI,QAAQ,EAAEL,KAAK,CAACK,QAAQ,IAAI,IAAI;IAChCC,QAAQ,EAAEN,KAAK,CAACM,QAAQ,IAAI;EAC9B,CAAC;EACPT,KAAK,CAACU,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACN,KAAK,CAAC,CAAC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,KAAK,GAAGC,MAAM,CAACC,MAAM,CAAEX,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,MAAM,CAAC,EAAE;EAC7EY,IAAI,EAAGZ,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,MAAM,CAAC;EAChDa,OAAO,EAAGb,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,SAAS,CAAC;EACtDc,KAAK,EAAGd,KAAiB,IAAKD,IAAI,CAACC,KAAK,EAAE,OAAO;AACnD,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  export { Avatar } from "./Avatar/index.js";
4
- export { BottomSheet } from "./BottomSheet/index.js";
5
4
  export { BlurLayer } from "./BlurLayer/index.js";
6
5
  export { Button } from "./Button/index.js";
7
6
  export { Card } from "./Card/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Avatar","BottomSheet","BlurLayer","Button","Card","Carousel","Cell","List","Checkbox","Chip","confirm","ConfirmHost","DrawerHeader","Empty","EntryCard","Form","FormGroup","FormRow","Grid","Icon","IconButton","Input","Logo","NavBar","PasswordInput","Pulse","PulseDot","usePulse","Radio","Reveal","Search","Skeleton","Segmented","Spinner","StatusDot","Stepper","Switch","TabBar","Tabs","Tag","Textarea","Thumbnail","toast","ToastHost"],"sourceRoot":"../../../../src","sources":["components/ui/index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,mBAAU;AAEjC,SAASC,WAAW,QAAQ,wBAAe;AAE3C,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,IAAI,EAAEC,IAAI,QAAQ,iBAAQ;AAEnC,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,OAAO,EAAEC,WAAW,QAAQ,oBAAW;AAEhD,SAASC,YAAY,QAAQ,yBAAgB;AAE7C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,IAAI,EAAEC,SAAS,EAAEC,OAAO,QAAQ,iBAAQ;AAEjD,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,UAAU,QAAQ,uBAAc;AAEzC,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,aAAa,QAAQ,0BAAiB;AAE/C,SAASC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,kBAAS;AAEnD,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,OAAO,QAAQ,oBAAW;AAEnC,SAASC,SAAS,QAAQ,sBAAa;AAMvC,SAASC,OAAO,QAAQ,oBAAW;AAEnC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAE3B,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,KAAK,EAAEC,SAAS,QAAQ,kBAAS","ignoreList":[]}
1
+ {"version":3,"names":["Avatar","BlurLayer","Button","Card","Carousel","Cell","List","Checkbox","Chip","confirm","ConfirmHost","DrawerHeader","Empty","EntryCard","Form","FormGroup","FormRow","Grid","Icon","IconButton","Input","Logo","NavBar","PasswordInput","Pulse","PulseDot","usePulse","Radio","Reveal","Search","Skeleton","Segmented","Spinner","StatusDot","Stepper","Switch","TabBar","Tabs","Tag","Textarea","Thumbnail","toast","ToastHost"],"sourceRoot":"../../../../src","sources":["components/ui/index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,mBAAU;AAEjC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,IAAI,EAAEC,IAAI,QAAQ,iBAAQ;AAEnC,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,OAAO,EAAEC,WAAW,QAAQ,oBAAW;AAEhD,SAASC,YAAY,QAAQ,yBAAgB;AAE7C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,IAAI,EAAEC,SAAS,EAAEC,OAAO,QAAQ,iBAAQ;AAEjD,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,UAAU,QAAQ,uBAAc;AAEzC,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,aAAa,QAAQ,0BAAiB;AAE/C,SAASC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,kBAAS;AAEnD,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,OAAO,QAAQ,oBAAW;AAEnC,SAASC,SAAS,QAAQ,sBAAa;AAMvC,SAASC,OAAO,QAAQ,oBAAW;AAEnC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAE3B,SAASC,QAAQ,QAAQ,qBAAY;AAErC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,KAAK,EAAEC,SAAS,QAAQ,kBAAS","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  /**
3
- * Confirm 对话框 Portal —— App 根挂一次,监听 `confirm()` 调用并渲染。
3
+ * Confirm 对话框宿主 —— App 根挂一次,监听 `confirm()` 调用并渲染。
4
4
  *
5
- * `<BottomSheetModal>` + `<BottomSheetModalProvider>`,通过 Provider Portal
6
- * 自动渲染到 App 顶层 —— 整屏 backdrop + 不受 React tree 位置影响。
5
+ * 原生 RN `Modal`(transparent + animationType slide)从底部滑入,backdrop 点击
6
+ * 取消、内层 sheet 拦截点击不冒泡。**不依赖 @gorhom**(0.6.0 @gorhom 后改为
7
+ * 纯 RN Modal + pub/sub 实现)。
7
8
  */
8
9
  export declare function ConfirmHost(): React.JSX.Element | null;
9
10
  //# sourceMappingURL=ConfirmHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmHost.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Confirm/ConfirmHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AA4Bf;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6FtD"}
1
+ {"version":3,"file":"ConfirmHost.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Confirm/ConfirmHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA0EtD"}
@@ -1,13 +1,20 @@
1
1
  import type { ColorTokens } from '../../../theme';
2
- /** Confirm 对话框 styles —— title/message BottomSheetView 顶部段,
3
- * actions BottomSheetFooter 自动浮到 sheet 底部。 */
2
+ /** Confirm 对话框 styles —— 原生 Modal(transparent + slide)底部弹出卡片:
3
+ * backdrop 半透黑铺满、点击取消;sheet 贴底圆角顶。不依赖 @gorhom。 */
4
4
  export declare const makeStyles: (c: ColorTokens) => Readonly<{
5
- sheetBackground: {
5
+ backdrop: {
6
+ flex: number;
6
7
  backgroundColor: string;
8
+ justifyContent: "flex-end";
7
9
  };
8
10
  sheet: {
9
- paddingHorizontal: number;
11
+ backgroundColor: string;
12
+ borderTopLeftRadius: number;
13
+ borderTopRightRadius: number;
10
14
  paddingTop: number;
15
+ };
16
+ body: {
17
+ paddingHorizontal: number;
11
18
  gap: number;
12
19
  };
13
20
  title: {
@@ -26,7 +33,6 @@ export declare const makeStyles: (c: ColorTokens) => Readonly<{
26
33
  gap: number;
27
34
  paddingHorizontal: number;
28
35
  paddingTop: number;
29
- paddingBottom: number;
30
36
  };
31
37
  }>;
32
38
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Confirm/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;iDACiD;AACjD,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BrC,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Confirm/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;mDACmD;AACnD,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCrC,CAAC"}