@clicoh/orion-library 1.2.0-beta.2 → 1.2.0-beta.21

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 (462) hide show
  1. package/assets/avatares/caja-chispa.png +0 -0
  2. package/assets/avatares/caja.png +0 -0
  3. package/assets/avatares/cohete.png +0 -0
  4. package/assets/avatares/dino.png +0 -0
  5. package/assets/avatares/pulpo-lentes.png +0 -0
  6. package/assets/avatares/pulpo-verde.png +0 -0
  7. package/assets/avatares/pulpo.png +0 -0
  8. package/assets/cifras/alerta.png +0 -0
  9. package/assets/cifras/duda.png +0 -0
  10. package/assets/cifras/error.png +0 -0
  11. package/assets/cifras/monedas.png +0 -0
  12. package/assets/cifras/reloj.png +0 -0
  13. package/assets/cifras/visto.png +0 -0
  14. package/assets/css/expresivo.css +1069 -0
  15. package/assets/logos/oculus-icon.svg +1 -0
  16. package/assets/logos/oculus-logo-sm-dark.svg +1 -0
  17. package/assets/logos/oculus-logo-sm.svg +1 -0
  18. package/assets/mascotas/svg/bugi-mascota-01-alerta.svg +39 -0
  19. package/assets/mascotas/svg/bugi-mascota-02-investigando.svg +36 -0
  20. package/assets/mascotas/svg/bugi-mascota-05-sorprendido.svg +38 -0
  21. package/assets/mascotas/svg/oculus-mascota-01-feliz.svg +52 -0
  22. package/assets/mascotas/svg/oculus-mascota-02-investigando.svg +51 -0
  23. package/assets/mascotas/svg/oculus-mascota-03-dudando.svg +51 -0
  24. package/assets/mascotas/svg/oculus-mascota-04-analizando-documento.svg +53 -0
  25. package/assets/mascotas/svg/oculus-mascota-06-celebrando.svg +54 -0
  26. package/assets/mascotas/svg/oculus-mascota-07-buscando-rapido.svg +57 -0
  27. package/assets/mascotas/svg/oculus-mascota-08-satisfecho.svg +55 -0
  28. package/assets/mascotas/webp/fixi-mascota-01-feliz-sm.webp +0 -0
  29. package/assets/mascotas/webp/fixi-mascota-02-investigando-sm.webp +0 -0
  30. package/assets/mascotas/webp/fixi-mascota-03-dudando-sm.webp +0 -0
  31. package/assets/mascotas/webp/fixi-mascota-04-reparando-sm.webp +0 -0
  32. package/assets/mascotas/webp/fixi-mascota-05-sorprendido-sm.webp +0 -0
  33. package/assets/mascotas/webp/fixi-mascota-06-celebrando-sm.webp +0 -0
  34. package/assets/mascotas/webp/fixi-mascota-07-corriendo-sm.webp +0 -0
  35. package/dist/components/01-atoms/Button/Button.d.ts +21 -1
  36. package/dist/components/01-atoms/Button/Button.d.ts.map +1 -1
  37. package/dist/components/01-atoms/Button/Button.jsx +38 -4
  38. package/dist/components/01-atoms/Button/Button.jsx.map +1 -1
  39. package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts +56 -0
  40. package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts.map +1 -0
  41. package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx +97 -0
  42. package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx.map +1 -0
  43. package/dist/components/01-atoms/CodeBlock/index.d.ts +2 -0
  44. package/dist/components/01-atoms/CodeBlock/index.d.ts.map +1 -0
  45. package/dist/components/01-atoms/CodeBlock/index.js +2 -0
  46. package/dist/components/01-atoms/CodeBlock/index.js.map +1 -0
  47. package/dist/components/01-atoms/Heading/Heading.jsx +1 -1
  48. package/dist/components/01-atoms/Heading/Heading.jsx.map +1 -1
  49. package/dist/components/01-atoms/IconButton/IconButton.d.ts +28 -0
  50. package/dist/components/01-atoms/IconButton/IconButton.d.ts.map +1 -0
  51. package/dist/components/01-atoms/IconButton/IconButton.jsx +32 -0
  52. package/dist/components/01-atoms/IconButton/IconButton.jsx.map +1 -0
  53. package/dist/components/01-atoms/IconButton/index.d.ts +2 -0
  54. package/dist/components/01-atoms/IconButton/index.d.ts.map +1 -0
  55. package/dist/components/01-atoms/IconButton/index.js +2 -0
  56. package/dist/components/01-atoms/IconButton/index.js.map +1 -0
  57. package/dist/components/01-atoms/Input/Input.d.ts +1 -1
  58. package/dist/components/01-atoms/Input/Input.d.ts.map +1 -1
  59. package/dist/components/01-atoms/Input/Input.jsx +13 -9
  60. package/dist/components/01-atoms/Input/Input.jsx.map +1 -1
  61. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.d.ts.map +1 -1
  62. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx +1 -1
  63. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx.map +1 -1
  64. package/dist/components/01-atoms/MultiSelect/MultiSelect.d.ts.map +1 -1
  65. package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx +2 -1
  66. package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx.map +1 -1
  67. package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts +12 -1
  68. package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts.map +1 -1
  69. package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx +18 -2
  70. package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx.map +1 -1
  71. package/dist/components/01-atoms/Select/Select.d.ts +7 -1
  72. package/dist/components/01-atoms/Select/Select.d.ts.map +1 -1
  73. package/dist/components/01-atoms/Select/Select.jsx +61 -13
  74. package/dist/components/01-atoms/Select/Select.jsx.map +1 -1
  75. package/dist/components/01-atoms/Select/SelectList.d.ts +41 -0
  76. package/dist/components/01-atoms/Select/SelectList.d.ts.map +1 -0
  77. package/dist/components/01-atoms/Select/SelectList.jsx +116 -0
  78. package/dist/components/01-atoms/Select/SelectList.jsx.map +1 -0
  79. package/dist/components/01-atoms/SmallInput/SmallInput.d.ts.map +1 -1
  80. package/dist/components/01-atoms/SmallInput/SmallInput.jsx +1 -0
  81. package/dist/components/01-atoms/SmallInput/SmallInput.jsx.map +1 -1
  82. package/dist/components/01-atoms/Spinner/Spinner.d.ts +24 -3
  83. package/dist/components/01-atoms/Spinner/Spinner.d.ts.map +1 -1
  84. package/dist/components/01-atoms/Spinner/Spinner.jsx +30 -4
  85. package/dist/components/01-atoms/Spinner/Spinner.jsx.map +1 -1
  86. package/dist/components/01-atoms/Spinner/index.d.ts +1 -0
  87. package/dist/components/01-atoms/Spinner/index.d.ts.map +1 -1
  88. package/dist/components/01-atoms/Stat/Stat.d.ts +47 -0
  89. package/dist/components/01-atoms/Stat/Stat.d.ts.map +1 -0
  90. package/dist/components/01-atoms/Stat/Stat.jsx +64 -0
  91. package/dist/components/01-atoms/Stat/Stat.jsx.map +1 -0
  92. package/dist/components/01-atoms/Stat/index.d.ts +2 -0
  93. package/dist/components/01-atoms/Stat/index.d.ts.map +1 -0
  94. package/dist/components/01-atoms/Stat/index.js +2 -0
  95. package/dist/components/01-atoms/Stat/index.js.map +1 -0
  96. package/dist/components/01-atoms/Switch/Switch.d.ts +5 -2
  97. package/dist/components/01-atoms/Switch/Switch.d.ts.map +1 -1
  98. package/dist/components/01-atoms/Switch/Switch.jsx +15 -12
  99. package/dist/components/01-atoms/Switch/Switch.jsx.map +1 -1
  100. package/dist/components/01-atoms/Textarea/Textarea.d.ts +38 -0
  101. package/dist/components/01-atoms/Textarea/Textarea.d.ts.map +1 -0
  102. package/dist/components/01-atoms/Textarea/Textarea.jsx +50 -0
  103. package/dist/components/01-atoms/Textarea/Textarea.jsx.map +1 -0
  104. package/dist/components/01-atoms/Textarea/index.d.ts +2 -0
  105. package/dist/components/01-atoms/Textarea/index.d.ts.map +1 -0
  106. package/dist/components/01-atoms/Textarea/index.js +2 -0
  107. package/dist/components/01-atoms/Textarea/index.js.map +1 -0
  108. package/dist/components/01-atoms/Toast/Toast.d.ts.map +1 -1
  109. package/dist/components/01-atoms/Toast/Toast.jsx +3 -1
  110. package/dist/components/01-atoms/Toast/Toast.jsx.map +1 -1
  111. package/dist/components/01-atoms/Tooltip/Tooltip.d.ts.map +1 -1
  112. package/dist/components/01-atoms/Tooltip/Tooltip.jsx +4 -1
  113. package/dist/components/01-atoms/Tooltip/Tooltip.jsx.map +1 -1
  114. package/dist/components/01-atoms/index.d.ts +4 -0
  115. package/dist/components/01-atoms/index.d.ts.map +1 -1
  116. package/dist/components/01-atoms/index.js +4 -0
  117. package/dist/components/01-atoms/index.js.map +1 -1
  118. package/dist/components/02-molecules/Accordion/Accordion.d.ts +15 -4
  119. package/dist/components/02-molecules/Accordion/Accordion.d.ts.map +1 -1
  120. package/dist/components/02-molecules/Accordion/Accordion.jsx +20 -6
  121. package/dist/components/02-molecules/Accordion/Accordion.jsx.map +1 -1
  122. package/dist/components/02-molecules/Accordion/AccordionContext.d.ts +5 -1
  123. package/dist/components/02-molecules/Accordion/AccordionContext.d.ts.map +1 -1
  124. package/dist/components/02-molecules/Accordion/AccordionContext.jsx +7 -6
  125. package/dist/components/02-molecules/Accordion/AccordionContext.jsx.map +1 -1
  126. package/dist/components/02-molecules/Accordion/AccordionSection.d.ts +2 -1
  127. package/dist/components/02-molecules/Accordion/AccordionSection.d.ts.map +1 -1
  128. package/dist/components/02-molecules/Accordion/AccordionSection.jsx +62 -11
  129. package/dist/components/02-molecules/Accordion/AccordionSection.jsx.map +1 -1
  130. package/dist/components/02-molecules/Accordion/index.d.ts +1 -0
  131. package/dist/components/02-molecules/Accordion/index.d.ts.map +1 -1
  132. package/dist/components/02-molecules/Accordion/index.js.map +1 -1
  133. package/dist/components/02-molecules/Autocomplete/Autocomplete.d.ts +4 -1
  134. package/dist/components/02-molecules/Autocomplete/Autocomplete.d.ts.map +1 -1
  135. package/dist/components/02-molecules/Autocomplete/Autocomplete.jsx +34 -15
  136. package/dist/components/02-molecules/Autocomplete/Autocomplete.jsx.map +1 -1
  137. package/dist/components/02-molecules/Card/Card.d.ts +74 -0
  138. package/dist/components/02-molecules/Card/Card.d.ts.map +1 -0
  139. package/dist/components/02-molecules/Card/Card.jsx +87 -0
  140. package/dist/components/02-molecules/Card/Card.jsx.map +1 -0
  141. package/dist/components/02-molecules/Card/index.d.ts +2 -0
  142. package/dist/components/02-molecules/Card/index.d.ts.map +1 -0
  143. package/dist/components/02-molecules/Card/index.js +2 -0
  144. package/dist/components/02-molecules/Card/index.js.map +1 -0
  145. package/dist/components/02-molecules/DatePicker/DatePicker.d.ts +41 -3
  146. package/dist/components/02-molecules/DatePicker/DatePicker.d.ts.map +1 -1
  147. package/dist/components/02-molecules/DatePicker/DatePicker.jsx +190 -34
  148. package/dist/components/02-molecules/DatePicker/DatePicker.jsx.map +1 -1
  149. package/dist/components/02-molecules/Dropdown/Dropdown.d.ts.map +1 -1
  150. package/dist/components/02-molecules/Dropdown/Dropdown.jsx +1 -0
  151. package/dist/components/02-molecules/Dropdown/Dropdown.jsx.map +1 -1
  152. package/dist/components/02-molecules/EmptyState/EmptyState.d.ts +52 -0
  153. package/dist/components/02-molecules/EmptyState/EmptyState.d.ts.map +1 -0
  154. package/dist/components/02-molecules/EmptyState/EmptyState.jsx +66 -0
  155. package/dist/components/02-molecules/EmptyState/EmptyState.jsx.map +1 -0
  156. package/dist/components/02-molecules/EmptyState/index.d.ts +2 -0
  157. package/dist/components/02-molecules/EmptyState/index.d.ts.map +1 -0
  158. package/dist/components/02-molecules/EmptyState/index.js +2 -0
  159. package/dist/components/02-molecules/EmptyState/index.js.map +1 -0
  160. package/dist/components/02-molecules/Filter/Filter.d.ts +8 -1
  161. package/dist/components/02-molecules/Filter/Filter.d.ts.map +1 -1
  162. package/dist/components/02-molecules/Filter/Filter.jsx +35 -11
  163. package/dist/components/02-molecules/Filter/Filter.jsx.map +1 -1
  164. package/dist/components/02-molecules/Filter/index.d.ts +1 -0
  165. package/dist/components/02-molecules/Filter/index.d.ts.map +1 -1
  166. package/dist/components/02-molecules/Filter/index.js +1 -0
  167. package/dist/components/02-molecules/Filter/index.js.map +1 -1
  168. package/dist/components/02-molecules/Filter/types.d.ts +24 -5
  169. package/dist/components/02-molecules/Filter/types.d.ts.map +1 -1
  170. package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.d.ts +34 -0
  171. package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.d.ts.map +1 -0
  172. package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.js +70 -0
  173. package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.js.map +1 -0
  174. package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts +55 -5
  175. package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts.map +1 -1
  176. package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx +118 -27
  177. package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx.map +1 -1
  178. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts +40 -0
  179. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts.map +1 -0
  180. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx +109 -0
  181. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx.map +1 -0
  182. package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts +15 -1
  183. package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts.map +1 -1
  184. package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx +18 -3
  185. package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx.map +1 -1
  186. package/dist/components/02-molecules/Menu/MenuItem.d.ts.map +1 -1
  187. package/dist/components/02-molecules/Menu/MenuItem.jsx +2 -2
  188. package/dist/components/02-molecules/Menu/MenuItem.jsx.map +1 -1
  189. package/dist/components/02-molecules/Menu/MenuList.d.ts.map +1 -1
  190. package/dist/components/02-molecules/Menu/MenuList.jsx +1 -1
  191. package/dist/components/02-molecules/Menu/MenuList.jsx.map +1 -1
  192. package/dist/components/02-molecules/Modal/Modal.d.ts +5 -1
  193. package/dist/components/02-molecules/Modal/Modal.d.ts.map +1 -1
  194. package/dist/components/02-molecules/Modal/Modal.jsx +4 -2
  195. package/dist/components/02-molecules/Modal/Modal.jsx.map +1 -1
  196. package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.d.ts +80 -0
  197. package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.d.ts.map +1 -0
  198. package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.jsx +261 -0
  199. package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.jsx.map +1 -0
  200. package/dist/components/02-molecules/MultiAutocomplete/index.d.ts +2 -0
  201. package/dist/components/02-molecules/MultiAutocomplete/index.d.ts.map +1 -0
  202. package/dist/components/02-molecules/MultiAutocomplete/index.js +2 -0
  203. package/dist/components/02-molecules/MultiAutocomplete/index.js.map +1 -0
  204. package/dist/components/02-molecules/Stepper/Stepper.d.ts +70 -0
  205. package/dist/components/02-molecules/Stepper/Stepper.d.ts.map +1 -0
  206. package/dist/components/02-molecules/Stepper/Stepper.jsx +204 -0
  207. package/dist/components/02-molecules/Stepper/Stepper.jsx.map +1 -0
  208. package/dist/components/02-molecules/Stepper/index.d.ts +2 -0
  209. package/dist/components/02-molecules/Stepper/index.d.ts.map +1 -0
  210. package/dist/components/02-molecules/Stepper/index.js +2 -0
  211. package/dist/components/02-molecules/Stepper/index.js.map +1 -0
  212. package/dist/components/02-molecules/Table/Table.d.ts +3 -1
  213. package/dist/components/02-molecules/Table/Table.d.ts.map +1 -1
  214. package/dist/components/02-molecules/Table/Table.jsx +6 -5
  215. package/dist/components/02-molecules/Table/Table.jsx.map +1 -1
  216. package/dist/components/02-molecules/Timeline/Timeline.d.ts +47 -0
  217. package/dist/components/02-molecules/Timeline/Timeline.d.ts.map +1 -0
  218. package/dist/components/02-molecules/Timeline/Timeline.jsx +65 -0
  219. package/dist/components/02-molecules/Timeline/Timeline.jsx.map +1 -0
  220. package/dist/components/02-molecules/Timeline/index.d.ts +2 -0
  221. package/dist/components/02-molecules/Timeline/index.d.ts.map +1 -0
  222. package/dist/components/02-molecules/Timeline/index.js +2 -0
  223. package/dist/components/02-molecules/Timeline/index.js.map +1 -0
  224. package/dist/components/02-molecules/index.d.ts +5 -0
  225. package/dist/components/02-molecules/index.d.ts.map +1 -1
  226. package/dist/components/02-molecules/index.js +5 -0
  227. package/dist/components/02-molecules/index.js.map +1 -1
  228. package/dist/components/03-organisms/DataTable/DataTable.d.ts +1 -1
  229. package/dist/components/03-organisms/DataTable/DataTable.d.ts.map +1 -1
  230. package/dist/components/03-organisms/DataTable/DataTable.jsx +1 -1
  231. package/dist/components/03-organisms/DataTable/DataTable.jsx.map +1 -1
  232. package/dist/components/03-organisms/Header/Header.d.ts +3 -1
  233. package/dist/components/03-organisms/Header/Header.d.ts.map +1 -1
  234. package/dist/components/03-organisms/Header/Header.jsx +4 -5
  235. package/dist/components/03-organisms/Header/Header.jsx.map +1 -1
  236. package/dist/components/03-organisms/MapView/MapView.d.ts +14 -3
  237. package/dist/components/03-organisms/MapView/MapView.d.ts.map +1 -1
  238. package/dist/components/03-organisms/MapView/MapView.jsx +40 -9
  239. package/dist/components/03-organisms/MapView/MapView.jsx.map +1 -1
  240. package/dist/components/03-organisms/ModalMultiple/ModalMultiple.d.ts.map +1 -1
  241. package/dist/components/03-organisms/ModalMultiple/ModalMultiple.jsx +1 -0
  242. package/dist/components/03-organisms/ModalMultiple/ModalMultiple.jsx.map +1 -1
  243. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts +36 -4
  244. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts.map +1 -1
  245. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx +44 -10
  246. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx.map +1 -1
  247. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts +6 -2
  248. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts.map +1 -1
  249. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx +7 -3
  250. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx.map +1 -1
  251. package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts +66 -3
  252. package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts.map +1 -1
  253. package/dist/components/04-templates/LoginTemplate/LoginForm.jsx +80 -16
  254. package/dist/components/04-templates/LoginTemplate/LoginForm.jsx.map +1 -1
  255. package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts +24 -4
  256. package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts.map +1 -1
  257. package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx +27 -7
  258. package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx.map +1 -1
  259. package/dist/components/04-templates/LoginTemplate/index.d.ts +1 -0
  260. package/dist/components/04-templates/LoginTemplate/index.d.ts.map +1 -1
  261. package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.d.ts.map +1 -1
  262. package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.jsx +4 -1
  263. package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.jsx.map +1 -1
  264. package/dist/hooks/useSegments.d.ts.map +1 -1
  265. package/dist/hooks/useSegments.js +2 -3
  266. package/dist/hooks/useSegments.js.map +1 -1
  267. package/dist/hooks/useTheme.d.ts.map +1 -1
  268. package/dist/hooks/useTheme.jsx +1 -0
  269. package/dist/hooks/useTheme.jsx.map +1 -1
  270. package/expresivo/ExpBubble/ExpBubble.d.ts +51 -0
  271. package/expresivo/ExpBubble/ExpBubble.d.ts.map +1 -0
  272. package/expresivo/ExpBubble/ExpBubble.jsx +74 -0
  273. package/expresivo/ExpBubble/ExpBubble.jsx.map +1 -0
  274. package/expresivo/ExpBubble/index.d.ts +3 -0
  275. package/expresivo/ExpBubble/index.d.ts.map +1 -0
  276. package/expresivo/ExpBubble/index.js +2 -0
  277. package/expresivo/ExpBubble/index.js.map +1 -0
  278. package/expresivo/ExpChip/ExpChip.d.ts +40 -0
  279. package/expresivo/ExpChip/ExpChip.d.ts.map +1 -0
  280. package/expresivo/ExpChip/ExpChip.jsx +67 -0
  281. package/expresivo/ExpChip/ExpChip.jsx.map +1 -0
  282. package/expresivo/ExpChip/index.d.ts +3 -0
  283. package/expresivo/ExpChip/index.d.ts.map +1 -0
  284. package/expresivo/ExpChip/index.js +2 -0
  285. package/expresivo/ExpChip/index.js.map +1 -0
  286. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts +37 -0
  287. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts.map +1 -0
  288. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx +43 -0
  289. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx.map +1 -0
  290. package/expresivo/ExpCollapseToggle/index.d.ts +3 -0
  291. package/expresivo/ExpCollapseToggle/index.d.ts.map +1 -0
  292. package/expresivo/ExpCollapseToggle/index.js +2 -0
  293. package/expresivo/ExpCollapseToggle/index.js.map +1 -0
  294. package/expresivo/ExpEnterIcon/ExpEnterIcon.d.ts +32 -0
  295. package/expresivo/ExpEnterIcon/ExpEnterIcon.d.ts.map +1 -0
  296. package/expresivo/ExpEnterIcon/ExpEnterIcon.jsx +32 -0
  297. package/expresivo/ExpEnterIcon/ExpEnterIcon.jsx.map +1 -0
  298. package/expresivo/ExpEnterIcon/index.d.ts +3 -0
  299. package/expresivo/ExpEnterIcon/index.d.ts.map +1 -0
  300. package/expresivo/ExpEnterIcon/index.js +2 -0
  301. package/expresivo/ExpEnterIcon/index.js.map +1 -0
  302. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts +26 -0
  303. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts.map +1 -0
  304. package/expresivo/ExpGrowBar/ExpGrowBar.jsx +39 -0
  305. package/expresivo/ExpGrowBar/ExpGrowBar.jsx.map +1 -0
  306. package/expresivo/ExpGrowBar/index.d.ts +3 -0
  307. package/expresivo/ExpGrowBar/index.d.ts.map +1 -0
  308. package/expresivo/ExpGrowBar/index.js +2 -0
  309. package/expresivo/ExpGrowBar/index.js.map +1 -0
  310. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts +69 -0
  311. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts.map +1 -0
  312. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx +160 -0
  313. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx.map +1 -0
  314. package/expresivo/ExpJourneyTrack/index.d.ts +3 -0
  315. package/expresivo/ExpJourneyTrack/index.d.ts.map +1 -0
  316. package/expresivo/ExpJourneyTrack/index.js +2 -0
  317. package/expresivo/ExpJourneyTrack/index.js.map +1 -0
  318. package/expresivo/ExpKeyButton/ExpKeyButton.d.ts +49 -0
  319. package/expresivo/ExpKeyButton/ExpKeyButton.d.ts.map +1 -0
  320. package/expresivo/ExpKeyButton/ExpKeyButton.jsx +60 -0
  321. package/expresivo/ExpKeyButton/ExpKeyButton.jsx.map +1 -0
  322. package/expresivo/ExpKeyButton/index.d.ts +3 -0
  323. package/expresivo/ExpKeyButton/index.d.ts.map +1 -0
  324. package/expresivo/ExpKeyButton/index.js +2 -0
  325. package/expresivo/ExpKeyButton/index.js.map +1 -0
  326. package/expresivo/ExpLadder/ExpLadder.d.ts +42 -0
  327. package/expresivo/ExpLadder/ExpLadder.d.ts.map +1 -0
  328. package/expresivo/ExpLadder/ExpLadder.jsx +82 -0
  329. package/expresivo/ExpLadder/ExpLadder.jsx.map +1 -0
  330. package/expresivo/ExpLadder/index.d.ts +3 -0
  331. package/expresivo/ExpLadder/index.d.ts.map +1 -0
  332. package/expresivo/ExpLadder/index.js +2 -0
  333. package/expresivo/ExpLadder/index.js.map +1 -0
  334. package/expresivo/ExpLensIcon/ExpLensIcon.d.ts +29 -0
  335. package/expresivo/ExpLensIcon/ExpLensIcon.d.ts.map +1 -0
  336. package/expresivo/ExpLensIcon/ExpLensIcon.jsx +29 -0
  337. package/expresivo/ExpLensIcon/ExpLensIcon.jsx.map +1 -0
  338. package/expresivo/ExpLensIcon/index.d.ts +3 -0
  339. package/expresivo/ExpLensIcon/index.d.ts.map +1 -0
  340. package/expresivo/ExpLensIcon/index.js +2 -0
  341. package/expresivo/ExpLensIcon/index.js.map +1 -0
  342. package/expresivo/ExpLogo/ExpLogo.d.ts +33 -0
  343. package/expresivo/ExpLogo/ExpLogo.d.ts.map +1 -0
  344. package/expresivo/ExpLogo/ExpLogo.jsx +42 -0
  345. package/expresivo/ExpLogo/ExpLogo.jsx.map +1 -0
  346. package/expresivo/ExpLogo/catalog.d.ts +17 -0
  347. package/expresivo/ExpLogo/catalog.d.ts.map +1 -0
  348. package/expresivo/ExpLogo/catalog.js +11 -0
  349. package/expresivo/ExpLogo/catalog.js.map +1 -0
  350. package/expresivo/ExpLogo/index.d.ts +4 -0
  351. package/expresivo/ExpLogo/index.d.ts.map +1 -0
  352. package/expresivo/ExpLogo/index.js +2 -0
  353. package/expresivo/ExpLogo/index.js.map +1 -0
  354. package/expresivo/ExpMascot/ExpMascot.d.ts +42 -0
  355. package/expresivo/ExpMascot/ExpMascot.d.ts.map +1 -0
  356. package/expresivo/ExpMascot/ExpMascot.jsx +46 -0
  357. package/expresivo/ExpMascot/ExpMascot.jsx.map +1 -0
  358. package/expresivo/ExpMascot/catalog.d.ts +12 -0
  359. package/expresivo/ExpMascot/catalog.d.ts.map +1 -0
  360. package/expresivo/ExpMascot/catalog.js +41 -0
  361. package/expresivo/ExpMascot/catalog.js.map +1 -0
  362. package/expresivo/ExpMascot/index.d.ts +4 -0
  363. package/expresivo/ExpMascot/index.d.ts.map +1 -0
  364. package/expresivo/ExpMascot/index.js +2 -0
  365. package/expresivo/ExpMascot/index.js.map +1 -0
  366. package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts +29 -0
  367. package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts.map +1 -0
  368. package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx +87 -0
  369. package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx.map +1 -0
  370. package/expresivo/ExpMedalBadge/index.d.ts +3 -0
  371. package/expresivo/ExpMedalBadge/index.d.ts.map +1 -0
  372. package/expresivo/ExpMedalBadge/index.js +2 -0
  373. package/expresivo/ExpMedalBadge/index.js.map +1 -0
  374. package/expresivo/ExpPageHero/ExpPageHero.d.ts +82 -0
  375. package/expresivo/ExpPageHero/ExpPageHero.d.ts.map +1 -0
  376. package/expresivo/ExpPageHero/ExpPageHero.jsx +113 -0
  377. package/expresivo/ExpPageHero/ExpPageHero.jsx.map +1 -0
  378. package/expresivo/ExpPageHero/index.d.ts +3 -0
  379. package/expresivo/ExpPageHero/index.d.ts.map +1 -0
  380. package/expresivo/ExpPageHero/index.js +2 -0
  381. package/expresivo/ExpPageHero/index.js.map +1 -0
  382. package/expresivo/ExpPeek/ExpPeek.d.ts +56 -0
  383. package/expresivo/ExpPeek/ExpPeek.d.ts.map +1 -0
  384. package/expresivo/ExpPeek/ExpPeek.jsx +131 -0
  385. package/expresivo/ExpPeek/ExpPeek.jsx.map +1 -0
  386. package/expresivo/ExpPeek/index.d.ts +3 -0
  387. package/expresivo/ExpPeek/index.d.ts.map +1 -0
  388. package/expresivo/ExpPeek/index.js +2 -0
  389. package/expresivo/ExpPeek/index.js.map +1 -0
  390. package/expresivo/ExpPillButton/ExpPillButton.d.ts +47 -0
  391. package/expresivo/ExpPillButton/ExpPillButton.d.ts.map +1 -0
  392. package/expresivo/ExpPillButton/ExpPillButton.jsx +77 -0
  393. package/expresivo/ExpPillButton/ExpPillButton.jsx.map +1 -0
  394. package/expresivo/ExpPillButton/index.d.ts +3 -0
  395. package/expresivo/ExpPillButton/index.d.ts.map +1 -0
  396. package/expresivo/ExpPillButton/index.js +2 -0
  397. package/expresivo/ExpPillButton/index.js.map +1 -0
  398. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts +28 -0
  399. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts.map +1 -0
  400. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx +32 -0
  401. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx.map +1 -0
  402. package/expresivo/ExpRepoAvatar/catalog.d.ts +6 -0
  403. package/expresivo/ExpRepoAvatar/catalog.d.ts.map +1 -0
  404. package/expresivo/ExpRepoAvatar/catalog.js +18 -0
  405. package/expresivo/ExpRepoAvatar/catalog.js.map +1 -0
  406. package/expresivo/ExpRepoAvatar/index.d.ts +4 -0
  407. package/expresivo/ExpRepoAvatar/index.d.ts.map +1 -0
  408. package/expresivo/ExpRepoAvatar/index.js +2 -0
  409. package/expresivo/ExpRepoAvatar/index.js.map +1 -0
  410. package/expresivo/ExpScope/ExpScope.d.ts +63 -0
  411. package/expresivo/ExpScope/ExpScope.d.ts.map +1 -0
  412. package/expresivo/ExpScope/ExpScope.jsx +67 -0
  413. package/expresivo/ExpScope/ExpScope.jsx.map +1 -0
  414. package/expresivo/ExpScope/index.d.ts +3 -0
  415. package/expresivo/ExpScope/index.d.ts.map +1 -0
  416. package/expresivo/ExpScope/index.js +2 -0
  417. package/expresivo/ExpScope/index.js.map +1 -0
  418. package/expresivo/ExpScoreRing/ExpScoreRing.d.ts +35 -0
  419. package/expresivo/ExpScoreRing/ExpScoreRing.d.ts.map +1 -0
  420. package/expresivo/ExpScoreRing/ExpScoreRing.jsx +67 -0
  421. package/expresivo/ExpScoreRing/ExpScoreRing.jsx.map +1 -0
  422. package/expresivo/ExpScoreRing/index.d.ts +3 -0
  423. package/expresivo/ExpScoreRing/index.d.ts.map +1 -0
  424. package/expresivo/ExpScoreRing/index.js +2 -0
  425. package/expresivo/ExpScoreRing/index.js.map +1 -0
  426. package/expresivo/ExpSearchField/ExpSearchField.d.ts +49 -0
  427. package/expresivo/ExpSearchField/ExpSearchField.d.ts.map +1 -0
  428. package/expresivo/ExpSearchField/ExpSearchField.jsx +81 -0
  429. package/expresivo/ExpSearchField/ExpSearchField.jsx.map +1 -0
  430. package/expresivo/ExpSearchField/index.d.ts +3 -0
  431. package/expresivo/ExpSearchField/index.d.ts.map +1 -0
  432. package/expresivo/ExpSearchField/index.js +2 -0
  433. package/expresivo/ExpSearchField/index.js.map +1 -0
  434. package/expresivo/ExpStatIcon/ExpStatIcon.d.ts +25 -0
  435. package/expresivo/ExpStatIcon/ExpStatIcon.d.ts.map +1 -0
  436. package/expresivo/ExpStatIcon/ExpStatIcon.jsx +29 -0
  437. package/expresivo/ExpStatIcon/ExpStatIcon.jsx.map +1 -0
  438. package/expresivo/ExpStatIcon/catalog.d.ts +6 -0
  439. package/expresivo/ExpStatIcon/catalog.d.ts.map +1 -0
  440. package/expresivo/ExpStatIcon/catalog.js +16 -0
  441. package/expresivo/ExpStatIcon/catalog.js.map +1 -0
  442. package/expresivo/ExpStatIcon/index.d.ts +4 -0
  443. package/expresivo/ExpStatIcon/index.d.ts.map +1 -0
  444. package/expresivo/ExpStatIcon/index.js +2 -0
  445. package/expresivo/ExpStatIcon/index.js.map +1 -0
  446. package/expresivo/ExpStepBadge/ExpStepBadge.d.ts +25 -0
  447. package/expresivo/ExpStepBadge/ExpStepBadge.d.ts.map +1 -0
  448. package/expresivo/ExpStepBadge/ExpStepBadge.jsx +30 -0
  449. package/expresivo/ExpStepBadge/ExpStepBadge.jsx.map +1 -0
  450. package/expresivo/ExpStepBadge/index.d.ts +2 -0
  451. package/expresivo/ExpStepBadge/index.d.ts.map +1 -0
  452. package/expresivo/ExpStepBadge/index.js +2 -0
  453. package/expresivo/ExpStepBadge/index.js.map +1 -0
  454. package/expresivo/index.d.ts +22 -0
  455. package/expresivo/index.d.ts.map +1 -0
  456. package/expresivo/index.js +22 -0
  457. package/expresivo/index.js.map +1 -0
  458. package/expresivo/shared/glyphs.d.ts +20 -0
  459. package/expresivo/shared/glyphs.d.ts.map +1 -0
  460. package/expresivo/shared/glyphs.jsx +60 -0
  461. package/expresivo/shared/glyphs.jsx.map +1 -0
  462. package/package.json +6 -4
