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.
- package/README.md +267 -0
- package/dist/ComponentLibProvider.d.ts +15 -0
- package/dist/ComponentLibProvider.d.ts.map +1 -0
- package/dist/ComponentLibProvider.js +18 -0
- package/dist/assets/animations/spinner.json +1 -0
- package/dist/assets/icons/check.svg +4 -0
- package/dist/assets/icons/toast/error.webp +0 -0
- package/dist/assets/icons/toast/success.webp +0 -0
- package/dist/assets/icons/toast/warning.webp +0 -0
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +42 -0
- package/dist/i18n/I18nProvider.d.ts +11 -0
- package/dist/i18n/I18nProvider.d.ts.map +1 -0
- package/dist/i18n/I18nProvider.js +84 -0
- package/dist/i18n/locale.d.ts +7 -0
- package/dist/i18n/locale.d.ts.map +1 -0
- package/dist/i18n/locale.js +87 -0
- package/dist/i18n/locales/de.d.ts +51 -0
- package/dist/i18n/locales/de.d.ts.map +1 -0
- package/dist/i18n/locales/de.js +62 -0
- package/dist/i18n/locales/en-US.d.ts +51 -0
- package/dist/i18n/locales/en-US.d.ts.map +1 -0
- package/dist/i18n/locales/en-US.js +62 -0
- package/dist/i18n/locales/index.d.ts +9 -0
- package/dist/i18n/locales/index.d.ts.map +1 -0
- package/dist/i18n/locales/index.js +23 -0
- package/dist/i18n/locales/ja.d.ts +51 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -0
- package/dist/i18n/locales/ja.js +62 -0
- package/dist/i18n/locales/zh-CN.d.ts +51 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +62 -0
- package/dist/i18n/locales/zh-TW.d.ts +51 -0
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
- package/dist/i18n/locales/zh-TW.js +62 -0
- package/dist/i18n/types.d.ts +11 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +2 -0
- package/dist/i18n/useI18n.d.ts +2 -0
- package/dist/i18n/useI18n.d.ts.map +1 -0
- package/dist/i18n/useI18n.js +41 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/services/ActionDialogService/ActionDialog.d.ts +4 -0
- package/dist/services/ActionDialogService/ActionDialog.d.ts.map +1 -0
- package/dist/services/ActionDialogService/ActionDialog.js +531 -0
- package/dist/services/ActionDialogService/index.d.ts +4 -0
- package/dist/services/ActionDialogService/index.d.ts.map +1 -0
- package/dist/services/ActionDialogService/index.js +8 -0
- package/dist/services/ActionDialogService/service.d.ts +7 -0
- package/dist/services/ActionDialogService/service.d.ts.map +1 -0
- package/dist/services/ActionDialogService/service.js +309 -0
- package/dist/services/ActionDialogService/shared.d.ts +17 -0
- package/dist/services/ActionDialogService/shared.d.ts.map +1 -0
- package/dist/services/ActionDialogService/shared.js +167 -0
- package/dist/services/ActionDialogService/types.d.ts +160 -0
- package/dist/services/ActionDialogService/types.d.ts.map +1 -0
- package/dist/services/ActionDialogService/types.js +2 -0
- package/dist/services/CardToastService/index.d.ts +115 -0
- package/dist/services/CardToastService/index.d.ts.map +1 -0
- package/dist/services/CardToastService/index.js +899 -0
- package/dist/services/ImagePreviewService/index.d.ts +179 -0
- package/dist/services/ImagePreviewService/index.d.ts.map +1 -0
- package/dist/services/ImagePreviewService/index.js +1383 -0
- package/dist/services/LoadingService/index.d.ts +146 -0
- package/dist/services/LoadingService/index.d.ts.map +1 -0
- package/dist/services/LoadingService/index.js +827 -0
- package/dist/services/PermissionPurposeDialogService/index.d.ts +99 -0
- package/dist/services/PermissionPurposeDialogService/index.d.ts.map +1 -0
- package/dist/services/PermissionPurposeDialogService/index.js +360 -0
- package/dist/services/PickerService/index.d.ts +128 -0
- package/dist/services/PickerService/index.d.ts.map +1 -0
- package/dist/services/PickerService/index.js +250 -0
- package/dist/theme/ThemeProvider.d.ts +15 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +61 -0
- package/dist/theme/defaultTheme.d.ts +3 -0
- package/dist/theme/defaultTheme.d.ts.map +1 -0
- package/dist/theme/defaultTheme.js +28 -0
- package/dist/theme/mergeTheme.d.ts +3 -0
- package/dist/theme/mergeTheme.d.ts.map +1 -0
- package/dist/theme/mergeTheme.js +19 -0
- package/dist/theme/types.d.ts +17 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +2 -0
- package/dist/theme/useTheme.d.ts +2 -0
- package/dist/theme/useTheme.d.ts.map +1 -0
- package/dist/theme/useTheme.js +46 -0
- package/dist/ui/Accordion/index.d.ts +99 -0
- package/dist/ui/Accordion/index.d.ts.map +1 -0
- package/dist/ui/Accordion/index.js +777 -0
- package/dist/ui/AddressCascader/index.d.ts +58 -0
- package/dist/ui/AddressCascader/index.d.ts.map +1 -0
- package/dist/ui/AddressCascader/index.js +710 -0
- package/dist/ui/BetweenTime/index.d.ts +82 -0
- package/dist/ui/BetweenTime/index.d.ts.map +1 -0
- package/dist/ui/BetweenTime/index.js +702 -0
- package/dist/ui/Button/index.d.ts +93 -0
- package/dist/ui/Button/index.d.ts.map +1 -0
- package/dist/ui/Button/index.js +832 -0
- package/dist/ui/Checkbox/index.d.ts +103 -0
- package/dist/ui/Checkbox/index.d.ts.map +1 -0
- package/dist/ui/Checkbox/index.js +694 -0
- package/dist/ui/DatePicker/index.d.ts +5 -0
- package/dist/ui/DatePicker/index.d.ts.map +1 -0
- package/dist/ui/DatePicker/index.js +157 -0
- package/dist/ui/DatePicker/types.d.ts +99 -0
- package/dist/ui/DatePicker/types.d.ts.map +1 -0
- package/dist/ui/DatePicker/types.js +2 -0
- package/dist/ui/DatePicker/utils.d.ts +32 -0
- package/dist/ui/DatePicker/utils.d.ts.map +1 -0
- package/dist/ui/DatePicker/utils.js +316 -0
- package/dist/ui/LinkedScroll/index.d.ts +78 -0
- package/dist/ui/LinkedScroll/index.d.ts.map +1 -0
- package/dist/ui/LinkedScroll/index.js +470 -0
- package/dist/ui/LoadingSpinner/index.d.ts +8 -0
- package/dist/ui/LoadingSpinner/index.d.ts.map +1 -0
- package/dist/ui/LoadingSpinner/index.js +122 -0
- package/dist/ui/Picker/actionBar.d.ts +14 -0
- package/dist/ui/Picker/actionBar.d.ts.map +1 -0
- package/dist/ui/Picker/actionBar.js +28 -0
- package/dist/ui/Picker/index.d.ts +5 -0
- package/dist/ui/Picker/index.d.ts.map +1 -0
- package/dist/ui/Picker/index.js +412 -0
- package/dist/ui/Picker/types.d.ts +80 -0
- package/dist/ui/Picker/types.d.ts.map +1 -0
- package/dist/ui/Picker/types.js +2 -0
- package/dist/ui/Picker/utils.d.ts +27 -0
- package/dist/ui/Picker/utils.d.ts.map +1 -0
- package/dist/ui/Picker/utils.js +182 -0
- package/dist/ui/Radio/index.d.ts +95 -0
- package/dist/ui/Radio/index.d.ts.map +1 -0
- package/dist/ui/Radio/index.js +633 -0
- package/dist/ui/Sheet/index.d.ts +12 -0
- package/dist/ui/Sheet/index.d.ts.map +1 -0
- package/dist/ui/Sheet/index.js +832 -0
- package/dist/ui/Sheet/nativeBottom.d.ts +52 -0
- package/dist/ui/Sheet/nativeBottom.d.ts.map +1 -0
- package/dist/ui/Sheet/nativeBottom.js +442 -0
- package/dist/ui/Sheet/nativeBottom.web.d.ts +18 -0
- package/dist/ui/Sheet/nativeBottom.web.d.ts.map +1 -0
- package/dist/ui/Sheet/nativeBottom.web.js +46 -0
- package/dist/ui/Sheet/slots.d.ts +5 -0
- package/dist/ui/Sheet/slots.d.ts.map +1 -0
- package/dist/ui/Sheet/slots.js +40 -0
- package/dist/ui/Sheet/types.d.ts +131 -0
- package/dist/ui/Sheet/types.d.ts.map +1 -0
- package/dist/ui/Sheet/types.js +2 -0
- package/dist/ui/SliderCaptcha/index.d.ts +57 -0
- package/dist/ui/SliderCaptcha/index.d.ts.map +1 -0
- package/dist/ui/SliderCaptcha/index.js +586 -0
- package/dist/ui/Switch/index.d.ts +72 -0
- package/dist/ui/Switch/index.d.ts.map +1 -0
- package/dist/ui/Switch/index.js +671 -0
- package/dist/ui/Text/index.d.ts +41 -0
- package/dist/ui/Text/index.d.ts.map +1 -0
- package/dist/ui/Text/index.js +325 -0
- package/dist/ui/TextInput/TextInputPrimitive.d.ts +8 -0
- package/dist/ui/TextInput/TextInputPrimitive.d.ts.map +1 -0
- package/dist/ui/TextInput/TextInputPrimitive.js +54 -0
- package/dist/ui/TextInput/index.d.ts +89 -0
- package/dist/ui/TextInput/index.d.ts.map +1 -0
- package/dist/ui/TextInput/index.js +545 -0
- package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.d.ts +39 -0
- package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.d.ts.map +1 -0
- package/dist/ui/WheelColumn/ZKitWheelPickerNativeComponent.js +60 -0
- package/dist/ui/WheelColumn/constants.d.ts +2 -0
- package/dist/ui/WheelColumn/constants.d.ts.map +1 -0
- package/dist/ui/WheelColumn/constants.js +4 -0
- package/dist/ui/WheelColumn/index.d.ts +59 -0
- package/dist/ui/WheelColumn/index.d.ts.map +1 -0
- package/dist/ui/WheelColumn/index.js +547 -0
- package/ios/ZKitWheelPicker.h +18 -0
- package/ios/ZKitWheelPicker.mm +230 -0
- package/ios/ZKitWheelPickerLabel.h +10 -0
- package/ios/ZKitWheelPickerLabel.mm +31 -0
- package/ios/ZKitWheelPickerManager.h +5 -0
- package/ios/ZKitWheelPickerManager.mm +53 -0
- package/package.json +75 -0
- package/react-native.config.js +10 -0
- package/src/ComponentLibProvider.tsx +56 -0
- package/src/assets/animations/spinner.json +1 -0
- package/src/assets/icons/check.svg +4 -0
- package/src/assets/icons/toast/error.webp +0 -0
- package/src/assets/icons/toast/success.webp +0 -0
- package/src/assets/icons/toast/warning.webp +0 -0
- package/src/config.ts +65 -0
- package/src/i18n/I18nProvider.tsx +69 -0
- package/src/i18n/locale.ts +108 -0
- package/src/i18n/locales/de.ts +67 -0
- package/src/i18n/locales/en-US.ts +67 -0
- package/src/i18n/locales/index.ts +19 -0
- package/src/i18n/locales/ja.ts +67 -0
- package/src/i18n/locales/zh-CN.ts +67 -0
- package/src/i18n/locales/zh-TW.ts +67 -0
- package/src/i18n/types.ts +21 -0
- package/src/i18n/useI18n.ts +7 -0
- package/src/index.ts +395 -0
- package/src/services/ActionDialogService/ActionDialog.tsx +756 -0
- package/src/services/ActionDialogService/README.md +146 -0
- package/src/services/ActionDialogService/index.tsx +39 -0
- package/src/services/ActionDialogService/service.tsx +355 -0
- package/src/services/ActionDialogService/shared.ts +204 -0
- package/src/services/ActionDialogService/types.ts +197 -0
- package/src/services/CardToastService/README.md +128 -0
- package/src/services/CardToastService/index.tsx +1284 -0
- package/src/services/ImagePreviewService/README.md +67 -0
- package/src/services/ImagePreviewService/index.tsx +2148 -0
- package/src/services/LoadingService/README.md +128 -0
- package/src/services/LoadingService/index.tsx +1113 -0
- package/src/services/PermissionPurposeDialogService/README.md +80 -0
- package/src/services/PermissionPurposeDialogService/index.tsx +449 -0
- package/src/services/PickerService/README.md +154 -0
- package/src/services/PickerService/index.tsx +410 -0
- package/src/theme/ThemeProvider.tsx +40 -0
- package/src/theme/defaultTheme.ts +30 -0
- package/src/theme/mergeTheme.ts +16 -0
- package/src/theme/types.ts +36 -0
- package/src/theme/useTheme.ts +10 -0
- package/src/types/svg.d.ts +9 -0
- package/src/types/vant-area-data.d.ts +19 -0
- package/src/ui/Accordion/README.md +67 -0
- package/src/ui/Accordion/index.tsx +1221 -0
- package/src/ui/AddressCascader/README.md +144 -0
- package/src/ui/AddressCascader/index.tsx +1084 -0
- package/src/ui/BetweenTime/README.md +490 -0
- package/src/ui/BetweenTime/index.tsx +1001 -0
- package/src/ui/Button/README.md +186 -0
- package/src/ui/Button/index.tsx +1356 -0
- package/src/ui/Checkbox/README.md +211 -0
- package/src/ui/Checkbox/index.tsx +1231 -0
- package/src/ui/DatePicker/README.md +117 -0
- package/src/ui/DatePicker/index.tsx +295 -0
- package/src/ui/DatePicker/types.ts +115 -0
- package/src/ui/DatePicker/utils.ts +405 -0
- package/src/ui/LinkedScroll/README.md +55 -0
- package/src/ui/LinkedScroll/index.tsx +809 -0
- package/src/ui/LoadingSpinner/index.tsx +104 -0
- package/src/ui/Picker/README.md +190 -0
- package/src/ui/Picker/actionBar.tsx +70 -0
- package/src/ui/Picker/index.tsx +694 -0
- package/src/ui/Picker/types.ts +94 -0
- package/src/ui/Picker/utils.ts +239 -0
- package/src/ui/Radio/README.md +207 -0
- package/src/ui/Radio/index.tsx +1117 -0
- package/src/ui/Sheet/README.md +82 -0
- package/src/ui/Sheet/index.tsx +1163 -0
- package/src/ui/Sheet/nativeBottom.tsx +683 -0
- package/src/ui/Sheet/nativeBottom.web.tsx +40 -0
- package/src/ui/Sheet/slots.tsx +75 -0
- package/src/ui/Sheet/types.ts +195 -0
- package/src/ui/SliderCaptcha/README.md +61 -0
- package/src/ui/SliderCaptcha/index.tsx +816 -0
- package/src/ui/Switch/README.md +143 -0
- package/src/ui/Switch/index.tsx +1092 -0
- package/src/ui/Text/README.md +157 -0
- package/src/ui/Text/index.tsx +450 -0
- package/src/ui/TextInput/README.md +197 -0
- package/src/ui/TextInput/TextInputPrimitive.tsx +44 -0
- package/src/ui/TextInput/index.tsx +942 -0
- package/src/ui/WheelColumn/README.md +104 -0
- package/src/ui/WheelColumn/ZKitWheelPickerNativeComponent.tsx +68 -0
- package/src/ui/WheelColumn/constants.ts +1 -0
- package/src/ui/WheelColumn/index.tsx +826 -0
- package/zkit-ui.podspec +19 -0
|
@@ -0,0 +1,250 @@
|
|
|
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.pickerService = void 0;
|
|
37
|
+
exports.PickerServiceProvider = PickerServiceProvider;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
/**
|
|
40
|
+
* @file PickerService - 命令式选择器服务
|
|
41
|
+
* @description 提供 pick、pickDate、pickAddress、pickBetweenTime 等方法
|
|
42
|
+
* @example
|
|
43
|
+
* ```tsx
|
|
44
|
+
* import { pickerService } from 'zkit-ui';
|
|
45
|
+
*
|
|
46
|
+
* const result = await pickerService.pick({ options: [...], value: 'id' });
|
|
47
|
+
* const date = await pickerService.pickDate({ value: '2024-01-01' });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
const React = __importStar(require("react"));
|
|
51
|
+
const Picker_1 = require("../../ui/Picker");
|
|
52
|
+
const DatePicker_1 = require("../../ui/DatePicker");
|
|
53
|
+
const AddressCascader_1 = require("../../ui/AddressCascader");
|
|
54
|
+
const BetweenTime_1 = require("../../ui/BetweenTime");
|
|
55
|
+
// ============ Service Class ============
|
|
56
|
+
/**
|
|
57
|
+
* 选择器服务类
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
class PickerServiceClass {
|
|
61
|
+
constructor() {
|
|
62
|
+
this.setState = null;
|
|
63
|
+
this.sequence = 0;
|
|
64
|
+
}
|
|
65
|
+
/** @internal 设置状态更新器 */
|
|
66
|
+
setStateUpdater(updater) {
|
|
67
|
+
this.setState = updater;
|
|
68
|
+
}
|
|
69
|
+
/** @internal 显示选择器 */
|
|
70
|
+
show(type, options) {
|
|
71
|
+
return new Promise((resolve) => {
|
|
72
|
+
if (!this.setState) {
|
|
73
|
+
console.warn('[PickerService] Provider not mounted');
|
|
74
|
+
resolve(null);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const request = {
|
|
78
|
+
id: `picker-request-${Date.now()}-${++this.sequence}`,
|
|
79
|
+
type,
|
|
80
|
+
options,
|
|
81
|
+
resolve: (result) => {
|
|
82
|
+
resolve(result);
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
this.setState((prev) => {
|
|
86
|
+
if (!prev.activeRequest) {
|
|
87
|
+
return { ...prev, activeRequest: request, open: true };
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
...prev,
|
|
91
|
+
queuedRequests: [...prev.queuedRequests, request],
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** 打开通用选择器 */
|
|
97
|
+
pick(options) {
|
|
98
|
+
return this.show('picker', options);
|
|
99
|
+
}
|
|
100
|
+
/** 打开日期选择器 */
|
|
101
|
+
pickDate(options = {}) {
|
|
102
|
+
return this.show('date', options);
|
|
103
|
+
}
|
|
104
|
+
/** 打开地址选择器 */
|
|
105
|
+
pickAddress(options = {}) {
|
|
106
|
+
return this.show('address', options);
|
|
107
|
+
}
|
|
108
|
+
/** 打开时间区间选择器 */
|
|
109
|
+
pickBetweenTime(options = {}) {
|
|
110
|
+
return this.show('betweenTime', options);
|
|
111
|
+
}
|
|
112
|
+
/** 关闭当前选择器 */
|
|
113
|
+
close() {
|
|
114
|
+
var _a;
|
|
115
|
+
(_a = this.setState) === null || _a === void 0 ? void 0 : _a.call(this, (prev) => {
|
|
116
|
+
if (!prev.activeRequest || !prev.open)
|
|
117
|
+
return prev;
|
|
118
|
+
return { ...prev, open: false };
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** 选择器服务实例 */
|
|
123
|
+
exports.pickerService = new PickerServiceClass();
|
|
124
|
+
// ============ Provider Component ============
|
|
125
|
+
const initialState = {
|
|
126
|
+
activeRequest: null,
|
|
127
|
+
queuedRequests: [],
|
|
128
|
+
open: false,
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* 选择器服务 Provider
|
|
132
|
+
* @description 需要在应用根组件中包裹,已内置于 ComponentLibProvider
|
|
133
|
+
*/
|
|
134
|
+
function PickerServiceProvider({ children }) {
|
|
135
|
+
const [state, setState] = React.useState(initialState);
|
|
136
|
+
const activeRequestRef = React.useRef(null);
|
|
137
|
+
const queuedRequestsRef = React.useRef([]);
|
|
138
|
+
const settledRequestIdsRef = React.useRef(new Set());
|
|
139
|
+
activeRequestRef.current = state.activeRequest;
|
|
140
|
+
queuedRequestsRef.current = state.queuedRequests;
|
|
141
|
+
/** 同一个请求只允许 settle 一次,关闭动画结束前仍保留 activeRequest 做串行调度。 */
|
|
142
|
+
const settleRequest = React.useCallback((request, result) => {
|
|
143
|
+
var _a;
|
|
144
|
+
if (!request)
|
|
145
|
+
return;
|
|
146
|
+
if (settledRequestIdsRef.current.has(request.id))
|
|
147
|
+
return;
|
|
148
|
+
settledRequestIdsRef.current.add(request.id);
|
|
149
|
+
(_a = request.resolve) === null || _a === void 0 ? void 0 : _a.call(request, result);
|
|
150
|
+
}, []);
|
|
151
|
+
React.useEffect(() => {
|
|
152
|
+
exports.pickerService.setStateUpdater(setState);
|
|
153
|
+
return () => {
|
|
154
|
+
settleRequest(activeRequestRef.current, null);
|
|
155
|
+
for (const request of queuedRequestsRef.current) {
|
|
156
|
+
settleRequest(request, null);
|
|
157
|
+
}
|
|
158
|
+
exports.pickerService.setStateUpdater(null);
|
|
159
|
+
};
|
|
160
|
+
}, [settleRequest]);
|
|
161
|
+
/** 业务层要求关闭时,先 settle 当前 promise,但不立刻销毁实例。 */
|
|
162
|
+
const handleOpenChange = React.useCallback((open) => {
|
|
163
|
+
if (open) {
|
|
164
|
+
setState((prev) => {
|
|
165
|
+
if (!prev.activeRequest || prev.open)
|
|
166
|
+
return prev;
|
|
167
|
+
return { ...prev, open: true };
|
|
168
|
+
});
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
settleRequest(activeRequestRef.current, null);
|
|
172
|
+
setState((prev) => {
|
|
173
|
+
if (!prev.activeRequest || !prev.open)
|
|
174
|
+
return prev;
|
|
175
|
+
return { ...prev, open: false };
|
|
176
|
+
});
|
|
177
|
+
}, [settleRequest]);
|
|
178
|
+
/** 取消时 resolve null */
|
|
179
|
+
const handleCancel = React.useCallback(() => {
|
|
180
|
+
settleRequest(activeRequestRef.current, null);
|
|
181
|
+
}, [settleRequest]);
|
|
182
|
+
/** 原生 dismiss 真正结束后,再安全切到下一个排队请求。 */
|
|
183
|
+
const handleDismissComplete = React.useCallback((requestId) => {
|
|
184
|
+
setState((prev) => {
|
|
185
|
+
var _a;
|
|
186
|
+
if (((_a = prev.activeRequest) === null || _a === void 0 ? void 0 : _a.id) !== requestId)
|
|
187
|
+
return prev;
|
|
188
|
+
settleRequest(prev.activeRequest, null);
|
|
189
|
+
settledRequestIdsRef.current.delete(requestId);
|
|
190
|
+
const [nextRequest, ...restQueue] = prev.queuedRequests;
|
|
191
|
+
if (!nextRequest) {
|
|
192
|
+
return {
|
|
193
|
+
activeRequest: null,
|
|
194
|
+
queuedRequests: restQueue,
|
|
195
|
+
open: false,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
activeRequest: nextRequest,
|
|
200
|
+
queuedRequests: restQueue,
|
|
201
|
+
open: true,
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
}, [settleRequest]);
|
|
205
|
+
/** 确认时 resolve 结果 */
|
|
206
|
+
const handlePickerConfirm = React.useCallback((payload) => {
|
|
207
|
+
settleRequest(activeRequestRef.current, {
|
|
208
|
+
value: payload.value,
|
|
209
|
+
values: payload.values,
|
|
210
|
+
label: payload.label,
|
|
211
|
+
labels: payload.labels,
|
|
212
|
+
items: payload.items,
|
|
213
|
+
});
|
|
214
|
+
}, [settleRequest]);
|
|
215
|
+
const handleDateConfirm = React.useCallback((payload) => {
|
|
216
|
+
settleRequest(activeRequestRef.current, {
|
|
217
|
+
value: payload.value,
|
|
218
|
+
label: payload.label,
|
|
219
|
+
});
|
|
220
|
+
}, [settleRequest]);
|
|
221
|
+
const handleAddressConfirm = React.useCallback((payload) => {
|
|
222
|
+
settleRequest(activeRequestRef.current, {
|
|
223
|
+
value: payload.value,
|
|
224
|
+
values: payload.values,
|
|
225
|
+
label: payload.label,
|
|
226
|
+
labels: payload.labels,
|
|
227
|
+
items: payload.items,
|
|
228
|
+
});
|
|
229
|
+
}, [settleRequest]);
|
|
230
|
+
const handleBetweenTimeConfirm = React.useCallback((payload) => {
|
|
231
|
+
settleRequest(activeRequestRef.current, {
|
|
232
|
+
value: payload.value,
|
|
233
|
+
});
|
|
234
|
+
}, [settleRequest]);
|
|
235
|
+
const activeRequest = state.activeRequest;
|
|
236
|
+
const activeRequestId = activeRequest === null || activeRequest === void 0 ? void 0 : activeRequest.id;
|
|
237
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [children, (activeRequest === null || activeRequest === void 0 ? void 0 : activeRequest.type) === 'picker' && ((0, jsx_runtime_1.jsx)(Picker_1.Picker, { ...activeRequest.options, open: state.open, onOpenChange: handleOpenChange, onConfirm: handlePickerConfirm, onCancel: handleCancel, onDismissComplete: () => {
|
|
238
|
+
if (activeRequestId)
|
|
239
|
+
handleDismissComplete(activeRequestId);
|
|
240
|
+
} }, activeRequest.id)), (activeRequest === null || activeRequest === void 0 ? void 0 : activeRequest.type) === 'date' && ((0, jsx_runtime_1.jsx)(DatePicker_1.DatePicker, { ...activeRequest.options, open: state.open, onOpenChange: handleOpenChange, onConfirm: handleDateConfirm, onCancel: handleCancel, onDismissComplete: () => {
|
|
241
|
+
if (activeRequestId)
|
|
242
|
+
handleDismissComplete(activeRequestId);
|
|
243
|
+
} }, activeRequest.id)), (activeRequest === null || activeRequest === void 0 ? void 0 : activeRequest.type) === 'address' && ((0, jsx_runtime_1.jsx)(AddressCascader_1.AddressCascader, { ...activeRequest.options, open: state.open, onOpenChange: handleOpenChange, onConfirm: handleAddressConfirm, onCancel: handleCancel, onDismissComplete: () => {
|
|
244
|
+
if (activeRequestId)
|
|
245
|
+
handleDismissComplete(activeRequestId);
|
|
246
|
+
} }, activeRequest.id)), (activeRequest === null || activeRequest === void 0 ? void 0 : activeRequest.type) === 'betweenTime' && ((0, jsx_runtime_1.jsx)(BetweenTime_1.BetweenTime, { ...activeRequest.options, open: state.open, onOpenChange: handleOpenChange, onConfirm: handleBetweenTimeConfirm, onCancel: handleCancel, onDismissComplete: () => {
|
|
247
|
+
if (activeRequestId)
|
|
248
|
+
handleDismissComplete(activeRequestId);
|
|
249
|
+
} }, activeRequest.id))] }));
|
|
250
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { Theme, ThemeOverride } from './types';
|
|
3
|
+
type ThemeContextValue = {
|
|
4
|
+
theme: Theme;
|
|
5
|
+
getTheme: () => Theme;
|
|
6
|
+
};
|
|
7
|
+
export declare const ThemeContext: React.Context<ThemeContextValue>;
|
|
8
|
+
export type ThemeProviderProps = {
|
|
9
|
+
baseTheme?: Theme;
|
|
10
|
+
theme?: ThemeOverride;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare function ThemeProvider({ baseTheme, theme, children }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIpD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,KAAK,CAAC;CACvB,CAAC;AAMF,eAAO,MAAM,YAAY,kCAGvB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAG/B,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAW/E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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.ThemeContext = void 0;
|
|
37
|
+
exports.ThemeProvider = ThemeProvider;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const mergeTheme_1 = require("./mergeTheme");
|
|
41
|
+
const config_1 = require("../config");
|
|
42
|
+
// ThemeContext 用于在组件树中向下传递主题对象。
|
|
43
|
+
// 这里提供默认值(getDefaultTheme),这样即使应用侧没有包 ThemeProvider:
|
|
44
|
+
// - useTheme() 也不会返回 undefined
|
|
45
|
+
// - 组件仍能正常渲染(使用组件库默认主题 + 全局配置覆盖)
|
|
46
|
+
exports.ThemeContext = React.createContext({
|
|
47
|
+
theme: (0, config_1.getDefaultTheme)(),
|
|
48
|
+
getTheme: config_1.getDefaultTheme,
|
|
49
|
+
});
|
|
50
|
+
function ThemeProvider({ baseTheme, theme, children }) {
|
|
51
|
+
const value = React.useMemo(() => {
|
|
52
|
+
// 优先级(低 -> 高):
|
|
53
|
+
// 1) defaultTheme
|
|
54
|
+
// 2) configureComponentLib({ theme })
|
|
55
|
+
// 3) ThemeProvider({ baseTheme })
|
|
56
|
+
// 4) ThemeProvider({ theme })
|
|
57
|
+
const finalTheme = (0, mergeTheme_1.mergeTheme)(baseTheme !== null && baseTheme !== void 0 ? baseTheme : (0, config_1.getDefaultTheme)(), theme);
|
|
58
|
+
return { theme: finalTheme, getTheme: () => finalTheme };
|
|
59
|
+
}, [baseTheme, theme]);
|
|
60
|
+
return (0, jsx_runtime_1.jsx)(exports.ThemeContext.Provider, { value: value, children: children });
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,eAAO,MAAM,YAAY,EAAE,KAwB1B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTheme = void 0;
|
|
4
|
+
// defaultTheme 是组件库的默认主题:
|
|
5
|
+
// - 当应用侧不包 ThemeProvider 时,组件会使用这套默认颜色
|
|
6
|
+
// - 当应用侧包了 ThemeProvider 且只覆盖部分字段时,未覆盖的字段也会从这里补齐
|
|
7
|
+
exports.defaultTheme = {
|
|
8
|
+
colors: {
|
|
9
|
+
// 默认主色(偏深色),适合作为按钮等强调元素背景
|
|
10
|
+
primary: '#111827',
|
|
11
|
+
// 主色上的文字/图标颜色
|
|
12
|
+
onPrimary: '#FFFFFF',
|
|
13
|
+
// 默认次要色(浅背景)
|
|
14
|
+
secondary: '#EEF2FF',
|
|
15
|
+
// 次要色上的文字/图标颜色
|
|
16
|
+
onSecondary: '#111827',
|
|
17
|
+
// 默认表面背景(卡片、控件背景)
|
|
18
|
+
surface: '#FFFFFF',
|
|
19
|
+
// 表面上的文字/图标颜色
|
|
20
|
+
onSurface: '#111827',
|
|
21
|
+
// 默认边框色
|
|
22
|
+
border: '#d9d9d9',
|
|
23
|
+
// 弱化文字色
|
|
24
|
+
muted: '#6B7280',
|
|
25
|
+
// 禁用态颜色(这里复用 muted)
|
|
26
|
+
disabled: '#6B7280',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeTheme.d.ts","sourceRoot":"","sources":["../../src/theme/mergeTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKpD,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,CAUvE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeTheme = mergeTheme;
|
|
4
|
+
// mergeTheme 用于实现“部分覆盖”体验:
|
|
5
|
+
// - 业务侧只改 colors.primary 时,只需传 { colors: { primary } }
|
|
6
|
+
// - 未覆盖字段回落到 base
|
|
7
|
+
function mergeTheme(base, override) {
|
|
8
|
+
var _a;
|
|
9
|
+
if (!override)
|
|
10
|
+
return base;
|
|
11
|
+
return {
|
|
12
|
+
...base,
|
|
13
|
+
...override,
|
|
14
|
+
colors: {
|
|
15
|
+
...base.colors,
|
|
16
|
+
...((_a = override.colors) !== null && _a !== void 0 ? _a : {}),
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type Theme = {
|
|
2
|
+
colors: {
|
|
3
|
+
primary: string;
|
|
4
|
+
onPrimary: string;
|
|
5
|
+
secondary: string;
|
|
6
|
+
onSecondary: string;
|
|
7
|
+
surface: string;
|
|
8
|
+
onSurface: string;
|
|
9
|
+
border: string;
|
|
10
|
+
muted: string;
|
|
11
|
+
disabled: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export type ThemeOverride = Partial<Theme> & {
|
|
15
|
+
colors?: Partial<Theme['colors']>;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE;QAEN,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,MAAM,CAAC;QAGlB,SAAS,EAAE,MAAM,CAAC;QAElB,WAAW,EAAE,MAAM,CAAC;QAGpB,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,MAAM,CAAC;QAGlB,MAAM,EAAE,MAAM,CAAC;QAGf,KAAK,EAAE,MAAM,CAAC;QAGd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAKF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/theme/useTheme.ts"],"names":[],"mappings":"AAMA,wBAAgB,QAAQ,4BAGvB"}
|
|
@@ -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.useTheme = useTheme;
|
|
37
|
+
const React = __importStar(require("react"));
|
|
38
|
+
const ThemeProvider_1 = require("./ThemeProvider");
|
|
39
|
+
// useTheme 用于在组件内部读取当前主题
|
|
40
|
+
// - 如果应用侧包了 ThemeProvider:返回合并后的主题
|
|
41
|
+
// - 如果没有包 ThemeProvider:返回 defaultTheme(由 ThemeContext 默认值提供)
|
|
42
|
+
function useTheme() {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const ctx = React.useContext(ThemeProvider_1.ThemeContext);
|
|
45
|
+
return (_b = (_a = ctx.getTheme) === null || _a === void 0 ? void 0 : _a.call(ctx)) !== null && _b !== void 0 ? _b : ctx.theme;
|
|
46
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
import { Pressable, View } from 'react-native';
|
|
4
|
+
import { ReduceMotion } from 'react-native-reanimated';
|
|
5
|
+
import type { EasingFunction } from 'react-native-reanimated';
|
|
6
|
+
export type AccordionType = 'single' | 'multiple';
|
|
7
|
+
export type AccordionValue = string | number;
|
|
8
|
+
export type AccordionVariant = 'card' | 'filled' | 'plain';
|
|
9
|
+
export type AccordionTone = 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
10
|
+
export type AccordionSize = 'sm' | 'md' | 'lg';
|
|
11
|
+
export type AccordionMountStrategy = 'eager' | 'lazy' | 'unmountOnExit';
|
|
12
|
+
export type AccordionPressEffect = 'none' | 'opacity' | 'scale' | 'scale-opacity';
|
|
13
|
+
export type AccordionAnimationConfig = {
|
|
14
|
+
duration?: number;
|
|
15
|
+
easing?: EasingFunction;
|
|
16
|
+
reduceMotion?: ReduceMotion;
|
|
17
|
+
};
|
|
18
|
+
export type AccordionItemState<T extends AccordionValue = AccordionValue> = {
|
|
19
|
+
open: boolean;
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
value: T;
|
|
22
|
+
toggle: () => void;
|
|
23
|
+
setOpen: (open: boolean) => void;
|
|
24
|
+
};
|
|
25
|
+
export type AccordionSlot<T extends AccordionValue = AccordionValue> = React.ReactNode | ((state: AccordionItemState<T>) => React.ReactNode);
|
|
26
|
+
export type AccordionTriggerRenderState<T extends AccordionValue = AccordionValue> = AccordionItemState<T>;
|
|
27
|
+
type AccordionBaseProps = Omit<React.ComponentPropsWithoutRef<typeof View>, 'children' | 'style'> & {
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
variant?: AccordionVariant;
|
|
31
|
+
tone?: AccordionTone;
|
|
32
|
+
size?: AccordionSize;
|
|
33
|
+
color?: string;
|
|
34
|
+
animation?: AccordionAnimationConfig | false;
|
|
35
|
+
mountStrategy?: AccordionMountStrategy;
|
|
36
|
+
itemGap?: number;
|
|
37
|
+
itemStyle?: StyleProp<ViewStyle>;
|
|
38
|
+
style?: StyleProp<ViewStyle>;
|
|
39
|
+
};
|
|
40
|
+
export type AccordionSingleProps<T extends AccordionValue = AccordionValue> = AccordionBaseProps & {
|
|
41
|
+
type?: 'single';
|
|
42
|
+
collapsible?: boolean;
|
|
43
|
+
value?: T | null;
|
|
44
|
+
defaultValue?: T | null;
|
|
45
|
+
onChange?: (value: T | null) => void;
|
|
46
|
+
};
|
|
47
|
+
export type AccordionMultipleProps<T extends AccordionValue = AccordionValue> = AccordionBaseProps & {
|
|
48
|
+
type: 'multiple';
|
|
49
|
+
value?: readonly T[];
|
|
50
|
+
defaultValue?: readonly T[];
|
|
51
|
+
onChange?: (value: T[]) => void;
|
|
52
|
+
};
|
|
53
|
+
export type AccordionProps<T extends AccordionValue = AccordionValue> = AccordionSingleProps<T> | AccordionMultipleProps<T>;
|
|
54
|
+
export declare function Accordion<T extends AccordionValue = AccordionValue>(props: AccordionProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export type AccordionItemProps<T extends AccordionValue = AccordionValue> = Omit<React.ComponentPropsWithoutRef<typeof View>, 'children' | 'style'> & {
|
|
56
|
+
value: T;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
style?: StyleProp<ViewStyle>;
|
|
59
|
+
children: React.ReactNode;
|
|
60
|
+
};
|
|
61
|
+
export declare function AccordionItem<T extends AccordionValue = AccordionValue>({ value, disabled, style, children, accessibilityState, ...viewProps }: AccordionItemProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
type NativeTriggerProps = Omit<React.ComponentPropsWithoutRef<typeof Pressable>, 'children' | 'disabled' | 'style'>;
|
|
63
|
+
export type AccordionTriggerProps<T extends AccordionValue = AccordionValue> = NativeTriggerProps & {
|
|
64
|
+
children?: AccordionSlot<T>;
|
|
65
|
+
title?: AccordionSlot<T>;
|
|
66
|
+
description?: AccordionSlot<T>;
|
|
67
|
+
leading?: AccordionSlot<T>;
|
|
68
|
+
trailing?: AccordionSlot<T>;
|
|
69
|
+
indicator?: AccordionSlot<T> | false;
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
pressEffect?: AccordionPressEffect;
|
|
72
|
+
titleNumberOfLines?: number;
|
|
73
|
+
descriptionNumberOfLines?: number;
|
|
74
|
+
style?: React.ComponentPropsWithoutRef<typeof Pressable>['style'];
|
|
75
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
76
|
+
textContainerStyle?: StyleProp<ViewStyle>;
|
|
77
|
+
titleStyle?: StyleProp<TextStyle>;
|
|
78
|
+
descriptionStyle?: StyleProp<TextStyle>;
|
|
79
|
+
};
|
|
80
|
+
export declare function AccordionTrigger<T extends AccordionValue = AccordionValue>({ children, title, description, leading, trailing, indicator, disabled: disabledProp, pressEffect, titleNumberOfLines, descriptionNumberOfLines, style, contentStyle, textContainerStyle, titleStyle, descriptionStyle, onPress, onPressIn, onPressOut, accessibilityRole, accessibilityState, nativeID, ...pressableProps }: AccordionTriggerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
export type AccordionContentProps = Omit<React.ComponentPropsWithoutRef<typeof View>, 'children' | 'style'> & {
|
|
82
|
+
children: React.ReactNode;
|
|
83
|
+
mountStrategy?: AccordionMountStrategy;
|
|
84
|
+
style?: StyleProp<ViewStyle>;
|
|
85
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
86
|
+
};
|
|
87
|
+
export declare function AccordionContent({ children, mountStrategy, style, containerStyle, nativeID, accessibilityElementsHidden, importantForAccessibility, onLayout, ...viewProps }: AccordionContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
88
|
+
export type AccordionIndicatorProps = {
|
|
89
|
+
children?: React.ReactNode;
|
|
90
|
+
style?: StyleProp<ViewStyle>;
|
|
91
|
+
color?: string;
|
|
92
|
+
size?: number;
|
|
93
|
+
strokeWidth?: number;
|
|
94
|
+
closedRotation?: number;
|
|
95
|
+
openRotation?: number;
|
|
96
|
+
};
|
|
97
|
+
export declare function AccordionIndicator({ children, style, color, size, strokeWidth, closedRotation, openRotation, }: AccordionIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Accordion/index.tsx"],"names":[],"mappings":"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"}
|