zkit-ui 1.0.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 (267) hide show
  1. package/README.md +267 -0
  2. package/dist/ComponentLibProvider.d.ts +15 -0
  3. package/dist/ComponentLibProvider.d.ts.map +1 -0
  4. package/dist/ComponentLibProvider.js +18 -0
  5. package/dist/assets/animations/spinner.json +1 -0
  6. package/dist/assets/icons/check.svg +4 -0
  7. package/dist/assets/icons/toast/error.webp +0 -0
  8. package/dist/assets/icons/toast/success.webp +0 -0
  9. package/dist/assets/icons/toast/warning.webp +0 -0
  10. package/dist/config.d.ts +16 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +42 -0
  13. package/dist/i18n/I18nProvider.d.ts +11 -0
  14. package/dist/i18n/I18nProvider.d.ts.map +1 -0
  15. package/dist/i18n/I18nProvider.js +84 -0
  16. package/dist/i18n/locale.d.ts +7 -0
  17. package/dist/i18n/locale.d.ts.map +1 -0
  18. package/dist/i18n/locale.js +87 -0
  19. package/dist/i18n/locales/de.d.ts +51 -0
  20. package/dist/i18n/locales/de.d.ts.map +1 -0
  21. package/dist/i18n/locales/de.js +62 -0
  22. package/dist/i18n/locales/en-US.d.ts +51 -0
  23. package/dist/i18n/locales/en-US.d.ts.map +1 -0
  24. package/dist/i18n/locales/en-US.js +62 -0
  25. package/dist/i18n/locales/index.d.ts +9 -0
  26. package/dist/i18n/locales/index.d.ts.map +1 -0
  27. package/dist/i18n/locales/index.js +23 -0
  28. package/dist/i18n/locales/ja.d.ts +51 -0
  29. package/dist/i18n/locales/ja.d.ts.map +1 -0
  30. package/dist/i18n/locales/ja.js +62 -0
  31. package/dist/i18n/locales/zh-CN.d.ts +51 -0
  32. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  33. package/dist/i18n/locales/zh-CN.js +62 -0
  34. package/dist/i18n/locales/zh-TW.d.ts +51 -0
  35. package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
  36. package/dist/i18n/locales/zh-TW.js +62 -0
  37. package/dist/i18n/types.d.ts +11 -0
  38. package/dist/i18n/types.d.ts.map +1 -0
  39. package/dist/i18n/types.js +2 -0
  40. package/dist/i18n/useI18n.d.ts +2 -0
  41. package/dist/i18n/useI18n.d.ts.map +1 -0
  42. package/dist/i18n/useI18n.js +41 -0
  43. package/dist/index.d.ts +57 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +90 -0
  46. package/dist/services/ActionDialogService/ActionDialog.d.ts +4 -0
  47. package/dist/services/ActionDialogService/ActionDialog.d.ts.map +1 -0
  48. package/dist/services/ActionDialogService/ActionDialog.js +531 -0
  49. package/dist/services/ActionDialogService/index.d.ts +4 -0
  50. package/dist/services/ActionDialogService/index.d.ts.map +1 -0
  51. package/dist/services/ActionDialogService/index.js +8 -0
  52. package/dist/services/ActionDialogService/service.d.ts +7 -0
  53. package/dist/services/ActionDialogService/service.d.ts.map +1 -0
  54. package/dist/services/ActionDialogService/service.js +309 -0
  55. package/dist/services/ActionDialogService/shared.d.ts +17 -0
  56. package/dist/services/ActionDialogService/shared.d.ts.map +1 -0
  57. package/dist/services/ActionDialogService/shared.js +167 -0
  58. package/dist/services/ActionDialogService/types.d.ts +160 -0
  59. package/dist/services/ActionDialogService/types.d.ts.map +1 -0
  60. package/dist/services/ActionDialogService/types.js +2 -0
  61. package/dist/services/CardToastService/index.d.ts +115 -0
  62. package/dist/services/CardToastService/index.d.ts.map +1 -0
  63. package/dist/services/CardToastService/index.js +899 -0
  64. package/dist/services/ImagePreviewService/index.d.ts +179 -0
  65. package/dist/services/ImagePreviewService/index.d.ts.map +1 -0
  66. package/dist/services/ImagePreviewService/index.js +1383 -0
  67. package/dist/services/LoadingService/index.d.ts +146 -0
  68. package/dist/services/LoadingService/index.d.ts.map +1 -0
  69. package/dist/services/LoadingService/index.js +827 -0
  70. package/dist/services/PermissionPurposeDialogService/index.d.ts +99 -0
  71. package/dist/services/PermissionPurposeDialogService/index.d.ts.map +1 -0
  72. package/dist/services/PermissionPurposeDialogService/index.js +360 -0
  73. package/dist/services/PickerService/index.d.ts +128 -0
  74. package/dist/services/PickerService/index.d.ts.map +1 -0
  75. package/dist/services/PickerService/index.js +250 -0
  76. package/dist/theme/ThemeProvider.d.ts +15 -0
  77. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  78. package/dist/theme/ThemeProvider.js +61 -0
  79. package/dist/theme/defaultTheme.d.ts +3 -0
  80. package/dist/theme/defaultTheme.d.ts.map +1 -0
  81. package/dist/theme/defaultTheme.js +28 -0
  82. package/dist/theme/mergeTheme.d.ts +3 -0
  83. package/dist/theme/mergeTheme.d.ts.map +1 -0
  84. package/dist/theme/mergeTheme.js +19 -0
  85. package/dist/theme/types.d.ts +17 -0
  86. package/dist/theme/types.d.ts.map +1 -0
  87. package/dist/theme/types.js +2 -0
  88. package/dist/theme/useTheme.d.ts +2 -0
  89. package/dist/theme/useTheme.d.ts.map +1 -0
  90. package/dist/theme/useTheme.js +46 -0
  91. package/dist/ui/Accordion/index.d.ts +99 -0
  92. package/dist/ui/Accordion/index.d.ts.map +1 -0
  93. package/dist/ui/Accordion/index.js +777 -0
  94. package/dist/ui/AddressCascader/index.d.ts +58 -0
  95. package/dist/ui/AddressCascader/index.d.ts.map +1 -0
  96. package/dist/ui/AddressCascader/index.js +710 -0
  97. package/dist/ui/BetweenTime/index.d.ts +82 -0
  98. package/dist/ui/BetweenTime/index.d.ts.map +1 -0
  99. package/dist/ui/BetweenTime/index.js +702 -0
  100. package/dist/ui/Button/index.d.ts +93 -0
  101. package/dist/ui/Button/index.d.ts.map +1 -0
  102. package/dist/ui/Button/index.js +832 -0
  103. package/dist/ui/Checkbox/index.d.ts +103 -0
  104. package/dist/ui/Checkbox/index.d.ts.map +1 -0
  105. package/dist/ui/Checkbox/index.js +694 -0
  106. package/dist/ui/DatePicker/index.d.ts +5 -0
  107. package/dist/ui/DatePicker/index.d.ts.map +1 -0
  108. package/dist/ui/DatePicker/index.js +157 -0
  109. package/dist/ui/DatePicker/types.d.ts +99 -0
  110. package/dist/ui/DatePicker/types.d.ts.map +1 -0
  111. package/dist/ui/DatePicker/types.js +2 -0
  112. package/dist/ui/DatePicker/utils.d.ts +32 -0
  113. package/dist/ui/DatePicker/utils.d.ts.map +1 -0
  114. package/dist/ui/DatePicker/utils.js +316 -0
  115. package/dist/ui/LinkedScroll/index.d.ts +78 -0
  116. package/dist/ui/LinkedScroll/index.d.ts.map +1 -0
  117. package/dist/ui/LinkedScroll/index.js +470 -0
  118. package/dist/ui/LoadingSpinner/index.d.ts +8 -0
  119. package/dist/ui/LoadingSpinner/index.d.ts.map +1 -0
  120. package/dist/ui/LoadingSpinner/index.js +122 -0
  121. package/dist/ui/Picker/actionBar.d.ts +14 -0
  122. package/dist/ui/Picker/actionBar.d.ts.map +1 -0
  123. package/dist/ui/Picker/actionBar.js +28 -0
  124. package/dist/ui/Picker/index.d.ts +5 -0
  125. package/dist/ui/Picker/index.d.ts.map +1 -0
  126. package/dist/ui/Picker/index.js +412 -0
  127. package/dist/ui/Picker/types.d.ts +80 -0
  128. package/dist/ui/Picker/types.d.ts.map +1 -0
  129. package/dist/ui/Picker/types.js +2 -0
  130. package/dist/ui/Picker/utils.d.ts +27 -0
  131. package/dist/ui/Picker/utils.d.ts.map +1 -0
  132. package/dist/ui/Picker/utils.js +182 -0
  133. package/dist/ui/Radio/index.d.ts +95 -0
  134. package/dist/ui/Radio/index.d.ts.map +1 -0
  135. package/dist/ui/Radio/index.js +633 -0
  136. package/dist/ui/Sheet/index.d.ts +12 -0
  137. package/dist/ui/Sheet/index.d.ts.map +1 -0
  138. package/dist/ui/Sheet/index.js +832 -0
  139. package/dist/ui/Sheet/nativeBottom.d.ts +52 -0
  140. package/dist/ui/Sheet/nativeBottom.d.ts.map +1 -0
  141. package/dist/ui/Sheet/nativeBottom.js +442 -0
  142. package/dist/ui/Sheet/nativeBottom.web.d.ts +18 -0
  143. package/dist/ui/Sheet/nativeBottom.web.d.ts.map +1 -0
  144. package/dist/ui/Sheet/nativeBottom.web.js +46 -0
  145. package/dist/ui/Sheet/slots.d.ts +5 -0
  146. package/dist/ui/Sheet/slots.d.ts.map +1 -0
  147. package/dist/ui/Sheet/slots.js +40 -0
  148. package/dist/ui/Sheet/types.d.ts +131 -0
  149. package/dist/ui/Sheet/types.d.ts.map +1 -0
  150. package/dist/ui/Sheet/types.js +2 -0
  151. package/dist/ui/SliderCaptcha/index.d.ts +57 -0
  152. package/dist/ui/SliderCaptcha/index.d.ts.map +1 -0
  153. package/dist/ui/SliderCaptcha/index.js +586 -0
  154. package/dist/ui/Switch/index.d.ts +72 -0
  155. package/dist/ui/Switch/index.d.ts.map +1 -0
  156. package/dist/ui/Switch/index.js +671 -0
  157. package/dist/ui/Text/index.d.ts +41 -0
  158. package/dist/ui/Text/index.d.ts.map +1 -0
  159. package/dist/ui/Text/index.js +325 -0
  160. package/dist/ui/TextInput/TextInputPrimitive.d.ts +8 -0
  161. package/dist/ui/TextInput/TextInputPrimitive.d.ts.map +1 -0
  162. package/dist/ui/TextInput/TextInputPrimitive.js +54 -0
  163. package/dist/ui/TextInput/index.d.ts +89 -0
  164. package/dist/ui/TextInput/index.d.ts.map +1 -0
  165. package/dist/ui/TextInput/index.js +545 -0
  166. package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.d.ts +39 -0
  167. package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.d.ts.map +1 -0
  168. package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.js +60 -0
  169. package/dist/ui/WheelColumn/constants.d.ts +2 -0
  170. package/dist/ui/WheelColumn/constants.d.ts.map +1 -0
  171. package/dist/ui/WheelColumn/constants.js +4 -0
  172. package/dist/ui/WheelColumn/index.d.ts +59 -0
  173. package/dist/ui/WheelColumn/index.d.ts.map +1 -0
  174. package/dist/ui/WheelColumn/index.js +547 -0
  175. package/ios/ZKitWheelPicker.h +18 -0
  176. package/ios/ZKitWheelPicker.mm +230 -0
  177. package/ios/ZKitWheelPickerLabel.h +10 -0
  178. package/ios/ZKitWheelPickerLabel.mm +31 -0
  179. package/ios/ZKitWheelPickerManager.h +5 -0
  180. package/ios/ZKitWheelPickerManager.mm +53 -0
  181. package/package.json +75 -0
  182. package/react-native.config.js +10 -0
  183. package/src/ComponentLibProvider.tsx +56 -0
  184. package/src/assets/animations/spinner.json +1 -0
  185. package/src/assets/icons/check.svg +4 -0
  186. package/src/assets/icons/toast/error.webp +0 -0
  187. package/src/assets/icons/toast/success.webp +0 -0
  188. package/src/assets/icons/toast/warning.webp +0 -0
  189. package/src/config.ts +65 -0
  190. package/src/i18n/I18nProvider.tsx +69 -0
  191. package/src/i18n/locale.ts +108 -0
  192. package/src/i18n/locales/de.ts +67 -0
  193. package/src/i18n/locales/en-US.ts +67 -0
  194. package/src/i18n/locales/index.ts +19 -0
  195. package/src/i18n/locales/ja.ts +67 -0
  196. package/src/i18n/locales/zh-CN.ts +67 -0
  197. package/src/i18n/locales/zh-TW.ts +67 -0
  198. package/src/i18n/types.ts +21 -0
  199. package/src/i18n/useI18n.ts +7 -0
  200. package/src/index.ts +395 -0
  201. package/src/services/ActionDialogService/ActionDialog.tsx +756 -0
  202. package/src/services/ActionDialogService/README.md +146 -0
  203. package/src/services/ActionDialogService/index.tsx +39 -0
  204. package/src/services/ActionDialogService/service.tsx +355 -0
  205. package/src/services/ActionDialogService/shared.ts +204 -0
  206. package/src/services/ActionDialogService/types.ts +197 -0
  207. package/src/services/CardToastService/README.md +128 -0
  208. package/src/services/CardToastService/index.tsx +1284 -0
  209. package/src/services/ImagePreviewService/README.md +67 -0
  210. package/src/services/ImagePreviewService/index.tsx +2148 -0
  211. package/src/services/LoadingService/README.md +128 -0
  212. package/src/services/LoadingService/index.tsx +1113 -0
  213. package/src/services/PermissionPurposeDialogService/README.md +80 -0
  214. package/src/services/PermissionPurposeDialogService/index.tsx +449 -0
  215. package/src/services/PickerService/README.md +154 -0
  216. package/src/services/PickerService/index.tsx +410 -0
  217. package/src/theme/ThemeProvider.tsx +40 -0
  218. package/src/theme/defaultTheme.ts +30 -0
  219. package/src/theme/mergeTheme.ts +16 -0
  220. package/src/theme/types.ts +36 -0
  221. package/src/theme/useTheme.ts +10 -0
  222. package/src/types/svg.d.ts +9 -0
  223. package/src/types/vant-area-data.d.ts +19 -0
  224. package/src/ui/Accordion/README.md +67 -0
  225. package/src/ui/Accordion/index.tsx +1221 -0
  226. package/src/ui/AddressCascader/README.md +144 -0
  227. package/src/ui/AddressCascader/index.tsx +1084 -0
  228. package/src/ui/BetweenTime/README.md +490 -0
  229. package/src/ui/BetweenTime/index.tsx +1001 -0
  230. package/src/ui/Button/README.md +186 -0
  231. package/src/ui/Button/index.tsx +1356 -0
  232. package/src/ui/Checkbox/README.md +211 -0
  233. package/src/ui/Checkbox/index.tsx +1231 -0
  234. package/src/ui/DatePicker/README.md +117 -0
  235. package/src/ui/DatePicker/index.tsx +295 -0
  236. package/src/ui/DatePicker/types.ts +115 -0
  237. package/src/ui/DatePicker/utils.ts +405 -0
  238. package/src/ui/LinkedScroll/README.md +55 -0
  239. package/src/ui/LinkedScroll/index.tsx +809 -0
  240. package/src/ui/LoadingSpinner/index.tsx +104 -0
  241. package/src/ui/Picker/README.md +190 -0
  242. package/src/ui/Picker/actionBar.tsx +70 -0
  243. package/src/ui/Picker/index.tsx +694 -0
  244. package/src/ui/Picker/types.ts +94 -0
  245. package/src/ui/Picker/utils.ts +239 -0
  246. package/src/ui/Radio/README.md +207 -0
  247. package/src/ui/Radio/index.tsx +1117 -0
  248. package/src/ui/Sheet/README.md +82 -0
  249. package/src/ui/Sheet/index.tsx +1163 -0
  250. package/src/ui/Sheet/nativeBottom.tsx +683 -0
  251. package/src/ui/Sheet/nativeBottom.web.tsx +40 -0
  252. package/src/ui/Sheet/slots.tsx +75 -0
  253. package/src/ui/Sheet/types.ts +195 -0
  254. package/src/ui/SliderCaptcha/README.md +61 -0
  255. package/src/ui/SliderCaptcha/index.tsx +816 -0
  256. package/src/ui/Switch/README.md +143 -0
  257. package/src/ui/Switch/index.tsx +1092 -0
  258. package/src/ui/Text/README.md +157 -0
  259. package/src/ui/Text/index.tsx +450 -0
  260. package/src/ui/TextInput/README.md +197 -0
  261. package/src/ui/TextInput/TextInputPrimitive.tsx +44 -0
  262. package/src/ui/TextInput/index.tsx +942 -0
  263. package/src/ui/WheelColumn/README.md +104 -0
  264. package/src/ui/WheelColumn/ZKitWheelPickerNativeComponent.tsx +68 -0
  265. package/src/ui/WheelColumn/constants.ts +1 -0
  266. package/src/ui/WheelColumn/index.tsx +826 -0
  267. package/zkit-ui.podspec +19 -0
