@xaui/native 0.0.21 → 0.0.24

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 (113) hide show
  1. package/README.md +195 -2
  2. package/dist/alert/index.js +1 -2
  3. package/dist/app-bar/index.cjs +217 -0
  4. package/dist/app-bar/index.d.cts +52 -0
  5. package/dist/app-bar/index.d.ts +52 -0
  6. package/dist/app-bar/index.js +142 -0
  7. package/dist/autocomplete/index.js +48 -36
  8. package/dist/avatar/index.js +1 -2
  9. package/dist/badge/index.js +1 -2
  10. package/dist/bottom-sheet/index.js +1 -2
  11. package/dist/bottom-tab-bar/index.cjs +571 -0
  12. package/dist/bottom-tab-bar/index.d.cts +211 -0
  13. package/dist/bottom-tab-bar/index.d.ts +211 -0
  14. package/dist/bottom-tab-bar/index.js +497 -0
  15. package/dist/button/index.d.cts +102 -5
  16. package/dist/button/index.d.ts +102 -5
  17. package/dist/button/index.js +2 -3
  18. package/dist/button.type-j1ZdkkSl.d.cts +4 -0
  19. package/dist/button.type-j1ZdkkSl.d.ts +4 -0
  20. package/dist/card/index.cjs +2 -0
  21. package/dist/card/index.d.cts +6 -1
  22. package/dist/card/index.d.ts +6 -1
  23. package/dist/card/index.js +4 -2
  24. package/dist/carousel/index.js +1 -1
  25. package/dist/chart/index.cjs +1067 -0
  26. package/dist/chart/index.d.cts +218 -0
  27. package/dist/chart/index.d.ts +218 -0
  28. package/dist/chart/index.js +1026 -0
  29. package/dist/checkbox/index.js +1 -2
  30. package/dist/chip/index.js +1 -2
  31. package/dist/chunk-3XSXTM3G.js +661 -0
  32. package/dist/chunk-4KSZLONZ.js +79 -0
  33. package/dist/{chunk-DXXNBF5P.js → chunk-CZFDZPAS.js} +0 -5
  34. package/dist/{chunk-LTKYHG5V.js → chunk-GHCVNQET.js} +12 -5
  35. package/dist/chunk-I4V5Y5GD.js +76 -0
  36. package/dist/{chunk-F7WH4DMG.js → chunk-UI5L26KD.js} +1 -1
  37. package/dist/{chunk-LUBWRVI2.js → chunk-ULJSCNPE.js} +1 -1
  38. package/dist/chunk-URBEEDFX.js +79 -0
  39. package/dist/core/index.js +3 -5
  40. package/dist/datepicker/index.js +1 -2
  41. package/dist/divider/index.js +2 -3
  42. package/dist/drawer/index.cjs +310 -0
  43. package/dist/drawer/index.d.cts +58 -0
  44. package/dist/drawer/index.d.ts +58 -0
  45. package/dist/drawer/index.js +236 -0
  46. package/dist/{accordion → expansion-panel}/index.cjs +45 -45
  47. package/dist/{accordion → expansion-panel}/index.d.cts +30 -30
  48. package/dist/{accordion → expansion-panel}/index.d.ts +30 -30
  49. package/dist/{accordion → expansion-panel}/index.js +40 -41
  50. package/dist/fab/index.d.cts +3 -3
  51. package/dist/fab/index.d.ts +3 -3
  52. package/dist/fab/index.js +3 -4
  53. package/dist/fab-menu/index.d.cts +2 -2
  54. package/dist/fab-menu/index.d.ts +2 -2
  55. package/dist/fab-menu/index.js +3 -4
  56. package/dist/{fab.type-Ba0QMprb.d.ts → fab.type-CgIYqQlT.d.ts} +1 -1
  57. package/dist/{fab.type-U09H8B7D.d.cts → fab.type-l2vjG8-p.d.cts} +1 -1
  58. package/dist/feature-discovery/index.cjs +531 -0
  59. package/dist/feature-discovery/index.d.cts +82 -0
  60. package/dist/feature-discovery/index.d.ts +82 -0
  61. package/dist/feature-discovery/index.js +464 -0
  62. package/dist/indicator/index.js +2 -3
  63. package/dist/input/index.cjs +258 -164
  64. package/dist/input/index.d.cts +15 -1
  65. package/dist/input/index.d.ts +15 -1
  66. package/dist/input/index.js +219 -126
  67. package/dist/list/index.js +1 -2
  68. package/dist/menu/index.js +2 -2
  69. package/dist/menubox/index.cjs +369 -0
  70. package/dist/menubox/index.d.cts +98 -0
  71. package/dist/menubox/index.d.ts +98 -0
  72. package/dist/menubox/index.js +296 -0
  73. package/dist/pager/index.cjs +243 -0
  74. package/dist/pager/index.d.cts +93 -0
  75. package/dist/pager/index.d.ts +93 -0
  76. package/dist/pager/index.js +205 -0
  77. package/dist/progress/index.js +1 -2
  78. package/dist/radio/index.cjs +537 -0
  79. package/dist/radio/index.d.cts +145 -0
  80. package/dist/radio/index.d.ts +145 -0
  81. package/dist/radio/index.js +464 -0
  82. package/dist/segment-button/index.js +2 -2
  83. package/dist/select/index.js +22 -10
  84. package/dist/skeleton/index.js +2 -2
  85. package/dist/slider/index.cjs +655 -0
  86. package/dist/slider/index.d.cts +171 -0
  87. package/dist/slider/index.d.ts +171 -0
  88. package/dist/slider/index.js +575 -0
  89. package/dist/stepper/index.cjs +624 -0
  90. package/dist/stepper/index.d.cts +137 -0
  91. package/dist/stepper/index.d.ts +137 -0
  92. package/dist/stepper/index.js +549 -0
  93. package/dist/switch/index.js +1 -2
  94. package/dist/tabs/index.cjs +523 -0
  95. package/dist/tabs/index.d.cts +176 -0
  96. package/dist/tabs/index.d.ts +176 -0
  97. package/dist/tabs/index.js +438 -0
  98. package/dist/timepicker/index.cjs +1280 -0
  99. package/dist/timepicker/index.d.cts +215 -0
  100. package/dist/timepicker/index.d.ts +215 -0
  101. package/dist/timepicker/index.js +1181 -0
  102. package/dist/toolbar/index.cjs +395 -0
  103. package/dist/toolbar/index.d.cts +100 -0
  104. package/dist/toolbar/index.d.ts +100 -0
  105. package/dist/toolbar/index.js +325 -0
  106. package/dist/typography/index.js +1 -2
  107. package/dist/view/index.cjs +16 -2
  108. package/dist/view/index.js +16 -2
  109. package/package.json +73 -8
  110. package/dist/button.type-D8tzEBo7.d.ts +0 -104
  111. package/dist/button.type-ikaWzhIg.d.cts +0 -104
  112. package/dist/chunk-GBHQCAKW.js +0 -19
  113. package/dist/chunk-JEGEPGVU.js +0 -287
