@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.
- package/assets/avatares/caja-chispa.png +0 -0
- package/assets/avatares/caja.png +0 -0
- package/assets/avatares/cohete.png +0 -0
- package/assets/avatares/dino.png +0 -0
- package/assets/avatares/pulpo-lentes.png +0 -0
- package/assets/avatares/pulpo-verde.png +0 -0
- package/assets/avatares/pulpo.png +0 -0
- package/assets/cifras/alerta.png +0 -0
- package/assets/cifras/duda.png +0 -0
- package/assets/cifras/error.png +0 -0
- package/assets/cifras/monedas.png +0 -0
- package/assets/cifras/reloj.png +0 -0
- package/assets/cifras/visto.png +0 -0
- package/assets/css/expresivo.css +1069 -0
- package/assets/logos/oculus-icon.svg +1 -0
- package/assets/logos/oculus-logo-sm-dark.svg +1 -0
- package/assets/logos/oculus-logo-sm.svg +1 -0
- package/assets/mascotas/svg/bugi-mascota-01-alerta.svg +39 -0
- package/assets/mascotas/svg/bugi-mascota-02-investigando.svg +36 -0
- package/assets/mascotas/svg/bugi-mascota-05-sorprendido.svg +38 -0
- package/assets/mascotas/svg/oculus-mascota-01-feliz.svg +52 -0
- package/assets/mascotas/svg/oculus-mascota-02-investigando.svg +51 -0
- package/assets/mascotas/svg/oculus-mascota-03-dudando.svg +51 -0
- package/assets/mascotas/svg/oculus-mascota-04-analizando-documento.svg +53 -0
- package/assets/mascotas/svg/oculus-mascota-06-celebrando.svg +54 -0
- package/assets/mascotas/svg/oculus-mascota-07-buscando-rapido.svg +57 -0
- package/assets/mascotas/svg/oculus-mascota-08-satisfecho.svg +55 -0
- package/assets/mascotas/webp/fixi-mascota-01-feliz-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-02-investigando-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-03-dudando-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-04-reparando-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-05-sorprendido-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-06-celebrando-sm.webp +0 -0
- package/assets/mascotas/webp/fixi-mascota-07-corriendo-sm.webp +0 -0
- package/dist/components/01-atoms/Button/Button.d.ts +21 -1
- package/dist/components/01-atoms/Button/Button.d.ts.map +1 -1
- package/dist/components/01-atoms/Button/Button.jsx +38 -4
- package/dist/components/01-atoms/Button/Button.jsx.map +1 -1
- package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts +56 -0
- package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts.map +1 -0
- package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx +97 -0
- package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx.map +1 -0
- package/dist/components/01-atoms/CodeBlock/index.d.ts +2 -0
- package/dist/components/01-atoms/CodeBlock/index.d.ts.map +1 -0
- package/dist/components/01-atoms/CodeBlock/index.js +2 -0
- package/dist/components/01-atoms/CodeBlock/index.js.map +1 -0
- package/dist/components/01-atoms/Heading/Heading.jsx +1 -1
- package/dist/components/01-atoms/Heading/Heading.jsx.map +1 -1
- package/dist/components/01-atoms/IconButton/IconButton.d.ts +28 -0
- package/dist/components/01-atoms/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/01-atoms/IconButton/IconButton.jsx +32 -0
- package/dist/components/01-atoms/IconButton/IconButton.jsx.map +1 -0
- package/dist/components/01-atoms/IconButton/index.d.ts +2 -0
- package/dist/components/01-atoms/IconButton/index.d.ts.map +1 -0
- package/dist/components/01-atoms/IconButton/index.js +2 -0
- package/dist/components/01-atoms/IconButton/index.js.map +1 -0
- package/dist/components/01-atoms/Input/Input.d.ts +1 -1
- package/dist/components/01-atoms/Input/Input.d.ts.map +1 -1
- package/dist/components/01-atoms/Input/Input.jsx +13 -9
- package/dist/components/01-atoms/Input/Input.jsx.map +1 -1
- package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.d.ts.map +1 -1
- package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx +1 -1
- package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx.map +1 -1
- package/dist/components/01-atoms/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx +2 -1
- package/dist/components/01-atoms/MultiSelect/MultiSelect.jsx.map +1 -1
- package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts +12 -1
- package/dist/components/01-atoms/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx +18 -2
- package/dist/components/01-atoms/ProgressBar/ProgressBar.jsx.map +1 -1
- package/dist/components/01-atoms/Select/Select.d.ts +7 -1
- package/dist/components/01-atoms/Select/Select.d.ts.map +1 -1
- package/dist/components/01-atoms/Select/Select.jsx +61 -13
- package/dist/components/01-atoms/Select/Select.jsx.map +1 -1
- package/dist/components/01-atoms/Select/SelectList.d.ts +41 -0
- package/dist/components/01-atoms/Select/SelectList.d.ts.map +1 -0
- package/dist/components/01-atoms/Select/SelectList.jsx +116 -0
- package/dist/components/01-atoms/Select/SelectList.jsx.map +1 -0
- package/dist/components/01-atoms/SmallInput/SmallInput.d.ts.map +1 -1
- package/dist/components/01-atoms/SmallInput/SmallInput.jsx +1 -0
- package/dist/components/01-atoms/SmallInput/SmallInput.jsx.map +1 -1
- package/dist/components/01-atoms/Spinner/Spinner.d.ts +24 -3
- package/dist/components/01-atoms/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/01-atoms/Spinner/Spinner.jsx +30 -4
- package/dist/components/01-atoms/Spinner/Spinner.jsx.map +1 -1
- package/dist/components/01-atoms/Spinner/index.d.ts +1 -0
- package/dist/components/01-atoms/Spinner/index.d.ts.map +1 -1
- package/dist/components/01-atoms/Stat/Stat.d.ts +47 -0
- package/dist/components/01-atoms/Stat/Stat.d.ts.map +1 -0
- package/dist/components/01-atoms/Stat/Stat.jsx +64 -0
- package/dist/components/01-atoms/Stat/Stat.jsx.map +1 -0
- package/dist/components/01-atoms/Stat/index.d.ts +2 -0
- package/dist/components/01-atoms/Stat/index.d.ts.map +1 -0
- package/dist/components/01-atoms/Stat/index.js +2 -0
- package/dist/components/01-atoms/Stat/index.js.map +1 -0
- package/dist/components/01-atoms/Switch/Switch.d.ts +5 -2
- package/dist/components/01-atoms/Switch/Switch.d.ts.map +1 -1
- package/dist/components/01-atoms/Switch/Switch.jsx +15 -12
- package/dist/components/01-atoms/Switch/Switch.jsx.map +1 -1
- package/dist/components/01-atoms/Textarea/Textarea.d.ts +38 -0
- package/dist/components/01-atoms/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/01-atoms/Textarea/Textarea.jsx +50 -0
- package/dist/components/01-atoms/Textarea/Textarea.jsx.map +1 -0
- package/dist/components/01-atoms/Textarea/index.d.ts +2 -0
- package/dist/components/01-atoms/Textarea/index.d.ts.map +1 -0
- package/dist/components/01-atoms/Textarea/index.js +2 -0
- package/dist/components/01-atoms/Textarea/index.js.map +1 -0
- package/dist/components/01-atoms/Toast/Toast.d.ts.map +1 -1
- package/dist/components/01-atoms/Toast/Toast.jsx +3 -1
- package/dist/components/01-atoms/Toast/Toast.jsx.map +1 -1
- package/dist/components/01-atoms/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/01-atoms/Tooltip/Tooltip.jsx +4 -1
- package/dist/components/01-atoms/Tooltip/Tooltip.jsx.map +1 -1
- package/dist/components/01-atoms/index.d.ts +4 -0
- package/dist/components/01-atoms/index.d.ts.map +1 -1
- package/dist/components/01-atoms/index.js +4 -0
- package/dist/components/01-atoms/index.js.map +1 -1
- package/dist/components/02-molecules/Accordion/Accordion.d.ts +15 -4
- package/dist/components/02-molecules/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/02-molecules/Accordion/Accordion.jsx +20 -6
- package/dist/components/02-molecules/Accordion/Accordion.jsx.map +1 -1
- package/dist/components/02-molecules/Accordion/AccordionContext.d.ts +5 -1
- package/dist/components/02-molecules/Accordion/AccordionContext.d.ts.map +1 -1
- package/dist/components/02-molecules/Accordion/AccordionContext.jsx +7 -6
- package/dist/components/02-molecules/Accordion/AccordionContext.jsx.map +1 -1
- package/dist/components/02-molecules/Accordion/AccordionSection.d.ts +2 -1
- package/dist/components/02-molecules/Accordion/AccordionSection.d.ts.map +1 -1
- package/dist/components/02-molecules/Accordion/AccordionSection.jsx +62 -11
- package/dist/components/02-molecules/Accordion/AccordionSection.jsx.map +1 -1
- package/dist/components/02-molecules/Accordion/index.d.ts +1 -0
- package/dist/components/02-molecules/Accordion/index.d.ts.map +1 -1
- package/dist/components/02-molecules/Accordion/index.js.map +1 -1
- package/dist/components/02-molecules/Autocomplete/Autocomplete.d.ts +4 -1
- package/dist/components/02-molecules/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/components/02-molecules/Autocomplete/Autocomplete.jsx +34 -15
- package/dist/components/02-molecules/Autocomplete/Autocomplete.jsx.map +1 -1
- package/dist/components/02-molecules/Card/Card.d.ts +74 -0
- package/dist/components/02-molecules/Card/Card.d.ts.map +1 -0
- package/dist/components/02-molecules/Card/Card.jsx +87 -0
- package/dist/components/02-molecules/Card/Card.jsx.map +1 -0
- package/dist/components/02-molecules/Card/index.d.ts +2 -0
- package/dist/components/02-molecules/Card/index.d.ts.map +1 -0
- package/dist/components/02-molecules/Card/index.js +2 -0
- package/dist/components/02-molecules/Card/index.js.map +1 -0
- package/dist/components/02-molecules/DatePicker/DatePicker.d.ts +41 -3
- package/dist/components/02-molecules/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/components/02-molecules/DatePicker/DatePicker.jsx +190 -34
- package/dist/components/02-molecules/DatePicker/DatePicker.jsx.map +1 -1
- package/dist/components/02-molecules/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/02-molecules/Dropdown/Dropdown.jsx +1 -0
- package/dist/components/02-molecules/Dropdown/Dropdown.jsx.map +1 -1
- package/dist/components/02-molecules/EmptyState/EmptyState.d.ts +52 -0
- package/dist/components/02-molecules/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/components/02-molecules/EmptyState/EmptyState.jsx +66 -0
- package/dist/components/02-molecules/EmptyState/EmptyState.jsx.map +1 -0
- package/dist/components/02-molecules/EmptyState/index.d.ts +2 -0
- package/dist/components/02-molecules/EmptyState/index.d.ts.map +1 -0
- package/dist/components/02-molecules/EmptyState/index.js +2 -0
- package/dist/components/02-molecules/EmptyState/index.js.map +1 -0
- package/dist/components/02-molecules/Filter/Filter.d.ts +8 -1
- package/dist/components/02-molecules/Filter/Filter.d.ts.map +1 -1
- package/dist/components/02-molecules/Filter/Filter.jsx +35 -11
- package/dist/components/02-molecules/Filter/Filter.jsx.map +1 -1
- package/dist/components/02-molecules/Filter/index.d.ts +1 -0
- package/dist/components/02-molecules/Filter/index.d.ts.map +1 -1
- package/dist/components/02-molecules/Filter/index.js +1 -0
- package/dist/components/02-molecules/Filter/index.js.map +1 -1
- package/dist/components/02-molecules/Filter/types.d.ts +24 -5
- package/dist/components/02-molecules/Filter/types.d.ts.map +1 -1
- package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.d.ts +34 -0
- package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.d.ts.map +1 -0
- package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.js +70 -0
- package/dist/components/02-molecules/Filter/utils/pruneOrphanValues.js.map +1 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts +55 -5
- package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts.map +1 -1
- package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx +118 -27
- package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx.map +1 -1
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts +40 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts.map +1 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx +109 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx.map +1 -0
- package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts +15 -1
- package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts.map +1 -1
- package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx +18 -3
- package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx.map +1 -1
- package/dist/components/02-molecules/Menu/MenuItem.d.ts.map +1 -1
- package/dist/components/02-molecules/Menu/MenuItem.jsx +2 -2
- package/dist/components/02-molecules/Menu/MenuItem.jsx.map +1 -1
- package/dist/components/02-molecules/Menu/MenuList.d.ts.map +1 -1
- package/dist/components/02-molecules/Menu/MenuList.jsx +1 -1
- package/dist/components/02-molecules/Menu/MenuList.jsx.map +1 -1
- package/dist/components/02-molecules/Modal/Modal.d.ts +5 -1
- package/dist/components/02-molecules/Modal/Modal.d.ts.map +1 -1
- package/dist/components/02-molecules/Modal/Modal.jsx +4 -2
- package/dist/components/02-molecules/Modal/Modal.jsx.map +1 -1
- package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.d.ts +80 -0
- package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.d.ts.map +1 -0
- package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.jsx +261 -0
- package/dist/components/02-molecules/MultiAutocomplete/MultiAutocomplete.jsx.map +1 -0
- package/dist/components/02-molecules/MultiAutocomplete/index.d.ts +2 -0
- package/dist/components/02-molecules/MultiAutocomplete/index.d.ts.map +1 -0
- package/dist/components/02-molecules/MultiAutocomplete/index.js +2 -0
- package/dist/components/02-molecules/MultiAutocomplete/index.js.map +1 -0
- package/dist/components/02-molecules/Stepper/Stepper.d.ts +70 -0
- package/dist/components/02-molecules/Stepper/Stepper.d.ts.map +1 -0
- package/dist/components/02-molecules/Stepper/Stepper.jsx +204 -0
- package/dist/components/02-molecules/Stepper/Stepper.jsx.map +1 -0
- package/dist/components/02-molecules/Stepper/index.d.ts +2 -0
- package/dist/components/02-molecules/Stepper/index.d.ts.map +1 -0
- package/dist/components/02-molecules/Stepper/index.js +2 -0
- package/dist/components/02-molecules/Stepper/index.js.map +1 -0
- package/dist/components/02-molecules/Table/Table.d.ts +3 -1
- package/dist/components/02-molecules/Table/Table.d.ts.map +1 -1
- package/dist/components/02-molecules/Table/Table.jsx +6 -5
- package/dist/components/02-molecules/Table/Table.jsx.map +1 -1
- package/dist/components/02-molecules/Timeline/Timeline.d.ts +47 -0
- package/dist/components/02-molecules/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/02-molecules/Timeline/Timeline.jsx +65 -0
- package/dist/components/02-molecules/Timeline/Timeline.jsx.map +1 -0
- package/dist/components/02-molecules/Timeline/index.d.ts +2 -0
- package/dist/components/02-molecules/Timeline/index.d.ts.map +1 -0
- package/dist/components/02-molecules/Timeline/index.js +2 -0
- package/dist/components/02-molecules/Timeline/index.js.map +1 -0
- package/dist/components/02-molecules/index.d.ts +5 -0
- package/dist/components/02-molecules/index.d.ts.map +1 -1
- package/dist/components/02-molecules/index.js +5 -0
- package/dist/components/02-molecules/index.js.map +1 -1
- package/dist/components/03-organisms/DataTable/DataTable.d.ts +1 -1
- package/dist/components/03-organisms/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/03-organisms/DataTable/DataTable.jsx +1 -1
- package/dist/components/03-organisms/DataTable/DataTable.jsx.map +1 -1
- package/dist/components/03-organisms/Header/Header.d.ts +3 -1
- package/dist/components/03-organisms/Header/Header.d.ts.map +1 -1
- package/dist/components/03-organisms/Header/Header.jsx +4 -5
- package/dist/components/03-organisms/Header/Header.jsx.map +1 -1
- package/dist/components/03-organisms/MapView/MapView.d.ts +14 -3
- package/dist/components/03-organisms/MapView/MapView.d.ts.map +1 -1
- package/dist/components/03-organisms/MapView/MapView.jsx +40 -9
- package/dist/components/03-organisms/MapView/MapView.jsx.map +1 -1
- package/dist/components/03-organisms/ModalMultiple/ModalMultiple.d.ts.map +1 -1
- package/dist/components/03-organisms/ModalMultiple/ModalMultiple.jsx +1 -0
- package/dist/components/03-organisms/ModalMultiple/ModalMultiple.jsx.map +1 -1
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts +36 -4
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts.map +1 -1
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx +44 -10
- package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx.map +1 -1
- package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts +6 -2
- package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts.map +1 -1
- package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx +7 -3
- package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts +66 -3
- package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginForm.jsx +80 -16
- package/dist/components/04-templates/LoginTemplate/LoginForm.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts +24 -4
- package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx +27 -7
- package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/index.d.ts +1 -0
- package/dist/components/04-templates/LoginTemplate/index.d.ts.map +1 -1
- package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.d.ts.map +1 -1
- package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.jsx +4 -1
- package/dist/components/04-templates/SideFilterTemplate/SideFilterTemplate.jsx.map +1 -1
- package/dist/hooks/useSegments.d.ts.map +1 -1
- package/dist/hooks/useSegments.js +2 -3
- package/dist/hooks/useSegments.js.map +1 -1
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useTheme.jsx +1 -0
- package/dist/hooks/useTheme.jsx.map +1 -1
- package/expresivo/ExpBubble/ExpBubble.d.ts +51 -0
- package/expresivo/ExpBubble/ExpBubble.d.ts.map +1 -0
- package/expresivo/ExpBubble/ExpBubble.jsx +74 -0
- package/expresivo/ExpBubble/ExpBubble.jsx.map +1 -0
- package/expresivo/ExpBubble/index.d.ts +3 -0
- package/expresivo/ExpBubble/index.d.ts.map +1 -0
- package/expresivo/ExpBubble/index.js +2 -0
- package/expresivo/ExpBubble/index.js.map +1 -0
- package/expresivo/ExpChip/ExpChip.d.ts +40 -0
- package/expresivo/ExpChip/ExpChip.d.ts.map +1 -0
- package/expresivo/ExpChip/ExpChip.jsx +67 -0
- package/expresivo/ExpChip/ExpChip.jsx.map +1 -0
- package/expresivo/ExpChip/index.d.ts +3 -0
- package/expresivo/ExpChip/index.d.ts.map +1 -0
- package/expresivo/ExpChip/index.js +2 -0
- package/expresivo/ExpChip/index.js.map +1 -0
- package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts +37 -0
- package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts.map +1 -0
- package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx +43 -0
- package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx.map +1 -0
- package/expresivo/ExpCollapseToggle/index.d.ts +3 -0
- package/expresivo/ExpCollapseToggle/index.d.ts.map +1 -0
- package/expresivo/ExpCollapseToggle/index.js +2 -0
- package/expresivo/ExpCollapseToggle/index.js.map +1 -0
- package/expresivo/ExpEnterIcon/ExpEnterIcon.d.ts +32 -0
- package/expresivo/ExpEnterIcon/ExpEnterIcon.d.ts.map +1 -0
- package/expresivo/ExpEnterIcon/ExpEnterIcon.jsx +32 -0
- package/expresivo/ExpEnterIcon/ExpEnterIcon.jsx.map +1 -0
- package/expresivo/ExpEnterIcon/index.d.ts +3 -0
- package/expresivo/ExpEnterIcon/index.d.ts.map +1 -0
- package/expresivo/ExpEnterIcon/index.js +2 -0
- package/expresivo/ExpEnterIcon/index.js.map +1 -0
- package/expresivo/ExpGrowBar/ExpGrowBar.d.ts +26 -0
- package/expresivo/ExpGrowBar/ExpGrowBar.d.ts.map +1 -0
- package/expresivo/ExpGrowBar/ExpGrowBar.jsx +39 -0
- package/expresivo/ExpGrowBar/ExpGrowBar.jsx.map +1 -0
- package/expresivo/ExpGrowBar/index.d.ts +3 -0
- package/expresivo/ExpGrowBar/index.d.ts.map +1 -0
- package/expresivo/ExpGrowBar/index.js +2 -0
- package/expresivo/ExpGrowBar/index.js.map +1 -0
- package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts +69 -0
- package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts.map +1 -0
- package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx +160 -0
- package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx.map +1 -0
- package/expresivo/ExpJourneyTrack/index.d.ts +3 -0
- package/expresivo/ExpJourneyTrack/index.d.ts.map +1 -0
- package/expresivo/ExpJourneyTrack/index.js +2 -0
- package/expresivo/ExpJourneyTrack/index.js.map +1 -0
- package/expresivo/ExpKeyButton/ExpKeyButton.d.ts +49 -0
- package/expresivo/ExpKeyButton/ExpKeyButton.d.ts.map +1 -0
- package/expresivo/ExpKeyButton/ExpKeyButton.jsx +60 -0
- package/expresivo/ExpKeyButton/ExpKeyButton.jsx.map +1 -0
- package/expresivo/ExpKeyButton/index.d.ts +3 -0
- package/expresivo/ExpKeyButton/index.d.ts.map +1 -0
- package/expresivo/ExpKeyButton/index.js +2 -0
- package/expresivo/ExpKeyButton/index.js.map +1 -0
- package/expresivo/ExpLadder/ExpLadder.d.ts +42 -0
- package/expresivo/ExpLadder/ExpLadder.d.ts.map +1 -0
- package/expresivo/ExpLadder/ExpLadder.jsx +82 -0
- package/expresivo/ExpLadder/ExpLadder.jsx.map +1 -0
- package/expresivo/ExpLadder/index.d.ts +3 -0
- package/expresivo/ExpLadder/index.d.ts.map +1 -0
- package/expresivo/ExpLadder/index.js +2 -0
- package/expresivo/ExpLadder/index.js.map +1 -0
- package/expresivo/ExpLensIcon/ExpLensIcon.d.ts +29 -0
- package/expresivo/ExpLensIcon/ExpLensIcon.d.ts.map +1 -0
- package/expresivo/ExpLensIcon/ExpLensIcon.jsx +29 -0
- package/expresivo/ExpLensIcon/ExpLensIcon.jsx.map +1 -0
- package/expresivo/ExpLensIcon/index.d.ts +3 -0
- package/expresivo/ExpLensIcon/index.d.ts.map +1 -0
- package/expresivo/ExpLensIcon/index.js +2 -0
- package/expresivo/ExpLensIcon/index.js.map +1 -0
- package/expresivo/ExpLogo/ExpLogo.d.ts +33 -0
- package/expresivo/ExpLogo/ExpLogo.d.ts.map +1 -0
- package/expresivo/ExpLogo/ExpLogo.jsx +42 -0
- package/expresivo/ExpLogo/ExpLogo.jsx.map +1 -0
- package/expresivo/ExpLogo/catalog.d.ts +17 -0
- package/expresivo/ExpLogo/catalog.d.ts.map +1 -0
- package/expresivo/ExpLogo/catalog.js +11 -0
- package/expresivo/ExpLogo/catalog.js.map +1 -0
- package/expresivo/ExpLogo/index.d.ts +4 -0
- package/expresivo/ExpLogo/index.d.ts.map +1 -0
- package/expresivo/ExpLogo/index.js +2 -0
- package/expresivo/ExpLogo/index.js.map +1 -0
- package/expresivo/ExpMascot/ExpMascot.d.ts +42 -0
- package/expresivo/ExpMascot/ExpMascot.d.ts.map +1 -0
- package/expresivo/ExpMascot/ExpMascot.jsx +46 -0
- package/expresivo/ExpMascot/ExpMascot.jsx.map +1 -0
- package/expresivo/ExpMascot/catalog.d.ts +12 -0
- package/expresivo/ExpMascot/catalog.d.ts.map +1 -0
- package/expresivo/ExpMascot/catalog.js +41 -0
- package/expresivo/ExpMascot/catalog.js.map +1 -0
- package/expresivo/ExpMascot/index.d.ts +4 -0
- package/expresivo/ExpMascot/index.d.ts.map +1 -0
- package/expresivo/ExpMascot/index.js +2 -0
- package/expresivo/ExpMascot/index.js.map +1 -0
- package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts +29 -0
- package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts.map +1 -0
- package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx +87 -0
- package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx.map +1 -0
- package/expresivo/ExpMedalBadge/index.d.ts +3 -0
- package/expresivo/ExpMedalBadge/index.d.ts.map +1 -0
- package/expresivo/ExpMedalBadge/index.js +2 -0
- package/expresivo/ExpMedalBadge/index.js.map +1 -0
- package/expresivo/ExpPageHero/ExpPageHero.d.ts +82 -0
- package/expresivo/ExpPageHero/ExpPageHero.d.ts.map +1 -0
- package/expresivo/ExpPageHero/ExpPageHero.jsx +113 -0
- package/expresivo/ExpPageHero/ExpPageHero.jsx.map +1 -0
- package/expresivo/ExpPageHero/index.d.ts +3 -0
- package/expresivo/ExpPageHero/index.d.ts.map +1 -0
- package/expresivo/ExpPageHero/index.js +2 -0
- package/expresivo/ExpPageHero/index.js.map +1 -0
- package/expresivo/ExpPeek/ExpPeek.d.ts +56 -0
- package/expresivo/ExpPeek/ExpPeek.d.ts.map +1 -0
- package/expresivo/ExpPeek/ExpPeek.jsx +131 -0
- package/expresivo/ExpPeek/ExpPeek.jsx.map +1 -0
- package/expresivo/ExpPeek/index.d.ts +3 -0
- package/expresivo/ExpPeek/index.d.ts.map +1 -0
- package/expresivo/ExpPeek/index.js +2 -0
- package/expresivo/ExpPeek/index.js.map +1 -0
- package/expresivo/ExpPillButton/ExpPillButton.d.ts +47 -0
- package/expresivo/ExpPillButton/ExpPillButton.d.ts.map +1 -0
- package/expresivo/ExpPillButton/ExpPillButton.jsx +77 -0
- package/expresivo/ExpPillButton/ExpPillButton.jsx.map +1 -0
- package/expresivo/ExpPillButton/index.d.ts +3 -0
- package/expresivo/ExpPillButton/index.d.ts.map +1 -0
- package/expresivo/ExpPillButton/index.js +2 -0
- package/expresivo/ExpPillButton/index.js.map +1 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts +28 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts.map +1 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx +32 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx.map +1 -0
- package/expresivo/ExpRepoAvatar/catalog.d.ts +6 -0
- package/expresivo/ExpRepoAvatar/catalog.d.ts.map +1 -0
- package/expresivo/ExpRepoAvatar/catalog.js +18 -0
- package/expresivo/ExpRepoAvatar/catalog.js.map +1 -0
- package/expresivo/ExpRepoAvatar/index.d.ts +4 -0
- package/expresivo/ExpRepoAvatar/index.d.ts.map +1 -0
- package/expresivo/ExpRepoAvatar/index.js +2 -0
- package/expresivo/ExpRepoAvatar/index.js.map +1 -0
- package/expresivo/ExpScope/ExpScope.d.ts +63 -0
- package/expresivo/ExpScope/ExpScope.d.ts.map +1 -0
- package/expresivo/ExpScope/ExpScope.jsx +67 -0
- package/expresivo/ExpScope/ExpScope.jsx.map +1 -0
- package/expresivo/ExpScope/index.d.ts +3 -0
- package/expresivo/ExpScope/index.d.ts.map +1 -0
- package/expresivo/ExpScope/index.js +2 -0
- package/expresivo/ExpScope/index.js.map +1 -0
- package/expresivo/ExpScoreRing/ExpScoreRing.d.ts +35 -0
- package/expresivo/ExpScoreRing/ExpScoreRing.d.ts.map +1 -0
- package/expresivo/ExpScoreRing/ExpScoreRing.jsx +67 -0
- package/expresivo/ExpScoreRing/ExpScoreRing.jsx.map +1 -0
- package/expresivo/ExpScoreRing/index.d.ts +3 -0
- package/expresivo/ExpScoreRing/index.d.ts.map +1 -0
- package/expresivo/ExpScoreRing/index.js +2 -0
- package/expresivo/ExpScoreRing/index.js.map +1 -0
- package/expresivo/ExpSearchField/ExpSearchField.d.ts +49 -0
- package/expresivo/ExpSearchField/ExpSearchField.d.ts.map +1 -0
- package/expresivo/ExpSearchField/ExpSearchField.jsx +81 -0
- package/expresivo/ExpSearchField/ExpSearchField.jsx.map +1 -0
- package/expresivo/ExpSearchField/index.d.ts +3 -0
- package/expresivo/ExpSearchField/index.d.ts.map +1 -0
- package/expresivo/ExpSearchField/index.js +2 -0
- package/expresivo/ExpSearchField/index.js.map +1 -0
- package/expresivo/ExpStatIcon/ExpStatIcon.d.ts +25 -0
- package/expresivo/ExpStatIcon/ExpStatIcon.d.ts.map +1 -0
- package/expresivo/ExpStatIcon/ExpStatIcon.jsx +29 -0
- package/expresivo/ExpStatIcon/ExpStatIcon.jsx.map +1 -0
- package/expresivo/ExpStatIcon/catalog.d.ts +6 -0
- package/expresivo/ExpStatIcon/catalog.d.ts.map +1 -0
- package/expresivo/ExpStatIcon/catalog.js +16 -0
- package/expresivo/ExpStatIcon/catalog.js.map +1 -0
- package/expresivo/ExpStatIcon/index.d.ts +4 -0
- package/expresivo/ExpStatIcon/index.d.ts.map +1 -0
- package/expresivo/ExpStatIcon/index.js +2 -0
- package/expresivo/ExpStatIcon/index.js.map +1 -0
- package/expresivo/ExpStepBadge/ExpStepBadge.d.ts +25 -0
- package/expresivo/ExpStepBadge/ExpStepBadge.d.ts.map +1 -0
- package/expresivo/ExpStepBadge/ExpStepBadge.jsx +30 -0
- package/expresivo/ExpStepBadge/ExpStepBadge.jsx.map +1 -0
- package/expresivo/ExpStepBadge/index.d.ts +2 -0
- package/expresivo/ExpStepBadge/index.d.ts.map +1 -0
- package/expresivo/ExpStepBadge/index.js +2 -0
- package/expresivo/ExpStepBadge/index.js.map +1 -0
- package/expresivo/index.d.ts +22 -0
- package/expresivo/index.d.ts.map +1 -0
- package/expresivo/index.js +22 -0
- package/expresivo/index.js.map +1 -0
- package/expresivo/shared/glyphs.d.ts +20 -0
- package/expresivo/shared/glyphs.d.ts.map +1 -0
- package/expresivo/shared/glyphs.jsx +60 -0
- package/expresivo/shared/glyphs.jsx.map +1 -0
- 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
|
|
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
|
-
* {
|
|
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.
|
|
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 [
|
|
54
|
-
const [
|
|
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
|
-
|
|
66
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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={() =>
|
|
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={() =>
|
|
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={() =>
|
|
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={
|
|
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
|
-
|
|
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={
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"ImageViewer.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/ImageViewer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"
|
|
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;
|
|
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,
|
|
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,
|
|
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}`;
|