@crtobiasdelsud/portal-ui 1.0.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 (219) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +829 -0
  3. package/package.json +43 -0
  4. package/src/adapters/AdaptersContext.jsx +28 -0
  5. package/src/components/ArticleHero/ArticleHero.jsx +73 -0
  6. package/src/components/ArticleHero/ArticleHero.module.scss +89 -0
  7. package/src/components/ArticleHero/variants/V0/V0.jsx +29 -0
  8. package/src/components/ArticleHero/variants/V0/V0.module.scss +51 -0
  9. package/src/components/ArticleHero/variants/V0Desktop/V0Desktop.jsx +29 -0
  10. package/src/components/ArticleHero/variants/V0Desktop/V0Desktop.module.scss +54 -0
  11. package/src/components/ArticleHero/variants/V0Tablet/V0Tablet.jsx +29 -0
  12. package/src/components/ArticleHero/variants/V0Tablet/V0Tablet.module.scss +49 -0
  13. package/src/components/ArticleHero/variants/V1/V1.jsx +29 -0
  14. package/src/components/ArticleHero/variants/V1/V1.module.scss +40 -0
  15. package/src/components/ArticleHero/variants/V2/V2.jsx +29 -0
  16. package/src/components/ArticleHero/variants/V2/V2.module.scss +44 -0
  17. package/src/components/ArticleHero/variants/V3/V3.jsx +25 -0
  18. package/src/components/ArticleHero/variants/V3/V3.module.scss +41 -0
  19. package/src/components/ArticleHero/variants/V4/V4.jsx +25 -0
  20. package/src/components/ArticleHero/variants/V4/V4.module.scss +36 -0
  21. package/src/components/ArticleHero/variants/V5/V5.jsx +25 -0
  22. package/src/components/ArticleHero/variants/V5/V5.module.scss +33 -0
  23. package/src/components/ArticleHeroFull/ArticleHeroFull.jsx +38 -0
  24. package/src/components/ArticleHeroFull/ArticleHeroFull.module.scss +116 -0
  25. package/src/components/ArticleSidebar/ArticleSidebar.jsx +28 -0
  26. package/src/components/ArticleSidebar/ArticleSidebar.module.scss +41 -0
  27. package/src/components/AuthorBlock/AuthorBlock.jsx +67 -0
  28. package/src/components/AuthorBlock/AuthorBlock.module.scss +35 -0
  29. package/src/components/AuthorBlock/variants/V1/V1.jsx +38 -0
  30. package/src/components/AuthorBlock/variants/V1/V1.module.scss +25 -0
  31. package/src/components/AuthorBlock/variants/V2/V2.jsx +38 -0
  32. package/src/components/AuthorBlock/variants/V2/V2.module.scss +10 -0
  33. package/src/components/AuthorBlock/variants/V3/V3.jsx +30 -0
  34. package/src/components/AuthorBlock/variants/V3/V3.module.scss +10 -0
  35. package/src/components/AuthorBlock/variants/V4/V4.jsx +30 -0
  36. package/src/components/AuthorBlock/variants/V4/V4.module.scss +10 -0
  37. package/src/components/Banner/Banner.module.scss +70 -0
  38. package/src/components/Banner/BannerDisplay.jsx +118 -0
  39. package/src/components/Banner/BannerView.jsx +35 -0
  40. package/src/components/Blocks/BlockColumns/BlockColumns.jsx +37 -0
  41. package/src/components/Blocks/BlockColumns/BlockColumns.module.scss +64 -0
  42. package/src/components/Blocks/BlockColumnsBajada/BlockColumnsBajada.jsx +38 -0
  43. package/src/components/Blocks/BlockColumnsBajada/BlockColumnsBajada.module.scss +64 -0
  44. package/src/components/Blocks/BlockMain/BlockMain.jsx +18 -0
  45. package/src/components/Blocks/BlockMain/BlockMain.module.scss +9 -0
  46. package/src/components/Blocks/BlockMainNarrow/BlockMainNarrow.jsx +18 -0
  47. package/src/components/Blocks/BlockMainNarrow/BlockMainNarrow.module.scss +9 -0
  48. package/src/components/Blocks/BlockMainSidebar/BlockMainSidebar.jsx +33 -0
  49. package/src/components/Blocks/BlockMainSidebar/BlockMainSidebar.module.scss +44 -0
  50. package/src/components/Blocks/BlockStack/BlockStack.jsx +8 -0
  51. package/src/components/Blocks/BlockStack/BlockStack.module.scss +18 -0
  52. package/src/components/Blocks/WidgetErrorBoundary.jsx +43 -0
  53. package/src/components/Breadcrumb/Breadcrumb.jsx +24 -0
  54. package/src/components/Breadcrumb/Breadcrumb.module.scss +33 -0
  55. package/src/components/Breadcrumb/variants/V1/V1.jsx +39 -0
  56. package/src/components/Breadcrumb/variants/V1/V1.module.scss +3 -0
  57. package/src/components/Breadcrumb/variants/V2/V2.jsx +28 -0
  58. package/src/components/Breadcrumb/variants/V2/V2.module.scss +3 -0
  59. package/src/components/Breadcrumb/variants/V3/V3.jsx +28 -0
  60. package/src/components/Breadcrumb/variants/V3/V3.module.scss +3 -0
  61. package/src/components/Breadcrumb/variants/V4/V4.jsx +28 -0
  62. package/src/components/Breadcrumb/variants/V4/V4.module.scss +3 -0
  63. package/src/components/Breadcrumb/variants/V5/V5.jsx +28 -0
  64. package/src/components/Breadcrumb/variants/V5/V5.module.scss +4 -0
  65. package/src/components/Cabezal/Cabezal.module.scss +82 -0
  66. package/src/components/Cabezal/CabezalView.jsx +87 -0
  67. package/src/components/Cabezal/CardCabezal/CardCabezal.module.scss +403 -0
  68. package/src/components/Cabezal/CardCabezal/index.jsx +25 -0
  69. package/src/components/Cabezal/CardCabezal/variants/Amp/Amp.jsx +20 -0
  70. package/src/components/Cabezal/CardCabezal/variants/Carrusel/Carrusel.jsx +39 -0
  71. package/src/components/Cabezal/CardCabezal/variants/Carrusel/Carrusel.module.scss +87 -0
  72. package/src/components/Cabezal/CardCabezal/variants/Compact/Compact.jsx +36 -0
  73. package/src/components/Cabezal/CardCabezal/variants/Default/Default.jsx +35 -0
  74. package/src/components/Cabezal/CardCabezal/variants/Featured/Featured.jsx +36 -0
  75. package/src/components/Cabezal/CardCabezal/variants/FeaturedDuo/FeaturedDuo.jsx +36 -0
  76. package/src/components/Cabezal/CardCabezal/variants/FeaturedHorizontal/FeaturedHorizontal.jsx +36 -0
  77. package/src/components/Cabezal/CardCabezal/variants/Medium/Medium.jsx +35 -0
  78. package/src/components/Cabezal/CardCabezal/variants/Ranked/Ranked.jsx +36 -0
  79. package/src/components/Cabezal/variants/Carrusel/Carrusel.jsx +167 -0
  80. package/src/components/Cabezal/variants/Carrusel/Carrusel.module.scss +145 -0
  81. package/src/components/Cabezal/variants/Categoria/Categoria.jsx +29 -0
  82. package/src/components/Cabezal/variants/Categoria/Categoria.module.scss +82 -0
  83. package/src/components/Cabezal/variants/CategoriaDos/CategoriaDos.jsx +29 -0
  84. package/src/components/Cabezal/variants/CategoriaDos/CategoriaDos.module.scss +99 -0
  85. package/src/components/Cabezal/variants/Compact/Compact.jsx +24 -0
  86. package/src/components/Cabezal/variants/Compact/Compact.module.scss +73 -0
  87. package/src/components/Cabezal/variants/Default/Default.jsx +24 -0
  88. package/src/components/Cabezal/variants/Default/Default.module.scss +71 -0
  89. package/src/components/Cabezal/variants/Desktop/Desktop.jsx +45 -0
  90. package/src/components/Cabezal/variants/Desktop/Desktop.module.scss +113 -0
  91. package/src/components/Cabezal/variants/Duo/Duo.jsx +24 -0
  92. package/src/components/Cabezal/variants/Duo/Duo.module.scss +72 -0
  93. package/src/components/Cabezal/variants/DuoSinCopete/DuoSinCopete.jsx +24 -0
  94. package/src/components/Cabezal/variants/DuoSinCopete/DuoSinCopete.module.scss +72 -0
  95. package/src/components/Cabezal/variants/Horizontal/Horizontal.jsx +24 -0
  96. package/src/components/Cabezal/variants/Horizontal/Horizontal.module.scss +64 -0
  97. package/src/components/Cabezal/variants/LeeAdemas/LeeAdemas.jsx +53 -0
  98. package/src/components/Cabezal/variants/LeeAdemas/LeeAdemas.module.scss +103 -0
  99. package/src/components/Cabezal/variants/LoQueSeLee/LoQueSeLee.jsx +48 -0
  100. package/src/components/Cabezal/variants/LoQueSeLee/LoQueSeLee.module.scss +103 -0
  101. package/src/components/Cabezal/variants/LoQueSeLee/LoQueSeLeeSkeleton.jsx +21 -0
  102. package/src/components/Cabezal/variants/LoQueSeLee/LoQueSeLeeSkeleton.module.scss +34 -0
  103. package/src/components/Cabezal/variants/Medium/Medium.jsx +24 -0
  104. package/src/components/Cabezal/variants/Medium/Medium.module.scss +78 -0
  105. package/src/components/Cabezal/variants/Mobile/Mobile.jsx +48 -0
  106. package/src/components/Cabezal/variants/Mobile/Mobile.module.scss +64 -0
  107. package/src/components/Cabezal/variants/Ranking/Ranking.jsx +24 -0
  108. package/src/components/Cabezal/variants/Ranking/Ranking.module.scss +79 -0
  109. package/src/components/Cabezal/variants/SeguiLeyendo/SeguiLeyendo.jsx +38 -0
  110. package/src/components/Cabezal/variants/SeguiLeyendo/SeguiLeyendo.module.scss +52 -0
  111. package/src/components/Cabezal/variants/Tablet/Tablet.jsx +45 -0
  112. package/src/components/Cabezal/variants/Tablet/Tablet.module.scss +113 -0
  113. package/src/components/Cabezal/variants/Tres/Tres.jsx +24 -0
  114. package/src/components/Cabezal/variants/Tres/Tres.module.scss +74 -0
  115. package/src/components/Cabezal/variants/UnaDetallada/UnaDetallada.jsx +29 -0
  116. package/src/components/Cabezal/variants/UnaDetallada/UnaDetallada.module.scss +86 -0
  117. package/src/components/Cards/ArticleBody/ArticleBody.module.scss +9 -0
  118. package/src/components/Cards/ArticleBody/ArticleBodyView.jsx +23 -0
  119. package/src/components/Cards/ArticleCard/ArticleCard.jsx +111 -0
  120. package/src/components/Cards/ArticleCard/ArticleCard.module.scss +129 -0
  121. package/src/components/Cards/Bajada/Bajada.jsx +41 -0
  122. package/src/components/Cards/Bajada/Bajada.module.scss +113 -0
  123. package/src/components/Cards/Bajada/variants/V1/V1.jsx +20 -0
  124. package/src/components/Cards/Bajada/variants/V1/V1.module.scss +2 -0
  125. package/src/components/Cards/Bajada/variants/V2/V2.jsx +20 -0
  126. package/src/components/Cards/Bajada/variants/V2/V2.module.scss +2 -0
  127. package/src/components/Clima/Clima.module.scss +93 -0
  128. package/src/components/Clima/ClimaView.jsx +45 -0
  129. package/src/components/DateTime/DateTime.jsx +26 -0
  130. package/src/components/DateTime/DateTime.module.scss +29 -0
  131. package/src/components/DolarTicker/DolarTicker.jsx +137 -0
  132. package/src/components/DolarTicker/DolarTicker.module.scss +249 -0
  133. package/src/components/DolarTicker/arrow_back_ios_black.svg +3 -0
  134. package/src/components/DolarTicker/arrow_back_ios_white.svg +3 -0
  135. package/src/components/DolarTicker/arrow_downward.svg +3 -0
  136. package/src/components/DolarTicker/arrow_upward.svg +3 -0
  137. package/src/components/DolarTickerOriginal/DolarTickerOriginal.jsx +137 -0
  138. package/src/components/DolarTickerOriginal/DolarTickerOriginal.module.scss +235 -0
  139. package/src/components/DolarTickerOriginal/arrow_back_ios_black.svg +3 -0
  140. package/src/components/DolarTickerOriginal/arrow_back_ios_white.svg +3 -0
  141. package/src/components/DolarTickerOriginal/arrow_downward.svg +3 -0
  142. package/src/components/DolarTickerOriginal/arrow_upward.svg +3 -0
  143. package/src/components/EditorOutput/EditorOutput.jsx +303 -0
  144. package/src/components/EditorOutput/EditorOutput.module.scss +310 -0
  145. package/src/components/EditorOutputFull/EditorOutputFull.jsx +303 -0
  146. package/src/components/EditorOutputFull/EditorOutputFull.module.scss +317 -0
  147. package/src/components/Feed/Feed.module.scss +77 -0
  148. package/src/components/Feed/FeedView.jsx +25 -0
  149. package/src/components/Feed/variants/V1/V1.jsx +34 -0
  150. package/src/components/Feed/variants/V1/V1.module.scss +39 -0
  151. package/src/components/Feed/variants/V2/V2.jsx +36 -0
  152. package/src/components/Feed/variants/V2/V2.module.scss +72 -0
  153. package/src/components/Footers/FooterSimple/FooterSimple.jsx +170 -0
  154. package/src/components/Footers/FooterSimple/FooterSimple.module.scss +256 -0
  155. package/src/components/Headers/HeaderSimple/CategoriesBar/CategoriesBar.jsx +104 -0
  156. package/src/components/Headers/HeaderSimple/CategoriesBar/CategoriesBar.module.scss +112 -0
  157. package/src/components/Headers/HeaderSimple/DrawerContext/DrawerContext.jsx +44 -0
  158. package/src/components/Headers/HeaderSimple/HeaderSimpleAmp/HeaderSimpleAmp.jsx +95 -0
  159. package/src/components/Headers/HeaderSimple/HeaderSimpleAmp/HeaderSimpleAmp.module.scss +2 -0
  160. package/src/components/Headers/HeaderSimple/HeaderSimpleDesktop/HeaderSimpleDesktop.jsx +93 -0
  161. package/src/components/Headers/HeaderSimple/HeaderSimpleDesktop/HeaderSimpleDesktop.module.scss +121 -0
  162. package/src/components/Headers/HeaderSimple/HeaderSimpleDesktopCompact/HeaderSimpleDesktopCompact.jsx +96 -0
  163. package/src/components/Headers/HeaderSimple/HeaderSimpleDesktopCompact/HeaderSimpleDesktopCompact.module.scss +137 -0
  164. package/src/components/Headers/HeaderSimple/HeaderSimpleDesktopCompact/SearchTrigger.jsx +17 -0
  165. package/src/components/Headers/HeaderSimple/HeaderSimpleMobile/HeaderSimpleMobile.jsx +89 -0
  166. package/src/components/Headers/HeaderSimple/HeaderSimpleMobile/HeaderSimpleMobile.module.scss +76 -0
  167. package/src/components/Headers/HeaderSimple/HeaderSimpleSwitch/HeaderSimpleSwitch.jsx +47 -0
  168. package/src/components/Headers/HeaderSimple/HeaderSimpleSwitch/HeaderSwitch.jsx +32 -0
  169. package/src/components/Headers/HeaderSimple/HeaderSimpleSwitch/HeaderSwitch.module.scss +46 -0
  170. package/src/components/Headers/HeaderSimple/LiveBanner/LiveBanner.jsx +79 -0
  171. package/src/components/Headers/HeaderSimple/LiveBanner/LiveBanner.module.scss +102 -0
  172. package/src/components/Headers/HeaderSimple/MenuDrawer/MenuDrawer.jsx +217 -0
  173. package/src/components/Headers/HeaderSimple/MenuDrawer/MenuDrawer.module.scss +243 -0
  174. package/src/components/Headers/HeaderSimple/_headerUtils.js +48 -0
  175. package/src/components/Headers/HeaderSimple/_logos/mendoza-claro.svg +43 -0
  176. package/src/components/Headers/HeaderSimple/_logos/mendoza-oscuro.svg +43 -0
  177. package/src/components/Hero/Hero.module.scss +131 -0
  178. package/src/components/Hero/HeroView.jsx +48 -0
  179. package/src/components/Recommended/Recommended.module.scss +119 -0
  180. package/src/components/Recommended/RecommendedView.jsx +23 -0
  181. package/src/components/ShareBlock/ShareBlock.jsx +75 -0
  182. package/src/components/ShareBlock/ShareBlock.module.scss +60 -0
  183. package/src/components/ShareBlock/variants/V1/V1.jsx +27 -0
  184. package/src/components/ShareBlock/variants/V1/V1.module.scss +2 -0
  185. package/src/components/ShareBlock/variants/V2/V2.jsx +27 -0
  186. package/src/components/ShareBlock/variants/V2/V2.module.scss +3 -0
  187. package/src/components/SpeechButton/SpeechButton.jsx +60 -0
  188. package/src/components/SpeechButton/SpeechButton.module.scss +49 -0
  189. package/src/components/SpeechPlayerBar/SpeechPlayerBar.jsx +92 -0
  190. package/src/components/SpeechPlayerBar/SpeechPlayerBar.module.scss +180 -0
  191. package/src/components/SpeechProviderWrapper/SpeechProviderWrapper.jsx +13 -0
  192. package/src/components/TextWrap/TextWrap.module.scss +72 -0
  193. package/src/components/TextWrap/TextWrapView.jsx +23 -0
  194. package/src/components/UI/AspectImage/AspectImage.jsx +53 -0
  195. package/src/components/UI/FocalImage/FocalImage.jsx +36 -0
  196. package/src/components/UI/Icon/Icon.jsx +40 -0
  197. package/src/components/UI/Icon/Icon.module.scss +82 -0
  198. package/src/components/UI/IconSmall/IconSmall.jsx +40 -0
  199. package/src/components/UI/IconSmall/IconSmall.module.scss +82 -0
  200. package/src/components/UI/PageWrapper/PageWrapper.jsx +9 -0
  201. package/src/components/UI/PageWrapper/PageWrapper.module.scss +5 -0
  202. package/src/components/UI/ToolTip/ToolTip.jsx +49 -0
  203. package/src/components/UI/ToolTip/ToolTip.module.scss +26 -0
  204. package/src/components/UI/index.js +6 -0
  205. package/src/constants/imageSizes.js +10 -0
  206. package/src/context/SiteConfigContext.jsx +79 -0
  207. package/src/context/SpeechContext.jsx +138 -0
  208. package/src/data/ArticlePoolContext.jsx +83 -0
  209. package/src/data/index.js +7 -0
  210. package/src/data/useArticles.js +67 -0
  211. package/src/index.js +101 -0
  212. package/src/styles/index.scss +3 -0
  213. package/src/styles/mixins/_helpers.scss +6 -0
  214. package/src/styles/mixins/_media.scss +30 -0
  215. package/src/styles/variables/_breakpoint.scss +4 -0
  216. package/src/styles/variables/_colors.scss +4 -0
  217. package/src/styles/variables/_spacing.scss +0 -0
  218. package/src/utils/colorContrast.js +64 -0
  219. package/src/utils/fechaHora.js +26 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,71 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0 — 2026-05-14