@@ -6,30 +6,55 @@ import { MdFullscreen, MdFullscreenExit, MdRotateRight, MdZoomIn, MdZoomOut, } f
6
6
  import { Each, Show } from '../../00-base';
7
7
  import { List, Paragraph } from '../../01-atoms';
8
8
  import { TabItem } from '../Tab/TabItem';
9
+ import { ImageViewerImage } from './ImageViewerImage';
9
10
  const MIN_ZOOM = 1;
10
11
  const MAX_ZOOM = 3;
11
12
  const ZOOM_STEP = 0.5;
12
13
  const QUARTER_TURN = 90;
13
14
  const FULL_TURN = 360;
15
+ const INITIAL_TRANSFORM = { zoom: MIN_ZOOM, rotation: 0 };
14
16
  const TOOL_CLASSNAME = 'hover:bg-gray-5 focus-visible:ring-lavender disabled:text-gray-3 dark:disabled:text-gray-1 dark:hover:bg-gray-1 flex h-8 w-8 cursor-pointer items-center justify-center rounded-sm text-lg text-black focus-visible:ring-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:hover:bg-transparent dark:text-white';
15
17
  /**
16
18
  * ImageViewer component for inspecting one or more images of the same subject.
17
19
  *
18
20
  * Each view is a tab, so a subject photographed from several angles reads as one
19
- * piece instead of a gallery. Zoom and rotation reset when the view changes: a
21
+ * piece instead of a gallery. Zoom and rotation reset whenever the active view
22
+ * changes, whether the user picked a tab or the consumer moved `activeId`: a
20
23
  * transform that made sense for one angle rarely makes sense for the next.
21
24
  *
25
+ * Uncontrolled by default. Passing `activeId` makes the consumer own the active
26
+ * view, so something outside the viewer (a side panel, a "next pending" action)
27
+ * can follow or drive it; `onViewChange` reports tab picks in both modes.
28
+ *
22
29
  * Renders `emptyState` while `views` is empty, and disables the toolbar with it,
23
30
  * so the frame keeps its size instead of collapsing.
24
31
  *
32
+ * `layout="split"` is for comparing different subjects instead: every view
33
+ * gets its own pane with its label, side by side from `sm` and stacked below
34
+ * it. The toolbar acts on all panes at once, so both stay at the same scale,
35
+ * and there is no active view.
36
+ *
37
+ * A view's `crop` draws only that region of its image, fitted to the frame
38
+ * like the whole image would be — a face inside a document, for instance.
39
+ *
25
40
  * @component
26
41
  * @example
42
+ * const [viewId, setViewId] = useState('front');
43
+ *
27
44
  * <ImageViewer
28
45
  * title="Identity document"
29
46
  * views={[
30
47
  * { id: 'front', label: 'Front', src: '/front.jpg', alt: 'Document front' },
31
- * { id: 'back', label: 'Back', src: '/back.jpg', alt: 'Document back' },
48
+ * {
49
+ * id: 'back',
50
+ * label: 'Back',
51
+ * src: '/back.jpg',
52
+ * alt: 'Document back',
53
+ * indicator: <FiAlertTriangle role="img" aria-label="Needs review" />,
54
+ * },
32
55
  * ]}
56
+ * activeId={viewId}
57
+ * onViewChange={setViewId}
33
58
  * labels={{
34
59
  * zoomIn: 'Zoom in',
35
60
  * zoomOut: 'Zoom out',
@@ -40,19 +65,38 @@ const TOOL_CLASSNAME = 'hover:bg-gray-5 focus-visible:ring-lavender disabled:tex
40
65
  * emptyState={<p>Nothing uploaded yet</p>}
41
66
  * />
42
67
  *
68
+ * @example
69
+ * <ImageViewer
70
+ * layout="split"
71
+ * title="Compared images"
72
+ * views={[
73
+ * { id: 'photo', label: 'Photo', src: '/photo.jpg', alt: 'Photo taken today' },
74
+ * {
75
+ * id: 'card',
76
+ * label: 'ID card',
77
+ * src: '/card.jpg',
78
+ * alt: 'Face on the ID card',
79
+ * crop: { left: 0.08, top: 0.2, width: 0.3, height: 0.5 },
80
+ * },
81
+ * ]}
82
+ * labels={labels}
83
+ * />
84
+ *
43
85
  * @param {Object} props - The properties of the ImageViewer component.
44
- * @param {TImageView[]} props.views - Images to display. More than one renders a tab per view.
86
+ * @param {TImageView[]} props.views - Images to display. In `tabs`, more than one renders a tab per view; in `split`, a pane per view. A view's optional `indicator` sits after its label and becomes part of the tab's accessible name, so give it its own (for an icon, `role="img"` and `aria-label`). In `tabs` with a single view there are no tabs, so no indicator is shown. A view's optional `crop` (`left`, `top`, `width`, `height` as fractions from 0 to 1 of the image) shows only that region; a crop outside the image is clamped to it, and one with no area left falls back to the whole image.
45
87
  * @param {TImageViewerLabels} props.labels - Accessible names of the toolbar actions.
88
+ * @param {TImageViewerLayout} [props.layout='tabs'] - `tabs` shows one view at a time; `split` shows every view at once, one pane each.
46
89
  * @param {ReactNode} [props.title] - Optional heading rendered on the left of the toolbar.
47
90
  * @param {ReactNode} [props.emptyState] - Content rendered when there is no image.
91
+ * @param {string} [props.activeId] - Id of the view to show. Makes the viewer controlled; an id that matches no view falls back to the first one. Ignored in `split`.
92
+ * @param {(id: string) => void} [props.onViewChange] - Called with the id of the tab the user picks, only when it differs from the active one. Never called in `split`.
48
93
  * @param {HTMLAttributes<HTMLElement>} [props.restProps] - Additional attributes for the root element.
49
94
  *
50
95
  * @returns {ReactNode} The rendered ImageViewer component.
51
96
  */
