amliq-dashboard 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +3 -0
- package/.env.production +1 -0
- package/Dockerfile +26 -0
- package/QUICK_START.md +267 -0
- package/README.md +161 -0
- package/TESTING_GUIDE.md +322 -0
- package/dist/.well-known/ai-plugin.json +15 -0
- package/dist/_headers +8 -0
- package/dist/_redirects +1 -0
- package/dist/assets/APIKeys-BvwFauIs.js +6 -0
- package/dist/assets/APIKeys-DaMSBZQL.js +1 -0
- package/dist/assets/AdverseMedia-DckXfMzS.js +4 -0
- package/dist/assets/AlertDetailPage-Bc2_zwu_.js +1 -0
- package/dist/assets/AlertQueue-DFtBiRoM.js +8 -0
- package/dist/assets/Analytics-DtruB5lQ.js +1 -0
- package/dist/assets/AuditTrail-BK68ePu0.js +1 -0
- package/dist/assets/AuthDivider-gRHEt7gx.js +1 -0
- package/dist/assets/Badge-B9VFkofy.js +1 -0
- package/dist/assets/BatchJobs-Bz6KFnXD.js +6 -0
- package/dist/assets/BillingPage-R9nQ5nFb.js +11 -0
- package/dist/assets/Card-Cw-T_-oU.js +1 -0
- package/dist/assets/CaseDetail-DYs7Zg_y.js +7 -0
- package/dist/assets/CaseManagement-B1Q4Dp1Y.js +1 -0
- package/dist/assets/ComplianceReport-Dhssqc9T.js +1 -0
- package/dist/assets/Configuration-B92kl9T0.js +1 -0
- package/dist/assets/CryptoScreening-C7yFlskC.js +1 -0
- package/dist/assets/Dashboard-w4-Nhv9q.js +17 -0
- package/dist/assets/DataSources-u3-Ri_5_.js +3 -0
- package/dist/assets/EDDWorkflow-CFzlEO0e.js +1 -0
- package/dist/assets/EmptyState-Do0xJAT9.js +6 -0
- package/dist/assets/ForgotPassword-BPYyQFQp.js +1 -0
- package/dist/assets/LandingPage-CjaP0zw4.js +41 -0
- package/dist/assets/ListsMarketplace-CG6KkT9B.js +6 -0
- package/dist/assets/Login-677LEGP1.js +1 -0
- package/dist/assets/MFASetup-BxqCPvui.js +1 -0
- package/dist/assets/Monitoring-9TN9MK4y.js +1 -0
- package/dist/assets/Onboarding-Cf0Y83lX.js +1 -0
- package/dist/assets/Operations-CcXwc2xw.js +10 -0
- package/dist/assets/Overview-B_Ky0VWV.js +1 -0
- package/dist/assets/PEPScreening-pUQjTH9c.js +1 -0
- package/dist/assets/PageHeader-BObHFn0i.js +1 -0
- package/dist/assets/PrivacyPolicy-DZ2xrKir.js +1 -0
- package/dist/assets/ResetPassword-AtxtpIG1.js +1 -0
- package/dist/assets/RiskAssessment-Dzuh1Usv.js +1 -0
- package/dist/assets/SARForm-D8w2ZGe-.js +1 -0
- package/dist/assets/SanctionsLists-CPA3UH2v.js +1 -0
- package/dist/assets/ScheduledTasks-Dsjk-6UR.js +1 -0
- package/dist/assets/ScreenEntity-D1U0YL7v.js +3 -0
- package/dist/assets/ScreeningProgress-BW49PzoB.js +66 -0
- package/dist/assets/SearchField-CulFKdiI.js +1 -0
- package/dist/assets/Signup-C0FmFOo_.js +1 -0
- package/dist/assets/SystemHealth-B_8u4eva.js +1 -0
- package/dist/assets/TaskHistory-BCmEM89q.js +3 -0
- package/dist/assets/Team-CUo_FlU7.js +1 -0
- package/dist/assets/TenantDetail-CgZQHUY8.js +1 -0
- package/dist/assets/Tenants-RB9E9ick.js +2 -0
- package/dist/assets/TermsOfService-BfL-kndX.js +1 -0
- package/dist/assets/TransactionMonitoring-DGh_T22s.js +14 -0
- package/dist/assets/TxnScreening-B7cm2-eh.js +1 -0
- package/dist/assets/UBOChain-falXAsCo.js +1 -0
- package/dist/assets/Users-Doakpg9c.js +1 -0
- package/dist/assets/Webhooks-BZpAfaxv.js +1 -0
- package/dist/assets/alert-triangle-YCFVm7B_.js +6 -0
- package/dist/assets/alerts-COUnTwWY.js +1 -0
- package/dist/assets/arrow-left-9ApLqP95.js +6 -0
- package/dist/assets/check-VTcvVtIU.js +6 -0
- package/dist/assets/check-circle-2-Dn-lG5YQ.js +6 -0
- package/dist/assets/code-DIJRWFVv.js +6 -0
- package/dist/assets/fingerprint-C0MGVtax.js +6 -0
- package/dist/assets/flag-B8_Gwxh6.js +6 -0
- package/dist/assets/index-CfdYcqRM.js +289 -0
- package/dist/assets/index-HPU_Rhdu.css +1 -0
- package/dist/assets/layers-zHz2o4vo.js +6 -0
- package/dist/assets/loader-B9_dNihg.js +6 -0
- package/dist/assets/mail-BijL2qwp.js +6 -0
- package/dist/assets/plus-i0oBIIPS.js +6 -0
- package/dist/assets/refresh-cw-CSuAwutt.js +6 -0
- package/dist/assets/useAnalytics-Bj8IONcw.js +72 -0
- package/dist/assets/x-circle-DLGKvijE.js +6 -0
- package/dist/favicon.svg +15 -0
- package/dist/index.html +51 -0
- package/dist/llms.txt +28 -0
- package/dist/logo.png +0 -0
- package/dist/logo.svg +17 -0
- package/dist/manifest.json +44 -0
- package/dist/robots.txt +15 -0
- package/dist/schema.json +13 -0
- package/dist/sitemap.xml +28 -0
- package/dist/sw.js +67 -0
- package/e2e/auth-setup.ts +20 -0
- package/e2e/billing.spec.ts +50 -0
- package/e2e/cases.spec.ts +53 -0
- package/e2e/compliance.spec.ts +65 -0
- package/e2e/config.spec.ts +56 -0
- package/e2e/dashboard.spec.ts +47 -0
- package/e2e/fixtures.ts +33 -0
- package/e2e/lists.spec.ts +43 -0
- package/e2e/login.spec.ts +64 -0
- package/e2e/media.spec.ts +48 -0
- package/e2e/mocks.ts +51 -0
- package/e2e/monitoring.spec.ts +44 -0
- package/e2e/navigation.spec.ts +56 -0
- package/e2e/onboarding.spec.ts +49 -0
- package/e2e/responsive.spec.ts +40 -0
- package/e2e/risk.spec.ts +61 -0
- package/e2e/screening.spec.ts +76 -0
- package/e2e/team.spec.ts +53 -0
- package/index.html +50 -0
- package/package.json +47 -0
- package/playwright.config.ts +35 -0
- package/postcss.config.js +6 -0
- package/public/.well-known/ai-plugin.json +15 -0
- package/public/_headers +8 -0
- package/public/_redirects +1 -0
- package/public/favicon.svg +15 -0
- package/public/llms.txt +28 -0
- package/public/logo.png +0 -0
- package/public/logo.svg +17 -0
- package/public/manifest.json +44 -0
- package/public/robots.txt +15 -0
- package/public/schema.json +13 -0
- package/public/sitemap.xml +28 -0
- package/public/sw.js +67 -0
- package/scripts/test-runner.sh +152 -0
- package/src/App.tsx +48 -0
- package/src/api/alerts.ts +19 -0
- package/src/api/analytics.ts +6 -0
- package/src/api/audit.ts +11 -0
- package/src/api/auth.ts +26 -0
- package/src/api/billing.ts +54 -0
- package/src/api/cases.ts +48 -0
- package/src/api/client.ts +50 -0
- package/src/api/config.ts +30 -0
- package/src/api/edd.ts +25 -0
- package/src/api/enforcement.ts +33 -0
- package/src/api/lists.ts +24 -0
- package/src/api/monitoring.ts +82 -0
- package/src/api/pep.ts +30 -0
- package/src/api/risk.ts +26 -0
- package/src/api/screening.ts +37 -0
- package/src/api/team.ts +27 -0
- package/src/api/transactions.ts +37 -0
- package/src/components/admin/TenantCards.tsx +51 -0
- package/src/components/alerts/AlertActions.test.tsx +80 -0
- package/src/components/alerts/AlertActions.tsx +68 -0
- package/src/components/alerts/AlertCard.test.tsx +86 -0
- package/src/components/alerts/AlertCard.tsx +60 -0
- package/src/components/alerts/AlertDetailSidebar.tsx +63 -0
- package/src/components/alerts/AlertFilters.test.tsx +73 -0
- package/src/components/alerts/AlertFilters.tsx +88 -0
- package/src/components/alerts/EntityDetailsCard.test.tsx +61 -0
- package/src/components/alerts/EntityDetailsCard.tsx +37 -0
- package/src/components/alerts/NotesCard.test.tsx +39 -0
- package/src/components/alerts/NotesCard.tsx +28 -0
- package/src/components/auth/AuthDivider.tsx +18 -0
- package/src/components/auth/LoginForm.tsx +62 -0
- package/src/components/auth/LoginLeftPanel.tsx +43 -0
- package/src/components/auth/PasswordStrength.tsx +26 -0
- package/src/components/auth/SignInButtons.tsx +46 -0
- package/src/components/auth/SignupLeftPanel.tsx +35 -0
- package/src/components/auth/countries.ts +17 -0
- package/src/components/charts/AreaChart.tsx +45 -0
- package/src/components/charts/BarChart.tsx +48 -0
- package/src/components/charts/DonutChart.tsx +47 -0
- package/src/components/compliance/CaseActions.tsx +74 -0
- package/src/components/compliance/CaseTimeline.tsx +68 -0
- package/src/components/compliance/MediaResultCard.tsx +87 -0
- package/src/components/compliance/PEPResultCard.tsx +78 -0
- package/src/components/config/MatchingModesCard.test.tsx +75 -0
- package/src/components/config/MatchingModesCard.tsx +40 -0
- package/src/components/config/ScreeningLayersCard.test.tsx +57 -0
- package/src/components/config/ScreeningLayersCard.tsx +36 -0
- package/src/components/config/ThresholdsCard.test.tsx +79 -0
- package/src/components/config/ThresholdsCard.tsx +51 -0
- package/src/components/dashboard/ActivityFeed.tsx +93 -0
- package/src/components/dashboard/DashboardGreeting.tsx +23 -0
- package/src/components/dashboard/DashboardSkeleton.tsx +35 -0
- package/src/components/dashboard/QuickActions.tsx +52 -0
- package/src/components/dashboard/TopEntitiesTable.tsx +63 -0
- package/src/components/data/ComplianceMetrics.test.tsx +32 -0
- package/src/components/data/ComplianceMetrics.tsx +40 -0
- package/src/components/data/ConfidenceScore.test.tsx +62 -0
- package/src/components/data/ConfidenceScore.tsx +27 -0
- package/src/components/data/StatCard.test.tsx +72 -0
- package/src/components/data/StatCard.tsx +63 -0
- package/src/components/data/StatusBadge.test.tsx +63 -0
- package/src/components/data/StatusBadge.tsx +39 -0
- package/src/components/layout/AppShell.tsx +48 -0
- package/src/components/layout/Breadcrumbs.tsx +48 -0
- package/src/components/layout/CommandPalette.tsx +81 -0
- package/src/components/layout/DashboardLayout.tsx +19 -0
- package/src/components/layout/MobileHeader.tsx +30 -0
- package/src/components/layout/NavGroup.test.tsx +63 -0
- package/src/components/layout/NavGroup.tsx +64 -0
- package/src/components/layout/NotificationBell.tsx +89 -0
- package/src/components/layout/PageHeader.test.tsx +61 -0
- package/src/components/layout/PageHeader.tsx +19 -0
- package/src/components/layout/ProtectedRoute.tsx +31 -0
- package/src/components/layout/PublicLayout.tsx +17 -0
- package/src/components/layout/Sidebar.test.tsx +67 -0
- package/src/components/layout/Sidebar.tsx +92 -0
- package/src/components/layout/Toolbar.test.tsx +47 -0
- package/src/components/layout/Toolbar.tsx +68 -0
- package/src/components/layout/navItems.ts +94 -0
- package/src/components/lists/ListCard.tsx +78 -0
- package/src/components/lists/ListMarketplaceCard.tsx +77 -0
- package/src/components/screening/CircularConfidence.tsx +38 -0
- package/src/components/screening/LimitReachedBanner.tsx +31 -0
- package/src/components/screening/ListSelector.tsx +64 -0
- package/src/components/screening/MatchDetailHeader.tsx +64 -0
- package/src/components/screening/MatchEntityInfo.tsx +56 -0
- package/src/components/screening/MatchEvidenceBars.tsx +65 -0
- package/src/components/screening/MatchMetadata.tsx +95 -0
- package/src/components/screening/ScreenResults.tsx +49 -0
- package/src/components/screening/ScreeningForm.test.tsx +83 -0
- package/src/components/screening/ScreeningForm.tsx +100 -0
- package/src/components/screening/ScreeningLayersList.test.tsx +33 -0
- package/src/components/screening/ScreeningLayersList.tsx +46 -0
- package/src/components/screening/ScreeningProgress.tsx +91 -0
- package/src/components/screening/ScreeningQuotaBanner.tsx +64 -0
- package/src/components/screening/ScreeningResultCard.tsx +47 -0
- package/src/components/screening/ScreeningResultRow.tsx +45 -0
- package/src/components/screening/ScreeningResults.test.tsx +37 -0
- package/src/components/screening/ScreeningResults.tsx +33 -0
- package/src/components/screening/ShareResults.tsx +103 -0
- package/src/components/screening/ThresholdSlider.tsx +23 -0
- package/src/components/transactions/WebhookCTA.tsx +63 -0
- package/src/components/ui/Avatar.test.tsx +47 -0
- package/src/components/ui/Avatar.tsx +35 -0
- package/src/components/ui/Badge.test.tsx +49 -0
- package/src/components/ui/Badge.tsx +33 -0
- package/src/components/ui/Button.test.tsx +56 -0
- package/src/components/ui/Button.tsx +46 -0
- package/src/components/ui/Card.test.tsx +61 -0
- package/src/components/ui/Card.tsx +29 -0
- package/src/components/ui/ConfirmModal.tsx +67 -0
- package/src/components/ui/Divider.test.tsx +24 -0
- package/src/components/ui/Divider.tsx +5 -0
- package/src/components/ui/EmptyState.test.tsx +49 -0
- package/src/components/ui/EmptyState.tsx +22 -0
- package/src/components/ui/ErrorBoundary.tsx +44 -0
- package/src/components/ui/ExportMenu.tsx +71 -0
- package/src/components/ui/LanguageSwitcher.tsx +37 -0
- package/src/components/ui/LoadingSpinner.test.tsx +41 -0
- package/src/components/ui/LoadingSpinner.tsx +21 -0
- package/src/components/ui/MetricCard.tsx +63 -0
- package/src/components/ui/ScoreRing.tsx +51 -0
- package/src/components/ui/SearchField.test.tsx +55 -0
- package/src/components/ui/SearchField.tsx +31 -0
- package/src/components/ui/SeverityBadge.tsx +57 -0
- package/src/components/ui/ThemeToggle.tsx +37 -0
- package/src/components/ui/Toast.test.tsx +79 -0
- package/src/components/ui/Toast.tsx +75 -0
- package/src/components/ui/Toggle.test.tsx +85 -0
- package/src/components/ui/Toggle.tsx +46 -0
- package/src/context/AuthContext.tsx +71 -0
- package/src/data/pepProfiles.ts +76 -0
- package/src/data/pepProfilesExtra.ts +58 -0
- package/src/hooks/useAlerts.ts +36 -0
- package/src/hooks/useAnalytics.ts +23 -0
- package/src/hooks/useApi.test.ts +79 -0
- package/src/hooks/useApi.ts +33 -0
- package/src/hooks/useAudit.ts +28 -0
- package/src/hooks/useBilling.ts +38 -0
- package/src/hooks/useConfig.ts +35 -0
- package/src/hooks/useDebounce.test.ts +84 -0
- package/src/hooks/useDebounce.ts +15 -0
- package/src/hooks/useDirection.ts +15 -0
- package/src/hooks/useLists.ts +34 -0
- package/src/hooks/useMediaQuery.test.ts +97 -0
- package/src/hooks/useMediaQuery.ts +28 -0
- package/src/hooks/useScreening.ts +33 -0
- package/src/hooks/useSidebar.ts +18 -0
- package/src/hooks/useUsage.ts +27 -0
- package/src/i18n/config.ts +33 -0
- package/src/i18n/locales/ar/admin.json +19 -0
- package/src/i18n/locales/ar/alerts.json +52 -0
- package/src/i18n/locales/ar/analytics.json +9 -0
- package/src/i18n/locales/ar/audit.json +12 -0
- package/src/i18n/locales/ar/auth.json +60 -0
- package/src/i18n/locales/ar/batch.json +5 -0
- package/src/i18n/locales/ar/billing.json +41 -0
- package/src/i18n/locales/ar/common.json +65 -0
- package/src/i18n/locales/ar/compliance.json +83 -0
- package/src/i18n/locales/ar/config.json +13 -0
- package/src/i18n/locales/ar/dashboard.json +19 -0
- package/src/i18n/locales/ar/errors.json +9 -0
- package/src/i18n/locales/ar/index.ts +29 -0
- package/src/i18n/locales/ar/legal.json +10 -0
- package/src/i18n/locales/ar/lists.json +6 -0
- package/src/i18n/locales/ar/marketing.json +110 -0
- package/src/i18n/locales/ar/monitoring.json +15 -0
- package/src/i18n/locales/ar/nav.json +35 -0
- package/src/i18n/locales/ar/onboarding.json +25 -0
- package/src/i18n/locales/ar/platform.json +23 -0
- package/src/i18n/locales/ar/screening.json +26 -0
- package/src/i18n/locales/ar/team.json +11 -0
- package/src/i18n/locales/en/admin.json +21 -0
- package/src/i18n/locales/en/alerts.json +52 -0
- package/src/i18n/locales/en/analytics.json +9 -0
- package/src/i18n/locales/en/audit.json +12 -0
- package/src/i18n/locales/en/auth.json +60 -0
- package/src/i18n/locales/en/batch.json +5 -0
- package/src/i18n/locales/en/billing.json +87 -0
- package/src/i18n/locales/en/common.json +65 -0
- package/src/i18n/locales/en/compliance.json +83 -0
- package/src/i18n/locales/en/config.json +29 -0
- package/src/i18n/locales/en/dashboard.json +23 -0
- package/src/i18n/locales/en/errors.json +9 -0
- package/src/i18n/locales/en/index.ts +29 -0
- package/src/i18n/locales/en/legal.json +114 -0
- package/src/i18n/locales/en/lists.json +6 -0
- package/src/i18n/locales/en/marketing.json +174 -0
- package/src/i18n/locales/en/monitoring.json +15 -0
- package/src/i18n/locales/en/nav.json +35 -0
- package/src/i18n/locales/en/onboarding.json +31 -0
- package/src/i18n/locales/en/platform.json +25 -0
- package/src/i18n/locales/en/screening.json +26 -0
- package/src/i18n/locales/en/team.json +12 -0
- package/src/i18n/locales/he/admin.json +19 -0
- package/src/i18n/locales/he/alerts.json +52 -0
- package/src/i18n/locales/he/analytics.json +9 -0
- package/src/i18n/locales/he/audit.json +12 -0
- package/src/i18n/locales/he/auth.json +60 -0
- package/src/i18n/locales/he/batch.json +5 -0
- package/src/i18n/locales/he/billing.json +41 -0
- package/src/i18n/locales/he/common.json +65 -0
- package/src/i18n/locales/he/compliance.json +83 -0
- package/src/i18n/locales/he/config.json +13 -0
- package/src/i18n/locales/he/dashboard.json +19 -0
- package/src/i18n/locales/he/errors.json +9 -0
- package/src/i18n/locales/he/index.ts +29 -0
- package/src/i18n/locales/he/legal.json +10 -0
- package/src/i18n/locales/he/lists.json +6 -0
- package/src/i18n/locales/he/marketing.json +110 -0
- package/src/i18n/locales/he/monitoring.json +15 -0
- package/src/i18n/locales/he/nav.json +35 -0
- package/src/i18n/locales/he/onboarding.json +25 -0
- package/src/i18n/locales/he/platform.json +23 -0
- package/src/i18n/locales/he/screening.json +26 -0
- package/src/i18n/locales/he/team.json +11 -0
- package/src/index.css +112 -0
- package/src/main.tsx +15 -0
- package/src/pages/APIKeys.tsx +120 -0
- package/src/pages/AddMonitorModal.tsx +30 -0
- package/src/pages/AdverseMedia.test.tsx +18 -0
- package/src/pages/AdverseMedia.tsx +89 -0
- package/src/pages/AlertDetailPage.tsx +64 -0
- package/src/pages/AlertQueue.test.tsx +48 -0
- package/src/pages/AlertQueue.tsx +63 -0
- package/src/pages/Analytics.tsx +50 -0
- package/src/pages/AuditTrail.tsx +64 -0
- package/src/pages/BatchJobs.tsx +79 -0
- package/src/pages/CaseDetail.tsx +72 -0
- package/src/pages/CaseManagement.test.tsx +31 -0
- package/src/pages/CaseManagement.tsx +92 -0
- package/src/pages/Configuration.test.tsx +96 -0
- package/src/pages/Configuration.tsx +123 -0
- package/src/pages/CryptoScreening.tsx +109 -0
- package/src/pages/Dashboard.test.tsx +51 -0
- package/src/pages/Dashboard.tsx +66 -0
- package/src/pages/EDDWorkflow.test.tsx +29 -0
- package/src/pages/EDDWorkflow.tsx +73 -0
- package/src/pages/ForgotPassword.test.tsx +49 -0
- package/src/pages/ForgotPassword.tsx +67 -0
- package/src/pages/ListsMarketplace.tsx +102 -0
- package/src/pages/Login.test.tsx +100 -0
- package/src/pages/Login.tsx +57 -0
- package/src/pages/MFASetup.tsx +114 -0
- package/src/pages/MonitorProfileCard.tsx +27 -0
- package/src/pages/Monitoring.tsx +68 -0
- package/src/pages/Onboarding.test.tsx +36 -0
- package/src/pages/Onboarding.tsx +60 -0
- package/src/pages/PEPScreening.test.tsx +15 -0
- package/src/pages/PEPScreening.tsx +100 -0
- package/src/pages/ResetPassword.tsx +81 -0
- package/src/pages/RiskAssessment.test.tsx +15 -0
- package/src/pages/RiskAssessment.tsx +108 -0
- package/src/pages/SanctionsLists.tsx +74 -0
- package/src/pages/ScreenEntity.test.tsx +82 -0
- package/src/pages/ScreenEntity.tsx +76 -0
- package/src/pages/Signup.test.tsx +98 -0
- package/src/pages/Signup.tsx +92 -0
- package/src/pages/TaskHistory.tsx +183 -0
- package/src/pages/Team.test.tsx +15 -0
- package/src/pages/Team.tsx +140 -0
- package/src/pages/TransactionMonitoring.test.tsx +18 -0
- package/src/pages/TransactionMonitoring.tsx +118 -0
- package/src/pages/TxnScreening.tsx +125 -0
- package/src/pages/UBOChain.test.tsx +35 -0
- package/src/pages/UBOChain.tsx +65 -0
- package/src/pages/Webhooks.tsx +137 -0
- package/src/pages/admin/DataSources.tsx +230 -0
- package/src/pages/admin/Operations.tsx +103 -0
- package/src/pages/admin/ScheduledTasks.tsx +155 -0
- package/src/pages/admin/SystemHealth.tsx +58 -0
- package/src/pages/admin/TenantDetail.tsx +62 -0
- package/src/pages/admin/Tenants.test.tsx +20 -0
- package/src/pages/admin/Tenants.tsx +63 -0
- package/src/pages/admin/opsRunners.ts +81 -0
- package/src/pages/admin/opsTerminal.tsx +63 -0
- package/src/pages/billing/ActiveSubscriptions.tsx +41 -0
- package/src/pages/billing/AddProductModal.tsx +99 -0
- package/src/pages/billing/BillingPage.test.tsx +30 -0
- package/src/pages/billing/BillingPage.tsx +67 -0
- package/src/pages/billing/CurrentPlan.tsx +50 -0
- package/src/pages/billing/InvoiceList.tsx +104 -0
- package/src/pages/billing/InvoiceRow.tsx +37 -0
- package/src/pages/billing/LemonSqueezySetup.tsx +51 -0
- package/src/pages/billing/PaymentAlert.tsx +33 -0
- package/src/pages/billing/PlanComparison.tsx +53 -0
- package/src/pages/billing/ProductUsage.tsx +43 -0
- package/src/pages/billing/PromoCodeInput.tsx +58 -0
- package/src/pages/billing/SeatManager.tsx +80 -0
- package/src/pages/billing/SeatRow.tsx +32 -0
- package/src/pages/billing/SubscriptionCard.tsx +73 -0
- package/src/pages/billing/UpgradeModal.tsx +53 -0
- package/src/pages/billing/UsageHistory.tsx +37 -0
- package/src/pages/billing/UsageMeter.tsx +26 -0
- package/src/pages/billing/UsageOverview.tsx +38 -0
- package/src/pages/legal/PrivacyPolicy.tsx +25 -0
- package/src/pages/legal/TermsOfService.tsx +25 -0
- package/src/pages/marketing/BundleCallout.tsx +24 -0
- package/src/pages/marketing/CTASection.tsx +48 -0
- package/src/pages/marketing/CaseStudy.tsx +37 -0
- package/src/pages/marketing/ComparisonTable.tsx +66 -0
- package/src/pages/marketing/CompetitiveEdge.tsx +55 -0
- package/src/pages/marketing/DataCoverage.tsx +54 -0
- package/src/pages/marketing/DataRain.tsx +30 -0
- package/src/pages/marketing/EnterpriseCTA.tsx +26 -0
- package/src/pages/marketing/FAQItem.tsx +27 -0
- package/src/pages/marketing/FAQSchema.tsx +43 -0
- package/src/pages/marketing/FAQSection.tsx +19 -0
- package/src/pages/marketing/FeatureDetail.tsx +19 -0
- package/src/pages/marketing/FeaturesGrid.tsx +60 -0
- package/src/pages/marketing/FeaturesSpotlight.tsx +68 -0
- package/src/pages/marketing/FooterSection.tsx +92 -0
- package/src/pages/marketing/GradientOrbs.tsx +26 -0
- package/src/pages/marketing/HeroSearch.tsx +113 -0
- package/src/pages/marketing/HeroSection.tsx +72 -0
- package/src/pages/marketing/LandingPage.tsx +45 -0
- package/src/pages/marketing/LogoCloud.tsx +31 -0
- package/src/pages/marketing/LogoMarquee.tsx +45 -0
- package/src/pages/marketing/MarketingNav.tsx +80 -0
- package/src/pages/marketing/MatchingLayers.tsx +78 -0
- package/src/pages/marketing/MobileMenu.tsx +45 -0
- package/src/pages/marketing/PricingCard.tsx +57 -0
- package/src/pages/marketing/PricingFeatureRow.tsx +16 -0
- package/src/pages/marketing/PricingSection.tsx +103 -0
- package/src/pages/marketing/PricingToggle.tsx +40 -0
- package/src/pages/marketing/ProductPricingCards.tsx +23 -0
- package/src/pages/marketing/ProductShowcase.tsx +81 -0
- package/src/pages/marketing/ProductTabs.tsx +45 -0
- package/src/pages/marketing/QuoteRotator.tsx +56 -0
- package/src/pages/marketing/StatsBar.tsx +81 -0
- package/src/pages/marketing/StatsSection.tsx +44 -0
- package/src/pages/marketing/TestimonialCard.tsx +38 -0
- package/src/pages/marketing/TestimonialsSection.tsx +32 -0
- package/src/pages/marketing/animations.tsx +56 -0
- package/src/pages/onboarding/CountryStep.tsx +38 -0
- package/src/pages/onboarding/ListsStep.tsx +44 -0
- package/src/pages/onboarding/StepIndicator.tsx +34 -0
- package/src/pages/onboarding/ThresholdStep.tsx +49 -0
- package/src/pages/platform/APIKeys.tsx +102 -0
- package/src/pages/platform/Overview.tsx +58 -0
- package/src/pages/platform/Users.tsx +110 -0
- package/src/pages/reporting/ComplianceReport.tsx +99 -0
- package/src/pages/reporting/SARForm.tsx +99 -0
- package/src/routes/appRoutes.tsx +60 -0
- package/src/routes/compliance.tsx +28 -0
- package/src/routes/lazyCompliance.ts +34 -0
- package/src/routes/lazyPages.ts +35 -0
- package/src/routes/lazyPlatform.ts +5 -0
- package/src/routes/platform.tsx +15 -0
- package/src/styles/effects.css +76 -0
- package/src/test/setup.ts +25 -0
- package/src/test/utils.tsx +49 -0
- package/src/types/alert.ts +31 -0
- package/src/types/analytics.ts +16 -0
- package/src/types/audit.ts +11 -0
- package/src/types/billing.ts +60 -0
- package/src/types/common.ts +15 -0
- package/src/types/config.ts +19 -0
- package/src/types/entity.ts +34 -0
- package/src/types/index.ts +8 -0
- package/src/types/list.ts +15 -0
- package/src/types/screening.ts +32 -0
- package/src/vite-env.d.ts +1 -0
- package/tailwind.config.js +65 -0
- package/tsconfig.json +22 -0
- package/vite.config.ts +11 -0
- package/vitest.config.ts +19 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cases": {
|
|
3
|
+
"title": "ניהול תיקים",
|
|
4
|
+
"all": "הכל",
|
|
5
|
+
"open": "פתוח",
|
|
6
|
+
"in_review": "בבדיקה",
|
|
7
|
+
"escalated": "הועבר לטיפול",
|
|
8
|
+
"resolved": "טופל",
|
|
9
|
+
"no_cases": "לא נמצאו תיקים",
|
|
10
|
+
"matched": "הותאם:",
|
|
11
|
+
"match": "התאמה:"
|
|
12
|
+
},
|
|
13
|
+
"risk": {
|
|
14
|
+
"title": "הערכת סיכונים",
|
|
15
|
+
"entity_placeholder": "מזהה ישות",
|
|
16
|
+
"country_placeholder": "קוד מדינה (לדוגמה IL)",
|
|
17
|
+
"calculate": "חשב סיכון",
|
|
18
|
+
"composite_score": "{{score}}%",
|
|
19
|
+
"risk_factors": "גורמי סיכון",
|
|
20
|
+
"score_breakdown": "פירוט ציון"
|
|
21
|
+
},
|
|
22
|
+
"pep": {
|
|
23
|
+
"title": "סינון PEP",
|
|
24
|
+
"entity_placeholder": "מזהה ישות",
|
|
25
|
+
"screen": "סנן",
|
|
26
|
+
"identified": "זוהה כ-PEP",
|
|
27
|
+
"not_pep": "לא PEP",
|
|
28
|
+
"tier": "דרגה",
|
|
29
|
+
"risk_weight": "משקל סיכון",
|
|
30
|
+
"position": "תפקיד",
|
|
31
|
+
"country": "מדינה"
|
|
32
|
+
},
|
|
33
|
+
"adverse_media": {
|
|
34
|
+
"title": "מדיה שלילית",
|
|
35
|
+
"category": "קטגוריה",
|
|
36
|
+
"severity": "חומרה",
|
|
37
|
+
"entity": "ישות:",
|
|
38
|
+
"no_hits": "אין ממצאי מדיה שלא נבדקו"
|
|
39
|
+
},
|
|
40
|
+
"transactions": {
|
|
41
|
+
"title": "ניטור עסקאות",
|
|
42
|
+
"recent_alerts": "התרעות אחרונות",
|
|
43
|
+
"high_value": "ערך גבוה",
|
|
44
|
+
"rapid_movement": "תנועה מהירה",
|
|
45
|
+
"structuring": "פיצול עסקאות",
|
|
46
|
+
"high_risk_country": "מדינה בסיכון גבוה",
|
|
47
|
+
"unusual_pattern": "דפוס חריג",
|
|
48
|
+
"txn_prefix": "עסקה:",
|
|
49
|
+
"no_alerts": "אין התרעות עסקאות"
|
|
50
|
+
},
|
|
51
|
+
"ubo": {
|
|
52
|
+
"title": "בעלות מועילה",
|
|
53
|
+
"organization": "ארגון:",
|
|
54
|
+
"total_identified": "סה\"כ זוהו",
|
|
55
|
+
"direct": "(ישיר)",
|
|
56
|
+
"indirect": "(עקיף)",
|
|
57
|
+
"pep_badge": "PEP"
|
|
58
|
+
},
|
|
59
|
+
"edd": {
|
|
60
|
+
"title": "בדיקת נאותות מוגברת",
|
|
61
|
+
"progress": "התקדמות",
|
|
62
|
+
"checks": "בדיקות",
|
|
63
|
+
"identity": "אימות זהות",
|
|
64
|
+
"source_of_funds": "מקור כספים",
|
|
65
|
+
"source_of_wealth": "מקור עושר",
|
|
66
|
+
"pep_screening": "סינון PEP",
|
|
67
|
+
"adverse_media": "בדיקת מדיה שלילית",
|
|
68
|
+
"sanctions": "סינון סנקציות",
|
|
69
|
+
"ubo_verification": "אימות UBO",
|
|
70
|
+
"country_risk": "הערכת סיכון מדינה"
|
|
71
|
+
},
|
|
72
|
+
"case_detail": {
|
|
73
|
+
"match": "התאמה:",
|
|
74
|
+
"status": "סטטוס",
|
|
75
|
+
"priority": "עדיפות",
|
|
76
|
+
"confidence": "רמת ודאות",
|
|
77
|
+
"assigned_to": "מוקצה ל",
|
|
78
|
+
"unassigned": "לא מוקצה",
|
|
79
|
+
"escalate": "העבר לטיפול",
|
|
80
|
+
"false_positive": "סמן כחיובי שגוי",
|
|
81
|
+
"comments": "הערות"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "הגדרות",
|
|
3
|
+
"description": "ניהול פרמטרי סינון",
|
|
4
|
+
"thresholds": {
|
|
5
|
+
"title": "ספים",
|
|
6
|
+
"default": "סף התאמה ברירת מחדל:",
|
|
7
|
+
"auto_dismiss": "דחייה אוטומטית מתחת ל:",
|
|
8
|
+
"auto_escalate": "העברה אוטומטית מעל:"
|
|
9
|
+
},
|
|
10
|
+
"lists": {
|
|
11
|
+
"title": "רשימות"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "לוח בקרה",
|
|
3
|
+
"description": "סקירת פעילות סינון והתרעות",
|
|
4
|
+
"total_alerts": "סה\"כ התרעות",
|
|
5
|
+
"cleared_today": "טופלו היום",
|
|
6
|
+
"escalated": "הועברו לטיפול",
|
|
7
|
+
"avg_resolution": "זמן טיפול ממוצע",
|
|
8
|
+
"time_in_hours": "זמן בשעות",
|
|
9
|
+
"screening_volume": "נפח סינון (30 יום)",
|
|
10
|
+
"disposition_breakdown": "פילוח סטטוסים",
|
|
11
|
+
"risk_distribution": "התפלגות סיכונים",
|
|
12
|
+
"top_entities": "ישויות מובילות",
|
|
13
|
+
"open_cases": "תיקים פתוחים",
|
|
14
|
+
"active_monitors": "ניטורים פעילים",
|
|
15
|
+
"high_risk": "סיכון גבוה",
|
|
16
|
+
"pending_edd": "ממתינים ל-EDD",
|
|
17
|
+
"unreviewed_media": "מדיה לא נבדקה",
|
|
18
|
+
"txn_alerts": "התרעות עסקאות"
|
|
19
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import common from './common.json'
|
|
2
|
+
import auth from './auth.json'
|
|
3
|
+
import nav from './nav.json'
|
|
4
|
+
import dashboard from './dashboard.json'
|
|
5
|
+
import alerts from './alerts.json'
|
|
6
|
+
import screening from './screening.json'
|
|
7
|
+
import billing from './billing.json'
|
|
8
|
+
import compliance from './compliance.json'
|
|
9
|
+
import config from './config.json'
|
|
10
|
+
import analytics from './analytics.json'
|
|
11
|
+
import audit from './audit.json'
|
|
12
|
+
import monitoring from './monitoring.json'
|
|
13
|
+
import batch from './batch.json'
|
|
14
|
+
import lists from './lists.json'
|
|
15
|
+
import onboarding from './onboarding.json'
|
|
16
|
+
import marketing from './marketing.json'
|
|
17
|
+
import legal from './legal.json'
|
|
18
|
+
import admin from './admin.json'
|
|
19
|
+
import team from './team.json'
|
|
20
|
+
import platform from './platform.json'
|
|
21
|
+
import errors from './errors.json'
|
|
22
|
+
|
|
23
|
+
export default {
|
|
24
|
+
common, auth, nav, dashboard, alerts,
|
|
25
|
+
screening, billing, compliance, config,
|
|
26
|
+
analytics, audit, monitoring, batch,
|
|
27
|
+
lists, onboarding, marketing, legal,
|
|
28
|
+
admin, team, platform, errors,
|
|
29
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"nav": {
|
|
3
|
+
"features": "תכונות",
|
|
4
|
+
"pricing": "תמחור",
|
|
5
|
+
"docs": "תיעוד",
|
|
6
|
+
"blog": "בלוג",
|
|
7
|
+
"sign_in": "התחבר",
|
|
8
|
+
"start_trial": "התחל תקופת ניסיון חינם"
|
|
9
|
+
},
|
|
10
|
+
"hero": {
|
|
11
|
+
"heading": "סינון הלבנת הון שתופס הכל.",
|
|
12
|
+
"description": "סינון סנקציות מונע AI עם התאמה ב-6 שכבות, {{listCount}}+ רשימות, וחיפוש מטושטש הניתן להגדרה. נבנה עבור בנקים שדורשים אפס החמצות.",
|
|
13
|
+
"cta_trial": "התחל תקופת ניסיון חינם",
|
|
14
|
+
"cta_demo": "צפה בהדגמה",
|
|
15
|
+
"badge_security": "ארכיטקטורת אבטחה ראשונה",
|
|
16
|
+
"badge_encryption": "הצפנה מקצה לקצה",
|
|
17
|
+
"badge_audit": "מסלול ביקורת מלא"
|
|
18
|
+
},
|
|
19
|
+
"logo_cloud": {
|
|
20
|
+
"subtitle": "נבנה עבור מוסדות פיננסיים ברחבי העולם",
|
|
21
|
+
"banks": "בנקים",
|
|
22
|
+
"fintechs": "פינטק",
|
|
23
|
+
"msbs": "שירותי כספים",
|
|
24
|
+
"neobanks": "בנקים דיגיטליים",
|
|
25
|
+
"regulators": "רגולטורים",
|
|
26
|
+
"payments": "תשלומים"
|
|
27
|
+
},
|
|
28
|
+
"features": {
|
|
29
|
+
"title": "תכונות ברמה ארגונית",
|
|
30
|
+
"subtitle": "נבנה במיוחד עבור צוותי ציות שדורשים אפס החמצות ואפס חיוביים שגויים.",
|
|
31
|
+
"ai_pipeline": "צינור התאמת AI בעל 6 שכבות",
|
|
32
|
+
"ai_pipeline_desc": "התאמה מטושטשת מתקדמת על פני תעתיקים ווריאציות פונטיות עם למידת מכונה.",
|
|
33
|
+
"sanctions_lists": "{{listCount}}+ רשימות סנקציות",
|
|
34
|
+
"sanctions_lists_desc": "OFAC, האו\"ם, האיחוד האירופי, בריטניה ו-OpenSanctions משולבים. תמיד מעודכנים עם הגדרות חדשות.",
|
|
35
|
+
"fuzzy_search": "חיפוש מטושטש הניתן להגדרה",
|
|
36
|
+
"fuzzy_search_desc": "כוונן רגישות מהתאמה מדויקת לגמישה. אפס שליליים שגויים עם מינימום חיוביים שגויים.",
|
|
37
|
+
"latency": "זמן תגובת API פחות מ-50 מילישניות",
|
|
38
|
+
"latency_desc": "יעד זמן תגובת p99 של פחות מ-50 מילישניות לסינון בזמן אמת בקנה מידה.",
|
|
39
|
+
"explainable": "החלטות AI שקופות",
|
|
40
|
+
"explainable_desc": "כל התאמה כוללת ציוני ודאות, נימוקים ומסלולי ביקורת לציות.",
|
|
41
|
+
"multilang": "רב-שפתי (25+)",
|
|
42
|
+
"multilang_desc": "תעתיק אוטומטי ונורמליזציה פונטית על פני לטינית, קירילית, ערבית ועוד."
|
|
43
|
+
},
|
|
44
|
+
"demo": {
|
|
45
|
+
"heading": "ראה את זה בפעולה",
|
|
46
|
+
"hint": "נסה: מוחמד אל-רשידי, דונלד טראמפ, ולדימיר פוטין",
|
|
47
|
+
"placeholder": "הקלד שם לסינון...",
|
|
48
|
+
"layer_prefix": "שכבה",
|
|
49
|
+
"match_found": "\u26a0 נמצאה התאמה",
|
|
50
|
+
"confidence": "ודאות",
|
|
51
|
+
"no_matches": "\u2713 לא נמצאו התאמות",
|
|
52
|
+
"no_matches_sub": "נסנן מול OFAC, האו\"ם, האיחוד האירופי ו-12 רשימות נוספות"
|
|
53
|
+
},
|
|
54
|
+
"comparison": {
|
|
55
|
+
"heading": "איך AMLIQ משתווה",
|
|
56
|
+
"feature": "תכונה",
|
|
57
|
+
"amliq": "AMLIQ",
|
|
58
|
+
"worldcheck": "World-Check",
|
|
59
|
+
"manual": "ידני"
|
|
60
|
+
},
|
|
61
|
+
"stats": {
|
|
62
|
+
"screened_daily": "שכבות התאמה",
|
|
63
|
+
"screened_value": "6",
|
|
64
|
+
"uptime": "רשימות סנקציות",
|
|
65
|
+
"uptime_value": "{{listCount}}+",
|
|
66
|
+
"fewer_fp": "יעד זמינות",
|
|
67
|
+
"fewer_fp_value": "99.9%",
|
|
68
|
+
"latency": "זמן תגובה P99",
|
|
69
|
+
"latency_value": "<50ms"
|
|
70
|
+
},
|
|
71
|
+
"use_cases": {
|
|
72
|
+
"heading": "נבנה עבור צוותי ציות",
|
|
73
|
+
"items": [
|
|
74
|
+
{
|
|
75
|
+
"scenario": "סינון לקוחות בקליטה",
|
|
76
|
+
"description": "צוות ציות סורק לקוחות חדשים בזמן הקליטה באמצעות התאמה ב-6 שכבות לזיהוי תעתיקים ווריאציות פונטיות על פני רשימות סנקציות מרובות."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"scenario": "ניטור עסקאות באצווה",
|
|
80
|
+
"description": "צוות תפעולי AML מריץ סינון אצווה לילי של צדדים נגדיים בעסקאות, תוך ניצול סף התאמה מטושטש הניתן להגדרה לאיזון בין כיסוי לעומס עבודה של אנליסטים."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"scenario": "סינון תשלומים בזמן אמת",
|
|
84
|
+
"description": "מעבד תשלומים משלב את ה-API לסינון בזרימת התשלום שלו, תוך שימוש ביעד זמן תגובה של פחות מ-50 מילישניות כדי לסנן מבלי לעכב עיבוד עסקאות."
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"faq": {
|
|
89
|
+
"heading": "שאלות נפוצות"
|
|
90
|
+
},
|
|
91
|
+
"footer": {
|
|
92
|
+
"tagline": "סינון הלבנת הון מונע AI עבור בנקים שדורשים אפס החמצות.",
|
|
93
|
+
"product": "מוצר",
|
|
94
|
+
"features": "תכונות",
|
|
95
|
+
"pricing": "תמחור",
|
|
96
|
+
"security": "אבטחה",
|
|
97
|
+
"compliance": "ציות",
|
|
98
|
+
"company": "חברה",
|
|
99
|
+
"about": "אודות",
|
|
100
|
+
"blog": "בלוג",
|
|
101
|
+
"careers": "קריירה",
|
|
102
|
+
"contact": "צור קשר",
|
|
103
|
+
"legal": "משפטי",
|
|
104
|
+
"privacy": "מדיניות פרטיות",
|
|
105
|
+
"terms": "תנאי שימוש",
|
|
106
|
+
"dpa": "DPA",
|
|
107
|
+
"security_overview": "סקירת אבטחה",
|
|
108
|
+
"copyright": "\u00a9 2026 AMLIQ. כל הזכויות שמורות."
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "ניטור מערכת",
|
|
3
|
+
"description": "בריאות מערכת וביצועים בזמן אמת",
|
|
4
|
+
"metrics": {
|
|
5
|
+
"api_response": "זמן תגובת API",
|
|
6
|
+
"db_connection": "חיבור מסד נתונים",
|
|
7
|
+
"cache_hit": "אחוז פגיעות מטמון",
|
|
8
|
+
"last_sync": "סנכרון מלא אחרון"
|
|
9
|
+
},
|
|
10
|
+
"tasks": {
|
|
11
|
+
"ongoing": "משימות סינון פעילות",
|
|
12
|
+
"batch_prefix": "סינון אצווה #",
|
|
13
|
+
"complete_suffix": "% הושלם"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "ראשי",
|
|
3
|
+
"dashboard": "לוח בקרה",
|
|
4
|
+
"alerts": "התרעות",
|
|
5
|
+
"screen": "סינון",
|
|
6
|
+
"monitoring": "ניטור",
|
|
7
|
+
"batch_jobs": "עיבוד אצווה",
|
|
8
|
+
"compliance": "ציות",
|
|
9
|
+
"cases": "תיקים",
|
|
10
|
+
"risk_assessment": "הערכת סיכונים",
|
|
11
|
+
"pep_screening": "סינון PEP",
|
|
12
|
+
"adverse_media": "מדיה שלילית",
|
|
13
|
+
"transactions": "עסקאות",
|
|
14
|
+
"crypto_screening": "סינון קריפטו",
|
|
15
|
+
"ubo_chain": "שרשרת UBO",
|
|
16
|
+
"edd_workflow": "תהליך EDD",
|
|
17
|
+
"system": "מערכת",
|
|
18
|
+
"analytics": "אנליטיקה",
|
|
19
|
+
"audit_log": "יומן ביקורת",
|
|
20
|
+
"sanctions_lists": "רשימות סנקציות",
|
|
21
|
+
"marketplace": "שוק רשימות",
|
|
22
|
+
"api_keys": "מפתחות API",
|
|
23
|
+
"webhooks": "Webhooks",
|
|
24
|
+
"configuration": "הגדרות",
|
|
25
|
+
"billing": "חיוב",
|
|
26
|
+
"team": "צוות",
|
|
27
|
+
"admin": "ניהול",
|
|
28
|
+
"tenants": "לקוחות",
|
|
29
|
+
"system_health": "בריאות מערכת",
|
|
30
|
+
"data_sources": "מקורות מידע",
|
|
31
|
+
"platform": "פלטפורמה",
|
|
32
|
+
"overview": "סקירה כללית",
|
|
33
|
+
"users": "משתמשים",
|
|
34
|
+
"search_placeholder": "חיפוש ישויות, התרעות..."
|
|
35
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"welcome": "ברוכים הבאים ל-AMLIQ",
|
|
3
|
+
"country": {
|
|
4
|
+
"title": "בחר את המדינה שלך",
|
|
5
|
+
"description": "נציע לך את רשימות הסנקציות המתאימות לתחום השיפוט שלך"
|
|
6
|
+
},
|
|
7
|
+
"lists": {
|
|
8
|
+
"title": "רשימות מומלצות",
|
|
9
|
+
"description": "בהתבסס על המדינה שלך, אנו ממליצים לסנן מול רשימות אלו",
|
|
10
|
+
"loading": "טוען רשימות מומלצות...",
|
|
11
|
+
"threshold": "סף:"
|
|
12
|
+
},
|
|
13
|
+
"threshold": {
|
|
14
|
+
"title": "הגדר סף התאמה",
|
|
15
|
+
"description": "שמות שיתאימו מעל רמת ודאות זו יפיקו התרעות",
|
|
16
|
+
"low": "נמוך (50%)",
|
|
17
|
+
"high": "גבוה (95%)",
|
|
18
|
+
"current": "נוכחי:",
|
|
19
|
+
"hint_more": "יותר התרעות, פחות החמצות",
|
|
20
|
+
"hint_fewer": "פחות התרעות, עלול להחמיץ התאמות",
|
|
21
|
+
"hint_balanced": "מאוזן — מומלץ לרוב הארגונים",
|
|
22
|
+
"start": "התחל סינון",
|
|
23
|
+
"starting": "מגדיר..."
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"overview": {
|
|
3
|
+
"title": "סקירת פלטפורמה",
|
|
4
|
+
"total_tenants": "סה\"כ דיירים",
|
|
5
|
+
"total_screenings": "סה\"כ סינונים"
|
|
6
|
+
},
|
|
7
|
+
"users": {
|
|
8
|
+
"title": "כל המשתמשים",
|
|
9
|
+
"search_placeholder": "חיפוש לפי דוא\"ל או דייר...",
|
|
10
|
+
"email": "דוא\"ל",
|
|
11
|
+
"tenant": "דייר",
|
|
12
|
+
"role": "תפקיד"
|
|
13
|
+
},
|
|
14
|
+
"api_keys": {
|
|
15
|
+
"title": "מפתחות API",
|
|
16
|
+
"prefix": "קידומת",
|
|
17
|
+
"tenant": "דייר",
|
|
18
|
+
"product": "מוצר",
|
|
19
|
+
"rate_limit": "הגבלת קצב",
|
|
20
|
+
"actions": "פעולות",
|
|
21
|
+
"unlimited": "ללא הגבלה"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "סינון ישות",
|
|
3
|
+
"description": "ביצוע סינון ישות ידני",
|
|
4
|
+
"form": {
|
|
5
|
+
"individual": "יחיד",
|
|
6
|
+
"company": "חברה",
|
|
7
|
+
"first_name": "שם פרטי",
|
|
8
|
+
"last_name": "שם משפחה",
|
|
9
|
+
"company_name": "שם החברה",
|
|
10
|
+
"dob": "תאריך לידה",
|
|
11
|
+
"nationality": "אזרחות",
|
|
12
|
+
"submit": "סנן ישות",
|
|
13
|
+
"submitting": "מסנן..."
|
|
14
|
+
},
|
|
15
|
+
"layers": {
|
|
16
|
+
"title": "שכבות סינון",
|
|
17
|
+
"ofac_sdn": "OFAC SDN",
|
|
18
|
+
"eu_sanctions": "סנקציות האיחוד האירופי",
|
|
19
|
+
"un_consolidated": "רשימה מאוחדת של האו\"ם",
|
|
20
|
+
"custom_lists": "רשימות מותאמות"
|
|
21
|
+
},
|
|
22
|
+
"results": {
|
|
23
|
+
"title": "תוצאות סינון",
|
|
24
|
+
"match_found": "נמצאה התאמה ברשימת סנקציות"
|
|
25
|
+
}
|
|
26
|
+
}
|
package/src/index.css
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
@import './styles/effects.css';
|
|
5
|
+
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
|
|
8
|
+
html {
|
|
9
|
+
background: #0A0A0F;
|
|
10
|
+
color: #FFFFFF;
|
|
11
|
+
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, sans-serif;
|
|
12
|
+
-webkit-font-smoothing: antialiased;
|
|
13
|
+
-moz-osx-font-smoothing: grayscale;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
body { background: #0A0A0F; overflow-x: hidden; }
|
|
17
|
+
|
|
18
|
+
.skip-link {
|
|
19
|
+
position: absolute; top: -100%; left: 50%; transform: translateX(-50%);
|
|
20
|
+
z-index: 9999; padding: 12px 24px; background: #0A84FF;
|
|
21
|
+
color: #fff; border-radius: 0 0 10px 10px; font-weight: 600; text-decoration: none;
|
|
22
|
+
}
|
|
23
|
+
.skip-link:focus { top: 0; }
|
|
24
|
+
|
|
25
|
+
@layer components {
|
|
26
|
+
.backdrop-vibrancy { @apply backdrop-blur-vibrancy backdrop-saturate-180; }
|
|
27
|
+
.sf-title { @apply text-sf-title font-bold tracking-tight; }
|
|
28
|
+
.sf-headline { @apply text-sf-headline font-semibold; }
|
|
29
|
+
.sf-body { @apply text-sf-body font-normal; }
|
|
30
|
+
.sf-caption { @apply text-sf-caption font-normal text-apple-label-secondary; }
|
|
31
|
+
|
|
32
|
+
.card-vibrancy {
|
|
33
|
+
background: rgba(18, 18, 26, 0.8);
|
|
34
|
+
backdrop-filter: blur(24px) saturate(180%);
|
|
35
|
+
border: 1px solid rgba(255,255,255,0.06);
|
|
36
|
+
border-radius: 16px;
|
|
37
|
+
box-shadow: 0 0 0 1px rgba(255,255,255,0.03), 0 4px 24px rgba(0,0,0,0.4);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.button-primary {
|
|
41
|
+
@apply text-white px-lg py-md rounded-apple-md font-semibold cursor-pointer;
|
|
42
|
+
@apply focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-apple-blue;
|
|
43
|
+
background: linear-gradient(135deg, #0A84FF 0%, #00D4AA 100%);
|
|
44
|
+
box-shadow: 0 0 16px rgba(10,132,255,0.2);
|
|
45
|
+
transition: all 0.25s ease;
|
|
46
|
+
}
|
|
47
|
+
.button-primary:hover {
|
|
48
|
+
box-shadow: 0 0 32px rgba(10,132,255,0.4), 0 0 12px rgba(0,212,170,0.2);
|
|
49
|
+
transform: translateY(-1px);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.button-secondary {
|
|
53
|
+
@apply bg-apple-bg-tertiary hover:bg-white/5 text-white px-lg py-md rounded-apple-md;
|
|
54
|
+
@apply font-semibold cursor-pointer border border-white/10 transition-all;
|
|
55
|
+
@apply focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-apple-blue;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.input-field {
|
|
59
|
+
background: rgba(255,255,255,0.04);
|
|
60
|
+
border: 1px solid rgba(255,255,255,0.08);
|
|
61
|
+
border-radius: 12px;
|
|
62
|
+
@apply px-md py-md text-white placeholder:text-apple-label-secondary transition-all min-h-[44px];
|
|
63
|
+
}
|
|
64
|
+
.input-field:focus {
|
|
65
|
+
outline: none;
|
|
66
|
+
border-color: rgba(10,132,255,0.5);
|
|
67
|
+
box-shadow: 0 0 0 3px rgba(10,132,255,0.15), 0 0 20px rgba(10,132,255,0.1);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.badge-green { @apply bg-apple-green/20 text-apple-green px-md py-xs rounded-full text-xs font-semibold; }
|
|
71
|
+
.badge-red { @apply bg-apple-red/20 text-apple-red px-md py-xs rounded-full text-xs font-semibold; }
|
|
72
|
+
.badge-orange { @apply bg-apple-orange/20 text-apple-orange px-md py-xs rounded-full text-xs font-semibold; }
|
|
73
|
+
.badge-blue { @apply bg-apple-blue/20 text-apple-blue px-md py-xs rounded-full text-xs font-semibold; }
|
|
74
|
+
.skeleton { @apply bg-apple-bg-tertiary animate-pulse rounded-apple-md; }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
a:focus-visible, button:focus-visible, select:focus-visible {
|
|
78
|
+
outline: 2px solid #0A84FF; outline-offset: 2px; border-radius: 4px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
input, textarea, select { font-family: inherit; font-size: 1rem; color: inherit; }
|
|
82
|
+
|
|
83
|
+
::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
84
|
+
::-webkit-scrollbar-track { background: transparent; }
|
|
85
|
+
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 4px; }
|
|
86
|
+
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.25); }
|
|
87
|
+
|
|
88
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
89
|
+
* { transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
|
|
90
|
+
button, a { transition: background-color 0.2s, opacity 0.2s, box-shadow 0.2s; }
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Mobile-first responsive */
|
|
94
|
+
@media (max-width: 640px) {
|
|
95
|
+
html, body { overflow-x: hidden; max-width: 100vw; }
|
|
96
|
+
.container { padding-left: 1rem; padding-right: 1rem; }
|
|
97
|
+
button, a, input, select { min-height: 44px; }
|
|
98
|
+
h1 { font-size: 1.75rem !important; }
|
|
99
|
+
h2 { font-size: 1.25rem !important; }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@media (prefers-reduced-motion: reduce) {
|
|
103
|
+
*, *::before, *::after {
|
|
104
|
+
animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
|
|
105
|
+
transition-duration: 0.01ms !important; scroll-behavior: auto !important;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@keyframes slideInRight {
|
|
110
|
+
from { opacity: 0; transform: translateX(100%); }
|
|
111
|
+
to { opacity: 1; transform: translateX(0); }
|
|
112
|
+
}
|
package/src/main.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import ReactDOM from 'react-dom/client'
|
|
3
|
+
import './i18n/config'
|
|
4
|
+
import App from './App'
|
|
5
|
+
import './index.css'
|
|
6
|
+
|
|
7
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
8
|
+
<React.StrictMode>
|
|
9
|
+
<App />
|
|
10
|
+
</React.StrictMode>,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
if ('serviceWorker' in navigator) {
|
|
14
|
+
navigator.serviceWorker.register('/sw.js').catch(() => {})
|
|
15
|
+
}
|