@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,624 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/stepper/index.ts
31
+ var stepper_exports = {};
32
+ __export(stepper_exports, {
33
+ Stepper: () => Stepper,
34
+ StepperItem: () => StepperItem
35
+ });
36
+ module.exports = __toCommonJS(stepper_exports);
37
+
38
+ // src/components/stepper/stepper.tsx
39
+ var import_react2 = __toESM(require("react"), 1);
40
+ var import_react_native2 = require("react-native");
41
+
42
+ // src/components/stepper/stepper-context.ts
43
+ var import_react = require("react");
44
+ var StepperContext = (0, import_react.createContext)(
45
+ void 0
46
+ );
47
+ var useStepperContext = () => (0, import_react.useContext)(StepperContext);
48
+
49
+ // src/components/stepper/stepper.style.ts
50
+ var import_react_native = require("react-native");
51
+ var styles = import_react_native.StyleSheet.create({
52
+ container: {
53
+ width: "100%"
54
+ },
55
+ horizontalContainer: {
56
+ flexDirection: "row",
57
+ alignItems: "flex-start"
58
+ },
59
+ verticalContainer: {
60
+ flexDirection: "column"
61
+ },
62
+ horizontalItem: {
63
+ flex: 1,
64
+ alignItems: "center",
65
+ minWidth: 0
66
+ },
67
+ verticalItem: {
68
+ width: "100%"
69
+ },
70
+ horizontalTopRow: {
71
+ flexDirection: "row",
72
+ alignItems: "center",
73
+ width: "100%"
74
+ },
75
+ verticalRow: {
76
+ flexDirection: "row",
77
+ alignItems: "flex-start",
78
+ width: "100%"
79
+ },
80
+ line: {
81
+ flex: 1,
82
+ borderRadius: 99,
83
+ overflow: "hidden"
84
+ },
85
+ lineProgressWrap: {
86
+ width: "100%",
87
+ height: "100%",
88
+ overflow: "hidden"
89
+ },
90
+ lineProgressHorizontal: {
91
+ alignItems: "flex-start"
92
+ },
93
+ lineProgressVertical: {
94
+ justifyContent: "flex-start"
95
+ },
96
+ lineProgress: {
97
+ width: "100%",
98
+ height: "100%",
99
+ borderRadius: 99
100
+ },
101
+ verticalLineWrap: {
102
+ alignItems: "center",
103
+ width: "100%",
104
+ flex: 1
105
+ },
106
+ indicator: {
107
+ alignItems: "center",
108
+ justifyContent: "center"
109
+ },
110
+ locked: {
111
+ opacity: 0.75
112
+ },
113
+ disabled: {
114
+ opacity: 0.5
115
+ },
116
+ horizontalContent: {
117
+ alignItems: "center",
118
+ width: "100%"
119
+ },
120
+ verticalContent: {
121
+ flex: 1
122
+ },
123
+ title: {
124
+ textAlign: "center",
125
+ fontWeight: "600"
126
+ },
127
+ titleVertical: {
128
+ textAlign: "left"
129
+ },
130
+ description: {
131
+ textAlign: "center",
132
+ fontWeight: "400"
133
+ },
134
+ descriptionVertical: {
135
+ textAlign: "left"
136
+ }
137
+ });
138
+
139
+ // src/components/stepper/stepper.tsx
140
+ var Stepper = ({
141
+ children,
142
+ direction = "horizontal",
143
+ showLines = true,
144
+ lineDisplayMode = "progress",
145
+ activeKey,
146
+ defaultActiveKey,
147
+ onStepChange,
148
+ themeColor = "primary",
149
+ size = "md",
150
+ isDisabled = false,
151
+ style,
152
+ customAppearance
153
+ }) => {
154
+ const items = import_react2.default.Children.toArray(children);
155
+ const keys = (0, import_react2.useMemo)(
156
+ () => items.map((child) => {
157
+ if (!import_react2.default.isValidElement(child)) return void 0;
158
+ return child.props.itemKey;
159
+ }).filter((key) => typeof key === "string"),
160
+ [items]
161
+ );
162
+ const [internalActiveKey, setInternalActiveKey] = (0, import_react2.useState)(
163
+ defaultActiveKey ?? keys[0]
164
+ );
165
+ const isControlled = typeof activeKey === "string";
166
+ const resolvedActiveKey = isControlled ? activeKey : internalActiveKey;
167
+ const activeIndex = resolvedActiveKey === void 0 ? -1 : keys.indexOf(resolvedActiveKey);
168
+ const handleStepChange = (key) => {
169
+ if (!isControlled) {
170
+ setInternalActiveKey(key);
171
+ }
172
+ onStepChange?.(key);
173
+ };
174
+ const contextValue = (0, import_react2.useMemo)(
175
+ () => ({
176
+ activeKey: resolvedActiveKey,
177
+ activeIndex,
178
+ keys,
179
+ direction,
180
+ showLines,
181
+ lineDisplayMode,
182
+ isDisabled,
183
+ themeColor,
184
+ size,
185
+ customAppearance,
186
+ onStepChange: handleStepChange
187
+ }),
188
+ [
189
+ resolvedActiveKey,
190
+ activeIndex,
191
+ keys,
192
+ direction,
193
+ showLines,
194
+ lineDisplayMode,
195
+ isDisabled,
196
+ themeColor,
197
+ size,
198
+ customAppearance
199
+ ]
200
+ );
201
+ return /* @__PURE__ */ import_react2.default.createElement(StepperContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react2.default.createElement(
202
+ import_react_native2.View,
203
+ {
204
+ style: [
205
+ styles.container,
206
+ direction === "horizontal" ? styles.horizontalContainer : styles.verticalContainer,
207
+ style,
208
+ customAppearance?.container
209
+ ]
210
+ },
211
+ children
212
+ ));
213
+ };
214
+
215
+ // src/components/stepper/stepper-item.tsx
216
+ var import_react9 = __toESM(require("react"), 1);
217
+ var import_react_native6 = require("react-native");
218
+ var import_icons = require("@xaui/icons");
219
+
220
+ // src/components/stepper/stepper.hook.ts
221
+ var import_react8 = require("react");
222
+ var import_core = require("@xaui/core");
223
+
224
+ // src/core/theme-context.tsx
225
+ var import_react6 = __toESM(require("react"), 1);
226
+ var import_react_native4 = require("react-native");
227
+ var import_theme = require("@xaui/core/theme");
228
+ var import_palette = require("@xaui/core/palette");
229
+
230
+ // src/core/portal/portal.tsx
231
+ var import_react4 = require("react");
232
+
233
+ // src/core/portal/portal-context.ts
234
+ var import_react3 = require("react");
235
+ var PortalContext = (0, import_react3.createContext)(null);
236
+
237
+ // src/core/portal/portal-host.tsx
238
+ var import_react5 = __toESM(require("react"), 1);
239
+ var import_react_native3 = require("react-native");
240
+ var hostStyles = import_react_native3.StyleSheet.create({
241
+ container: {
242
+ flex: 1
243
+ }
244
+ });
245
+
246
+ // src/core/theme-context.tsx
247
+ var XUIThemeContext = (0, import_react6.createContext)(null);
248
+
249
+ // src/core/theme-hooks.ts
250
+ var import_react7 = require("react");
251
+ var import_react_native5 = require("react-native");
252
+ function useXUITheme() {
253
+ const theme = (0, import_react7.useContext)(XUIThemeContext);
254
+ if (!theme) {
255
+ throw new Error("useXUITheme must be used within XUIProvider");
256
+ }
257
+ return theme;
258
+ }
259
+
260
+ // src/core/index.ts
261
+ var import_theme2 = require("@xaui/core/theme");
262
+
263
+ // src/components/stepper/stepper.hook.ts
264
+ var sizeMap = {
265
+ sm: {
266
+ indicatorSize: 22,
267
+ indicatorBorderWidth: 1.5,
268
+ titleFontSize: 13,
269
+ descriptionFontSize: 11,
270
+ horizontalSpacing: 8,
271
+ verticalSpacing: 6,
272
+ verticalGap: 16,
273
+ lineThickness: 2
274
+ },
275
+ md: {
276
+ indicatorSize: 26,
277
+ indicatorBorderWidth: 2,
278
+ titleFontSize: 14,
279
+ descriptionFontSize: 12,
280
+ horizontalSpacing: 10,
281
+ verticalSpacing: 8,
282
+ verticalGap: 18,
283
+ lineThickness: 2
284
+ },
285
+ lg: {
286
+ indicatorSize: 30,
287
+ indicatorBorderWidth: 2,
288
+ titleFontSize: 15,
289
+ descriptionFontSize: 13,
290
+ horizontalSpacing: 12,
291
+ verticalSpacing: 10,
292
+ verticalGap: 20,
293
+ lineThickness: 3
294
+ }
295
+ };
296
+ var useStepperSizeStyles = (size) => {
297
+ return (0, import_react8.useMemo)(() => sizeMap[size], [size]);
298
+ };
299
+ var useStepperColors = (themeColor) => {
300
+ const theme = useXUITheme();
301
+ const scheme = theme.colors[(0, import_core.getSafeThemeColor)(themeColor)];
302
+ return (0, import_react8.useMemo)(
303
+ () => ({
304
+ activeIndicatorBackground: scheme.main,
305
+ activeIndicatorBorder: scheme.main,
306
+ activeIndicatorText: scheme.foreground,
307
+ completedIndicatorBackground: (0, import_core.withOpacity)(scheme.main, 0.2),
308
+ completedIndicatorBorder: scheme.main,
309
+ completedIndicatorText: scheme.main,
310
+ lockedIndicatorBackground: (0, import_core.withOpacity)(theme.colors.foreground, 0.08),
311
+ lockedIndicatorBorder: (0, import_core.withOpacity)(theme.colors.foreground, 0.22),
312
+ lockedIndicatorText: (0, import_core.withOpacity)(theme.colors.foreground, 0.42),
313
+ inactiveIndicatorBackground: theme.colors.background,
314
+ inactiveIndicatorBorder: (0, import_core.withOpacity)(theme.colors.foreground, 0.22),
315
+ inactiveIndicatorText: (0, import_core.withOpacity)(theme.colors.foreground, 0.72),
316
+ title: theme.colors.foreground,
317
+ description: (0, import_core.withOpacity)(theme.colors.foreground, 0.72),
318
+ line: (0, import_core.withOpacity)(theme.colors.foreground, 0.16),
319
+ activeLine: scheme.main
320
+ }),
321
+ [scheme, theme.colors.background, theme.colors.foreground]
322
+ );
323
+ };
324
+
325
+ // src/components/stepper/stepper-item.tsx
326
+ var isStringOrNumber = (value) => typeof value === "string" || typeof value === "number";
327
+ var StepperItem = ({
328
+ itemKey,
329
+ title,
330
+ description,
331
+ indicator,
332
+ isLocked = false,
333
+ isDisabled = false,
334
+ children,
335
+ onPress,
336
+ style,
337
+ customAppearance
338
+ }) => {
339
+ const context = useStepperContext();
340
+ const direction = context?.direction ?? "horizontal";
341
+ const showLines = context?.showLines ?? true;
342
+ const lineDisplayMode = context?.lineDisplayMode ?? "progress";
343
+ const groupDisabled = context?.isDisabled ?? false;
344
+ const size = context?.size ?? "md";
345
+ const themeColor = context?.themeColor ?? "primary";
346
+ const sizeStyles = useStepperSizeStyles(size);
347
+ const colors2 = useStepperColors(themeColor);
348
+ const index = context?.keys.indexOf(itemKey) ?? -1;
349
+ const isActive = context?.activeKey === itemKey;
350
+ const hasActiveStep = (context?.activeIndex ?? -1) >= 0;
351
+ const isCompleted = hasActiveStep && index >= 0 && index < (context?.activeIndex ?? -1);
352
+ const isLast = index === (context?.keys.length ?? 0) - 1;
353
+ const lineTargetProgress = isCompleted ? 1 : 0;
354
+ const lineProgress = (0, import_react9.useRef)(new import_react_native6.Animated.Value(lineTargetProgress)).current;
355
+ const disabled = groupDisabled || isDisabled;
356
+ const blocked = disabled || isLocked;
357
+ const indicatorState = {
358
+ index: Math.max(index, 0),
359
+ isActive,
360
+ isCompleted,
361
+ isLocked,
362
+ isDisabled: disabled
363
+ };
364
+ const indicatorNode = (0, import_react9.useMemo)(() => {
365
+ if (typeof indicator === "function") {
366
+ return indicator(indicatorState);
367
+ }
368
+ if (indicator !== void 0) {
369
+ return indicator;
370
+ }
371
+ const iconSize = Math.max(12, Math.floor(sizeStyles.indicatorSize * 0.54));
372
+ if (isLocked) {
373
+ return /* @__PURE__ */ import_react9.default.createElement(
374
+ import_icons.LockClosedIcon,
375
+ {
376
+ key: `lock-${itemKey}-${isLocked ? "on" : "off"}`,
377
+ size: iconSize,
378
+ color: colors2.lockedIndicatorText,
379
+ isAnimated: true
380
+ }
381
+ );
382
+ }
383
+ if (isCompleted) {
384
+ return /* @__PURE__ */ import_react9.default.createElement(
385
+ import_icons.CheckmarkIcon,
386
+ {
387
+ key: `done-${itemKey}-${isCompleted ? "on" : "off"}`,
388
+ size: iconSize,
389
+ color: colors2.completedIndicatorText,
390
+ isAnimated: true
391
+ }
392
+ );
393
+ }
394
+ return String(indicatorState.index + 1);
395
+ }, [
396
+ indicator,
397
+ indicatorState,
398
+ sizeStyles.indicatorSize,
399
+ isLocked,
400
+ isCompleted,
401
+ itemKey,
402
+ colors2
403
+ ]);
404
+ (0, import_react9.useEffect)(() => {
405
+ import_react_native6.Animated.timing(lineProgress, {
406
+ toValue: lineTargetProgress,
407
+ duration: 240,
408
+ useNativeDriver: true
409
+ }).start();
410
+ }, [lineProgress, lineTargetProgress]);
411
+ const indicatorText = isStringOrNumber(indicatorNode) ? /* @__PURE__ */ import_react9.default.createElement(
412
+ import_react_native6.Text,
413
+ {
414
+ style: {
415
+ color: isLocked ? colors2.lockedIndicatorText : isActive ? colors2.activeIndicatorText : isCompleted ? colors2.completedIndicatorText : colors2.inactiveIndicatorText,
416
+ fontSize: sizeStyles.titleFontSize,
417
+ fontWeight: "700"
418
+ }
419
+ },
420
+ indicatorNode
421
+ ) : indicatorNode;
422
+ const lineStyle = [
423
+ styles.line,
424
+ direction === "horizontal" ? {
425
+ height: sizeStyles.lineThickness,
426
+ marginHorizontal: sizeStyles.horizontalSpacing
427
+ } : {
428
+ width: sizeStyles.lineThickness,
429
+ marginVertical: sizeStyles.verticalSpacing,
430
+ minHeight: sizeStyles.verticalGap
431
+ },
432
+ {
433
+ backgroundColor: lineDisplayMode === "all" ? colors2.line : "transparent"
434
+ },
435
+ context?.customAppearance?.line
436
+ ];
437
+ return /* @__PURE__ */ import_react9.default.createElement(
438
+ import_react_native6.Pressable,
439
+ {
440
+ onPress: () => {
441
+ if (blocked) return;
442
+ context?.onStepChange?.(itemKey);
443
+ onPress?.(itemKey);
444
+ },
445
+ disabled: blocked,
446
+ accessibilityRole: "tab",
447
+ accessibilityState: { selected: !!isActive, disabled: blocked },
448
+ style: [
449
+ direction === "horizontal" ? styles.horizontalItem : styles.verticalItem,
450
+ blocked && (isLocked ? styles.locked : styles.disabled),
451
+ style,
452
+ customAppearance?.container,
453
+ context?.customAppearance?.itemContainer
454
+ ]
455
+ },
456
+ direction === "horizontal" ? /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: styles.horizontalTopRow }, /* @__PURE__ */ import_react9.default.createElement(
457
+ import_react_native6.View,
458
+ {
459
+ style: [
460
+ styles.indicator,
461
+ {
462
+ width: sizeStyles.indicatorSize,
463
+ height: sizeStyles.indicatorSize,
464
+ borderRadius: sizeStyles.indicatorSize / 2,
465
+ borderWidth: sizeStyles.indicatorBorderWidth,
466
+ borderColor: isLocked ? colors2.lockedIndicatorBorder : isActive ? colors2.activeIndicatorBorder : isCompleted ? colors2.completedIndicatorBorder : colors2.inactiveIndicatorBorder,
467
+ backgroundColor: isLocked ? colors2.lockedIndicatorBackground : isActive ? colors2.activeIndicatorBackground : isCompleted ? colors2.completedIndicatorBackground : colors2.inactiveIndicatorBackground
468
+ },
469
+ customAppearance?.indicator,
470
+ isActive && customAppearance?.activeIndicator,
471
+ isCompleted && customAppearance?.completedIndicator,
472
+ isLocked && customAppearance?.lockedIndicator
473
+ ]
474
+ },
475
+ indicatorText
476
+ ), showLines && !isLast ? /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: lineStyle }, /* @__PURE__ */ import_react9.default.createElement(
477
+ import_react_native6.View,
478
+ {
479
+ style: [
480
+ styles.lineProgressWrap,
481
+ direction === "horizontal" ? styles.lineProgressHorizontal : styles.lineProgressVertical
482
+ ]
483
+ },
484
+ /* @__PURE__ */ import_react9.default.createElement(
485
+ import_react_native6.Animated.View,
486
+ {
487
+ style: [
488
+ styles.lineProgress,
489
+ {
490
+ backgroundColor: colors2.activeLine,
491
+ transform: [
492
+ direction === "horizontal" ? { scaleX: lineProgress } : { scaleY: lineProgress }
493
+ ]
494
+ },
495
+ context?.customAppearance?.activeLine
496
+ ]
497
+ }
498
+ )
499
+ )) : null), /* @__PURE__ */ import_react9.default.createElement(
500
+ import_react_native6.View,
501
+ {
502
+ style: [
503
+ styles.horizontalContent,
504
+ { marginTop: sizeStyles.verticalSpacing }
505
+ ]
506
+ },
507
+ title ? /* @__PURE__ */ import_react9.default.createElement(
508
+ import_react_native6.Text,
509
+ {
510
+ style: [
511
+ styles.title,
512
+ {
513
+ fontSize: sizeStyles.titleFontSize,
514
+ color: colors2.title
515
+ },
516
+ customAppearance?.title
517
+ ]
518
+ },
519
+ title
520
+ ) : null,
521
+ description ? /* @__PURE__ */ import_react9.default.createElement(
522
+ import_react_native6.Text,
523
+ {
524
+ style: [
525
+ styles.description,
526
+ {
527
+ fontSize: sizeStyles.descriptionFontSize,
528
+ color: colors2.description,
529
+ marginTop: 2
530
+ },
531
+ customAppearance?.description
532
+ ]
533
+ },
534
+ description
535
+ ) : null,
536
+ children
537
+ )) : /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: styles.verticalRow }, /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: { alignItems: "center" } }, /* @__PURE__ */ import_react9.default.createElement(
538
+ import_react_native6.View,
539
+ {
540
+ style: [
541
+ styles.indicator,
542
+ {
543
+ width: sizeStyles.indicatorSize,
544
+ height: sizeStyles.indicatorSize,
545
+ borderRadius: sizeStyles.indicatorSize / 2,
546
+ borderWidth: sizeStyles.indicatorBorderWidth,
547
+ borderColor: isLocked ? colors2.lockedIndicatorBorder : isActive ? colors2.activeIndicatorBorder : isCompleted ? colors2.completedIndicatorBorder : colors2.inactiveIndicatorBorder,
548
+ backgroundColor: isLocked ? colors2.lockedIndicatorBackground : isActive ? colors2.activeIndicatorBackground : isCompleted ? colors2.completedIndicatorBackground : colors2.inactiveIndicatorBackground
549
+ },
550
+ customAppearance?.indicator,
551
+ isActive && customAppearance?.activeIndicator,
552
+ isCompleted && customAppearance?.completedIndicator,
553
+ isLocked && customAppearance?.lockedIndicator
554
+ ]
555
+ },
556
+ indicatorText
557
+ ), showLines && !isLast ? /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: styles.verticalLineWrap }, /* @__PURE__ */ import_react9.default.createElement(import_react_native6.View, { style: lineStyle }, /* @__PURE__ */ import_react9.default.createElement(
558
+ import_react_native6.View,
559
+ {
560
+ style: [styles.lineProgressWrap, styles.lineProgressVertical]
561
+ },
562
+ /* @__PURE__ */ import_react9.default.createElement(
563
+ import_react_native6.Animated.View,
564
+ {
565
+ style: [
566
+ styles.lineProgress,
567
+ {
568
+ backgroundColor: colors2.activeLine,
569
+ transform: [{ scaleY: lineProgress }]
570
+ },
571
+ context?.customAppearance?.activeLine
572
+ ]
573
+ }
574
+ )
575
+ ))) : null), /* @__PURE__ */ import_react9.default.createElement(
576
+ import_react_native6.View,
577
+ {
578
+ style: [
579
+ styles.verticalContent,
580
+ { paddingBottom: sizeStyles.verticalGap },
581
+ { marginLeft: sizeStyles.horizontalSpacing }
582
+ ]
583
+ },
584
+ title ? /* @__PURE__ */ import_react9.default.createElement(
585
+ import_react_native6.Text,
586
+ {
587
+ style: [
588
+ styles.title,
589
+ styles.titleVertical,
590
+ {
591
+ fontSize: sizeStyles.titleFontSize,
592
+ color: colors2.title
593
+ },
594
+ customAppearance?.title
595
+ ]
596
+ },
597
+ title
598
+ ) : null,
599
+ description ? /* @__PURE__ */ import_react9.default.createElement(
600
+ import_react_native6.Text,
601
+ {
602
+ style: [
603
+ styles.description,
604
+ styles.descriptionVertical,
605
+ {
606
+ fontSize: sizeStyles.descriptionFontSize,
607
+ color: colors2.description,
608
+ marginTop: 2
609
+ },
610
+ customAppearance?.description
611
+ ]
612
+ },
613
+ description
614
+ ) : null,
615
+ children
616
+ ))
617
+ );
618
+ };
619
+ StepperItem.displayName = "StepperItem";
620
+ // Annotate the CommonJS export names for ESM import in node:
621
+ 0 && (module.exports = {
622
+ Stepper,
623
+ StepperItem
624
+ });