@@ -0,0 +1,52 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewProps, type ViewStyle } from 'react-native';
3
+ import { type TrueSheetProps } from '@lodev09/react-native-true-sheet';
4
+ import type { SheetBackdropConfig, SheetCloseOptions, SheetCloseReason, SheetDetent, SheetDetentChangePayload, SheetHandleConfig, SheetNativeProps, SheetOpenChangeReason, SheetOpenOptions, SheetSlot, SheetState } from './types';
5
+ export type NativeBottomSheetOpenChangeDetails = {
6
+ reason: SheetOpenChangeReason;
7
+ detentIndex: number;
8
+ };
9
+ export type NativeBottomSheetCloseCompleteDetails = {
10
+ reason: SheetCloseReason;
11
+ detentIndex: number;
12
+ };
13
+ export type NativeBottomSheetRef = {
14
+ open: (options?: SheetOpenOptions) => Promise<void>;
15
+ close: (options?: SheetCloseOptions) => Promise<void>;
16
+ snapTo: (detentIndex: number) => Promise<void>;
17
+ getState: () => SheetState;
18
+ };
19
+ export type NativeBottomSheetProps = {
20
+ open?: boolean;
21
+ defaultOpen?: boolean;
22
+ onOpenChange?: (open: boolean, details: NativeBottomSheetOpenChangeDetails) => void;
23
+ onOpenComplete?: (payload: SheetDetentChangePayload) => void;
24
+ onCloseComplete?: (details: NativeBottomSheetCloseCompleteDetails) => void;
25
+ detents?: readonly SheetDetent[];
26
+ detentIndex?: number;
27
+ defaultDetentIndex?: number;
28
+ onDetentChange?: (index: number, payload: SheetDetentChangePayload) => void;
29
+ disabled?: boolean;
30
+ dismissible?: boolean;
31
+ draggable?: boolean;
32
+ backdrop?: boolean | SheetBackdropConfig;
33
+ title?: React.ReactNode;
34
+ description?: React.ReactNode;
35
+ header?: SheetSlot;
36
+ footer?: SheetSlot;
37
+ children?: SheetSlot;
38
+ backgroundColor?: TrueSheetProps['backgroundColor'];
39
+ cornerRadius?: number;
40
+ maxHeight?: number;
41
+ maxWidth?: number;
42
+ handle?: boolean | SheetHandleConfig;
43
+ style?: StyleProp<ViewStyle>;
44
+ headerStyle?: StyleProp<ViewStyle>;
45
+ footerStyle?: StyleProp<ViewStyle>;
46
+ testID?: ViewProps['testID'];
47
+ accessibilityLabel?: ViewProps['accessibilityLabel'];
48
+ backdropAccessibilityLabel?: string;
49
+ nativeProps?: SheetNativeProps;
50
+ };
51
+ export declare const NativeBottomSheet: React.ForwardRefExoticComponent<NativeBottomSheetProps & React.RefAttributes<NativeBottomSheetRef>>;
52
+ //# sourceMappingURL=nativeBottom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeBottom.d.ts","sourceRoot":"","sources":["../../../src/ui/Sheet/nativeBottom.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NativeBottomSheet = void 0;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const react_native_1 = require("react-native");
40
+ const react_native_true_sheet_1 = require("@lodev09/react-native-true-sheet");
41
+ const zkit_tools_1 = require("zkit-tools");
42
+ const useTheme_1 = require("../../theme/useTheme");
43
+ const slots_1 = require("./slots");
44
+ const DEFAULT_DETENTS = ['content'];
45
+ const DEFAULT_BACKDROP_OPACITY = 0.42;
46
+ const DEFAULT_DISMISSIBLE = true;
47
+ const DEFAULT_DRAGGABLE = true;
48
+ const DEFAULT_HANDLE_VISIBLE = true;
49
+ const IOS_SYSTEM_CORNER_RADIUS_MAJOR_VERSION = 26;
50
+ function clampNumber(value, min, max) {
51
+ if (!Number.isFinite(value))
52
+ return min;
53
+ return Math.max(min, Math.min(max, value));
54
+ }
55
+ function silentlyCatchPromise(value) {
56
+ const maybePromise = value;
57
+ if (typeof (maybePromise === null || maybePromise === void 0 ? void 0 : maybePromise.catch) === 'function') {
58
+ maybePromise.catch(() => { });
59
+ }
60
+ }
61
+ function normalizeDetent(detent) {
62
+ if (detent === 'content' || detent === 'auto')
63
+ return 'auto';
64
+ if (detent === 'medium')
65
+ return 0.5;
66
+ if (detent === 'large')
67
+ return 0.9;
68
+ if (detent === 'full')
69
+ return 1;
70
+ if (typeof detent === 'string' && detent.endsWith('%')) {
71
+ const percent = Number.parseFloat(detent.slice(0, -1));
72
+ if (Number.isFinite(percent) && percent > 0) {
73
+ return clampNumber(percent / 100, 0.1, 1);
74
+ }
75
+ return 'auto';
76
+ }
77
+ if (typeof detent === 'number' && Number.isFinite(detent) && detent > 0) {
78
+ return clampNumber(detent, 0.1, 1);
79
+ }
80
+ return 'auto';
81
+ }
82
+ function normalizeDetents(detents) {
83
+ const source = (detents === null || detents === void 0 ? void 0 : detents.length) ? detents : DEFAULT_DETENTS;
84
+ const semantic = source.slice(0, 3);
85
+ return {
86
+ semantic,
87
+ native: semantic.map(normalizeDetent),
88
+ };
89
+ }
90
+ function normalizeDetentIndex(index, length) {
91
+ if (!Number.isFinite(index))
92
+ return 0;
93
+ return clampNumber(Math.round(index !== null && index !== void 0 ? index : 0), 0, Math.max(0, length - 1));
94
+ }
95
+ function getIOSMajorVersion() {
96
+ var _a;
97
+ if (react_native_1.Platform.OS !== 'ios')
98
+ return undefined;
99
+ const version = react_native_1.Platform.Version;
100
+ const major = typeof version === 'number' ? version : Number.parseInt((_a = String(version).split('.')[0]) !== null && _a !== void 0 ? _a : '', 10);
101
+ return Number.isFinite(major) ? major : undefined;
102
+ }
103
+ function getDefaultCornerRadius() {
104
+ const iosMajorVersion = getIOSMajorVersion();
105
+ if (iosMajorVersion != null && iosMajorVersion >= IOS_SYSTEM_CORNER_RADIUS_MAJOR_VERSION) {
106
+ return undefined;
107
+ }
108
+ return (0, zkit_tools_1.wp)(22);
109
+ }
110
+ function resolveBackdrop(backdrop) {
111
+ var _a, _b;
112
+ if (backdrop === false) {
113
+ return {
114
+ visible: false,
115
+ dismissOnPress: false,
116
+ color: '#000000',
117
+ opacity: 0,
118
+ };
119
+ }
120
+ if (backdrop && typeof backdrop === 'object') {
121
+ return {
122
+ visible: backdrop.visible !== false,
123
+ dismissOnPress: backdrop.dismissOnPress !== false,
124
+ color: (_a = backdrop.color) !== null && _a !== void 0 ? _a : '#000000',
125
+ opacity: (_b = backdrop.opacity) !== null && _b !== void 0 ? _b : DEFAULT_BACKDROP_OPACITY,
126
+ };
127
+ }
128
+ return {
129
+ visible: true,
130
+ dismissOnPress: true,
131
+ color: '#000000',
132
+ opacity: DEFAULT_BACKDROP_OPACITY,
133
+ };
134
+ }
135
+ function renderSlot(slot, context) {
136
+ if (typeof slot === 'function') {
137
+ return slot(context);
138
+ }
139
+ return slot;
140
+ }
141
+ function toNativeSlot(slot) {
142
+ if (slot == null || typeof slot === 'boolean')
143
+ return undefined;
144
+ if (React.isValidElement(slot))
145
+ return slot;
146
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { children: slot });
147
+ }
148
+ function createDetentPayload(event, semanticDetents, nativeDetents) {
149
+ var _a, _b;
150
+ const index = normalizeDetentIndex(event.index, semanticDetents.length);
151
+ return {
152
+ index,
153
+ detent: (_a = semanticDetents[index]) !== null && _a !== void 0 ? _a : DEFAULT_DETENTS[0],
154
+ nativeDetent: (_b = nativeDetents[index]) !== null && _b !== void 0 ? _b : 'auto',
155
+ position: event.position,
156
+ placement: 'bottom',
157
+ };
158
+ }
159
+ exports.NativeBottomSheet = React.forwardRef(function NativeBottomSheet({ open: openProp, defaultOpen = false, onOpenChange, onOpenComplete, onCloseComplete, detents, detentIndex: detentIndexProp, defaultDetentIndex = 0, onDetentChange, disabled = false, dismissible = DEFAULT_DISMISSIBLE, draggable = DEFAULT_DRAGGABLE, backdrop, title, description, header, footer, children, backgroundColor, cornerRadius, maxHeight, maxWidth, handle = DEFAULT_HANDLE_VISIBLE, style, headerStyle, footerStyle, testID, accessibilityLabel, backdropAccessibilityLabel = 'Close sheet', nativeProps, }, ref) {
160
+ var _a, _b, _c, _d, _e;
161
+ const theme = (0, useTheme_1.useTheme)();
162
+ const isOpenControlled = openProp !== undefined;
163
+ const [innerOpen, setInnerOpen] = React.useState(defaultOpen);
164
+ const isOpen = isOpenControlled ? !!openProp : innerOpen;
165
+ const { semantic: semanticDetents, native: nativeDetents } = React.useMemo(() => normalizeDetents(detents), [detents]);
166
+ const defaultIndex = normalizeDetentIndex(defaultDetentIndex, nativeDetents.length);
167
+ const controlledDetentIndex = detentIndexProp == null ? undefined : normalizeDetentIndex(detentIndexProp, nativeDetents.length);
168
+ const initialDetentIndex = controlledDetentIndex !== null && controlledDetentIndex !== void 0 ? controlledDetentIndex : defaultIndex;
169
+ const [currentDetentIndex, setCurrentDetentIndex] = React.useState(initialDetentIndex);
170
+ const [sheetState, setSheetState] = React.useState(isOpen ? 'opening' : 'closed');
171
+ const [shellMounted, setShellMounted] = React.useState(isOpen);
172
+ const nativeRef = React.useRef(null);
173
+ const phaseRef = React.useRef(isOpen ? 'presenting' : 'idle');
174
+ const pendingDismissRef = React.useRef(false);
175
+ const activeLifecycleRef = React.useRef(isOpen);
176
+ const isOpenRef = React.useRef(isOpen);
177
+ const stateRef = React.useRef(sheetState);
178
+ const currentDetentIndexRef = React.useRef(currentDetentIndex);
179
+ const requestedOpenIndexRef = React.useRef(initialDetentIndex);
180
+ const presentAnimatedRef = React.useRef(true);
181
+ const dismissAnimatedRef = React.useRef(true);
182
+ const closeReasonRef = React.useRef('system');
183
+ const backdropConfig = React.useMemo(() => resolveBackdrop(backdrop), [backdrop]);
184
+ const usesManualBackdrop = react_native_1.Platform.OS === 'ios' && backdropConfig.visible;
185
+ const backdropOpacity = React.useRef(new react_native_1.Animated.Value(usesManualBackdrop && isOpen ? backdropConfig.opacity : 0)).current;
186
+ const [manualBackdropMounted, setManualBackdropMounted] = React.useState(usesManualBackdrop && isOpen);
187
+ React.useEffect(() => {
188
+ isOpenRef.current = isOpen;
189
+ }, [isOpen]);
190
+ React.useEffect(() => {
191
+ stateRef.current = sheetState;
192
+ }, [sheetState]);
193
+ React.useEffect(() => {
194
+ currentDetentIndexRef.current = currentDetentIndex;
195
+ }, [currentDetentIndex]);
196
+ React.useEffect(() => {
197
+ if (isOpen) {
198
+ activeLifecycleRef.current = true;
199
+ requestedOpenIndexRef.current = controlledDetentIndex !== null && controlledDetentIndex !== void 0 ? controlledDetentIndex : requestedOpenIndexRef.current;
200
+ if (!shellMounted)
201
+ setShellMounted(true);
202
+ return;
203
+ }
204
+ if (shellMounted) {
205
+ requestDismiss('system');
206
+ }
207
+ }, [controlledDetentIndex, isOpen, shellMounted]);
208
+ React.useEffect(() => {
209
+ if (!isOpen || !shellMounted)
210
+ return undefined;
211
+ const rafId = requestAnimationFrame(() => {
212
+ if (!isOpenRef.current)
213
+ return;
214
+ if (phaseRef.current !== 'idle' && phaseRef.current !== 'presenting')
215
+ return;
216
+ const sheet = nativeRef.current;
217
+ if (!sheet)
218
+ return;
219
+ const targetIndex = normalizeDetentIndex(controlledDetentIndex !== null && controlledDetentIndex !== void 0 ? controlledDetentIndex : requestedOpenIndexRef.current, nativeDetents.length);
220
+ pendingDismissRef.current = false;
221
+ phaseRef.current = 'presenting';
222
+ setSheetState('opening');
223
+ setCurrentDetentIndex(targetIndex);
224
+ silentlyCatchPromise(sheet.present(targetIndex, presentAnimatedRef.current));
225
+ });
226
+ return () => cancelAnimationFrame(rafId);
227
+ }, [controlledDetentIndex, isOpen, nativeDetents.length, shellMounted]);
228
+ React.useEffect(() => {
229
+ var _a;
230
+ if (controlledDetentIndex == null)
231
+ return;
232
+ requestedOpenIndexRef.current = controlledDetentIndex;
233
+ if (!isOpen || phaseRef.current !== 'presented')
234
+ return;
235
+ if (controlledDetentIndex === currentDetentIndexRef.current)
236
+ return;
237
+ silentlyCatchPromise((_a = nativeRef.current) === null || _a === void 0 ? void 0 : _a.resize(controlledDetentIndex));
238
+ }, [controlledDetentIndex, isOpen]);
239
+ React.useEffect(() => {
240
+ if (!usesManualBackdrop)
241
+ return;
242
+ backdropOpacity.stopAnimation();
243
+ if (isOpen) {
244
+ setManualBackdropMounted(true);
245
+ react_native_1.Animated.timing(backdropOpacity, {
246
+ toValue: backdropConfig.opacity,
247
+ duration: 180,
248
+ easing: react_native_1.Easing.out(react_native_1.Easing.cubic),
249
+ useNativeDriver: true,
250
+ }).start();
251
+ return;
252
+ }
253
+ react_native_1.Animated.timing(backdropOpacity, {
254
+ toValue: 0,
255
+ duration: 120,
256
+ easing: react_native_1.Easing.in(react_native_1.Easing.quad),
257
+ useNativeDriver: true,
258
+ }).start(({ finished }) => {
259
+ if (finished && !isOpenRef.current) {
260
+ setManualBackdropMounted(false);
261
+ }
262
+ });
263
+ }, [backdropConfig.opacity, backdropOpacity, isOpen, usesManualBackdrop]);
264
+ const emitOpenChange = React.useCallback((nextOpen, reason, detentIndex) => {
265
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen, {
266
+ reason,
267
+ detentIndex: normalizeDetentIndex(detentIndex !== null && detentIndex !== void 0 ? detentIndex : currentDetentIndexRef.current, nativeDetents.length),
268
+ });
269
+ }, [nativeDetents.length, onOpenChange]);
270
+ const setOpen = React.useCallback((nextOpen, reason, detentIndex) => {
271
+ if (disabled && nextOpen)
272
+ return;
273
+ if (nextOpen) {
274
+ requestedOpenIndexRef.current = normalizeDetentIndex(detentIndex !== null && detentIndex !== void 0 ? detentIndex : requestedOpenIndexRef.current, nativeDetents.length);
275
+ presentAnimatedRef.current = true;
276
+ activeLifecycleRef.current = true;
277
+ pendingDismissRef.current = false;
278
+ if (!isOpenControlled)
279
+ setInnerOpen(true);
280
+ emitOpenChange(true, 'api', requestedOpenIndexRef.current);
281
+ return;
282
+ }
283
+ closeReasonRef.current = reason === 'api' ? 'api' : reason;
284
+ if (!isOpenControlled)
285
+ setInnerOpen(false);
286
+ emitOpenChange(false, reason, currentDetentIndexRef.current);
287
+ }, [disabled, emitOpenChange, isOpenControlled, nativeDetents.length]);
288
+ const finishClosedLifecycle = React.useCallback((shouldSyncOpenState) => {
289
+ phaseRef.current = 'idle';
290
+ pendingDismissRef.current = false;
291
+ presentAnimatedRef.current = true;
292
+ dismissAnimatedRef.current = true;
293
+ setSheetState('closed');
294
+ if (shouldSyncOpenState) {
295
+ if (!isOpenControlled)
296
+ setInnerOpen(false);
297
+ emitOpenChange(false, closeReasonRef.current, currentDetentIndexRef.current);
298
+ }
299
+ setShellMounted(false);
300
+ if (activeLifecycleRef.current) {
301
+ activeLifecycleRef.current = false;
302
+ onCloseComplete === null || onCloseComplete === void 0 ? void 0 : onCloseComplete({
303
+ reason: closeReasonRef.current,
304
+ detentIndex: currentDetentIndexRef.current,
305
+ });
306
+ }
307
+ }, [emitOpenChange, isOpenControlled, onCloseComplete]);
308
+ function requestDismiss(reason) {
309
+ const phase = phaseRef.current;
310
+ closeReasonRef.current = reason;
311
+ if (phase === 'dismissing')
312
+ return;
313
+ if (phase === 'presenting') {
314
+ pendingDismissRef.current = true;
315
+ return;
316
+ }
317
+ if (phase === 'presented') {
318
+ const sheet = nativeRef.current;
319
+ if (!sheet) {
320
+ finishClosedLifecycle(false);
321
+ return;
322
+ }
323
+ pendingDismissRef.current = false;
324
+ phaseRef.current = 'dismissing';
325
+ setSheetState('closing');
326
+ silentlyCatchPromise(sheet.dismiss(dismissAnimatedRef.current));
327
+ return;
328
+ }
329
+ if (activeLifecycleRef.current) {
330
+ finishClosedLifecycle(false);
331
+ }
332
+ }
333
+ const openSheet = React.useCallback(async (options) => {
334
+ var _a, _b;
335
+ const targetIndex = normalizeDetentIndex((_a = options === null || options === void 0 ? void 0 : options.detentIndex) !== null && _a !== void 0 ? _a : requestedOpenIndexRef.current, nativeDetents.length);
336
+ requestedOpenIndexRef.current = targetIndex;
337
+ presentAnimatedRef.current = (options === null || options === void 0 ? void 0 : options.animated) !== false;
338
+ if (isOpenRef.current && phaseRef.current === 'presented') {
339
+ await ((_b = nativeRef.current) === null || _b === void 0 ? void 0 : _b.resize(targetIndex));
340
+ return;
341
+ }
342
+ setOpen(true, 'api', targetIndex);
343
+ }, [nativeDetents.length, setOpen]);
344
+ const closeSheet = React.useCallback(async (options) => {
345
+ dismissAnimatedRef.current = (options === null || options === void 0 ? void 0 : options.animated) !== false;
346
+ setOpen(false, 'api', currentDetentIndexRef.current);
347
+ }, [setOpen]);
348
+ const snapTo = React.useCallback(async (detentIndex) => {
349
+ var _a;
350
+ const targetIndex = normalizeDetentIndex(detentIndex, nativeDetents.length);
351
+ requestedOpenIndexRef.current = targetIndex;
352
+ if (!isOpenRef.current || phaseRef.current !== 'presented')
353
+ return;
354
+ await ((_a = nativeRef.current) === null || _a === void 0 ? void 0 : _a.resize(targetIndex));
355
+ }, [nativeDetents.length]);
356
+ React.useImperativeHandle(ref, () => ({
357
+ open: openSheet,
358
+ close: closeSheet,
359
+ snapTo,
360
+ getState: () => stateRef.current,
361
+ }), [closeSheet, openSheet, snapTo]);
362
+ const context = React.useMemo(() => ({
363
+ isOpen,
364
+ state: sheetState,
365
+ placement: 'bottom',
366
+ detentIndex: currentDetentIndex,
367
+ open: openSheet,
368
+ close: closeSheet,
369
+ snapTo,
370
+ }), [closeSheet, currentDetentIndex, isOpen, openSheet, sheetState, snapTo]);
371
+ const handleDidPresent = React.useCallback((event) => {
372
+ const payload = createDetentPayload(event.nativeEvent, semanticDetents, nativeDetents);
373
+ phaseRef.current = 'presented';
374
+ setSheetState('open');
375
+ setCurrentDetentIndex(payload.index);
376
+ currentDetentIndexRef.current = payload.index;
377
+ onOpenComplete === null || onOpenComplete === void 0 ? void 0 : onOpenComplete(payload);
378
+ if (pendingDismissRef.current || !isOpenRef.current) {
379
+ requestDismiss(closeReasonRef.current);
380
+ }
381
+ }, [nativeDetents, onOpenComplete, semanticDetents]);
382
+ const handleDidDismiss = React.useCallback(() => {
383
+ const wasRequestedDismiss = phaseRef.current === 'dismissing' || pendingDismissRef.current;
384
+ const shouldSyncOpenState = isOpenRef.current && !wasRequestedDismiss;
385
+ if (shouldSyncOpenState) {
386
+ closeReasonRef.current = closeReasonRef.current === 'system' ? 'gesture' : closeReasonRef.current;
387
+ }
388
+ finishClosedLifecycle(shouldSyncOpenState);
389
+ }, [finishClosedLifecycle]);
390
+ const handleDetentChange = React.useCallback((event) => {
391
+ const payload = createDetentPayload(event.nativeEvent, semanticDetents, nativeDetents);
392
+ if (detentIndexProp == null) {
393
+ setCurrentDetentIndex(payload.index);
394
+ }
395
+ currentDetentIndexRef.current = payload.index;
396
+ onDetentChange === null || onDetentChange === void 0 ? void 0 : onDetentChange(payload.index, payload);
397
+ }, [detentIndexProp, nativeDetents, onDetentChange, semanticDetents]);
398
+ const handleBackPress = React.useCallback(() => {
399
+ var _a, _b;
400
+ closeReasonRef.current = 'back';
401
+ return (_b = (_a = nativeProps === null || nativeProps === void 0 ? void 0 : nativeProps.onBackPress) === null || _a === void 0 ? void 0 : _a.call(nativeProps)) !== null && _b !== void 0 ? _b : true;
402
+ }, [nativeProps]);
403
+ const handleBackdropPress = React.useCallback(() => {
404
+ if (disabled || !dismissible || !backdropConfig.dismissOnPress || !isOpenRef.current)
405
+ return;
406
+ closeReasonRef.current = 'backdrop';
407
+ setOpen(false, 'backdrop', currentDetentIndexRef.current);
408
+ }, [backdropConfig.dismissOnPress, disabled, dismissible, setOpen]);
409
+ const resolvedHeader = toNativeSlot(header !== undefined || title != null || description != null ? (header !== undefined ? (renderSlot(header, context)) : ((0, jsx_runtime_1.jsx)(slots_1.SheetHeader, { title: title, description: description }))) : undefined);
410
+ const resolvedFooter = toNativeSlot(footer !== undefined ? renderSlot(footer, context) : undefined);
411
+ const resolvedChildren = renderSlot(children, context);
412
+ const handleConfig = handle && typeof handle === 'object' ? handle : {};
413
+ const handleVisible = handle !== false;
414
+ const surfaceColor = backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : theme.colors.surface;
415
+ const resolvedCornerRadius = cornerRadius !== null && cornerRadius !== void 0 ? cornerRadius : getDefaultCornerRadius();
416
+ const sheetNode = ((0, jsx_runtime_1.jsx)(react_native_true_sheet_1.TrueSheet, { ...nativeProps, ref: nativeRef, testID: testID, accessibilityLabel: accessibilityLabel, detents: nativeDetents, dimmed: backdropConfig.visible && !usesManualBackdrop, dimmedDetentIndex: 0, dismissible: !disabled && dismissible, draggable: !disabled && draggable, backgroundColor: surfaceColor, cornerRadius: resolvedCornerRadius, grabber: handleVisible, grabberOptions: handleVisible
417
+ ? {
418
+ width: (_a = handleConfig.width) !== null && _a !== void 0 ? _a : (0, zkit_tools_1.wp)(36),
419
+ height: (_b = handleConfig.height) !== null && _b !== void 0 ? _b : (0, zkit_tools_1.wp)(4),
420
+ topMargin: (_c = handleConfig.topMargin) !== null && _c !== void 0 ? _c : (0, zkit_tools_1.wp)(10),
421
+ cornerRadius: (_d = handleConfig.radius) !== null && _d !== void 0 ? _d : (0, zkit_tools_1.wp)(2),
422
+ color: (_e = handleConfig.color) !== null && _e !== void 0 ? _e : theme.colors.border,
423
+ }
424
+ : undefined, maxContentHeight: maxHeight, maxContentWidth: maxWidth, header: resolvedHeader, headerStyle: headerStyle, footer: resolvedFooter, footerStyle: footerStyle, style: style, onDidPresent: handleDidPresent, onDidDismiss: handleDidDismiss, onDetentChange: handleDetentChange, onBackPress: handleBackPress, children: resolvedChildren }));
425
+ if (!shellMounted)
426
+ return null;
427
+ if (usesManualBackdrop) {
428
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Modal, { visible: true, transparent: true, animationType: "none", statusBarTranslucent: true, presentationStyle: "overFullScreen", onRequestClose: handleBackdropPress, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.modalRoot, pointerEvents: "box-none", children: [manualBackdropMounted ? ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: backdropAccessibilityLabel, disabled: disabled || !dismissible || !backdropConfig.dismissOnPress, onPress: handleBackdropPress, style: react_native_1.StyleSheet.absoluteFill, children: (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { pointerEvents: "none", style: [
429
+ react_native_1.StyleSheet.absoluteFill,
430
+ {
431
+ backgroundColor: backdropConfig.color,
432
+ opacity: backdropOpacity,
433
+ },
434
+ ] }) })) : null, sheetNode] }) }));
435
+ }
436
+ return sheetNode;
437
+ });
438
+ const styles = react_native_1.StyleSheet.create({
439
+ modalRoot: {
440
+ ...react_native_1.StyleSheet.absoluteFillObject,
441
+ },
442
+ });
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import type { SheetCloseOptions, SheetOpenOptions, SheetState } from './types';
3
+ export type NativeBottomSheetOpenChangeDetails = {
4
+ reason: 'api' | 'backdrop' | 'back' | 'gesture' | 'system';
5
+ detentIndex: number;
6
+ };
7
+ export type NativeBottomSheetCloseCompleteDetails = {
8
+ reason: 'api' | 'backdrop' | 'back' | 'gesture' | 'system';
9
+ detentIndex: number;
10
+ };
11
+ export type NativeBottomSheetRef = {
12
+ open: (options?: SheetOpenOptions) => Promise<void>;
13
+ close: (options?: SheetCloseOptions) => Promise<void>;
14
+ snapTo: (detentIndex: number) => Promise<void>;
15
+ getState: () => SheetState;
16
+ };
17
+ export declare const NativeBottomSheet: React.ForwardRefExoticComponent<Omit<Record<string, unknown>, "ref"> & React.RefAttributes<NativeBottomSheetRef>>;
18
+ //# sourceMappingURL=nativeBottom.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeBottom.web.d.ts","sourceRoot":"","sources":["../../../src/ui/Sheet/nativeBottom.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM,UAAU,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,mHAe7B,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NativeBottomSheet = void 0;
37
+ const React = __importStar(require("react"));
38
+ exports.NativeBottomSheet = React.forwardRef(function NativeBottomSheet(_, ref) {
39
+ React.useImperativeHandle(ref, () => ({
40
+ open: async () => { },
41
+ close: async () => { },
42
+ snapTo: async () => { },
43
+ getState: () => 'closed',
44
+ }), []);
45
+ return null;
46
+ });
@@ -0,0 +1,5 @@
1
+ import type { SheetContentProps, SheetFooterProps, SheetHeaderProps } from './types';
2
+ export declare function SheetHeader({ title, description, children, style, ...props }: SheetHeaderProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function SheetContent({ style, ...props }: SheetContentProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function SheetFooter({ safeArea, style, ...props }: SheetFooterProps): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/ui/Sheet/slots.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,2CA2BlB;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAElE;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAe,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAKjF"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SheetHeader = SheetHeader;
4
+ exports.SheetContent = SheetContent;
5
+ exports.SheetFooter = SheetFooter;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_native_1 = require("react-native");
8
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
9
+ const zkit_tools_1 = require("zkit-tools");
10
+ const useTheme_1 = require("../../theme/useTheme");
11
+ const Text_1 = require("../Text");
12
+ function SheetHeader({ title, description, children, style, ...props }) {
13
+ const theme = (0, useTheme_1.useTheme)();
14
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { ...props, style: [styles.header, style], children: children !== null && children !== void 0 ? children : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [title != null ? ((0, jsx_runtime_1.jsx)(Text_1.Text, { accessibilityRole: "header", numberOfLines: 2, size: "lg", weight: "semibold", style: { color: theme.colors.onSurface }, children: title })) : null, description != null ? ((0, jsx_runtime_1.jsx)(Text_1.Text, { numberOfLines: 3, size: "sm", style: { color: theme.colors.muted }, children: description })) : null] })) }));
15
+ }
16
+ function SheetContent({ style, ...props }) {
17
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { ...props, style: [styles.content, style] });
18
+ }
19
+ function SheetFooter({ safeArea = true, style, ...props }) {
20
+ const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
21
+ const paddingBottom = safeArea ? Math.max(insets.bottom, (0, zkit_tools_1.wp)(12)) : undefined;
22
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { ...props, style: [styles.footer, paddingBottom != null && { paddingBottom }, style] });
23
+ }
24
+ const styles = react_native_1.StyleSheet.create({
25
+ header: {
26
+ gap: (0, zkit_tools_1.wp)(4),
27
+ paddingHorizontal: (0, zkit_tools_1.wp)(20),
28
+ paddingTop: (0, zkit_tools_1.wp)(20),
29
+ paddingBottom: (0, zkit_tools_1.wp)(12),
30
+ },
31
+ content: {
32
+ paddingHorizontal: (0, zkit_tools_1.wp)(20),
33
+ paddingVertical: (0, zkit_tools_1.wp)(16),
34
+ },
35
+ footer: {
36
+ gap: (0, zkit_tools_1.wp)(10),
37
+ paddingHorizontal: (0, zkit_tools_1.wp)(20),
38
+ paddingTop: (0, zkit_tools_1.wp)(12),
39
+ },
40
+ });