fluent-styles 1.57.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/commonjs/index.js +113 -63
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/input/index.js +2 -3
  4. package/lib/commonjs/input/index.js.map +1 -1
  5. package/lib/commonjs/shape/cycle.js +116 -0
  6. package/lib/commonjs/shape/cycle.js.map +1 -0
  7. package/lib/commonjs/spinner/index.js +279 -0
  8. package/lib/commonjs/spinner/index.js.map +1 -0
  9. package/lib/commonjs/utiles/validators.js +70 -1
  10. package/lib/commonjs/utiles/validators.js.map +1 -1
  11. package/lib/module/index.js +5 -2
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/input/index.js +1 -0
  14. package/lib/module/input/index.js.map +1 -1
  15. package/lib/module/shape/cycle.js +112 -0
  16. package/lib/module/shape/cycle.js.map +1 -0
  17. package/lib/module/spinner/index.js +275 -0
  18. package/lib/module/spinner/index.js.map +1 -0
  19. package/lib/module/utiles/validators.js +70 -0
  20. package/lib/module/utiles/validators.js.map +1 -1
  21. package/lib/typescript/index.d.ts +5 -2
  22. package/lib/typescript/index.d.ts.map +1 -1
  23. package/lib/typescript/input/index.d.ts +1 -1
  24. package/lib/typescript/input/index.d.ts.map +1 -1
  25. package/lib/typescript/shape/cycle.d.ts +65 -0
  26. package/lib/typescript/shape/cycle.d.ts.map +1 -0
  27. package/lib/typescript/spinner/index.d.ts +75 -0
  28. package/lib/typescript/spinner/index.d.ts.map +1 -0
  29. package/lib/typescript/utiles/validators.d.ts +28 -0
  30. package/lib/typescript/utiles/validators.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/index.ts +5 -2
  33. package/src/input/index.tsx +1 -0
  34. package/src/shape/cycle.tsx +134 -0
  35. package/src/spinner/index.tsx +369 -0
  36. package/src/utiles/validators.ts +88 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View } from 'react-native';
