@acvl/mobile-components 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +146 -2
  2. package/assets/fonts/Inter_400Regular.ttf +0 -0
  3. package/assets/fonts/Inter_500Medium.ttf +0 -0
  4. package/assets/fonts/Inter_600SemiBold.ttf +0 -0
  5. package/assets/fonts/Inter_700Bold.ttf +0 -0
  6. package/assets/fonts/Inter_800ExtraBold.ttf +0 -0
  7. package/assets/fonts/Inter_900Black.ttf +0 -0
  8. package/assets/fonts/OFL.txt +93 -0
  9. package/lib/module/componentes/AccionesDelEncabezado.js +212 -0
  10. package/lib/module/componentes/AccionesDelEncabezado.js.map +1 -0
  11. package/lib/module/componentes/BotonDeAvatar.js +55 -0
  12. package/lib/module/componentes/BotonDeAvatar.js.map +1 -0
  13. package/lib/module/componentes/BotonGrande.js +105 -0
  14. package/lib/module/componentes/BotonGrande.js.map +1 -0
  15. package/lib/module/componentes/CabeceraEmpujada.js +101 -0
  16. package/lib/module/componentes/CabeceraEmpujada.js.map +1 -0
  17. package/lib/module/componentes/Chip.js +77 -0
  18. package/lib/module/componentes/Chip.js.map +1 -0
  19. package/lib/module/componentes/ContenidoDePantalla.js +56 -0
  20. package/lib/module/componentes/ContenidoDePantalla.js.map +1 -0
  21. package/lib/module/componentes/EstadoVacio.js +65 -0
  22. package/lib/module/componentes/EstadoVacio.js.map +1 -0
  23. package/lib/module/componentes/Foto.js +106 -0
  24. package/lib/module/componentes/Foto.js.map +1 -0
  25. package/lib/module/componentes/IconoDeRenglon.js +44 -0
  26. package/lib/module/componentes/IconoDeRenglon.js.map +1 -0
  27. package/lib/module/componentes/Logo.js +44 -0
  28. package/lib/module/componentes/Logo.js.map +1 -0
  29. package/lib/module/componentes/Nota.js +51 -0
  30. package/lib/module/componentes/Nota.js.map +1 -0
  31. package/lib/module/componentes/OpcionesExcluyentes.js +69 -0
  32. package/lib/module/componentes/OpcionesExcluyentes.js.map +1 -0
  33. package/lib/module/componentes/PantallaDeError.js +84 -0
  34. package/lib/module/componentes/PantallaDeError.js.map +1 -0
  35. package/lib/module/componentes/Pestanas.js +87 -0
  36. package/lib/module/componentes/Pestanas.js.map +1 -0
  37. package/lib/module/componentes/Rotulo.js +28 -0
  38. package/lib/module/componentes/Rotulo.js.map +1 -0
  39. package/lib/module/componentes/RotuloDeSeccion.js +87 -0
  40. package/lib/module/componentes/RotuloDeSeccion.js.map +1 -0
  41. package/lib/module/componentes/Tarjeta.js +47 -0
  42. package/lib/module/componentes/Tarjeta.js.map +1 -0
  43. package/lib/module/componentes/TarjetaDeDatos.js +79 -0
  44. package/lib/module/componentes/TarjetaDeDatos.js.map +1 -0
  45. package/lib/module/componentes/TiraDeFotos.js +184 -0
  46. package/lib/module/componentes/TiraDeFotos.js.map +1 -0
  47. package/lib/module/componentes/VisorDeFoto.js +171 -0
  48. package/lib/module/componentes/VisorDeFoto.js.map +1 -0
  49. package/lib/module/componentes/logos/bola-blanca.png +0 -0
  50. package/lib/module/componentes/logos/bola.png +0 -0
  51. package/lib/module/componentes/logos/logo-blanco.png +0 -0
  52. package/lib/module/componentes/logos/logo.png +0 -0
  53. package/lib/module/dialogos/HostDeDialogos.js +170 -0
  54. package/lib/module/dialogos/HostDeDialogos.js.map +1 -0
  55. package/lib/module/dialogos/dialogos.js +112 -0
  56. package/lib/module/dialogos/dialogos.js.map +1 -0
  57. package/lib/module/formularios/CampoDeSeleccion.js +47 -0
  58. package/lib/module/formularios/CampoDeSeleccion.js.map +1 -0
  59. package/lib/module/formularios/SelectorDeOpcion.js +406 -0
  60. package/lib/module/formularios/SelectorDeOpcion.js.map +1 -0
  61. package/lib/module/formularios/TextoDeAccesoControlado.js +73 -0
  62. package/lib/module/formularios/TextoDeAccesoControlado.js.map +1 -0
  63. package/lib/module/formularios/campos.js +493 -0
  64. package/lib/module/formularios/campos.js.map +1 -0
  65. package/lib/module/formularios/controlados.js +197 -0
  66. package/lib/module/formularios/controlados.js.map +1 -0
  67. package/lib/module/formularios/errores.js +91 -0
  68. package/lib/module/formularios/errores.js.map +1 -0
  69. package/lib/module/formularios/guardado.js +78 -0
  70. package/lib/module/formularios/guardado.js.map +1 -0
  71. package/lib/module/formularios/useBusqueda.js +22 -0
  72. package/lib/module/formularios/useBusqueda.js.map +1 -0
  73. package/lib/module/fotos/elegir.js +178 -0
  74. package/lib/module/fotos/elegir.js.map +1 -0
  75. package/lib/module/fotos/index.js +8 -0
  76. package/lib/module/fotos/index.js.map +1 -0
  77. package/lib/module/fotos/reducir.js +93 -0
  78. package/lib/module/fotos/reducir.js.map +1 -0
  79. package/lib/module/hoja/HojaInferior.js +108 -0
  80. package/lib/module/hoja/HojaInferior.js.map +1 -0
  81. package/lib/module/hoja/index.js +7 -0
  82. package/lib/module/hoja/index.js.map +1 -0
  83. package/lib/module/hoja/useMasDeLaFicha.js +48 -0
  84. package/lib/module/hoja/useMasDeLaFicha.js.map +1 -0
  85. package/lib/module/index.js +66 -0
  86. package/lib/module/index.js.map +1 -0
  87. package/lib/module/listas/HojaDeFiltros.js +260 -0
  88. package/lib/module/listas/HojaDeFiltros.js.map +1 -0
  89. package/lib/module/listas/ListaPaginada.js +103 -0
  90. package/lib/module/listas/ListaPaginada.js.map +1 -0
  91. package/lib/module/listas/TarjetaDeslizable.js +118 -0
  92. package/lib/module/listas/TarjetaDeslizable.js.map +1 -0
  93. package/lib/module/listas/paginado.js +11 -0
  94. package/lib/module/listas/paginado.js.map +1 -0
  95. package/lib/module/listas/piezas.js +603 -0
  96. package/lib/module/listas/piezas.js.map +1 -0
  97. package/lib/module/navegacion/BarraDePestanas.js +162 -0
  98. package/lib/module/navegacion/BarraDePestanas.js.map +1 -0
  99. package/lib/module/navegacion/BotonDeBarra.js +58 -0
  100. package/lib/module/navegacion/BotonDeBarra.js.map +1 -0
  101. package/lib/module/navegacion/encabezado.js +103 -0
  102. package/lib/module/navegacion/encabezado.js.map +1 -0
  103. package/lib/module/pantallas/PantallaDeAcceso.js +195 -0
  104. package/lib/module/pantallas/PantallaDeAcceso.js.map +1 -0
  105. package/lib/module/pantallas/PantallaDeEdicion.js +121 -0
  106. package/lib/module/pantallas/PantallaDeEdicion.js.map +1 -0
  107. package/lib/module/pantallas/PantallaDeFicha.js +94 -0
  108. package/lib/module/pantallas/PantallaDeFicha.js.map +1 -0
  109. package/lib/module/pantallas/PantallaDePerfil.js +137 -0
  110. package/lib/module/pantallas/PantallaDePerfil.js.map +1 -0
  111. package/lib/module/tema/ProveedorDeTema.js +122 -0
  112. package/lib/module/tema/ProveedorDeTema.js.map +1 -0
  113. package/lib/module/tema/estilos.js +54 -0
  114. package/lib/module/tema/estilos.js.map +1 -0
  115. package/lib/module/tema/fuentes.js +28 -0
  116. package/lib/module/tema/fuentes.js.map +1 -0
  117. package/lib/module/tema/index.js +8 -0
  118. package/lib/module/tema/index.js.map +1 -0
  119. package/lib/module/tema/paleta.js +107 -0
  120. package/lib/module/tema/paleta.js.map +1 -0
  121. package/lib/module/tema/tipografia.js +32 -0
  122. package/lib/module/tema/tipografia.js.map +1 -0
  123. package/lib/module/texto.js +48 -0
  124. package/lib/module/texto.js.map +1 -0
  125. package/lib/typescript/src/componentes/AccionesDelEncabezado.d.ts +34 -0
  126. package/lib/typescript/src/componentes/AccionesDelEncabezado.d.ts.map +1 -0
  127. package/lib/typescript/src/componentes/BotonDeAvatar.d.ts +17 -0
  128. package/lib/typescript/src/componentes/BotonDeAvatar.d.ts.map +1 -0
  129. package/lib/typescript/src/componentes/BotonGrande.d.ts +26 -0
  130. package/lib/typescript/src/componentes/BotonGrande.d.ts.map +1 -0
  131. package/lib/typescript/src/componentes/CabeceraEmpujada.d.ts +18 -0
  132. package/lib/typescript/src/componentes/CabeceraEmpujada.d.ts.map +1 -0
  133. package/lib/typescript/src/componentes/Chip.d.ts +14 -0
  134. package/lib/typescript/src/componentes/Chip.d.ts.map +1 -0
  135. package/lib/typescript/src/componentes/ContenidoDePantalla.d.ts +17 -0
  136. package/lib/typescript/src/componentes/ContenidoDePantalla.d.ts.map +1 -0
  137. package/lib/typescript/src/componentes/EstadoVacio.d.ts +17 -0
  138. package/lib/typescript/src/componentes/EstadoVacio.d.ts.map +1 -0
  139. package/lib/typescript/src/componentes/Foto.d.ts +41 -0
  140. package/lib/typescript/src/componentes/Foto.d.ts.map +1 -0
  141. package/lib/typescript/src/componentes/IconoDeRenglon.d.ts +25 -0
  142. package/lib/typescript/src/componentes/IconoDeRenglon.d.ts.map +1 -0
  143. package/lib/typescript/src/componentes/Logo.d.ts +13 -0
  144. package/lib/typescript/src/componentes/Logo.d.ts.map +1 -0
  145. package/lib/typescript/src/componentes/Nota.d.ts +7 -0
  146. package/lib/typescript/src/componentes/Nota.d.ts.map +1 -0
  147. package/lib/typescript/src/componentes/OpcionesExcluyentes.d.ts +14 -0
  148. package/lib/typescript/src/componentes/OpcionesExcluyentes.d.ts.map +1 -0
  149. package/lib/typescript/src/componentes/PantallaDeError.d.ts +23 -0
  150. package/lib/typescript/src/componentes/PantallaDeError.d.ts.map +1 -0
  151. package/lib/typescript/src/componentes/Pestanas.d.ts +28 -0
  152. package/lib/typescript/src/componentes/Pestanas.d.ts.map +1 -0
  153. package/lib/typescript/src/componentes/Rotulo.d.ts +6 -0
  154. package/lib/typescript/src/componentes/Rotulo.d.ts.map +1 -0
  155. package/lib/typescript/src/componentes/RotuloDeSeccion.d.ts +20 -0
  156. package/lib/typescript/src/componentes/RotuloDeSeccion.d.ts.map +1 -0
  157. package/lib/typescript/src/componentes/Tarjeta.d.ts +15 -0
  158. package/lib/typescript/src/componentes/Tarjeta.d.ts.map +1 -0
  159. package/lib/typescript/src/componentes/TarjetaDeDatos.d.ts +13 -0
  160. package/lib/typescript/src/componentes/TarjetaDeDatos.d.ts.map +1 -0
  161. package/lib/typescript/src/componentes/TiraDeFotos.d.ts +36 -0
  162. package/lib/typescript/src/componentes/TiraDeFotos.d.ts.map +1 -0
  163. package/lib/typescript/src/componentes/VisorDeFoto.d.ts +23 -0
  164. package/lib/typescript/src/componentes/VisorDeFoto.d.ts.map +1 -0
  165. package/lib/typescript/src/dialogos/HostDeDialogos.d.ts +14 -0
  166. package/lib/typescript/src/dialogos/HostDeDialogos.d.ts.map +1 -0
  167. package/lib/typescript/src/dialogos/dialogos.d.ts +65 -0
  168. package/lib/typescript/src/dialogos/dialogos.d.ts.map +1 -0
  169. package/lib/typescript/src/formularios/CampoDeSeleccion.d.ts +22 -0
  170. package/lib/typescript/src/formularios/CampoDeSeleccion.d.ts.map +1 -0
  171. package/lib/typescript/src/formularios/SelectorDeOpcion.d.ts +59 -0
  172. package/lib/typescript/src/formularios/SelectorDeOpcion.d.ts.map +1 -0
  173. package/lib/typescript/src/formularios/TextoDeAccesoControlado.d.ts +18 -0
  174. package/lib/typescript/src/formularios/TextoDeAccesoControlado.d.ts.map +1 -0
  175. package/lib/typescript/src/formularios/campos.d.ts +107 -0
  176. package/lib/typescript/src/formularios/campos.d.ts.map +1 -0
  177. package/lib/typescript/src/formularios/controlados.d.ts +29 -0
  178. package/lib/typescript/src/formularios/controlados.d.ts.map +1 -0
  179. package/lib/typescript/src/formularios/errores.d.ts +36 -0
  180. package/lib/typescript/src/formularios/errores.d.ts.map +1 -0
  181. package/lib/typescript/src/formularios/guardado.d.ts +36 -0
  182. package/lib/typescript/src/formularios/guardado.d.ts.map +1 -0
  183. package/lib/typescript/src/formularios/useBusqueda.d.ts +7 -0
  184. package/lib/typescript/src/formularios/useBusqueda.d.ts.map +1 -0
  185. package/lib/typescript/src/fotos/elegir.d.ts +58 -0
  186. package/lib/typescript/src/fotos/elegir.d.ts.map +1 -0
  187. package/lib/typescript/src/fotos/index.d.ts +3 -0
  188. package/lib/typescript/src/fotos/index.d.ts.map +1 -0
  189. package/lib/typescript/src/fotos/reducir.d.ts +32 -0
  190. package/lib/typescript/src/fotos/reducir.d.ts.map +1 -0
  191. package/lib/typescript/src/hoja/HojaInferior.d.ts +21 -0
  192. package/lib/typescript/src/hoja/HojaInferior.d.ts.map +1 -0
  193. package/lib/typescript/src/hoja/index.d.ts +3 -0
  194. package/lib/typescript/src/hoja/index.d.ts.map +1 -0
  195. package/lib/typescript/src/hoja/useMasDeLaFicha.d.ts +27 -0
  196. package/lib/typescript/src/hoja/useMasDeLaFicha.d.ts.map +1 -0
  197. package/lib/typescript/src/index.d.ts +45 -0
  198. package/lib/typescript/src/index.d.ts.map +1 -0
  199. package/lib/typescript/src/listas/HojaDeFiltros.d.ts +60 -0
  200. package/lib/typescript/src/listas/HojaDeFiltros.d.ts.map +1 -0
  201. package/lib/typescript/src/listas/ListaPaginada.d.ts +39 -0
  202. package/lib/typescript/src/listas/ListaPaginada.d.ts.map +1 -0
  203. package/lib/typescript/src/listas/TarjetaDeslizable.d.ts +33 -0
  204. package/lib/typescript/src/listas/TarjetaDeslizable.d.ts.map +1 -0
  205. package/lib/typescript/src/listas/paginado.d.ts +16 -0
  206. package/lib/typescript/src/listas/paginado.d.ts.map +1 -0
  207. package/lib/typescript/src/listas/piezas.d.ts +135 -0
  208. package/lib/typescript/src/listas/piezas.d.ts.map +1 -0
  209. package/lib/typescript/src/navegacion/BarraDePestanas.d.ts +57 -0
  210. package/lib/typescript/src/navegacion/BarraDePestanas.d.ts.map +1 -0
  211. package/lib/typescript/src/navegacion/BotonDeBarra.d.ts +15 -0
  212. package/lib/typescript/src/navegacion/BotonDeBarra.d.ts.map +1 -0
  213. package/lib/typescript/src/navegacion/encabezado.d.ts +44 -0
  214. package/lib/typescript/src/navegacion/encabezado.d.ts.map +1 -0
  215. package/lib/typescript/src/pantallas/PantallaDeAcceso.d.ts +32 -0
  216. package/lib/typescript/src/pantallas/PantallaDeAcceso.d.ts.map +1 -0
  217. package/lib/typescript/src/pantallas/PantallaDeEdicion.d.ts +38 -0
  218. package/lib/typescript/src/pantallas/PantallaDeEdicion.d.ts.map +1 -0
  219. package/lib/typescript/src/pantallas/PantallaDeFicha.d.ts +35 -0
  220. package/lib/typescript/src/pantallas/PantallaDeFicha.d.ts.map +1 -0
  221. package/lib/typescript/src/pantallas/PantallaDePerfil.d.ts +19 -0
  222. package/lib/typescript/src/pantallas/PantallaDePerfil.d.ts.map +1 -0
  223. package/lib/typescript/src/tema/ProveedorDeTema.d.ts +32 -0
  224. package/lib/typescript/src/tema/ProveedorDeTema.d.ts.map +1 -0
  225. package/lib/typescript/src/tema/estilos.d.ts +31 -0
  226. package/lib/typescript/src/tema/estilos.d.ts.map +1 -0
  227. package/lib/typescript/src/tema/fuentes.d.ts +20 -0
  228. package/lib/typescript/src/tema/fuentes.d.ts.map +1 -0
  229. package/lib/typescript/src/tema/index.d.ts +6 -0
  230. package/lib/typescript/src/tema/index.d.ts.map +1 -0
  231. package/lib/typescript/src/tema/paleta.d.ts +86 -0
  232. package/lib/typescript/src/tema/paleta.d.ts.map +1 -0
  233. package/lib/typescript/src/tema/tipografia.d.ts +29 -0
  234. package/lib/typescript/src/tema/tipografia.d.ts.map +1 -0
  235. package/lib/typescript/src/texto.d.ts +16 -0
  236. package/lib/typescript/src/texto.d.ts.map +1 -0
  237. package/package.json +135 -5
  238. package/src/componentes/AccionesDelEncabezado.tsx +247 -0
  239. package/src/componentes/BotonDeAvatar.tsx +59 -0
  240. package/src/componentes/BotonGrande.tsx +100 -0
  241. package/src/componentes/CabeceraEmpujada.tsx +69 -0
  242. package/src/componentes/Chip.tsx +60 -0
  243. package/src/componentes/ContenidoDePantalla.tsx +53 -0
  244. package/src/componentes/EstadoVacio.tsx +45 -0
  245. package/src/componentes/Foto.tsx +92 -0
  246. package/src/componentes/IconoDeRenglon.tsx +42 -0
  247. package/src/componentes/Logo.tsx +34 -0
  248. package/src/componentes/Nota.tsx +37 -0
  249. package/src/componentes/OpcionesExcluyentes.tsx +62 -0
  250. package/src/componentes/PantallaDeError.tsx +76 -0
  251. package/src/componentes/Pestanas.tsx +86 -0
  252. package/src/componentes/Rotulo.tsx +21 -0
  253. package/src/componentes/RotuloDeSeccion.tsx +71 -0
  254. package/src/componentes/Tarjeta.tsx +44 -0
  255. package/src/componentes/TarjetaDeDatos.tsx +62 -0
  256. package/src/componentes/TiraDeFotos.tsx +189 -0
  257. package/src/componentes/VisorDeFoto.tsx +181 -0
  258. package/src/componentes/logos/bola-blanca.png +0 -0
  259. package/src/componentes/logos/bola.png +0 -0
  260. package/src/componentes/logos/logo-blanco.png +0 -0
  261. package/src/componentes/logos/logo.png +0 -0
  262. package/src/dialogos/HostDeDialogos.tsx +172 -0
  263. package/src/dialogos/dialogos.ts +148 -0
  264. package/src/formularios/CampoDeSeleccion.tsx +46 -0
  265. package/src/formularios/SelectorDeOpcion.tsx +407 -0
  266. package/src/formularios/TextoDeAccesoControlado.tsx +72 -0
  267. package/src/formularios/campos.tsx +483 -0
  268. package/src/formularios/controlados.tsx +198 -0
  269. package/src/formularios/errores.ts +105 -0
  270. package/src/formularios/guardado.ts +76 -0
  271. package/src/formularios/useBusqueda.ts +19 -0
  272. package/src/fotos/elegir.ts +194 -0
  273. package/src/fotos/index.ts +15 -0
  274. package/src/fotos/reducir.ts +87 -0
  275. package/src/hoja/HojaInferior.tsx +102 -0
  276. package/src/hoja/index.ts +4 -0
  277. package/src/hoja/useMasDeLaFicha.tsx +63 -0
  278. package/src/index.ts +143 -0
  279. package/src/listas/HojaDeFiltros.tsx +261 -0
  280. package/src/listas/ListaPaginada.tsx +117 -0
  281. package/src/listas/TarjetaDeslizable.tsx +126 -0
  282. package/src/listas/paginado.ts +15 -0
  283. package/src/listas/piezas.tsx +594 -0
  284. package/src/navegacion/BarraDePestanas.tsx +198 -0
  285. package/src/navegacion/BotonDeBarra.tsx +61 -0
  286. package/src/navegacion/encabezado.tsx +88 -0
  287. package/src/pantallas/PantallaDeAcceso.tsx +184 -0
  288. package/src/pantallas/PantallaDeEdicion.tsx +116 -0
  289. package/src/pantallas/PantallaDeFicha.tsx +115 -0
  290. package/src/pantallas/PantallaDePerfil.tsx +126 -0
  291. package/src/tema/ProveedorDeTema.tsx +150 -0
  292. package/src/tema/estilos.ts +51 -0
  293. package/src/tema/fuentes.ts +20 -0
  294. package/src/tema/index.ts +10 -0
  295. package/src/tema/paleta.ts +147 -0
  296. package/src/tema/tipografia.ts +29 -0
  297. package/src/texto.tsx +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ActivityIndicator","ScrollView","View","KeyboardAvoidingView","useSafeAreaInsets","BotonGrande","CabeceraEmpujada","EstadoVacio","Nota","mensajeDeError","crearEstilos","usePaleta","jsx","_jsx","jsxs","_jsxs","EsperaDeEdicion","eyebrow","puede","sinPermiso","consulta","queEs","c","styles","useStyles","style","root","children","titulo","icono","texto","isError","error","modo","onPress","refetch","color","primary","cargando","FormularioDeEdicion","guardando","onGuardar","textoDeGuardar","insets","behavior","flex","contentContainerStyle","contenido","keyboardShouldPersistTaps","tono","pie","paddingBottom","bottom","backgroundColor","fondo","marginTop","padding","gap","paddingHorizontal","paddingTop","superficie"],"sourceRoot":"../../../src","sources":["pantallas/PantallaDeEdicion.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ import React from "react";
