@xaui/native 0.2.8 → 0.9.1-alpha.1
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/dist/chunk-KFCORXWW.cjs +150 -0
- package/dist/chunk-M7P46XKI.cjs +100 -0
- package/dist/chunk-N357EQCZ.js +150 -0
- package/dist/chunk-NHPQQQ7P.cjs +734 -0
- package/dist/chunk-PBVPOX7D.js +734 -0
- package/dist/chunk-RBNCR5KB.js +100 -0
- package/dist/index.cjs +40 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +40 -0
- package/dist/system/index.cjs +7 -0
- package/dist/system/index.d.cts +83 -0
- package/dist/system/index.d.ts +83 -0
- package/dist/system/index.js +7 -0
- package/dist/theme/index.cjs +36 -0
- package/dist/theme/index.d.cts +539 -0
- package/dist/theme/index.d.ts +539 -0
- package/dist/theme/index.js +36 -0
- package/dist/theme.type-B3ODSLbB.d.cts +153 -0
- package/dist/theme.type-B3ODSLbB.d.ts +153 -0
- package/package.json +30 -248
- package/README.md +0 -178
- package/dist/alert/index.cjs +0 -340
- package/dist/alert/index.d.cts +0 -46
- package/dist/alert/index.d.ts +0 -46
- package/dist/alert/index.js +0 -340
- package/dist/app-bar/index.cjs +0 -148
- package/dist/app-bar/index.d.cts +0 -59
- package/dist/app-bar/index.d.ts +0 -59
- package/dist/app-bar/index.js +0 -148
- package/dist/autocomplete/index.cjs +0 -1122
- package/dist/autocomplete/index.d.cts +0 -88
- package/dist/autocomplete/index.d.ts +0 -88
- package/dist/autocomplete/index.js +0 -1122
- package/dist/avatar/index.cjs +0 -281
- package/dist/avatar/index.d.cts +0 -123
- package/dist/avatar/index.d.ts +0 -123
- package/dist/avatar/index.js +0 -281
- package/dist/badge/index.cjs +0 -197
- package/dist/badge/index.d.cts +0 -94
- package/dist/badge/index.d.ts +0 -94
- package/dist/badge/index.js +0 -197
- package/dist/bottom-sheet/index.cjs +0 -9
- package/dist/bottom-sheet/index.d.cts +0 -84
- package/dist/bottom-sheet/index.d.ts +0 -84
- package/dist/bottom-sheet/index.js +0 -9
- package/dist/bottom-tab-bar/index.cjs +0 -497
- package/dist/bottom-tab-bar/index.d.cts +0 -211
- package/dist/bottom-tab-bar/index.d.ts +0 -211
- package/dist/bottom-tab-bar/index.js +0 -497
- package/dist/button/index.cjs +0 -392
- package/dist/button/index.d.cts +0 -174
- package/dist/button/index.d.ts +0 -174
- package/dist/button/index.js +0 -392
- package/dist/button.type-j1ZdkkSl.d.cts +0 -4
- package/dist/button.type-j1ZdkkSl.d.ts +0 -4
- package/dist/card/index.cjs +0 -338
- package/dist/card/index.d.cts +0 -191
- package/dist/card/index.d.ts +0 -191
- package/dist/card/index.js +0 -338
- package/dist/carousel/index.cjs +0 -381
- package/dist/carousel/index.d.cts +0 -147
- package/dist/carousel/index.d.ts +0 -147
- package/dist/carousel/index.js +0 -381
- package/dist/chart/index.cjs +0 -1026
- package/dist/chart/index.d.cts +0 -218
- package/dist/chart/index.d.ts +0 -218
- package/dist/chart/index.js +0 -1026
- package/dist/checkbox/index.cjs +0 -443
- package/dist/checkbox/index.d.cts +0 -73
- package/dist/checkbox/index.d.ts +0 -73
- package/dist/checkbox/index.js +0 -443
- package/dist/chip/index.cjs +0 -503
- package/dist/chip/index.d.cts +0 -195
- package/dist/chip/index.d.ts +0 -195
- package/dist/chip/index.js +0 -503
- package/dist/chunk-4JFWQ5XT.js +0 -368
- package/dist/chunk-56RPWZD2.cjs +0 -9
- package/dist/chunk-7UFBLUMV.cjs +0 -136
- package/dist/chunk-A45TVXU5.js +0 -337
- package/dist/chunk-BYWUAPC4.cjs +0 -368
- package/dist/chunk-DECMUMCI.js +0 -0
- package/dist/chunk-DHSTKO3K.cjs +0 -19
- package/dist/chunk-DJ4Q37UT.cjs +0 -75
- package/dist/chunk-EUQDGTST.cjs +0 -1
- package/dist/chunk-GBHQCAKW.js +0 -19
- package/dist/chunk-RBSA4NH4.js +0 -136
- package/dist/chunk-SHBDANQN.js +0 -9
- package/dist/chunk-UGEINZM7.cjs +0 -290
- package/dist/chunk-UU4HHBDN.js +0 -290
- package/dist/chunk-VSZEXOUN.js +0 -384
- package/dist/chunk-YIEUN3G5.cjs +0 -384
- package/dist/chunk-ZH6ZSV2Q.cjs +0 -337
- package/dist/chunk-ZY7IUTAT.js +0 -75
- package/dist/color-picker/index.cjs +0 -457
- package/dist/color-picker/index.d.cts +0 -124
- package/dist/color-picker/index.d.ts +0 -124
- package/dist/color-picker/index.js +0 -457
- package/dist/core/index.cjs +0 -24
- package/dist/core/index.d.cts +0 -28
- package/dist/core/index.d.ts +0 -28
- package/dist/core/index.js +0 -24
- package/dist/datepicker/index.cjs +0 -1625
- package/dist/datepicker/index.d.cts +0 -45
- package/dist/datepicker/index.d.ts +0 -45
- package/dist/datepicker/index.js +0 -1625
- package/dist/dialog/index.cjs +0 -372
- package/dist/dialog/index.d.cts +0 -151
- package/dist/dialog/index.d.ts +0 -151
- package/dist/dialog/index.js +0 -372
- package/dist/divider/index.cjs +0 -8
- package/dist/divider/index.d.cts +0 -30
- package/dist/divider/index.d.ts +0 -30
- package/dist/divider/index.js +0 -8
- package/dist/drawer/index.cjs +0 -237
- package/dist/drawer/index.d.cts +0 -58
- package/dist/drawer/index.d.ts +0 -58
- package/dist/drawer/index.js +0 -237
- package/dist/expansion-panel/index.cjs +0 -441
- package/dist/expansion-panel/index.d.cts +0 -153
- package/dist/expansion-panel/index.d.ts +0 -153
- package/dist/expansion-panel/index.js +0 -441
- package/dist/fab/index.cjs +0 -9
- package/dist/fab/index.d.cts +0 -10
- package/dist/fab/index.d.ts +0 -10
- package/dist/fab/index.js +0 -9
- package/dist/fab-menu/index.cjs +0 -330
- package/dist/fab-menu/index.d.cts +0 -125
- package/dist/fab-menu/index.d.ts +0 -125
- package/dist/fab-menu/index.js +0 -330
- package/dist/fab.type-CkUHmXU_.d.ts +0 -86
- package/dist/fab.type-DN0vtAh6.d.cts +0 -86
- package/dist/feature-discovery/index.cjs +0 -464
- package/dist/feature-discovery/index.d.cts +0 -82
- package/dist/feature-discovery/index.d.ts +0 -82
- package/dist/feature-discovery/index.js +0 -464
- package/dist/indicator/index.cjs +0 -8
- package/dist/indicator/index.d.cts +0 -47
- package/dist/indicator/index.d.ts +0 -47
- package/dist/indicator/index.js +0 -8
- package/dist/input/index.cjs +0 -1462
- package/dist/input/index.d.cts +0 -522
- package/dist/input/index.d.ts +0 -522
- package/dist/input/index.js +0 -1462
- package/dist/input-trigger/index.cjs +0 -197
- package/dist/input-trigger/index.d.cts +0 -11
- package/dist/input-trigger/index.d.ts +0 -11
- package/dist/input-trigger/index.js +0 -197
- package/dist/input-trigger.type-Ba4bM3Qp.d.cts +0 -180
- package/dist/input-trigger.type-Ba4bM3Qp.d.ts +0 -180
- package/dist/list/index.cjs +0 -395
- package/dist/list/index.d.cts +0 -188
- package/dist/list/index.d.ts +0 -188
- package/dist/list/index.js +0 -395
- package/dist/menu/index.cjs +0 -316
- package/dist/menu/index.d.cts +0 -115
- package/dist/menu/index.d.ts +0 -115
- package/dist/menu/index.js +0 -316
- package/dist/menubox/index.cjs +0 -297
- package/dist/menubox/index.d.cts +0 -98
- package/dist/menubox/index.d.ts +0 -98
- package/dist/menubox/index.js +0 -297
- package/dist/pager/index.cjs +0 -205
- package/dist/pager/index.d.cts +0 -93
- package/dist/pager/index.d.ts +0 -93
- package/dist/pager/index.js +0 -205
- package/dist/picker/index.cjs +0 -244
- package/dist/picker/index.d.cts +0 -121
- package/dist/picker/index.d.ts +0 -121
- package/dist/picker/index.js +0 -244
- package/dist/progress/index.cjs +0 -219
- package/dist/progress/index.d.cts +0 -47
- package/dist/progress/index.d.ts +0 -47
- package/dist/progress/index.js +0 -219
- package/dist/radio/index.cjs +0 -465
- package/dist/radio/index.d.cts +0 -145
- package/dist/radio/index.d.ts +0 -145
- package/dist/radio/index.js +0 -465
- package/dist/refresh-control/index.cjs +0 -45
- package/dist/refresh-control/index.d.cts +0 -55
- package/dist/refresh-control/index.d.ts +0 -55
- package/dist/refresh-control/index.js +0 -45
- package/dist/segment-button/index.cjs +0 -405
- package/dist/segment-button/index.d.cts +0 -141
- package/dist/segment-button/index.d.ts +0 -141
- package/dist/segment-button/index.js +0 -405
- package/dist/select/index.cjs +0 -878
- package/dist/select/index.d.cts +0 -192
- package/dist/select/index.d.ts +0 -192
- package/dist/select/index.js +0 -878
- package/dist/skeleton/index.cjs +0 -89
- package/dist/skeleton/index.d.cts +0 -45
- package/dist/skeleton/index.d.ts +0 -45
- package/dist/skeleton/index.js +0 -89
- package/dist/slider/index.cjs +0 -576
- package/dist/slider/index.d.cts +0 -171
- package/dist/slider/index.d.ts +0 -171
- package/dist/slider/index.js +0 -576
- package/dist/snackbar/index.cjs +0 -436
- package/dist/snackbar/index.d.cts +0 -174
- package/dist/snackbar/index.d.ts +0 -174
- package/dist/snackbar/index.js +0 -436
- package/dist/snippet/index.cjs +0 -314
- package/dist/snippet/index.d.cts +0 -95
- package/dist/snippet/index.d.ts +0 -95
- package/dist/snippet/index.js +0 -314
- package/dist/stepper/index.cjs +0 -550
- package/dist/stepper/index.d.cts +0 -137
- package/dist/stepper/index.d.ts +0 -137
- package/dist/stepper/index.js +0 -550
- package/dist/switch/index.cjs +0 -358
- package/dist/switch/index.d.cts +0 -28
- package/dist/switch/index.d.ts +0 -28
- package/dist/switch/index.js +0 -358
- package/dist/tabs/index.cjs +0 -440
- package/dist/tabs/index.d.cts +0 -180
- package/dist/tabs/index.d.ts +0 -180
- package/dist/tabs/index.js +0 -440
- package/dist/timepicker/index.cjs +0 -823
- package/dist/timepicker/index.d.cts +0 -215
- package/dist/timepicker/index.d.ts +0 -215
- package/dist/timepicker/index.js +0 -823
- package/dist/toolbar/index.cjs +0 -333
- package/dist/toolbar/index.d.cts +0 -100
- package/dist/toolbar/index.d.ts +0 -100
- package/dist/toolbar/index.js +0 -333
- package/dist/typography/index.cjs +0 -238
- package/dist/typography/index.d.cts +0 -113
- package/dist/typography/index.d.ts +0 -113
- package/dist/typography/index.js +0 -238
- package/dist/view/index.cjs +0 -1361
- package/dist/view/index.d.cts +0 -833
- package/dist/view/index.d.ts +0 -833
- package/dist/view/index.js +0 -1361
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import { ThemeColor, Radius } from '@xaui/core/types';
|
|
4
|
-
|
|
5
|
-
type InputTriggerVariant = 'colored' | 'light' | 'bordered' | 'underlined';
|
|
6
|
-
type InputTriggerSize = 'sm' | 'md' | 'lg';
|
|
7
|
-
type InputTriggerLabelPlacement = 'outside' | 'inside';
|
|
8
|
-
type InputTriggerCustomAppearance = {
|
|
9
|
-
container?: StyleProp<ViewStyle>;
|
|
10
|
-
inputContainer?: StyleProp<ViewStyle>;
|
|
11
|
-
inputWrapper?: StyleProp<ViewStyle>;
|
|
12
|
-
label?: StyleProp<TextStyle>;
|
|
13
|
-
content?: StyleProp<TextStyle>;
|
|
14
|
-
helperText?: StyleProp<TextStyle>;
|
|
15
|
-
};
|
|
16
|
-
type InputTriggerProps = {
|
|
17
|
-
/**
|
|
18
|
-
* Value displayed inside the trigger (acts as placeholder when no value).
|
|
19
|
-
*/
|
|
20
|
-
value?: ReactNode;
|
|
21
|
-
/**
|
|
22
|
-
* Placeholder text shown when no value is set.
|
|
23
|
-
*/
|
|
24
|
-
placeholder?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Label displayed above or inside the trigger.
|
|
27
|
-
*/
|
|
28
|
-
label?: ReactNode;
|
|
29
|
-
/**
|
|
30
|
-
* Position of the label relative to the trigger.
|
|
31
|
-
* @default 'outside'
|
|
32
|
-
*/
|
|
33
|
-
labelPlacement?: InputTriggerLabelPlacement;
|
|
34
|
-
/**
|
|
35
|
-
* Helper text displayed below the trigger.
|
|
36
|
-
*/
|
|
37
|
-
description?: ReactNode;
|
|
38
|
-
/**
|
|
39
|
-
* Error message displayed when isInvalid is true.
|
|
40
|
-
*/
|
|
41
|
-
errorMessage?: ReactNode;
|
|
42
|
-
/**
|
|
43
|
-
* Content rendered at the start of the trigger.
|
|
44
|
-
*/
|
|
45
|
-
startContent?: ReactNode;
|
|
46
|
-
/**
|
|
47
|
-
* Content rendered at the end of the trigger.
|
|
48
|
-
*/
|
|
49
|
-
endContent?: ReactNode;
|
|
50
|
-
/**
|
|
51
|
-
* Theme color for focus and active states.
|
|
52
|
-
* @default 'primary'
|
|
53
|
-
*/
|
|
54
|
-
themeColor?: ThemeColor;
|
|
55
|
-
/**
|
|
56
|
-
* Visual style variant.
|
|
57
|
-
* @default 'colored'
|
|
58
|
-
*/
|
|
59
|
-
variant?: InputTriggerVariant;
|
|
60
|
-
/**
|
|
61
|
-
* Size of the trigger.
|
|
62
|
-
* @default 'md'
|
|
63
|
-
*/
|
|
64
|
-
size?: InputTriggerSize;
|
|
65
|
-
/**
|
|
66
|
-
* Border radius of the trigger.
|
|
67
|
-
* @default 'md'
|
|
68
|
-
*/
|
|
69
|
-
radius?: Radius;
|
|
70
|
-
/**
|
|
71
|
-
* Whether the trigger is disabled.
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
isDisabled?: boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Whether the trigger is in an invalid state.
|
|
77
|
-
* @default false
|
|
78
|
-
*/
|
|
79
|
-
isInvalid?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Whether the component takes the full available width.
|
|
82
|
-
* @default true
|
|
83
|
-
*/
|
|
84
|
-
fullWidth?: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Custom style overrides for trigger parts.
|
|
87
|
-
*/
|
|
88
|
-
customAppearance?: InputTriggerCustomAppearance;
|
|
89
|
-
} & InputTriggerEvents;
|
|
90
|
-
type InputTriggerEvents = {
|
|
91
|
-
/**
|
|
92
|
-
* Called when the trigger is pressed.
|
|
93
|
-
*/
|
|
94
|
-
onPress?: () => void;
|
|
95
|
-
};
|
|
96
|
-
type FileInputTriggerCustomAppearance = {
|
|
97
|
-
container?: StyleProp<ViewStyle>;
|
|
98
|
-
inputContainer?: StyleProp<ViewStyle>;
|
|
99
|
-
inputWrapper?: StyleProp<ViewStyle>;
|
|
100
|
-
plusButton?: StyleProp<ViewStyle>;
|
|
101
|
-
label?: StyleProp<TextStyle>;
|
|
102
|
-
content?: StyleProp<TextStyle>;
|
|
103
|
-
helperText?: StyleProp<TextStyle>;
|
|
104
|
-
};
|
|
105
|
-
type FileInputTriggerProps = {
|
|
106
|
-
/**
|
|
107
|
-
* Value rendered in the center content area.
|
|
108
|
-
*/
|
|
109
|
-
value?: ReactNode;
|
|
110
|
-
/**
|
|
111
|
-
* Placeholder text shown when value is empty.
|
|
112
|
-
*/
|
|
113
|
-
placeholder?: string;
|
|
114
|
-
/**
|
|
115
|
-
* Label displayed above or inside the trigger.
|
|
116
|
-
*/
|
|
117
|
-
label?: ReactNode;
|
|
118
|
-
/**
|
|
119
|
-
* Position of the label relative to the trigger.
|
|
120
|
-
* @default 'outside'
|
|
121
|
-
*/
|
|
122
|
-
labelPlacement?: InputTriggerLabelPlacement;
|
|
123
|
-
/**
|
|
124
|
-
* Optional helper text below the trigger.
|
|
125
|
-
*/
|
|
126
|
-
description?: ReactNode;
|
|
127
|
-
/**
|
|
128
|
-
* Error text shown when isInvalid is true.
|
|
129
|
-
*/
|
|
130
|
-
errorMessage?: ReactNode;
|
|
131
|
-
/**
|
|
132
|
-
* Theme color for the trigger.
|
|
133
|
-
* @default 'primary'
|
|
134
|
-
*/
|
|
135
|
-
themeColor?: ThemeColor;
|
|
136
|
-
/**
|
|
137
|
-
* Visual style variant.
|
|
138
|
-
* @default 'colored'
|
|
139
|
-
*/
|
|
140
|
-
variant?: InputTriggerVariant;
|
|
141
|
-
/**
|
|
142
|
-
* Size of the trigger.
|
|
143
|
-
* @default 'md'
|
|
144
|
-
*/
|
|
145
|
-
size?: InputTriggerSize;
|
|
146
|
-
/**
|
|
147
|
-
* Border radius.
|
|
148
|
-
* @default 'md'
|
|
149
|
-
*/
|
|
150
|
-
radius?: Radius;
|
|
151
|
-
/**
|
|
152
|
-
* Whether the trigger is disabled.
|
|
153
|
-
* @default false
|
|
154
|
-
*/
|
|
155
|
-
isDisabled?: boolean;
|
|
156
|
-
/**
|
|
157
|
-
* Whether the trigger is invalid.
|
|
158
|
-
* @default false
|
|
159
|
-
*/
|
|
160
|
-
isInvalid?: boolean;
|
|
161
|
-
/**
|
|
162
|
-
* Whether the component takes full width.
|
|
163
|
-
* @default false
|
|
164
|
-
*/
|
|
165
|
-
fullWidth?: boolean;
|
|
166
|
-
/**
|
|
167
|
-
* Optional fully custom center content.
|
|
168
|
-
*/
|
|
169
|
-
centerContent?: ReactNode;
|
|
170
|
-
/**
|
|
171
|
-
* Content shown when a file is selected (for image/video preview).
|
|
172
|
-
*/
|
|
173
|
-
selectedContent?: ReactNode;
|
|
174
|
-
/**
|
|
175
|
-
* Custom style overrides for file trigger parts.
|
|
176
|
-
*/
|
|
177
|
-
customAppearance?: FileInputTriggerCustomAppearance;
|
|
178
|
-
} & InputTriggerEvents;
|
|
179
|
-
|
|
180
|
-
export type { FileInputTriggerProps as F, InputTriggerProps as I, InputTriggerEvents as a, InputTriggerVariant as b, InputTriggerSize as c, InputTriggerLabelPlacement as d, InputTriggerCustomAppearance as e, FileInputTriggerCustomAppearance as f };
|
package/dist/list/index.cjs
DELETED
|
@@ -1,395 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../chunk-56RPWZD2.cjs');
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk7UFBLUMVcjs = require('../chunk-7UFBLUMV.cjs');
|
|
5
|
-
|
|
6
|
-
// src/components/list/list.tsx
|
|
7
|
-
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
8
|
-
var _reactnative = require('react-native');
|
|
9
|
-
|
|
10
|
-
// src/components/list/list-context.ts
|
|
11
|
-
|
|
12
|
-
var ListContext = _react.createContext.call(void 0, null);
|
|
13
|
-
|
|
14
|
-
// src/components/list/list.style.ts
|
|
15
|
-
|
|
16
|
-
var styles = _reactnative.StyleSheet.create({
|
|
17
|
-
list: {
|
|
18
|
-
flex: 1
|
|
19
|
-
},
|
|
20
|
-
item: {
|
|
21
|
-
flexDirection: "row",
|
|
22
|
-
alignItems: "center",
|
|
23
|
-
gap: 12
|
|
24
|
-
},
|
|
25
|
-
content: {
|
|
26
|
-
flex: 1,
|
|
27
|
-
gap: 2
|
|
28
|
-
},
|
|
29
|
-
title: {
|
|
30
|
-
fontWeight: "500"
|
|
31
|
-
},
|
|
32
|
-
description: {
|
|
33
|
-
opacity: 0.7
|
|
34
|
-
},
|
|
35
|
-
disabled: {
|
|
36
|
-
opacity: 0.5
|
|
37
|
-
},
|
|
38
|
-
divider: {
|
|
39
|
-
height: 1,
|
|
40
|
-
marginLeft: 10
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// src/components/list/list-divider.tsx
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var ListDivider = () => {
|
|
48
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
49
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
50
|
-
_reactnative.View,
|
|
51
|
-
{
|
|
52
|
-
style: [styles.divider, { backgroundColor: theme.colors.foreground + "30" }]
|
|
53
|
-
}
|
|
54
|
-
);
|
|
55
|
-
};
|
|
56
|
-
var ListChildren = ({ children, showDivider }) => {
|
|
57
|
-
if (!showDivider) {
|
|
58
|
-
return /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, children);
|
|
59
|
-
}
|
|
60
|
-
const childArray = _react.Children.toArray(children);
|
|
61
|
-
return /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, childArray.map((child, index) => /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, { key: index }, child, index < childArray.length - 1 && /* @__PURE__ */ _react2.default.createElement(ListDivider, null))));
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/components/list/list.tsx
|
|
65
|
-
var List = ({
|
|
66
|
-
children,
|
|
67
|
-
selectionMode = "none",
|
|
68
|
-
selectedKeys: controlledSelectedKeys,
|
|
69
|
-
defaultSelectedKeys = [],
|
|
70
|
-
showDivider = false,
|
|
71
|
-
isPressable = true,
|
|
72
|
-
isSelectable = false,
|
|
73
|
-
themeColor = "primary",
|
|
74
|
-
size = "md",
|
|
75
|
-
onSelectionChange,
|
|
76
|
-
style
|
|
77
|
-
}) => {
|
|
78
|
-
const isControlled = controlledSelectedKeys !== void 0;
|
|
79
|
-
const [internalSelectedKeys, setInternalSelectedKeys] = _react.useState.call(void 0, defaultSelectedKeys);
|
|
80
|
-
const selectedKeys = isControlled ? controlledSelectedKeys : internalSelectedKeys;
|
|
81
|
-
const isSelected = _react.useCallback.call(void 0,
|
|
82
|
-
(key) => {
|
|
83
|
-
return selectedKeys.includes(key);
|
|
84
|
-
},
|
|
85
|
-
[selectedKeys]
|
|
86
|
-
);
|
|
87
|
-
const toggleSelection = _react.useCallback.call(void 0,
|
|
88
|
-
(key) => {
|
|
89
|
-
if (selectionMode === "none" || !isSelectable) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
let newSelectedKeys;
|
|
93
|
-
if (selectionMode === "single") {
|
|
94
|
-
newSelectedKeys = isSelected(key) ? [] : [key];
|
|
95
|
-
} else {
|
|
96
|
-
newSelectedKeys = isSelected(key) ? selectedKeys.filter((k) => k !== key) : [...selectedKeys, key];
|
|
97
|
-
}
|
|
98
|
-
if (!isControlled) {
|
|
99
|
-
setInternalSelectedKeys(newSelectedKeys);
|
|
100
|
-
}
|
|
101
|
-
_optionalChain([onSelectionChange, 'optionalCall', _ => _(newSelectedKeys)]);
|
|
102
|
-
},
|
|
103
|
-
[
|
|
104
|
-
selectionMode,
|
|
105
|
-
isSelectable,
|
|
106
|
-
isSelected,
|
|
107
|
-
selectedKeys,
|
|
108
|
-
isControlled,
|
|
109
|
-
onSelectionChange
|
|
110
|
-
]
|
|
111
|
-
);
|
|
112
|
-
const contextValue = _react.useMemo.call(void 0,
|
|
113
|
-
() => ({
|
|
114
|
-
selectionMode,
|
|
115
|
-
selectedKeys,
|
|
116
|
-
isPressable,
|
|
117
|
-
isSelectable,
|
|
118
|
-
themeColor,
|
|
119
|
-
size,
|
|
120
|
-
showDivider,
|
|
121
|
-
toggleSelection,
|
|
122
|
-
isSelected
|
|
123
|
-
}),
|
|
124
|
-
[
|
|
125
|
-
selectionMode,
|
|
126
|
-
selectedKeys,
|
|
127
|
-
isPressable,
|
|
128
|
-
isSelectable,
|
|
129
|
-
themeColor,
|
|
130
|
-
size,
|
|
131
|
-
showDivider,
|
|
132
|
-
toggleSelection,
|
|
133
|
-
isSelected
|
|
134
|
-
]
|
|
135
|
-
);
|
|
136
|
-
return /* @__PURE__ */ _react2.default.createElement(ListContext.Provider, { value: contextValue }, /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: [styles.list, style] }, /* @__PURE__ */ _react2.default.createElement(ListChildren, { showDivider }, children)));
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
// src/components/list/list-item.tsx
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
// src/components/list/list.hook.ts
|
|
144
|
-
|
|
145
|
-
var useListItemSizeStyles = (size) => {
|
|
146
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
147
|
-
return _react.useMemo.call(void 0, () => {
|
|
148
|
-
const sizes = {
|
|
149
|
-
xs: {
|
|
150
|
-
paddingVertical: theme.spacing.sm,
|
|
151
|
-
paddingHorizontal: theme.spacing.sm,
|
|
152
|
-
titleSize: theme.fontSizes.xs,
|
|
153
|
-
descriptionSize: theme.fontSizes.xs
|
|
154
|
-
},
|
|
155
|
-
sm: {
|
|
156
|
-
paddingVertical: theme.spacing.sm,
|
|
157
|
-
paddingHorizontal: theme.spacing.md,
|
|
158
|
-
titleSize: theme.fontSizes.sm,
|
|
159
|
-
descriptionSize: theme.fontSizes.xs
|
|
160
|
-
},
|
|
161
|
-
md: {
|
|
162
|
-
paddingVertical: theme.spacing.md,
|
|
163
|
-
paddingHorizontal: theme.spacing.md,
|
|
164
|
-
titleSize: theme.fontSizes.md,
|
|
165
|
-
descriptionSize: theme.fontSizes.sm
|
|
166
|
-
},
|
|
167
|
-
lg: {
|
|
168
|
-
paddingVertical: theme.spacing.lg,
|
|
169
|
-
paddingHorizontal: theme.spacing.lg,
|
|
170
|
-
titleSize: theme.fontSizes.lg,
|
|
171
|
-
descriptionSize: theme.fontSizes.md
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
return sizes[size];
|
|
175
|
-
}, [size, theme]);
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
// src/components/list/list-item.tsx
|
|
179
|
-
var _core = require('@xaui/core');
|
|
180
|
-
var ListItem = ({
|
|
181
|
-
itemKey,
|
|
182
|
-
title,
|
|
183
|
-
description,
|
|
184
|
-
startContent,
|
|
185
|
-
endContent,
|
|
186
|
-
isDisabled = false,
|
|
187
|
-
isSelected: propIsSelected,
|
|
188
|
-
customAppearance,
|
|
189
|
-
onPress
|
|
190
|
-
}) => {
|
|
191
|
-
const context = _react.useContext.call(void 0, ListContext);
|
|
192
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
193
|
-
const selectionMode = _nullishCoalesce(_optionalChain([context, 'optionalAccess', _2 => _2.selectionMode]), () => ( "none"));
|
|
194
|
-
const isPressable = _nullishCoalesce(_optionalChain([context, 'optionalAccess', _3 => _3.isPressable]), () => ( true));
|
|
195
|
-
const isSelectable = _nullishCoalesce(_optionalChain([context, 'optionalAccess', _4 => _4.isSelectable]), () => ( false));
|
|
196
|
-
const themeColor = _nullishCoalesce(_optionalChain([context, 'optionalAccess', _5 => _5.themeColor]), () => ( "primary"));
|
|
197
|
-
const size = _nullishCoalesce(_optionalChain([context, 'optionalAccess', _6 => _6.size]), () => ( "md"));
|
|
198
|
-
const isSelected = _nullishCoalesce(propIsSelected, () => ( (context ? context.isSelected(itemKey) : false)));
|
|
199
|
-
const sizeStyles = useListItemSizeStyles(size);
|
|
200
|
-
const safeThemeColor = _core.getSafeThemeColor.call(void 0, themeColor);
|
|
201
|
-
const colorScheme = theme.colors[safeThemeColor];
|
|
202
|
-
const backgroundColor = isSelected ? colorScheme.container : "transparent";
|
|
203
|
-
const titleColor = isDisabled ? theme.colors.foreground + "50" : theme.colors.foreground;
|
|
204
|
-
const descriptionColor = isDisabled ? theme.colors.foreground + "50" : theme.colors.foreground + "99";
|
|
205
|
-
const handlePress = () => {
|
|
206
|
-
if (isDisabled) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
if (isSelectable && selectionMode !== "none") {
|
|
210
|
-
_optionalChain([context, 'optionalAccess', _7 => _7.toggleSelection, 'call', _8 => _8(itemKey)]);
|
|
211
|
-
}
|
|
212
|
-
_optionalChain([onPress, 'optionalCall', _9 => _9({})]);
|
|
213
|
-
};
|
|
214
|
-
const renderTitle = () => {
|
|
215
|
-
if (typeof title === "string" || typeof title === "number") {
|
|
216
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
217
|
-
_reactnative.Text,
|
|
218
|
-
{
|
|
219
|
-
style: [
|
|
220
|
-
styles.title,
|
|
221
|
-
{ fontSize: sizeStyles.titleSize, color: titleColor },
|
|
222
|
-
_optionalChain([customAppearance, 'optionalAccess', _10 => _10.title])
|
|
223
|
-
],
|
|
224
|
-
numberOfLines: 1
|
|
225
|
-
},
|
|
226
|
-
title
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
return title;
|
|
230
|
-
};
|
|
231
|
-
const renderDescription = () => {
|
|
232
|
-
if (!description) return null;
|
|
233
|
-
if (typeof description === "string" || typeof description === "number") {
|
|
234
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
235
|
-
_reactnative.Text,
|
|
236
|
-
{
|
|
237
|
-
style: [
|
|
238
|
-
styles.description,
|
|
239
|
-
{ fontSize: sizeStyles.descriptionSize, color: descriptionColor },
|
|
240
|
-
_optionalChain([customAppearance, 'optionalAccess', _11 => _11.description])
|
|
241
|
-
],
|
|
242
|
-
numberOfLines: 2
|
|
243
|
-
},
|
|
244
|
-
description
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
return description;
|
|
248
|
-
};
|
|
249
|
-
const content = /* @__PURE__ */ _react2.default.createElement(
|
|
250
|
-
_reactnative.View,
|
|
251
|
-
{
|
|
252
|
-
style: [
|
|
253
|
-
styles.item,
|
|
254
|
-
{
|
|
255
|
-
paddingVertical: sizeStyles.paddingVertical,
|
|
256
|
-
paddingHorizontal: sizeStyles.paddingHorizontal,
|
|
257
|
-
backgroundColor
|
|
258
|
-
},
|
|
259
|
-
isDisabled && styles.disabled,
|
|
260
|
-
_optionalChain([customAppearance, 'optionalAccess', _12 => _12.container])
|
|
261
|
-
]
|
|
262
|
-
},
|
|
263
|
-
startContent && /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: _optionalChain([customAppearance, 'optionalAccess', _13 => _13.content]) }, startContent),
|
|
264
|
-
/* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: [styles.content, _optionalChain([customAppearance, 'optionalAccess', _14 => _14.content])] }, renderTitle(), renderDescription()),
|
|
265
|
-
endContent && /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: _optionalChain([customAppearance, 'optionalAccess', _15 => _15.content]) }, endContent)
|
|
266
|
-
);
|
|
267
|
-
if (!isPressable) {
|
|
268
|
-
return content;
|
|
269
|
-
}
|
|
270
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
271
|
-
_reactnative.Pressable,
|
|
272
|
-
{
|
|
273
|
-
onPress: handlePress,
|
|
274
|
-
disabled: isDisabled,
|
|
275
|
-
style: ({ pressed }) => [
|
|
276
|
-
pressed && !isDisabled && {
|
|
277
|
-
backgroundColor: theme.colors.foreground + "10"
|
|
278
|
-
}
|
|
279
|
-
]
|
|
280
|
-
},
|
|
281
|
-
content
|
|
282
|
-
);
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
// src/components/list/list-builder.tsx
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
function ListBuilder({
|
|
289
|
-
data,
|
|
290
|
-
keyExtractor,
|
|
291
|
-
renderItem,
|
|
292
|
-
selectionMode = "none",
|
|
293
|
-
selectedKeys: controlledSelectedKeys,
|
|
294
|
-
defaultSelectedKeys = [],
|
|
295
|
-
showDivider = false,
|
|
296
|
-
isPressable = true,
|
|
297
|
-
isSelectable = false,
|
|
298
|
-
themeColor = "primary",
|
|
299
|
-
size = "md",
|
|
300
|
-
onSelectionChange,
|
|
301
|
-
style,
|
|
302
|
-
flatListProps
|
|
303
|
-
}) {
|
|
304
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
305
|
-
const isControlled = controlledSelectedKeys !== void 0;
|
|
306
|
-
const [internalSelectedKeys, setInternalSelectedKeys] = _react.useState.call(void 0, defaultSelectedKeys);
|
|
307
|
-
const selectedKeys = isControlled ? controlledSelectedKeys : internalSelectedKeys;
|
|
308
|
-
const isSelected = _react.useCallback.call(void 0,
|
|
309
|
-
(key) => {
|
|
310
|
-
return selectedKeys.includes(key);
|
|
311
|
-
},
|
|
312
|
-
[selectedKeys]
|
|
313
|
-
);
|
|
314
|
-
const toggleSelection = _react.useCallback.call(void 0,
|
|
315
|
-
(key) => {
|
|
316
|
-
if (selectionMode === "none" || !isSelectable) {
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
let newSelectedKeys;
|
|
320
|
-
if (selectionMode === "single") {
|
|
321
|
-
newSelectedKeys = isSelected(key) ? [] : [key];
|
|
322
|
-
} else {
|
|
323
|
-
newSelectedKeys = isSelected(key) ? selectedKeys.filter((k) => k !== key) : [...selectedKeys, key];
|
|
324
|
-
}
|
|
325
|
-
if (!isControlled) {
|
|
326
|
-
setInternalSelectedKeys(newSelectedKeys);
|
|
327
|
-
}
|
|
328
|
-
_optionalChain([onSelectionChange, 'optionalCall', _16 => _16(newSelectedKeys)]);
|
|
329
|
-
},
|
|
330
|
-
[
|
|
331
|
-
selectionMode,
|
|
332
|
-
isSelectable,
|
|
333
|
-
isSelected,
|
|
334
|
-
selectedKeys,
|
|
335
|
-
isControlled,
|
|
336
|
-
onSelectionChange
|
|
337
|
-
]
|
|
338
|
-
);
|
|
339
|
-
const contextValue = _react.useMemo.call(void 0,
|
|
340
|
-
() => ({
|
|
341
|
-
selectionMode,
|
|
342
|
-
selectedKeys,
|
|
343
|
-
isPressable,
|
|
344
|
-
isSelectable,
|
|
345
|
-
themeColor,
|
|
346
|
-
size,
|
|
347
|
-
showDivider,
|
|
348
|
-
toggleSelection,
|
|
349
|
-
isSelected
|
|
350
|
-
}),
|
|
351
|
-
[
|
|
352
|
-
selectionMode,
|
|
353
|
-
selectedKeys,
|
|
354
|
-
isPressable,
|
|
355
|
-
isSelectable,
|
|
356
|
-
themeColor,
|
|
357
|
-
size,
|
|
358
|
-
showDivider,
|
|
359
|
-
toggleSelection,
|
|
360
|
-
isSelected
|
|
361
|
-
]
|
|
362
|
-
);
|
|
363
|
-
const renderListItem = _react.useCallback.call(void 0,
|
|
364
|
-
(item, index) => {
|
|
365
|
-
const element = renderItem(item, index);
|
|
366
|
-
if (!showDivider || index === data.length - 1) {
|
|
367
|
-
return /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, { key: keyExtractor(item, index) }, element);
|
|
368
|
-
}
|
|
369
|
-
return /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { key: keyExtractor(item, index) }, element, /* @__PURE__ */ _react2.default.createElement(
|
|
370
|
-
_reactnative.View,
|
|
371
|
-
{
|
|
372
|
-
style: [
|
|
373
|
-
styles.divider,
|
|
374
|
-
{ backgroundColor: theme.colors.foreground + "15" }
|
|
375
|
-
]
|
|
376
|
-
}
|
|
377
|
-
));
|
|
378
|
-
},
|
|
379
|
-
[data.length, keyExtractor, renderItem, showDivider, theme.colors.foreground]
|
|
380
|
-
);
|
|
381
|
-
return /* @__PURE__ */ _react2.default.createElement(ListContext.Provider, { value: contextValue }, /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: [styles.list, style] }, /* @__PURE__ */ _react2.default.createElement(
|
|
382
|
-
_reactnative.FlatList,
|
|
383
|
-
{
|
|
384
|
-
data,
|
|
385
|
-
keyExtractor,
|
|
386
|
-
renderItem: ({ item, index }) => renderListItem(item, index),
|
|
387
|
-
...flatListProps
|
|
388
|
-
}
|
|
389
|
-
)));
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
exports.List = List; exports.ListBuilder = ListBuilder; exports.ListItem = ListItem;
|