@@ -0,0 +1,215 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { StyleProp, ViewStyle, TextStyle } from 'react-native';
3
+ import { T as ThemeColor } from '../index-BOw6tbkc.cjs';
4
+
5
+ type TimeValue = {
6
+ /**
7
+ * Hours value (0-23 for 24-hour format, 1-12 for 12-hour format)
8
+ */
9
+ hours: number;
10
+ /**
11
+ * Minutes value (0-59)
12
+ */
13
+ minutes: number;
14
+ };
15
+ type TimePickerMode = 'hour' | 'minute';
16
+ type TimePeriod = 'AM' | 'PM';
17
+ type TimePickerProps = {
18
+ /**
19
+ * Current time value
20
+ */
21
+ value?: TimeValue;
22
+ /**
23
+ * Callback fired when time changes
24
+ */
25
+ onChange?: (time: TimeValue) => void;
26
+ /**
27
+ * Use 24-hour format. When false, shows AM/PM selector
28
+ * @default false
29
+ */
30
+ is24Hour?: boolean;
31
+ /**
32
+ * Theme color for selected elements
33
+ * @default 'primary'
34
+ */
35
+ themeColor?: ThemeColor;
36
+ /**
37
+ * Custom container style
38
+ */
39
+ style?: StyleProp<ViewStyle>;
40
+ /**
41
+ * Minimum selectable time
42
+ */
43
+ minTime?: TimeValue;
44
+ /**
45
+ * Maximum selectable time
46
+ */
47
+ maxTime?: TimeValue;
48
+ };
49
+ type TimePickerDialogProps = {
50
+ /**
51
+ * Whether the dialog is open
52
+ */
53
+ isOpen: boolean;
54
+ /**
55
+ * Callback fired when dialog should close
56
+ */
57
+ onClose: () => void;
58
+ /**
59
+ * Current time value
60
+ */
61
+ value?: TimeValue;
62
+ /**
63
+ * Callback fired when time changes during selection
64
+ */
65
+ onChange?: (time: TimeValue) => void;
66
+ /**
67
+ * Use 24-hour format. When false, shows AM/PM selector
68
+ * @default false
69
+ */
70
+ is24Hour?: boolean;
71
+ /**
72
+ * Theme color for selected elements
73
+ * @default 'primary'
74
+ */
75
+ themeColor?: ThemeColor;
76
+ /**
77
+ * Dialog title
78
+ * @default 'Select time'
79
+ */
80
+ title?: ReactNode;
81
+ /**
82
+ * Confirm button text
83
+ * @default 'OK'
84
+ */
85
+ confirmText?: string;
86
+ /**
87
+ * Cancel button text
88
+ * @default 'Cancel'
89
+ */
90
+ cancelText?: string;
91
+ /**
92
+ * Callback fired when confirm button is pressed
93
+ */
94
+ onConfirm?: (time: TimeValue) => void;
95
+ /**
96
+ * Callback fired when cancel button is pressed
97
+ */
98
+ onCancel?: () => void;
99
+ };
100
+ type TimePickerTriggerProps = {
101
+ /**
102
+ * Current time value shown in trigger.
103
+ */
104
+ value?: TimeValue;
105
+ /**
106
+ * Placeholder shown when no value is selected.
107
+ * @default 'Select time'
108
+ */
109
+ placeholder?: string;
110
+ /**
111
+ * Use 24-hour format for display.
112
+ * @default false
113
+ */
114
+ is24Hour?: boolean;
115
+ /**
116
+ * Theme color for visual accents.
117
+ * @default 'primary'
118
+ */
119
+ themeColor?: ThemeColor;
120
+ /**
121
+ * Disable interaction.
122
+ * @default false
123
+ */
124
+ isDisabled?: boolean;
125
+ /**
126
+ * Read-only state that blocks opening.
127
+ * @default false
128
+ */
129
+ isReadOnly?: boolean;
130
+ /**
131
+ * Show clear button when value exists.
132
+ * @default true
133
+ */
134
+ isClearable?: boolean;
135
+ /**
136
+ * Optional custom right icon.
137
+ */
138
+ icon?: ReactNode;
139
+ /**
140
+ * Custom trigger container style.
141
+ */
142
+ style?: StyleProp<ViewStyle>;
143
+ /**
144
+ * Custom trigger text style.
145
+ */
146
+ textStyle?: StyleProp<TextStyle>;
147
+ /**
148
+ * Press handler used to open dialog.
149
+ */
150
+ onPress: () => void;
151
+ /**
152
+ * Clear handler used when clear button is pressed.
153
+ */
154
+ onClear?: () => void;
155
+ };
156
+
157
+ declare const TimePicker: React.FC<TimePickerProps>;
158
+
159
+ declare const TimePickerDialog: React.FC<TimePickerDialogProps>;
160
+
161
+ declare const TimePickerTrigger: React.FC<TimePickerTriggerProps>;
162
+
163
+ /**
164
+ * Convert 24-hour time to 12-hour format with period
165
+ */
166
+ declare const to12HourFormat: (hours: number) => {
167
+ hours: number;
168
+ period: TimePeriod;
169
+ };
170
+ /**
171
+ * Convert 12-hour time with period to 24-hour format
172
+ */
173
+ declare const to24HourFormat: (hours: number, period: TimePeriod) => number;
174
+ /**
175
+ * Format time value to display string
176
+ */
177
+ declare const formatTimeValue: (time: TimeValue, is24Hour: boolean) => string;
178
+ /**
179
+ * Calculate angle for hour hand on clock face
180
+ */
181
+ declare const getHourAngle: (hour: number, is24Hour: boolean) => number;
182
+ /**
183
+ * Calculate angle for minute hand on clock face
184
+ */
185
+ declare const getMinuteAngle: (minute: number) => number;
186
+ /**
187
+ * Convert angle to hour value
188
+ */
189
+ declare const angleToHour: (angle: number, _is24Hour: boolean) => number;
190
+ /**
191
+ * Convert angle to minute value
192
+ */
193
+ declare const angleToMinute: (angle: number) => number;
194
+ /**
195
+ * Calculate angle from touch position on clock face
196
+ */
197
+ declare const calculateAngleFromPosition: (centerX: number, centerY: number, touchX: number, touchY: number) => number;
198
+ /**
199
+ * Validate if time is within min/max range
200
+ */
201
+ declare const isTimeInRange: (time: TimeValue, minTime?: TimeValue, maxTime?: TimeValue) => boolean;
202
+ /**
203
+ * Get current time as TimeValue
204
+ */
205
+ declare const getCurrentTime: () => TimeValue;
206
+ /**
207
+ * Clamp hour value to valid range
208
+ */
209
+ declare const clampHour: (hour: number, is24Hour: boolean) => number;
210
+ /**
211
+ * Clamp minute value to valid range
212
+ */
213
+ declare const clampMinute: (minute: number) => number;
214
+
215
+ export { type TimePeriod, TimePicker, TimePickerDialog, type TimePickerDialogProps, type TimePickerMode, type TimePickerProps, TimePickerTrigger, type TimePickerTriggerProps, type TimeValue, angleToHour, angleToMinute, calculateAngleFromPosition, clampHour, clampMinute, formatTimeValue, getCurrentTime, getHourAngle, getMinuteAngle, isTimeInRange, to12HourFormat, to24HourFormat };
@@ -0,0 +1,215 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { StyleProp, ViewStyle, TextStyle } from 'react-native';
3
+ import { T as ThemeColor } from '../index-BOw6tbkc.js';
4
+
5
+ type TimeValue = {
6
+ /**
7
+ * Hours value (0-23 for 24-hour format, 1-12 for 12-hour format)
8
+ */
9
+ hours: number;
10
+ /**
11
+ * Minutes value (0-59)
12
+ */
13
+ minutes: number;
14
+ };
15
+ type TimePickerMode = 'hour' | 'minute';
16
+ type TimePeriod = 'AM' | 'PM';
17
+ type TimePickerProps = {
18
+ /**
19
+ * Current time value
20
+ */
21
+ value?: TimeValue;
22
+ /**
23
+ * Callback fired when time changes
24
+ */
25
+ onChange?: (time: TimeValue) => void;
26
+ /**
27
+ * Use 24-hour format. When false, shows AM/PM selector
28
+ * @default false
29
+ */
30
+ is24Hour?: boolean;
31
+ /**
32
+ * Theme color for selected elements
33
+ * @default 'primary'
34
+ */
35
+ themeColor?: ThemeColor;
36
+ /**
37
+ * Custom container style
38
+ */
39
+ style?: StyleProp<ViewStyle>;
40
+ /**
41
+ * Minimum selectable time
42
+ */
43
+ minTime?: TimeValue;
44
+ /**
45
+ * Maximum selectable time
46
+ */
47
+ maxTime?: TimeValue;
48
+ };
49
+ type TimePickerDialogProps = {
50
+ /**
51
+ * Whether the dialog is open
52
+ */
53
+ isOpen: boolean;
54
+ /**
55
+ * Callback fired when dialog should close
56
+ */
57
+ onClose: () => void;
58
+ /**
59
+ * Current time value
60
+ */
61
+ value?: TimeValue;
62
+ /**
63
+ * Callback fired when time changes during selection
64
+ */
65
+ onChange?: (time: TimeValue) => void;
66
+ /**
67
+ * Use 24-hour format. When false, shows AM/PM selector
68
+ * @default false
69
+ */
70
+ is24Hour?: boolean;
71
+ /**
72
+ * Theme color for selected elements
73
+ * @default 'primary'
74
+ */
75
+ themeColor?: ThemeColor;
76
+ /**
77
+ * Dialog title
78
+ * @default 'Select time'
79
+ */
80
+ title?: ReactNode;
81
+ /**
82
+ * Confirm button text
83
+ * @default 'OK'
84
+ */
85
+ confirmText?: string;
86
+ /**
87
+ * Cancel button text
88
+ * @default 'Cancel'
89
+ */
90
+ cancelText?: string;
91
+ /**
92
+ * Callback fired when confirm button is pressed
93
+ */
94
+ onConfirm?: (time: TimeValue) => void;
95
+ /**
96
+ * Callback fired when cancel button is pressed
97
+ */
98
+ onCancel?: () => void;
99
+ };
100
+ type TimePickerTriggerProps = {
101
+ /**
102
+ * Current time value shown in trigger.
103
+ */
104
+ value?: TimeValue;
105
+ /**
106
+ * Placeholder shown when no value is selected.
107
+ * @default 'Select time'
108
+ */
109
+ placeholder?: string;
110
+ /**
111
+ * Use 24-hour format for display.
112
+ * @default false
113
+ */
114
+ is24Hour?: boolean;
115
+ /**
116
+ * Theme color for visual accents.
117
+ * @default 'primary'
118
+ */
119
+ themeColor?: ThemeColor;
120
+ /**
121
+ * Disable interaction.
122
+ * @default false
123
+ */
124
+ isDisabled?: boolean;
125
+ /**
126
+ * Read-only state that blocks opening.
127
+ * @default false
128
+ */
129
+ isReadOnly?: boolean;
130
+ /**
131
+ * Show clear button when value exists.
132
+ * @default true
133
+ */
134
+ isClearable?: boolean;
135
+ /**
136
+ * Optional custom right icon.
137
+ */
138
+ icon?: ReactNode;
139
+ /**
140
+ * Custom trigger container style.
141
+ */
142
+ style?: StyleProp<ViewStyle>;
143
+ /**
144
+ * Custom trigger text style.
145
+ */
146
+ textStyle?: StyleProp<TextStyle>;
147
+ /**
148
+ * Press handler used to open dialog.
149
+ */
150
+ onPress: () => void;
151
+ /**
152
+ * Clear handler used when clear button is pressed.
153
+ */
154
+ onClear?: () => void;
155
+ };
156
+
157
+ declare const TimePicker: React.FC<TimePickerProps>;
158
+
159
+ declare const TimePickerDialog: React.FC<TimePickerDialogProps>;
160
+
161
+ declare const TimePickerTrigger: React.FC<TimePickerTriggerProps>;
162
+
163
+ /**
164
+ * Convert 24-hour time to 12-hour format with period
165
+ */
166
+ declare const to12HourFormat: (hours: number) => {
167
+ hours: number;
168
+ period: TimePeriod;
169
+ };
170
+ /**
171
+ * Convert 12-hour time with period to 24-hour format
172
+ */
173
+ declare const to24HourFormat: (hours: number, period: TimePeriod) => number;
174
+ /**
175
+ * Format time value to display string
176
+ */
177
+ declare const formatTimeValue: (time: TimeValue, is24Hour: boolean) => string;
178
+ /**
179
+ * Calculate angle for hour hand on clock face
180
+ */
181
+ declare const getHourAngle: (hour: number, is24Hour: boolean) => number;
182
+ /**
183
+ * Calculate angle for minute hand on clock face
184
+ */
185
+ declare const getMinuteAngle: (minute: number) => number;
186
+ /**
187
+ * Convert angle to hour value
188
+ */
189
+ declare const angleToHour: (angle: number, _is24Hour: boolean) => number;
190
+ /**
191
+ * Convert angle to minute value
192
+ */
193
+ declare const angleToMinute: (angle: number) => number;
194
+ /**
195
+ * Calculate angle from touch position on clock face
196
+ */
197
+ declare const calculateAngleFromPosition: (centerX: number, centerY: number, touchX: number, touchY: number) => number;
198
+ /**
199
+ * Validate if time is within min/max range
200
+ */
201
+ declare const isTimeInRange: (time: TimeValue, minTime?: TimeValue, maxTime?: TimeValue) => boolean;
202
+ /**
203
+ * Get current time as TimeValue
204
+ */
205
+ declare const getCurrentTime: () => TimeValue;
206
+ /**
207
+ * Clamp hour value to valid range
208
+ */
209
+ declare const clampHour: (hour: number, is24Hour: boolean) => number;
210
+ /**
211
+ * Clamp minute value to valid range
212
+ */
213
+ declare const clampMinute: (minute: number) => number;
214
+
215
+ export { type TimePeriod, TimePicker, TimePickerDialog, type TimePickerDialogProps, type TimePickerMode, type TimePickerProps, TimePickerTrigger, type TimePickerTriggerProps, type TimeValue, angleToHour, angleToMinute, calculateAngleFromPosition, clampHour, clampMinute, formatTimeValue, getCurrentTime, getHourAngle, getMinuteAngle, isTimeInRange, to12HourFormat, to24HourFormat };