4
+
5
+ Migración 100% completa. Paridad total entre portal y CMS — todos los
6
+ componentes "espejo" viven en este paquete; las apps sólo tienen data widgets
7
+ (thin wrappers que fetchean + renderizan el View).
8
+
9
+ ### Fase 2 completa — Vistas puras
10
+ - **UI primitives**: `AspectImage`, `FocalImage`, `Icon`, `IconSmall`,
11
+ `PageWrapper`, `ToolTip`
12
+ - **DateTime** + helper `getFechaHora()`
13
+ - **SiteConfigContext** — `SiteConfigProvider`, `PreviewThemeProvider`,
14
+ `useSiteConfig`, `useTheme`, `useRawConfig`, `useCategories`,
15
+ `useBanners`, `useComputed`, `useInfoPages`
16
+ - **AuthorBlock** (×4), **Breadcrumb** (×5), **ShareBlock** (×2)
17
+ - **Cards**: `ArticleCard` (con tooltip), `Bajada` (×2)
18
+ - **Headers**: `HeaderSimpleSwitch` (con `forceMode` para CMS preview),
19
+ `HeaderSimpleDesktop`, `HeaderSimpleDesktopCompact`, `HeaderSimpleMobile`,
20
+ `HeaderSimpleAmp` + sub-componentes (`CategoriesBar`, `LiveBanner`,
21
+ `MenuDrawer`, `HeaderSwitch`, `SearchTrigger`, `DrawerContext`)
22
+ - **Footers**: `FooterSimple`
23
+ - **Blocks**: `BlockColumns`, `BlockColumnsBajada`, `BlockMain`,
24
+ `BlockMainNarrow`, `BlockMainSidebar`, `BlockStack`, `WidgetErrorBoundary`
25
+ - **Article-detail**: `ArticleHero` (×8 variants V0/V0Tablet/V0Desktop/V1-V5),
26
+ `ArticleHeroFull`, `ArticleSidebar`
27
+ - **EditorOutput / EditorOutputFull** — renderer de Editor.js (server + client),
28
+ con soporte AMP. Exporta `EditorBlocks` para uso aislado.
29
+ - **Speech**: `SpeechProvider`, `SpeechProviderWrapper`, `SpeechButton`,
30
+ `SpeechPlayerBar`, hook `useSpeech` — Web Speech API + contexto propio
31
+
32
+ ### Fase 3 — Split data/view en widgets que tocan red
33
+ - **FeedView** + variants V1/V2
34
+ - **HeroView**
35
+ - **RecommendedView** (usa el `ArticleCard` interno)
36
+ - **CabezalView** + 18 variants top-level + 9 sub-variants de `CardCabezal`
37
+ - **BannerView** + **BannerDisplay** (client, tracking via adapter fetcher)
38
+ - **ClimaView**
39
+ - **TextWrapView** + **ArticleBodyView** — renderean un artículo via `EditorOutput`
40
+ - **DolarTicker** + **DolarTickerOriginal** — auto-fetchean su data internamente
41
+
42
+ ### Adapter pattern
43
+ - `useAdapters().Link` / `.Image` / `.fetcher` para que el paquete no dependa
44
+ de Next/Vite directamente
45
+ - `MenuDrawer` cambió `router.push` por `<form action="/search">` nativo
46
+ para no necesitar useRouter
47
+ - Logos legacy de Mendoza incluidos en `components/Headers/HeaderSimple/_logos/`
48
+ (TODO: quitar cuando todos los sites usen `logoUrl` directo)
49
+
50
+ ### Utils & constants exportados
51
+ - `getFechaHora`, `contrastRatio`, `hexToCssFilter`, `ensureContrast`,
52
+ `IMAGE_SIZES`
53
+
54
+ ### Article pool
55
+ - `createArticlePool(fetcher, opts?)` — factory pura
56
+ - `ArticlePoolProvider` + `useArticlePool()` — uso client-side
57
+ - `useArticles({ limit, endpoint?, categoria? })` — hook universal
58
+
59
+ ## 0.3.0 — 2026-05-14
60
+
61
+ Phase 3 — Feed/Hero/Recommended/Cabezal split data/view inicial. Apps consumen
62
+ via shims de 1 línea para no tocar 40+ callers.
63
+
64
+ ## 0.2.0 — 2026-05-14
65
+
66
+ Phase 2 inicial: UI primitives + DateTime + SiteConfigContext + AuthorBlock/
67
+ Breadcrumb/ShareBlock + Cards.
68
+
69
+ ## 0.1.0 — 2026-05-14
70
+
71
+ Setup — adapters, article pool, scaffold.