@proef/common-ui 0.0.0-stage → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/assets/imagem-6ee08a37d9.png +0 -0
- package/dist/esm/assets/imagem-6fcae1b87b.png +0 -0
- package/dist/esm/index.js +324 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/legacy/assets/svgs/proef-footer-logo.svg.js +5 -0
- package/dist/esm/legacy/assets/svgs/proef-footer-logo.svg.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Acronym/Acronym.css +43 -0
- package/dist/esm/legacy/components/atoms/Acronym/Acronym.js +31 -0
- package/dist/esm/legacy/components/atoms/Acronym/Acronym.js.map +1 -0
- package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.css +36 -0
- package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.js +57 -0
- package/dist/esm/legacy/components/atoms/BreadCrumb/BreadCrumb.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.css +218 -0
- package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.js +50 -0
- package/dist/esm/legacy/components/atoms/Button/variants/ActionButton.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.css +56 -0
- package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.js +34 -0
- package/dist/esm/legacy/components/atoms/Button/variants/FilterButton.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Button/variants/IconButton.css +74 -0
- package/dist/esm/legacy/components/atoms/Button/variants/IconButton.js +29 -0
- package/dist/esm/legacy/components/atoms/Button/variants/IconButton.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Button/variants/MainButton.css +99 -0
- package/dist/esm/legacy/components/atoms/Button/variants/MainButton.js +36 -0
- package/dist/esm/legacy/components/atoms/Button/variants/MainButton.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Button/variants/TabButton.css +63 -0
- package/dist/esm/legacy/components/atoms/Button/variants/TabButton.js +21 -0
- package/dist/esm/legacy/components/atoms/Button/variants/TabButton.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Field/Field.css +171 -0
- package/dist/esm/legacy/components/atoms/Field/Field.js +70 -0
- package/dist/esm/legacy/components/atoms/Field/Field.js.map +1 -0
- package/dist/esm/legacy/components/atoms/IconText/IconText.css +10 -0
- package/dist/esm/legacy/components/atoms/IconText/IconText.js +25 -0
- package/dist/esm/legacy/components/atoms/IconText/IconText.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Icone/Icone.js +24 -0
- package/dist/esm/legacy/components/atoms/Icone/Icone.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Input/Input.css +12 -0
- package/dist/esm/legacy/components/atoms/Input/Input.js +28 -0
- package/dist/esm/legacy/components/atoms/Input/Input.js.map +1 -0
- package/dist/esm/legacy/components/atoms/InputData/InputData.js +25 -0
- package/dist/esm/legacy/components/atoms/InputData/InputData.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Label/Label.css +192 -0
- package/dist/esm/legacy/components/atoms/Label/Label.js +13 -0
- package/dist/esm/legacy/components/atoms/Label/Label.js.map +1 -0
- package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.css +40 -0
- package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.js +21 -0
- package/dist/esm/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Select/Select.css +16 -0
- package/dist/esm/legacy/components/atoms/Select/Select.js +27 -0
- package/dist/esm/legacy/components/atoms/Select/Select.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Stack/Stack.js +20 -0
- package/dist/esm/legacy/components/atoms/Stack/Stack.js.map +1 -0
- package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.css +36 -0
- package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.js +29 -0
- package/dist/esm/legacy/components/atoms/Switch/CustomSwitch.js.map +1 -0
- package/dist/esm/legacy/components/charts/Charts.js +349 -0
- package/dist/esm/legacy/components/charts/Charts.js.map +1 -0
- package/dist/esm/legacy/components/layout/AppLauncher/AppLauncher.js +100 -0
- package/dist/esm/legacy/components/layout/AppLauncher/AppLauncher.js.map +1 -0
- package/dist/esm/legacy/components/layout/Error/Error.css +20 -0
- package/dist/esm/legacy/components/layout/Error/Error.js +12 -0
- package/dist/esm/legacy/components/layout/Error/Error.js.map +1 -0
- package/dist/esm/legacy/components/layout/Footer/Footer.css +42 -0
- package/dist/esm/legacy/components/layout/Footer/Footer.js +23 -0
- package/dist/esm/legacy/components/layout/Footer/Footer.js.map +1 -0
- package/dist/esm/legacy/components/layout/Header/Header.css +66 -0
- package/dist/esm/legacy/components/layout/Header/Header.js +37 -0
- package/dist/esm/legacy/components/layout/Header/Header.js.map +1 -0
- package/dist/esm/legacy/components/layout/Layout/Layout.js +31 -0
- package/dist/esm/legacy/components/layout/Layout/Layout.js.map +1 -0
- package/dist/esm/legacy/components/layout/Sidebar/Sidebar.js +38 -0
- package/dist/esm/legacy/components/layout/Sidebar/Sidebar.js.map +1 -0
- package/dist/esm/legacy/components/layout/Spinner/Spinner.css +10 -0
- package/dist/esm/legacy/components/layout/Spinner/Spinner.js +19 -0
- package/dist/esm/legacy/components/layout/Spinner/Spinner.js.map +1 -0
- package/dist/esm/legacy/components/layout/TopBar/TopBar.js +34 -0
- package/dist/esm/legacy/components/layout/TopBar/TopBar.js.map +1 -0
- package/dist/esm/legacy/components/layout/TopNavLayout/TopNavLayout.js +82 -0
- package/dist/esm/legacy/components/layout/TopNavLayout/TopNavLayout.js.map +1 -0
- package/dist/esm/legacy/components/molecules/BarraValor/BarraValor.js +25 -0
- package/dist/esm/legacy/components/molecules/BarraValor/BarraValor.js.map +1 -0
- package/dist/esm/legacy/components/molecules/ColumnPicker/ColumnPicker.js +246 -0
- package/dist/esm/legacy/components/molecules/ColumnPicker/ColumnPicker.js.map +1 -0
- package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.css +3 -0
- package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.js +33 -0
- package/dist/esm/legacy/components/molecules/ConfirmModal/ConfirmModal.js.map +1 -0
- package/dist/esm/legacy/components/molecules/DataTable/DataTable.js +1259 -0
- package/dist/esm/legacy/components/molecules/DataTable/DataTable.js.map +1 -0
- package/dist/esm/legacy/components/molecules/FileDropzone/FileDropzone.js +68 -0
- package/dist/esm/legacy/components/molecules/FileDropzone/FileDropzone.js.map +1 -0
- package/dist/esm/legacy/components/molecules/LanguageSwitcher/LanguageSwitcher.js +96 -0
- package/dist/esm/legacy/components/molecules/LanguageSwitcher/LanguageSwitcher.js.map +1 -0
- package/dist/esm/legacy/components/molecules/Modal/Modal.css +54 -0
- package/dist/esm/legacy/components/molecules/Modal/Modal.js +64 -0
- package/dist/esm/legacy/components/molecules/Modal/Modal.js.map +1 -0
- package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.css +97 -0
- package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.js +113 -0
- package/dist/esm/legacy/components/molecules/MultiTagPicker/MultiTagPicker.js.map +1 -0
- package/dist/esm/legacy/components/molecules/PhotoAvatar/PhotoAvatar.js +114 -0
- package/dist/esm/legacy/components/molecules/PhotoAvatar/PhotoAvatar.js.map +1 -0
- package/dist/esm/legacy/components/molecules/SeletorPesquisa/SeletorPesquisa.js +116 -0
- package/dist/esm/legacy/components/molecules/SeletorPesquisa/SeletorPesquisa.js.map +1 -0
- package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.css +69 -0
- package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.js +62 -0
- package/dist/esm/legacy/components/molecules/Sidebar/Sidebar.js.map +1 -0
- package/dist/esm/legacy/components/molecules/UserAvatar/UserAvatar.js +23 -0
- package/dist/esm/legacy/components/molecules/UserAvatar/UserAvatar.js.map +1 -0
- package/dist/esm/legacy/components/organisms/GanttChart/GanttChart.js +162 -0
- package/dist/esm/legacy/components/organisms/GanttChart/GanttChart.js.map +1 -0
- package/dist/esm/legacy/components/organisms/Kanban/Kanban.js +88 -0
- package/dist/esm/legacy/components/organisms/Kanban/Kanban.js.map +1 -0
- package/dist/esm/legacy/components/organisms/LazyLoader/LazyLoader.js +87 -0
- package/dist/esm/legacy/components/organisms/LazyLoader/LazyLoader.js.map +1 -0
- package/dist/esm/legacy/components/organisms/MapaPontos/MapaPontos.js +427 -0
- package/dist/esm/legacy/components/organisms/MapaPontos/MapaPontos.js.map +1 -0
- package/dist/esm/legacy/components/organisms/PainelFiltros/PainelFiltros.js +218 -0
- package/dist/esm/legacy/components/organisms/PainelFiltros/PainelFiltros.js.map +1 -0
- package/dist/esm/legacy/components/organisms/PesquisaRapida/PesquisaRapida.js +147 -0
- package/dist/esm/legacy/components/organisms/PesquisaRapida/PesquisaRapida.js.map +1 -0
- package/dist/esm/legacy/components/organisms/Profile/Profile.css +26 -0
- package/dist/esm/legacy/components/organisms/Profile/Profile.js +26 -0
- package/dist/esm/legacy/components/organisms/Profile/Profile.js.map +1 -0
- package/dist/esm/legacy/components/organisms/RoleGuard/RoleGuard.js +79 -0
- package/dist/esm/legacy/components/organisms/RoleGuard/RoleGuard.js.map +1 -0
- package/dist/esm/legacy/components/organisms/Selector/Selector.css +87 -0
- package/dist/esm/legacy/components/organisms/Selector/Selector.js +181 -0
- package/dist/esm/legacy/components/organisms/Selector/Selector.js.map +1 -0
- package/dist/esm/legacy/components/organisms/StatusMatrix/StatusMatrix.js +115 -0
- package/dist/esm/legacy/components/organisms/StatusMatrix/StatusMatrix.js.map +1 -0
- package/dist/esm/legacy/components/ui/Avisos.js +33 -0
- package/dist/esm/legacy/components/ui/Avisos.js.map +1 -0
- package/dist/esm/legacy/components/ui/BarraAcoes.js +19 -0
- package/dist/esm/legacy/components/ui/BarraAcoes.js.map +1 -0
- package/dist/esm/legacy/components/ui/CabecalhoPagina.js +19 -0
- package/dist/esm/legacy/components/ui/CabecalhoPagina.js.map +1 -0
- package/dist/esm/legacy/components/ui/CaixaPesquisa.js +9 -0
- package/dist/esm/legacy/components/ui/CaixaPesquisa.js.map +1 -0
- package/dist/esm/legacy/components/ui/Confirmacao.js +34 -0
- package/dist/esm/legacy/components/ui/Confirmacao.js.map +1 -0
- package/dist/esm/legacy/components/ui/Escolha.js +41 -0
- package/dist/esm/legacy/components/ui/Escolha.js.map +1 -0
- package/dist/esm/legacy/components/ui/FaixaAviso.js +19 -0
- package/dist/esm/legacy/components/ui/FaixaAviso.js.map +1 -0
- package/dist/esm/legacy/components/ui/MenuAcoes.js +116 -0
- package/dist/esm/legacy/components/ui/MenuAcoes.js.map +1 -0
- package/dist/esm/legacy/components/ui/Passos.js +32 -0
- package/dist/esm/legacy/components/ui/Passos.js.map +1 -0
- package/dist/esm/legacy/components/ui/Separadores.js +17 -0
- package/dist/esm/legacy/components/ui/Separadores.js.map +1 -0
- package/dist/esm/legacy/components/ui/TextoAuto.js +33 -0
- package/dist/esm/legacy/components/ui/TextoAuto.js.map +1 -0
- package/dist/esm/legacy/components/ui/Ui.js +263 -0
- package/dist/esm/legacy/components/ui/Ui.js.map +1 -0
- package/dist/esm/legacy/components/ui/painelFlutuante.js +13 -0
- package/dist/esm/legacy/components/ui/painelFlutuante.js.map +1 -0
- package/dist/esm/legacy/constants/Colors.js +33 -0
- package/dist/esm/legacy/constants/Colors.js.map +1 -0
- package/dist/esm/legacy/constants/FontWeight.js +35 -0
- package/dist/esm/legacy/constants/FontWeight.js.map +1 -0
- package/dist/esm/legacy/contexts/apiContext.js +25 -0
- package/dist/esm/legacy/contexts/apiContext.js.map +1 -0
- package/dist/esm/legacy/contexts/authContext.js +85 -0
- package/dist/esm/legacy/contexts/authContext.js.map +1 -0
- package/dist/esm/legacy/contexts/socketContext.js +34 -0
- package/dist/esm/legacy/contexts/socketContext.js.map +1 -0
- package/dist/esm/legacy/hooks/useApi.js +62 -0
- package/dist/esm/legacy/hooks/useApi.js.map +1 -0
- package/dist/esm/legacy/pages/Error/ErrorPage.css +18 -0
- package/dist/esm/legacy/pages/Error/ErrorPage.js +50 -0
- package/dist/esm/legacy/pages/Error/ErrorPage.js.map +1 -0
- package/dist/esm/legacy/pages/Loading/Loading.css +46 -0
- package/dist/esm/legacy/pages/Loading/Loading.js +9 -0
- package/dist/esm/legacy/pages/Loading/Loading.js.map +1 -0
- package/dist/esm/legacy/pages/Login/LoginScreen.js +46 -0
- package/dist/esm/legacy/pages/Login/LoginScreen.js.map +1 -0
- package/dist/esm/legacy/pages/NotFound/NotFound.css +21 -0
- package/dist/esm/legacy/pages/NotFound/NotFound.js +24 -0
- package/dist/esm/legacy/pages/NotFound/NotFound.js.map +1 -0
- package/dist/esm/legacy/styles/themes/ButtonThemes.js +28 -0
- package/dist/esm/legacy/styles/themes/ButtonThemes.js.map +1 -0
- package/dist/esm/legacy/styles/utils/utils.js +7 -0
- package/dist/esm/legacy/styles/utils/utils.js.map +1 -0
- package/dist/esm/legacy/utils/stringUtils.js +35 -0
- package/dist/esm/legacy/utils/stringUtils.js.map +1 -0
- package/dist/esm/v1/capabilities/documents/QRScanning/scanQRCodes.js +157 -0
- package/dist/esm/v1/capabilities/documents/QRScanning/scanQRCodes.js.map +1 -0
- package/dist/esm/v1/capabilities/overlay/useFloatingPanel.js +52 -0
- package/dist/esm/v1/capabilities/overlay/useFloatingPanel.js.map +1 -0
- package/dist/esm/v1/capabilities/theme/useIsDark.js +15 -0
- package/dist/esm/v1/capabilities/theme/useIsDark.js.map +1 -0
- package/dist/esm/v1/capabilities/theme/useTheme.js +66 -0
- package/dist/esm/v1/capabilities/theme/useTheme.js.map +1 -0
- package/dist/esm/v1/components/data/Pagination/Pagination.js +66 -0
- package/dist/esm/v1/components/data/Pagination/Pagination.js.map +1 -0
- package/dist/esm/v1/components/documents/DocumentDropzone/DocumentDropzone.js +307 -0
- package/dist/esm/v1/components/documents/DocumentDropzone/DocumentDropzone.js.map +1 -0
- package/dist/esm/v1/components/feedback/Toast/Toast.js +105 -0
- package/dist/esm/v1/components/feedback/Toast/Toast.js.map +1 -0
- package/dist/esm/v1/components/forms/FormField/FormField.js +59 -0
- package/dist/esm/v1/components/forms/FormField/FormField.js.map +1 -0
- package/dist/esm/v1/components/forms/FormGrid/FormGrid.js +20 -0
- package/dist/esm/v1/components/forms/FormGrid/FormGrid.js.map +1 -0
- package/dist/esm/v1/components/layout/AppShell/AppShell.js +89 -0
- package/dist/esm/v1/components/layout/AppShell/AppShell.js.map +1 -0
- package/dist/esm/v1/components/layout/Page/Page.js +16 -0
- package/dist/esm/v1/components/layout/Page/Page.js.map +1 -0
- package/dist/esm/v1/components/layout/PageHeader/PageHeader.js +26 -0
- package/dist/esm/v1/components/layout/PageHeader/PageHeader.js.map +1 -0
- package/dist/esm/v1/components/layout/SideNav/SideNav.js +287 -0
- package/dist/esm/v1/components/layout/SideNav/SideNav.js.map +1 -0
- package/dist/esm/v1/components/layout/navTrail.js +19 -0
- package/dist/esm/v1/components/layout/navTrail.js.map +1 -0
- package/dist/esm/v1/components/lists/ListFinder/ListFinder.js +271 -0
- package/dist/esm/v1/components/lists/ListFinder/ListFinder.js.map +1 -0
- package/dist/esm/v1/components/lists/ListFinder/labels.js +18 -0
- package/dist/esm/v1/components/lists/ListFinder/labels.js.map +1 -0
- package/dist/esm/v1/components/overlays/ConfirmDialog/ConfirmDialog.js +95 -0
- package/dist/esm/v1/components/overlays/ConfirmDialog/ConfirmDialog.js.map +1 -0
- package/dist/esm/v1/components/overlays/Dialog/Dialog.js +141 -0
- package/dist/esm/v1/components/overlays/Dialog/Dialog.js.map +1 -0
- package/dist/esm/v1/components/overlays/Tooltip/Tooltip.js +98 -0
- package/dist/esm/v1/components/overlays/Tooltip/Tooltip.js.map +1 -0
- package/dist/esm/v1/components/overlays/Tooltip/TooltipLayer.js +84 -0
- package/dist/esm/v1/components/overlays/Tooltip/TooltipLayer.js.map +1 -0
- package/dist/esm/v1/components/overlays/Tooltip/TooltipPanel.js +33 -0
- package/dist/esm/v1/components/overlays/Tooltip/TooltipPanel.js.map +1 -0
- package/dist/esm/v1/components/overlays/topLayer.js +28 -0
- package/dist/esm/v1/components/overlays/topLayer.js.map +1 -0
- package/dist/esm/v1/components/tables/PaginatedTable/PaginatedTable.js +50 -0
- package/dist/esm/v1/components/tables/PaginatedTable/PaginatedTable.js.map +1 -0
- package/dist/esm/v1/components/tables/Table/ColumnFilter.js +292 -0
- package/dist/esm/v1/components/tables/Table/ColumnFilter.js.map +1 -0
- package/dist/esm/v1/components/tables/Table/OverlayScrollbar.js +129 -0
- package/dist/esm/v1/components/tables/Table/OverlayScrollbar.js.map +1 -0
- package/dist/esm/v1/components/tables/Table/Table.js +1410 -0
- package/dist/esm/v1/components/tables/Table/Table.js.map +1 -0
- package/dist/esm/v1/components/tables/Table/labels.js +44 -0
- package/dist/esm/v1/components/tables/Table/labels.js.map +1 -0
- package/dist/esm/v1/foundations/icons/icons.js +227 -0
- package/dist/esm/v1/foundations/icons/icons.js.map +1 -0
- package/dist/esm/v1/primitives/buttons/Button/Button.js +41 -0
- package/dist/esm/v1/primitives/buttons/Button/Button.js.map +1 -0
- package/dist/esm/v1/primitives/buttons/SegmentedControl/SegmentedControl.js +65 -0
- package/dist/esm/v1/primitives/buttons/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/esm/v1/primitives/buttons/SegmentedControl/segmentedStyles.js +10 -0
- package/dist/esm/v1/primitives/buttons/SegmentedControl/segmentedStyles.js.map +1 -0
- package/dist/esm/v1/primitives/display/Avatar/Avatar.js +120 -0
- package/dist/esm/v1/primitives/display/Avatar/Avatar.js.map +1 -0
- package/dist/esm/v1/primitives/display/Badge/Badge.js +23 -0
- package/dist/esm/v1/primitives/display/Badge/Badge.js.map +1 -0
- package/dist/esm/v1/primitives/display/Card/Card.js +22 -0
- package/dist/esm/v1/primitives/display/Card/Card.js.map +1 -0
- package/dist/esm/v1/primitives/display/FilterChips/FilterChips.js +45 -0
- package/dist/esm/v1/primitives/display/FilterChips/FilterChips.js.map +1 -0
- package/dist/esm/v1/primitives/display/Kpi/Kpi.js +103 -0
- package/dist/esm/v1/primitives/display/Kpi/Kpi.js.map +1 -0
- package/dist/esm/v1/primitives/display/Notice/Notice.js +71 -0
- package/dist/esm/v1/primitives/display/Notice/Notice.js.map +1 -0
- package/dist/esm/v1/primitives/display/Person/Person.js +14 -0
- package/dist/esm/v1/primitives/display/Person/Person.js.map +1 -0
- package/dist/esm/v1/primitives/display/RichText/RichText.js +12 -0
- package/dist/esm/v1/primitives/display/RichText/RichText.js.map +1 -0
- package/dist/esm/v1/primitives/display/RichText/utils.js +56 -0
- package/dist/esm/v1/primitives/display/RichText/utils.js.map +1 -0
- package/dist/esm/v1/primitives/documents/PdfPreview/PdfPreview.js +137 -0
- package/dist/esm/v1/primitives/documents/PdfPreview/PdfPreview.js.map +1 -0
- package/dist/esm/v1/primitives/documents/PdfPreview/pdfjs.js +26 -0
- package/dist/esm/v1/primitives/documents/PdfPreview/pdfjs.js.map +1 -0
- package/dist/esm/v1/primitives/forms/Checkbox/Checkbox.js +37 -0
- package/dist/esm/v1/primitives/forms/Checkbox/Checkbox.js.map +1 -0
- package/dist/esm/v1/primitives/forms/DateInput/DateInput.js +150 -0
- package/dist/esm/v1/primitives/forms/DateInput/DateInput.js.map +1 -0
- package/dist/esm/v1/primitives/forms/LookupInput/LookupInput.js +37 -0
- package/dist/esm/v1/primitives/forms/LookupInput/LookupInput.js.map +1 -0
- package/dist/esm/v1/primitives/forms/RichTextEditor/RichTextEditor.js +253 -0
- package/dist/esm/v1/primitives/forms/RichTextEditor/RichTextEditor.js.map +1 -0
- package/dist/esm/v1/primitives/forms/SearchInput/SearchInput.js +43 -0
- package/dist/esm/v1/primitives/forms/SearchInput/SearchInput.js.map +1 -0
- package/dist/esm/v1/primitives/forms/SelectInput/SelectInput.js +207 -0
- package/dist/esm/v1/primitives/forms/SelectInput/SelectInput.js.map +1 -0
- package/dist/esm/v1/primitives/forms/TextArea/TextArea.js +75 -0
- package/dist/esm/v1/primitives/forms/TextArea/TextArea.js.map +1 -0
- package/dist/esm/v1/primitives/forms/TextInput/TextInput.js +21 -0
- package/dist/esm/v1/primitives/forms/TextInput/TextInput.js.map +1 -0
- package/dist/esm/v1/primitives/forms/field.js +14 -0
- package/dist/esm/v1/primitives/forms/field.js.map +1 -0
- package/dist/esm/v1/primitives/lists/ListItem/ListItem.js +73 -0
- package/dist/esm/v1/primitives/lists/ListItem/ListItem.js.map +1 -0
- package/dist/esm/v1/primitives/navigation/Tabs/Tabs.js +96 -0
- package/dist/esm/v1/primitives/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/style.components.css +3 -0
- package/dist/style.css +2 -0
- package/dist/style.layered.css +2 -0
- package/dist/tailwind.css +24 -0
- package/dist/theme-boot.js +1 -0
- package/dist/theme.css +265 -0
- package/dist/tokens.css +121 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/legacy/components/atoms/Acronym/Acronym.d.ts +11 -0
- package/dist/types/legacy/components/atoms/BreadCrumb/BreadCrumb.d.ts +9 -0
- package/dist/types/legacy/components/atoms/Button/variants/ActionButton.d.ts +14 -0
- package/dist/types/legacy/components/atoms/Button/variants/FilterButton.d.ts +12 -0
- package/dist/types/legacy/components/atoms/Button/variants/IconButton.d.ts +22 -0
- package/dist/types/legacy/components/atoms/Button/variants/MainButton.d.ts +17 -0
- package/dist/types/legacy/components/atoms/Button/variants/TabButton.d.ts +14 -0
- package/dist/types/legacy/components/atoms/Field/Field.d.ts +15 -0
- package/dist/types/legacy/components/atoms/IconText/IconText.d.ts +12 -0
- package/dist/types/legacy/components/atoms/Icone/Icone.d.ts +31 -0
- package/dist/types/legacy/components/atoms/Input/Input.d.ts +13 -0
- package/dist/types/legacy/components/atoms/InputData/InputData.d.ts +38 -0
- package/dist/types/legacy/components/atoms/Label/Label.d.ts +11 -0
- package/dist/types/legacy/components/atoms/MultiTagPickerTag/MultiTagPickerTag.d.ts +10 -0
- package/dist/types/legacy/components/atoms/SearchSelect/SearchSelect.d.ts +15 -0
- package/dist/types/legacy/components/atoms/Select/Select.d.ts +16 -0
- package/dist/types/legacy/components/atoms/Stack/Stack.d.ts +9 -0
- package/dist/types/legacy/components/atoms/Switch/CustomSwitch.d.ts +12 -0
- package/dist/types/legacy/components/charts/Charts.d.ts +149 -0
- package/dist/types/legacy/components/layout/AppLauncher/AppLauncher.d.ts +35 -0
- package/dist/types/legacy/components/layout/Error/Error.d.ts +8 -0
- package/dist/types/legacy/components/layout/Footer/Footer.d.ts +11 -0
- package/dist/types/legacy/components/layout/Header/Header.d.ts +16 -0
- package/dist/types/legacy/components/layout/Layout/Layout.d.ts +35 -0
- package/dist/types/legacy/components/layout/Sidebar/Sidebar.d.ts +56 -0
- package/dist/types/legacy/components/layout/Spinner/Spinner.d.ts +5 -0
- package/dist/types/legacy/components/layout/TopBar/TopBar.d.ts +10 -0
- package/dist/types/legacy/components/layout/TopNavLayout/TopNavLayout.d.ts +43 -0
- package/dist/types/legacy/components/molecules/BarraValor/BarraValor.d.ts +28 -0
- package/dist/types/legacy/components/molecules/ColumnPicker/ColumnPicker.d.ts +116 -0
- package/dist/types/legacy/components/molecules/ConfirmModal/ConfirmModal.d.ts +13 -0
- package/dist/types/legacy/components/molecules/DataTable/DataTable.d.ts +344 -0
- package/dist/types/legacy/components/molecules/FileDropzone/FileDropzone.d.ts +25 -0
- package/dist/types/legacy/components/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +33 -0
- package/dist/types/legacy/components/molecules/Modal/Modal.d.ts +22 -0
- package/dist/types/legacy/components/molecules/MultiTagPicker/MultiTagPicker.d.ts +25 -0
- package/dist/types/legacy/components/molecules/PhotoAvatar/PhotoAvatar.d.ts +34 -0
- package/dist/types/legacy/components/molecules/SeletorPesquisa/SeletorPesquisa.d.ts +48 -0
- package/dist/types/legacy/components/molecules/Sidebar/Sidebar.d.ts +12 -0
- package/dist/types/legacy/components/molecules/UserAvatar/UserAvatar.d.ts +19 -0
- package/dist/types/legacy/components/organisms/GanttChart/GanttChart.d.ts +62 -0
- package/dist/types/legacy/components/organisms/Kanban/Kanban.d.ts +44 -0
- package/dist/types/legacy/components/organisms/LazyLoader/LazyLoader.d.ts +16 -0
- package/dist/types/legacy/components/organisms/MapaPontos/MapaPontos.d.ts +206 -0
- package/dist/types/legacy/components/organisms/PainelFiltros/PainelFiltros.d.ts +69 -0
- package/dist/types/legacy/components/organisms/PesquisaRapida/PesquisaRapida.d.ts +53 -0
- package/dist/types/legacy/components/organisms/Profile/Profile.d.ts +12 -0
- package/dist/types/legacy/components/organisms/RoleGuard/RoleGuard.d.ts +37 -0
- package/dist/types/legacy/components/organisms/Selector/Selector.d.ts +20 -0
- package/dist/types/legacy/components/organisms/StatusMatrix/StatusMatrix.d.ts +54 -0
- package/dist/types/legacy/components/ui/Avisos.d.ts +33 -0
- package/dist/types/legacy/components/ui/BarraAcoes.d.ts +19 -0
- package/dist/types/legacy/components/ui/CabecalhoPagina.d.ts +23 -0
- package/dist/types/legacy/components/ui/CaixaPesquisa.d.ts +14 -0
- package/dist/types/legacy/components/ui/Confirmacao.d.ts +24 -0
- package/dist/types/legacy/components/ui/Escolha.d.ts +35 -0
- package/dist/types/legacy/components/ui/FaixaAviso.d.ts +19 -0
- package/dist/types/legacy/components/ui/MenuAcoes.d.ts +31 -0
- package/dist/types/legacy/components/ui/Passos.d.ts +31 -0
- package/dist/types/legacy/components/ui/Separadores.d.ts +19 -0
- package/dist/types/legacy/components/ui/TextoAuto.d.ts +23 -0
- package/dist/types/legacy/components/ui/Ui.d.ts +181 -0
- package/dist/types/legacy/components/ui/painelFlutuante.d.ts +16 -0
- package/dist/types/legacy/constants/Colors.d.ts +28 -0
- package/dist/types/legacy/constants/FontWeight.d.ts +9 -0
- package/dist/types/legacy/contexts/apiContext.d.ts +10 -0
- package/dist/types/legacy/contexts/authContext.d.ts +31 -0
- package/dist/types/legacy/contexts/socketContext.d.ts +16 -0
- package/dist/types/legacy/exports/assets.d.ts +0 -0
- package/dist/types/legacy/exports/atoms.d.ts +19 -0
- package/dist/types/legacy/exports/charts.d.ts +2 -0
- package/dist/types/legacy/exports/constants.d.ts +0 -0
- package/dist/types/legacy/exports/contexts.d.ts +3 -0
- package/dist/types/legacy/exports/hooks.d.ts +4 -0
- package/dist/types/legacy/exports/layout.d.ts +14 -0
- package/dist/types/legacy/exports/molecules.d.ts +21 -0
- package/dist/types/legacy/exports/organisms.d.ts +17 -0
- package/dist/types/legacy/exports/pages.d.ts +5 -0
- package/dist/types/legacy/exports/styles.d.ts +2 -0
- package/dist/types/legacy/exports/types.d.ts +7 -0
- package/dist/types/legacy/exports/ui.d.ts +24 -0
- package/dist/types/legacy/exports/utils.d.ts +1 -0
- package/dist/types/legacy/hooks/useApi.d.ts +19 -0
- package/dist/types/legacy/pages/Error/ErrorPage.d.ts +16 -0
- package/dist/types/legacy/pages/Loading/Loading.d.ts +8 -0
- package/dist/types/legacy/pages/Login/LoginScreen.d.ts +42 -0
- package/dist/types/legacy/pages/NotFound/NotFound.d.ts +8 -0
- package/dist/types/legacy/styles/themes/ButtonThemes.d.ts +6 -0
- package/dist/types/legacy/styles/utils/utils.d.ts +2 -0
- package/dist/types/legacy/types/Fetcher.d.ts +5 -0
- package/dist/types/legacy/types/LoggedUser.d.ts +10 -0
- package/dist/types/legacy/types/SelectableElement.d.ts +6 -0
- package/dist/types/legacy/types/SidebarMenu.d.ts +12 -0
- package/dist/types/legacy/types/themes/AcronymThemes.d.ts +4 -0
- package/dist/types/legacy/types/themes/ButtonThemes.d.ts +21 -0
- package/dist/types/legacy/types/themes/CustomSwitchThemes.d.ts +4 -0
- package/dist/types/legacy/types/themes/IconTextThemes.d.ts +6 -0
- package/dist/types/legacy/utils/keycloak.d.ts +0 -0
- package/dist/types/legacy/utils/stringUtils.d.ts +6 -0
- package/dist/types/v1/capabilities/documents/QRScanning/scanQRCodes.d.ts +25 -0
- package/dist/types/v1/capabilities/overlay/useFloatingPanel.d.ts +20 -0
- package/dist/types/v1/capabilities/theme/useIsDark.d.ts +10 -0
- package/dist/types/v1/capabilities/theme/useTheme.d.ts +29 -0
- package/dist/types/v1/components/data/Pagination/Pagination.d.ts +33 -0
- package/dist/types/v1/components/documents/DocumentDropzone/DocumentDropzone.d.ts +60 -0
- package/dist/types/v1/components/feedback/Toast/Toast.d.ts +51 -0
- package/dist/types/v1/components/forms/FormField/FormField.d.ts +44 -0
- package/dist/types/v1/components/forms/FormGrid/FormGrid.d.ts +23 -0
- package/dist/types/v1/components/layout/AppShell/AppShell.d.ts +35 -0
- package/dist/types/v1/components/layout/Page/Page.d.ts +23 -0
- package/dist/types/v1/components/layout/PageHeader/PageHeader.d.ts +35 -0
- package/dist/types/v1/components/layout/SideNav/SideNav.d.ts +92 -0
- package/dist/types/v1/components/layout/navTrail.d.ts +15 -0
- package/dist/types/v1/components/lists/ListFinder/ListFinder.d.ts +86 -0
- package/dist/types/v1/components/lists/ListFinder/labels.d.ts +24 -0
- package/dist/types/v1/components/overlays/ConfirmDialog/ConfirmDialog.d.ts +59 -0
- package/dist/types/v1/components/overlays/Dialog/Dialog.d.ts +66 -0
- package/dist/types/v1/components/overlays/Tooltip/Tooltip.d.ts +34 -0
- package/dist/types/v1/components/overlays/Tooltip/TooltipLayer.d.ts +18 -0
- package/dist/types/v1/components/overlays/Tooltip/TooltipPanel.d.ts +23 -0
- package/dist/types/v1/components/overlays/topLayer.d.ts +23 -0
- package/dist/types/v1/components/tables/PaginatedTable/PaginatedTable.d.ts +41 -0
- package/dist/types/v1/components/tables/Table/ColumnFilter.d.ts +48 -0
- package/dist/types/v1/components/tables/Table/OverlayScrollbar.d.ts +34 -0
- package/dist/types/v1/components/tables/Table/Table.d.ts +250 -0
- package/dist/types/v1/components/tables/Table/labels.d.ts +54 -0
- package/dist/types/v1/foundations/icons/icons.d.ts +81 -0
- package/dist/types/v1/index.d.ts +86 -0
- package/dist/types/v1/primitives/buttons/Button/Button.d.ts +35 -0
- package/dist/types/v1/primitives/buttons/SegmentedControl/SegmentedControl.d.ts +28 -0
- package/dist/types/v1/primitives/buttons/SegmentedControl/segmentedStyles.d.ts +16 -0
- package/dist/types/v1/primitives/display/Avatar/Avatar.d.ts +30 -0
- package/dist/types/v1/primitives/display/Badge/Badge.d.ts +25 -0
- package/dist/types/v1/primitives/display/Card/Card.d.ts +22 -0
- package/dist/types/v1/primitives/display/FilterChips/FilterChips.d.ts +33 -0
- package/dist/types/v1/primitives/display/Kpi/Kpi.d.ts +68 -0
- package/dist/types/v1/primitives/display/Notice/Notice.d.ts +29 -0
- package/dist/types/v1/primitives/display/Person/Person.d.ts +15 -0
- package/dist/types/v1/primitives/display/RichText/RichText.d.ts +17 -0
- package/dist/types/v1/primitives/display/RichText/utils.d.ts +22 -0
- package/dist/types/v1/primitives/documents/PdfPreview/PdfPreview.d.ts +17 -0
- package/dist/types/v1/primitives/documents/PdfPreview/pdfjs.d.ts +11 -0
- package/dist/types/v1/primitives/forms/Checkbox/Checkbox.d.ts +25 -0
- package/dist/types/v1/primitives/forms/DateInput/DateInput.d.ts +43 -0
- package/dist/types/v1/primitives/forms/LookupInput/LookupInput.d.ts +28 -0
- package/dist/types/v1/primitives/forms/RichTextEditor/RichTextEditor.d.ts +64 -0
- package/dist/types/v1/primitives/forms/SearchInput/SearchInput.d.ts +23 -0
- package/dist/types/v1/primitives/forms/SelectInput/SelectInput.d.ts +70 -0
- package/dist/types/v1/primitives/forms/TextArea/TextArea.d.ts +40 -0
- package/dist/types/v1/primitives/forms/TextInput/TextInput.d.ts +16 -0
- package/dist/types/v1/primitives/forms/field.d.ts +22 -0
- package/dist/types/v1/primitives/lists/ListItem/ListItem.d.ts +67 -0
- package/dist/types/v1/primitives/navigation/Tabs/Tabs.d.ts +58 -0
- package/package.json +125 -6
- package/README.md +0 -3
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var Color = /* @__PURE__ */ ((Color2) => {
|
|
2
|
+
Color2["BRIGHT_BLUE"] = "#006fff";
|
|
3
|
+
Color2["BRIGHT_GREEN"] = "#17daa4";
|
|
4
|
+
Color2["DARK_BLUE"] = "#010060";
|
|
5
|
+
Color2["LIGHT_GRAY_01"] = "#dddddd";
|
|
6
|
+
Color2["ALMOST_WHITE"] = "#f8f8f8";
|
|
7
|
+
Color2["ALMOST_BLACK"] = "#1f1f1f";
|
|
8
|
+
Color2["MEDIUM_BLUE"] = "#87a9ff";
|
|
9
|
+
Color2["MEDIUM_GREEN"] = "#b0ebdb";
|
|
10
|
+
Color2["MEDIUM_DARK_BLUE"] = "#7d7dab";
|
|
11
|
+
Color2["MEDIUM_GRAY_01"] = "#c2c2c2";
|
|
12
|
+
Color2["LIGHT_GRAY_02"] = "#ededed";
|
|
13
|
+
Color2["LIGHT_BLUE"] = "#cedcff";
|
|
14
|
+
Color2["DARK_GRAY"] = "#6c6c6c";
|
|
15
|
+
Color2["WARM_YELLOW"] = "#ebc25a";
|
|
16
|
+
Color2["WARM_ORANGE"] = "#eb745a";
|
|
17
|
+
Color2["LIGHT_YELLOW"] = "#ffedbf";
|
|
18
|
+
Color2["BRIGHT_PURPLE"] = "#801de2";
|
|
19
|
+
Color2["REJECTED"] = "#de4321";
|
|
20
|
+
Color2["APPROVED"] = "#1dc88a";
|
|
21
|
+
Color2["STAND_BY"] = "#ffcc4a";
|
|
22
|
+
Color2["BG_LIGHT_YELLOW"] = "#ffedbf";
|
|
23
|
+
Color2["DARK_YELLOW"] = "#856404";
|
|
24
|
+
Color2["BG_LIGHT_RED"] = "#ffbdae";
|
|
25
|
+
Color2["DARK_RED"] = "#842029";
|
|
26
|
+
Color2["BG_SUCCESS"] = "#8ef8d2";
|
|
27
|
+
Color2["DARK_green"] = "#0f5132";
|
|
28
|
+
return Color2;
|
|
29
|
+
})(Color || {});
|
|
30
|
+
export {
|
|
31
|
+
Color
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=Colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Colors.js","sources":["../../../../src/legacy/constants/Colors.ts"],"sourcesContent":["export enum Color {\r\n\r\n BRIGHT_BLUE = '#006fff',\r\n BRIGHT_GREEN = '#17daa4',\r\n DARK_BLUE = '#010060',\r\n LIGHT_GRAY_01 = '#dddddd',\r\n ALMOST_WHITE = '#f8f8f8',\r\n ALMOST_BLACK = '#1f1f1f',\r\n \r\n /* Secundary */\r\n MEDIUM_BLUE = '#87a9ff',\r\n MEDIUM_GREEN = '#b0ebdb',\r\n MEDIUM_DARK_BLUE = '#7d7dab',\r\n MEDIUM_GRAY_01 = '#c2c2c2',\r\n LIGHT_GRAY_02 = '#ededed',\r\n LIGHT_BLUE = '#cedcff',\r\n DARK_GRAY = '#6c6c6c',\r\n \r\n /* Tertiary */\r\n WARM_YELLOW = '#ebc25a',\r\n WARM_ORANGE = '#eb745a',\r\n LIGHT_YELLOW = '#ffedbf',\r\n BRIGHT_PURPLE = '#801de2',\r\n \r\n /* Alert */\r\n REJECTED = '#de4321',\r\n APPROVED = '#1dc88a',\r\n STAND_BY = '#ffcc4a',\r\n \r\n /* Notifications */\r\n BG_LIGHT_YELLOW = '#ffedbf',\r\n DARK_YELLOW = '#856404',\r\n BG_LIGHT_RED = '#ffbdae',\r\n DARK_RED = '#842029',\r\n BG_SUCCESS = '#8ef8d2',\r\n DARK_green = '#0f5132',\r\n\r\n}"],"names":["Color"],"mappings":"AAAO,IAAK,0BAAAA,WAAL;AAEHA,SAAA,aAAA,IAAc;AACdA,SAAA,cAAA,IAAe;AACfA,SAAA,WAAA,IAAY;AACZA,SAAA,eAAA,IAAgB;AAChBA,SAAA,cAAA,IAAe;AACfA,SAAA,cAAA,IAAe;AAGfA,SAAA,aAAA,IAAc;AACdA,SAAA,cAAA,IAAe;AACfA,SAAA,kBAAA,IAAmB;AACnBA,SAAA,gBAAA,IAAiB;AACjBA,SAAA,eAAA,IAAgB;AAChBA,SAAA,YAAA,IAAa;AACbA,SAAA,WAAA,IAAY;AAGZA,SAAA,aAAA,IAAc;AACdA,SAAA,aAAA,IAAc;AACdA,SAAA,cAAA,IAAe;AACfA,SAAA,eAAA,IAAgB;AAGhBA,SAAA,UAAA,IAAW;AACXA,SAAA,UAAA,IAAW;AACXA,SAAA,UAAA,IAAW;AAGXA,SAAA,iBAAA,IAAkB;AAClBA,SAAA,aAAA,IAAc;AACdA,SAAA,cAAA,IAAe;AACfA,SAAA,UAAA,IAAW;AACXA,SAAA,YAAA,IAAa;AACbA,SAAA,YAAA,IAAa;AAnCL,SAAAA;AAAA,GAAA,SAAA,CAAA,CAAA;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var FontWeight = /* @__PURE__ */ ((FontWeight2) => {
|
|
2
|
+
FontWeight2["LIGHT"] = "light";
|
|
3
|
+
FontWeight2["MEDIUM"] = "medium";
|
|
4
|
+
FontWeight2["REGULAR"] = "regular";
|
|
5
|
+
FontWeight2["SEMIBOLD"] = "semibold";
|
|
6
|
+
FontWeight2["BOLD"] = "bold";
|
|
7
|
+
return FontWeight2;
|
|
8
|
+
})(FontWeight || {});
|
|
9
|
+
const WeightValue = {
|
|
10
|
+
[
|
|
11
|
+
"light"
|
|
12
|
+
/* LIGHT */
|
|
13
|
+
]: 300,
|
|
14
|
+
[
|
|
15
|
+
"medium"
|
|
16
|
+
/* MEDIUM */
|
|
17
|
+
]: 400,
|
|
18
|
+
[
|
|
19
|
+
"regular"
|
|
20
|
+
/* REGULAR */
|
|
21
|
+
]: 500,
|
|
22
|
+
[
|
|
23
|
+
"semibold"
|
|
24
|
+
/* SEMIBOLD */
|
|
25
|
+
]: 600,
|
|
26
|
+
[
|
|
27
|
+
"bold"
|
|
28
|
+
/* BOLD */
|
|
29
|
+
]: 700
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
FontWeight,
|
|
33
|
+
WeightValue
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=FontWeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FontWeight.js","sources":["../../../../src/legacy/constants/FontWeight.ts"],"sourcesContent":["/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport enum FontWeight {\r\n LIGHT = 'light',\r\n MEDIUM = 'medium',\r\n REGULAR = 'regular',\r\n SEMIBOLD = 'semibold',\r\n BOLD = 'bold',\r\n}\r\n\r\nexport const WeightValue: Record<FontWeight, number> = {\r\n [FontWeight.LIGHT]: 300,\r\n [FontWeight.MEDIUM]: 400,\r\n [FontWeight.REGULAR]: 500,\r\n [FontWeight.SEMIBOLD]: 600,\r\n [FontWeight.BOLD]: 700,\r\n}\r\n"],"names":["FontWeight"],"mappings":"AACO,IAAK,+BAAAA,gBAAL;AACLA,cAAA,OAAA,IAAQ;AACRA,cAAA,QAAA,IAAS;AACTA,cAAA,SAAA,IAAU;AACVA,cAAA,UAAA,IAAW;AACXA,cAAA,MAAA,IAAO;AALG,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAQL,MAAM,cAA0C;AAAA,EACrD;AAAA,IAAC;AAAA;AAAA,KAAmB;AAAA,EACpB;AAAA,IAAC;AAAA;AAAA,KAAoB;AAAA,EACrB;AAAA,IAAC;AAAA;AAAA,KAAqB;AAAA,EACtB;AAAA,IAAC;AAAA;AAAA,KAAsB;AAAA,EACvB;AAAA,IAAC;AAAA;AAAA,KAAkB;AACrB;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
const ApiContext = createContext(void 0);
|
|
5
|
+
const ApiProvider = ({ children, baseURL, token, withCredentials }) => {
|
|
6
|
+
const axiosInstance = axios.create({
|
|
7
|
+
baseURL,
|
|
8
|
+
timeout: 1e4,
|
|
9
|
+
withCredentials: withCredentials !== void 0 ? withCredentials : true,
|
|
10
|
+
headers: token ? { Authorization: `Bearer ${token}` } : void 0
|
|
11
|
+
});
|
|
12
|
+
return /* @__PURE__ */ jsx(ApiContext.Provider, { value: axiosInstance, children });
|
|
13
|
+
};
|
|
14
|
+
const useAxiosInstance = () => {
|
|
15
|
+
const axiosInstance = useContext(ApiContext);
|
|
16
|
+
if (!axiosInstance) {
|
|
17
|
+
throw new Error("useAxiosInstance must be used within an ApiProvider");
|
|
18
|
+
}
|
|
19
|
+
return axiosInstance;
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
ApiProvider,
|
|
23
|
+
useAxiosInstance
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=apiContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContext.js","sources":["../../../../src/legacy/contexts/apiContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react'\r\nimport axios, { AxiosInstance } from 'axios'\r\n\r\n// Create context for the Axios instance\r\nconst ApiContext = createContext<AxiosInstance | undefined>(undefined)\r\n\r\n// Provider to set the Axios instance with baseURL and optional token\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const ApiProvider: React.FC<{\r\n children: React.ReactNode\r\n baseURL: string\r\n token?: string\r\n withCredentials?: boolean\r\n}> = ({ children, baseURL, token, withCredentials }) => {\r\n const axiosInstance = axios.create({\r\n baseURL,\r\n timeout: 10000,\r\n withCredentials: withCredentials !== undefined ? withCredentials : true,\r\n headers: token ? { Authorization: `Bearer ${token}` } : undefined,\r\n })\r\n\r\n return (\r\n <ApiContext.Provider value={axiosInstance}>{children}</ApiContext.Provider>\r\n )\r\n}\r\n\r\n// Hook to access the Axios instance\r\nexport const useAxiosInstance = () => {\r\n const axiosInstance = useContext(ApiContext)\r\n if (!axiosInstance) {\r\n throw new Error('useAxiosInstance must be used within an ApiProvider')\r\n }\r\n return axiosInstance\r\n}\r\n"],"names":[],"mappings":";;;AAIA,MAAM,aAAa,cAAyC,MAAS;AAI9D,MAAM,cAKR,CAAC,EAAE,UAAU,SAAS,OAAO,sBAAsB;AACtD,QAAM,gBAAgB,MAAM,OAAO;AAAA,IACjC;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB,oBAAoB,SAAY,kBAAkB;AAAA,IACnE,SAAS,QAAQ,EAAE,eAAe,UAAU,KAAK,OAAO;AAAA,EAAA,CACzD;AAED,6BACG,WAAW,UAAX,EAAoB,OAAO,eAAgB,UAAS;AAEzD;AAGO,MAAM,mBAAmB,MAAM;AACpC,QAAM,gBAAgB,WAAW,UAAU;AAC3C,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,SAAO;AACT;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useContext, createContext } from "react";
|
|
3
|
+
import Keycloak from "keycloak-js";
|
|
4
|
+
import Cookies from "js-cookie";
|
|
5
|
+
const AuthContext = createContext(void 0);
|
|
6
|
+
const AuthProvider = ({
|
|
7
|
+
children,
|
|
8
|
+
keycloakConfig,
|
|
9
|
+
allowedRoles
|
|
10
|
+
}) => {
|
|
11
|
+
const [keycloak, setKeycloak] = useState(null);
|
|
12
|
+
const [authenticated, setAuthenticated] = useState(false);
|
|
13
|
+
const [loading, setLoading] = useState(true);
|
|
14
|
+
const [user, setUser] = useState(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const keycloakInstance = new Keycloak(keycloakConfig);
|
|
17
|
+
keycloakInstance.init({ onLoad: "login-required", checkLoginIframe: false }).then((auth) => {
|
|
18
|
+
setKeycloak(keycloakInstance);
|
|
19
|
+
setAuthenticated(auth);
|
|
20
|
+
setLoading(false);
|
|
21
|
+
if (keycloakInstance.token) {
|
|
22
|
+
Cookies.set("authToken", keycloakInstance.token);
|
|
23
|
+
const roles = keycloakInstance.tokenParsed?.realm_access?.roles ?? [];
|
|
24
|
+
const filteredRoles = roles.filter(
|
|
25
|
+
(role) => allowedRoles.includes(role)
|
|
26
|
+
);
|
|
27
|
+
const loggedUser = {
|
|
28
|
+
id: keycloakInstance.tokenParsed?.sub ?? "",
|
|
29
|
+
name: keycloakInstance.tokenParsed?.name ?? "",
|
|
30
|
+
email: keycloakInstance.tokenParsed?.preferred_username ?? "",
|
|
31
|
+
roles: filteredRoles
|
|
32
|
+
};
|
|
33
|
+
setUser(loggedUser);
|
|
34
|
+
}
|
|
35
|
+
}).catch((err) => {
|
|
36
|
+
console.error("Keycloak init error:", err);
|
|
37
|
+
setLoading(false);
|
|
38
|
+
});
|
|
39
|
+
return () => {
|
|
40
|
+
keycloakInstance.onAuthLogout = () => {
|
|
41
|
+
setAuthenticated(false);
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
}, [keycloakConfig, allowedRoles]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const interval = setInterval(() => {
|
|
47
|
+
if (keycloak?.authenticated) {
|
|
48
|
+
keycloak.updateToken(30).catch(() => console.error("Failed to refresh token"));
|
|
49
|
+
}
|
|
50
|
+
}, 6e4);
|
|
51
|
+
return () => clearInterval(interval);
|
|
52
|
+
}, [keycloak]);
|
|
53
|
+
const login = () => keycloak?.login();
|
|
54
|
+
const logout = () => keycloak?.logout();
|
|
55
|
+
const hasRole = (role) => {
|
|
56
|
+
return user?.roles?.includes(role) ?? false;
|
|
57
|
+
};
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
AuthContext.Provider,
|
|
60
|
+
{
|
|
61
|
+
value: {
|
|
62
|
+
keycloak,
|
|
63
|
+
user,
|
|
64
|
+
authenticated,
|
|
65
|
+
loading,
|
|
66
|
+
login,
|
|
67
|
+
logout,
|
|
68
|
+
hasRole
|
|
69
|
+
},
|
|
70
|
+
children
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
const useAuth = () => {
|
|
75
|
+
const context = useContext(AuthContext);
|
|
76
|
+
if (!context) {
|
|
77
|
+
throw new Error("useAuth must be used within a AuthProvider");
|
|
78
|
+
}
|
|
79
|
+
return context;
|
|
80
|
+
};
|
|
81
|
+
export {
|
|
82
|
+
AuthProvider,
|
|
83
|
+
useAuth
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=authContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authContext.js","sources":["../../../../src/legacy/contexts/authContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState } from 'react'\r\nimport Keycloak from 'keycloak-js'\r\nimport Cookies from 'js-cookie'\r\n\r\nexport interface LoggedUser {\r\n id: string\r\n name: string\r\n email: string\r\n roles: string[]\r\n}\r\n\r\ninterface AuthContextProps {\r\n keycloak: Keycloak | null\r\n user: LoggedUser | null\r\n authenticated: boolean\r\n loading: boolean\r\n login: () => void\r\n logout: () => void\r\n hasRole: (role: string) => boolean\r\n}\r\n\r\nconst AuthContext = createContext<AuthContextProps | undefined>(undefined)\r\n\r\nexport interface AuthProviderProps {\r\n children: React.ReactNode\r\n keycloakConfig: {\r\n url: string\r\n realm: string\r\n clientId: string\r\n }\r\n allowedRoles: string[]\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const AuthProvider: React.FC<AuthProviderProps> = ({\r\n children,\r\n keycloakConfig,\r\n allowedRoles,\r\n}) => {\r\n const [keycloak, setKeycloak] = useState<Keycloak | null>(null)\r\n const [authenticated, setAuthenticated] = useState(false)\r\n const [loading, setLoading] = useState(true)\r\n const [user, setUser] = useState<LoggedUser | null>(null)\r\n\r\n useEffect(() => {\r\n const keycloakInstance = new Keycloak(keycloakConfig)\r\n\r\n keycloakInstance\r\n .init({ onLoad: 'login-required', checkLoginIframe: false })\r\n .then((auth) => {\r\n setKeycloak(keycloakInstance)\r\n setAuthenticated(auth)\r\n setLoading(false)\r\n\r\n if (keycloakInstance.token) {\r\n Cookies.set('authToken', keycloakInstance.token)\r\n\r\n const roles = keycloakInstance.tokenParsed?.realm_access?.roles ?? []\r\n\r\n const filteredRoles = roles.filter((role) =>\r\n allowedRoles.includes(role)\r\n )\r\n\r\n const loggedUser: LoggedUser = {\r\n id: keycloakInstance.tokenParsed?.sub ?? '',\r\n name: keycloakInstance.tokenParsed?.name ?? '',\r\n email: keycloakInstance.tokenParsed?.preferred_username ?? '',\r\n roles: filteredRoles,\r\n }\r\n\r\n setUser(loggedUser)\r\n }\r\n })\r\n .catch((err) => {\r\n console.error('Keycloak init error:', err)\r\n setLoading(false)\r\n })\r\n\r\n return () => {\r\n keycloakInstance.onAuthLogout = () => {\r\n setAuthenticated(false)\r\n }\r\n }\r\n }, [keycloakConfig, allowedRoles])\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if (keycloak?.authenticated) {\r\n keycloak\r\n .updateToken(30)\r\n .catch(() => console.error('Failed to refresh token'))\r\n }\r\n }, 60000)\r\n\r\n return () => clearInterval(interval)\r\n }, [keycloak])\r\n\r\n const login = () => keycloak?.login()\r\n const logout = () => keycloak?.logout()\r\n\r\n const hasRole = (role: string) => {\r\n return user?.roles?.includes(role) ?? false\r\n }\r\n\r\n return (\r\n <AuthContext.Provider\r\n value={{\r\n keycloak,\r\n user,\r\n authenticated,\r\n loading,\r\n login,\r\n logout,\r\n hasRole,\r\n }}\r\n >\r\n {children}\r\n </AuthContext.Provider>\r\n )\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const useAuth = () => {\r\n const context = useContext(AuthContext)\r\n if (!context) {\r\n throw new Error('useAuth must be used within a AuthProvider')\r\n }\r\n return context\r\n}\r\n"],"names":[],"mappings":";;;;AAqBA,MAAM,cAAc,cAA4C,MAAS;AAalE,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAA0B,IAAI;AAC9D,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAI,SAA4B,IAAI;AAExD,YAAU,MAAM;AACd,UAAM,mBAAmB,IAAI,SAAS,cAAc;AAEpD,qBACG,KAAK,EAAE,QAAQ,kBAAkB,kBAAkB,OAAO,EAC1D,KAAK,CAAC,SAAS;AACd,kBAAY,gBAAgB;AAC5B,uBAAiB,IAAI;AACrB,iBAAW,KAAK;AAEhB,UAAI,iBAAiB,OAAO;AAC1B,gBAAQ,IAAI,aAAa,iBAAiB,KAAK;AAE/C,cAAM,QAAQ,iBAAiB,aAAa,cAAc,SAAS,CAAA;AAEnE,cAAM,gBAAgB,MAAM;AAAA,UAAO,CAAC,SAClC,aAAa,SAAS,IAAI;AAAA,QAAA;AAG5B,cAAM,aAAyB;AAAA,UAC7B,IAAI,iBAAiB,aAAa,OAAO;AAAA,UACzC,MAAM,iBAAiB,aAAa,QAAQ;AAAA,UAC5C,OAAO,iBAAiB,aAAa,sBAAsB;AAAA,UAC3D,OAAO;AAAA,QAAA;AAGT,gBAAQ,UAAU;AAAA,MACpB;AAAA,IACF,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,MAAM,wBAAwB,GAAG;AACzC,iBAAW,KAAK;AAAA,IAClB,CAAC;AAEH,WAAO,MAAM;AACX,uBAAiB,eAAe,MAAM;AACpC,yBAAiB,KAAK;AAAA,MACxB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,gBAAgB,YAAY,CAAC;AAEjC,YAAU,MAAM;AACd,UAAM,WAAW,YAAY,MAAM;AACjC,UAAI,UAAU,eAAe;AAC3B,iBACG,YAAY,EAAE,EACd,MAAM,MAAM,QAAQ,MAAM,yBAAyB,CAAC;AAAA,MACzD;AAAA,IACF,GAAG,GAAK;AAER,WAAO,MAAM,cAAc,QAAQ;AAAA,EACrC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,QAAQ,MAAM,UAAU,MAAA;AAC9B,QAAM,SAAS,MAAM,UAAU,OAAA;AAE/B,QAAM,UAAU,CAAC,SAAiB;AAChC,WAAO,MAAM,OAAO,SAAS,IAAI,KAAK;AAAA,EACxC;AAEA,SACE;AAAA,IAAC,YAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGD;AAAA,IAAA;AAAA,EAAA;AAGP;AAGO,MAAM,UAAU,MAAM;AAC3B,QAAM,UAAU,WAAW,WAAW;AACtC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACA,SAAO;AACT;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useContext, createContext } from "react";
|
|
3
|
+
import { io } from "socket.io-client";
|
|
4
|
+
const SocketContext = createContext(null);
|
|
5
|
+
const SocketProvider = ({
|
|
6
|
+
children,
|
|
7
|
+
config
|
|
8
|
+
}) => {
|
|
9
|
+
const [socket, setSocket] = useState(null);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
const socketInstance = io(config.serverUrl, {
|
|
12
|
+
path: config.path,
|
|
13
|
+
transports: config.transports ?? ["websocket"],
|
|
14
|
+
upgrade: true,
|
|
15
|
+
query: config.query
|
|
16
|
+
});
|
|
17
|
+
setSocket(socketInstance);
|
|
18
|
+
socketInstance.on("connect_error", (err) => {
|
|
19
|
+
console.error("Socket connection error:", err.message);
|
|
20
|
+
});
|
|
21
|
+
return () => {
|
|
22
|
+
socketInstance.disconnect();
|
|
23
|
+
};
|
|
24
|
+
}, [config.serverUrl, JSON.stringify(config.query), config.path]);
|
|
25
|
+
return /* @__PURE__ */ jsx(SocketContext.Provider, { value: socket, children });
|
|
26
|
+
};
|
|
27
|
+
const useSocket = () => {
|
|
28
|
+
return useContext(SocketContext);
|
|
29
|
+
};
|
|
30
|
+
export {
|
|
31
|
+
SocketProvider,
|
|
32
|
+
useSocket
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=socketContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketContext.js","sources":["../../../../src/legacy/contexts/socketContext.tsx"],"sourcesContent":["import React, {\r\n createContext,\r\n ReactNode,\r\n useContext,\r\n useEffect,\r\n useState,\r\n} from 'react'\r\nimport { io, Socket } from 'socket.io-client'\r\n\r\ninterface SocketProviderProps {\r\n children: ReactNode\r\n config: {\r\n serverUrl: string\r\n path?: string\r\n transports?: string[]\r\n query?: Record<string, string>\r\n }\r\n}\r\n\r\nconst SocketContext = createContext<Socket | null>(null)\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const SocketProvider: React.FC<SocketProviderProps> = ({\r\n children,\r\n config,\r\n}) => {\r\n const [socket, setSocket] = useState<Socket | null>(null)\r\n\r\n useEffect(() => {\r\n const socketInstance = io(config.serverUrl, {\r\n path: config.path,\r\n transports: config.transports ?? ['websocket'],\r\n upgrade: true,\r\n query: config.query,\r\n })\r\n\r\n setSocket(socketInstance)\r\n\r\n socketInstance.on('connect_error', (err: any) => {\r\n console.error('Socket connection error:', err.message)\r\n })\r\n\r\n return () => {\r\n socketInstance.disconnect()\r\n }\r\n }, [config.serverUrl, JSON.stringify(config.query), config.path])\r\n\r\n return (\r\n <SocketContext.Provider value={socket}>{children}</SocketContext.Provider>\r\n )\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const useSocket = (): Socket | null => {\r\n return useContext(SocketContext)\r\n}\r\n"],"names":[],"mappings":";;;AAmBA,MAAM,gBAAgB,cAA6B,IAAI;AAGhD,MAAM,iBAAgD,CAAC;AAAA,EAC5D;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwB,IAAI;AAExD,YAAU,MAAM;AACd,UAAM,iBAAiB,GAAG,OAAO,WAAW;AAAA,MAC1C,MAAM,OAAO;AAAA,MACb,YAAY,OAAO,cAAc,CAAC,WAAW;AAAA,MAC7C,SAAS;AAAA,MACT,OAAO,OAAO;AAAA,IAAA,CACf;AAED,cAAU,cAAc;AAExB,mBAAe,GAAG,iBAAiB,CAAC,QAAa;AAC/C,cAAQ,MAAM,4BAA4B,IAAI,OAAO;AAAA,IACvD,CAAC;AAED,WAAO,MAAM;AACX,qBAAe,WAAA;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,OAAO,WAAW,KAAK,UAAU,OAAO,KAAK,GAAG,OAAO,IAAI,CAAC;AAEhE,6BACG,cAAc,UAAd,EAAuB,OAAO,QAAS,UAAS;AAErD;AAGO,MAAM,YAAY,MAAqB;AAC5C,SAAO,WAAW,aAAa;AACjC;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
import { useAxiosInstance } from "../contexts/apiContext.js";
|
|
5
|
+
import Error from "../components/layout/Error/Error.js";
|
|
6
|
+
const useApi = () => {
|
|
7
|
+
const [errors, setErrors] = useState(null);
|
|
8
|
+
const [loading, setLoading] = useState(false);
|
|
9
|
+
const axiosInstance = useAxiosInstance();
|
|
10
|
+
const request = async (options) => {
|
|
11
|
+
const {
|
|
12
|
+
method,
|
|
13
|
+
url,
|
|
14
|
+
body,
|
|
15
|
+
params,
|
|
16
|
+
responseType,
|
|
17
|
+
timeout = 6e4,
|
|
18
|
+
signal
|
|
19
|
+
} = options;
|
|
20
|
+
const isFormData = body instanceof FormData;
|
|
21
|
+
const headers = {
|
|
22
|
+
...isFormData ? { "Content-Type": "multipart/form-data" } : { "Content-Type": "application/json" }
|
|
23
|
+
};
|
|
24
|
+
const config = {
|
|
25
|
+
method,
|
|
26
|
+
url,
|
|
27
|
+
data: body,
|
|
28
|
+
params,
|
|
29
|
+
headers,
|
|
30
|
+
responseType,
|
|
31
|
+
timeout,
|
|
32
|
+
signal
|
|
33
|
+
};
|
|
34
|
+
setLoading(true);
|
|
35
|
+
setErrors(null);
|
|
36
|
+
try {
|
|
37
|
+
const response = await axiosInstance.request(config);
|
|
38
|
+
return responseType ? response : response.data;
|
|
39
|
+
} catch (err) {
|
|
40
|
+
if (axios.isCancel(err)) {
|
|
41
|
+
console.log("Request was cancelled");
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
console.error("Request error:", err);
|
|
45
|
+
if (axios.isAxiosError(err) && err.response?.data?.errors) {
|
|
46
|
+
const errorMessages = err.response.data.errors;
|
|
47
|
+
const messages = errorMessages.map(
|
|
48
|
+
(error) => error.message
|
|
49
|
+
);
|
|
50
|
+
setErrors(/* @__PURE__ */ jsx(Error, { messages }));
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
} finally {
|
|
54
|
+
setLoading(false);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return { request, errors, loading };
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
useApi
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=useApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApi.js","sources":["../../../../src/legacy/hooks/useApi.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport axios, { AxiosRequestConfig } from 'axios'\r\nimport { useAxiosInstance } from '../contexts/apiContext'\r\nimport Error from '../components/layout/Error/Error'\r\n\r\ntype AllowedMethods = 'get' | 'post' | 'put' | 'delete' | 'patch'\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface RequestOptions {\r\n method: AllowedMethods\r\n url: string\r\n body?: object | FormData\r\n params?: object\r\n responseType?: 'blob'\r\n timeout?: number\r\n signal?: AbortSignal\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const useApi = () => {\r\n const [errors, setErrors] = useState<React.ReactNode | null>(null)\r\n const [loading, setLoading] = useState<boolean>(false)\r\n const axiosInstance = useAxiosInstance()\r\n\r\n const request = async (options: RequestOptions): Promise<any | null> => {\r\n const {\r\n method,\r\n url,\r\n body,\r\n params,\r\n responseType,\r\n timeout = 60000,\r\n signal,\r\n } = options\r\n\r\n const isFormData = body instanceof FormData\r\n\r\n const headers: Record<string, string> = {\r\n ...(isFormData\r\n ? { 'Content-Type': 'multipart/form-data' }\r\n : { 'Content-Type': 'application/json' }),\r\n }\r\n\r\n const config: AxiosRequestConfig = {\r\n method,\r\n url,\r\n data: body,\r\n params,\r\n headers,\r\n responseType,\r\n timeout,\r\n signal,\r\n }\r\n\r\n setLoading(true)\r\n setErrors(null)\r\n\r\n try {\r\n const response = await axiosInstance.request(config)\r\n return responseType ? response : response.data\r\n } catch (err) {\r\n if (axios.isCancel(err)) {\r\n console.log('Request was cancelled')\r\n return null\r\n }\r\n\r\n console.error('Request error:', err)\r\n\r\n if (axios.isAxiosError(err) && err.response?.data?.errors) {\r\n const errorMessages = err.response.data.errors\r\n const messages: string[] = errorMessages.map(\r\n (error: { message: string }) => error.message\r\n )\r\n setErrors(<Error messages={messages} />)\r\n }\r\n\r\n return null\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return { request, errors, loading }\r\n}\r\n"],"names":[],"mappings":";;;;;AAmBO,MAAM,SAAS,MAAM;AAC1B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAiC,IAAI;AACjE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,KAAK;AACrD,QAAM,gBAAgB,iBAAA;AAEtB,QAAM,UAAU,OAAO,YAAiD;AACtE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,IAAA,IACE;AAEJ,UAAM,aAAa,gBAAgB;AAEnC,UAAM,UAAkC;AAAA,MACtC,GAAI,aACA,EAAE,gBAAgB,0BAClB,EAAE,gBAAgB,mBAAA;AAAA,IAAmB;AAG3C,UAAM,SAA6B;AAAA,MACjC;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,IAAI;AACf,cAAU,IAAI;AAEd,QAAI;AACF,YAAM,WAAW,MAAM,cAAc,QAAQ,MAAM;AACnD,aAAO,eAAe,WAAW,SAAS;AAAA,IAC5C,SAAS,KAAK;AACZ,UAAI,MAAM,SAAS,GAAG,GAAG;AACvB,gBAAQ,IAAI,uBAAuB;AACnC,eAAO;AAAA,MACT;AAEA,cAAQ,MAAM,kBAAkB,GAAG;AAEnC,UAAI,MAAM,aAAa,GAAG,KAAK,IAAI,UAAU,MAAM,QAAQ;AACzD,cAAM,gBAAgB,IAAI,SAAS,KAAK;AACxC,cAAM,WAAqB,cAAc;AAAA,UACvC,CAAC,UAA+B,MAAM;AAAA,QAAA;AAExC,kBAAU,oBAAC,OAAA,EAAM,SAAA,CAAoB,CAAE;AAAA,MACzC;AAEA,aAAO;AAAA,IACT,UAAA;AACE,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,QAAQ,QAAA;AAC5B;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.error-page .cui-error {
|
|
2
|
+
background: url("../../../assets/imagem-6ee08a37d9.png") no-repeat fixed;
|
|
3
|
+
background-size: cover;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
align-items: center;
|
|
8
|
+
color: white;
|
|
9
|
+
position: fixed;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
bottom: 0;
|
|
13
|
+
right: 0;
|
|
14
|
+
z-index: 9999999;
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
text-align: center;
|
|
18
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './ErrorPage.css';/* empty css */
|
|
3
|
+
const INTERACTION_KEY = "msal.interaction.status";
|
|
4
|
+
const ErrorPage = ({ title, messages, clientId }) => {
|
|
5
|
+
const resetSession = () => {
|
|
6
|
+
try {
|
|
7
|
+
if (clientId) {
|
|
8
|
+
for (const store of [localStorage, sessionStorage]) {
|
|
9
|
+
for (const k of Object.keys(store)) {
|
|
10
|
+
if (k.includes(clientId) || k === INTERACTION_KEY) store.removeItem(k);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
localStorage.clear();
|
|
15
|
+
sessionStorage.clear();
|
|
16
|
+
}
|
|
17
|
+
} catch {
|
|
18
|
+
}
|
|
19
|
+
window.location.reload();
|
|
20
|
+
};
|
|
21
|
+
return /* @__PURE__ */ jsx("div", { className: "error-page", children: /* @__PURE__ */ jsxs("div", { className: "cui-error", children: [
|
|
22
|
+
/* @__PURE__ */ jsx("h1", { children: title ? title : "Algo não correu como esperado." }),
|
|
23
|
+
messages.map((m, index) => /* @__PURE__ */ jsx("div", { children: m }, index)),
|
|
24
|
+
/* @__PURE__ */ jsx(
|
|
25
|
+
"button",
|
|
26
|
+
{
|
|
27
|
+
type: "button",
|
|
28
|
+
onClick: resetSession,
|
|
29
|
+
style: {
|
|
30
|
+
marginTop: 20,
|
|
31
|
+
padding: "10px 20px",
|
|
32
|
+
fontSize: 12,
|
|
33
|
+
fontWeight: 800,
|
|
34
|
+
textTransform: "uppercase",
|
|
35
|
+
letterSpacing: 1,
|
|
36
|
+
cursor: "pointer",
|
|
37
|
+
border: "none",
|
|
38
|
+
background: "#001b63",
|
|
39
|
+
color: "#fff",
|
|
40
|
+
fontFamily: "inherit"
|
|
41
|
+
},
|
|
42
|
+
children: "Repor sessão"
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
] }) });
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
ErrorPage as default
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=ErrorPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sources":["../../../../../src/legacy/pages/Error/ErrorPage.tsx"],"sourcesContent":["import React from 'react'\r\n\r\nimport './ErrorPage.scss'\r\n\r\ninterface ErrorProps {\r\n title?: string\r\n messages: string[]\r\n /**\r\n * clientId MSAL da app. Passa-o sempre que várias apps partilhem o origin\r\n * (ex: todas as do proefai): o \"Repor sessão\" passa a apagar só as chaves\r\n * desta app em vez de `localStorage.clear()`, que derruba a sessão de todas\r\n * as vizinhas. Sem ele mantém-se o comportamento antigo (limpeza total).\r\n */\r\n clientId?: string\r\n}\r\n\r\n// Chave de estado de interação do msal-browser: é GLOBAL ao origin (não inclui\r\n// o clientId no nome), por isso uma interação abandonada de outra app bloqueia\r\n// os logins de todas. Faz sempre parte do reset.\r\nconst INTERACTION_KEY = 'msal.interaction.status'\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nconst ErrorPage: React.FC<ErrorProps> = ({ title, messages, clientId }) => {\r\n // Limpa a cache/estado local (MSAL) e recarrega — desenrasca o utilizador\r\n // quando a sessão fica presa (loop de renovação silenciosa), sem precisar\r\n // de abrir o DevTools para \"Clear site data\".\r\n const resetSession = () => {\r\n try {\r\n if (clientId) {\r\n // Só o que é desta app: tokens (`msal.token.keys.<clientId>`, entradas\r\n // de credencial com o clientId na chave) + a chave de interação.\r\n for (const store of [localStorage, sessionStorage]) {\r\n for (const k of Object.keys(store)) {\r\n if (k.includes(clientId) || k === INTERACTION_KEY) store.removeItem(k)\r\n }\r\n }\r\n } else {\r\n localStorage.clear()\r\n sessionStorage.clear()\r\n }\r\n } catch {\r\n /* storage indisponível */\r\n }\r\n window.location.reload()\r\n }\r\n\r\n return (\r\n <div className=\"error-page\">\r\n <div className=\"cui-error\">\r\n <h1>{title ? title : 'Algo não correu como esperado.'}</h1>\r\n {messages.map((m, index) => (\r\n <div key={index}>{m}</div>\r\n ))}\r\n <button\r\n type=\"button\"\r\n onClick={resetSession}\r\n style={{\r\n marginTop: 20,\r\n padding: '10px 20px',\r\n fontSize: 12,\r\n fontWeight: 800,\r\n textTransform: 'uppercase',\r\n letterSpacing: 1,\r\n cursor: 'pointer',\r\n border: 'none',\r\n background: '#001b63',\r\n color: '#fff',\r\n fontFamily: 'inherit',\r\n }}\r\n >\r\n Repor sessão\r\n </button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ErrorPage\r\n"],"names":[],"mappings":";;AAmBA,MAAM,kBAAkB;AAGxB,MAAM,YAAkC,CAAC,EAAE,OAAO,UAAU,eAAe;AAIzE,QAAM,eAAe,MAAM;AACzB,QAAI;AACF,UAAI,UAAU;AAGZ,mBAAW,SAAS,CAAC,cAAc,cAAc,GAAG;AAClD,qBAAW,KAAK,OAAO,KAAK,KAAK,GAAG;AAClC,gBAAI,EAAE,SAAS,QAAQ,KAAK,MAAM,gBAAiB,OAAM,WAAW,CAAC;AAAA,UACvE;AAAA,QACF;AAAA,MACF,OAAO;AACL,qBAAa,MAAA;AACb,uBAAe,MAAA;AAAA,MACjB;AAAA,IACF,QAAQ;AAAA,IAER;AACA,WAAO,SAAS,OAAA;AAAA,EAClB;AAEA,6BACG,OAAA,EAAI,WAAU,cACb,UAAA,qBAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA,oBAAC,MAAA,EAAI,UAAA,QAAQ,QAAQ,kCAAiC;AAAA,IACrD,SAAS,IAAI,CAAC,GAAG,UAChB,oBAAC,OAAA,EAAiB,UAAA,EAAA,GAAR,KAAU,CACrB;AAAA,IACD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL,WAAW;AAAA,UACX,SAAS;AAAA,UACT,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,eAAe;AAAA,UACf,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,OAAO;AAAA,UACP,YAAY;AAAA,QAAA;AAAA,QAEf,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,EAAA,CACF,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
@keyframes play {
|
|
2
|
+
0% {
|
|
3
|
+
background-position: 0 0;
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
background-position: -57420px;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
.loading-page .loading {
|
|
10
|
+
background: url("../../../assets/imagem-6ee08a37d9.png") no-repeat fixed;
|
|
11
|
+
background-size: cover;
|
|
12
|
+
position: fixed;
|
|
13
|
+
top: 0;
|
|
14
|
+
left: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
right: 0;
|
|
17
|
+
z-index: 9999999;
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
text-align: center;
|
|
21
|
+
}
|
|
22
|
+
.loading-page .loading-icon {
|
|
23
|
+
display: block;
|
|
24
|
+
margin: auto;
|
|
25
|
+
z-index: 1;
|
|
26
|
+
width: 220px;
|
|
27
|
+
height: 90px;
|
|
28
|
+
background: url("../../../assets/imagem-6fcae1b87b.png") left center;
|
|
29
|
+
animation: play 8.11s steps(261) infinite;
|
|
30
|
+
}
|
|
31
|
+
.loading-page .loading-icon-custom {
|
|
32
|
+
display: block;
|
|
33
|
+
margin: auto;
|
|
34
|
+
z-index: 1;
|
|
35
|
+
max-width: 220px;
|
|
36
|
+
max-height: 90px;
|
|
37
|
+
animation: pulse 1.6s ease-in-out infinite;
|
|
38
|
+
}
|
|
39
|
+
@keyframes pulse {
|
|
40
|
+
0%, 100% {
|
|
41
|
+
opacity: 0.4;
|
|
42
|
+
}
|
|
43
|
+
50% {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import './Loading.css';/* empty css */
|
|
3
|
+
const LoadingPage = ({ logo }) => {
|
|
4
|
+
return /* @__PURE__ */ jsx("div", { className: "loading-page", children: /* @__PURE__ */ jsx("div", { className: "loading", children: logo ? /* @__PURE__ */ jsx("img", { src: logo, alt: "", className: "loading-icon-custom" }) : /* @__PURE__ */ jsx("div", { className: "loading-icon" }) }) });
|
|
5
|
+
};
|
|
6
|
+
export {
|
|
7
|
+
LoadingPage as default
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=Loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.js","sources":["../../../../../src/legacy/pages/Loading/Loading.tsx"],"sourcesContent":["import React from 'react'\r\nimport './Loading.scss'\r\n\r\ntype Props = {\r\n // Sobrepõe a animação \"Proef\" por defeito por uma imagem estática própria.\r\n logo?: string\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nconst LoadingPage = ({ logo }: Props) => {\r\n return (\r\n <div className=\"loading-page\">\r\n <div className=\"loading\">\r\n {logo ? (\r\n <img src={logo} alt=\"\" className=\"loading-icon-custom\" />\r\n ) : (\r\n <div className=\"loading-icon\"></div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LoadingPage\r\n"],"names":[],"mappings":";;AASA,MAAM,cAAc,CAAC,EAAE,WAAkB;AACvC,SACE,oBAAC,SAAI,WAAU,gBACb,8BAAC,OAAA,EAAI,WAAU,WACZ,UAAA,OACC,oBAAC,OAAA,EAAI,KAAK,MAAM,KAAI,IAAG,WAAU,sBAAA,CAAsB,wBAEtD,OAAA,EAAI,WAAU,eAAA,CAAe,EAAA,CAElC,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
function LoginScreen({
|
|
3
|
+
appTitle,
|
|
4
|
+
subtitle,
|
|
5
|
+
onSignIn,
|
|
6
|
+
signInLabel = "Sign in",
|
|
7
|
+
companyLabel,
|
|
8
|
+
logo,
|
|
9
|
+
error,
|
|
10
|
+
topoDireita,
|
|
11
|
+
acentos = false
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-proef-navy flex flex-col items-center justify-center p-8 relative overflow-hidden", children: [
|
|
14
|
+
acentos && /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 overflow-hidden pointer-events-none", "aria-hidden": true, children: [
|
|
15
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -top-32 -right-32 w-96 h-96 bg-proef-turquoise/5 rotate-45" }),
|
|
16
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -bottom-32 -left-32 w-96 h-96 bg-proef-blue/10 rotate-45" })
|
|
17
|
+
] }),
|
|
18
|
+
topoDireita && /* @__PURE__ */ jsx("div", { className: "absolute top-6 right-6 z-20", children: topoDireita }),
|
|
19
|
+
/* @__PURE__ */ jsxs("div", { className: "w-full max-w-sm text-center relative z-10", children: [
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: "mb-10 flex items-center justify-center", children: logo ?? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
21
|
+
/* @__PURE__ */ jsx("span", { className: "text-5xl font-black text-white tracking-tighter", children: "proef" }),
|
|
22
|
+
/* @__PURE__ */ jsx("div", { className: "w-2.5 h-2.5 rounded-full bg-proef-turquoise mt-4 animate-pulse" })
|
|
23
|
+
] }) }),
|
|
24
|
+
appTitle && /* @__PURE__ */ jsx("h1", { className: "text-lg font-black uppercase tracking-[0.3em] text-white mb-1", children: appTitle }),
|
|
25
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "text-white/50 text-sm mb-10", children: subtitle }),
|
|
26
|
+
/* @__PURE__ */ jsx(
|
|
27
|
+
"button",
|
|
28
|
+
{
|
|
29
|
+
onClick: onSignIn,
|
|
30
|
+
className: "appearance-none cursor-pointer w-full bg-proef-turquoise text-proef-navy hover:bg-white transition-colors rounded-lg px-6 py-3.5 text-xs font-black uppercase tracking-widest",
|
|
31
|
+
children: signInLabel
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
error && /* @__PURE__ */ jsx("p", { className: "text-red-300 text-xs mt-4", children: error }),
|
|
35
|
+
companyLabel && /* @__PURE__ */ jsxs("p", { className: "text-white/25 text-xs mt-12", children: [
|
|
36
|
+
companyLabel,
|
|
37
|
+
" — ",
|
|
38
|
+
(/* @__PURE__ */ new Date()).getFullYear()
|
|
39
|
+
] })
|
|
40
|
+
] })
|
|
41
|
+
] });
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
LoginScreen as default
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=LoginScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginScreen.js","sources":["../../../../../src/legacy/pages/Login/LoginScreen.tsx"],"sourcesContent":["import React from 'react'\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport interface LoginScreenProps {\r\n /** Título da app (ex: nome do portal). */\r\n appTitle?: string\r\n /** Subtítulo/descrição curta. */\r\n subtitle?: string\r\n /** Ação do botão de entrar (ex: MSAL loginRedirect). */\r\n onSignIn: () => void\r\n signInLabel?: string\r\n /** Rodapé — empresa. O ano é acrescentado automaticamente. */\r\n companyLabel?: string\r\n /** Logo custom. Sem isto mostra a marca \"proef\" + ponto turquesa. */\r\n logo?: React.ReactNode\r\n /** Mensagem de erro opcional (ex: falha de login). */\r\n error?: string\r\n /**\r\n * Canto superior direito — tipicamente o seletor de idioma.\r\n *\r\n * Existe porque quem ainda não entrou pode não perceber a língua em que o\r\n * ecrã está, e é precisamente aí que mais precisa de a poder trocar.\r\n */\r\n topoDireita?: React.ReactNode\r\n /**\r\n * Dois quadrados rodados em marca-d'água nos cantos opostos.\r\n *\r\n * A maioria dos portais tinha-os no seu ecrã de login próprio, e sem isto a\r\n * passagem para o componente partilhado tirava-lhos. Default `false` para\r\n * não mexer em quem já usa o componente.\r\n *\r\n * Herdam `--color-proef-turquoise` e `--color-proef-blue`, por isso um\r\n * portal que redefina essas variáveis vê os acentos acompanharem.\r\n */\r\n acentos?: boolean\r\n}\r\n\r\n/**\r\n * Ecrã de login partilhado (design system proef): fundo navy, marca \"proef\",\r\n * título/subtítulo da app e botão de entrar. Agnóstico ao provider — a app passa\r\n * `onSignIn` (MSAL/Keycloak/…). Requer o CSS do common-ui.\r\n * @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy.\r\n */\r\nexport default function LoginScreen({\r\n appTitle,\r\n subtitle,\r\n onSignIn,\r\n signInLabel = 'Sign in',\r\n companyLabel,\r\n logo,\r\n error,\r\n topoDireita,\r\n acentos = false,\r\n}: LoginScreenProps) {\r\n return (\r\n <div className=\"min-h-screen bg-proef-navy flex flex-col items-center justify-center p-8 relative overflow-hidden\">\r\n {acentos && (\r\n <div className=\"absolute inset-0 overflow-hidden pointer-events-none\" aria-hidden>\r\n <div className=\"absolute -top-32 -right-32 w-96 h-96 bg-proef-turquoise/5 rotate-45\" />\r\n <div className=\"absolute -bottom-32 -left-32 w-96 h-96 bg-proef-blue/10 rotate-45\" />\r\n </div>\r\n )}\r\n {topoDireita && <div className=\"absolute top-6 right-6 z-20\">{topoDireita}</div>}\r\n <div className=\"w-full max-w-sm text-center relative z-10\">\r\n <div className=\"mb-10 flex items-center justify-center\">\r\n {logo ?? (\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-5xl font-black text-white tracking-tighter\">proef</span>\r\n <div className=\"w-2.5 h-2.5 rounded-full bg-proef-turquoise mt-4 animate-pulse\" />\r\n </div>\r\n )}\r\n </div>\r\n\r\n {appTitle && (\r\n <h1 className=\"text-lg font-black uppercase tracking-[0.3em] text-white mb-1\">{appTitle}</h1>\r\n )}\r\n {subtitle && <p className=\"text-white/50 text-sm mb-10\">{subtitle}</p>}\r\n\r\n <button\r\n onClick={onSignIn}\r\n className=\"appearance-none cursor-pointer w-full bg-proef-turquoise text-proef-navy hover:bg-white transition-colors rounded-lg px-6 py-3.5 text-xs font-black uppercase tracking-widest\"\r\n >\r\n {signInLabel}\r\n </button>\r\n\r\n {error && <p className=\"text-red-300 text-xs mt-4\">{error}</p>}\r\n\r\n {companyLabel && (\r\n <p className=\"text-white/25 text-xs mt-12\">\r\n {companyLabel} — {new Date().getFullYear()}\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":[],"mappings":";AA2CA,SAAwB,YAAY;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,GAAqB;AACnB,SACE,qBAAC,OAAA,EAAI,WAAU,qGACZ,UAAA;AAAA,IAAA,WACC,qBAAC,OAAA,EAAI,WAAU,wDAAuD,eAAW,MAC/E,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,sEAAA,CAAsE;AAAA,MACrF,oBAAC,OAAA,EAAI,WAAU,oEAAA,CAAoE;AAAA,IAAA,GACrF;AAAA,IAED,eAAe,oBAAC,OAAA,EAAI,WAAU,+BAA+B,UAAA,aAAY;AAAA,IAC1E,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,MAAA,oBAAC,SAAI,WAAU,0CACZ,kBACC,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAU,mDAAkD,UAAA,SAAK;AAAA,QACvE,oBAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,MAAA,EAAA,CAClF,EAAA,CAEJ;AAAA,MAEC,YACC,oBAAC,MAAA,EAAG,WAAU,iEAAiE,UAAA,UAAS;AAAA,MAEzF,YAAY,oBAAC,KAAA,EAAE,WAAU,+BAA+B,UAAA,UAAS;AAAA,MAElE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAU;AAAA,UAET,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGF,SAAS,oBAAC,KAAA,EAAE,WAAU,6BAA6B,UAAA,OAAM;AAAA,MAEzD,gBACC,qBAAC,KAAA,EAAE,WAAU,+BACV,UAAA;AAAA,QAAA;AAAA,QAAa;AAAA,SAAI,oBAAI,KAAA,GAAO,YAAA;AAAA,MAAY,EAAA,CAC3C;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.cui-not-found {
|
|
2
|
+
background: url("../../../assets/imagem-6ee08a37d9.png") no-repeat fixed;
|
|
3
|
+
background-size: cover;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
align-items: center;
|
|
8
|
+
color: white;
|
|
9
|
+
position: fixed;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
bottom: 0;
|
|
13
|
+
right: 0;
|
|
14
|
+
z-index: 9999999;
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
text-align: center;
|
|
18
|
+
}
|
|
19
|
+
.cui-not-found .cui-not-found-buttons {
|
|
20
|
+
margin: 2rem 0;
|
|
21
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import ActionButton from "../../components/atoms/Button/variants/ActionButton.js";
|
|
3
|
+
import './NotFound.css';/* empty css */
|
|
4
|
+
import { faHome } from "@fortawesome/free-solid-svg-icons";
|
|
5
|
+
import { ActionButtonThemeStyled } from "../../styles/themes/ButtonThemes.js";
|
|
6
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
7
|
+
const NotFound = ({ handleHome }) => {
|
|
8
|
+
return /* @__PURE__ */ jsxs("div", { className: "cui-not-found", children: [
|
|
9
|
+
/* @__PURE__ */ jsx("h2", { children: "O que procuras não existe." }),
|
|
10
|
+
/* @__PURE__ */ jsx("div", { className: "cui-not-found-buttons", children: /* @__PURE__ */ jsx(
|
|
11
|
+
ActionButton,
|
|
12
|
+
{
|
|
13
|
+
icon: /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faHome }),
|
|
14
|
+
onClick: handleHome,
|
|
15
|
+
title: "Voltar à Página Principal",
|
|
16
|
+
theme: ActionButtonThemeStyled
|
|
17
|
+
}
|
|
18
|
+
) })
|
|
19
|
+
] });
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
NotFound as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=NotFound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotFound.js","sources":["../../../../../src/legacy/pages/NotFound/NotFound.tsx"],"sourcesContent":["import React from 'react'\r\nimport ActionButton from '../../components/atoms/Button/variants/ActionButton'\r\n\r\nimport './NotFound.scss'\r\nimport { faHome } from '@fortawesome/free-solid-svg-icons'\r\nimport { ActionButtonThemeStyled } from '../../styles/themes/ButtonThemes'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\ninterface NotFoundProps {\r\n handleHome: () => void\r\n}\r\n\r\n/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nconst NotFound: React.FC<NotFoundProps> = ({ handleHome }) => {\r\n return (\r\n <div className=\"cui-not-found\">\r\n <h2>O que procuras não existe.</h2>\r\n <div className=\"cui-not-found-buttons\">\r\n <ActionButton\r\n icon={<FontAwesomeIcon icon={faHome} />}\r\n onClick={handleHome}\r\n title=\"Voltar à Página Principal\"\r\n theme={ActionButtonThemeStyled}\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotFound\r\n"],"names":[],"mappings":";;;;;;AAaA,MAAM,WAAoC,CAAC,EAAE,iBAAiB;AAC5D,SACE,qBAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,oBAAC,QAAG,UAAA,6BAAA,CAA0B;AAAA,IAC9B,oBAAC,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,oBAAC,iBAAA,EAAgB,MAAM,OAAA,CAAQ;AAAA,QACrC,SAAS;AAAA,QACT,OAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IAAA,EACT,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FontWeight } from "../../constants/FontWeight.js";
|
|
2
|
+
const ActionButtonThemeStyled = {
|
|
3
|
+
backgroundColor: "#F8F8F8",
|
|
4
|
+
fontColor: "#010060",
|
|
5
|
+
iconColor: "#010060",
|
|
6
|
+
size: "default",
|
|
7
|
+
fontWeight: FontWeight.MEDIUM
|
|
8
|
+
};
|
|
9
|
+
const IconButtonThemeStyled = {
|
|
10
|
+
backgroundColor: "#F8F8F8",
|
|
11
|
+
iconColor: "#010060",
|
|
12
|
+
size: "default"
|
|
13
|
+
};
|
|
14
|
+
const IconTextDarkThemeStyled = {
|
|
15
|
+
color: "#f8f8f8",
|
|
16
|
+
fontWeight: FontWeight.BOLD
|
|
17
|
+
};
|
|
18
|
+
const IconTextLightThemeStyled = {
|
|
19
|
+
color: "#010060",
|
|
20
|
+
fontWeight: FontWeight.BOLD
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
ActionButtonThemeStyled,
|
|
24
|
+
IconButtonThemeStyled,
|
|
25
|
+
IconTextDarkThemeStyled,
|
|
26
|
+
IconTextLightThemeStyled
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=ButtonThemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonThemes.js","sources":["../../../../../src/legacy/styles/themes/ButtonThemes.tsx"],"sourcesContent":["import { FontWeight } from '../../constants/FontWeight'\r\nimport { IconTextTheme } from '../../exports/types'\r\nimport {\r\n ActionButtonTheme,\r\n IconButtonTheme,\r\n} from '../../types/themes/ButtonThemes'\r\n\r\nexport const ActionButtonThemeStyled: ActionButtonTheme = {\r\n backgroundColor: '#F8F8F8',\r\n fontColor: '#010060',\r\n iconColor: '#010060',\r\n size: 'default',\r\n fontWeight: FontWeight.MEDIUM,\r\n}\r\n\r\nexport const IconButtonThemeStyled: IconButtonTheme = {\r\n backgroundColor: '#F8F8F8',\r\n iconColor: '#010060',\r\n size: 'default',\r\n}\r\n\r\nexport const IconTextDarkThemeStyled: IconTextTheme = {\r\n color: '#f8f8f8',\r\n fontWeight: FontWeight.BOLD,\r\n}\r\n\r\nexport const IconTextLightThemeStyled: IconTextTheme = {\r\n color: '#010060',\r\n fontWeight: FontWeight.BOLD,\r\n}\r\n"],"names":[],"mappings":";AAOO,MAAM,0BAA6C;AAAA,EACxD,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY,WAAW;AACzB;AAEO,MAAM,wBAAyC;AAAA,EACpD,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,MAAM;AACR;AAEO,MAAM,0BAAyC;AAAA,EACpD,OAAO;AAAA,EACP,YAAY,WAAW;AACzB;AAEO,MAAM,2BAA0C;AAAA,EACrD,OAAO;AAAA,EACP,YAAY,WAAW;AACzB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/legacy/styles/utils/utils.ts"],"sourcesContent":["/** @deprecated Legacy — não usar em código novo. Ver Storybook › Legacy. */\r\nexport const getCSSVariable = (variable: string) => {\r\n return getComputedStyle(document.documentElement)\r\n .getPropertyValue(variable)\r\n .trim()\r\n}\r\n"],"names":[],"mappings":"AACO,MAAM,iBAAiB,CAAC,aAAqB;AAClD,SAAO,iBAAiB,SAAS,eAAe,EAC7C,iBAAiB,QAAQ,EACzB,KAAA;AACL;"}
|