5
+ import { styled } from "../utiles/styled.js";
6
+ import { theme } from "../utiles/theme.js";
7
+
8
+ /**
9
+ * Cycle component - Circular container with size variants
10
+ *
11
+ * A specialized layout component that creates circular containers
12
+ * with predefined size variants. Uses borderRadius: 50% to create perfect circles.
13
+ *
14
+ * Size variants (width & height):
15
+ * - sm: 32px (small circles, icons)
16
+ * - md: 48px (medium circles, avatars)
17
+ * - lg: 64px (large circles, featured items)
18
+ * - xl: 80px (extra large circles, hero sections)
19
+ */
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ /**
22
+ * Size definitions for cycle component
23
+ * Maps size variants to width/height values
24
+ */
25
+ const sizes = {
26
+ sm: {
27
+ width: 32,
28
+ height: 32
29
+ },
30
+ md: {
31
+ width: 48,
32
+ height: 48
33
+ },
34
+ lg: {
35
+ width: 64,
36
+ height: 64
37
+ },
38
+ xl: {
39
+ width: 80,
40
+ height: 80
41
+ }
42
+ };
43
+
44
+ /**
45
+ * Base Cycle component with size variants
46
+ * Circular container with centered content
47
+ * Default size: md (48px)
48
+ */
49
+ const CycleBase = styled(View, {
50
+ base: {
51
+ borderRadius: 50,
52
+ borderWidth: 1,
53
+ borderColor: theme.colors.gray[200],
54
+ backgroundColor: theme.colors.gray[50],
55
+ justifyContent: 'center',
56
+ alignItems: 'center',
57
+ width: 48,
58
+ height: 48
59
+ },
60
+ variants: {
61
+ size: {
62
+ sm: sizes.sm,
63
+ md: sizes.md,
64
+ lg: sizes.lg,
65
+ xl: sizes.xl
66
+ }
67
+ }
68
+ });
69
+ /**
70
+ * Wrapper component for Cycle with size variants
71
+ *
72
+ * @example
73
+ * // Small cycle with icon
74
+ * <StyledCycle size="sm">
75
+ * <Icon name="star" />
76
+ * </StyledCycle>
77
+ *
78
+ * @example
79
+ * // Medium cycle (default) with avatar
80
+ * <StyledCycle>
81
+ * <Avatar uri={image} />
82
+ * </StyledCycle>
83
+ *
84
+ * @example
85
+ * // Large cycle with custom styling
86
+ * <StyledCycle
87
+ * size="lg"
88
+ * backgroundColor={theme.colors.primary[500]}
89
+ * borderColor={theme.colors.primary[600]}
90
+ * >
91
+ * <Text fontSize={20} fontWeight="bold">C</Text>
92
+ * </StyledCycle>
93
+ *
94
+ * @example
95
+ * // Extra large cycle with gradient background
96
+ * <StyledCycle size="xl">
97
+ * <LinearGradient colors={['#FF6B6B', '#FFD93D']}>
98
+ * <Text color="white">Logo</Text>
99
+ * </LinearGradient>
100
+ * </StyledCycle>
101
+ */
102
+ const StyledCycle = /*#__PURE__*/React.forwardRef(({
103
+ children,
104
+ ...rest
105
+ }, ref) => /*#__PURE__*/_jsx(CycleBase, {
106
+ ref: ref,
107
+ ...rest,
108
+ children: children
109
+ }));
110
+ StyledCycle.displayName = 'StyledCycle';
111
+ export { StyledCycle, CycleBase };
112
+ //# sourceMappingURL=cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","styled","theme","jsx","_jsx","sizes","sm","width","height","md","lg","xl","CycleBase","base","borderRadius","borderWidth","borderColor","colors","gray","backgroundColor","justifyContent","alignItems","variants","size","StyledCycle","forwardRef","children","rest","ref","displayName"],"sourceRoot":"../../../src","sources":["shape/cycle.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,QAGC,cAAc;AACrB,SAASC,MAAM,QAAQ,qBAAkB;AACzC,SAASC,KAAK,QAAQ,oBAAiB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA,SAAAC,GAAA,IAAAC,IAAA;AAqBA;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAG;EACZC,EAAE,EAAE;IACFC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAc;EACdC,EAAE,EAAE;IACFF,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAc;EACdE,EAAE,EAAE;IACFH,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAc;EACdG,EAAE,EAAE;IACFJ,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMI,SAAS,GAAGX,MAAM,CAAsBD,IAAI,EAAE;EAClDa,IAAI,EAAE;IACJC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEd,KAAK,CAACe,MAAM,CAACC,IAAI,CAAC,GAAG,CAAC;IACnCC,eAAe,EAAEjB,KAAK,CAACe,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;IACtCE,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBd,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAc;EACdc,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJjB,EAAE,EAAED,KAAK,CAACC,EAAE;MACZG,EAAE,EAAEJ,KAAK,CAACI,EAAE;MACZC,EAAE,EAAEL,KAAK,CAACK,EAAE;MACZC,EAAE,EAAEN,KAAK,CAACM;IACZ;EACF;AACF,CAAC,CAAC;AAMF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,WAAW,gBAAGzB,KAAK,CAAC0B,UAAU,CAClC,CACE;EACEC,QAAQ;EACR,GAAGC;AACL,CAAC,EACDC,GAAG,kBAEHxB,IAAA,CAACQ,SAAS;EAACgB,GAAG,EAAEA,GAAI;EAAA,GAAKD,IAAI;EAAAD,QAAA,EAC1BA;AAAQ,CACA,CAEf,CAAC;AAEDF,WAAW,CAACK,WAAW,GAAG,aAAa;AAEvC,SAASL,WAAW,EAAEZ,SAAS","ignoreList":[]}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef } from 'react';
4
+ import { ActivityIndicator } from 'react-native';
5
+ import { theme } from "../utiles/theme.js";
6
+ import { styled } from "../utiles/styled.js";
7
+ import { YStack, XStack } from "../stack/index.js";
8
+ import { StyledText } from "../text/index.js";
9
+ import { StyledButton } from "../button/index.js";
10
+
11
+ /**
12
+ * Props for Spinner component
13
+ */
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ /**
16
+ * Size configuration for Spinner
17
+ */
18
+ const sizeConfig = {
19
+ small: 30,
20
+ medium: 50,
21
+ large: 80
22
+ };
23
+
24
+ /**
25
+ * Variant configuration for Spinner
26
+ */
27
+ const variantConfig = {
28
+ default: {
29
+ color: theme.colors.gray[400],
30
+ label: 'default'
31
+ },
32
+ primary: {
33
+ color: theme.colors.blue[500],
34
+ label: 'primary'
35
+ },
36
+ success: {
37
+ color: theme.colors.green[500],
38
+ label: 'success'
39
+ },
40
+ warning: {
41
+ color: theme.colors.amber[500],
42
+ label: 'warning'
43
+ },
44
+ danger: {
45
+ color: theme.colors.red[500],
46
+ label: 'danger'
47
+ }
48
+ };
49
+
50
+ /**
51
+ * Base styled ActivityIndicator
52
+ */
53
+ const StyledActivityIndicator = styled(ActivityIndicator, {
54
+ base: {
55
+ color: theme.colors.gray[400]
56
+ }
57
+ });
58
+
59
+ /**
60
+ * Spinner: Professional loading indicator component
61
+ *
62
+ * Features:
63
+ * - Multiple size options (small, medium, large, custom)
64
+ * - 5 color variants (default, primary, success, warning, danger)
65
+ * - Custom color support
66
+ * - Overlay mode for full-screen loading
67
+ * - Optional label text
68
+ * - Theme integration
69
+ * - Accessibility support
70
+ */
71
+ const StyledSpinner = /*#__PURE__*/forwardRef(({
72
+ size = 'medium',
73
+ variant = 'primary',
74
+ color,
75
+ overlay = false,
76
+ overlayColor = 'rgba(0, 0, 0, 0.3)',
77
+ label,
78
+ labelColor,
79
+ labelSize = 14,
80
+ accessibilityLabel = 'Loading',
81
+ ...rest
82
+ }, ref) => {
83
+ // Determine size
84
+ const finalSize = typeof size === 'number' ? size : sizeConfig[size];
85
+
86
+ // Determine color
87
+ const variantConfig_value = variantConfig[variant];
88
+ const finalColor = color || variantConfig_value.color;
89
+ const spinnerElement = /*#__PURE__*/_jsx(StyledActivityIndicator, {
90
+ ref: ref,
91
+ size: finalSize,
92
+ color: finalColor,
93
+ accessibilityLabel: accessibilityLabel,
94
+ accessible: true,
95
+ ...rest
96
+ });
97
+
98
+ // If no overlay, return basic spinner
99
+ if (!overlay) {
100
+ if (!label) {
101
+ return spinnerElement;
102
+ }
103
+
104
+ // Spinner with label
105
+ return /*#__PURE__*/_jsxs(YStack, {
106
+ alignItems: "center",
107
+ gap: 12,
108
+ children: [spinnerElement, label && /*#__PURE__*/_jsx(StyledText, {
109
+ fontSize: labelSize,
110
+ color: labelColor || theme.colors.gray[600],
111
+ numberOfLines: 1,
112
+ children: label
113
+ })]
114
+ });
115
+ }
116
+
117
+ // Overlay mode
118
+ return /*#__PURE__*/_jsx(YStack, {
119
+ position: "absolute",
120
+ top: 0,
121
+ left: 0,
122
+ right: 0,
123
+ bottom: 0,
124
+ backgroundColor: overlayColor,
125
+ justifyContent: "center",
126
+ alignItems: "center",
127
+ zIndex: 9999,
128
+ children: /*#__PURE__*/_jsxs(YStack, {
129
+ alignItems: "center",
130
+ gap: 12,
131
+ children: [spinnerElement, label && /*#__PURE__*/_jsx(StyledText, {
132
+ fontSize: labelSize,
133
+ color: labelColor || theme.colors.white[500],
134
+ numberOfLines: 1,
135
+ children: label
136
+ })]
137
+ })
138
+ });
139
+ });
140
+ StyledSpinner.displayName = 'StyledSpinner';
141
+
142
+ /**
143
+ * Props for SpinnerContainer - Full-screen loading overlay with backdrop
144
+ */
145
+
146
+ /**
147
+ * SpinnerContainer: Full-screen loading container with backdrop
148
+ *
149
+ * Use for: Page loading, data fetching, async operations
150
+ */
151
+ const SpinnerContainer = /*#__PURE__*/forwardRef(({
152
+ isVisible = true,
153
+ size = 'large',
154
+ variant = 'primary',
155
+ color,
156
+ backdropColor = 'rgba(0, 0, 0, 0.5)',
157
+ message,
158
+ labelColor,
159
+ labelSize = 14,
160
+ onBackdropPress,
161
+ ...rest
162
+ }, ref) => {
163
+ if (!isVisible) return null;
164
+
165
+ // Determine size
166
+ const finalSize = typeof size === 'number' ? size : sizeConfig[size];
167
+
168
+ // Determine color
169
+ const variantConfig_value = variantConfig[variant];
170
+ const finalColor = color || variantConfig_value.color;
171
+ const spinnerContent = /*#__PURE__*/_jsxs(YStack, {
172
+ alignItems: "center",
173
+ gap: 20,
174
+ children: [/*#__PURE__*/_jsx(StyledActivityIndicator, {
175
+ ref: ref,
176
+ size: finalSize,
177
+ color: finalColor,
178
+ accessible: true,
179
+ accessibilityLabel: "Loading",
180
+ ...rest
181
+ }), message && /*#__PURE__*/_jsx(StyledText, {
182
+ fontSize: labelSize,
183
+ color: labelColor || theme.colors.white[500],
184
+ numberOfLines: 2,
185
+ textAlign: "center",
186
+ children: message
187
+ })]
188
+ });
189
+ if (!onBackdropPress) {
190
+ return /*#__PURE__*/_jsx(YStack, {
191
+ position: "absolute",
192
+ top: 0,
193
+ left: 0,
194
+ right: 0,
195
+ bottom: 0,
196
+ backgroundColor: backdropColor,
197
+ justifyContent: "center",
198
+ alignItems: "center",
199
+ zIndex: 9999,
200
+ children: spinnerContent
201
+ });
202
+ }
203
+ return /*#__PURE__*/_jsx(StyledButton, {
204
+ link: true,
205
+ onPress: onBackdropPress,
206
+ position: "absolute",
207
+ top: 0,
208
+ left: 0,
209
+ right: 0,
210
+ bottom: 0,
211
+ backgroundColor: backdropColor,
212
+ justifyContent: "center",
213
+ alignItems: "center",
214
+ zIndex: 9999,
215
+ borderRadius: 0,
216
+ borderWidth: 0,
217
+ children: spinnerContent
218
+ });
219
+ });
220
+ SpinnerContainer.displayName = 'SpinnerContainer';
221
+
222
+ /**
223
+ * Props for InlineSpinner - Spinner with text in a row
224
+ */
225
+
226
+ /**
227
+ * InlineSpinner: Spinner with text in flexible direction
228
+ *
229
+ * Use for: Button loading states, inline operations, compact loading indicators
230
+ */
231
+ const InlineSpinner = /*#__PURE__*/forwardRef(({
232
+ size = 'small',
233
+ variant = 'primary',
234
+ color,
235
+ text,
236
+ labelColor,
237
+ labelSize = 12,
238
+ direction = 'row',
239
+ gap = 8,
240
+ accessibilityLabel = 'Loading',
241
+ ...rest
242
+ }, ref) => {
243
+ // Determine size
244
+ const finalSize = typeof size === 'number' ? size : sizeConfig[size];
245
+
246
+ // Determine color
247
+ const variantConfig_value = variantConfig[variant];
248
+ const finalColor = color || variantConfig_value.color;
249
+ const StackComponent = direction === 'row' ? XStack : YStack;
250
+ return /*#__PURE__*/_jsxs(StackComponent, {
251
+ gap: gap,
252
+ alignItems: "center",
253
+ children: [/*#__PURE__*/_jsx(StyledActivityIndicator, {
254
+ ref: ref,
255
+ size: finalSize,
256
+ color: finalColor,
257
+ accessible: true,
258
+ accessibilityLabel: accessibilityLabel,
259
+ ...rest
260
+ }), text && /*#__PURE__*/_jsx(StyledText, {
261
+ fontSize: labelSize,
262
+ color: labelColor || theme.colors.gray[600],
263
+ numberOfLines: 1,
264
+ children: text
265
+ })]
266
+ });
267
+ });
268
+ InlineSpinner.displayName = 'InlineSpinner';
269
+
270
+ /**
271
+ * Exports
272
+ */
273
+ export { StyledSpinner, SpinnerContainer, InlineSpinner, sizeConfig, variantConfig };
274
+ export default StyledSpinner;
275
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","ActivityIndicator","theme","styled","YStack","XStack","StyledText","StyledButton","jsx","_jsx","jsxs","_jsxs","sizeConfig","small","medium","large","variantConfig","default","color","colors","gray","label","primary","blue","success","green","warning","amber","danger","red","StyledActivityIndicator","base","StyledSpinner","size","variant","overlay","overlayColor","labelColor","labelSize","accessibilityLabel","rest","ref","finalSize","variantConfig_value","finalColor","spinnerElement","accessible","alignItems","gap","children","fontSize","numberOfLines","position","top","left","right","bottom","backgroundColor","justifyContent","zIndex","white","displayName","SpinnerContainer","isVisible","backdropColor","message","onBackdropPress","spinnerContent","textAlign","link","onPress","borderRadius","borderWidth","InlineSpinner","text","direction","StackComponent"],"sourceRoot":"../../../src","sources":["spinner/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,4 +21,74 @@ export const isValidNumber = value => {
21
21
  export const isValidString = value => {
22
22
  return typeof value === "string" && value.trim().length > 0;
23
23
  };
24
+
25
+ // Define the structure for a single rule
26
+
27
+ // Define the structure for the rules object used in validation
28
+
29
+ // Define the structure for the values object used in validation
30
+
31
+ // Define the structure for the errors object in the validation response
32
+
33
+ /**
34
+ * Validates a value against provided rules.
35
+ * @param value - The value to validate.
36
+ * @param rules - The array of validation rules.
37
+ * @returns The error message if the value is invalid, otherwise undefined.
38
+ */
39
+ const validateField = (value, rules, fields = {}) => {
40
+ for (const rule of rules) {
41
+ // Explicit null or undefined check
42
+ if (value === null || value === undefined) {
43
+ return rule.message; // Null/undefined fails required validation
44
+ }
45
+
46
+ // Array validation
47
+ if (rule.array && Array.isArray(value) && value.length === 0) {
48
+ return rule.message;
49
+ }
50
+
51
+ // Pattern validation
52
+ if (rule.pattern && !rule.pattern.test(value)) {
53
+ return rule.message;
54
+ }
55
+
56
+ // Custom validation logic
57
+ if (rule.validate) {
58
+ const customMessage = rule.validate(value, fields);
59
+ if (customMessage) {
60
+ return customMessage;
61
+ }
62
+ }
63
+ }
64
+ return undefined; // No errors found
65
+ };
66
+
67
+ /**
68
+ * Validates a set of values against a set of field rules.
69
+ * @param values - The object of field values.
70
+ * @param rules - The object of field rules.
71
+ * @returns An object containing a boolean indicating if there are errors, and an object of errors.
72
+ */
73
+ const validate = (values, rules) => {
74
+ const errors = {};
75
+ let hasError = false;
76
+ for (const field in rules) {
77
+ const fieldRules = rules[field];
78
+ const value = values[field] ?? null; // Safely access values[field]
79
+ const error = validateField(value, fieldRules, values); // Pass `values` for cross-field validation
80
+
81
+ if (error) {
82
+ hasError = true;
83
+ errors[field] = {
84
+ message: error
85
+ };
86
+ }
87
+ }
88
+ return {
89
+ hasError,
90
+ errors
91
+ };
92
+ };
93
+ export { validate };
24
94
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isValidColor","value","test","isValidNumber","isFinite","isValidString","trim","length"],"sourceRoot":"../../../src","sources":["utiles/validators.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,KAAa,IAAc;EACtD,OAAO,2CAA2C,CAACC,IAAI,CAACD,KAAK,CAAC;AAChE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,aAAa,GAAIF,KAAc,IAAsB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIG,QAAQ,CAACH,KAAK,CAAC;AACrD,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMI,aAAa,GAAIJ,KAAc,IAAsB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACK,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AAC7D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isValidColor","value","test","isValidNumber","isFinite","isValidString","trim","length","validateField","rules","fields","rule","undefined","message","array","Array","isArray","pattern","validate","customMessage","values","errors","hasError","field","fieldRules","error"],"sourceRoot":"../../../src","sources":["utiles/validators.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,KAAa,IAAc;EACtD,OAAO,2CAA2C,CAACC,IAAI,CAACD,KAAK,CAAC;AAChE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,aAAa,GAAIF,KAAc,IAAsB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIG,QAAQ,CAACH,KAAK,CAAC;AACrD,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMI,aAAa,GAAIJ,KAAc,IAAsB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACK,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AAC7D,CAAC;;AAED;;AAQE;;AAKA;;AAKA;;AAKA;AACF;AACA;AACA;AACA;AACA;AACE,MAAMC,aAAa,GAAGA,CAACP,KAAU,EAAEQ,KAAa,EAAEC,MAA2B,GAAG,CAAC,CAAC,KAAyB;EACzG,KAAK,MAAMC,IAAI,IAAIF,KAAK,EAAE;IACxB;IACA,IAAIR,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKW,SAAS,EAAE;MACzC,OAAOD,IAAI,CAACE,OAAO,CAAC,CAAC;IACvB;;IAEA;IACA,IAAIF,IAAI,CAACG,KAAK,IAAIC,KAAK,CAACC,OAAO,CAACf,KAAK,CAAC,IAAIA,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;MAC5D,OAAOI,IAAI,CAACE,OAAO;IACrB;;IAEA;IACA,IAAIF,IAAI,CAACM,OAAO,IAAI,CAACN,IAAI,CAACM,OAAO,CAACf,IAAI,CAACD,KAAK,CAAC,EAAE;MAC7C,OAAOU,IAAI,CAACE,OAAO;IACrB;;IAEA;IACA,IAAIF,IAAI,CAACO,QAAQ,EAAE;MACjB,MAAMC,aAAa,GAAGR,IAAI,CAACO,QAAQ,CAACjB,KAAK,EAAES,MAAM,CAAC;MAClD,IAAIS,aAAa,EAAE;QACjB,OAAOA,aAAa;MACtB;IACF;EACF;EAEA,OAAOP,SAAS,CAAC,CAAC;AACpB,CAAC;;AAGD;AACF;AACA;AACA;AACA;AACA;AACE,MAAMM,QAAQ,GAAGA,CAACE,MAAc,EAAEX,KAAY,KAA4C;EACxF,MAAMY,MAAc,GAAG,CAAC,CAAC;EACzB,IAAIC,QAAQ,GAAG,KAAK;EAEpB,KAAK,MAAMC,KAAK,IAAId,KAAK,EAAE;IACzB,MAAMe,UAAU,GAAGf,KAAK,CAACc,KAAK,CAAC;IAC/B,MAAMtB,KAAK,GAAGmB,MAAM,CAACG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IACrC,MAAME,KAAK,GAAGjB,aAAa,CAACP,KAAK,EAAEuB,UAAU,EAAEJ,MAAM,CAAC,CAAC,CAAC;;IAExD,IAAIK,KAAK,EAAE;MACTH,QAAQ,GAAG,IAAI;MACfD,MAAM,CAACE,KAAK,CAAC,GAAG;QAAEV,OAAO,EAAEY;MAAM,CAAC;IACpC;EACF;EAEA,OAAO;IACLH,QAAQ;IACRD;EACF,CAAC;AACH,CAAC;AAED,SAASH,QAAQ","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  export { PopoverMode, PopoverPlacement } from 'react-native-popover-view';
2
2
  export { theme, lightColors, darkColors, palettes, fontStyles, } from './utiles/theme';
3
3
  export { styled } from './utiles/styled';
4
- export { Stack, type StackProps } from './stack';
4
+ export { Stack, XStack, YStack, type StackProps } from './stack';
5
5
  export { StyledText, type StyledTextProps } from './text';
6
6
  export { StyledSafeAreaProvider, type StyledSafeAreaProviderProps } from './safeAreaProvider';
7
7
  export { StyledSafeAreaView, type StyledSafeAreaViewProps } from './safeAreaView';
@@ -17,7 +17,6 @@ export { StyledImage, StyledImageBackground, type StyledImageProps, type StyledI
17
17
  export { StyledPressable, type StyledPressableProps } from './pressable';
18
18
  export { StyledButton, type StyledButtonProps } from './button';
19
19
  export { StyledDivider, type DividerProps } from './divider';
20
- export * from './input';
21
20
  export { StyledCheckBox, type StyledCheckBoxProps } from './checkBox';
22
21
  export { StyledBadge, type StyledBadgeProps } from './badge';
23
22
  export { BadgeWithIcon, type BadgeWithIconProps } from './badge';
@@ -54,4 +53,8 @@ export * from './skeleton';
54
53
  export * from './emptyState';
55
54
  export * from './searchBar';
56
55
  export * from './dialog';
56
+ export * from './utiles/validators';
57
+ export * from './spinner';
58
+ export * from './input';
59
+ export * from './shape/cycle';
57
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -85,5 +85,5 @@ export interface StyledTextInputHandle extends StyledTextInputProps {
85
85
  isFocused: () => boolean;
86
86
  }
87
87
  export declare const StyledTextInput: React.ForwardRefExoticComponent<StyledTextInputProps & React.RefAttributes<any>>;
88
- export {};
88
+ export { StyledTextInput as StyledInput };
89
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/input/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAA;AACd,OAAO,EAML,cAAc,EAGf,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAGV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAA;AAMrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,MAAM,MAAM,SAAS,GAAO,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9C,MAAM,MAAM,YAAY,GAAI,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;AAExE,MAAM,MAAM,UAAU,GAAG;IACvB,4CAA4C;IAC5C,IAAI,CAAC,EAAM,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,CAAC,EAAM,KAAK,CAAC,SAAS,CAAA;IAC1B,oEAAoE;IACpE,EAAE,CAAC,EAAQ,MAAM,CAAA;IACjB,2CAA2C;IAC3C,KAAK,CAAC,EAAK,MAAM,CAAA;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAG,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,kBAAkB,GAAI,cAAc,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,oBACf,SAAQ,kBAAkB;IAG1B,KAAK,CAAC,EAAc,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,eAAe,CAAA;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,EAAW,OAAO,CAAA;IAC3B,wEAAwE;IACxE,UAAU,CAAC,EAAS,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAQ,eAAe,CAAA;IACnC,+DAA+D;IAC/D,YAAY,CAAC,EAAO,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,eAAe,CAAA;IACnC,wEAAwE;IACxE,KAAK,CAAC,EAAc,OAAO,CAAA;IAG3B;;;OAGG;IACH,WAAW,CAAC,EAAQ,OAAO,CAAA;IAG3B,qEAAqE;IACrE,QAAQ,CAAC,EAAW,KAAK,CAAC,SAAS,CAAA;IACnC,wEAAwE;IACxE,SAAS,CAAC,EAAU,KAAK,CAAC,SAAS,CAAA;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAU,UAAU,CAAA;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAS,UAAU,CAAA;IAG9B,uEAAuE;IACvE,SAAS,CAAC,EAAU,OAAO,CAAA;IAG3B,4EAA4E;IAC5E,OAAO,CAAC,EAAY,OAAO,CAAA;IAG3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAY,YAAY,CAAA;IAEhC,4CAA4C;IAC5C,IAAI,CAAC,EAAe,SAAS,CAAA;IAE7B,sEAAsE;IACtE,WAAW,CAAC,EAAQ,MAAM,CAAA;IAE1B,gEAAgE;IAChE,UAAU,CAAC,EAAS,MAAM,CAAA;IAG1B;;;OAGG;IACH,UAAU,CAAC,EAAS,OAAO,CAAA;IAG3B,cAAc,CAAC,EAAK,SAAS,CAAA;IAC7B,cAAc,CAAC,EAAK,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAS,SAAS,CAAA;IAG7B,QAAQ,CAAC,EAAW,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,SAAS,CAAC,YAAY,CAAC,CAAA;CAE5C;AAkCD,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,KAAK,EAAO,MAAM,IAAI,CAAA;IACtB,IAAI,EAAQ,MAAM,IAAI,CAAA;IACtB,KAAK,EAAO,MAAM,IAAI,CAAA;IACtB,SAAS,EAAG,MAAM,OAAO,CAAA;CAC1B;AAuKD,eAAO,MAAM,eAAe,kFAyR3B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/input/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAA;AACd,OAAO,EAML,cAAc,EAGf,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAGV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAA;AAMrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,MAAM,MAAM,SAAS,GAAO,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9C,MAAM,MAAM,YAAY,GAAI,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;AAExE,MAAM,MAAM,UAAU,GAAG;IACvB,4CAA4C;IAC5C,IAAI,CAAC,EAAM,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,CAAC,EAAM,KAAK,CAAC,SAAS,CAAA;IAC1B,oEAAoE;IACpE,EAAE,CAAC,EAAQ,MAAM,CAAA;IACjB,2CAA2C;IAC3C,KAAK,CAAC,EAAK,MAAM,CAAA;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAG,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,kBAAkB,GAAI,cAAc,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,oBACf,SAAQ,kBAAkB;IAG1B,KAAK,CAAC,EAAc,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,eAAe,CAAA;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,EAAW,OAAO,CAAA;IAC3B,wEAAwE;IACxE,UAAU,CAAC,EAAS,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAQ,eAAe,CAAA;IACnC,+DAA+D;IAC/D,YAAY,CAAC,EAAO,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,eAAe,CAAA;IACnC,wEAAwE;IACxE,KAAK,CAAC,EAAc,OAAO,CAAA;IAG3B;;;OAGG;IACH,WAAW,CAAC,EAAQ,OAAO,CAAA;IAG3B,qEAAqE;IACrE,QAAQ,CAAC,EAAW,KAAK,CAAC,SAAS,CAAA;IACnC,wEAAwE;IACxE,SAAS,CAAC,EAAU,KAAK,CAAC,SAAS,CAAA;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAU,UAAU,CAAA;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAS,UAAU,CAAA;IAG9B,uEAAuE;IACvE,SAAS,CAAC,EAAU,OAAO,CAAA;IAG3B,4EAA4E;IAC5E,OAAO,CAAC,EAAY,OAAO,CAAA;IAG3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAY,YAAY,CAAA;IAEhC,4CAA4C;IAC5C,IAAI,CAAC,EAAe,SAAS,CAAA;IAE7B,sEAAsE;IACtE,WAAW,CAAC,EAAQ,MAAM,CAAA;IAE1B,gEAAgE;IAChE,UAAU,CAAC,EAAS,MAAM,CAAA;IAG1B;;;OAGG;IACH,UAAU,CAAC,EAAS,OAAO,CAAA;IAG3B,cAAc,CAAC,EAAK,SAAS,CAAA;IAC7B,cAAc,CAAC,EAAK,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAS,SAAS,CAAA;IAG7B,QAAQ,CAAC,EAAW,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAS,SAAS,CAAC,YAAY,CAAC,CAAA;CAE5C;AAkCD,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,KAAK,EAAO,MAAM,IAAI,CAAA;IACtB,IAAI,EAAQ,MAAM,IAAI,CAAA;IACtB,KAAK,EAAO,MAAM,IAAI,CAAA;IACtB,SAAS,EAAG,MAAM,OAAO,CAAA;CAC1B;AAuKD,eAAO,MAAM,eAAe,kFAyR3B,CAAA;AAGD,OAAO,EAAE,eAAe,IAAI,WAAW,EAAE,CAAA"}
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import { View, ViewProps, ViewStyle } from 'react-native';
3
+ /**
4
+ * Cycle component - Circular container with size variants
5
+ *
6
+ * A specialized layout component that creates circular containers
7
+ * with predefined size variants. Uses borderRadius: 50% to create perfect circles.
8
+ *
9
+ * Size variants (width & height):
10
+ * - sm: 32px (small circles, icons)
11
+ * - md: 48px (medium circles, avatars)
12
+ * - lg: 64px (large circles, featured items)
13
+ * - xl: 80px (extra large circles, hero sections)
14
+ */
15
+ type SizeVariant = 'sm' | 'md' | 'lg' | 'xl';
16
+ type CycleVariants = {
17
+ size?: SizeVariant;
18
+ };
19
+ type CycleComponentProps = CycleVariants & ViewProps & ViewStyle;
20
+ /**
21
+ * Base Cycle component with size variants
22
+ * Circular container with centered content
23
+ * Default size: md (48px)
24
+ */
25
+ declare const CycleBase: React.ForwardRefExoticComponent<CycleVariants & ViewProps & ViewStyle & React.RefAttributes<any>>;
26
+ interface StyledCycleProps extends CycleComponentProps {
27
+ children?: React.ReactNode;
28
+ }
29
+ /**
30
+ * Wrapper component for Cycle with size variants
31
+ *
32
+ * @example
33
+ * // Small cycle with icon
34
+ * <StyledCycle size="sm">
35
+ * <Icon name="star" />
36
+ * </StyledCycle>
37
+ *
38
+ * @example
39
+ * // Medium cycle (default) with avatar
40
+ * <StyledCycle>
41
+ * <Avatar uri={image} />
42
+ * </StyledCycle>
43
+ *
44
+ * @example
45
+ * // Large cycle with custom styling
46
+ * <StyledCycle
47
+ * size="lg"
48
+ * backgroundColor={theme.colors.primary[500]}
49
+ * borderColor={theme.colors.primary[600]}
50
+ * >
51
+ * <Text fontSize={20} fontWeight="bold">C</Text>
52
+ * </StyledCycle>
53
+ *
54
+ * @example
55
+ * // Extra large cycle with gradient background
56
+ * <StyledCycle size="xl">
57
+ * <LinearGradient colors={['#FF6B6B', '#FFD93D']}>
58
+ * <Text color="white">Logo</Text>
59
+ * </LinearGradient>
60
+ * </StyledCycle>
61
+ */
62
+ declare const StyledCycle: React.ForwardRefExoticComponent<StyledCycleProps & React.RefAttributes<View>>;
63
+ export { StyledCycle, CycleBase };
64
+ export type { CycleVariants, CycleComponentProps, StyledCycleProps, SizeVariant };
65
+ //# sourceMappingURL=cycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycle.d.ts","sourceRoot":"","sources":["../../../src/shape/cycle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAItB;;;;;;;;;;;GAWG;AAEH,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,mBAAmB,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAyBjE;;;;GAIG;AACH,QAAA,MAAM,SAAS,mGAmBb,CAAC;AAEH,UAAU,gBAAiB,SAAQ,mBAAmB;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,QAAA,MAAM,WAAW,+EAYhB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}