4
+ import { ActivityIndicator, RefreshControl, ScrollView, View } from "react-native";
5
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
6
+ import BotonGrande from "../componentes/BotonGrande";
7
+ import CabeceraEmpujada from "../componentes/CabeceraEmpujada";
8
+ import EstadoVacio from "../componentes/EstadoVacio";
9
+ import { crearEstilos, usePaleta } from "../tema";
10
+
11
+ /** Lo que la ficha lee de un `use…Query` de RTK Query. */
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ const esNoEncontrado = error => typeof error === "object" && error !== null && "status" in error && error.status === 404;
14
+
15
+ /**
16
+ * Una ficha de solo lectura (un viaje, un tracto, un cliente): la cabecera con atrás, y lo suyo en
17
+ * un scroll que se refresca jalando hacia abajo. Mientras carga, o si falla, lo dice en vez de
18
+ * pintar vacía.
19
+ *
20
+ * `children` sólo se pinta con datos: quien la usa no tiene que preguntar si ya llegaron.
21
+ */
22
+ export default function PantallaDeFicha({
23
+ eyebrow,
24
+ titulo,
25
+ consulta,
26
+ hayDatos,
27
+ acciones,
28
+ estado,
29
+ encima,
30
+ children
31
+ }) {
32
+ const c = usePaleta();
33
+ const styles = useStyles();
34
+ const insets = useSafeAreaInsets();
35
+ let cuerpo;
36
+ if (consulta.isLoading) {
37
+ cuerpo = /*#__PURE__*/_jsx(ActivityIndicator, {
38
+ color: c.primary,
39
+ size: "large",
40
+ style: styles.cargando
41
+ });
42
+ } else if (!hayDatos) {
43
+ cuerpo = esNoEncontrado(consulta.error) ? /*#__PURE__*/_jsx(EstadoVacio, {
44
+ icono: "file-hidden",
45
+ titulo: "No existe",
46
+ texto: "Puede que lo hayan borrado, o que no tengas permiso de verlo."
47
+ }) : /*#__PURE__*/_jsx(EstadoVacio, {
48
+ icono: "cloud-off-outline",
49
+ titulo: "No se pudo cargar",
50
+ texto: "Revisa tu se\xF1al e intenta de nuevo.",
51
+ children: /*#__PURE__*/_jsx(BotonGrande, {
52
+ icono: "refresh",
53
+ onPress: () => consulta.refetch(),
54
+ children: "Reintentar"
55
+ })
56
+ });
57
+ } else {
58
+ cuerpo = /*#__PURE__*/_jsx(ScrollView, {
59
+ contentContainerStyle: [styles.contenido, {
60
+ paddingBottom: insets.bottom + 24
61
+ }],
62
+ refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
63
+ refreshing: consulta.isFetching && !consulta.isLoading,
64
+ onRefresh: () => consulta.refetch(),
65
+ colors: [c.primary],
66
+ progressBackgroundColor: c.superficie
67
+ }),
68
+ children: children
69
+ });
70
+ }
71
+ return /*#__PURE__*/_jsxs(View, {
72
+ style: styles.root,
73
+ children: [/*#__PURE__*/_jsx(CabeceraEmpujada, {
74
+ eyebrow: eyebrow,
75
+ titulo: titulo,
76
+ acciones: hayDatos ? acciones : undefined,
77
+ estado: hayDatos ? estado : undefined
78
+ }), cuerpo, hayDatos ? encima : null]
79
+ });
80
+ }
81
+ const useStyles = crearEstilos(c => ({
82
+ root: {
83
+ flex: 1,
84
+ backgroundColor: c.fondo
85
+ },
86
+ cargando: {
87
+ marginTop: 40
88
+ },
89
+ contenido: {
90
+ padding: 16,
91
+ gap: 20
92
+ }
93
+ }));
94
+ //# sourceMappingURL=PantallaDeFicha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ActivityIndicator","RefreshControl","ScrollView","View","useSafeAreaInsets","BotonGrande","CabeceraEmpujada","EstadoVacio","crearEstilos","usePaleta","jsx","_jsx","jsxs","_jsxs","esNoEncontrado","error","status","PantallaDeFicha","eyebrow","titulo","consulta","hayDatos","acciones","estado","encima","children","c","styles","useStyles","insets","cuerpo","isLoading","color","primary","size","style","cargando","icono","texto","onPress","refetch","contentContainerStyle","contenido","paddingBottom","bottom","refreshControl","refreshing","isFetching","onRefresh","colors","progressBackgroundColor","superficie","root","undefined","flex","backgroundColor","fondo","marginTop","padding","gap"],"sourceRoot":"../../../src","sources":["pantallas/PantallaDeFicha.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ import React from "react";
4
+ import { ScrollView, View } from "react-native";
5
+ import { Avatar, Button, Card } from "react-native-paper";
6
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
7
+ import CabeceraEmpujada from "../componentes/CabeceraEmpujada";
8
+ import ContenidoDePantalla from "../componentes/ContenidoDePantalla";
9
+ import Pestanas from "../componentes/Pestanas";
10
+ import { crearEstilos, renglon, tipografia, usePreferenciaDeTema } from "../tema";
11
+ import { Text } from "../texto";
12
+
13
+ /**
14
+ * La apariencia: **igual que el teléfono** por omisión, o fija. Tres opciones y no un interruptor de
15
+ * «modo oscuro», como el del portal: con un interruptor, quien lo toca una vez ya no vuelve a seguir
16
+ * al teléfono.
17
+ */
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ const APARIENCIAS = [{
20
+ key: "sistema",
21
+ label: "Teléfono",
22
+ icono: "cellphone"
23
+ }, {
24
+ key: "claro",
25
+ label: "Claro",
26
+ icono: "white-balance-sunny"
27
+ }, {
28
+ key: "oscuro",
29
+ label: "Oscuro",
30
+ icono: "weather-night"
31
+ }];
32
+
33
+ /**
34
+ * El perfil de una app, igual en todas: quién entró, cómo se ve la app y cerrar sesión. Va
35
+ * empujado encima de las pestañas (lo abre el avatar del header). Necesita `ProveedorDeTema`.
36
+ *
37
+ * Lo propio de cada app va por props: quién es, qué pasa al cerrar sesión (avisar si hay envíos
38
+ * pendientes, confirmar) y, en `children`, lo que vaya al final (la versión instalada).
39
+ */
40
+ export default function PantallaDePerfil({
41
+ rotulo,
42
+ nombre,
43
+ subtitulo,
44
+ onCerrarSesion,
45
+ saliendo = false,
46
+ children
47
+ }) {
48
+ const styles = useStyles();
49
+ const [tema, setTema] = usePreferenciaDeTema();
50
+ const insets = useSafeAreaInsets();
51
+ return /*#__PURE__*/_jsxs(View, {
52
+ style: styles.root,
53
+ children: [/*#__PURE__*/_jsx(CabeceraEmpujada, {
54
+ eyebrow: rotulo,
55
+ titulo: "Perfil"
56
+ }), /*#__PURE__*/_jsx(ContenidoDePantalla, {
57
+ paddingBottom: insets.bottom + 20,
58
+ children: /*#__PURE__*/_jsxs(ScrollView, {
59
+ contentContainerStyle: styles.contenido,
60
+ keyboardShouldPersistTaps: "handled",
61
+ children: [/*#__PURE__*/_jsx(Card, {
62
+ mode: "outlined",
63
+ style: styles.card,
64
+ children: /*#__PURE__*/_jsx(Card.Title, {
65
+ title: nombre || "N/A",
66
+ titleVariant: "titleLarge",
67
+ titleStyle: {
68
+ fontWeight: "bold"
69
+ },
70
+ titleNumberOfLines: 0,
71
+ subtitleNumberOfLines: 0,
72
+ subtitleStyle: renglon(tipografia.secundario),
73
+ subtitle: subtitulo || "N/A",
74
+ subtitleVariant: "bodySmall",
75
+ left: props => /*#__PURE__*/_jsx(Avatar.Text, {
76
+ ...props,
77
+ label: (nombre || "?").charAt(0).toUpperCase(),
78
+ color: "#ffffff"
79
+ })
80
+ })
81
+ }), /*#__PURE__*/_jsxs(View, {
82
+ style: styles.apariencia,
83
+ children: [/*#__PURE__*/_jsx(Text, {
84
+ style: styles.rotulo,
85
+ children: "Apariencia"
86
+ }), /*#__PURE__*/_jsx(Pestanas, {
87
+ pestanas: APARIENCIAS,
88
+ activa: tema,
89
+ onSelect: setTema
90
+ })]
91
+ }), /*#__PURE__*/_jsx(View, {
92
+ style: styles.acciones,
93
+ children: /*#__PURE__*/_jsx(Button, {
94
+ onPress: onCerrarSesion,
95
+ mode: "contained",
96
+ icon: "logout",
97
+ loading: saliendo,
98
+ disabled: saliendo,
99
+ children: "Cerrar sesi\xF3n"
100
+ })
101
+ }), children]
102
+ })
103
+ })]
104
+ });
105
+ }
106
+ const useStyles = crearEstilos(c => ({
107
+ root: {
108
+ flex: 1,
109
+ backgroundColor: c.fondo
110
+ },
111
+ contenido: {
112
+ gap: 20,
113
+ alignItems: "center"
114
+ },
115
+ card: {
116
+ width: "100%",
117
+ backgroundColor: c.superficie,
118
+ borderColor: c.secondaryLighter
119
+ },
120
+ acciones: {
121
+ width: "100%",
122
+ maxWidth: 300,
123
+ gap: 20
124
+ },
125
+ apariencia: {
126
+ width: "100%",
127
+ gap: 8
128
+ },
129
+ rotulo: {
130
+ ...renglon(tipografia.etiqueta),
131
+ fontWeight: "800",
132
+ color: c.secondary,
133
+ textTransform: "uppercase",
134
+ letterSpacing: 0.8
135
+ }
136
+ }));
137
+ //# sourceMappingURL=PantallaDePerfil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ScrollView","View","Avatar","Button","Card","useSafeAreaInsets","CabeceraEmpujada","ContenidoDePantalla","Pestanas","crearEstilos","renglon","tipografia","usePreferenciaDeTema","Text","jsx","_jsx","jsxs","_jsxs","APARIENCIAS","key","label","icono","PantallaDePerfil","rotulo","nombre","subtitulo","onCerrarSesion","saliendo","children","styles","useStyles","tema","setTema","insets","style","root","eyebrow","titulo","paddingBottom","bottom","contentContainerStyle","contenido","keyboardShouldPersistTaps","mode","card","Title","title","titleVariant","titleStyle","fontWeight","titleNumberOfLines","subtitleNumberOfLines","subtitleStyle","secundario","subtitle","subtitleVariant","left","props","charAt","toUpperCase","color","apariencia","pestanas","activa","onSelect","acciones","onPress","icon","loading","disabled","c","flex","backgroundColor","fondo","gap","alignItems","width","superficie","borderColor","secondaryLighter","maxWidth","etiqueta","secondary","textTransform","letterSpacing"],"sourceRoot":"../../../src","sources":["pantallas/PantallaDePerfil.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import { StatusBar } from "expo-status-bar";
4
+ import React from "react";
5
+ import { Appearance } from "react-native";
6
+ import { configureFonts, MD3DarkTheme, MD3LightTheme, PaperProvider } from "react-native-paper";
7
+ import { useEsOscuro, useFondoDeLaRaiz } from "./estilos";
8
+ import { fontFamily } from "./fuentes";
9
+ import { PALETA_CLARA, PALETA_OSCURA } from "./paleta";
10
+
11
+ /**
12
+ * Cómo quiere ver la app quien la usa: **igual que el teléfono** (por omisión), o siempre clara, o
13
+ * siempre oscura. Es del teléfono y no de la cuenta: sobrevive al cerrar sesión.
14
+ */
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ const PREFERENCIAS = ["sistema", "claro", "oscuro"];
17
+
18
+ /**
19
+ * Dónde guarda cada app la preferencia (SecureStore, AsyncStorage…). `leer` puede devolver
20
+ * cualquier cosa: lo que no sea una preferencia válida cuenta como `"sistema"`.
21
+ */
22
+
23
+ /**
24
+ * Pone la preferencia **en toda la app nativa** (`Appearance.setColorScheme`), no sólo en lo que
25
+ * pinta React: así `useColorScheme` ya contesta la elegida, y lo nativo —un mapa de Google, el
26
+ * selector de fecha, la barra de estado— la sigue sin que nadie se la pase. «Igual que el teléfono»
27
+ * es quitar la imposición.
28
+ */
29
+ const aplicar = preferencia => Appearance.setColorScheme(preferencia === "claro" ? "light" : preferencia === "oscuro" ? "dark" : "unspecified");
30
+
31
+ // La escala tipográfica de Paper trae `System` en iOS y `sans-serif` en Android; en Android se
32
+ // cambia la familia por Inter y se conservan tamaños y pesos de cada variante. Los `Text` de
33
+ // React Native no leen el tema: esos van por `texto.tsx`.
34
+ const fonts = fontFamily ? configureFonts({
35
+ config: {
36
+ fontFamily
37
+ }
38
+ }) : MD3LightTheme.fonts;
39
+
40
+ /**
41
+ * El tema de Paper de cada modo, con los colores de la paleta: los componentes de Paper (Card,
42
+ * Button, Avatar, Menu) no leen la paleta, leen esto.
43
+ */
44
+ const temaDePaper = (base, c) => ({
45
+ ...base,
46
+ fonts,
47
+ colors: {
48
+ ...base.colors,
49
+ primary: c.primary,
50
+ onPrimary: c.sobrePrimario,
51
+ primaryLight: c.primaryLight,
52
+ primaryLighter: c.primaryLighter,
53
+ primaryDark: c.primaryDark,
54
+ secondary: c.secondary,
55
+ secondaryLight: c.secondaryLight,
56
+ secondaryLighter: c.secondaryLighter,
57
+ secondaryDark: c.secondaryDark,
58
+ background: c.fondo,
59
+ surface: c.superficie,
60
+ onSurface: c.texto,
61
+ outline: c.secondaryLighter,
62
+ surfacePrimary: c.superficie
63
+ }
64
+ });
65
+ const TEMA_CLARO = temaDePaper(MD3LightTheme, PALETA_CLARA);
66
+ const TEMA_OSCURO = temaDePaper(MD3DarkTheme, PALETA_OSCURA);
67
+ const Contexto = /*#__PURE__*/React.createContext(null);
68
+
69
+ /**
70
+ * El tema de la app: lee la preferencia guardada, se la impone a lo nativo, y da el tema de Paper,
71
+ * la barra de estado y el fondo de la raíz de ahora. Va en el layout raíz, por encima de todo lo
72
+ * que pinta.
73
+ *
74
+ * **No pinta nada hasta leer la preferencia**: así no se asoma el claro un momento en quien eligió
75
+ * el oscuro. Leerla es una consulta local, no se nota.
76
+ */
77
+ export function ProveedorDeTema({
78
+ almacen,
79
+ children
80
+ }) {
81
+ const [preferencia, setPreferencia] = React.useState(almacen ? null : "sistema");
82
+ const oscuro = useEsOscuro();
83
+ useFondoDeLaRaiz((oscuro ? PALETA_OSCURA : PALETA_CLARA).fondo);
84
+ React.useEffect(() => {
85
+ if (!almacen) return;
86
+ let vigente = true;
87
+ almacen.leer().catch(() => null).then(guardada => {
88
+ if (!vigente) return;
89
+ const valida = PREFERENCIAS.find(p => p === guardada) ?? "sistema";
90
+ aplicar(valida);
91
+ setPreferencia(valida);
92
+ });
93
+ return () => {
94
+ vigente = false;
95
+ };
96
+ // Se lee una sola vez, al arrancar: un almacén nuevo en cada render no la vuelve a leer.
97
+ // eslint-disable-next-line react-hooks/exhaustive-deps
98
+ }, []);
99
+ const valor = React.useMemo(() => preferencia === null ? null : [preferencia, nueva => {
100
+ aplicar(nueva);
101
+ setPreferencia(nueva);
102
+ almacen?.guardar(nueva).catch(() => {});
103
+ }], [preferencia, almacen]);
104
+ if (!valor) return null;
105
+ return /*#__PURE__*/_jsx(Contexto.Provider, {
106
+ value: valor,
107
+ children: /*#__PURE__*/_jsxs(PaperProvider, {
108
+ theme: oscuro ? TEMA_OSCURO : TEMA_CLARO,
109
+ children: [/*#__PURE__*/_jsx(StatusBar, {
110
+ style: oscuro ? "light" : "dark"
111
+ }), children]
112
+ })
113
+ });
114
+ }
115
+
116
+ /** La preferencia del tema y cómo cambiarla (el perfil). Sólo dentro de `ProveedorDeTema`. */
117
+ export function usePreferenciaDeTema() {
118
+ const valor = React.useContext(Contexto);
119
+ if (!valor) throw new Error("usePreferenciaDeTema va dentro de <ProveedorDeTema>.");
120
+ return valor;
121
+ }
122
+ //# sourceMappingURL=ProveedorDeTema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StatusBar","React","Appearance","configureFonts","MD3DarkTheme","MD3LightTheme","PaperProvider","useEsOscuro","useFondoDeLaRaiz","fontFamily","PALETA_CLARA","PALETA_OSCURA","jsx","_jsx","jsxs","_jsxs","PREFERENCIAS","aplicar","preferencia","setColorScheme","fonts","config","temaDePaper","base","c","colors","primary","onPrimary","sobrePrimario","primaryLight","primaryLighter","primaryDark","secondary","secondaryLight","secondaryLighter","secondaryDark","background","fondo","surface","superficie","onSurface","texto","outline","surfacePrimary","TEMA_CLARO","TEMA_OSCURO","Contexto","createContext","ProveedorDeTema","almacen","children","setPreferencia","useState","oscuro","useEffect","vigente","leer","catch","then","guardada","valida","find","p","valor","useMemo","nueva","guardar","Provider","value","theme","style","usePreferenciaDeTema","useContext","Error"],"sourceRoot":"../../../src","sources":["tema/ProveedorDeTema.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ import * as SystemUI from "expo-system-ui";
4
+ import { useEffect } from "react";
5
+ import { StyleSheet, useColorScheme } from "react-native";
6
+ import { PALETA_CLARA, PALETA_OSCURA } from "./paleta";
7
+
8
+ /**
9
+ * Si la app se ve oscura. Lee `useColorScheme` y no un contexto: `ProveedorDeTema` le impone la
10
+ * preferencia a toda la app nativa (`Appearance.setColorScheme`), así que contesta la elegida, o la
11
+ * del teléfono con «igual que el teléfono». Y así sirve también fuera de los proveedores, en la
12
+ * pantalla de error del layout raíz.
13
+ */
14
+ export const useEsOscuro = () => useColorScheme() === "dark";
15
+
16
+ /** Los colores de ahora (`paleta.ts`). */
17
+ export const usePaleta = () => useEsOscuro() ? PALETA_OSCURA : PALETA_CLARA;
18
+
19
+ /**
20
+ * Hojas de estilo que dependen del tema. Se declaran igual que un `StyleSheet.create`, pero con la
21
+ * paleta como argumento, y dan un hook:
22
+ *
23
+ * ```ts
24
+ * const useStyles = crearEstilos((c) => ({ caja: { backgroundColor: c.superficie } }));
25
+ * // en el componente:
26
+ * const styles = useStyles();
27
+ * ```
28
+ *
29
+ * Cada hoja se crea una vez por paleta y se guarda: cambiar de tema no la vuelve a crear en cada
30
+ * render.
31
+ */
32
+ export function crearEstilos(fabrica) {
33
+ const hojas = new Map();
34
+ return function useEstilos() {
35
+ const c = usePaleta();
36
+ let hoja = hojas.get(c);
37
+ if (!hoja) {
38
+ hoja = StyleSheet.create(fabrica(c));
39
+ hojas.set(c, hoja);
40
+ }
41
+ return hoja;
42
+ };
43
+ }
44
+
45
+ /**
46
+ * El fondo de la raíz nativa (lo que se ve detrás de una transición) sigue al tema: sin esto, al
47
+ * empujar una pantalla en oscuro se asomaba un destello blanco.
48
+ */
49
+ export function useFondoDeLaRaiz(fondo) {
50
+ useEffect(() => {
51
+ SystemUI.setBackgroundColorAsync(fondo).catch(() => {});
52
+ }, [fondo]);
53
+ }
54
+ //# sourceMappingURL=estilos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SystemUI","useEffect","StyleSheet","useColorScheme","PALETA_CLARA","PALETA_OSCURA","useEsOscuro","usePaleta","crearEstilos","fabrica","hojas","Map","useEstilos","c","hoja","get","create","set","useFondoDeLaRaiz","fondo","setBackgroundColorAsync","catch"],"sourceRoot":"../../../src","sources":["tema/estilos.ts"],"mappings":";;AAAA,OAAO,KAAKA,QAAQ,MAAM,gBAAgB;AAC1C,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,UAAU,EAAEC,cAAc,QAAQ,cAAc;AACzD,SAASC,YAAY,EAAEC,aAAa,QAAqB,UAAU;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGA,CAAA,KAAeH,cAAc,CAAC,CAAC,KAAK,MAAM;;AAErE;AACA,OAAO,MAAMI,SAAS,GAAGA,CAAA,KAAeD,WAAW,CAAC,CAAC,GAAGD,aAAa,GAAGD,YAAa;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,YAAYA,CAAsCC,OAAyB,EAAE;EACzF,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAY,CAAC;EAClC,OAAO,SAASC,UAAUA,CAAA,EAAM;IAC5B,MAAMC,CAAC,GAAGN,SAAS,CAAC,CAAC;IACrB,IAAIO,IAAI,GAAGJ,KAAK,CAACK,GAAG,CAACF,CAAC,CAAC;IACvB,IAAI,CAACC,IAAI,EAAE;MACPA,IAAI,GAAGZ,UAAU,CAACc,MAAM,CAACP,OAAO,CAACI,CAAC,CAAC,CAAC;MACpCH,KAAK,CAACO,GAAG,CAACJ,CAAC,EAAEC,IAAI,CAAC;IACtB;IACA,OAAOA,IAAI;EACf,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASI,gBAAgBA,CAACC,KAAa,EAAE;EAC5ClB,SAAS,CAAC,MAAM;IACZD,QAAQ,CAACoB,uBAAuB,CAACD,KAAK,CAAC,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EAC3D,CAAC,EAAE,CAACF,KAAK,CAAC,CAAC;AACf","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import { Platform } from "react-native";
4
+
5
+ /**
6
+ * La tipografía de iOS es San Francisco —lo que React Native llama `System`— y no se puede
7
+ * llevar a Android: la licencia de Apple la limita a sus plataformas. Android se quedaba con
8
+ * `sans-serif` (Roboto), de ahí que las dos versiones no se parecieran.
9
+ *
10
+ * Inter es el sustituto libre (OFL) más cercano a San Francisco: misma altura de x, mismo
11
+ * aire de fuente de interfaz. Así que Android va con Inter e iOS se queda como está.
12
+ *
13
+ * Los seis cortes —de 400 a 900, que son los pesos que usan las pantallas— vienen en
14
+ * `assets/fonts/` de este paquete y **cada app los registra** como una sola familia en su
15
+ * `app.json` (plugin de expo-font, sección `android.fonts`; ver el README). Al declarar cada peso
16
+ * con su archivo, `fontWeight: "600"` toma el SemiBold de verdad en vez de una negrita sintética.
17
+ * Tocar esa lista obliga a reconstruir el binario, no basta con recargar.
18
+ */
19
+ export const fontFamily = Platform.select({
20
+ android: "Inter",
21
+ default: undefined
22
+ });
23
+
24
+ /** Familia lista para mezclar en un `style`; `null` donde vale la del sistema. */
25
+ export const fuenteBase = fontFamily ? {
26
+ fontFamily
27
+ } : null;
28
+ //# sourceMappingURL=fuentes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","fontFamily","select","android","default","undefined","fuenteBase"],"sourceRoot":"../../../src","sources":["tema/fuentes.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGD,QAAQ,CAACE,MAAM,CAAC;EAAEC,OAAO,EAAE,OAAO;EAAEC,OAAO,EAAEC;AAAU,CAAC,CAAC;;AAEnF;AACA,OAAO,MAAMC,UAAU,GAAGL,UAAU,GAAG;EAAEA;AAAW,CAAC,GAAG,IAAI","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export { crearEstilos, useEsOscuro, useFondoDeLaRaiz, usePaleta } from "./estilos";
4
+ export { fontFamily, fuenteBase } from "./fuentes";
5
+ export { PALETA_CLARA, PALETA_OSCURA } from "./paleta";
6
+ export { ProveedorDeTema, usePreferenciaDeTema } from "./ProveedorDeTema";
7
+ export { renglon, tipografia } from "./tipografia";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["crearEstilos","useEsOscuro","useFondoDeLaRaiz","usePaleta","fontFamily","fuenteBase","PALETA_CLARA","PALETA_OSCURA","ProveedorDeTema","usePreferenciaDeTema","renglon","tipografia"],"sourceRoot":"../../../src","sources":["tema/index.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,QAAQ,WAAW;AAClF,SAASC,UAAU,EAAEC,UAAU,QAAQ,WAAW;AAClD,SAASC,YAAY,EAAEC,aAAa,QAAqB,UAAU;AACnE,SACIC,eAAe,EACfC,oBAAoB,QAGjB,mBAAmB;AAC1B,SAASC,OAAO,EAAEC,UAAU,QAAQ,cAAc","ignoreList":[]}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Los colores de las apps, **uno por cosa y no por tono**: el fondo, la superficie de una tarjeta,
5
+ * el texto, el aviso ámbar. Cada pantalla los toma de aquí (`usePaleta`, `crearEstilos`) y no
6
+ * escribe hexadecimales: así el modo oscuro es cambiar de paleta, no revisar cada pantalla.
7
+ *
8
+ * Los nombres `primary…`/`secondary…` son los del `colors` que traían las apps antes de la paleta,
9
+ * con el mismo sentido. Lo oscuro sigue al portal (`@acvl/frontend-components`, `v1/theme`): fondo
10
+ * `#121212`, papel `#1e1e1e` y el rojo más claro `#ff4a57`, que sobre negro se lee mejor que el de
11
+ * la marca.
12
+ *
13
+ * Lo que se pinta dentro de un mapa (los colores de estado de una flota, un pin) no sale de aquí:
14
+ * tiene que leerse igual sobre claro, oscuro y satélite, y lo escoge cada app.
15
+ */
16
+
17
+ export const PALETA_CLARA = {
18
+ esOscuro: false,
19
+ fondo: "#f7f7f7",
20
+ superficie: "#ffffff",
21
+ superficieTenue: "#f1f1f1",
22
+ texto: "#1a1a1a",
23
+ sobrePrimario: "#ffffff",
24
+ velo: "rgba(0,0,0,0.45)",
25
+ sombra: "#000000",
26
+ primary: "#ea1b2b",
27
+ primaryLight: "rgb(242, 118, 127)",
28
+ primaryLighter: "rgb(250, 209, 212)",
29
+ primaryDark: "rgb(163, 18, 30)",
30
+ primaryWash: "rgba(234,27,43,0.08)",
31
+ secondary: "#606060",
32
+ secondaryLight: "rgb(159, 159, 159)",
33
+ secondaryLighter: "rgb(231, 231, 231)",
34
+ secondaryDark: "rgb(67, 67, 67)",
35
+ secondaryText: "#3a3d42",
36
+ eyebrow: "#4B5563",
37
+ aviso: {
38
+ fondo: "#fff8e1",
39
+ tinta: "#8a5300",
40
+ fuerte: "#b26a00",
41
+ acento: "#f5b955",
42
+ sobreFuerte: "#ffffff",
43
+ borde: "#ffe0a3"
44
+ },
45
+ exito: {
46
+ fondo: "#e8f5e9",
47
+ tinta: "#2e7d32"
48
+ },
49
+ info: {
50
+ fondo: "#e3f2fd",
51
+ tinta: "#1565c0"
52
+ },
53
+ error: {
54
+ fondo: "#fdecea",
55
+ tinta: "#c62828"
56
+ },
57
+ morado: {
58
+ fondo: "#f1e9fd",
59
+ tinta: "#5b21b6"
60
+ }
61
+ };
62
+ export const PALETA_OSCURA = {
63
+ esOscuro: true,
64
+ fondo: "#121212",
65
+ superficie: "#1e1e1e",
66
+ superficieTenue: "#2a2a2a",
67
+ texto: "#f2f2f2",
68
+ sobrePrimario: "#ffffff",
69
+ velo: "rgba(0,0,0,0.65)",
70
+ sombra: "#000000",
71
+ primary: "#ff4a57",
72
+ primaryLight: "rgb(255, 128, 137)",
73
+ primaryLighter: "rgb(90, 24, 30)",
74
+ primaryDark: "#ea1b2b",
75
+ primaryWash: "rgba(255,74,87,0.16)",
76
+ secondary: "#b3b3b3",
77
+ secondaryLight: "#8c8c8c",
78
+ secondaryLighter: "#3a3a3a",
79
+ secondaryDark: "#d6d6d6",
80
+ secondaryText: "#c9ccd1",
81
+ eyebrow: "#a8b0bd",
82
+ aviso: {
83
+ fondo: "#3a2e12",
84
+ tinta: "#ffcc80",
85
+ fuerte: "#ffb74d",
86
+ acento: "#c9932f",
87
+ sobreFuerte: "#1e1e1e",
88
+ borde: "#6b5320"
89
+ },
90
+ exito: {
91
+ fondo: "#1b3320",
92
+ tinta: "#81c784"
93
+ },
94
+ info: {
95
+ fondo: "#132a40",
96
+ tinta: "#90caf9"
97
+ },
98
+ error: {
99
+ fondo: "#3d1a1a",
100
+ tinta: "#ff8a80"
101
+ },
102
+ morado: {
103
+ fondo: "#2a1d45",
104
+ tinta: "#c4b5fd"
105
+ }
106
+ };
107
+ //# sourceMappingURL=paleta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PALETA_CLARA","esOscuro","fondo","superficie","superficieTenue","texto","sobrePrimario","velo","sombra","primary","primaryLight","primaryLighter","primaryDark","primaryWash","secondary","secondaryLight","secondaryLighter","secondaryDark","secondaryText","eyebrow","aviso","tinta","fuerte","acento","sobreFuerte","borde","exito","info","error","morado","PALETA_OSCURA"],"sourceRoot":"../../../src","sources":["tema/paleta.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgEA,OAAO,MAAMA,YAAoB,GAAG;EAChCC,QAAQ,EAAE,KAAK;EACfC,KAAK,EAAE,SAAS;EAChBC,UAAU,EAAE,SAAS;EACrBC,eAAe,EAAE,SAAS;EAC1BC,KAAK,EAAE,SAAS;EAChBC,aAAa,EAAE,SAAS;EACxBC,IAAI,EAAE,kBAAkB;EACxBC,MAAM,EAAE,SAAS;EAEjBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,oBAAoB;EAClCC,cAAc,EAAE,oBAAoB;EACpCC,WAAW,EAAE,kBAAkB;EAC/BC,WAAW,EAAE,sBAAsB;EACnCC,SAAS,EAAE,SAAS;EACpBC,cAAc,EAAE,oBAAoB;EACpCC,gBAAgB,EAAE,oBAAoB;EACtCC,aAAa,EAAE,iBAAiB;EAChCC,aAAa,EAAE,SAAS;EACxBC,OAAO,EAAE,SAAS;EAElBC,KAAK,EAAE;IACHlB,KAAK,EAAE,SAAS;IAChBmB,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE,SAAS;IACjBC,MAAM,EAAE,SAAS;IACjBC,WAAW,EAAE,SAAS;IACtBC,KAAK,EAAE;EACX,CAAC;EACDC,KAAK,EAAE;IAAExB,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC7CM,IAAI,EAAE;IAAEzB,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC5CO,KAAK,EAAE;IAAE1B,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC7CQ,MAAM,EAAE;IAAE3B,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU;AACjD,CAAC;AAED,OAAO,MAAMS,aAAqB,GAAG;EACjC7B,QAAQ,EAAE,IAAI;EACdC,KAAK,EAAE,SAAS;EAChBC,UAAU,EAAE,SAAS;EACrBC,eAAe,EAAE,SAAS;EAC1BC,KAAK,EAAE,SAAS;EAChBC,aAAa,EAAE,SAAS;EACxBC,IAAI,EAAE,kBAAkB;EACxBC,MAAM,EAAE,SAAS;EAEjBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,oBAAoB;EAClCC,cAAc,EAAE,iBAAiB;EACjCC,WAAW,EAAE,SAAS;EACtBC,WAAW,EAAE,sBAAsB;EACnCC,SAAS,EAAE,SAAS;EACpBC,cAAc,EAAE,SAAS;EACzBC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,SAAS;EACxBC,OAAO,EAAE,SAAS;EAElBC,KAAK,EAAE;IACHlB,KAAK,EAAE,SAAS;IAChBmB,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE,SAAS;IACjBC,MAAM,EAAE,SAAS;IACjBC,WAAW,EAAE,SAAS;IACtBC,KAAK,EAAE;EACX,CAAC;EACDC,KAAK,EAAE;IAAExB,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC7CM,IAAI,EAAE;IAAEzB,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC5CO,KAAK,EAAE;IAAE1B,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU,CAAC;EAC7CQ,MAAM,EAAE;IAAE3B,KAAK,EAAE,SAAS;IAAEmB,KAAK,EAAE;EAAU;AACjD,CAAC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Los tamaños de letra de las apps. Son grandes a propósito: quien las usa lee de pie, con prisa, a
5
+ * veces con sol y sin lentes, y la letra chica es donde batalla. **Nada baja de `etiqueta`.** Una
6
+ * pantalla nueva toma de aquí en lugar de inventar su número.
7
+ */
8
+ export const tipografia = {
9
+ /** La acción que toca completar: lo único que tiene que leerse de un vistazo. */
10
+ destacado: 32,
11
+ /** El folio y lo que identifica la pantalla. */
12
+ titulo: 24,
13
+ /** El nombre de un paso, el cliente: lo que se lee primero dentro de una tarjeta. */
14
+ subtitulo: 21,
15
+ /** El texto normal: valores, instrucciones, el lugar. */
16
+ cuerpo: 19,
17
+ /** Lo que acompaña: direcciones, el siguiente paso, horas. */
18
+ secundario: 17,
19
+ /** Rótulos en mayúsculas, chips y pestañas. El mínimo. */
20
+ etiqueta: 15
21
+ };
22
+
23
+ /**
24
+ * Tamaño y alto de renglón explícito para un texto que lleva un icono al lado. `IconoDeRenglon`
25
+ * usa el mismo alto para centrarse contra el primer renglón; los dos crecen con la escala de
26
+ * letra del sistema.
27
+ */
28
+ export const renglon = fontSize => ({
29
+ fontSize,
30
+ lineHeight: Math.round(fontSize * 1.3)
31
+ });
32
+ //# sourceMappingURL=tipografia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tipografia","destacado","titulo","subtitulo","cuerpo","secundario","etiqueta","renglon","fontSize","lineHeight","Math","round"],"sourceRoot":"../../../src","sources":["tema/tipografia.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG;EACtB;EACAC,SAAS,EAAE,EAAE;EACb;EACAC,MAAM,EAAE,EAAE;EACV;EACAC,SAAS,EAAE,EAAE;EACb;EACAC,MAAM,EAAE,EAAE;EACV;EACAC,UAAU,EAAE,EAAE;EACd;EACAC,QAAQ,EAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,GAAIC,QAAgB,KAAM;EAC1CA,QAAQ;EACRC,UAAU,EAAEC,IAAI,CAACC,KAAK,CAACH,QAAQ,GAAG,GAAG;AACzC,CAAC,CAAC","ignoreList":[]}