52
- export function ImageViewer({ views, labels, title, emptyState, ...restProps }) {
53
- const [activeIndex, setActiveIndex] = useState(0);
54
- const [zoom, setZoom] = useState(MIN_ZOOM);
55
- const [rotation, setRotation] = useState(0);
97
+ export function ImageViewer({ views, labels, layout = 'tabs', title, emptyState, activeId, onViewChange, ...restProps }) {
98
+ const [internalIndex, setInternalIndex] = useState(0);
99
+ const [transform, setTransform] = useState(INITIAL_TRANSFORM);
56
100
  const [isFullscreen, setIsFullscreen] = useState(false);
57
101
  const generatedId = useId();
58
102
  /**
@@ -62,9 +106,8 @@ export function ImageViewer({ views, labels, title, emptyState, ...restProps })
62
106
  */
63
107
  const viewsSignature = views.map(({ id }) => id).join('|');
64
108
  useEffect(() => {
65
- setActiveIndex(0);
66
- setZoom(MIN_ZOOM);
67
- setRotation(0);
109
+ setInternalIndex(0);
110
+ setTransform(INITIAL_TRANSFORM);
68
111
  }, [viewsSignature]);
69
112
  useEffect(() => {
70
113
  if (!isFullscreen)
@@ -76,12 +119,35 @@ export function ImageViewer({ views, labels, title, emptyState, ...restProps })
76
119
  document.addEventListener('keydown', handleKeyDown);
77
120
  return () => document.removeEventListener('keydown', handleKeyDown);
78
121
  }, [isFullscreen]);
122
+ const isControlled = activeId !== undefined;
123
+ const activeIndex = isControlled
124
+ ? Math.max(views.findIndex(({ id }) => id === activeId), 0)
125
+ : internalIndex;
79
126
  const activeView = views[activeIndex] ?? views[0];
80
127
  const hasImage = Boolean(activeView);
128
+ const isSplit = layout === 'split';
129
+ const hasTabs = !isSplit && views.length > 1;
130
+ const { zoom, rotation } = transform;
131
+ const imageStyle = { transform: `rotate(${rotation}deg) scale(${zoom})` };
132
+ /**
133
+ * En modo controlado la vista puede cambiar sin pasar por `selectView`, asi
134
+ * que el reinicio se ata a la vista activa y no al clic. Guardar el zoom por
135
+ * id no alcanza: al volver a una vista reapareceria el zoom que tenia.
136
+ */
137
+ const [transformViewId, setTransformViewId] = useState(activeView?.id);
138
+ if (activeView?.id !== transformViewId) {
139
+ setTransformViewId(activeView?.id);
140
+ setTransform(INITIAL_TRANSFORM);
141
+ }
81
142
  const selectView = (index) => {
82
- setActiveIndex(index);
83
- setZoom(MIN_ZOOM);
84
- setRotation(0);
143
+ const view = views[index];
144
+ if (!view)
145
+ return;
146
+ setTransform(INITIAL_TRANSFORM);
147
+ if (!isControlled)
148
+ setInternalIndex(index);
149
+ if (view.id !== activeView?.id)
150
+ onViewChange?.(view.id);
85
151
  };
86
152
  const frame = (<section {...restProps} className={clsx('border-gray-5 dark:border-gray-1 flex min-h-0 flex-col overflow-hidden rounded-lg border', isFullscreen ? 'h-full w-full bg-white dark:bg-black' : undefined, !isFullscreen ? restProps.className : undefined)}>
87
153
  <div className="border-gray-5 bg-gray-6 dark:border-gray-1 dark:bg-black-1 flex flex-none items-center justify-between gap-4 border-b px-4 py-3">
@@ -93,13 +159,22 @@ export function ImageViewer({ views, labels, title, emptyState, ...restProps })
93
159
  </Show.When>
94
160
  </Show>
95
161
  <div className="ml-auto flex items-center gap-1.5">
96
- <button type="button" aria-label={labels.zoomOut} disabled={!hasImage || zoom <= MIN_ZOOM} onClick={() => setZoom((current) => current - ZOOM_STEP)} className={TOOL_CLASSNAME}>
162
+ <button type="button" aria-label={labels.zoomOut} disabled={!hasImage || zoom <= MIN_ZOOM} onClick={() => setTransform((current) => ({
163
+ ...current,
164
+ zoom: current.zoom - ZOOM_STEP,
165
+ }))} className={TOOL_CLASSNAME}>
97
166
  <MdZoomOut aria-hidden="true"/>
98
167
  </button>
99
- <button type="button" aria-label={labels.zoomIn} disabled={!hasImage || zoom >= MAX_ZOOM} onClick={() => setZoom((current) => current + ZOOM_STEP)} className={TOOL_CLASSNAME}>
168
+ <button type="button" aria-label={labels.zoomIn} disabled={!hasImage || zoom >= MAX_ZOOM} onClick={() => setTransform((current) => ({
169
+ ...current,
170
+ zoom: current.zoom + ZOOM_STEP,
171
+ }))} className={TOOL_CLASSNAME}>
100
172
  <MdZoomIn aria-hidden="true"/>
101
173
  </button>
102
- <button type="button" aria-label={labels.rotate} disabled={!hasImage} onClick={() => setRotation((current) => (current + QUARTER_TURN) % FULL_TURN)} className={TOOL_CLASSNAME}>
174
+ <button type="button" aria-label={labels.rotate} disabled={!hasImage} onClick={() => setTransform((current) => ({
175
+ ...current,
176
+ rotation: (current.rotation + QUARTER_TURN) % FULL_TURN,
177
+ }))} className={TOOL_CLASSNAME}>
103
178
  <MdRotateRight aria-hidden="true"/>
104
179
  </button>
105
180
  <button type="button" aria-label={isFullscreen ? labels.exitFullscreen : labels.enterFullscreen} aria-pressed={isFullscreen} disabled={!hasImage} onClick={() => setIsFullscreen((current) => !current)} className={TOOL_CLASSNAME}>
@@ -109,27 +184,43 @@ export function ImageViewer({ views, labels, title, emptyState, ...restProps })
109
184
  </div>
110
185
 
111
186
  <Show>
112
- <Show.When isTrue={views.length > 1}>
187
+ <Show.When isTrue={hasTabs}>
113
188
  <List role="tablist" aria-orientation="horizontal" orientation="horizontal" className="border-gray-5 dark:border-gray-1 flex-none items-end gap-6 border-b px-4">
114
- <Each of={views} render={({ id, label }, index) => (<li key={id} role="presentation">
189
+ <Each of={views} render={({ id, label, indicator }, index) => (<li key={id} role="presentation">
115
190
  <TabItem id={`${generatedId}-tab-${index}`} aria-controls={`${generatedId}-panel`} aria-selected={index === activeIndex} tabIndex={index === activeIndex ? 0 : -1} isActive={index === activeIndex} onClick={() => selectView(index)} className="pb-2">
116
- {label}
191
+ <span className="inline-flex items-center gap-1.5">
192
+ {label}
193
+ {!!indicator && (<span className="flex flex-none items-center">
194
+ {indicator}
195
+ </span>)}
196
+ </span>
117
197
  </TabItem>
118
198
  </li>)}/>
119
199
  </List>
120
200
  </Show.When>
121
201
  </Show>
122
202
 
123
- <div id={`${generatedId}-panel`} role={views.length > 1 ? 'tabpanel' : undefined} aria-labelledby={views.length > 1 ? `${generatedId}-tab-${activeIndex}` : undefined} className="bg-gray-7 dark:bg-black-2 flex min-h-0 flex-1 items-center justify-center overflow-hidden p-5">
203
+ <div id={`${generatedId}-panel`} role={hasTabs ? 'tabpanel' : undefined} aria-labelledby={hasTabs ? `${generatedId}-tab-${activeIndex}` : undefined} className="bg-gray-7 dark:bg-black-2 flex min-h-0 flex-1 items-center justify-center overflow-hidden p-5">
124
204
  <Show>
205
+ <Show.When isTrue={!!hasImage && isSplit}>
206
+ <div className="grid h-full w-full auto-rows-fr grid-cols-1 gap-5 sm:auto-cols-fr sm:grid-flow-col sm:grid-cols-none sm:grid-rows-1">
207
+ <Each of={views} render={({ id, label, indicator, src, alt, crop }) => (<figure key={id} className="flex min-h-0 min-w-0 flex-col gap-2">
208
+ <figcaption className="flex flex-none items-center gap-1.5">
209
+ <Paragraph size="subtitle-2" className="dark:text-white">
210
+ {label}
211
+ </Paragraph>
212
+ {!!indicator && (<span className="flex flex-none items-center">
213
+ {indicator}
214
+ </span>)}
215
+ </figcaption>
216
+ <div className="flex min-h-0 flex-1 items-center justify-center overflow-hidden">
217
+ <ImageViewerImage src={src} alt={alt} crop={crop} style={imageStyle}/>
218
+ </div>
219
+ </figure>)}/>
220
+ </div>
221
+ </Show.When>
125
222
  <Show.When isTrue={hasImage}>
126
- {/**
127
- * `next/image` exigiria que cada consumidor declare el dominio de
128
- * sus imagenes en `remotePatterns`. Estas son cargas de usuario en
129
- * almacenamiento externo, asi que la lista no se puede conocer.
130
- */}
131
- {/* eslint-disable-next-line @next/next/no-img-element */}
132
- <img src={activeView?.src} alt={activeView?.alt} style={{ transform: `rotate(${rotation}deg) scale(${zoom})` }} className="max-h-full max-w-full object-contain transition-transform duration-200 ease-out"/>
223
+ {!!activeView && (<ImageViewerImage key={activeView.id} src={activeView.src} alt={activeView.alt} crop={activeView.crop} style={imageStyle}/>)}
133
224
  </Show.When>
134
225
  <Show.Else>{emptyState}</Show.Else>
135
226
  </Show>
@@ -1 +1 @@
1
- {"version":3,"file":"ImageViewer.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/ImageViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageViewer.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/ImageViewer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,SAAS,EACT,KAAK,EACL,QAAQ,GAGT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAsCvE,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,iBAAiB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAEtE,MAAM,cAAc,GAClB,iUAAiU,CAAC;AAEpU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,EACN,MAAM,GAAG,MAAM,EACf,KAAK,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,GAAG,SAAS,EACK;IACjB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,iBAAiB,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAE5B;;;;OAIG;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpB,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC;IAC5C,MAAM,WAAW,GAAG,YAAY;QAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAC5C,CAAC,CACF;QACH,CAAC,CAAC,aAAa,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,UAAU,QAAQ,cAAc,IAAI,GAAG,EAAE,CAAC;IAE1E;;;;OAIG;IACH,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,UAAU,EAAE,EAAE,KAAK,eAAe,EAAE,CAAC;QACvC,kBAAkB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY;YAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,EAAE;YAAE,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CACZ,CAAC,OAAO,CACN,IAAI,SAAS,CAAC,CACd,SAAS,CAAC,CAAC,IAAI,CACb,0FAA0F,EAC1F,YAAY,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,SAAS,EACjE,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,CAEF;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,iIAAiI,CAC9I;QAAA,CAAC,IAAI,CACH;UAAA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAChC;YAAA,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CACtD;cAAA,CAAC,KAAK,CACR;YAAA,EAAE,SAAS,CACb;UAAA,EAAE,IAAI,CAAC,IAAI,CACb;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAmC,CAChD;UAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3B,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,CACxC,OAAO,CAAC,CAAC,GAAG,EAAE,CACZ,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS;SAC/B,CAAC,CACJ,CAAC,CACD,SAAS,CAAC,CAAC,cAAc,CAAC,CAE1B;YAAA,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAC/B;UAAA,EAAE,MAAM,CACR;UAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1B,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,CACxC,OAAO,CAAC,CAAC,GAAG,EAAE,CACZ,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS;SAC/B,CAAC,CACJ,CAAC,CACD,SAAS,CAAC,CAAC,cAAc,CAAC,CAE1B;YAAA,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAC9B;UAAA,EAAE,MAAM,CACR;UAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1B,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CACpB,OAAO,CAAC,CAAC,GAAG,EAAE,CACZ,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,OAAO;YACV,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,SAAS;SACxD,CAAC,CACJ,CAAC,CACD,SAAS,CAAC,CAAC,cAAc,CAAC,CAE1B;YAAA,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EACnC;UAAA,EAAE,MAAM,CACR;UAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,UAAU,CAAC,CACT,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,eAChD,CAAC,CACD,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CACpB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CACtD,SAAS,CAAC,CAAC,cAAc,CAAC,CAE1B;YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,CACd,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAG,CACxC,CAAC,CAAC,CAAC,CACF,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAG,CACpC,CACH;UAAA,EAAE,MAAM,CACV;QAAA,EAAE,GAAG,CACP;MAAA,EAAE,GAAG,CAEL;;MAAA,CAAC,IAAI,CACH;QAAA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACzB;UAAA,CAAC,IAAI,CACH,IAAI,CAAC,SAAS,CACd,gBAAgB,CAAC,YAAY,CAC7B,WAAW,CAAC,YAAY,CACxB,SAAS,CAAC,0EAA0E,CAEpF;YAAA,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,KAAK,CAAC,CACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAC9B;kBAAA,CAAC,OAAO,CACN,EAAE,CAAC,CAAC,GAAG,WAAW,QAAQ,KAAK,EAAE,CAAC,CAClC,aAAa,CAAC,CAAC,GAAG,WAAW,QAAQ,CAAC,CACtC,aAAa,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CACrC,QAAQ,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzC,QAAQ,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAChC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACjC,SAAS,CAAC,MAAM,CAEhB;oBAAA,CAAC,IAAI,CAAC,SAAS,CAAC,kCAAkC,CAChD;sBAAA,CAAC,KAAK,CACN;sBAAA,CAAC,CAAC,CAAC,SAAS,IAAI,CACd,CAAC,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAC3C;0BAAA,CAAC,SAAS,CACZ;wBAAA,EAAE,IAAI,CAAC,CACR,CACH;oBAAA,EAAE,IAAI,CACR;kBAAA,EAAE,OAAO,CACX;gBAAA,EAAE,EAAE,CAAC,CACN,CAAC,EAEN;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CAAC,IAAI,CACb;MAAA,EAAE,IAAI,CAEN;;MAAA,CAAC,GAAG,CACF,EAAE,CAAC,CAAC,GAAG,WAAW,QAAQ,CAAC,CAC3B,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CACvC,eAAe,CAAC,CACd,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC,SAClD,CAAC,CACD,SAAS,CAAC,+FAA+F,CAEzG;QAAA,CAAC,IAAI,CACH;UAAA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CACvC;YAAA,CAAC,GAAG,CAAC,SAAS,CAAC,qHAAqH,CAClI;cAAA,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,KAAK,CAAC,CACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpD,CAAC,MAAM,CACL,GAAG,CAAC,CAAC,EAAE,CAAC,CACR,SAAS,CAAC,qCAAqC,CAE/C;oBAAA,CAAC,UAAU,CAAC,SAAS,CAAC,qCAAqC,CACzD;sBAAA,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CACtD;wBAAA,CAAC,KAAK,CACR;sBAAA,EAAE,SAAS,CACX;sBAAA,CAAC,CAAC,CAAC,SAAS,IAAI,CACd,CAAC,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAC3C;0BAAA,CAAC,SAAS,CACZ;wBAAA,EAAE,IAAI,CAAC,CACR,CACH;oBAAA,EAAE,UAAU,CACZ;oBAAA,CAAC,GAAG,CAAC,SAAS,CAAC,iEAAiE,CAC9E;sBAAA,CAAC,gBAAgB,CACf,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,UAAU,CAAC,EAEtB;oBAAA,EAAE,GAAG,CACP;kBAAA,EAAE,MAAM,CAAC,CACV,CAAC,EAEN;YAAA,EAAE,GAAG,CACP;UAAA,EAAE,IAAI,CAAC,IAAI,CACX;UAAA,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAC1B;YAAA,CAAC,CAAC,CAAC,UAAU,IAAI,CACf,CAAC,gBAAgB,CACf,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CACnB,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CACpB,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CACpB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CACtB,KAAK,CAAC,CAAC,UAAU,CAAC,EAClB,CACH,CACH;UAAA,EAAE,IAAI,CAAC,IAAI,CACX;UAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CACpC;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,OAAO,CAAC,CACX,CAAC;IAEF,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,OAAO,YAAY,CACjB,CAAC,GAAG,CAAC,SAAS,CAAC,qEAAqE,CAClF;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CACvD;IAAA,EAAE,GAAG,CAAC,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ export type TImageCrop = {
3
+ left: number;
4
+ top: number;
5
+ width: number;
6
+ height: number;
7
+ };
8
+ type ImageViewerImageProps = {
9
+ src: string;
10
+ alt: string;
11
+ crop?: TImageCrop;
12
+ style: CSSProperties;
13
+ };
14
+ /**
15
+ * Image of one `ImageViewer` view, fitted inside its frame. With `crop`, only
16
+ * that region of the image is drawn, scaled to fit the frame the same way the
17
+ * whole image would be.
18
+ *
19
+ * Internal to `ImageViewer`: it is not exported from the library.
20
+ *
21
+ * @component
22
+ * @example
23
+ * <ImageViewerImage
24
+ * src="/document.jpg"
25
+ * alt="Document front"
26
+ * crop={{ left: 0.1, top: 0.2, width: 0.3, height: 0.4 }}
27
+ * style={{ transform: 'rotate(0deg) scale(1)' }}
28
+ * />
29
+ *
30
+ * @param {Object} props - The properties of the ImageViewerImage component.
31
+ * @param {string} props.src - Image URL.
32
+ * @param {string} props.alt - Accessible description of the image.
33
+ * @param {TImageCrop} [props.crop] - Region to show, as fractions (0 to 1) of the image width and height.
34
+ * @param {CSSProperties} props.style - Zoom and rotation computed by the viewer.
35
+ *
36
+ * @returns {ReactNode} The rendered image.
37
+ */
38
+ export declare function ImageViewerImage({ src, alt, crop, style, }: ImageViewerImageProps): ReactNode;
39
+ export {};
40
+ //# sourceMappingURL=ImageViewerImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageViewerImage.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/ImageViewerImage.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAOF,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AA2DF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,GACN,EAAE,qBAAqB,GAAG,SAAS,CA4DnC"}
@@ -0,0 +1,109 @@
1
+ 'use client';
2
+ import clsx from 'clsx';
3
+ import { useEffect, useId, useState, } from 'react';
4
+ const TRANSFORM_CLASSNAME = 'transition-transform duration-200 ease-out';
5
+ const clampFraction = (value) => Math.min(Math.max(value, 0), 1);
6
+ /**
7
+ * Keeps the region inside the image, and drops it when nothing is left to
8
+ * show, so a malformed crop falls back to the whole image.
9
+ */
10
+ const normalizeCrop = (crop) => {
11
+ if (!crop)
12
+ return null;
13
+ const left = clampFraction(crop.left);
14
+ const top = clampFraction(crop.top);
15
+ const width = clampFraction(crop.left + crop.width) - left;
16
+ const height = clampFraction(crop.top + crop.height) - top;
17
+ return width > 0 && height > 0 ? { left, top, width, height } : null;
18
+ };
19
+ /**
20
+ * The crop is expressed in fractions, but an SVG `viewBox` needs pixels to keep
21
+ * the region undistorted, so the image is decoded once to read its size.
22
+ */
23
+ const useNaturalSize = (src, isEnabled) => {
24
+ const [size, setSize] = useState(null);
25
+ useEffect(() => {
26
+ if (!isEnabled)
27
+ return;
28
+ let isCurrent = true;
29
+ const image = new window.Image();
30
+ // eslint-disable-next-line react-hooks/set-state-in-effect -- clears the previous size while this effect loads the new image
31
+ setSize(null);
32
+ image.onload = () => {
33
+ if (isCurrent) {
34
+ setSize({ width: image.naturalWidth, height: image.naturalHeight });
35
+ }
36
+ };
37
+ image.onerror = () => {
38
+ if (isCurrent)
39
+ setSize('error');
40
+ };
41
+ image.src = src;
42
+ return () => {
43
+ isCurrent = false;
44
+ image.onload = null;
45
+ image.onerror = null;
46
+ };
47
+ }, [src, isEnabled]);
48
+ return size;
49
+ };
50
+ /**
51
+ * Image of one `ImageViewer` view, fitted inside its frame. With `crop`, only
52
+ * that region of the image is drawn, scaled to fit the frame the same way the
53
+ * whole image would be.
54
+ *
55
+ * Internal to `ImageViewer`: it is not exported from the library.
56
+ *
57
+ * @component
58
+ * @example
59
+ * <ImageViewerImage
60
+ * src="/document.jpg"
61
+ * alt="Document front"
62
+ * crop={{ left: 0.1, top: 0.2, width: 0.3, height: 0.4 }}
63
+ * style={{ transform: 'rotate(0deg) scale(1)' }}
64
+ * />
65
+ *
66
+ * @param {Object} props - The properties of the ImageViewerImage component.
67
+ * @param {string} props.src - Image URL.
68
+ * @param {string} props.alt - Accessible description of the image.
69
+ * @param {TImageCrop} [props.crop] - Region to show, as fractions (0 to 1) of the image width and height.
70
+ * @param {CSSProperties} props.style - Zoom and rotation computed by the viewer.
71
+ *
72
+ * @returns {ReactNode} The rendered image.
73
+ */
74
+ export function ImageViewerImage({ src, alt, crop, style, }) {
75
+ const region = normalizeCrop(crop);
76
+ const size = useNaturalSize(src, region !== null);
77
+ const clipId = `crop${useId().replace(/[^\w-]/g, '')}`;
78
+ if (!region || size === 'error') {
79
+ return (
80
+ /**
81
+ * `next/image` exigiria que cada consumidor declare el dominio de sus
82
+ * imagenes en `remotePatterns`. Estas son cargas de usuario en
83
+ * almacenamiento externo, asi que la lista no se puede conocer.
84
+ */
85
+ // eslint-disable-next-line @next/next/no-img-element
86
+ <img src={src} alt={alt} style={style} className={clsx('max-h-full max-w-full object-contain', TRANSFORM_CLASSNAME)}/>);
87
+ }
88
+ if (!size)
89
+ return null;
90
+ const box = {
91
+ x: region.left * size.width,
92
+ y: region.top * size.height,
93
+ width: region.width * size.width,
94
+ height: region.height * size.height,
95
+ };
96
+ /**
97
+ * `meet` centers the region but the SVG still paints whatever falls in the
98
+ * letterbox, which is the rest of the image: the clip keeps only the region.
99
+ */
100
+ return (<svg role="img" aria-label={alt} viewBox={[box.x, box.y, box.width, box.height].join(' ')} preserveAspectRatio="xMidYMid meet" style={style} className={clsx('h-full w-full', TRANSFORM_CLASSNAME)}>
101
+ <defs>
102
+ <clipPath id={clipId}>
103
+ <rect {...box}/>
104
+ </clipPath>
105
+ </defs>
106
+ <image href={src} width={size.width} height={size.height} clipPath={`url(#${clipId})`}/>
107
+ </svg>);
108
+ }
109
+ //# sourceMappingURL=ImageViewerImage.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageViewerImage.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/ImageViewerImage.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
2
  export type InlineMessageModifier = 'info' | 'warning' | 'error' | 'success';
3
+ export type InlineMessageAction = {
4
+ label: string;
5
+ onClick: () => void;
6
+ disabled?: boolean;
7
+ };
3
8
  export type InlineMessageProps = {
4
9
  modifier: InlineMessageModifier;
5
10
  /** Icon rendered before the text. Defaults per modifier; pass `null` to render none. */
6
11
  icon?: ReactNode;
12
+ /** Text button at the end of the message (below the text on mobile): retry, reconnect, undo. */
13
+ action?: InlineMessageAction;
7
14
  children: ReactNode;
8
15
  } & HTMLAttributes<HTMLDivElement>;
9
16
  /**
@@ -26,12 +33,19 @@ export type InlineMessageProps = {
26
33
  * <InlineMessage modifier="info" icon={<FiClock />}>Closes at 18:00</InlineMessage>
27
34
  * <InlineMessage modifier="success" icon={null}>Saved</InlineMessage>
28
35
  *
36
+ * @example
37
+ * // With an action the user can take from the message
38
+ * <InlineMessage modifier="error" action={{ label: 'Retry', onClick: reload }}>
39
+ * The list could not be loaded
40
+ * </InlineMessage>
41
+ *
29
42
  * @param {Object} props - The properties of the InlineMessage component.
30
43
  * @param {'info' | 'warning' | 'error' | 'success'} props.modifier - Semantic tone; drives colors, default icon and ARIA role.
31
44
  * @param {ReactNode} [props.icon] - Icon rendered before the text. Defaults per modifier; `null` renders no icon.
45
+ * @param {{ label: string; onClick: () => void; disabled?: boolean }} [props.action] - Small text `Button` at the end of the message from `sm`, below the text on mobile. It never takes focus when the message appears; the role of the message does not change.
32
46
  * @param {ReactNode} props.children - The message text.
33
47
  *
34
48
  * @returns {ReactNode} The rendered InlineMessage component.
35
49
  */
36
- export declare function InlineMessage({ modifier, icon, children, ...restProps }: InlineMessageProps): ReactNode;
50
+ export declare function InlineMessage({ modifier, icon, action, children, ...restProps }: InlineMessageProps): ReactNode;
37
51
  //# sourceMappingURL=InlineMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/InlineMessage/InlineMessage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,wFAAwF;IACxF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AA+BnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,kBAAkB,GAAG,SAAS,CAmBhC"}
1
+ {"version":3,"file":"InlineMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/InlineMessage/InlineMessage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,wFAAwF;IACxF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gGAAgG;IAChG,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AA+BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,kBAAkB,GAAG,SAAS,CA2ChC"}
@@ -1,5 +1,6 @@
1
1
  import clsx from 'clsx';
2
2
  import { FiAlertCircle, FiAlertTriangle, FiCheckCircle, FiInfo, } from 'react-icons/fi';
3
+ import { Button } from '../../01-atoms/Button';
3
4
  import { Paragraph } from '../../01-atoms/Paragraph';
4
5
  const styleMap = {
5
6
  info: clsx('bg-info-1 text-info-dark-3 dark:bg-info-dark-1 dark:text-info-dark'),
@@ -39,21 +40,35 @@ const roleMap = {
39
40
  * <InlineMessage modifier="info" icon={<FiClock />}>Closes at 18:00</InlineMessage>
40
41
  * <InlineMessage modifier="success" icon={null}>Saved</InlineMessage>
41
42
  *
43
+ * @example
44
+ * // With an action the user can take from the message
45
+ * <InlineMessage modifier="error" action={{ label: 'Retry', onClick: reload }}>
46
+ * The list could not be loaded
47
+ * </InlineMessage>
48
+ *
42
49
  * @param {Object} props - The properties of the InlineMessage component.
43
50
  * @param {'info' | 'warning' | 'error' | 'success'} props.modifier - Semantic tone; drives colors, default icon and ARIA role.
44
51
  * @param {ReactNode} [props.icon] - Icon rendered before the text. Defaults per modifier; `null` renders no icon.
52
+ * @param {{ label: string; onClick: () => void; disabled?: boolean }} [props.action] - Small text `Button` at the end of the message from `sm`, below the text on mobile. It never takes focus when the message appears; the role of the message does not change.
45
53
  * @param {ReactNode} props.children - The message text.
46
54
  *
47
55
  * @returns {ReactNode} The rendered InlineMessage component.
48
56
  */
49
- export function InlineMessage({ modifier, icon, children, ...restProps }) {
57
+ export function InlineMessage({ modifier, icon, action, children, ...restProps }) {
50
58
  const resolvedIcon = icon === undefined ? defaultIconMap[modifier] : icon;
51
- const className = clsx('flex items-center gap-2 rounded-md px-2.5 py-2', styleMap[modifier], restProps.className);
59
+ const className = clsx('flex items-center gap-2 rounded-md px-2.5 py-2', !!action && 'flex-wrap gap-y-1', styleMap[modifier], restProps.className);
52
60
  return (<div role={roleMap[modifier]} {...restProps} className={className}>
53
61
  {!!resolvedIcon && (<span aria-hidden="true" className="inline-flex shrink-0 text-xs">
54
62
  {resolvedIcon}
55
63
  </span>)}
56
- <Paragraph size="subtitle-2">{children}</Paragraph>
64
+ <Paragraph size="subtitle-2" className={clsx(!!action && 'min-w-0 flex-1')}>
65
+ {children}
66
+ </Paragraph>
67
+ {!!action && (<div className={clsx('flex basis-full sm:-my-1 sm:basis-auto sm:pl-0', !!resolvedIcon && 'pl-1')}>
68
+ <Button type="button" modifier="text" size="sm" disabled={action.disabled} onClick={action.onClick}>
69
+ {action.label}
70
+ </Button>
71
+ </div>)}
57
72
  </div>);
58
73
  }
59
74
  //# sourceMappingURL=InlineMessage.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineMessage.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/InlineMessage/InlineMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,MAAM,GACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAWrD,MAAM,QAAQ,GAA0C;IACtD,IAAI,EAAE,IAAI,CACR,oEAAoE,CACrE;IACD,OAAO,EAAE,IAAI,CACX,8EAA8E,CAC/E;IACD,KAAK,EAAE,IAAI,CACT,wEAAwE,CACzE;IACD,OAAO,EAAE,IAAI,CACX,gFAAgF,CACjF;CACF,CAAC;AAEF,MAAM,cAAc,GAA6C;IAC/D,IAAI,EAAE,CAAC,MAAM,CAAC,AAAD,EAAG;IAChB,OAAO,EAAE,CAAC,eAAe,CAAC,AAAD,EAAG;IAC5B,KAAK,EAAE,CAAC,aAAa,CAAC,AAAD,EAAG;IACxB,OAAO,EAAE,CAAC,aAAa,CAAC,AAAD,EAAG;CAC3B,CAAC;AAEF,MAAM,OAAO,GAAsD;IACjE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,GAAG,SAAS,EACO;IACnB,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,MAAM,SAAS,GAAG,IAAI,CACpB,gDAAgD,EAChD,QAAQ,CAAC,QAAQ,CAAC,EAClB,SAAS,CAAC,SAAS,CACpB,CAAC;IAEF,OAAO,CACL,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAChE;MAAA,CAAC,CAAC,CAAC,YAAY,IAAI,CACjB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAC/D;UAAA,CAAC,YAAY,CACf;QAAA,EAAE,IAAI,CAAC,CACR,CACD;MAAA,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CACpD;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"InlineMessage.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/InlineMessage/InlineMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,MAAM,GACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAmBrD,MAAM,QAAQ,GAA0C;IACtD,IAAI,EAAE,IAAI,CACR,oEAAoE,CACrE;IACD,OAAO,EAAE,IAAI,CACX,8EAA8E,CAC/E;IACD,KAAK,EAAE,IAAI,CACT,wEAAwE,CACzE;IACD,OAAO,EAAE,IAAI,CACX,gFAAgF,CACjF;CACF,CAAC;AAEF,MAAM,cAAc,GAA6C;IAC/D,IAAI,EAAE,CAAC,MAAM,CAAC,AAAD,EAAG;IAChB,OAAO,EAAE,CAAC,eAAe,CAAC,AAAD,EAAG;IAC5B,KAAK,EAAE,CAAC,aAAa,CAAC,AAAD,EAAG;IACxB,OAAO,EAAE,CAAC,aAAa,CAAC,AAAD,EAAG;CAC3B,CAAC;AAEF,MAAM,OAAO,GAAsD;IACjE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,SAAS,EACO;IACnB,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,MAAM,SAAS,GAAG,IAAI,CACpB,gDAAgD,EAChD,CAAC,CAAC,MAAM,IAAI,mBAAmB,EAC/B,QAAQ,CAAC,QAAQ,CAAC,EAClB,SAAS,CAAC,SAAS,CACpB,CAAC;IAEF,OAAO,CACL,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAChE;MAAA,CAAC,CAAC,CAAC,YAAY,IAAI,CACjB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAC/D;UAAA,CAAC,YAAY,CACf;QAAA,EAAE,IAAI,CAAC,CACR,CACD;MAAA,CAAC,SAAS,CACR,IAAI,CAAC,YAAY,CACjB,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAE9C;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,SAAS,CACX;MAAA,CAAC,CAAC,CAAC,MAAM,IAAI,CACX,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,IAAI,CACb,gDAAgD,EAChD,CAAC,CAAC,YAAY,IAAI,MAAM,CACzB,CAAC,CAEF;UAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,QAAQ,CAAC,MAAM,CACf,IAAI,CAAC,IAAI,CACT,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAExB;YAAA,CAAC,MAAM,CAAC,KAAK,CACf;UAAA,EAAE,MAAM,CACV;QAAA,EAAE,GAAG,CAAC,CACP,CACH;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,yBAAyB,EAGzB,SAAS,EACV,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,KAAS,EACT,MAAc,EACd,UAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,WAAwB,EACxB,SAAS,EACT,QAAQ,GACT,EAAE,aAAa,GAAG,SAAS,CAuH3B"}
1
+ {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,yBAAyB,EAGzB,SAAS,EACV,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,KAAS,EACT,MAAc,EACd,UAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,WAAwB,EACxB,SAAS,EACT,QAAQ,GACT,EAAE,aAAa,GAAG,SAAS,CAyH3B"}
@@ -78,7 +78,7 @@ export function MenuItem({ text, path, toggle, onClickToggle, icon, isActive, ta
78
78
  'hover:bg-gray-6 dark:hover:bg-gray-1',
79
79
  isActive && 'bg-gray-6 dark:bg-gray-1',
80
80
  ])}>
81
- <Link href={path} className={clsx('slide-over__close flex-1', linkStyleMap)} target={target ?? '_self'} aria-current={isActive ? 'page' : undefined}>
81
+ <Link href={path} data-orion-part="menu-link" className={clsx('slide-over__close flex-1', linkStyleMap)} target={target ?? '_self'} aria-current={isActive ? 'page' : undefined}>
82
82
  <MenuItemContent text={text} icon={icon} toggle={toggle} level={level} hideIcon={isHorizontalTop}/>
83
83
  </Link>
84
84
  <Show>
@@ -93,7 +93,7 @@ export function MenuItem({ text, path, toggle, onClickToggle, icon, isActive, ta
93
93
  </div>
94
94
  </Show.When>
95
95
  <Show.Else>
96
- <button type="button" id={toggleId} className={clsx(linkStyleMap, 'bg-transparent text-inherit')} aria-expanded={toggle ? isOpen : undefined} aria-controls={toggle ? submenuId : undefined} onClick={toggle ? onClickToggle : undefined} onKeyDown={handleToggleKeyDown}>
96
+ <button type="button" id={toggleId} data-orion-part="menu-link" className={clsx(linkStyleMap, 'bg-transparent text-inherit')} aria-expanded={toggle ? isOpen : undefined} aria-controls={toggle ? submenuId : undefined} onClick={toggle ? onClickToggle : undefined} onKeyDown={handleToggleKeyDown}>
97
97
  <MenuItemContent text={text} icon={icon} toggle={toggle} level={level} hideIcon={isHorizontalTop}/>
98
98
  </button>
99
99
  </Show.Else>
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuItem.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuList.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAC/C,cAAc,CAAC,OAAO,QAAQ,CAAC,EAC7B,QAAQ,GACR,eAAe,GACf,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,aAAa,CAChB,CAAC,EAAE,CAAC;IACL,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvE,oBAAoB,CAAC,EAAE,cAAc,CACnC,OAAO,QAAQ,CAChB,CAAC,sBAAsB,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA4CF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,WAAW,EACX,KAAS,EACT,QAAgB,EAChB,UAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,cAAc,GACf,EAAE,aAAa,GAAG,SAAS,CA8J3B"}
1
+ {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Menu/MenuList.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAC/C,cAAc,CAAC,OAAO,QAAQ,CAAC,EAC7B,QAAQ,GACR,eAAe,GACf,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,aAAa,CAChB,CAAC,EAAE,CAAC;IACL,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvE,oBAAoB,CAAC,EAAE,cAAc,CACnC,OAAO,QAAQ,CAChB,CAAC,sBAAsB,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA4CF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,WAAW,EACX,KAAS,EACT,QAAgB,EAChB,UAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,cAAc,GACf,EAAE,aAAa,GAAG,SAAS,CAgK3B"}
@@ -99,7 +99,7 @@ export function MenuList({ menu, orientation, level = 1, isToggle = false, paren
99
99
  items[nextIndex]?.focus();
100
100
  }
101
101
  };
102
- return (<List orientation={orientation} className={clsx('menu', level === 1 && styleMap[orientation], orientation === 'horizontal' && 'gap-2', `level-${level}`)} onKeyDown={handleKeyDown}>
102
+ return (<List orientation={orientation} data-orion-part="menu-list" data-orientation={orientation} className={clsx('menu', level === 1 && styleMap[orientation], orientation === 'horizontal' && 'gap-2', `level-${level}`)} onKeyDown={handleKeyDown}>
103
103
  <Each of={menu} render={({ submenu, ...menuItem }, index) => {
104
104
  const hasSubmenu = (submenu?.length ?? 0) > 0;
105
105
  const submenuId = `${generatedId}-submenu-${index}`;