pytech-ui 1.0.7 → 1.0.10

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 (77) hide show
  1. package/README.md +7 -11
  2. package/build/constants/colors.d.ts +217 -0
  3. package/build/constants/colors.js +172 -0
  4. package/build/constants/colors.json +88 -0
  5. package/build/constants/consts.d.ts +7 -0
  6. package/build/constants/consts.js +16 -0
  7. package/build/constants/formats.d.ts +9 -0
  8. package/build/constants/formats.js +112 -0
  9. package/build/constants/hooks.d.ts +6 -0
  10. package/build/constants/hooks.js +72 -0
  11. package/build/constants/index.d.ts +5 -0
  12. package/build/constants/index.js +21 -0
  13. package/build/constants/utils.d.ts +9 -0
  14. package/build/constants/utils.js +107 -0
  15. package/build/contexts/alert/components/Alert/index.d.ts +3 -0
  16. package/build/contexts/alert/components/Alert/index.js +85 -0
  17. package/build/contexts/alert/components/Alert/types.d.ts +7 -0
  18. package/build/contexts/alert/components/Alert/types.js +2 -0
  19. package/build/contexts/alert/components/Button/index.d.ts +3 -0
  20. package/build/contexts/alert/components/Button/index.js +52 -0
  21. package/build/contexts/alert/components/Button/types.d.ts +7 -0
  22. package/build/contexts/alert/components/Button/types.js +2 -0
  23. package/build/contexts/alert/components/Provider/index.d.ts +4 -0
  24. package/build/contexts/alert/components/Provider/index.ios.d.ts +4 -0
  25. package/build/contexts/alert/components/Provider/index.ios.js +12 -0
  26. package/build/contexts/alert/components/Provider/index.js +17 -0
  27. package/build/contexts/alert/context/provider.d.ts +6 -0
  28. package/build/contexts/alert/context/provider.js +6 -0
  29. package/build/contexts/alert/index.d.ts +3 -0
  30. package/build/contexts/alert/index.js +10 -0
  31. package/build/contexts/app/context.d.ts +6 -0
  32. package/build/contexts/app/context.js +35 -0
  33. package/build/contexts/app/index.d.ts +5 -0
  34. package/build/contexts/app/index.js +14 -0
  35. package/build/contexts/app/src/components/Head/index.d.ts +3 -0
  36. package/build/contexts/app/src/components/Head/index.js +3 -0
  37. package/build/contexts/app/src/components/Head/index.web.d.ts +3 -0
  38. package/build/contexts/app/src/components/Head/index.web.js +29 -0
  39. package/build/contexts/app/src/components/Head/types.d.ts +24 -0
  40. package/build/contexts/app/src/components/Head/types.js +2 -0
  41. package/build/contexts/app/src/components/Loading.d.ts +4 -0
  42. package/build/contexts/app/src/components/Loading.js +4 -0
  43. package/build/contexts/app/src/components/Wrapper/index.d.ts +4 -0
  44. package/build/contexts/app/src/components/Wrapper/index.js +68 -0
  45. package/build/contexts/app/src/components/Wrapper/types.d.ts +20 -0
  46. package/build/contexts/app/src/components/Wrapper/types.js +2 -0
  47. package/build/contexts/app/src/index.d.ts +10 -0
  48. package/build/contexts/app/src/index.js +12 -0
  49. package/build/contexts/app/types.d.ts +6 -0
  50. package/build/contexts/app/types.js +2 -0
  51. package/build/contexts/pathname.d.ts +19 -0
  52. package/build/contexts/pathname.js +24 -0
  53. package/build/contexts/router/index.d.ts +6 -0
  54. package/build/contexts/router/index.js +35 -0
  55. package/build/contexts/router/types.d.ts +12 -0
  56. package/build/contexts/router/types.js +2 -0
  57. package/build/contexts/router/utils.d.ts +2 -0
  58. package/build/contexts/router/utils.js +13 -0
  59. package/build/universal/Column/index.android.d.ts +3 -0
  60. package/build/universal/Column/index.android.js +8 -0
  61. package/build/universal/Column/index.d.ts +3 -0
  62. package/build/universal/Column/index.ios.d.ts +3 -0
  63. package/build/universal/Column/index.ios.js +7 -0
  64. package/build/universal/Column/index.js +19 -0
  65. package/build/universal/Column/types.d.ts +16 -0
  66. package/build/universal/Column/types.js +2 -0
  67. package/build/universal/Row/index.android.d.ts +3 -0
  68. package/build/universal/Row/index.android.js +8 -0
  69. package/build/universal/Row/index.d.ts +3 -0
  70. package/build/universal/Row/index.ios.d.ts +3 -0
  71. package/build/universal/Row/index.ios.js +7 -0
  72. package/build/universal/Row/index.js +19 -0
  73. package/build/universal/Row/types.d.ts +16 -0
  74. package/build/universal/Row/types.js +2 -0
  75. package/build/universal/index.d.ts +4 -0
  76. package/build/universal/index.js +5 -1
  77. package/package.json +84 -70
