diff --git a/apps/web/src/components/domain-bindings-card.tsx b/apps/web/src/components/domain-bindings-card.tsx
index da835e0..de21207 100644
--- a/apps/web/src/components/domain-bindings-card.tsx
+++ b/apps/web/src/components/domain-bindings-card.tsx
@@ -5,24 +5,24 @@ import { HealthCheckBadge } from '@/components/health-check-badge'
import { groupBindingsByHostname } from '@/lib/domain-ips'
import { useHealthRows } from '@/lib/use-aggregated-health'
import type { ServiceBinding } from '@/lib/schemas'
-import { AppBadge } from '@/components/app-badge'
-import { AppButton } from '@/components/app-button'
+import { Badge } from '@/components/reui/badge'
import {
- AppCard,
- AppCardContent,
- AppCardDescription,
- AppCardFooter,
- AppCardHeader,
- AppCardTitle,
-} from '@/components/app-card'
+ Frame,
+ FrameDescription,
+ FrameFooter,
+ FrameHeader,
+ FramePanel,
+ FrameTitle,
+} from '@/components/reui/frame'
+import { Button } from '@cfdm/ui/components/button'
import {
- AppItem,
- AppItemActions,
- AppItemContent,
- AppItemGroup,
- AppItemSeparator,
- AppItemTitle,
-} from '@/components/app-item'
+ Item,
+ ItemActions,
+ ItemContent,
+ ItemGroup,
+ ItemSeparator,
+ ItemTitle,
+} from '@cfdm/ui/components/item'
interface DomainBindingsCardProps {
bindings: ServiceBinding[]
@@ -76,12 +76,12 @@ export function DomainBindingsCard({ bindings }: DomainBindingsCardProps) {
const entries = [...byHostname.entries()]
return (
-
-
- Привязки сервисов
- Сервисы, назначенные hostname в этой зоне
-
-
+
+
+ Привязки сервисов
+ Сервисы, назначенные hostname в этой зоне
+
+
{entries.length === 0 ? (
) : (
-
+
{entries.map(([hostname, groupBindings], index) => {
const ips = [
...new Set(
@@ -104,9 +104,9 @@ export function DomainBindingsCard({ bindings }: DomainBindingsCardProps) {
]
return (
-
-
- {hostname}
+ -
+
+ {hostname}
{uniqueServices(groupBindings).join(', ')}
@@ -114,30 +114,30 @@ export function DomainBindingsCard({ bindings }: DomainBindingsCardProps) {
bindings={groupBindings}
ips={ips}
/>
-
-
-
+
+
+
{ips.length} IP
-
-
-
- {index < entries.length - 1 ?
: null}
+
+
+
+ {index < entries.length - 1 ?
: null}
)
})}
-
+
)}
-
-
-
+
+ }
>
К сервисам
-
-
-
+
+
+
)
}
diff --git a/apps/web/src/components/login-form.tsx b/apps/web/src/components/login-form.tsx
index c598ac3..da67358 100644
--- a/apps/web/src/components/login-form.tsx
+++ b/apps/web/src/components/login-form.tsx
@@ -9,15 +9,19 @@ import { loginSchema, type LoginInput } from '@/lib/schemas'
import { FormFieldSimple } from '@/components/form-field'
import { LoadingButton } from '@/components/loading-button'
import {
- AppCard,
- AppCardContent,
- AppCardDescription,
- AppCardHeader,
- AppCardTitle,
-} from '@/components/app-card'
-import { AppFieldGroup } from '@/components/app-field'
-import { AppInput } from '@/components/app-input'
-import { AppAlert, AppAlertDescription, AppAlertTitle } from '@/components/app-alert'
+ Frame,
+ FrameDescription,
+ FrameHeader,
+ FramePanel,
+ FrameTitle,
+} from '@/components/reui/frame'
+import {
+ Alert,
+ AlertDescription,
+ AlertTitle,
+} from '@/components/reui/alert'
+import { FieldGroup } from '@cfdm/ui/components/field'
+import { Input } from '@cfdm/ui/components/input'
type LoginFormProps = React.ComponentProps<'div'>
@@ -45,25 +49,26 @@ export function LoginForm({ className, ...props }: LoginFormProps) {
return (
-
-
- Вход в систему
-
+
+
+ Вход в систему
+
Введите учётные данные для доступа к панели управления
-
-
-
+
+
+
-
-
+
+
)
}
diff --git a/apps/web/src/components/service-binding-card.tsx b/apps/web/src/components/service-binding-card.tsx
index 01b586f..67fceee 100644
--- a/apps/web/src/components/service-binding-card.tsx
+++ b/apps/web/src/components/service-binding-card.tsx
@@ -3,22 +3,21 @@ import { CSS } from '@dnd-kit/utilities'
import { useEffect, useState } from 'react'
import { Link } from '@tanstack/react-router'
import { StatusBadge } from '@/components/status-badge'
-import { AppBadge } from '@/components/app-badge'
-import { AppButton } from '@/components/app-button'
+import { Badge } from '@/components/reui/badge'
import {
- AppCard,
- AppCardAction,
- AppCardContent,
- AppCardFooter,
- AppCardHeader,
- AppCardTitle,
-} from '@/components/app-card'
+ Frame,
+ FrameFooter,
+ FrameHeader,
+ FramePanel,
+ FrameTitle,
+} from '@/components/reui/frame'
+import { Button } from '@cfdm/ui/components/button'
import {
- AppField,
- AppFieldGroup,
- AppFieldLabel,
-} from '@/components/app-field'
-import { AppInput } from '@/components/app-input'
+ Field,
+ FieldGroup,
+ FieldLabel,
+} from '@cfdm/ui/components/field'
+import { Input } from '@cfdm/ui/components/input'
import { cn } from '@cfdm/ui/lib/utils'
import type { ServiceBinding } from '@/lib/schemas'
@@ -49,32 +48,31 @@ export function ServiceBindingCard({
: undefined
return (
-
-
- {binding.zone_name}
-
- {binding.group_name ? (
- {binding.group_name}
- ) : (
- Без группы
- )}
-
-
-
-
-
- Hostname
-
+ {binding.zone_name}
+ {binding.group_name ? (
+ {binding.group_name}
+ ) : (
+ Без группы
+ )}
+
+
+
+
+ Hostname
+
-
-
- IPv4
-
+
+ IPv4
+
-
-
+
+
-
{binding.service_name}
+
{binding.service_name}
{binding.sync_status &&
}
-
-
-
+
+
-
-
+
+
+
)
}
diff --git a/apps/web/src/components/skeletons.tsx b/apps/web/src/components/skeletons.tsx
index e18dbd8..42f79ba 100644
--- a/apps/web/src/components/skeletons.tsx
+++ b/apps/web/src/components/skeletons.tsx
@@ -1,10 +1,10 @@
import { Skeleton } from '@cfdm/ui/components/skeleton'
-import { Card, CardContent } from '@cfdm/ui/components/card'
+import { Frame, FramePanel } from '@/components/reui/frame'
export function TableSkeleton({ rows = 6, cols = 4 }: { rows?: number; cols?: number }) {
return (
-
-
+
+
{Array.from({ length: cols }).map((_, i) => (
@@ -12,14 +12,14 @@ export function TableSkeleton({ rows = 6, cols = 4 }: { rows?: number; cols?: nu
))}
{Array.from({ length: rows }).map((_, r) => (
-
+
{Array.from({ length: cols }).map((_, c) => (
))}
))}
-
-
+
+
)
}