From 1972d9e6d44fa0917233c9fd1656c1385b4cb786 Mon Sep 17 00:00:00 2001 From: Samandar Turgunboyev Date: Tue, 25 Nov 2025 20:28:59 +0500 Subject: [PATCH] first commit --- package-lock.json | 593 +++++++++++++- package.json | 21 +- public/logo.png | Bin 0 -> 69868 bytes src/App.tsx | 2 + src/SidebarLayout.tsx | 17 + src/features/districts/lib/data.ts | 25 + src/features/districts/lib/form.ts | 6 + src/features/districts/ui/AddDistrict.tsx | 147 ++++ src/features/districts/ui/DistrictsList.tsx | 196 +++++ src/features/doctors/lib/data.ts | 52 ++ src/features/doctors/lib/form.ts | 15 + src/features/doctors/ui/AddedDoctor.tsx | 306 ++++++++ .../doctors/ui/DoctorDetailDialog.tsx | 94 +++ src/features/doctors/ui/DoctorsList.tsx | 292 +++++++ src/features/location/lib/data.ts | 77 ++ .../location/ui/LocationDetailDialog.tsx | 100 +++ src/features/location/ui/LocationList.tsx | 224 ++++++ src/features/objects/lib/data.ts | 33 + src/features/objects/lib/form.ts | 9 + src/features/objects/ui/AddedObject.tsx | 194 +++++ src/features/objects/ui/ObjectDetail.tsx | 76 ++ src/features/objects/ui/ObjectList.tsx | 231 ++++++ src/features/pharm/lib/data.ts | 11 + src/features/pharm/lib/form.ts | 5 + src/features/pharm/ui/AddedPharm.tsx | 106 +++ src/features/pharm/ui/PharmList.tsx | 173 +++++ src/features/pharmacies/lib/data.ts | 82 ++ src/features/pharmacies/lib/form.ts | 13 + .../pharmacies/ui/AddedPharmacies.tsx | 277 +++++++ .../pharmacies/ui/PharmDetailDialog.tsx | 109 +++ src/features/pharmacies/ui/PharmaciesList.tsx | 248 ++++++ src/features/pill/lib/data.ts | 18 + src/features/pill/lib/form.ts | 6 + src/features/pill/ui/AddedPill.tsx | 144 ++++ src/features/pill/ui/PillList.tsx | 174 +++++ src/features/plans/lib/data.ts | 10 + src/features/plans/lib/form.ts | 7 + src/features/plans/ui/AddedPlan.tsx | 165 ++++ src/features/plans/ui/PlanDetail.tsx | 74 ++ src/features/plans/ui/PlansList.tsx | 308 ++++++++ src/features/region/lib/data.ts | 19 + src/features/region/lib/form.ts | 5 + src/features/region/ui/AddedRegion.tsx | 83 ++ src/features/region/ui/RegionList.tsx | 150 ++++ src/features/reports/lib/data.ts | 69 ++ src/features/reports/lib/form.ts | 6 + src/features/reports/ui/AddedReport.tsx | 126 +++ src/features/reports/ui/ReportsList.tsx | 158 ++++ src/features/specifications/lib/data.ts | 81 ++ src/features/specifications/lib/form.ts | 20 + .../specifications/ui/AddedSpecification.tsx | 303 ++++++++ .../ui/SpecificationDetail .tsx | 151 ++++ .../specifications/ui/SpecificationsList.tsx | 187 +++++ src/features/tour-plan/lib/data.ts | 60 ++ src/features/tour-plan/lib/form.ts | 9 + src/features/tour-plan/ui/AddedTourPlan.tsx | 210 +++++ .../tour-plan/ui/TourPlanDetailDialog.tsx | 100 +++ src/features/tour-plan/ui/TourPlanList.tsx | 271 +++++++ src/features/users/lib/data.ts | 52 ++ src/features/users/lib/form.ts | 8 + src/features/users/ui/AddUsers.tsx | 182 +++++ src/features/users/ui/UsersList.tsx | 295 +++++++ src/main.tsx | 10 +- src/pages/Districts.tsx | 12 + src/pages/Doctors.tsx | 12 + src/pages/Home.tsx | 6 +- src/pages/Login.tsx | 166 ++++ src/pages/Objects.tsx | 12 + src/pages/Pharm.tsx | 12 + src/pages/Pharmacies.tsx | 12 + src/pages/Pill.tsx | 12 + src/pages/Plans.tsx | 12 + src/pages/Region.tsx | 12 + src/pages/Reports.tsx | 12 + src/pages/SentLocations.tsx | 12 + src/pages/Specifications.tsx | 12 + src/pages/TourPlan.tsx | 12 + src/providers/routing/AppRoutes.tsx | 65 ++ src/providers/routing/config.tsx | 4 +- src/providers/theme/ThemeProvider.tsx | 51 +- src/providers/theme/themeContext.ts | 16 + src/shared/lib/onlyNumber.ts | 6 + src/shared/ui/badge.tsx | 46 ++ src/shared/ui/calendar.tsx | 214 ++++++ src/shared/ui/card.tsx | 92 +++ src/shared/ui/checkbox.tsx | 30 + src/shared/ui/dialog.tsx | 141 ++++ src/shared/ui/form.tsx | 168 ++++ src/shared/ui/input.tsx | 21 + src/shared/ui/label.tsx | 22 + src/shared/ui/popover.tsx | 46 ++ src/shared/ui/select.tsx | 185 +++++ src/shared/ui/separator.tsx | 26 + src/shared/ui/sheet.tsx | 139 ++++ src/shared/ui/sidebar.tsx | 726 ++++++++++++++++++ src/shared/ui/skeleton.tsx | 13 + src/shared/ui/sonner.tsx | 38 + src/shared/ui/table.tsx | 114 +++ src/shared/ui/textarea.tsx | 18 + src/shared/ui/tooltip.tsx | 59 ++ src/widgets/sidebar-layout/index.tsx | 158 ++++ 101 files changed, 9861 insertions(+), 48 deletions(-) create mode 100644 public/logo.png create mode 100644 src/SidebarLayout.tsx create mode 100644 src/features/districts/lib/data.ts create mode 100644 src/features/districts/lib/form.ts create mode 100644 src/features/districts/ui/AddDistrict.tsx create mode 100644 src/features/districts/ui/DistrictsList.tsx create mode 100644 src/features/doctors/lib/data.ts create mode 100644 src/features/doctors/lib/form.ts create mode 100644 src/features/doctors/ui/AddedDoctor.tsx create mode 100644 src/features/doctors/ui/DoctorDetailDialog.tsx create mode 100644 src/features/doctors/ui/DoctorsList.tsx create mode 100644 src/features/location/lib/data.ts create mode 100644 src/features/location/ui/LocationDetailDialog.tsx create mode 100644 src/features/location/ui/LocationList.tsx create mode 100644 src/features/objects/lib/data.ts create mode 100644 src/features/objects/lib/form.ts create mode 100644 src/features/objects/ui/AddedObject.tsx create mode 100644 src/features/objects/ui/ObjectDetail.tsx create mode 100644 src/features/objects/ui/ObjectList.tsx create mode 100644 src/features/pharm/lib/data.ts create mode 100644 src/features/pharm/lib/form.ts create mode 100644 src/features/pharm/ui/AddedPharm.tsx create mode 100644 src/features/pharm/ui/PharmList.tsx create mode 100644 src/features/pharmacies/lib/data.ts create mode 100644 src/features/pharmacies/lib/form.ts create mode 100644 src/features/pharmacies/ui/AddedPharmacies.tsx create mode 100644 src/features/pharmacies/ui/PharmDetailDialog.tsx create mode 100644 src/features/pharmacies/ui/PharmaciesList.tsx create mode 100644 src/features/pill/lib/data.ts create mode 100644 src/features/pill/lib/form.ts create mode 100644 src/features/pill/ui/AddedPill.tsx create mode 100644 src/features/pill/ui/PillList.tsx create mode 100644 src/features/plans/lib/data.ts create mode 100644 src/features/plans/lib/form.ts create mode 100644 src/features/plans/ui/AddedPlan.tsx create mode 100644 src/features/plans/ui/PlanDetail.tsx create mode 100644 src/features/plans/ui/PlansList.tsx create mode 100644 src/features/region/lib/data.ts create mode 100644 src/features/region/lib/form.ts create mode 100644 src/features/region/ui/AddedRegion.tsx create mode 100644 src/features/region/ui/RegionList.tsx create mode 100644 src/features/reports/lib/data.ts create mode 100644 src/features/reports/lib/form.ts create mode 100644 src/features/reports/ui/AddedReport.tsx create mode 100644 src/features/reports/ui/ReportsList.tsx create mode 100644 src/features/specifications/lib/data.ts create mode 100644 src/features/specifications/lib/form.ts create mode 100644 src/features/specifications/ui/AddedSpecification.tsx create mode 100644 src/features/specifications/ui/SpecificationDetail .tsx create mode 100644 src/features/specifications/ui/SpecificationsList.tsx create mode 100644 src/features/tour-plan/lib/data.ts create mode 100644 src/features/tour-plan/lib/form.ts create mode 100644 src/features/tour-plan/ui/AddedTourPlan.tsx create mode 100644 src/features/tour-plan/ui/TourPlanDetailDialog.tsx create mode 100644 src/features/tour-plan/ui/TourPlanList.tsx create mode 100644 src/features/users/lib/data.ts create mode 100644 src/features/users/lib/form.ts create mode 100644 src/features/users/ui/AddUsers.tsx create mode 100644 src/features/users/ui/UsersList.tsx create mode 100644 src/pages/Districts.tsx create mode 100644 src/pages/Doctors.tsx create mode 100644 src/pages/Login.tsx create mode 100644 src/pages/Objects.tsx create mode 100644 src/pages/Pharm.tsx create mode 100644 src/pages/Pharmacies.tsx create mode 100644 src/pages/Pill.tsx create mode 100644 src/pages/Plans.tsx create mode 100644 src/pages/Region.tsx create mode 100644 src/pages/Reports.tsx create mode 100644 src/pages/SentLocations.tsx create mode 100644 src/pages/Specifications.tsx create mode 100644 src/pages/TourPlan.tsx create mode 100644 src/providers/theme/themeContext.ts create mode 100644 src/shared/lib/onlyNumber.ts create mode 100644 src/shared/ui/badge.tsx create mode 100644 src/shared/ui/calendar.tsx create mode 100644 src/shared/ui/card.tsx create mode 100644 src/shared/ui/checkbox.tsx create mode 100644 src/shared/ui/dialog.tsx create mode 100644 src/shared/ui/form.tsx create mode 100644 src/shared/ui/input.tsx create mode 100644 src/shared/ui/label.tsx create mode 100644 src/shared/ui/popover.tsx create mode 100644 src/shared/ui/select.tsx create mode 100644 src/shared/ui/separator.tsx create mode 100644 src/shared/ui/sheet.tsx create mode 100644 src/shared/ui/sidebar.tsx create mode 100644 src/shared/ui/skeleton.tsx create mode 100644 src/shared/ui/sonner.tsx create mode 100644 src/shared/ui/table.tsx create mode 100644 src/shared/ui/textarea.tsx create mode 100644 src/shared/ui/tooltip.tsx create mode 100644 src/widgets/sidebar-layout/index.tsx diff --git a/package-lock.json b/package-lock.json index fc1cbaf..1e415ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,24 +8,39 @@ "name": "meridyn_bot_admin", "version": "0.0.0", "dependencies": { + "@hookform/resolvers": "^5.2.2", + "@pbe/react-yandex-maps": "^1.2.5", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.15", - "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/vite": "^4.1.7", "@tanstack/react-query": "^5.77.1", "axios": "^1.9.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "date-fns": "^4.1.0", "dayjs": "^1.11.18", "i18next": "^25.5.2", "i18next-browser-languagedetector": "^8.2.0", "lucide-react": "^0.544.0", + "next-themes": "^0.4.6", "react": "^19.1.1", + "react-day-picker": "^9.11.2", "react-dom": "^19.1.1", "react-github-btn": "^1.4.0", + "react-hook-form": "^7.66.1", "react-i18next": "^15.7.3", "react-router-dom": "^7.9.6", + "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "tailwindcss": "^4.1.13" + "tailwindcss": "^4.1.13", + "zod": "^4.1.13" }, "devDependencies": { "@eslint/js": "^9.25.0", @@ -318,6 +333,12 @@ "node": ">=6.9.0" } }, + "node_modules/@date-fns/tz": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.4.1.tgz", + "integrity": "sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==", + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", @@ -895,6 +916,18 @@ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==" }, + "node_modules/@hookform/resolvers": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz", + "integrity": "sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==", + "license": "MIT", + "dependencies": { + "@standard-schema/utils": "^0.3.0" + }, + "peerDependencies": { + "react-hook-form": "^7.55.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1042,6 +1075,27 @@ "node": ">= 8" } }, + "node_modules/@pbe/react-yandex-maps": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@pbe/react-yandex-maps/-/react-yandex-maps-1.2.5.tgz", + "integrity": "sha512-cBojin5e1fPx9XVCAqHQJsCnHGMeBNsP0TrNfpWCrPFfxb30ye+JgcGr2mn767Gbr1d+RufBLRiUcX2kaiAwjQ==", + "license": "MIT", + "dependencies": { + "@types/yandex-maps": "2.1.29" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, "node_modules/@radix-ui/primitive": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", @@ -1069,6 +1123,36 @@ } } }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-collection": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", @@ -1094,6 +1178,24 @@ } } }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", @@ -1122,6 +1224,60 @@ } } }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-direction": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", @@ -1245,6 +1401,52 @@ } } }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.8.tgz", + "integrity": "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-menu": { "version": "2.1.16", "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", @@ -1284,6 +1486,79 @@ } } }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popper": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", @@ -1383,6 +1658,24 @@ } } }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", @@ -1413,10 +1706,170 @@ } } }, - "node_modules/@radix-ui/react-slot": { + "node_modules/@radix-ui/react-select": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.8.tgz", + "integrity": "sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, @@ -1510,6 +1963,21 @@ } } }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", @@ -1544,6 +2012,29 @@ } } }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/rect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", @@ -1841,6 +2332,12 @@ "win32" ] }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@tailwindcss/node": { "version": "4.1.13", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", @@ -2192,6 +2689,12 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/yandex-maps": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/@types/yandex-maps/-/yandex-maps-2.1.29.tgz", + "integrity": "sha512-nuibRWj3RU/9KXlCzTrRtDE+n6V9l7NbT9JakicqZ5OXIdwyb6blvV2Uwn6lB58WYm3DSUDP2I2AWlnWMc8z2w==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.44.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.44.1.tgz", @@ -2709,6 +3212,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", "dependencies": { "clsx": "^2.1.1" }, @@ -2840,6 +3344,22 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-jalali": { + "version": "4.1.0-0", + "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", + "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==", + "license": "MIT" + }, "node_modules/dayjs": { "version": "1.11.18", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", @@ -4097,6 +4617,7 @@ "version": "0.544.0", "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.544.0.tgz", "integrity": "sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw==", + "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -4243,6 +4764,16 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -4465,6 +4996,27 @@ "node": ">=0.10.0" } }, + "node_modules/react-day-picker": { + "version": "9.11.2", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.11.2.tgz", + "integrity": "sha512-TD/xMUGg2oiKX8jUR21MST5pj+7Y36097YtnDHQFlIcZOu3mbLLw2B2JqEByEGrR3HHveWYnKlyls6WqJgohAg==", + "license": "MIT", + "dependencies": { + "@date-fns/tz": "^1.4.1", + "date-fns": "^4.1.0", + "date-fns-jalali": "^4.1.0-0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/react-dom": { "version": "19.1.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", @@ -4487,6 +5039,22 @@ "react": ">=16.3.0" } }, + "node_modules/react-hook-form": { + "version": "7.66.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.66.1.tgz", + "integrity": "sha512-2KnjpgG2Rhbi+CIiIBQQ9Df6sMGH5ExNyFl4Hw9qO7pIqMBR8Bvu9RQyjl3JM4vehzCh9soiNUM/xYMswb2EiA==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-i18next": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz", @@ -4811,6 +5379,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/sonner": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5398,6 +5976,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", + "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index 9076f2c..6008684 100644 --- a/package.json +++ b/package.json @@ -12,24 +12,39 @@ "prepare": "husky" }, "dependencies": { + "@hookform/resolvers": "^5.2.2", + "@pbe/react-yandex-maps": "^1.2.5", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.15", - "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/vite": "^4.1.7", "@tanstack/react-query": "^5.77.1", "axios": "^1.9.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "date-fns": "^4.1.0", "dayjs": "^1.11.18", "i18next": "^25.5.2", "i18next-browser-languagedetector": "^8.2.0", "lucide-react": "^0.544.0", + "next-themes": "^0.4.6", "react": "^19.1.1", + "react-day-picker": "^9.11.2", "react-dom": "^19.1.1", "react-github-btn": "^1.4.0", + "react-hook-form": "^7.66.1", "react-i18next": "^15.7.3", "react-router-dom": "^7.9.6", + "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "tailwindcss": "^4.1.13" + "tailwindcss": "^4.1.13", + "zod": "^4.1.13" }, "devDependencies": { "@eslint/js": "^9.25.0", @@ -56,4 +71,4 @@ "eslint src --fix" ] } -} \ No newline at end of file +} diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..57c651dc0ecdc3df50fc93d728ab5c8840faa205 GIT binary patch literal 69868 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

V&Kf0`v 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 { return ( + ); }; diff --git a/src/SidebarLayout.tsx b/src/SidebarLayout.tsx new file mode 100644 index 0000000..874882f --- /dev/null +++ b/src/SidebarLayout.tsx @@ -0,0 +1,17 @@ +import { SidebarProvider, SidebarTrigger } from "@/shared/ui/sidebar"; +import { AppSidebar } from "@/widgets/sidebar-layout"; +import React from "react"; + +const SidebarLayout = ({ children }: { children: React.ReactNode }) => { + return ( + + +

+ + {children} +
+ + ); +}; + +export default SidebarLayout; diff --git a/src/features/districts/lib/data.ts b/src/features/districts/lib/data.ts new file mode 100644 index 0000000..edf7c5e --- /dev/null +++ b/src/features/districts/lib/data.ts @@ -0,0 +1,25 @@ +import { FakeUserList, type User } from "@/features/users/lib/data"; + +export interface District { + id: number; + name: string; + user: User; +} + +export const fakeDistrict: District[] = [ + { + id: 1, + name: "Chilonzor", + user: FakeUserList[0], + }, + { + id: 2, + name: "Yunusobod", + user: FakeUserList[1], + }, + { + id: 3, + name: "Urgut", + user: FakeUserList[2], + }, +]; diff --git a/src/features/districts/lib/form.ts b/src/features/districts/lib/form.ts new file mode 100644 index 0000000..eb8b59c --- /dev/null +++ b/src/features/districts/lib/form.ts @@ -0,0 +1,6 @@ +import z from "zod"; + +export const addDistrict = z.object({ + name: z.string().min(2, "Tuman nomi kamida 2 ta harf bo‘lishi kerak"), + userId: z.string().min(1, "Foydalanuvchini tanlang"), +}); diff --git a/src/features/districts/ui/AddDistrict.tsx b/src/features/districts/ui/AddDistrict.tsx new file mode 100644 index 0000000..2a73b9e --- /dev/null +++ b/src/features/districts/ui/AddDistrict.tsx @@ -0,0 +1,147 @@ +import type { District } from "@/features/districts/lib/data"; +import { addDistrict } from "@/features/districts/lib/form"; +import { FakeUserList } from "@/features/users/lib/data"; +import { Button } from "@/shared/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormMessage, +} from "@/shared/ui/form"; +import { Input } from "@/shared/ui/input"; +import { Label } from "@/shared/ui/label"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/shared/ui/select"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { Loader2 } from "lucide-react"; +import { useState, type Dispatch, type SetStateAction } from "react"; +import { useForm } from "react-hook-form"; +import z from "zod"; + +type FormValues = z.infer; + +interface Props { + initialValues: District | null; + setDistricts: Dispatch>; + setDialogOpen: Dispatch>; +} + +export default function AddDistrict({ + initialValues, + setDistricts, + setDialogOpen, +}: Props) { + const [load, setLoad] = useState(false); + const form = useForm({ + resolver: zodResolver(addDistrict), + defaultValues: { + name: initialValues?.name ?? "", + userId: initialValues ? String(initialValues.user.id) : "", + }, + }); + + function onSubmit(values: FormValues) { + const selectedUser = FakeUserList.find( + (u) => u.id === Number(values.userId), + ); + + if (!selectedUser) return; + setLoad(true); + if (initialValues) { + setTimeout(() => { + setDistricts((prev) => + prev.map((d) => + d.id === initialValues.id + ? { + ...d, + name: values.name, + user: selectedUser, + } + : d, + ), + ); + setDialogOpen(false); + setLoad(false); + }, 2000); + } else { + setTimeout(() => { + setDistricts((prev) => [ + ...prev, + { + id: prev.length ? prev[prev.length - 1].id + 1 : 1, + name: values.name, + user: selectedUser, + }, + ]); + setDialogOpen(false); + setLoad(false); + }, 2000); + } + } + + return ( +
+ + ( + + + + + + + + )} + /> + + ( + + + + + + + + )} + /> + + {/* SUBMIT */} + + + + ); +} diff --git a/src/features/districts/ui/DistrictsList.tsx b/src/features/districts/ui/DistrictsList.tsx new file mode 100644 index 0000000..cea660c --- /dev/null +++ b/src/features/districts/ui/DistrictsList.tsx @@ -0,0 +1,196 @@ +import { fakeDistrict, type District } from "@/features/districts/lib/data"; +import AddDistrict from "@/features/districts/ui/AddDistrict"; +import { Button } from "@/shared/ui/button"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/shared/ui/dialog"; +import { Input } from "@/shared/ui/input"; + +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/shared/ui/table"; +import clsx from "clsx"; + +import { ChevronLeft, ChevronRight, Edit, Plus, Trash } from "lucide-react"; +import { useState } from "react"; + +const DistrictsList = () => { + const [currentPage, setCurrentPage] = useState(1); + const totalPages = 5; + + const [districts, setDistricts] = useState(fakeDistrict); + + const [search, setSearch] = useState(""); + + const [userSearch, setUserSearch] = useState(""); + + const [editing, setEditing] = useState(null); + + const [dialogOpen, setDialogOpen] = useState(false); + + const filtered = districts.filter((d) => { + return ( + d.name.toLowerCase().includes(search.toLowerCase()) && + `${d.user.firstName} ${d.user.lastName}` + .toLowerCase() + .includes(userSearch.toLowerCase()) + ); + }); + + function deleteDistrict(id: number) { + setDistricts((prev) => prev.filter((d) => d.id !== id)); + } + + return ( +
+
+

Tumanlar ro‘yxati

+ +
+ setSearch(e.target.value)} + className="max-w-sm h-12" + /> + + setUserSearch(e.target.value)} + className="max-w-sm h-12" + /> + + + + + + + + + {editing ? "Tumanni tahrirlash" : "Yangi tuman qo‘shish"} + + + + + + +
+
+ +
+ + + + ID + Tuman nomi + Kim qo‘shgan + Harakatlar + + + + + {filtered.map((d) => ( + + {d.id} + {d.name} + + {d.user.firstName} {d.user.lastName} + + + + + + + + ))} + + {filtered.length === 0 && ( + + + Hech qanday tuman topilmadi + + + )} + +
+
+ +
+ + {Array.from({ length: totalPages }, (_, i) => ( + + ))} + +
+
+ ); +}; + +export default DistrictsList; diff --git a/src/features/doctors/lib/data.ts b/src/features/doctors/lib/data.ts new file mode 100644 index 0000000..e311f7d --- /dev/null +++ b/src/features/doctors/lib/data.ts @@ -0,0 +1,52 @@ +import { fakeDistrict, type District } from "@/features/districts/lib/data"; +import { + ObjectListData, + type ObjectListType, +} from "@/features/objects/lib/data"; +import { FakeUserList, type User } from "@/features/users/lib/data"; + +export interface DoctorListType { + id: number; + first_name: string; + last_name: string; + phone_number: string; + work: string; + spec: string; + desc: string; + district: District; + user: User; + object: ObjectListType; + long: string; + lat: string; +} + +export const doctorListData: DoctorListType[] = [ + { + id: 1, + first_name: "Ali", + last_name: "Valiyev", + phone_number: "+998901234567", + work: "Toshkent Shifoxonasi", + spec: "Kardiolog", + desc: "Malakali kardiolog, 10 yillik tajribaga ega", + district: fakeDistrict[0], + user: FakeUserList[0], + object: ObjectListData[0], + lat: ObjectListData[0].lat, + long: ObjectListData[0].long, + }, + { + id: 2, + first_name: "Madina", + last_name: "Karimova", + phone_number: "+998901112233", + work: "Yunusobod Poliklinikasi", + spec: "Pediatr", + desc: "Bolalar shifokori, 7 yillik ish tajribasi mavjud", + district: fakeDistrict[1], + user: FakeUserList[1], + object: ObjectListData[1], + lat: ObjectListData[1].lat, + long: ObjectListData[1].long, + }, +]; diff --git a/src/features/doctors/lib/form.ts b/src/features/doctors/lib/form.ts new file mode 100644 index 0000000..b2d6f57 --- /dev/null +++ b/src/features/doctors/lib/form.ts @@ -0,0 +1,15 @@ +import z from "zod"; + +export const DoctorForm = z.object({ + first_name: z.string().min(1, { message: "Majburiy maydon" }), + last_name: z.string().min(1, { message: "Majburiy maydon" }), + phone_number: z.string().min(1, { message: "Majburiy maydon" }), + work: z.string().min(1, { message: "Majburiy maydon" }), + spec: z.string().min(1, { message: "Majburiy maydon" }), + desc: z.string().min(1, { message: "Majburiy maydon" }), + district: z.string().min(1, { message: "Majburiy maydon" }), + user: z.string().min(1, { message: "Majburiy maydon" }), + object: z.string().min(1, { message: "Majburiy maydon" }), + long: z.string().min(1, { message: "Majburiy maydon" }), + lat: z.string().min(1, { message: "Majburiy maydon" }), +}); diff --git a/src/features/doctors/ui/AddedDoctor.tsx b/src/features/doctors/ui/AddedDoctor.tsx new file mode 100644 index 0000000..4469429 --- /dev/null +++ b/src/features/doctors/ui/AddedDoctor.tsx @@ -0,0 +1,306 @@ +import { fakeDistrict } from "@/features/districts/lib/data"; +import type { DoctorListType } from "@/features/doctors/lib/data"; +import { DoctorForm } from "@/features/doctors/lib/form"; +import { ObjectListData } from "@/features/objects/lib/data"; +import { FakeUserList } from "@/features/users/lib/data"; +import formatPhone from "@/shared/lib/formatPhone"; +import { Button } from "@/shared/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormMessage, +} from "@/shared/ui/form"; +import { Input } from "@/shared/ui/input"; +import { Label } from "@/shared/ui/label"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/shared/ui/select"; +import { Textarea } from "@/shared/ui/textarea"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { Circle, Map, Placemark, YMaps } from "@pbe/react-yandex-maps"; +import { Loader2 } from "lucide-react"; +import { useState, type Dispatch, type SetStateAction } from "react"; +import { useForm } from "react-hook-form"; +import type z from "zod"; + +interface Props { + initialValues: DoctorListType | null; + setDialogOpen: Dispatch>; + setData: Dispatch>; +} + +const AddedDoctor = ({ initialValues, setData, setDialogOpen }: Props) => { + const [load, setLoad] = useState(false); + const form = useForm>({ + resolver: zodResolver(DoctorForm), + defaultValues: { + desc: initialValues?.desc || "", + district: initialValues?.district.id.toString() || "", + first_name: initialValues?.first_name || "", + last_name: initialValues?.last_name || "", + lat: initialValues?.lat || "41.2949", + long: initialValues?.long || "69.2361", + object: initialValues?.object.id.toString() || "", + phone_number: initialValues?.phone_number || "+998", + spec: initialValues?.spec || "", + work: initialValues?.work || "", + user: initialValues?.user.id.toString() || "", + }, + }); + + const lat = form.watch("lat"); + const long = form.watch("long"); + + const handleMapClick = (e: { get: (key: string) => number[] }) => { + const coords = e.get("coords"); + form.setValue("lat", coords[0].toString()); + form.setValue("long", coords[1].toString()); + }; + + function onSubmit(values: z.infer) { + setLoad(true); + const newObject: DoctorListType = { + id: initialValues ? initialValues.id : Date.now(), + user: FakeUserList.find((u) => u.id === Number(values.user))!, + district: fakeDistrict.find((d) => d.id === Number(values.district))!, + desc: values.desc, + first_name: values.first_name, + last_name: values.last_name, + lat: values.lat, + long: values.long, + object: ObjectListData.find((d) => d.id === Number(values.object))!, + phone_number: values.phone_number, + spec: values.spec, + work: values.work, + }; + + setTimeout(() => { + setData((prev) => { + if (initialValues) { + return prev.map((item) => + item.id === initialValues.id ? newObject : item, + ); + } else { + return [...prev, newObject]; + } + }); + setLoad(false); + setDialogOpen(false); + }, 2000); + } + + return ( +
+ + ( + + + + + + + + )} + /> + + ( + + + + + + + + )} + /> + + ( + + + + + + + + )} + /> + + ( + + + + + + + + )} + /> + + ( + + + + + + + + )} + /> + + ( + + + +