From 07c1d54f172d0cac99dded146f764105aeb5d7ae Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Fri, 7 Feb 2025 10:54:47 +0300 Subject: [PATCH] R: Refactor basic components structure --- rsconcept/frontend/src/app/ErrorFallback.tsx | 2 +- rsconcept/frontend/src/app/Footer.tsx | 2 +- rsconcept/frontend/src/app/GlobalTooltips.tsx | 2 +- .../frontend/src/app/Navigation/UserDropdown.tsx | 3 +-- rsconcept/frontend/src/app/Navigation/UserMenu.tsx | 2 +- .../frontend/src/components/ExpectedAnonymous.tsx | 3 ++- .../frontend/src/components/RSInput/RSInput.tsx | 2 +- .../frontend/src/components/RefsInput/RefsInput.tsx | 2 +- rsconcept/frontend/src/components/RequireAuth.tsx | 3 ++- .../components/{ui/Flow => graph}/DynamicEdge.tsx | 0 .../frontend/src/components/info/BadgeHelp.tsx | 4 ++-- .../frontend/src/components/info/InfoError.tsx | 2 +- .../src/components/info/SelectedCounter.tsx | 2 +- .../src/components/info/TooltipOperation.tsx | 2 +- .../src/components/select/MiniSelectorOSS.tsx | 8 +++----- .../src/components/select/PickConstituenta.tsx | 4 ++-- .../src/components/select/PickMultiConstituenta.tsx | 4 ++-- .../src/components/select/PickMultiOperation.tsx | 4 ++-- .../frontend/src/components/select/PickSchema.tsx | 9 ++++----- .../src/components/select/PickSubstitutions.tsx | 4 ++-- .../src/components/select/SelectAccessPolicy.tsx | 6 ++---- .../src/components/select/SelectConstituenta.tsx | 2 +- .../src/components/select/SelectGraphFilter.tsx | 6 ++---- .../src/components/select/SelectItemType.tsx | 6 ++---- .../src/components/select/SelectLibraryItem.tsx | 2 +- .../src/components/select/SelectLocation.tsx | 2 +- .../src/components/select/SelectLocationContext.tsx | 5 ++--- .../src/components/select/SelectLocationHead.tsx | 6 ++---- .../src/components/select/SelectMatchMode.tsx | 6 ++---- .../src/components/select/SelectMultiGrammeme.tsx | 2 +- .../src/components/select/SelectOperation.tsx | 2 +- .../frontend/src/components/select/SelectUser.tsx | 2 +- .../src/components/select/SelectVersion.tsx | 2 +- .../src/components/select/ToolbarGraphSelection.tsx | 2 +- .../src/components/ui/{ => Container}/Divider.tsx | 6 ++---- .../components/ui/{ => Container}/FlexColumn.tsx | 4 +--- .../src/components/ui/{ => Container}/Overlay.tsx | 4 +--- .../src/components/ui/{ => Container}/Tooltip.tsx | 4 +--- .../frontend/src/components/ui/Container/index.tsx | 4 ++++ .../src/components/ui/{ => Control}/Button.tsx | 4 +--- .../src/components/ui/{ => Control}/LinkTopic.tsx | 6 ++---- .../src/components/ui/{ => Control}/MiniButton.tsx | 4 +--- .../components/ui/{ => Control}/SelectorButton.tsx | 4 +--- .../components/ui/{ => Control}/SubmitButton.tsx | 4 +--- .../src/components/ui/{ => Control}/TextURL.tsx | 3 +-- .../frontend/src/components/ui/Control/index.tsx | 6 ++++++ .../src/components/ui/DataTable/SelectAll.tsx | 2 +- .../src/components/ui/DataTable/SelectRow.tsx | 2 +- .../src/components/ui/{ => Dropdown}/Dropdown.tsx | 4 +--- .../components/ui/{ => Dropdown}/DropdownButton.tsx | 4 +--- .../ui/{ => Dropdown}/DropdownCheckbox.tsx | 6 ++---- .../frontend/src/components/ui/Dropdown/index.tsx | 4 ++++ .../ui/Dropdown}/useDropdown.ts | 6 ++---- .../src/components/ui/{ => Input}/Checkbox.tsx | 4 +--- .../components/ui/{ => Input}/CheckboxTristate.tsx | 4 +--- .../src/components/ui/{ => Input}/ErrorField.tsx | 6 ++---- .../src/components/ui/{ => Input}/FileInput.tsx | 8 +++----- .../src/components/ui/{ => Input}/Label.tsx | 4 +--- .../src/components/ui/{ => Input}/SelectMulti.tsx | 4 +--- .../src/components/ui/{ => Input}/SelectSingle.tsx | 4 +--- .../src/components/ui/{ => Input}/SelectTree.tsx | 8 +++----- .../src/components/ui/{ => Input}/TextArea.tsx | 8 +++----- .../src/components/ui/{ => Input}/TextInput.tsx | 8 +++----- .../frontend/src/components/ui/Input/index.tsx | 10 ++++++++++ .../frontend/src/components/ui/Modal/ModalForm.tsx | 4 +--- .../frontend/src/components/ui/Modal/ModalView.tsx | 3 +-- .../frontend/src/components/ui/PDFViewer/index.tsx | 1 - rsconcept/frontend/src/components/ui/SearchBar.tsx | 8 +++----- .../src/components/ui/{ => Tabs}/TabLabel.tsx | 4 +--- rsconcept/frontend/src/components/ui/Tabs/index.tsx | 2 ++ .../src/components/ui/{ => View}/EmbedYoutube.tsx | 4 +--- .../src/components/ui/{ => View}/Indicator.tsx | 4 +--- .../src/components/ui/{ => View}/NoData.tsx | 4 +--- .../components/ui/{PDFViewer => View}/PDFViewer.tsx | 4 +--- .../src/components/ui/{ => View}/PrettyJSON.tsx | 4 +--- .../src/components/ui/{ => View}/TextContent.tsx | 4 +--- .../src/components/ui/{ => View}/ValueIcon.tsx | 6 ++---- .../src/components/ui/{ => View}/ValueLabeled.tsx | 4 +--- .../src/components/ui/{ => View}/ValueStats.tsx | 6 ++---- rsconcept/frontend/src/components/ui/View/index.tsx | 9 +++++++++ .../frontend/src/dialogs/DlgChangeInputSchema.tsx | 4 ++-- .../frontend/src/dialogs/DlgChangeLocation.tsx | 3 +-- .../frontend/src/dialogs/DlgCloneLibraryItem.tsx | 7 ++----- .../src/dialogs/DlgCreateCst/FormCreateCst.tsx | 4 +--- .../DlgCreateOperation/DlgCreateOperation.tsx | 3 +-- .../DlgCreateOperation/TabInputOperation.tsx | 7 ++----- .../DlgCreateOperation/TabSynthesisOperation.tsx | 6 ++---- rsconcept/frontend/src/dialogs/DlgCreateVersion.tsx | 4 +--- .../src/dialogs/DlgCstTemplate/DlgCstTemplate.tsx | 3 +-- .../src/dialogs/DlgCstTemplate/TabArguments.tsx | 4 ++-- .../src/dialogs/DlgCstTemplate/TabTemplate.tsx | 3 +-- .../src/dialogs/DlgDeleteCst/DlgDeleteCst.tsx | 2 +- .../frontend/src/dialogs/DlgDeleteOperation.tsx | 3 +-- .../src/dialogs/DlgEditEditors/DlgEditEditors.tsx | 4 ++-- .../src/dialogs/DlgEditEditors/TableUsers.tsx | 2 +- .../dialogs/DlgEditOperation/DlgEditOperation.tsx | 3 +-- .../src/dialogs/DlgEditOperation/TabArguments.tsx | 4 ++-- .../src/dialogs/DlgEditOperation/TabOperation.tsx | 3 +-- .../src/dialogs/DlgEditOperation/TabSynthesis.tsx | 2 +- .../dialogs/DlgEditReference/DlgEditReference.tsx | 3 +-- .../dialogs/DlgEditReference/TabEntityReference.tsx | 3 +-- .../DlgEditReference/TabSyntacticReference.tsx | 2 +- .../src/dialogs/DlgEditVersions/DlgEditVersions.tsx | 5 ++--- .../src/dialogs/DlgEditVersions/TableVersions.tsx | 2 +- .../dialogs/DlgEditWordForms/DlgEditWordForms.tsx | 5 ++--- .../src/dialogs/DlgEditWordForms/TableWordForms.tsx | 4 ++-- rsconcept/frontend/src/dialogs/DlgGraphParams.tsx | 2 +- .../DlgInlineSynthesis/DlgInlineSynthesis.tsx | 3 +-- .../src/dialogs/DlgInlineSynthesis/TabSource.tsx | 2 +- .../src/dialogs/DlgRelocateConstituents.tsx | 2 +- rsconcept/frontend/src/dialogs/DlgRenameCst.tsx | 3 +-- .../frontend/src/dialogs/DlgShowAST/DlgShowAST.tsx | 2 +- .../src/dialogs/DlgShowAST/graph/ASTEdgeTypes.ts | 2 +- rsconcept/frontend/src/dialogs/DlgUploadRSForm.tsx | 3 +-- .../src/pages/CreateItemPage/FormCreateItem.tsx | 10 +++------- .../frontend/src/pages/LibraryPage/LibraryPage.tsx | 4 ++-- .../src/pages/LibraryPage/TableLibraryItems.tsx | 5 ++--- .../src/pages/LibraryPage/ToolbarSearch.tsx | 9 +++------ .../src/pages/LibraryPage/ViewSideLocation.tsx | 2 +- rsconcept/frontend/src/pages/LoginPage.tsx | 5 ++--- .../frontend/src/pages/ManualsPage/TopicItem.tsx | 2 +- .../src/pages/ManualsPage/TopicsDropdown.tsx | 6 +++--- .../frontend/src/pages/ManualsPage/TopicsStatic.tsx | 2 +- .../src/pages/ManualsPage/items/HelpConcept.tsx | 2 +- .../src/pages/ManualsPage/items/HelpExteor.tsx | 2 +- .../src/pages/ManualsPage/items/HelpMain.tsx | 3 +-- .../src/pages/ManualsPage/items/HelpRSLang.tsx | 2 +- .../src/pages/ManualsPage/items/HelpThesaurus.tsx | 2 +- .../pages/ManualsPage/items/cc/HelpConceptOSS.tsx | 2 +- .../ManualsPage/items/cc/HelpConceptPropagation.tsx | 2 +- .../ManualsPage/items/cc/HelpConceptRelations.tsx | 2 +- .../ManualsPage/items/cc/HelpConceptSynthesis.tsx | 2 +- .../ManualsPage/items/cc/HelpConceptSystem.tsx | 2 +- .../ManualsPage/items/cc/HelpCstAttributes.tsx | 2 +- .../src/pages/ManualsPage/items/info/HelpAPI.tsx | 2 +- .../ManualsPage/items/info/HelpContributors.tsx | 3 +-- .../pages/ManualsPage/items/info/HelpPrivacy.tsx | 2 +- .../src/pages/ManualsPage/items/info/HelpRules.tsx | 2 +- .../ManualsPage/items/rslang/HelpRSLangCorrect.tsx | 2 +- .../items/rslang/HelpRSLangInterpret.tsx | 2 +- .../items/rslang/HelpRSLangOperations.tsx | 2 +- .../src/pages/ManualsPage/items/ui/HelpLibrary.tsx | 2 +- .../src/pages/ManualsPage/items/ui/HelpOssGraph.tsx | 4 ++-- .../src/pages/ManualsPage/items/ui/HelpRSCard.tsx | 2 +- .../src/pages/ManualsPage/items/ui/HelpRSEditor.tsx | 2 +- .../pages/ManualsPage/items/ui/HelpRSGraphTerm.tsx | 4 ++-- .../src/pages/ManualsPage/items/ui/HelpRSList.tsx | 4 ++-- .../src/pages/ManualsPage/items/ui/HelpRSMenu.tsx | 4 ++-- .../pages/ManualsPage/items/ui/HelpRelocateCst.tsx | 2 +- .../pages/ManualsPage/items/ui/HelpTypeGraph.tsx | 2 +- rsconcept/frontend/src/pages/NotFoundPage.tsx | 2 +- .../pages/OssPage/EditorOssCard/EditorOssCard.tsx | 2 +- .../src/pages/OssPage/EditorOssCard/FormOSS.tsx | 5 ++--- .../src/pages/OssPage/EditorOssCard/OssStats.tsx | 2 +- .../OssPage/EditorOssGraph/NodeContextMenu.tsx | 3 +-- .../src/pages/OssPage/EditorOssGraph/OssFlow.tsx | 2 +- .../OssPage/EditorOssGraph/ToolbarOssGraph.tsx | 2 +- .../pages/OssPage/EditorOssGraph/graph/NodeCore.tsx | 4 ++-- .../frontend/src/pages/OssPage/MenuOssTabs.tsx | 8 +++----- rsconcept/frontend/src/pages/OssPage/OssPage.tsx | 2 +- rsconcept/frontend/src/pages/OssPage/OssTabs.tsx | 5 ++--- rsconcept/frontend/src/pages/PasswordChangePage.tsx | 4 ++-- .../EditorConstituenta/EditorControls.tsx | 4 ++-- .../EditorConstituenta/FormConstituenta.tsx | 8 ++++---- .../EditorConstituenta/ToolbarConstituenta.tsx | 4 ++-- .../EditorRSExpression/EditorRSExpression.tsx | 2 +- .../EditorRSExpression/ToolbarRSExpression.tsx | 4 ++-- .../EditorRSFormCard/EditorLibraryItem.tsx | 9 ++++----- .../EditorRSFormCard/EditorRSFormCard.tsx | 2 +- .../RSFormPage/EditorRSFormCard/FormRSForm.tsx | 6 ++---- .../RSFormPage/EditorRSFormCard/RSFormStats.tsx | 2 +- .../EditorRSFormCard/ToolbarItemAccess.tsx | 6 +++--- .../EditorRSFormCard/ToolbarRSFormCard.tsx | 4 ++-- .../EditorRSFormCard/ToolbarVersioning.tsx | 4 ++-- .../pages/RSFormPage/EditorRSList/EditorRSList.tsx | 6 +++--- .../pages/RSFormPage/EditorRSList/TableRSList.tsx | 5 ++--- .../pages/RSFormPage/EditorRSList/ToolbarRSList.tsx | 8 +++----- .../RSFormPage/EditorTermGraph/GraphSelectors.tsx | 4 ++-- .../RSFormPage/EditorTermGraph/SchemasGuide.tsx | 2 +- .../src/pages/RSFormPage/EditorTermGraph/TGFlow.tsx | 2 +- .../EditorTermGraph/ToolbarFocusedCst.tsx | 2 +- .../RSFormPage/EditorTermGraph/ToolbarTermGraph.tsx | 2 +- .../pages/RSFormPage/EditorTermGraph/ViewHidden.tsx | 4 ++-- .../RSFormPage/EditorTermGraph/graph/TGEdgeTypes.ts | 2 +- .../frontend/src/pages/RSFormPage/MenuRSTabs.tsx | 8 +++----- .../frontend/src/pages/RSFormPage/RSFormPage.tsx | 4 ++-- rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx | 5 ++--- .../ViewConstituents/ConstituentsSearch.tsx | 4 ++-- .../ViewConstituents/TableSideConstituents.tsx | 3 +-- .../frontend/src/pages/RegisterPage/FormSignup.tsx | 13 ++++--------- .../frontend/src/pages/RestorePasswordPage.tsx | 5 ++--- .../src/pages/UserProfilePage/EditorPassword.tsx | 6 +++--- .../src/pages/UserProfilePage/EditorProfile.tsx | 4 ++-- 193 files changed, 317 insertions(+), 426 deletions(-) rename rsconcept/frontend/src/components/{ui/Flow => graph}/DynamicEdge.tsx (100%) rename rsconcept/frontend/src/components/ui/{ => Container}/Divider.tsx (75%) rename rsconcept/frontend/src/components/ui/{ => Container}/FlexColumn.tsx (74%) rename rsconcept/frontend/src/components/ui/{ => Container}/Overlay.tsx (93%) rename rsconcept/frontend/src/components/ui/{ => Container}/Tooltip.tsx (97%) create mode 100644 rsconcept/frontend/src/components/ui/Container/index.tsx rename rsconcept/frontend/src/components/ui/{ => Control}/Button.tsx (97%) rename rsconcept/frontend/src/components/ui/{ => Control}/LinkTopic.tsx (73%) rename rsconcept/frontend/src/components/ui/{ => Control}/MiniButton.tsx (95%) rename rsconcept/frontend/src/components/ui/{ => Control}/SelectorButton.tsx (96%) rename rsconcept/frontend/src/components/ui/{ => Control}/SubmitButton.tsx (85%) rename rsconcept/frontend/src/components/ui/{ => Control}/TextURL.tsx (87%) create mode 100644 rsconcept/frontend/src/components/ui/Control/index.tsx rename rsconcept/frontend/src/components/ui/{ => Dropdown}/Dropdown.tsx (97%) rename rsconcept/frontend/src/components/ui/{ => Dropdown}/DropdownButton.tsx (96%) rename rsconcept/frontend/src/components/ui/{ => Dropdown}/DropdownCheckbox.tsx (70%) create mode 100644 rsconcept/frontend/src/components/ui/Dropdown/index.tsx rename rsconcept/frontend/src/{hooks => components/ui/Dropdown}/useDropdown.ts (74%) rename rsconcept/frontend/src/components/ui/{ => Input}/Checkbox.tsx (97%) rename rsconcept/frontend/src/components/ui/{ => Input}/CheckboxTristate.tsx (97%) rename rsconcept/frontend/src/components/ui/{ => Input}/ErrorField.tsx (71%) rename rsconcept/frontend/src/components/ui/{ => Input}/FileInput.tsx (88%) rename rsconcept/frontend/src/components/ui/{ => Input}/Label.tsx (87%) rename rsconcept/frontend/src/components/ui/{ => Input}/SelectMulti.tsx (96%) rename rsconcept/frontend/src/components/ui/{ => Input}/SelectSingle.tsx (96%) rename rsconcept/frontend/src/components/ui/{ => Input}/SelectTree.tsx (96%) rename rsconcept/frontend/src/components/ui/{ => Input}/TextArea.tsx (92%) rename rsconcept/frontend/src/components/ui/{ => Input}/TextInput.tsx (92%) create mode 100644 rsconcept/frontend/src/components/ui/Input/index.tsx delete mode 100644 rsconcept/frontend/src/components/ui/PDFViewer/index.tsx rename rsconcept/frontend/src/components/ui/{ => Tabs}/TabLabel.tsx (88%) create mode 100644 rsconcept/frontend/src/components/ui/Tabs/index.tsx rename rsconcept/frontend/src/components/ui/{ => View}/EmbedYoutube.tsx (90%) rename rsconcept/frontend/src/components/ui/{ => View}/Indicator.tsx (85%) rename rsconcept/frontend/src/components/ui/{ => View}/NoData.tsx (75%) rename rsconcept/frontend/src/components/ui/{PDFViewer => View}/PDFViewer.tsx (88%) rename rsconcept/frontend/src/components/ui/{ => View}/PrettyJSON.tsx (72%) rename rsconcept/frontend/src/components/ui/{ => View}/TextContent.tsx (87%) rename rsconcept/frontend/src/components/ui/{ => View}/ValueIcon.tsx (95%) rename rsconcept/frontend/src/components/ui/{ => View}/ValueLabeled.tsx (81%) rename rsconcept/frontend/src/components/ui/{ => View}/ValueStats.tsx (81%) create mode 100644 rsconcept/frontend/src/components/ui/View/index.tsx diff --git a/rsconcept/frontend/src/app/ErrorFallback.tsx b/rsconcept/frontend/src/app/ErrorFallback.tsx index c83c5162..d25ec65b 100644 --- a/rsconcept/frontend/src/app/ErrorFallback.tsx +++ b/rsconcept/frontend/src/app/ErrorFallback.tsx @@ -1,7 +1,7 @@ import { useNavigate, useRouteError } from 'react-router'; import InfoError from '@/components/info/InfoError'; -import Button from '@/components/ui/Button'; +import { Button } from '@/components/ui/Control'; function ErrorFallback() { const error = useRouteError(); diff --git a/rsconcept/frontend/src/app/Footer.tsx b/rsconcept/frontend/src/app/Footer.tsx index 5eb079da..46fd852d 100644 --- a/rsconcept/frontend/src/app/Footer.tsx +++ b/rsconcept/frontend/src/app/Footer.tsx @@ -1,6 +1,6 @@ import clsx from 'clsx'; -import TextURL from '@/components/ui/TextURL'; +import { TextURL } from '@/components/ui/Control'; import { external_urls } from '@/utils/constants'; function Footer() { diff --git a/rsconcept/frontend/src/app/GlobalTooltips.tsx b/rsconcept/frontend/src/app/GlobalTooltips.tsx index fdbbc6a2..74311144 100644 --- a/rsconcept/frontend/src/app/GlobalTooltips.tsx +++ b/rsconcept/frontend/src/app/GlobalTooltips.tsx @@ -1,8 +1,8 @@ 'use client'; import InfoConstituenta from '@/components/info/InfoConstituenta'; +import { Tooltip } from '@/components/ui/Container'; import Loader from '@/components/ui/Loader'; -import Tooltip from '@/components/ui/Tooltip'; import { useTooltipsStore } from '@/stores/tooltips'; import { globals } from '@/utils/constants'; diff --git a/rsconcept/frontend/src/app/Navigation/UserDropdown.tsx b/rsconcept/frontend/src/app/Navigation/UserDropdown.tsx index 42b31b3c..3b705eda 100644 --- a/rsconcept/frontend/src/app/Navigation/UserDropdown.tsx +++ b/rsconcept/frontend/src/app/Navigation/UserDropdown.tsx @@ -16,8 +16,7 @@ import { IconUser } from '@/components/Icons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; +import { Dropdown, DropdownButton } from '@/components/ui/Dropdown'; import { usePreferencesStore } from '@/stores/preferences'; import { urls } from '../urls'; diff --git a/rsconcept/frontend/src/app/Navigation/UserMenu.tsx b/rsconcept/frontend/src/app/Navigation/UserMenu.tsx index 5e3781c6..653cd80e 100644 --- a/rsconcept/frontend/src/app/Navigation/UserMenu.tsx +++ b/rsconcept/frontend/src/app/Navigation/UserMenu.tsx @@ -1,8 +1,8 @@ import { Suspense } from 'react'; import { useConceptNavigation } from '@/app/Navigation/NavigationContext'; +import { useDropdown } from '@/components/ui/Dropdown'; import Loader from '@/components/ui/Loader'; -import useDropdown from '@/hooks/useDropdown'; import { urls } from '../urls'; import UserButton from './UserButton'; diff --git a/rsconcept/frontend/src/components/ExpectedAnonymous.tsx b/rsconcept/frontend/src/components/ExpectedAnonymous.tsx index d0720a35..c0c6782e 100644 --- a/rsconcept/frontend/src/components/ExpectedAnonymous.tsx +++ b/rsconcept/frontend/src/components/ExpectedAnonymous.tsx @@ -2,7 +2,8 @@ import { useConceptNavigation } from '@/app/Navigation/NavigationContext'; import { urls } from '@/app/urls'; import { useAuthSuspense } from '@/backend/auth/useAuth'; import { useLogout } from '@/backend/auth/useLogout'; -import TextURL from '@/components/ui/TextURL'; + +import { TextURL } from './ui/Control'; function ExpectedAnonymous() { const { user } = useAuthSuspense(); diff --git a/rsconcept/frontend/src/components/RSInput/RSInput.tsx b/rsconcept/frontend/src/components/RSInput/RSInput.tsx index a368e8d4..be583610 100644 --- a/rsconcept/frontend/src/components/RSInput/RSInput.tsx +++ b/rsconcept/frontend/src/components/RSInput/RSInput.tsx @@ -8,7 +8,7 @@ import clsx from 'clsx'; import { EditorView } from 'codemirror'; import { forwardRef, useRef } from 'react'; -import Label from '@/components/ui/Label'; +import { Label } from '@/components/ui/Input'; import { ConstituentaID, IRSForm } from '@/models/rsform'; import { generateAlias, getCstTypePrefix, guessCstType } from '@/models/rsformAPI'; import { extractGlobals } from '@/models/rslangAPI'; diff --git a/rsconcept/frontend/src/components/RefsInput/RefsInput.tsx b/rsconcept/frontend/src/components/RefsInput/RefsInput.tsx index 7455ec0b..86241617 100644 --- a/rsconcept/frontend/src/components/RefsInput/RefsInput.tsx +++ b/rsconcept/frontend/src/components/RefsInput/RefsInput.tsx @@ -8,7 +8,7 @@ import clsx from 'clsx'; import { EditorView } from 'codemirror'; import { forwardRef, useRef, useState } from 'react'; -import Label from '@/components/ui/Label'; +import { Label } from '@/components/ui/Input'; import { ReferenceType } from '@/models/language'; import { DialogType } from '@/models/miscellaneous'; import { ConstituentaID, IRSForm } from '@/models/rsform'; diff --git a/rsconcept/frontend/src/components/RequireAuth.tsx b/rsconcept/frontend/src/components/RequireAuth.tsx index f49710a5..9579c596 100644 --- a/rsconcept/frontend/src/components/RequireAuth.tsx +++ b/rsconcept/frontend/src/components/RequireAuth.tsx @@ -1,7 +1,8 @@ 'use client'; import { useAuthSuspense } from '@/backend/auth/useAuth'; -import TextURL from '@/components/ui/TextURL'; + +import { TextURL } from './ui/Control'; function RequireAuth({ children }: React.PropsWithChildren) { const { isAnonymous } = useAuthSuspense(); diff --git a/rsconcept/frontend/src/components/ui/Flow/DynamicEdge.tsx b/rsconcept/frontend/src/components/graph/DynamicEdge.tsx similarity index 100% rename from rsconcept/frontend/src/components/ui/Flow/DynamicEdge.tsx rename to rsconcept/frontend/src/components/graph/DynamicEdge.tsx diff --git a/rsconcept/frontend/src/components/info/BadgeHelp.tsx b/rsconcept/frontend/src/components/info/BadgeHelp.tsx index 7b463726..0eaee73c 100644 --- a/rsconcept/frontend/src/components/info/BadgeHelp.tsx +++ b/rsconcept/frontend/src/components/info/BadgeHelp.tsx @@ -2,9 +2,9 @@ import React, { Suspense } from 'react'; import { IconHelp } from '@/components/Icons'; import { CProps } from '@/components/props'; +import { PlacesType, Tooltip } from '@/components/ui/Container'; +import { TextURL } from '@/components/ui/Control'; import Loader from '@/components/ui/Loader'; -import TextURL from '@/components/ui/TextURL'; -import Tooltip, { PlacesType } from '@/components/ui/Tooltip'; import { HelpTopic } from '@/models/miscellaneous'; import { usePreferencesStore } from '@/stores/preferences'; diff --git a/rsconcept/frontend/src/components/info/InfoError.tsx b/rsconcept/frontend/src/components/info/InfoError.tsx index 03fbb878..802a6cf3 100644 --- a/rsconcept/frontend/src/components/info/InfoError.tsx +++ b/rsconcept/frontend/src/components/info/InfoError.tsx @@ -1,7 +1,7 @@ import axios, { type AxiosError } from 'axios'; import clsx from 'clsx'; -import PrettyJson from '@/components/ui/PrettyJSON'; +import { PrettyJson } from '@/components/ui/View'; import { isResponseHtml } from '@/utils/utils'; export type ErrorData = string | Error | AxiosError | undefined | null; diff --git a/rsconcept/frontend/src/components/info/SelectedCounter.tsx b/rsconcept/frontend/src/components/info/SelectedCounter.tsx index a5c29fce..35f37cbb 100644 --- a/rsconcept/frontend/src/components/info/SelectedCounter.tsx +++ b/rsconcept/frontend/src/components/info/SelectedCounter.tsx @@ -1,4 +1,4 @@ -import Overlay from '@/components/ui/Overlay'; +import { Overlay } from '@/components/ui/Container'; interface SelectedCounterProps { totalCount: number; diff --git a/rsconcept/frontend/src/components/info/TooltipOperation.tsx b/rsconcept/frontend/src/components/info/TooltipOperation.tsx index 68e89f8d..72910da0 100644 --- a/rsconcept/frontend/src/components/info/TooltipOperation.tsx +++ b/rsconcept/frontend/src/components/info/TooltipOperation.tsx @@ -3,8 +3,8 @@ import { createColumnHelper } from '@tanstack/react-table'; import { IconPageRight } from '@/components/Icons'; +import { Tooltip } from '@/components/ui/Container'; import DataTable from '@/components/ui/DataTable'; -import Tooltip from '@/components/ui/Tooltip'; import { OssNodeInternal } from '@/models/miscellaneous'; import { ICstSubstituteEx, OperationType } from '@/models/oss'; import { labelOperationType } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx b/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx index 151d5691..9ecd125d 100644 --- a/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx +++ b/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx @@ -4,11 +4,9 @@ import clsx from 'clsx'; import { IconOSS } from '@/components/Icons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import Label from '@/components/ui/Label'; -import MiniButton from '@/components/ui/MiniButton'; -import useDropdown from '@/hooks/useDropdown'; +import { MiniButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; +import { Label } from '@/components/ui/Input'; import { ILibraryItemReference } from '@/models/library'; import { prefixes } from '@/utils/constants'; diff --git a/rsconcept/frontend/src/components/select/PickConstituenta.tsx b/rsconcept/frontend/src/components/select/PickConstituenta.tsx index 927643e2..bfa2c054 100644 --- a/rsconcept/frontend/src/components/select/PickConstituenta.tsx +++ b/rsconcept/frontend/src/components/select/PickConstituenta.tsx @@ -6,8 +6,8 @@ import { useState } from 'react'; import BadgeConstituenta from '@/components/info/BadgeConstituenta'; import { CProps } from '@/components/props'; import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/ui/DataTable'; -import NoData from '@/components/ui/NoData'; -import SearchBar from '@/components/ui/SearchBar'; +import { SearchBar } from '@/components/ui/SearchBar'; +import { NoData } from '@/components/ui/View'; import { CstMatchMode } from '@/models/miscellaneous'; import { IConstituenta } from '@/models/rsform'; import { matchConstituenta } from '@/models/rsformAPI'; diff --git a/rsconcept/frontend/src/components/select/PickMultiConstituenta.tsx b/rsconcept/frontend/src/components/select/PickMultiConstituenta.tsx index 47119490..3a7eb19a 100644 --- a/rsconcept/frontend/src/components/select/PickMultiConstituenta.tsx +++ b/rsconcept/frontend/src/components/select/PickMultiConstituenta.tsx @@ -6,8 +6,8 @@ import { useState } from 'react'; import BadgeConstituenta from '@/components/info/BadgeConstituenta'; import { CProps } from '@/components/props'; import DataTable, { createColumnHelper, RowSelectionState } from '@/components/ui/DataTable'; -import NoData from '@/components/ui/NoData'; -import SearchBar from '@/components/ui/SearchBar'; +import { SearchBar } from '@/components/ui/SearchBar'; +import { NoData } from '@/components/ui/View'; import { Graph } from '@/models/Graph'; import { CstMatchMode } from '@/models/miscellaneous'; import { ConstituentaID, IConstituenta, IRSForm } from '@/models/rsform'; diff --git a/rsconcept/frontend/src/components/select/PickMultiOperation.tsx b/rsconcept/frontend/src/components/select/PickMultiOperation.tsx index 07348f71..ed0e9b1c 100644 --- a/rsconcept/frontend/src/components/select/PickMultiOperation.tsx +++ b/rsconcept/frontend/src/components/select/PickMultiOperation.tsx @@ -6,9 +6,9 @@ import { useState } from 'react'; import { IconMoveDown, IconMoveUp, IconRemove } from '@/components/Icons'; import { CProps } from '@/components/props'; import SelectOperation from '@/components/select/SelectOperation'; +import { MiniButton } from '@/components/ui/Control'; import DataTable, { createColumnHelper } from '@/components/ui/DataTable'; -import MiniButton from '@/components/ui/MiniButton'; -import NoData from '@/components/ui/NoData'; +import { NoData } from '@/components/ui/View'; import { IOperation, OperationID } from '@/models/oss'; interface PickMultiOperationProps extends CProps.Styling { diff --git a/rsconcept/frontend/src/components/select/PickSchema.tsx b/rsconcept/frontend/src/components/select/PickSchema.tsx index f74612f5..89269733 100644 --- a/rsconcept/frontend/src/components/select/PickSchema.tsx +++ b/rsconcept/frontend/src/components/select/PickSchema.tsx @@ -4,12 +4,11 @@ import { useIntl } from 'react-intl'; import { IconClose, IconFolderTree } from '@/components/Icons'; import { CProps } from '@/components/props'; +import { FlexColumn } from '@/components/ui/Container'; +import { MiniButton } from '@/components/ui/Control'; import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/ui/DataTable'; -import Dropdown from '@/components/ui/Dropdown'; -import FlexColumn from '@/components/ui/FlexColumn'; -import MiniButton from '@/components/ui/MiniButton'; -import SearchBar from '@/components/ui/SearchBar'; -import useDropdown from '@/hooks/useDropdown'; +import { Dropdown, useDropdown } from '@/components/ui/Dropdown'; +import { SearchBar } from '@/components/ui/SearchBar'; import { ILibraryItem, LibraryItemID, LibraryItemType } from '@/models/library'; import { matchLibraryItem } from '@/models/libraryAPI'; import { APP_COLORS } from '@/styling/color'; diff --git a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx index 685006c1..69f058ff 100644 --- a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx +++ b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx @@ -8,9 +8,9 @@ import { IconAccept, IconPageLeft, IconPageRight, IconRemove, IconReplace } from import BadgeConstituenta from '@/components/info/BadgeConstituenta'; import { CProps } from '@/components/props'; import SelectConstituenta from '@/components/select/SelectConstituenta'; +import { MiniButton } from '@/components/ui/Control'; import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/ui/DataTable'; -import MiniButton from '@/components/ui/MiniButton'; -import NoData from '@/components/ui/NoData'; +import { NoData } from '@/components/ui/View'; import { ILibraryItem } from '@/models/library'; import { ICstSubstitute, IMultiSubstitution } from '@/models/oss'; import { ConstituentaID, IConstituenta, IRSForm } from '@/models/rsform'; diff --git a/rsconcept/frontend/src/components/select/SelectAccessPolicy.tsx b/rsconcept/frontend/src/components/select/SelectAccessPolicy.tsx index c81e4296..a78b4359 100644 --- a/rsconcept/frontend/src/components/select/SelectAccessPolicy.tsx +++ b/rsconcept/frontend/src/components/select/SelectAccessPolicy.tsx @@ -2,10 +2,8 @@ import { PolicyIcon } from '@/components/DomainIcons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import MiniButton from '@/components/ui/MiniButton'; -import useDropdown from '@/hooks/useDropdown'; +import { MiniButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; import { AccessPolicy } from '@/models/library'; import { prefixes } from '@/utils/constants'; import { describeAccessPolicy, labelAccessPolicy } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/SelectConstituenta.tsx b/rsconcept/frontend/src/components/select/SelectConstituenta.tsx index 56a200fe..c06bcf15 100644 --- a/rsconcept/frontend/src/components/select/SelectConstituenta.tsx +++ b/rsconcept/frontend/src/components/select/SelectConstituenta.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import { CProps } from '@/components/props'; -import SelectSingle from '@/components/ui/SelectSingle'; +import { SelectSingle } from '@/components/ui/Input'; import { CstMatchMode } from '@/models/miscellaneous'; import { ConstituentaID, IConstituenta } from '@/models/rsform'; import { matchConstituenta } from '@/models/rsformAPI'; diff --git a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx index fd2267be..2db4992f 100644 --- a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx +++ b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx @@ -2,10 +2,8 @@ import { DependencyIcon } from '@/components/DomainIcons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import SelectorButton from '@/components/ui/SelectorButton'; -import useDropdown from '@/hooks/useDropdown'; +import { SelectorButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; import useWindowSize from '@/hooks/useWindowSize'; import { DependencyMode } from '@/models/miscellaneous'; import { prefixes } from '@/utils/constants'; diff --git a/rsconcept/frontend/src/components/select/SelectItemType.tsx b/rsconcept/frontend/src/components/select/SelectItemType.tsx index b8cd0ae4..a1552b38 100644 --- a/rsconcept/frontend/src/components/select/SelectItemType.tsx +++ b/rsconcept/frontend/src/components/select/SelectItemType.tsx @@ -2,10 +2,8 @@ import { ItemTypeIcon } from '@/components/DomainIcons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import SelectorButton from '@/components/ui/SelectorButton'; -import useDropdown from '@/hooks/useDropdown'; +import { SelectorButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; import { LibraryItemType } from '@/models/library'; import { prefixes } from '@/utils/constants'; import { describeLibraryItemType, labelLibraryItemType } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/SelectLibraryItem.tsx b/rsconcept/frontend/src/components/select/SelectLibraryItem.tsx index ad4940ce..314c77d0 100644 --- a/rsconcept/frontend/src/components/select/SelectLibraryItem.tsx +++ b/rsconcept/frontend/src/components/select/SelectLibraryItem.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import { CProps } from '@/components/props'; -import SelectSingle from '@/components/ui/SelectSingle'; +import { SelectSingle } from '@/components/ui/Input'; import { ILibraryItem, LibraryItemID } from '@/models/library'; import { matchLibraryItem } from '@/models/libraryAPI'; diff --git a/rsconcept/frontend/src/components/select/SelectLocation.tsx b/rsconcept/frontend/src/components/select/SelectLocation.tsx index 0bbcba3d..336ab52b 100644 --- a/rsconcept/frontend/src/components/select/SelectLocation.tsx +++ b/rsconcept/frontend/src/components/select/SelectLocation.tsx @@ -6,7 +6,7 @@ import { useEffect, useState } from 'react'; import { useFolders } from '@/backend/library/useFolders'; import { IconFolder, IconFolderClosed, IconFolderEmpty, IconFolderOpened } from '@/components/Icons'; import { CProps } from '@/components/props'; -import MiniButton from '@/components/ui/MiniButton'; +import { MiniButton } from '@/components/ui/Control'; import { FolderNode } from '@/models/FolderTree'; import { labelFolderNode } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/SelectLocationContext.tsx b/rsconcept/frontend/src/components/select/SelectLocationContext.tsx index 25d86576..fe8de27e 100644 --- a/rsconcept/frontend/src/components/select/SelectLocationContext.tsx +++ b/rsconcept/frontend/src/components/select/SelectLocationContext.tsx @@ -4,9 +4,8 @@ import clsx from 'clsx'; import { IconFolderTree } from '@/components/Icons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import MiniButton from '@/components/ui/MiniButton'; -import useDropdown from '@/hooks/useDropdown'; +import { MiniButton } from '@/components/ui/Control'; +import { Dropdown, useDropdown } from '@/components/ui/Dropdown'; import { prefixes } from '@/utils/constants'; import SelectLocation from './SelectLocation'; diff --git a/rsconcept/frontend/src/components/select/SelectLocationHead.tsx b/rsconcept/frontend/src/components/select/SelectLocationHead.tsx index 0aa796f9..ccfd6cfb 100644 --- a/rsconcept/frontend/src/components/select/SelectLocationHead.tsx +++ b/rsconcept/frontend/src/components/select/SelectLocationHead.tsx @@ -4,10 +4,8 @@ import clsx from 'clsx'; import { LocationIcon } from '@/components/DomainIcons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import SelectorButton from '@/components/ui/SelectorButton'; -import useDropdown from '@/hooks/useDropdown'; +import { SelectorButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; import { LocationHead } from '@/models/library'; import { prefixes } from '@/utils/constants'; import { describeLocationHead, labelLocationHead } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx index cdecce64..05b1cce5 100644 --- a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx +++ b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx @@ -2,10 +2,8 @@ import { MatchModeIcon } from '@/components/DomainIcons'; import { CProps } from '@/components/props'; -import Dropdown from '@/components/ui/Dropdown'; -import DropdownButton from '@/components/ui/DropdownButton'; -import SelectorButton from '@/components/ui/SelectorButton'; -import useDropdown from '@/hooks/useDropdown'; +import { SelectorButton } from '@/components/ui/Control'; +import { Dropdown, DropdownButton, useDropdown } from '@/components/ui/Dropdown'; import useWindowSize from '@/hooks/useWindowSize'; import { CstMatchMode } from '@/models/miscellaneous'; import { prefixes } from '@/utils/constants'; diff --git a/rsconcept/frontend/src/components/select/SelectMultiGrammeme.tsx b/rsconcept/frontend/src/components/select/SelectMultiGrammeme.tsx index 78dba411..37f15930 100644 --- a/rsconcept/frontend/src/components/select/SelectMultiGrammeme.tsx +++ b/rsconcept/frontend/src/components/select/SelectMultiGrammeme.tsx @@ -1,5 +1,5 @@ import { CProps } from '@/components/props'; -import SelectMulti, { SelectMultiProps } from '@/components/ui/SelectMulti'; +import { SelectMulti, SelectMultiProps } from '@/components/ui/Input'; import { Grammeme } from '@/models/language'; import { getCompatibleGrams } from '@/models/languageAPI'; import { compareGrammemeOptions, IGrammemeOption, SelectorGrammemes } from '@/utils/selectors'; diff --git a/rsconcept/frontend/src/components/select/SelectOperation.tsx b/rsconcept/frontend/src/components/select/SelectOperation.tsx index d85cace7..04d93fe9 100644 --- a/rsconcept/frontend/src/components/select/SelectOperation.tsx +++ b/rsconcept/frontend/src/components/select/SelectOperation.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import { CProps } from '@/components/props'; -import SelectSingle from '@/components/ui/SelectSingle'; +import { SelectSingle } from '@/components/ui/Input'; import { IOperation, OperationID } from '@/models/oss'; import { matchOperation } from '@/models/ossAPI'; diff --git a/rsconcept/frontend/src/components/select/SelectUser.tsx b/rsconcept/frontend/src/components/select/SelectUser.tsx index cdf5f3ca..8cfdf0a2 100644 --- a/rsconcept/frontend/src/components/select/SelectUser.tsx +++ b/rsconcept/frontend/src/components/select/SelectUser.tsx @@ -5,7 +5,7 @@ import clsx from 'clsx'; import { useLabelUser } from '@/backend/users/useLabelUser'; import { useUsers } from '@/backend/users/useUsers'; import { CProps } from '@/components/props'; -import SelectSingle from '@/components/ui/SelectSingle'; +import { SelectSingle } from '@/components/ui/Input'; import { UserID } from '@/models/user'; import { matchUser } from '@/models/userAPI'; diff --git a/rsconcept/frontend/src/components/select/SelectVersion.tsx b/rsconcept/frontend/src/components/select/SelectVersion.tsx index 5ca00ee6..534f5224 100644 --- a/rsconcept/frontend/src/components/select/SelectVersion.tsx +++ b/rsconcept/frontend/src/components/select/SelectVersion.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import { CProps } from '@/components/props'; -import SelectSingle from '@/components/ui/SelectSingle'; +import { SelectSingle } from '@/components/ui/Input'; import { IVersionInfo, VersionID } from '@/models/library'; import { labelVersion } from '@/utils/labels'; diff --git a/rsconcept/frontend/src/components/select/ToolbarGraphSelection.tsx b/rsconcept/frontend/src/components/select/ToolbarGraphSelection.tsx index e4ce8fe3..139af16e 100644 --- a/rsconcept/frontend/src/components/select/ToolbarGraphSelection.tsx +++ b/rsconcept/frontend/src/components/select/ToolbarGraphSelection.tsx @@ -12,7 +12,7 @@ import { IconReset } from '@/components/Icons'; import { CProps } from '@/components/props'; -import MiniButton from '@/components/ui/MiniButton'; +import { MiniButton } from '@/components/ui/Control'; import { Graph } from '@/models/Graph'; interface ToolbarGraphSelectionProps extends CProps.Styling { diff --git a/rsconcept/frontend/src/components/ui/Divider.tsx b/rsconcept/frontend/src/components/ui/Container/Divider.tsx similarity index 75% rename from rsconcept/frontend/src/components/ui/Divider.tsx rename to rsconcept/frontend/src/components/ui/Container/Divider.tsx index 7e1cbeb6..55aca7ba 100644 --- a/rsconcept/frontend/src/components/ui/Divider.tsx +++ b/rsconcept/frontend/src/components/ui/Container/Divider.tsx @@ -2,7 +2,7 @@ import clsx from 'clsx'; import { CProps } from '@/components/props'; -export interface DividerProps extends CProps.Styling { +interface DividerProps extends CProps.Styling { /** Indicates whether the divider is vertical. */ vertical?: boolean; @@ -13,7 +13,7 @@ export interface DividerProps extends CProps.Styling { /** * Horizontal or vertical divider with customizable margins and styling. */ -function Divider({ vertical, margins = 'mx-2', className, ...restProps }: DividerProps) { +export function Divider({ vertical, margins = 'mx-2', className, ...restProps }: DividerProps) { return (
); } - -export default Divider; diff --git a/rsconcept/frontend/src/components/ui/FlexColumn.tsx b/rsconcept/frontend/src/components/ui/Container/FlexColumn.tsx similarity index 74% rename from rsconcept/frontend/src/components/ui/FlexColumn.tsx rename to rsconcept/frontend/src/components/ui/Container/FlexColumn.tsx index 187e4ec7..7d83dc65 100644 --- a/rsconcept/frontend/src/components/ui/FlexColumn.tsx +++ b/rsconcept/frontend/src/components/ui/Container/FlexColumn.tsx @@ -6,12 +6,10 @@ import { CProps } from '@/components/props'; * `flex` column container. * This component is useful for creating vertical layouts with flexbox. */ -function FlexColumn({ className, children, ...restProps }: CProps.Div) { +export function FlexColumn({ className, children, ...restProps }: CProps.Div) { return (
{children}
); } - -export default FlexColumn; diff --git a/rsconcept/frontend/src/components/ui/Overlay.tsx b/rsconcept/frontend/src/components/ui/Container/Overlay.tsx similarity index 93% rename from rsconcept/frontend/src/components/ui/Overlay.tsx rename to rsconcept/frontend/src/components/ui/Container/Overlay.tsx index 13d15c91..f83c45de 100644 --- a/rsconcept/frontend/src/components/ui/Overlay.tsx +++ b/rsconcept/frontend/src/components/ui/Container/Overlay.tsx @@ -16,7 +16,7 @@ interface OverlayProps extends CProps.Styling { /** * Displays a transparent overlay over the main content. */ -function Overlay({ +export function Overlay({ children, className, position = 'top-0 right-0', @@ -31,5 +31,3 @@ function Overlay({
); } - -export default Overlay; diff --git a/rsconcept/frontend/src/components/ui/Tooltip.tsx b/rsconcept/frontend/src/components/ui/Container/Tooltip.tsx similarity index 97% rename from rsconcept/frontend/src/components/ui/Tooltip.tsx rename to rsconcept/frontend/src/components/ui/Container/Tooltip.tsx index 93033833..0ca58304 100644 --- a/rsconcept/frontend/src/components/ui/Tooltip.tsx +++ b/rsconcept/frontend/src/components/ui/Container/Tooltip.tsx @@ -20,7 +20,7 @@ interface TooltipProps extends Omit { /** * Displays content in a tooltip container. */ -function Tooltip({ +export function Tooltip({ text, children, layer = 'z-tooltip', @@ -58,5 +58,3 @@ function Tooltip({ document.body ); } - -export default Tooltip; diff --git a/rsconcept/frontend/src/components/ui/Container/index.tsx b/rsconcept/frontend/src/components/ui/Container/index.tsx new file mode 100644 index 00000000..7fd2040b --- /dev/null +++ b/rsconcept/frontend/src/components/ui/Container/index.tsx @@ -0,0 +1,4 @@ +export { Divider } from './Divider'; +export { FlexColumn } from './FlexColumn'; +export { Overlay } from './Overlay'; +export { type PlacesType, Tooltip } from './Tooltip'; diff --git a/rsconcept/frontend/src/components/ui/Button.tsx b/rsconcept/frontend/src/components/ui/Control/Button.tsx similarity index 97% rename from rsconcept/frontend/src/components/ui/Button.tsx rename to rsconcept/frontend/src/components/ui/Control/Button.tsx index 2dbe49dd..0ac1e812 100644 --- a/rsconcept/frontend/src/components/ui/Button.tsx +++ b/rsconcept/frontend/src/components/ui/Control/Button.tsx @@ -20,7 +20,7 @@ interface ButtonProps extends CProps.Control, CProps.Colors, CProps.Button { /** * Customizable `button` with text, icon, tooltips and various styles. */ -function Button({ +export function Button({ icon, text, title, @@ -66,5 +66,3 @@ function Button({ ); } - -export default Button; diff --git a/rsconcept/frontend/src/components/ui/LinkTopic.tsx b/rsconcept/frontend/src/components/ui/Control/LinkTopic.tsx similarity index 73% rename from rsconcept/frontend/src/components/ui/LinkTopic.tsx rename to rsconcept/frontend/src/components/ui/Control/LinkTopic.tsx index 7b044dd9..76891fc4 100644 --- a/rsconcept/frontend/src/components/ui/LinkTopic.tsx +++ b/rsconcept/frontend/src/components/ui/Control/LinkTopic.tsx @@ -1,7 +1,7 @@ import { urls } from '@/app/urls'; import { HelpTopic } from '@/models/miscellaneous'; -import TextURL from './TextURL'; +import { TextURL } from './TextURL'; interface TextURLProps { /** Text to display. */ @@ -13,8 +13,6 @@ interface TextURLProps { /** * Displays a link to a help topic. */ -function LinkTopic({ text, topic }: TextURLProps) { +export function LinkTopic({ text, topic }: TextURLProps) { return ; } - -export default LinkTopic; diff --git a/rsconcept/frontend/src/components/ui/MiniButton.tsx b/rsconcept/frontend/src/components/ui/Control/MiniButton.tsx similarity index 95% rename from rsconcept/frontend/src/components/ui/MiniButton.tsx rename to rsconcept/frontend/src/components/ui/Control/MiniButton.tsx index c02f1e20..85daf7e6 100644 --- a/rsconcept/frontend/src/components/ui/MiniButton.tsx +++ b/rsconcept/frontend/src/components/ui/Control/MiniButton.tsx @@ -17,7 +17,7 @@ interface MiniButtonProps extends CProps.Button { /** * Displays small transparent button with an icon. */ -function MiniButton({ +export function MiniButton({ icon, noHover, noPadding, @@ -53,5 +53,3 @@ function MiniButton({ ); } - -export default MiniButton; diff --git a/rsconcept/frontend/src/components/ui/SelectorButton.tsx b/rsconcept/frontend/src/components/ui/Control/SelectorButton.tsx similarity index 96% rename from rsconcept/frontend/src/components/ui/SelectorButton.tsx rename to rsconcept/frontend/src/components/ui/Control/SelectorButton.tsx index b97d2553..9c80f36e 100644 --- a/rsconcept/frontend/src/components/ui/SelectorButton.tsx +++ b/rsconcept/frontend/src/components/ui/Control/SelectorButton.tsx @@ -20,7 +20,7 @@ interface SelectorButtonProps extends CProps.Button { /** * Displays a button with an icon and text that opens a dropdown menu. */ -function SelectorButton({ +export function SelectorButton({ text, icon, title, @@ -59,5 +59,3 @@ function SelectorButton({ ); } - -export default SelectorButton; diff --git a/rsconcept/frontend/src/components/ui/SubmitButton.tsx b/rsconcept/frontend/src/components/ui/Control/SubmitButton.tsx similarity index 85% rename from rsconcept/frontend/src/components/ui/SubmitButton.tsx rename to rsconcept/frontend/src/components/ui/Control/SubmitButton.tsx index 42efba64..2eb2c16a 100644 --- a/rsconcept/frontend/src/components/ui/SubmitButton.tsx +++ b/rsconcept/frontend/src/components/ui/Control/SubmitButton.tsx @@ -16,7 +16,7 @@ interface SubmitButtonProps extends CProps.Button { /** * Displays submit type button with icon and text. */ -function SubmitButton({ text = 'ОК', icon, disabled, loading, className, ...restProps }: SubmitButtonProps) { +export function SubmitButton({ text = 'ОК', icon, disabled, loading, className, ...restProps }: SubmitButtonProps) { return ( ); } - -export default DropdownButton; diff --git a/rsconcept/frontend/src/components/ui/DropdownCheckbox.tsx b/rsconcept/frontend/src/components/ui/Dropdown/DropdownCheckbox.tsx similarity index 70% rename from rsconcept/frontend/src/components/ui/DropdownCheckbox.tsx rename to rsconcept/frontend/src/components/ui/Dropdown/DropdownCheckbox.tsx index 5235852e..c69f1880 100644 --- a/rsconcept/frontend/src/components/ui/DropdownCheckbox.tsx +++ b/rsconcept/frontend/src/components/ui/Dropdown/DropdownCheckbox.tsx @@ -1,9 +1,9 @@ import clsx from 'clsx'; -import Checkbox, { CheckboxProps } from './Checkbox'; +import { Checkbox, CheckboxProps } from '../Input'; /** Animated {@link Checkbox} inside a {@link Dropdown} item. */ -function DropdownCheckbox({ onChange: setValue, disabled, ...restProps }: CheckboxProps) { +export function DropdownCheckbox({ onChange: setValue, disabled, ...restProps }: CheckboxProps) { return (
); } - -export default DropdownCheckbox; diff --git a/rsconcept/frontend/src/components/ui/Dropdown/index.tsx b/rsconcept/frontend/src/components/ui/Dropdown/index.tsx new file mode 100644 index 00000000..b368e60a --- /dev/null +++ b/rsconcept/frontend/src/components/ui/Dropdown/index.tsx @@ -0,0 +1,4 @@ +export { Dropdown } from './Dropdown'; +export { DropdownButton } from './DropdownButton'; +export { DropdownCheckbox } from './DropdownCheckbox'; +export { useDropdown } from './useDropdown'; diff --git a/rsconcept/frontend/src/hooks/useDropdown.ts b/rsconcept/frontend/src/components/ui/Dropdown/useDropdown.ts similarity index 74% rename from rsconcept/frontend/src/hooks/useDropdown.ts rename to rsconcept/frontend/src/components/ui/Dropdown/useDropdown.ts index f7e8b383..284e7928 100644 --- a/rsconcept/frontend/src/hooks/useDropdown.ts +++ b/rsconcept/frontend/src/components/ui/Dropdown/useDropdown.ts @@ -2,9 +2,9 @@ import { useRef, useState } from 'react'; -import useClickedOutside from './useClickedOutside'; +import useClickedOutside from '@/hooks/useClickedOutside'; -function useDropdown() { +export function useDropdown() { const [isOpen, setIsOpen] = useState(false); const ref = useRef(null); @@ -18,5 +18,3 @@ function useDropdown() { hide: () => setIsOpen(false) }; } - -export default useDropdown; diff --git a/rsconcept/frontend/src/components/ui/Checkbox.tsx b/rsconcept/frontend/src/components/ui/Input/Checkbox.tsx similarity index 97% rename from rsconcept/frontend/src/components/ui/Checkbox.tsx rename to rsconcept/frontend/src/components/ui/Input/Checkbox.tsx index 2aa7e0d1..ce05be9b 100644 --- a/rsconcept/frontend/src/components/ui/Checkbox.tsx +++ b/rsconcept/frontend/src/components/ui/Input/Checkbox.tsx @@ -21,7 +21,7 @@ export interface CheckboxProps extends Omit ); } - -export default Checkbox; diff --git a/rsconcept/frontend/src/components/ui/CheckboxTristate.tsx b/rsconcept/frontend/src/components/ui/Input/CheckboxTristate.tsx similarity index 97% rename from rsconcept/frontend/src/components/ui/CheckboxTristate.tsx rename to rsconcept/frontend/src/components/ui/Input/CheckboxTristate.tsx index 6398c6df..7750e817 100644 --- a/rsconcept/frontend/src/components/ui/CheckboxTristate.tsx +++ b/rsconcept/frontend/src/components/ui/Input/CheckboxTristate.tsx @@ -17,7 +17,7 @@ export interface CheckboxTristateProps extends Omit ); } - -export default CheckboxTristate; diff --git a/rsconcept/frontend/src/components/ui/ErrorField.tsx b/rsconcept/frontend/src/components/ui/Input/ErrorField.tsx similarity index 71% rename from rsconcept/frontend/src/components/ui/ErrorField.tsx rename to rsconcept/frontend/src/components/ui/Input/ErrorField.tsx index 9788a422..a1524ca5 100644 --- a/rsconcept/frontend/src/components/ui/ErrorField.tsx +++ b/rsconcept/frontend/src/components/ui/Input/ErrorField.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx'; import { FieldError, GlobalError } from 'react-hook-form'; -import { CProps } from '../props'; +import { CProps } from '@/components/props'; interface ErrorFieldProps extends CProps.Styling { error?: FieldError | GlobalError; @@ -10,7 +10,7 @@ interface ErrorFieldProps extends CProps.Styling { /** * Displays an error message for input field. */ -function ErrorField({ error, className, ...restProps }: ErrorFieldProps): React.ReactElement | null { +export function ErrorField({ error, className, ...restProps }: ErrorFieldProps): React.ReactElement | null { if (!error) { return null; } @@ -20,5 +20,3 @@ function ErrorField({ error, className, ...restProps }: ErrorFieldProps): React.
); } - -export default ErrorField; diff --git a/rsconcept/frontend/src/components/ui/FileInput.tsx b/rsconcept/frontend/src/components/ui/Input/FileInput.tsx similarity index 88% rename from rsconcept/frontend/src/components/ui/FileInput.tsx rename to rsconcept/frontend/src/components/ui/Input/FileInput.tsx index bebcc19a..4496b36e 100644 --- a/rsconcept/frontend/src/components/ui/FileInput.tsx +++ b/rsconcept/frontend/src/components/ui/Input/FileInput.tsx @@ -6,8 +6,8 @@ import { useRef, useState } from 'react'; import { IconUpload } from '@/components/Icons'; import { CProps } from '@/components/props'; -import Button from './Button'; -import Label from './Label'; +import { Button } from '../Control'; +import { Label } from './Label'; interface FileInputProps extends Omit { /** Label to display in file upload button. */ @@ -23,7 +23,7 @@ interface FileInputProps extends Omit { /** * FileInput is a component for selecting a `file`, displaying the selected file name. */ -function FileInput({ id, label, acceptType, title, className, style, onChange, ...restProps }: FileInputProps) { +export function FileInput({ id, label, acceptType, title, className, style, onChange, ...restProps }: FileInputProps) { const inputRef = useRef(null); const [fileName, setFileName] = useState(''); @@ -56,5 +56,3 @@ function FileInput({ id, label, acceptType, title, className, style, onChange, . ); } - -export default FileInput; diff --git a/rsconcept/frontend/src/components/ui/Label.tsx b/rsconcept/frontend/src/components/ui/Input/Label.tsx similarity index 87% rename from rsconcept/frontend/src/components/ui/Label.tsx rename to rsconcept/frontend/src/components/ui/Input/Label.tsx index 7927fad8..4f9de845 100644 --- a/rsconcept/frontend/src/components/ui/Label.tsx +++ b/rsconcept/frontend/src/components/ui/Input/Label.tsx @@ -12,7 +12,7 @@ interface LabelProps extends CProps.Label { * * Note: Html label component is used only if `htmlFor` prop is set. */ -function Label({ text, className, ...restProps }: LabelProps) { +export function Label({ text, className, ...restProps }: LabelProps) { if (!text) { return null; } @@ -30,5 +30,3 @@ function Label({ text, className, ...restProps }: LabelProps) { ); } } - -export default Label; diff --git a/rsconcept/frontend/src/components/ui/SelectMulti.tsx b/rsconcept/frontend/src/components/ui/Input/SelectMulti.tsx similarity index 96% rename from rsconcept/frontend/src/components/ui/SelectMulti.tsx rename to rsconcept/frontend/src/components/ui/Input/SelectMulti.tsx index 400aad53..fe46ae26 100644 --- a/rsconcept/frontend/src/components/ui/SelectMulti.tsx +++ b/rsconcept/frontend/src/components/ui/Input/SelectMulti.tsx @@ -45,7 +45,7 @@ export interface SelectMultiProps = Grou /** * Displays a multi-select component. */ -function SelectMulti = GroupBase