@proef/common-ui 0.0.0-stage → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/assets/imagem-6ee08a37d9.png +0 -0
- package/dist/esm/assets/imagem-6fcae1b87b.png +0 -0
- package/dist/esm/index.js +301 -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 +214 -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 +178 -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/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/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 +39 -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 +60 -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 +61 -0
- package/dist/types/v1/index.d.ts +81 -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/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/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 +36 -0
- package/dist/types/v1/primitives/navigation/Tabs/Tabs.d.ts +58 -0
- package/package.json +120 -6
- package/README.md +0 -3
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type TableLabels } from './labels';
|
|
3
|
+
export interface TableColumn<T> {
|
|
4
|
+
/** Identifica a coluna (ordenação, filtros, agrupamento, ordem). Única na tabela. */
|
|
5
|
+
key: string;
|
|
6
|
+
/** Título no cabeçalho. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** O que a célula mostra. */
|
|
9
|
+
render: (row: T) => React.ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* O valor por trás da célula: é por ele que se ordena, filtra e agrupa. Sem
|
|
12
|
+
* ele a coluna não ordena, não filtra e não agrupa.
|
|
13
|
+
*/
|
|
14
|
+
value?: (row: T) => string | number | null | undefined;
|
|
15
|
+
/** Por omissão `true` (quando há `value`). */
|
|
16
|
+
sortable?: boolean;
|
|
17
|
+
/** Por omissão `true` (quando há `value`). */
|
|
18
|
+
filterable?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Como se filtra esta coluna:
|
|
21
|
+
* - `text` (omissão): lista de valores únicos com vistos
|
|
22
|
+
* - `date`: intervalo De/Até
|
|
23
|
+
* - `number`: intervalo Mín/Máx, ou a lista de valores
|
|
24
|
+
*
|
|
25
|
+
* Numa coluna de dinheiro ou de contagem, a lista de valores é inútil: são
|
|
26
|
+
* centenas de números distintos, e ninguém procura "10.04".
|
|
27
|
+
*/
|
|
28
|
+
filterType?: 'text' | 'date' | 'number';
|
|
29
|
+
/** Agrupar é opt-in: só com `true`. Evita agrupar por valores contínuos (datas, decimais, €). */
|
|
30
|
+
groupable?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Filtros extra no cabeçalho desta coluna, cada um com o seu funil.
|
|
33
|
+
*
|
|
34
|
+
* Para uma coluna que mostra mais do que um dado — um "Início e Fim" mostra
|
|
35
|
+
* as duas pontas de um período, e um só filtro dava a lista dos PARES
|
|
36
|
+
* ("2026-07-03 → 2026-09-12"), que não é por onde alguém procura.
|
|
37
|
+
*
|
|
38
|
+
* `filterType: 'date'` dá-lhe o intervalo De/Até em vez da lista de valores.
|
|
39
|
+
*/
|
|
40
|
+
extraFilters?: {
|
|
41
|
+
key: string;
|
|
42
|
+
label: string;
|
|
43
|
+
value: (row: T) => string | number | null | undefined;
|
|
44
|
+
filterType?: 'text' | 'date' | 'number';
|
|
45
|
+
}[];
|
|
46
|
+
headerClassName?: string;
|
|
47
|
+
cellClassName?: string;
|
|
48
|
+
/** Conteúdo extra por baixo do título da coluna (ex: um total). Recebe as linhas já filtradas. */
|
|
49
|
+
headerExtra?: (rows: T[]) => React.ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Ordenação e filtros do cabeçalho vivem dentro da tabela. Quem está por fora
|
|
53
|
+
* (ex: exportar para Excel) precisa deles para não exportar linhas que a pessoa
|
|
54
|
+
* filtrou fora: daí este handle, preenchido em `viewRef`.
|
|
55
|
+
*/
|
|
56
|
+
export interface TableView<T> {
|
|
57
|
+
/** Aplica a ordenação e os filtros de coluna a qualquer lista (ex: o conjunto completo). */
|
|
58
|
+
apply: (rows: T[]) => T[];
|
|
59
|
+
/** O mesmo, com a ordenação e os filtros de `state` em vez dos do cabeçalho. */
|
|
60
|
+
applyWith: (rows: T[], state: TableState) => T[];
|
|
61
|
+
/** Linhas à vista, já ordenadas e filtradas (todas as páginas em modo cliente). */
|
|
62
|
+
rows: T[];
|
|
63
|
+
hasFilters: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Há filtros, ordenação ou agrupamento ativos no cabeçalho, todos do lado do
|
|
66
|
+
* cliente. Quem alimenta a tabela usa isto para não largar o conjunto
|
|
67
|
+
* completo: sem ele, filtrar só olha para a página.
|
|
68
|
+
*/
|
|
69
|
+
needsAllData: boolean;
|
|
70
|
+
/** Estado guardável da vista: filtros, ordenação e agrupamento. */
|
|
71
|
+
getState: () => TableState;
|
|
72
|
+
/** Repõe um estado guardado (ex: ao aplicar uma vista que a pessoa guardou). */
|
|
73
|
+
restore: (state: TableState | undefined) => void;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* O que uma vista guardada leva da tabela. Conjuntos viram arrays para se
|
|
77
|
+
* poder guardar em JSON.
|
|
78
|
+
*/
|
|
79
|
+
export interface TableState {
|
|
80
|
+
columnFilters?: Record<string, string[]>;
|
|
81
|
+
dateFilters?: Record<string, {
|
|
82
|
+
from?: string;
|
|
83
|
+
to?: string;
|
|
84
|
+
}>;
|
|
85
|
+
/** Intervalos Mín/Máx. */
|
|
86
|
+
numFilters?: Record<string, {
|
|
87
|
+
min?: string;
|
|
88
|
+
max?: string;
|
|
89
|
+
}>;
|
|
90
|
+
sortCol?: string | null;
|
|
91
|
+
sortDir?: 'asc' | 'desc';
|
|
92
|
+
/** Colunas por que se agrupa, pela ordem dos níveis. */
|
|
93
|
+
groupBy?: string[];
|
|
94
|
+
}
|
|
95
|
+
export interface TableProps<T> {
|
|
96
|
+
columns: TableColumn<T>[];
|
|
97
|
+
/** As linhas a mostrar (a página atual, quando quem alimenta a tabela pagina). */
|
|
98
|
+
data: T[];
|
|
99
|
+
/**
|
|
100
|
+
* O conjunto completo, para ordenar, filtrar e agrupar do lado do cliente.
|
|
101
|
+
* Pode chegar mais tarde: a tabela pede-o com `onAllDataNeeded`.
|
|
102
|
+
*/
|
|
103
|
+
allData?: T[];
|
|
104
|
+
/** Linhas por página quando a tabela se pagina a si mesma (modo cliente). */
|
|
105
|
+
pageSize?: number;
|
|
106
|
+
rowKey: (row: T) => string;
|
|
107
|
+
onRowClick?: (row: T) => void;
|
|
108
|
+
/** Duplo clique na linha: atalho para o detalhe, sem roubar o clique simples (seleção, edição). */
|
|
109
|
+
onRowDoubleClick?: (row: T) => void;
|
|
110
|
+
loading?: boolean;
|
|
111
|
+
/** O conjunto completo (`allData`) está a carregar: ordenar, filtrar e agrupar esperam por ele. */
|
|
112
|
+
allDataLoading?: boolean;
|
|
113
|
+
loadingLabel?: string;
|
|
114
|
+
/** Sem linhas. Por omissão `labels.empty`. */
|
|
115
|
+
emptyLabel?: string;
|
|
116
|
+
emptySubLabel?: string;
|
|
117
|
+
/** Guarda os filtros na sessão do browser (`sessionStorage`) com esta chave, e repõe-nos ao voltar. */
|
|
118
|
+
storageKey?: string;
|
|
119
|
+
/** Caixa de seleção em cada linha. */
|
|
120
|
+
selectable?: boolean;
|
|
121
|
+
onSelectionChange?: (selectedKeys: Set<string>) => void;
|
|
122
|
+
/** Mudar este número limpa a seleção. */
|
|
123
|
+
clearSelectionTrigger?: number;
|
|
124
|
+
/** Chamado quando a tabela precisa do conjunto completo (ordenar, filtrar ou agrupar sem `allData`). */
|
|
125
|
+
onAllDataNeeded?: () => void;
|
|
126
|
+
/** Modo cliente sempre (paginação, ordenação e filtros sobre `allData`), mesmo sem interação. */
|
|
127
|
+
alwaysClient?: boolean;
|
|
128
|
+
/** Ordenação inicial: a coluna. */
|
|
129
|
+
defaultSortColumn?: string;
|
|
130
|
+
defaultSortDirection?: 'asc' | 'desc';
|
|
131
|
+
/** Recebe o estado da vista (ordenação e filtros) para uso por fora. Ver `TableView`. */
|
|
132
|
+
viewRef?: React.MutableRefObject<TableView<T> | null>;
|
|
133
|
+
/**
|
|
134
|
+
* A tabela ocupa a ALTURA TODA que o pai lhe der, em vez de encolher com o
|
|
135
|
+
* número de linhas. O cabeçalho fica fixo e só as linhas rolam.
|
|
136
|
+
*
|
|
137
|
+
* Sem isto, filtrar até sobrar uma linha encolhia a tabela, com meio ecrã em
|
|
138
|
+
* branco por baixo e o rodapé a meio da página.
|
|
139
|
+
*
|
|
140
|
+
* Precisa de um pai com altura DEFINIDA (ex: `flex-1 min-h-0` dentro de uma
|
|
141
|
+
* coluna de altura fixa). Para uma tabela pequena dentro de uma caixa, que
|
|
142
|
+
* deve encolher com o conteúdo, deixar desligado.
|
|
143
|
+
*/
|
|
144
|
+
fillHeight?: boolean;
|
|
145
|
+
/** Sem `fillHeight`: altura máxima da caixa (ex: `400` ou `'60vh'`), a partir da qual as linhas rolam. */
|
|
146
|
+
maxHeight?: number | string;
|
|
147
|
+
/**
|
|
148
|
+
* Quantas linhas a tabela está MESMO a mostrar, e se os filtros do cabeçalho
|
|
149
|
+
* contam para isso.
|
|
150
|
+
*
|
|
151
|
+
* Uma contagem por fora (ex: o total que o servidor devolveu) não sabe dos
|
|
152
|
+
* filtros de coluna, que são cá de dentro: filtrar até sobrar uma linha
|
|
153
|
+
* deixava "14 223 resultados" por cima de uma lista de uma.
|
|
154
|
+
*
|
|
155
|
+
* `filtered: false` quer dizer "não contes comigo": não há filtros de coluna,
|
|
156
|
+
* ou o conjunto completo ainda não chegou.
|
|
157
|
+
*
|
|
158
|
+
* `selfPaginated`: com o conjunto completo, a tabela ignora a página que lhe
|
|
159
|
+
* dão e pagina-se a si mesma. Quem a alimenta deve então esconder a SUA
|
|
160
|
+
* paginação, que deixa de ter efeito.
|
|
161
|
+
*/
|
|
162
|
+
onVisibleChange?: (v: {
|
|
163
|
+
visible: number;
|
|
164
|
+
filtered: boolean;
|
|
165
|
+
selfPaginated: boolean;
|
|
166
|
+
}) => void;
|
|
167
|
+
/**
|
|
168
|
+
* Quantas colunas do início ficam congeladas no scroll horizontal. A caixa de
|
|
169
|
+
* seleção, quando existe, vai junto.
|
|
170
|
+
*/
|
|
171
|
+
frozenColumns?: number;
|
|
172
|
+
/**
|
|
173
|
+
* Arrastar os cabeçalhos para mudar a ordem das colunas. Opt-in: a tabela só
|
|
174
|
+
* avisa que coluna foi largada antes de qual. A ordem é de quem a alimenta,
|
|
175
|
+
* que a guarda e muda `columns`.
|
|
176
|
+
*
|
|
177
|
+
* `beforeKey: null` = largada depois da última. Esc durante o arrasto desfaz.
|
|
178
|
+
*/
|
|
179
|
+
onMoveColumn?: (key: string, beforeKey: string | null) => void;
|
|
180
|
+
/**
|
|
181
|
+
* Com `fillHeight`: cada coluna fica com a largura do valor MAIS LARGO de
|
|
182
|
+
* todo o `allData` (ou do título, se for maior), e não com a da página à
|
|
183
|
+
* vista. Mudar de página ou filtrar não mexe nas larguras.
|
|
184
|
+
*
|
|
185
|
+
* Para conjuntos que já vêm inteiros: mede um exemplar de cada valor
|
|
186
|
+
* distinto de cada coluna.
|
|
187
|
+
*/
|
|
188
|
+
measureAllData?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Com `fillHeight`: barras de scroll desenhadas por cima das linhas, em vez
|
|
191
|
+
* das do browser. A vertical do browser obrigava o cabeçalho a reservar-lhe
|
|
192
|
+
* espaço; a horizontal punha uma faixa grossa por baixo das linhas.
|
|
193
|
+
*/
|
|
194
|
+
overlayScrollbars?: boolean;
|
|
195
|
+
/** Classes da faixa dos títulos (com `onMoveColumn`). Por omissão `bg-slate-50`. */
|
|
196
|
+
headerRowClassName?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Com `overlayScrollbars`: a barra horizontal centrada na aresta de baixo
|
|
199
|
+
* (meio por cima do que vem a seguir). Desligar quando a tabela vive numa
|
|
200
|
+
* caixa com `overflow-hidden`, senão a barra aparece cortada ao meio.
|
|
201
|
+
*/
|
|
202
|
+
scrollbarOnEdge?: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Com `overlayScrollbars`: a barra horizontal numa faixa própria POR BAIXO
|
|
205
|
+
* das linhas (12px), em vez de por cima da última linha à vista.
|
|
206
|
+
*/
|
|
207
|
+
horizontalScrollbarBelow?: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* A carregar: linhas-esqueleto nas colunas verdadeiras em vez do spinner ao
|
|
210
|
+
* centro. O `loadingLabel` fica só para leitores de ecrã.
|
|
211
|
+
*/
|
|
212
|
+
skeleton?: boolean;
|
|
213
|
+
/**
|
|
214
|
+
* Com mais colunas à direita do que cabem, a aresta direita esbate-se em vez
|
|
215
|
+
* de cortar as colunas a seco. Some ao chegar à última coluna.
|
|
216
|
+
*/
|
|
217
|
+
fadeRight?: boolean;
|
|
218
|
+
/** Classes extra por linha (ex: uma cor por grupo de linhas). */
|
|
219
|
+
rowClassName?: (row: T) => string | undefined;
|
|
220
|
+
/** Textos da tabela e dos filtros. Por omissão em português. */
|
|
221
|
+
labels?: Partial<TableLabels>;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* A barra de paginação em cima da tabela (a do `PaginatedTable`), em vez da
|
|
225
|
+
* troca de páginas no fundo. Interna: a app escolhe o `PaginatedTable`, não
|
|
226
|
+
* liga isto na `Table`.
|
|
227
|
+
*/
|
|
228
|
+
export interface PaginacaoNoTopo {
|
|
229
|
+
/** Total de linhas no servidor, quando é ele que pagina. */
|
|
230
|
+
total?: number;
|
|
231
|
+
/** Página atual do servidor (a contar de 1). Com `onPageChange`, é o servidor que pagina. */
|
|
232
|
+
page?: number;
|
|
233
|
+
onPageChange?: (page: number) => void;
|
|
234
|
+
/** Tamanhos de página à escolha. Sem isto não há escolha. */
|
|
235
|
+
pageSizeOptions?: number[];
|
|
236
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
237
|
+
}
|
|
238
|
+
/** A tabela, com tudo. A `Table` e o `PaginatedTable` são predefinições dela. */
|
|
239
|
+
export declare function TableBase<T>({ paginacaoNoTopo, columns: colunasBase, data, allData, pageSize, rowKey, onRowClick, onRowDoubleClick, loading: isLoading, allDataLoading: isAllDataLoading, loadingLabel, emptyLabel, emptySubLabel, storageKey, selectable, onSelectionChange, clearSelectionTrigger, onAllDataNeeded: onDataNeeded, alwaysClient, defaultSortColumn: defaultSortCol, defaultSortDirection: defaultSortDir, viewRef, fillHeight: preencheAltura, onVisibleChange: onVista, frozenColumns: colunasFixas, onMoveColumn: onMoverColuna, measureAllData: larguraPeloConjunto, overlayScrollbars: barraSobreposta, headerRowClassName: classeCabecalho, scrollbarOnEdge: barraNaBorda, horizontalScrollbarBelow: barraHorizontalFora, skeleton: esqueletoAoCarregar, fadeRight: esbaterDireita, rowClassName, maxHeight, labels, }: TableProps<T> & {
|
|
240
|
+
paginacaoNoTopo?: PaginacaoNoTopo;
|
|
241
|
+
}): React.JSX.Element;
|
|
242
|
+
/**
|
|
243
|
+
* Tabela com ordenação, filtros por coluna, agrupamento, seleção e colunas que
|
|
244
|
+
* se arrastam para mudar a ordem. Com o conjunto completo (`allData`) pagina-se
|
|
245
|
+
* a si mesma, com a troca de páginas no fundo.
|
|
246
|
+
*
|
|
247
|
+
* Para a paginação EM CIMA, com a contagem e o tamanho de página (uma lista de
|
|
248
|
+
* página inteira), ver o [PaginatedTable](?path=/docs/v1-components-tables-paginatedtable--docs).
|
|
249
|
+
*/
|
|
250
|
+
export default function Table<T>(props: TableProps<T>): React.JSX.Element;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** Os textos da tabela e dos filtros. Por omissão em português; a app troca os que quiser (ex: noutra língua). */
|
|
2
|
+
export interface TableLabels {
|
|
3
|
+
/** Sem linhas para mostrar (quando não há `emptyLabel`). */
|
|
4
|
+
empty: string;
|
|
5
|
+
page: string;
|
|
6
|
+
/** Nome acessível da navegação entre páginas. */
|
|
7
|
+
pagination: string;
|
|
8
|
+
/** O nome das linhas na contagem (`PaginatedTable`), ex: "linhas", "ordens". */
|
|
9
|
+
rowsNoun: (count: number) => string;
|
|
10
|
+
/** Na contagem filtrada (`PaginatedTable`): "1 de 120 ordens". */
|
|
11
|
+
of: string;
|
|
12
|
+
/** Cada opção do tamanho de página (`PaginatedTable`). */
|
|
13
|
+
perPage: (size: number) => string;
|
|
14
|
+
/** Nome acessível da escolha do tamanho de página. */
|
|
15
|
+
pageSize: string;
|
|
16
|
+
prev: string;
|
|
17
|
+
next: string;
|
|
18
|
+
apply: string;
|
|
19
|
+
cancel: string;
|
|
20
|
+
search: string;
|
|
21
|
+
noResults: string;
|
|
22
|
+
clearFilter: string;
|
|
23
|
+
clearAll: string;
|
|
24
|
+
clearGroups: string;
|
|
25
|
+
/** O "+N" dos chips que não cabem na barra (`PaginatedTable`), para leitores de ecrã. */
|
|
26
|
+
moreChips: (count: number) => string;
|
|
27
|
+
/** O × de um chip de filtro ou agrupamento. */
|
|
28
|
+
removeChip: (chip: string) => string;
|
|
29
|
+
/** O rótulo do chip de um agrupamento, antes do nome da coluna. */
|
|
30
|
+
groupedBy: string;
|
|
31
|
+
selectAll: string;
|
|
32
|
+
selectAllFound: (count: number) => string;
|
|
33
|
+
/** Num chip de filtro com mais de dois valores escolhidos. */
|
|
34
|
+
selectedCount: (count: number) => string;
|
|
35
|
+
loadingOptions: string;
|
|
36
|
+
filterBy: (column: string) => string;
|
|
37
|
+
groupBy: (column: string) => string;
|
|
38
|
+
ungroupBy: (column: string) => string;
|
|
39
|
+
sortAsc: string;
|
|
40
|
+
sortDesc: string;
|
|
41
|
+
sortDateAsc: string;
|
|
42
|
+
sortDateDesc: string;
|
|
43
|
+
sortNumAsc: string;
|
|
44
|
+
sortNumDesc: string;
|
|
45
|
+
dateFrom: string;
|
|
46
|
+
dateTo: string;
|
|
47
|
+
min: string;
|
|
48
|
+
max: string;
|
|
49
|
+
/** Numa coluna de números: passar do intervalo para a lista de valores. */
|
|
50
|
+
showList: string;
|
|
51
|
+
/** Numa coluna de números: passar da lista de valores para o intervalo. */
|
|
52
|
+
showRange: string;
|
|
53
|
+
}
|
|
54
|
+
export declare const DEFAULT_TABLE_LABELS: TableLabels;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Conjunto de ícones do V1: traço de 1,7 a 1,9 em grelha de 24, cor do texto
|
|
4
|
+
* (`currentColor`), sem preenchimento. Decorativos por omissão (`aria-hidden`):
|
|
5
|
+
* quem os usa dá o nome acessível ao botão ou etiqueta à volta.
|
|
6
|
+
*/
|
|
7
|
+
export interface IconProps {
|
|
8
|
+
/** Lado em px. */
|
|
9
|
+
size?: number;
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Espessura do traço. Por omissão 1,8; mais grosso em ícones muito pequenos (ex: o visto de uma caixa). */
|
|
12
|
+
strokeWidth?: number;
|
|
13
|
+
}
|
|
14
|
+
/** Lido de um QR code. */
|
|
15
|
+
export declare function QrCodeIcon(props: IconProps): React.JSX.Element;
|
|
16
|
+
/** Identificado automaticamente (IA). */
|
|
17
|
+
export declare function SparklesIcon(props: IconProps): React.JSX.Element;
|
|
18
|
+
/** Pré-preenchido a partir de outro registo (ex: linha de um extrato). */
|
|
19
|
+
export declare function PrefilledIcon(props: IconProps): React.JSX.Element;
|
|
20
|
+
/** Bloqueado: o valor não se pode alterar. */
|
|
21
|
+
export declare function LockIcon(props: IconProps): React.JSX.Element;
|
|
22
|
+
/** Mais informação. */
|
|
23
|
+
export declare function InfoIcon(props: IconProps): React.JSX.Element;
|
|
24
|
+
export declare function SearchIcon(props: IconProps): React.JSX.Element;
|
|
25
|
+
export declare function CheckIcon(props: IconProps): React.JSX.Element;
|
|
26
|
+
export declare function ChevronDownIcon(props: IconProps): React.JSX.Element;
|
|
27
|
+
export declare function ChevronUpIcon(props: IconProps): React.JSX.Element;
|
|
28
|
+
export declare function ChevronLeftIcon(props: IconProps): React.JSX.Element;
|
|
29
|
+
export declare function ChevronRightIcon(props: IconProps): React.JSX.Element;
|
|
30
|
+
/** Ordenável: ainda sem ordem escolhida. */
|
|
31
|
+
export declare function ChevronsUpDownIcon(props: IconProps): React.JSX.Element;
|
|
32
|
+
/** Filtro (funil). */
|
|
33
|
+
export declare function FilterIcon(props: IconProps): React.JSX.Element;
|
|
34
|
+
/** Fechar, remover (×). */
|
|
35
|
+
export declare function CloseIcon(props: IconProps): React.JSX.Element;
|
|
36
|
+
/** Abrir o menu (gaveta em ecrãs pequenos). */
|
|
37
|
+
export declare function MenuIcon(props: IconProps): React.JSX.Element;
|
|
38
|
+
/** Agrupar (camadas). */
|
|
39
|
+
export declare function LayersIcon(props: IconProps): React.JSX.Element;
|
|
40
|
+
/** Expandir o menu lateral recolhido. */
|
|
41
|
+
export declare function PanelOpenIcon(props: IconProps): React.JSX.Element;
|
|
42
|
+
/** Lista de valores. */
|
|
43
|
+
export declare function ListIcon(props: IconProps): React.JSX.Element;
|
|
44
|
+
/** Tema claro. */
|
|
45
|
+
export declare function SunIcon(props: IconProps): React.JSX.Element;
|
|
46
|
+
/** Tema escuro. */
|
|
47
|
+
export declare function MoonIcon(props: IconProps): React.JSX.Element;
|
|
48
|
+
/** Tema do sistema. */
|
|
49
|
+
export declare function MonitorIcon(props: IconProps): React.JSX.Element;
|
|
50
|
+
/** Idioma. */
|
|
51
|
+
export declare function GlobeIcon(props: IconProps): React.JSX.Element;
|
|
52
|
+
/** Terminar sessão. */
|
|
53
|
+
export declare function LogOutIcon(props: IconProps): React.JSX.Element;
|
|
54
|
+
/** Abre fora da aplicação (separador novo). */
|
|
55
|
+
export declare function ExternalLinkIcon(props: IconProps): React.JSX.Element;
|
|
56
|
+
/** Atenção (avisos, confirmações perigosas). */
|
|
57
|
+
export declare function WarningIcon(props: IconProps): React.JSX.Element;
|
|
58
|
+
/** Erro. */
|
|
59
|
+
export declare function ErrorIcon(props: IconProps): React.JSX.Element;
|
|
60
|
+
/** Intervalo (mínimo e máximo). */
|
|
61
|
+
export declare function SlidersIcon(props: IconProps): React.JSX.Element;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export { default as DocumentDropzone, accepts as documentDropzoneAccepts } from './components/documents/DocumentDropzone/DocumentDropzone';
|
|
2
|
+
export type { DocumentDropzoneProps, DocumentDropzoneLabels } from './components/documents/DocumentDropzone/DocumentDropzone';
|
|
3
|
+
export { default as PdfPreview } from './primitives/documents/PdfPreview/PdfPreview';
|
|
4
|
+
export type { PdfPreviewProps } from './primitives/documents/PdfPreview/PdfPreview';
|
|
5
|
+
export { configurePdfWorker } from './primitives/documents/PdfPreview/pdfjs';
|
|
6
|
+
export { scanQRCodes, configureQRScanner } from './capabilities/documents/QRScanning/scanQRCodes';
|
|
7
|
+
export type { ScanQRCodesOptions } from './capabilities/documents/QRScanning/scanQRCodes';
|
|
8
|
+
export { useTheme, applyTheme, themeBootScript, THEME_STORAGE_KEY } from './capabilities/theme/useTheme';
|
|
9
|
+
export type { Theme } from './capabilities/theme/useTheme';
|
|
10
|
+
export { useIsDark } from './capabilities/theme/useIsDark';
|
|
11
|
+
export { QrCodeIcon, SparklesIcon, PrefilledIcon, LockIcon, InfoIcon, SearchIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, CloseIcon, MenuIcon, PanelOpenIcon, SunIcon, MoonIcon, MonitorIcon, GlobeIcon, LogOutIcon, ExternalLinkIcon, WarningIcon, ErrorIcon, ChevronUpIcon, ChevronRightIcon, ChevronsUpDownIcon, FilterIcon, LayersIcon, ListIcon, SlidersIcon, } from './foundations/icons/icons';
|
|
12
|
+
export type { IconProps } from './foundations/icons/icons';
|
|
13
|
+
export { default as TextInput } from './primitives/forms/TextInput/TextInput';
|
|
14
|
+
export type { TextInputProps } from './primitives/forms/TextInput/TextInput';
|
|
15
|
+
export { default as SelectInput } from './primitives/forms/SelectInput/SelectInput';
|
|
16
|
+
export type { SelectInputProps } from './primitives/forms/SelectInput/SelectInput';
|
|
17
|
+
export { default as TextArea } from './primitives/forms/TextArea/TextArea';
|
|
18
|
+
export type { TextAreaProps } from './primitives/forms/TextArea/TextArea';
|
|
19
|
+
export { default as DateInput } from './primitives/forms/DateInput/DateInput';
|
|
20
|
+
export type { DateInputProps } from './primitives/forms/DateInput/DateInput';
|
|
21
|
+
export { default as SearchInput } from './primitives/forms/SearchInput/SearchInput';
|
|
22
|
+
export type { SearchInputProps } from './primitives/forms/SearchInput/SearchInput';
|
|
23
|
+
export { default as Checkbox } from './primitives/forms/Checkbox/Checkbox';
|
|
24
|
+
export type { CheckboxProps } from './primitives/forms/Checkbox/Checkbox';
|
|
25
|
+
export { default as LookupInput } from './primitives/forms/LookupInput/LookupInput';
|
|
26
|
+
export type { LookupInputProps } from './primitives/forms/LookupInput/LookupInput';
|
|
27
|
+
export { default as FormGrid, FormDivider } from './components/forms/FormGrid/FormGrid';
|
|
28
|
+
export type { FormGridProps } from './components/forms/FormGrid/FormGrid';
|
|
29
|
+
export { default as FormField, FieldMark } from './components/forms/FormField/FormField';
|
|
30
|
+
export type { FormFieldProps, FieldMarkProps } from './components/forms/FormField/FormField';
|
|
31
|
+
export { default as Button } from './primitives/buttons/Button/Button';
|
|
32
|
+
export type { ButtonProps } from './primitives/buttons/Button/Button';
|
|
33
|
+
export { default as Dialog, useDialogContainer } from './components/overlays/Dialog/Dialog';
|
|
34
|
+
export type { DialogProps } from './components/overlays/Dialog/Dialog';
|
|
35
|
+
export { default as ConfirmDialog, ConfirmProvider, useConfirm } from './components/overlays/ConfirmDialog/ConfirmDialog';
|
|
36
|
+
export type { ConfirmDialogProps, ConfirmOptions, ConfirmProviderProps } from './components/overlays/ConfirmDialog/ConfirmDialog';
|
|
37
|
+
export { default as Tooltip } from './components/overlays/Tooltip/Tooltip';
|
|
38
|
+
export type { TooltipProps } from './components/overlays/Tooltip/Tooltip';
|
|
39
|
+
export { default as TooltipLayer } from './components/overlays/Tooltip/TooltipLayer';
|
|
40
|
+
export { default as ToastProvider, useToast } from './components/feedback/Toast/Toast';
|
|
41
|
+
export type { ToastApi, ToastOptions, ToastProviderProps, ToastTone } from './components/feedback/Toast/Toast';
|
|
42
|
+
export { default as AppShell } from './components/layout/AppShell/AppShell';
|
|
43
|
+
export type { AppShellProps, AppShellLabels } from './components/layout/AppShell/AppShell';
|
|
44
|
+
export { default as Page } from './components/layout/Page/Page';
|
|
45
|
+
export type { PageProps } from './components/layout/Page/Page';
|
|
46
|
+
export { default as PageHeader } from './components/layout/PageHeader/PageHeader';
|
|
47
|
+
export type { PageHeaderProps, BreadcrumbItem } from './components/layout/PageHeader/PageHeader';
|
|
48
|
+
export { default as SideNav } from './components/layout/SideNav/SideNav';
|
|
49
|
+
export type { SideNavProps, SideNavItem, SideNavBadge, SideNavLabels, SideNavTheme } from './components/layout/SideNav/SideNav';
|
|
50
|
+
export { Badge } from './primitives/display/Badge/Badge';
|
|
51
|
+
export type { BadgeProps, BadgeTone } from './primitives/display/Badge/Badge';
|
|
52
|
+
export { Notice } from './primitives/display/Notice/Notice';
|
|
53
|
+
export type { NoticeProps, NoticeTone } from './primitives/display/Notice/Notice';
|
|
54
|
+
export { Avatar, initials } from './primitives/display/Avatar/Avatar';
|
|
55
|
+
export type { AvatarProps, AvatarSize } from './primitives/display/Avatar/Avatar';
|
|
56
|
+
export { Person } from './primitives/display/Person/Person';
|
|
57
|
+
export type { PersonProps } from './primitives/display/Person/Person';
|
|
58
|
+
export { Pagination } from './components/data/Pagination/Pagination';
|
|
59
|
+
export type { PaginationProps, PaginationLabels } from './components/data/Pagination/Pagination';
|
|
60
|
+
export { FilterChips } from './primitives/display/FilterChips/FilterChips';
|
|
61
|
+
export type { FilterChipsProps, FilterChipItem } from './primitives/display/FilterChips/FilterChips';
|
|
62
|
+
export { Card } from './primitives/display/Card/Card';
|
|
63
|
+
export type { CardProps } from './primitives/display/Card/Card';
|
|
64
|
+
export { Kpi } from './primitives/display/Kpi/Kpi';
|
|
65
|
+
export type { KpiProps, KpiTone } from './primitives/display/Kpi/Kpi';
|
|
66
|
+
export { default as Tabs } from './primitives/navigation/Tabs/Tabs';
|
|
67
|
+
export type { TabsProps, TabsSingleProps, TabsMultipleProps, TabItem } from './primitives/navigation/Tabs/Tabs';
|
|
68
|
+
export { default as SegmentedControl } from './primitives/buttons/SegmentedControl/SegmentedControl';
|
|
69
|
+
export type { SegmentedControlProps, SegmentedOption } from './primitives/buttons/SegmentedControl/SegmentedControl';
|
|
70
|
+
export { default as Table } from './components/tables/Table/Table';
|
|
71
|
+
export type { TableProps, TableColumn, TableView, TableState } from './components/tables/Table/Table';
|
|
72
|
+
export { default as PaginatedTable } from './components/tables/PaginatedTable/PaginatedTable';
|
|
73
|
+
export type { PaginatedTableProps } from './components/tables/PaginatedTable/PaginatedTable';
|
|
74
|
+
export { DEFAULT_TABLE_LABELS } from './components/tables/Table/labels';
|
|
75
|
+
export type { TableLabels } from './components/tables/Table/labels';
|
|
76
|
+
export { default as ListItem } from './primitives/lists/ListItem/ListItem';
|
|
77
|
+
export type { ListItemProps, ListItemContent } from './primitives/lists/ListItem/ListItem';
|
|
78
|
+
export { default as ListFinder } from './components/lists/ListFinder/ListFinder';
|
|
79
|
+
export type { ListFinderProps } from './components/lists/ListFinder/ListFinder';
|
|
80
|
+
export { DEFAULT_LIST_FINDER_LABELS } from './components/lists/ListFinder/labels';
|
|
81
|
+
export type { ListFinderLabels } from './components/lists/ListFinder/labels';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/**
|
|
4
|
+
* `primary`: a ação principal (navy, uma por ecrã). `secondary` (contorno): as
|
|
5
|
+
* outras (ex: Fechar, Exportar). `success` (verde): aprovar, aceitar, concluir.
|
|
6
|
+
* `danger`: apaga ou não se pode desfazer (ex: Apagar). `ghost`: sem contorno,
|
|
7
|
+
* para ações discretas.
|
|
8
|
+
*
|
|
9
|
+
* Sobre fundo escuro (ex: uma barra navy): `inverse` (contorno branco) para as
|
|
10
|
+
* ações normais e `accent` (turquesa) para a principal.
|
|
11
|
+
*/
|
|
12
|
+
variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'ghost' | 'inverse' | 'accent';
|
|
13
|
+
/** `sm`: mais pequeno (28px), para ícones dentro de linhas de tabelas e cartões. */
|
|
14
|
+
size?: 'md' | 'sm';
|
|
15
|
+
/** Ligado (ex: um filtro ativo): o `secondary` fica navy. Dá `aria-pressed`. */
|
|
16
|
+
active?: boolean;
|
|
17
|
+
/** Ícone antes do texto (ex: `<CheckIcon size={13} />`). Sem texto, o botão fica quadrado (dar `aria-label`). */
|
|
18
|
+
icon?: React.ReactNode;
|
|
19
|
+
/** A guardar/enviar: mostra uma roda no lugar do ícone e fica desativado. */
|
|
20
|
+
loading?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Botão de ação (ex: Confirmar, Novo projeto). Por omissão não submete
|
|
24
|
+
* formulários (`type="button"`); para submeter, passar `type="submit"`.
|
|
25
|
+
*
|
|
26
|
+
* O aspeto dos portais proef: MAIÚSCULAS, letra grossa e espaçada, a mesma
|
|
27
|
+
* altura dos outros controlos (32px).
|
|
28
|
+
*
|
|
29
|
+
* **Aceita os atributos HTML do [<button>](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button)**, com o mesmo comportamento: `onClick`, `disabled`, `type`, `name`, `form`, `ref`, ...
|
|
30
|
+
* Só os próprios do V1 aparecem na tabela abaixo.
|
|
31
|
+
*
|
|
32
|
+
* **Onde aparece:** no rodapé de um [Dialog](?path=/docs/v1-components-overlays-dialog--docs) (ver [Formulário em modal](?path=/docs/v1-patterns-forms-formulário-em-modal--docs)).
|
|
33
|
+
*/
|
|
34
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
35
|
+
export default Button;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SegmentedOption<V extends string = string> {
|
|
3
|
+
value: V;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
/** Ícone antes do texto (ex: um ícone do lucide com `size={12}`). */
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SegmentedControlProps<V extends string = string> {
|
|
10
|
+
/** A opção escolhida. A app guarda este estado. */
|
|
11
|
+
value: V;
|
|
12
|
+
options: SegmentedOption<V>[];
|
|
13
|
+
onChange: (value: V) => void;
|
|
14
|
+
/** Rótulo visível à esquerda (ex: "Situação"). Também é o nome do grupo para leitores de ecrã. */
|
|
15
|
+
label?: string;
|
|
16
|
+
/** Nome do grupo para leitores de ecrã, quando não há `label` visível. */
|
|
17
|
+
ariaLabel?: string;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Escolha de uma opção entre poucas, em botões lado a lado (ex: Dia · Semana ·
|
|
22
|
+
* Mês, ou Todos · Atribuição · Devolução). Para filtros e modos de vista numa
|
|
23
|
+
* barra; para trocar de vista com conteúdo próprio, usar `Tabs`.
|
|
24
|
+
*
|
|
25
|
+
* Mesmo aspeto dos `Tabs` segmentados: botões juntos numa caixa, o escolhido
|
|
26
|
+
* a navy. Setas ← → mudam de opção.
|
|
27
|
+
*/
|
|
28
|
+
export default function SegmentedControl<V extends string = string>({ value, options, onChange, label, ariaLabel, className, }: SegmentedControlProps<V>): React.JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aspeto "segmentado": botões juntos numa caixa, o escolhido a navy.
|
|
3
|
+
*
|
|
4
|
+
* Partilhado pelo `SegmentedControl` (escolher um valor, ex: 7D · 30D) e pelos
|
|
5
|
+
* `Tabs` com `variant="segmented"` (trocar de vista): fazem coisas diferentes
|
|
6
|
+
* mas têm de parecer o mesmo controlo.
|
|
7
|
+
*
|
|
8
|
+
* A caixa tem a altura dos outros controlos (`--spacing-control`), para ficar
|
|
9
|
+
* alinhada com botões, pesquisa e campos na mesma barra.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SEGMENTED: {
|
|
12
|
+
list: string;
|
|
13
|
+
item: string;
|
|
14
|
+
active: string;
|
|
15
|
+
idle: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/** Iniciais a partir do nome completo (primeira + última). Sem nome: "?". */
|
|
3
|
+
export declare function initials(fullName?: string | null): string;
|
|
4
|
+
/** `none`: sem tamanho nem cores das iniciais — quem usa põe as classes (ex: o UserAvatar da Legacy). */
|
|
5
|
+
export type AvatarSize = 'sm' | 'md' | 'lg' | 'none';
|
|
6
|
+
export interface AvatarProps {
|
|
7
|
+
name?: string | null;
|
|
8
|
+
/** URL da fotografia. Sem ela (ou se falhar) ficam as iniciais. */
|
|
9
|
+
photo?: string | null;
|
|
10
|
+
/** Fotografia maior para o cartão (por omissão, a mesma). */
|
|
11
|
+
photoLarge?: string | null;
|
|
12
|
+
email?: string | null;
|
|
13
|
+
company?: string | null;
|
|
14
|
+
department?: string | null;
|
|
15
|
+
jobTitle?: string | null;
|
|
16
|
+
/** `sm` 24px (tabelas e listas), `md` 28px, `lg` 32px (formulários, cabeçalhos). */
|
|
17
|
+
size?: AvatarSize;
|
|
18
|
+
/** Cartão com a fotografia grande e os dados ao passar o rato (no toque, ao tocar). */
|
|
19
|
+
card?: boolean;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A fotografia de uma pessoa (ou as iniciais), redonda. Com `card`, mostra a
|
|
24
|
+
* fotografia grande, o email, a empresa, o departamento e a função ao passar o rato;
|
|
25
|
+
* no toque abre e fecha ao tocar, sem passar o toque à linha por baixo.
|
|
26
|
+
*
|
|
27
|
+
* Para uma pessoa com o nome ao lado (ex: numa tabela), usar o `Person`.
|
|
28
|
+
*/
|
|
29
|
+
export default function Avatar({ name, photo, photoLarge, email, company, department, jobTitle, size, card, className, }: AvatarProps): React.JSX.Element;
|
|
30
|
+
export { Avatar };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Estados com significado: `ok` (verde), `risco` (âmbar), `incumprido` (vermelho).
|
|
4
|
+
* Sem estado: `neutral` (cinzento) e `accent` (azul).
|
|
5
|
+
* Classificações (distinguir valores que não são bons nem maus, ex: origem, tipo,
|
|
6
|
+
* área): `blue`, `violet`, `cyan`, `orange`, `pink` — sem significado, só para os
|
|
7
|
+
* valores se reconhecerem de relance. Não usar verde/âmbar/vermelho para isto.
|
|
8
|
+
*/
|
|
9
|
+
export type BadgeTone = 'ok' | 'risco' | 'incumprido' | 'neutral' | 'accent' | 'blue' | 'violet' | 'cyan' | 'orange' | 'pink';
|
|
10
|
+
/** Aceita os atributos do `<span>` (ex: `data-tip`, `title`, `aria-label`). */
|
|
11
|
+
export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
12
|
+
tone?: BadgeTone;
|
|
13
|
+
/** Ponto à esquerda. Por omissão sim; sem ponto para etiquetas que não são um estado (ex: categoria). */
|
|
14
|
+
dot?: boolean;
|
|
15
|
+
/** Ícone no lugar do ponto (ex: `<Eye size={11} />`). */
|
|
16
|
+
icon?: React.ReactNode;
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Etiqueta em pílula: o estado de um registo (ex: "Publicado", "Em atraso") ou
|
|
21
|
+
* uma classificação (ex: a categoria, a origem). As cores dos estados vêm dos
|
|
22
|
+
* tokens, por isso acompanham o tema escuro.
|
|
23
|
+
*/
|
|
24
|
+
export default function Badge({ tone, dot, icon, children, className, ...props }: BadgeProps): React.JSX.Element;
|
|
25
|
+
export { Badge };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
3
|
+
/** Título no topo (ex: "Por estado"). */
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
/** Ações à direita do título (ex: um botão, um seletor). */
|
|
6
|
+
actions?: React.ReactNode;
|
|
7
|
+
/** `none`: sem margem interior, para tabelas ou listas que vão até à borda. */
|
|
8
|
+
padding?: 'md' | 'none';
|
|
9
|
+
/** @deprecated Nome antigo (Legacy) de `actions`. */
|
|
10
|
+
extra?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Cartão: agrupa um bloco de conteúdo (um gráfico, uma lista, um resumo) num
|
|
14
|
+
* fundo próprio com cantos redondos, com título opcional.
|
|
15
|
+
*
|
|
16
|
+
* Os indicadores soltos usam o `Kpi`; as tabelas da biblioteca já trazem o seu
|
|
17
|
+
* contorno e não vão dentro de um cartão.
|
|
18
|
+
*
|
|
19
|
+
* **Aceita os atributos HTML do `<div>`** (ex: `id`, `data-*`, `onClick`).
|
|
20
|
+
*/
|
|
21
|
+
export default function Card({ title, actions, extra, padding, className, children, ...props }: CardProps): React.JSX.Element;
|
|
22
|
+
export { Card };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface FilterChipItem {
|
|
3
|
+
/** Identificador único da etiqueta. */
|
|
4
|
+
key: string;
|
|
5
|
+
/** Texto (ex: "Estado: Cancelado"). */
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
/** Tira este filtro. */
|
|
8
|
+
onRemove: () => void;
|
|
9
|
+
/** Ícone antes do texto (ex: o de agrupar). */
|
|
10
|
+
icon?: React.ReactNode;
|
|
11
|
+
/** `filter` (turquesa): um filtro. `group` (violeta): um agrupamento. */
|
|
12
|
+
tone?: 'filter' | 'group';
|
|
13
|
+
/** Cores próprias (classes), em vez das do `tone` — ex: a cor do estado. */
|
|
14
|
+
colorClassName?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FilterChipsProps {
|
|
17
|
+
items: FilterChipItem[];
|
|
18
|
+
/** Tira todos. Sem isto não aparece o "Limpar tudo". */
|
|
19
|
+
onClearAll?: () => void;
|
|
20
|
+
clearAllLabel?: string;
|
|
21
|
+
/** Nome do botão × para leitores de ecrã (recebe o texto da etiqueta, quando é texto). */
|
|
22
|
+
removeLabel?: string;
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Etiquetas dos filtros ativos, cada uma com × para o tirar, e "Limpar tudo".
|
|
27
|
+
*
|
|
28
|
+
* É o mesmo que a `DataTable` mostra por cima da tabela: usar este sempre que
|
|
29
|
+
* um ecrã mostra os filtros escolhidos (ex: ao clicar num gráfico), para se
|
|
30
|
+
* reconhecerem como a mesma coisa em todo o lado. Sem itens não desenha nada.
|
|
31
|
+
*/
|
|
32
|
+
export default function FilterChips({ items, onClearAll, clearAllLabel, removeLabel, className }: FilterChipsProps): React.JSX.Element | null;
|
|
33
|
+
export { FilterChips };
|