package/README.md CHANGED
@@ -5,32 +5,25 @@ Librería de componentes de UI nativos para apps **React Native** / **Expo** (Py
5
5
  ## Instalación
6
6
 
7
7
  ```bash
8
- npm install pytech-ui
8
+ npx expo install pytech-ui
9
9
  npx expo install pytech-ui @expo/ui expo react react-native
10
10
  ```
11
11
 
12
- Después de instalar, en iOS:
13
-
14
- ```bash
15
- npx pod-install
16
- ```
17
-
18
12
  ## Uso
19
13
 
20
14
  Componentes SwiftUI (iOS):
21
15
 
22
16
  ```tsx
23
- import { Gradient, ListItem, NavigationStack } from 'pytech-ui/swift-ui';
24
- import { padding } from '@expo/ui/swift-ui/modifiers';
17
+ import { Gradient, ListItem, List } from 'pytech-ui/swift-ui';
25
18
 
26
19
  export function Example() {
27
20
  return (
28
- <NavigationStack modifiers={[padding({ all: 16 })]}>
21
+ <List>
29
22
  <ListItem onPress={() => {}}>
30
23
  <ListItem.Headline>Hola</ListItem.Headline>
31
24
  </ListItem>
32
25
  <Gradient systemImage="star.fill" colors={['#7580ba', '#b1c6e4']} />
33
- </NavigationStack>
26
+ </List>
34
27
  );
35
28
  }
36
29
  ```
@@ -38,6 +31,9 @@ export function Example() {
38
31
  ## Plataformas
39
32
 
40
33
  Los componentes de `pytech-ui/swift-ui` requieren **iOS** y dependen de `@expo/ui`.
34
+ Los componentes de `pytech-ui/jetpack-compose` requieren **Android** y dependen de `@expo/ui`.
35
+
36
+ Los componentes de `pytech-ui` son multiplataforma y dependen de `@expo/ui`.
41
37
 
42
38
  ## Licencia
43
39
 
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Below are the colors that are used in the app. The colors are defined in the light and dark mode.
3
+ * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
4
+ */
5
+ export declare const colors: {
6
+ light: {
7
+ text: string;
8
+ textInvert: string;
9
+ background: string;
10
+ tint: string;
11
+ icon: string;
12
+ tabIconDefault: string;
13
+ tabIconSelected: string;
14
+ focusColor: string;
15
+ text2: string;
16
+ borderColorError: string;
17
+ backgroundColor2Error: string;
18
+ backgroundColor: string;
19
+ backgroundColor2: string;
20
+ description: string;
21
+ borderColor: string;
22
+ borderColor9: string;
23
+ borderColor8: string;
24
+ borderColor7: string;
25
+ borderColor6: string;
26
+ borderColor5: string;
27
+ borderColor4: string;
28
+ borderColor3: string;
29
+ borderColor2: string;
30
+ borderColor1: string;
31
+ backgroundColor3: string;
32
+ backgroundColorContactos: string;
33
+ backgroundColorModal: string;
34
+ backgroundColorModal2: string;
35
+ FiltroColorSeleccionado: string;
36
+ FiltroIconoSeleccionado: string;
37
+ FiltroColorNoSeleccionado: string;
38
+ FiltroIconoNoSeleccionado: string;
39
+ FiltroColorMensaje: string;
40
+ SearchBar: string;
41
+ SearchBarText: string;
42
+ text2Libretas: string;
43
+ contLibretas: string;
44
+ contTable: string;
45
+ contTableModal: string;
46
+ contTableModal2: string;
47
+ contTableLight: string;
48
+ contLibretasPressed: string;
49
+ skeletonGradientStart: string;
50
+ skeletonGradientEnd: string;
51
+ skeletonGradientStart2: string;
52
+ skeletonGradientEnd2: string;
53
+ pildoraVacia: string;
54
+ contTableLightBlue: string;
55
+ pressableLightBlue: string;
56
+ contTableOrange: string;
57
+ pressableOrange: string;
58
+ };
59
+ dark: {
60
+ text: string;
61
+ textInvert: string;
62
+ background: string;
63
+ tint: string;
64
+ icon: string;
65
+ tabIconDefault: string;
66
+ tabIconSelected: string;
67
+ focusColor: string;
68
+ text2: string;
69
+ borderColorError: string;
70
+ backgroundColor2Error: string;
71
+ backgroundColor: string;
72
+ backgroundColor2: string;
73
+ description: string;
74
+ borderColor: string;
75
+ borderColor9: string;
76
+ borderColor8: string;
77
+ borderColor7: string;
78
+ borderColor6: string;
79
+ borderColor5: string;
80
+ borderColor4: string;
81
+ borderColor3: string;
82
+ borderColor2: string;
83
+ borderColor1: string;
84
+ backgroundColor3: string;
85
+ backgroundColorContactos: string;
86
+ backgroundColorModal: string;
87
+ backgroundColorModal2: string;
88
+ FiltroColorSeleccionado: string;
89
+ FiltroIconoSeleccionado: string;
90
+ FiltroColorNoSeleccionado: string;
91
+ FiltroIconoNoSeleccionado: string;
92
+ FiltroColorMensaje: string;
93
+ SearchBar: string;
94
+ SearchBarText: string;
95
+ text2Libretas: string;
96
+ contLibretas: string;
97
+ contTable: string;
98
+ contTableModal: string;
99
+ contTableModal2: string;
100
+ contTableLight: string;
101
+ contLibretasPressed: string;
102
+ skeletonGradientStart: string;
103
+ skeletonGradientEnd: string;
104
+ skeletonGradientStart2: string;
105
+ skeletonGradientEnd2: string;
106
+ pildoraVacia: string;
107
+ contTableLightBlue: string;
108
+ pressableLightBlue: string;
109
+ contTableOrange: string;
110
+ pressableOrange: string;
111
+ };
112
+ perfil: {
113
+ default: {
114
+ dark: string;
115
+ light: string;
116
+ };
117
+ rojo: {
118
+ dark: string;
119
+ light: string;
120
+ };
121
+ amarillo: {
122
+ dark: string;
123
+ light: string;
124
+ };
125
+ azul_oscuro: {
126
+ dark: string;
127
+ light: string;
128
+ };
129
+ naranja: {
130
+ dark: string;
131
+ light: string;
132
+ };
133
+ marron_claro: {
134
+ dark: string;
135
+ light: string;
136
+ };
137
+ verde_agua: {
138
+ dark: string;
139
+ light: string;
140
+ };
141
+ marron_oscuro: {
142
+ dark: string;
143
+ light: string;
144
+ };
145
+ rosa: {
146
+ dark: string;
147
+ light: string;
148
+ };
149
+ azul_claro: {
150
+ dark: string;
151
+ light: string;
152
+ };
153
+ violeta: {
154
+ dark: string;
155
+ light: string;
156
+ };
157
+ celeste_oscuro: {
158
+ dark: string;
159
+ light: string;
160
+ };
161
+ gris: {
162
+ dark: string;
163
+ light: string;
164
+ };
165
+ celeste_claro: {
166
+ dark: string;
167
+ light: string;
168
+ };
169
+ verde_oscuro: {
170
+ dark: string;
171
+ light: string;
172
+ };
173
+ verde_claro: {
174
+ dark: string;
175
+ light: string;
176
+ };
177
+ };
178
+ filtros: {
179
+ azul: string;
180
+ verde: string;
181
+ violeta: string;
182
+ rosa: string;
183
+ naranja: string;
184
+ amarillo: string;
185
+ celeste: string;
186
+ rojo: string;
187
+ light: {
188
+ azul_bg: string;
189
+ verde_bg: string;
190
+ violeta_bg: string;
191
+ rosa_bg: string;
192
+ naranja_bg: string;
193
+ amarillo_bg: string;
194
+ celeste_bg: string;
195
+ };
196
+ dark: {
197
+ azul_bg: string;
198
+ verde_bg: string;
199
+ violeta_bg: string;
200
+ rosa_bg: string;
201
+ naranja_bg: string;
202
+ amarillo_bg: string;
203
+ celeste_bg: string;
204
+ };
205
+ };
206
+ especiales: {
207
+ azul: string;
208
+ rojo: string;
209
+ rosa_claro: string;
210
+ verde: string;
211
+ verde_claro: string;
212
+ celeste: string;
213
+ azul_pressed: string;
214
+ };
215
+ };
216
+ export type ColorScheme = keyof Pick<typeof colors, "light" | "dark">;
217
+ export type Theme = typeof colors["light"];
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * Below are the colors that are used in the app. The colors are defined in the light and dark mode.
4
+ * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.colors = void 0;
8
+ const tintColorLight = '#0a7ea4';
9
+ const tintColorDark = '#fff';
10
+ exports.colors = {
11
+ light: {
12
+ text: 'black',
13
+ textInvert: 'white',
14
+ background: '#fff',
15
+ tint: tintColorLight,
16
+ icon: 'hsl(206, 6.30%, 43.50%)',
17
+ tabIconDefault: '#687076',
18
+ tabIconSelected: tintColorLight,
19
+ focusColor: '#0076df',
20
+ text2: 'hsl(0, 0%, 10%)',
21
+ borderColorError: '#e30000',
22
+ backgroundColor2Error: '#fff2f4',
23
+ backgroundColor: 'white',
24
+ backgroundColor2: 'white',
25
+ description: 'hsl(240, 1.70%, 53.30%)',
26
+ borderColor: 'rgba(150, 150, 150, 1)',
27
+ borderColor9: 'rgba(150, 150, 150, 0.9)',
28
+ borderColor8: 'rgba(150, 150, 150, 0.8)',
29
+ borderColor7: 'rgba(150, 150, 150, 0.7)',
30
+ borderColor6: 'rgba(150, 150, 150, 0.6)',
31
+ borderColor5: 'rgba(150, 150, 150, 0.5)',
32
+ borderColor4: 'rgba(150, 150, 150, 0.4)',
33
+ borderColor3: 'rgba(150, 150, 150, 0.3)',
34
+ borderColor2: 'rgba(150, 150, 150, 0.2)',
35
+ borderColor1: 'rgba(150, 150, 150, 0.1)',
36
+ backgroundColor3: '#f1eff5',
37
+ backgroundColorContactos: 'white',
38
+ backgroundColorModal: 'hsl(252, 22%, 95%)',
39
+ backgroundColorModal2: 'white',
40
+ FiltroColorSeleccionado: 'hsl(240, 1.70%, 23.10%)',
41
+ FiltroIconoSeleccionado: 'white',
42
+ FiltroColorNoSeleccionado: 'hsl(0, 0.00%, 91.40%)',
43
+ FiltroIconoNoSeleccionado: '#7d7d7f',
44
+ FiltroColorMensaje: 'hsl(252, 22%, 95%)',
45
+ SearchBar: '#f4f4f4',
46
+ SearchBarText: '#86868a',
47
+ text2Libretas: 'hsl(240, 1%, 55%)',
48
+ contLibretas: 'white',
49
+ contTable: 'white',
50
+ contTableModal: 'white',
51
+ contTableModal2: 'hsl(252, 22%, 95%)',
52
+ contTableLight: 'hsl(252, 22%, 95%)',
53
+ contLibretasPressed: 'hsl(252, 5%, 81%)',
54
+ skeletonGradientStart: 'hsl(0, 0.00%, 100%)',
55
+ skeletonGradientEnd: 'hsl(0, 0.00%, 91.40%)',
56
+ skeletonGradientStart2: 'hsl(0, 0.00%, 80%)',
57
+ skeletonGradientEnd2: 'hsl(0, 0.00%, 70%)',
58
+ pildoraVacia: 'hsl(252, 22%, 95%)',
59
+ contTableLightBlue: 'hsl(190, 79%, 94%)',
60
+ pressableLightBlue: 'hsl(189, 82%, 89%)',
61
+ contTableOrange: 'hsl(37, 76.50%, 90%)',
62
+ pressableOrange: 'hsl(36, 80%, 85%)'
63
+ },
64
+ dark: {
65
+ text: 'white',
66
+ textInvert: 'black',
67
+ background: '#151718',
68
+ tint: tintColorDark,
69
+ icon: '#9BA1A6',
70
+ tabIconDefault: '#9BA1A6',
71
+ tabIconSelected: tintColorDark,
72
+ focusColor: '#0076df',
73
+ text2: 'hsl(0, 0%, 90%)',
74
+ borderColorError: '#ff3037',
75
+ backgroundColor2Error: '#300',
76
+ backgroundColor: 'hsl(240, 3.40%, 11.40%)',
77
+ backgroundColor2: 'hsl(240, 2.60%, 14.90%)',
78
+ description: 'hsl(228, 2.70%, 63.30%)',
79
+ borderColor: 'rgba(150, 150, 150, 1)',
80
+ borderColor9: 'rgba(150, 150, 150, 0.9)',
81
+ borderColor8: 'rgba(150, 150, 150, 0.8)',
82
+ borderColor7: 'rgba(150, 150, 150, 0.7)',
83
+ borderColor6: 'rgba(150, 150, 150, 0.6)',
84
+ borderColor5: 'rgba(150, 150, 150, 0.5)',
85
+ borderColor4: 'rgba(150, 150, 150, 0.4)',
86
+ borderColor3: 'rgba(150, 150, 150, 0.3)',
87
+ borderColor2: 'rgba(150, 150, 150, 0.2)',
88
+ borderColor1: 'rgba(150, 150, 150, 0.1)',
89
+ backgroundColor3: '#000000',
90
+ backgroundColorContactos: 'hsl(0, 0%, 0%)',
91
+ backgroundColorModal: 'hsl(240, 3%, 11%)',
92
+ backgroundColorModal2: 'hsl(240, 3%, 11%)',
93
+ FiltroColorSeleccionado: 'white',
94
+ FiltroIconoSeleccionado: 'hsl(240, 3.40%, 11.40%)',
95
+ FiltroColorNoSeleccionado: 'hsl(0, 0.00%, 14.90%)',
96
+ FiltroIconoNoSeleccionado: 'hsl(228, 2.70%, 63.30%)',
97
+ FiltroColorMensaje: 'hsl(0, 0.00%, 14.90%)',
98
+ SearchBar: '#f4f4f4',
99
+ SearchBarText: '#86868a',
100
+ text2Libretas: 'hsl(252, 3%, 62%)',
101
+ contLibretas: 'hsl(240, 3%, 11%)',
102
+ contTable: 'hsl(240, 3%, 11%)',
103
+ contTableModal: 'hsl(240, 2%, 18%)',
104
+ contTableModal2: 'hsl(240, 2%, 18%)',
105
+ contTableLight: 'hsl(240, 2%, 18%)',
106
+ contLibretasPressed: 'hsl(240, 2%, 22%)',
107
+ skeletonGradientStart: 'hsl(0, 0.00%, 14.90%)',
108
+ skeletonGradientEnd: 'hsl(0, 0.00%, 24.90%)',
109
+ skeletonGradientStart2: 'hsl(0, 0.00%, 14.90%)',
110
+ skeletonGradientEnd2: 'hsl(0, 0.00%, 24.90%)',
111
+ pildoraVacia: 'hsl(240, 3%, 11%)',
112
+ contTableLightBlue: 'hsl(195, 62%, 13%)',
113
+ pressableLightBlue: 'hsl(193, 63%, 18%)',
114
+ contTableOrange: 'hsl(38, 63.60%, 17.30%)',
115
+ pressableOrange: 'hsl(36, 64.60%, 22.30%)'
116
+ },
117
+ perfil: {
118
+ default: { dark: '#7580ba', light: '#b1c6e4' },
119
+ rojo: { dark: '#b12309', light: '#ff856a' },
120
+ amarillo: { dark: '#c97c00', light: '#ffe535' },
121
+ azul_oscuro: { dark: '#0f236d', light: '#6a7ec9' },
122
+ naranja: { dark: '#9c4d00', light: '#ffba53' },
123
+ marron_claro: { dark: '#75582e', light: '#e4c79d' },
124
+ verde_agua: { dark: '#105951', light: '#80c3ba' },
125
+ marron_oscuro: { dark: '#4f2a00', light: '#aa855a' },
126
+ rosa: { dark: '#892466', light: '#f08bcc' },
127
+ azul_claro: { dark: '#334696', light: '#9eb1ff' },
128
+ violeta: { dark: '#482d76', light: '#ac90d9' },
129
+ celeste_oscuro: { dark: '#005095', light: '#6dbfff' },
130
+ gris: { dark: '#445255', light: '#b0bec1' },
131
+ celeste_claro: { dark: '#237286', light: '#98e7fb' },
132
+ verde_oscuro: { dark: '#215b1d', light: '#8ac487' },
133
+ verde_claro: { dark: '#4b5f13', light: '#bbce82' }
134
+ },
135
+ filtros: {
136
+ azul: 'hsl(208, 75.80%, 57.80%)',
137
+ verde: 'hsl(140, 39.70%, 46.90%)',
138
+ violeta: 'hsl(243, 31.80%, 58.60%)',
139
+ rosa: 'hsl(337, 61.50%, 57.30%)',
140
+ naranja: ' hsl(28, 72.40%, 56.10%)',
141
+ amarillo: 'hsl(48, 64.30%, 45.70%)',
142
+ celeste: 'hsl(190, 65.20%, 53.40%)',
143
+ rojo: 'hsl(3, 97.70%, 65.30%)',
144
+ light: {
145
+ azul_bg: 'hsl(208, 75.80%, 95%)',
146
+ verde_bg: 'hsl(140, 33%, 89%)',
147
+ violeta_bg: 'hsl(244, 33%, 92%)',
148
+ rosa_bg: 'hsl(340, 71%, 92%)',
149
+ naranja_bg: 'hsl(28, 72.40%, 95%)',
150
+ amarillo_bg: 'hsl(48, 64.30%, 95%)',
151
+ celeste_bg: 'hsl(190, 65.20%, 95%)',
152
+ },
153
+ dark: {
154
+ azul_bg: 'hsl(208, 75.80%, 10%)',
155
+ verde_bg: 'hsl(144, 45%, 9%)',
156
+ violeta_bg: 'hsl(240, 21%, 11%)',
157
+ rosa_bg: 'hsl(339, 45%, 11%)',
158
+ naranja_bg: 'hsl(28, 72.40%, 10%)',
159
+ amarillo_bg: 'hsl(48, 64.30%, 10%)',
160
+ celeste_bg: 'hsl(190, 65.20%, 10%)',
161
+ }
162
+ },
163
+ especiales: {
164
+ azul: 'hsl(207, 100%, 50%)',
165
+ rojo: 'hsl(358, 100%, 62%)',
166
+ rosa_claro: 'hsl(329, 86.5%, 74.4%)',
167
+ verde: 'hsl(135, 58.70%, 49.40%)',
168
+ verde_claro: 'hsl(132, 65%, 64%)',
169
+ celeste: 'hsl(179, 100%, 76%)',
170
+ azul_pressed: 'hsl(197, 100%, 50%)',
171
+ }
172
+ };
@@ -0,0 +1,88 @@
1
+ {
2
+ "fixed": {
3
+ "lightText": "#FFFFFF",
4
+ "darkText": "#000000"
5
+ },
6
+ "scheme": {
7
+ "light": {
8
+ "systemBlue": "#007AFF",
9
+ "systemBrown": "#A2845E",
10
+ "systemCyan": "#32ADE6",
11
+ "systemGreen": "#34C759",
12
+ "systemIndigo": "#5856D6",
13
+ "systemMint": "#00C7BE",
14
+ "systemOrange": "#FF9500",
15
+ "systemPink": "#FF2D55",
16
+ "systemPurple": "#AF52DE",
17
+ "systemRed": "#FF3B30",
18
+ "systemTeal": "#30B0C7",
19
+ "systemYellow": "#FFCC00",
20
+ "systemGray": "#8E8E93",
21
+ "systemGray2": "#AEAEB2",
22
+ "systemGray3": "#C7C7CC",
23
+ "systemGray4": "#D1D1D6",
24
+ "systemGray5": "#E5E5EA",
25
+ "systemGray6": "#F2F2F7",
26
+ "label": "#000000",
27
+ "secondaryLabel": "#8A8A8E",
28
+ "tertiaryLabel": "#C4C4C6",
29
+ "quaternaryLabel": "#DCDCDD",
30
+ "placeholderText": "#C4C4C6",
31
+ "link": "#007AFF",
32
+ "systemBackground": "#FFFFFF",
33
+ "secondarySystemBackground": "#F2F2F7",
34
+ "tertiarySystemBackground": "#FFFFFF",
35
+ "systemGroupedBackground": "#F2F2F7",
36
+ "secondarySystemGroupedBackground": "#FFFFFF",
37
+ "tertiarySystemGroupedBackground": "#F2F2F7",
38
+ "systemFill": "#E4E4E6",
39
+ "secondarySystemFill": "#E9E9EA",
40
+ "tertiarySystemFill": "#EEEEEF",
41
+ "quaternarySystemFill": "#F4F4F5",
42
+ "separator": "#C6C6C8",
43
+ "opaqueSeparator": "#C5C5C8",
44
+ "systemLightBlue": "#e0f0ff",
45
+ "dialogBackground": "#F9F9F9"
46
+ },
47
+ "dark": {
48
+ "systemBlue": "#0A84FF",
49
+ "systemBrown": "#AC8E68",
50
+ "systemCyan": "#64D2FF",
51
+ "systemGreen": "#30D158",
52
+ "systemIndigo": "#5E5CE6",
53
+ "systemMint": "#66D4CF",
54
+ "systemOrange": "#FF9F0A",
55
+ "systemPink": "#FF375F",
56
+ "systemPurple": "#BF5AF2",
57
+ "systemRed": "#FF453A",
58
+ "systemTeal": "#40C8E0",
59
+ "systemYellow": "#FFD60A",
60
+ "systemGray": "#8E8E93",
61
+ "systemGray2": "#636366",
62
+ "systemGray3": "#48484A",
63
+ "systemGray4": "#3A3A3C",
64
+ "systemGray5": "#2C2C2E",
65
+ "systemGray6": "#1C1C1E",
66
+ "label": "#FFFFFF",
67
+ "secondaryLabel": "#F3F3F8",
68
+ "tertiaryLabel": "#F8F8FC",
69
+ "quaternaryLabel": "#FBFBFD",
70
+ "placeholderText": "#F8F8FC",
71
+ "link": "#0B84FF",
72
+ "systemBackground": "#000000",
73
+ "secondarySystemBackground": "#1C1C1E",
74
+ "tertiarySystemBackground": "#2C2C2E",
75
+ "systemGroupedBackground": "#000000",
76
+ "secondarySystemGroupedBackground": "#1C1C1E",
77
+ "tertiarySystemGroupedBackground": "#2C2C2E",
78
+ "systemFill": "#CECED1",
79
+ "secondarySystemFill": "#D3D3D6",
80
+ "tertiarySystemFill": "#DEDEE1",
81
+ "quaternarySystemFill": "#E6E6E8",
82
+ "separator": "#98989B",
83
+ "opaqueSeparator": "#38383A",
84
+ "systemLightBlue": "#192a39",
85
+ "dialogBackground": "#1A1A1A"
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,7 @@
1
+ type ExpoEnv = {
2
+ SUPABASE_URL: string;
3
+ SUPABASE_KEY: string;
4
+ SUPABASE_SERVICE_ROLE_KEY: string;
5
+ };
6
+ export declare const expoEnv: Partial<ExpoEnv>;
7
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.expoEnv = void 0;
7
+ const expo_constants_1 = __importDefault(require("expo-constants"));
8
+ const getExpoEnv = () => {
9
+ const expoEnv = expo_constants_1.default.expoConfig?.extra || {};
10
+ return {
11
+ SUPABASE_URL: expoEnv.SUPABASE_URL || process.env.SUPABASE_URL,
12
+ SUPABASE_KEY: expoEnv.SUPABASE_KEY || process.env.SUPABASE_KEY,
13
+ SUPABASE_SERVICE_ROLE_KEY: expoEnv.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_SERVICE_ROLE_KEY,
14
+ };
15
+ };
16
+ exports.expoEnv = getExpoEnv();
@@ -0,0 +1,9 @@
1
+ export declare const numberToText: (value: number) => string;
2
+ export declare const numberToTextCurrency: (value: number) => string;
3
+ export declare const capitalize: (string: string) => string;
4
+ export declare const textToNumber: (value: string) => number;
5
+ export declare const textToDate: (value?: string) => Date | undefined;
6
+ export declare const textWithTimeToDate: (value?: string) => Date | undefined;
7
+ export declare const dateToText: (date: Date, format?: string) => string;
8
+ export declare const dateToLongText: (date: Date) => string;
9
+ export declare const phoneToText: (phone: number | string) => string;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.phoneToText = exports.dateToLongText = exports.dateToText = exports.textWithTimeToDate = exports.textToDate = exports.textToNumber = exports.capitalize = exports.numberToTextCurrency = exports.numberToText = void 0;
4
+ const date_fns_1 = require("date-fns");
5
+ // Number
6
+ const formatter = new Intl.NumberFormat('es-AR');
7
+ const numberToText = (value) => {
8
+ const abs = formatter.format(Math.abs(value));
9
+ return value < 0 ? `(${abs})` : abs;
10
+ };
11
+ exports.numberToText = numberToText;
12
+ const numberToTextCurrency = (value) => {
13
+ return new Intl.NumberFormat('es-AR', {
14
+ style: 'currency',
15
+ currency: 'ARS',
16
+ minimumFractionDigits: 0, // <- no obliga decimales
17
+ maximumFractionDigits: 2 // <- si vienen, los respeta
18
+ }).format(Number(value));
19
+ };
20
+ exports.numberToTextCurrency = numberToTextCurrency;
21
+ // Text
22
+ const capitalize = (string) => (string.charAt(0).toUpperCase() + string.slice(1));
23
+ exports.capitalize = capitalize;
24
+ const textToNumber = (value) => {
25
+ const trimmed = value.trim();
26
+ const isNegative = /^\(.*\)$/.test(trimmed);
27
+ const normalized = trimmed
28
+ .replace(/[()]/g, '')
29
+ .replace(/\./g, '')
30
+ .replace(',', '.');
31
+ const parsed = Number.parseFloat(normalized);
32
+ if (Number.isNaN(parsed))
33
+ return 0;
34
+ return isNegative ? -parsed : parsed;
35
+ };
36
+ exports.textToNumber = textToNumber;
37
+ const textToDate = (value) => {
38
+ if (!value)
39
+ return undefined;
40
+ const date = /^\d{4}-\d{2}-\d{2}$/.test(value)
41
+ ? new Date(`${value}T00:00:00-03:00`)
42
+ : new Date(value);
43
+ return Number.isNaN(date.getTime()) ? undefined : date;
44
+ };
45
+ exports.textToDate = textToDate;
46
+ const textWithTimeToDate = (value) => {
47
+ if (!value)
48
+ return undefined;
49
+ const match = value.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);
50
+ if (!match)
51
+ return undefined;
52
+ const hours = Number(match[1]);
53
+ const minutes = Number(match[2]);
54
+ const seconds = Number(match[3] ?? 0);
55
+ if (hours > 23 || minutes > 59 || seconds > 59)
56
+ return undefined;
57
+ const today = new Intl.DateTimeFormat('en-CA', {
58
+ timeZone: 'America/Argentina/Buenos_Aires',
59
+ }).format(new Date());
60
+ const time = [
61
+ String(hours).padStart(2, '0'),
62
+ String(minutes).padStart(2, '0'),
63
+ String(seconds).padStart(2, '0'),
64
+ ].join(':');
65
+ const date = new Date(`${today}T${time}-03:00`);
66
+ return Number.isNaN(date.getTime()) ? undefined : date;
67
+ };
68
+ exports.textWithTimeToDate = textWithTimeToDate;
69
+ // Date
70
+ const dateToText = (date, format = 'yyyy-MM-dd') => ((0, date_fns_1.format)(date, format));
71
+ exports.dateToText = dateToText;
72
+ const dateToLongText = (date) => {
73
+ const monthText = new Intl.DateTimeFormat('es-AR', {
74
+ month: 'long',
75
+ }).format(date);
76
+ const dayText = new Intl.DateTimeFormat('es-AR', {
77
+ day: '2-digit',
78
+ }).format(date);
79
+ const yearText = new Intl.DateTimeFormat('es-AR', {
80
+ year: 'numeric',
81
+ }).format(date);
82
+ return `${monthText} ${dayText}, ${yearText}`;
83
+ };
84
+ exports.dateToLongText = dateToLongText;
85
+ // Phone
86
+ const phoneToText = (phone) => {
87
+ const digits = phone.toString().replace(/\D/g, '');
88
+ if (!digits)
89
+ return '';
90
+ const formattedPart = digits.slice(0, 13);
91
+ const extra = digits.slice(13);
92
+ let base = formattedPart;
93
+ if (formattedPart.length > 4) {
94
+ const right = formattedPart.slice(-4);
95
+ const left = formattedPart.slice(0, -4);
96
+ if (formattedPart.length <= 8) {
97
+ base = `${left}-${right}`;
98
+ }
99
+ else {
100
+ const prefix = formattedPart.slice(0, -8);
101
+ const middle = formattedPart.slice(-8, -4);
102
+ const p3 = prefix.slice(-2);
103
+ const p2 = prefix.slice(-3, -2);
104
+ const p1 = prefix.slice(0, -3);
105
+ base = [p1, p2, p3, `${middle}-${right}`]
106
+ .filter(Boolean)
107
+ .join(' ');
108
+ }
109
+ }
110
+ return extra ? `${base}${extra}` : base;
111
+ };
112
+ exports.phoneToText = phoneToText;
@@ -0,0 +1,6 @@
1
+ export declare const useEffectWithoutFirstRender: (effect: () => any, deps: any[]) => void;
2
+ export declare const useLayoutEffectWithoutFirstRender: (effect: () => any, deps: any[]) => void;
3
+ export declare const useAsyncEffect: (effect: (isMounted: () => boolean) => Promise<any>, deps: any[]) => void;
4
+ export declare const useAsyncEffectWithoutFirstRender: (effect: (isMounted: () => boolean) => Promise<any>, deps: any[]) => void;
5
+ export declare const useAsyncFocusEffect: (effect: (isMounted: () => boolean) => Promise<any>) => void;
6
+ export declare const useAsyncFocusEffectWithoutFirstRender: (effect: (isMounted: () => boolean) => Promise<any>) => void;