diff --git a/apps/sim/app/chat/components/loading-state/loading-state.tsx b/apps/sim/app/chat/components/loading-state/loading-state.tsx index cc292a7f6b8..8cfd0406b7c 100644 --- a/apps/sim/app/chat/components/loading-state/loading-state.tsx +++ b/apps/sim/app/chat/components/loading-state/loading-state.tsx @@ -1,6 +1,6 @@ 'use client' -import { Skeleton } from '@/components/ui/skeleton' +import { Skeleton } from '@/components/emcn' export function ChatLoadingState() { return ( diff --git a/apps/sim/app/form/[identifier]/components/loading-state.tsx b/apps/sim/app/form/[identifier]/components/loading-state.tsx index d7f3f070f28..1e3656e5186 100644 --- a/apps/sim/app/form/[identifier]/components/loading-state.tsx +++ b/apps/sim/app/form/[identifier]/components/loading-state.tsx @@ -1,6 +1,6 @@ 'use client' -import { Skeleton } from '@/components/ui/skeleton' +import { Skeleton } from '@/components/emcn' import AuthBackground from '@/app/(auth)/components/auth-background' export function FormLoadingState() { diff --git a/apps/sim/app/templates/[id]/template.tsx b/apps/sim/app/templates/[id]/template.tsx index 9bb7f26f7cb..c08f362fc33 100644 --- a/apps/sim/app/templates/[id]/template.tsx +++ b/apps/sim/app/templates/[id]/template.tsx @@ -27,8 +27,8 @@ import { PopoverContent, PopoverItem, PopoverTrigger, + Skeleton, } from '@/components/emcn' -import { Skeleton } from '@/components/ui/skeleton' import { VerifiedBadge } from '@/components/ui/verified-badge' import { useSession } from '@/lib/auth/auth-client' import { cn } from '@/lib/core/utils/cn' diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx index 01d22458517..58884a0de3b 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx @@ -23,9 +23,9 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui/skeleton' import { cn } from '@/lib/core/utils/cn' import { getCanonicalScopesForProvider, diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/edit-connector-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/edit-connector-modal.tsx index 27ad0b3efd8..854da368848 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/edit-connector-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/edit-connector-modal.tsx @@ -19,8 +19,8 @@ import { ModalTabsContent, ModalTabsList, ModalTabsTrigger, + Skeleton, } from '@/components/emcn' -import { Skeleton } from '@/components/ui/skeleton' import { CONNECTOR_REGISTRY } from '@/connectors/registry' import type { ConnectorConfig } from '@/connectors/types' import type { ConnectorData } from '@/hooks/queries/kb/connectors' diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx index 88bf0059f4f..2821215788e 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/dashboard/dashboard.tsx @@ -2,7 +2,7 @@ import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { Loader2 } from 'lucide-react' -import { Skeleton } from '@/components/ui/skeleton' +import { Skeleton } from '@/components/emcn' import { formatLatency } from '@/app/workspace/[workspaceId]/logs/utils' import type { DashboardStatsResponse, WorkflowStats } from '@/hooks/queries/logs' import { useFilterStore } from '@/stores/logs/filters/store' diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/log-details/log-details.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/log-details/log-details.tsx index 523257e8213..240918d389f 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/log-details/log-details.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/log-details/log-details.tsx @@ -16,7 +16,6 @@ import { Tooltip, } from '@/components/emcn' import { Copy as CopyIcon, Search as SearchIcon } from '@/components/emcn/icons' -import { ScrollArea } from '@/components/ui/scroll-area' import { BASE_EXECUTION_CHARGE } from '@/lib/billing/constants' import { cn } from '@/lib/core/utils/cn' import { formatDuration } from '@/lib/core/utils/formatting' @@ -396,7 +395,7 @@ export const LogDetails = memo(function LogDetails({ {/* Content - Scrollable */} - +
{/* Timestamp & Workflow Row */}
@@ -632,7 +631,7 @@ export const LogDetails = memo(function LogDetails({
)}
- +
)} diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/components/workflow-selector/workflow-selector.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/components/workflow-selector/workflow-selector.tsx index 1596e2f0882..807a061e882 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/components/workflow-selector/workflow-selector.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/components/workflow-selector/workflow-selector.tsx @@ -2,8 +2,7 @@ import { useMemo } from 'react' import { X } from 'lucide-react' -import { Badge, Combobox, type ComboboxOption, Label } from '@/components/emcn' -import { Skeleton } from '@/components/ui' +import { Badge, Combobox, type ComboboxOption, Label, Skeleton } from '@/components/emcn' import { useWorkflows } from '@/hooks/queries/workflows' interface WorkflowSelectorProps { diff --git a/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/notifications.tsx b/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/notifications.tsx index 059eea06c30..e2ace66fd45 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/notifications.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/components/logs-toolbar/components/notifications/notifications.tsx @@ -18,11 +18,11 @@ import { ModalTabsContent, ModalTabsList, ModalTabsTrigger, + Skeleton, TagInput, type TagItem, } from '@/components/emcn' import { SlackIcon } from '@/components/icons' -import { Skeleton } from '@/components/ui' import { dollarsToCredits } from '@/lib/billing/credits/conversion' import { getTriggerOptions } from '@/lib/logs/get-trigger-options' import { quickValidateEmail } from '@/lib/messaging/email/validation' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/api-keys/api-keys.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/api-keys/api-keys.tsx index 3c5e7c9b675..610eba6451f 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/api-keys/api-keys.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/api-keys/api-keys.tsx @@ -11,10 +11,11 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Switch, Tooltip, } from '@/components/emcn' -import { Input, Skeleton } from '@/components/ui' +import { Input } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { formatDate } from '@/lib/core/utils/formatting' import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/credential-sets/credential-sets.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/credential-sets/credential-sets.tsx index 975817a16b8..f78658bbd87 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/credential-sets/credential-sets.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/credential-sets/credential-sets.tsx @@ -17,11 +17,12 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, TagInput, type TagItem, } from '@/components/emcn' import { GmailIcon, OutlookIcon } from '@/components/icons' -import { Input as BaseInput, Skeleton } from '@/components/ui' +import { Input as BaseInput } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { getSubscriptionStatus } from '@/lib/billing/client' import { cn } from '@/lib/core/utils/cn' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/credentials/credentials-manager.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/credentials/credentials-manager.tsx index c202c5a4c53..2ab71834795 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/credentials/credentials-manager.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/credentials/credentials-manager.tsx @@ -17,11 +17,12 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Textarea, Tooltip, Trash, } from '@/components/emcn' -import { Input, Skeleton } from '@/components/ui' +import { Input } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { clearPendingCredentialCreateRequest, diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/integrations/integrations-manager.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/integrations/integrations-manager.tsx index 2de389ea463..32a95b03ddd 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/integrations/integrations-manager.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/integrations/integrations-manager.tsx @@ -17,10 +17,11 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Textarea, Tooltip, } from '@/components/emcn' -import { Skeleton, Input as UiInput } from '@/components/ui' +import { Input as UiInput } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { clearPendingCredentialCreateRequest, diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/subscription/subscription.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/subscription/subscription.tsx index 03375efcbe1..5e93949fc6c 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/subscription/subscription.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/subscription/subscription.tsx @@ -14,10 +14,10 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Switch, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { useSession, useSubscription } from '@/lib/auth/auth-client' import { USAGE_THRESHOLDS } from '@/lib/billing/client/consts' import { useSubscriptionUpgrade } from '@/lib/billing/client/upgrade' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/team-seats-overview/team-seats-overview.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/team-seats-overview/team-seats-overview.tsx index c78764dfc4c..91cf0997d07 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/team-seats-overview/team-seats-overview.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/components/team-seats-overview/team-seats-overview.tsx @@ -1,5 +1,4 @@ -import { Badge, Button } from '@/components/emcn' -import { Skeleton } from '@/components/ui/skeleton' +import { Badge, Button, Skeleton } from '@/components/emcn' import { checkEnterprisePlan } from '@/lib/billing/subscriptions/utils' import { cn } from '@/lib/core/utils/cn' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/team-management.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/team-management.tsx index 2691ba50c17..f1088791770 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/team-management.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/team-management/team-management.tsx @@ -2,8 +2,7 @@ import { useCallback, useEffect, useState } from 'react' import { createLogger } from '@sim/logger' -import type { TagItem } from '@/components/emcn' -import { Skeleton } from '@/components/ui' +import { Skeleton, type TagItem } from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' import { getPlanTierCredits, getPlanTierDollars } from '@/lib/billing/plan-helpers' import { checkEnterprisePlan } from '@/lib/billing/subscriptions/utils' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/template-profile/template-profile.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/template-profile/template-profile.tsx index c6963ce25bf..01625282871 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/template-profile/template-profile.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/template-profile/template-profile.tsx @@ -4,9 +4,8 @@ import { useEffect, useState } from 'react' import { createLogger } from '@sim/logger' import { Camera, Globe, Linkedin, Mail } from 'lucide-react' import Image from 'next/image' -import { Button, Combobox, Input, Textarea } from '@/components/emcn' +import { Button, Combobox, Input, Skeleton, Textarea } from '@/components/emcn' import { AgentIcon, xIcon as XIcon } from '@/components/icons' -import { Skeleton } from '@/components/ui/skeleton' import { useSession } from '@/lib/auth/auth-client' import { quickValidateEmail } from '@/lib/messaging/email/validation' import type { CreatorProfileDetails } from '@/app/_types/creator-profile' diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/workflow-mcp-servers/workflow-mcp-servers.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/workflow-mcp-servers/workflow-mcp-servers.tsx index 49e60aee7c7..bc569c6357e 100644 --- a/apps/sim/app/workspace/[workspaceId]/settings/components/workflow-mcp-servers/workflow-mcp-servers.tsx +++ b/apps/sim/app/workspace/[workspaceId]/settings/components/workflow-mcp-servers/workflow-mcp-servers.tsx @@ -19,6 +19,7 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, SModalTabs, SModalTabsBody, SModalTabsContent, @@ -27,7 +28,7 @@ import { Textarea, Tooltip, } from '@/components/emcn' -import { Input, Skeleton } from '@/components/ui' +import { Input } from '@/components/ui' import { getBaseUrl } from '@/lib/core/utils/urls' import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider' import { useApiKeys } from '@/hooks/queries/api-keys' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/a2a/a2a.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/a2a/a2a.tsx index 50bcc9c6a8e..61d18e19c45 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/a2a/a2a.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/a2a/a2a.tsx @@ -12,11 +12,11 @@ import { Code, Input, Label, + Skeleton, TagInput, Textarea, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import type { AgentAuthentication, AgentCapabilities } from '@/lib/a2a/types' import { getBaseUrl } from '@/lib/core/utils/urls' import { normalizeInputFormatValue } from '@/lib/workflows/input-format' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/api/api.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/api/api.tsx index 6472b324ba7..84d73dcc843 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/api/api.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/api/api.tsx @@ -9,9 +9,9 @@ import { Code, Combobox, Label, + Skeleton, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { OutputSelect } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select' interface WorkflowDeploymentInfo { diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/chat/chat.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/chat/chat.tsx index 923828cf0a6..8b232da692e 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/chat/chat.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/chat/chat.tsx @@ -14,12 +14,13 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, TagInput, type TagItem, Textarea, Tooltip, } from '@/components/emcn' -import { Alert, AlertDescription, Skeleton } from '@/components/ui' +import { Alert, AlertDescription } from '@/components/ui' import { getEnv, isTruthy } from '@/lib/core/config/env' import { generatePassword } from '@/lib/core/security/encryption' import { cn } from '@/lib/core/utils/cn' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/form/form.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/form/form.tsx index d6f6f3e9046..193932eaec4 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/form/form.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/form/form.tsx @@ -8,12 +8,12 @@ import { ButtonGroupItem, Input, Label, + Skeleton, TagInput, type TagItem, Textarea, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { isDev } from '@/lib/core/config/feature-flags' import { cn } from '@/lib/core/utils/cn' import { getBaseUrl, getEmailDomain } from '@/lib/core/utils/urls' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/components/versions.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/components/versions.tsx index fa739adabce..b986b58de62 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/components/versions.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/components/versions.tsx @@ -9,9 +9,9 @@ import { PopoverContent, PopoverItem, PopoverTrigger, + Skeleton, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { formatDateTime } from '@/lib/core/utils/formatting' import type { WorkflowDeploymentVersionResponse } from '@/lib/workflows/persistence/utils' import { useUpdateDeploymentVersion } from '@/hooks/queries/deployments' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/general.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/general.tsx index 13704178c4b..7c28f551c9d 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/general.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/general/general.tsx @@ -13,9 +13,9 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, Tooltip, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import type { WorkflowDeploymentVersionResponse } from '@/lib/workflows/persistence/utils' import { Preview, PreviewWorkflow } from '@/app/workspace/[workspaceId]/w/components/preview' import { useDeploymentVersionState, useRevertToVersion } from '@/hooks/queries/workflows' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/mcp/mcp.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/mcp/mcp.tsx index 75fff954a56..0a95d9fd6be 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/mcp/mcp.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/mcp/mcp.tsx @@ -10,9 +10,9 @@ import { type ComboboxOption, Input, Label, + Skeleton, Textarea, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { generateToolInputSchema, sanitizeToolName } from '@/lib/mcp/workflow-tool-schema' import { normalizeInputFormatValue } from '@/lib/workflows/input-format' import { isInputDefinitionTrigger } from '@/lib/workflows/triggers/input-definition-triggers' diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/template/template.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/template/template.tsx index b9f224f7cc7..ce03a8a93b7 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/template/template.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/components/deploy-modal/components/template/template.tsx @@ -12,10 +12,10 @@ import { ModalContent, ModalFooter, ModalHeader, + Skeleton, TagInput, Textarea, } from '@/components/emcn' -import { Skeleton } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { cn } from '@/lib/core/utils/cn' import { captureAndUploadOGImage, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH } from '@/lib/og' diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx index aab2dc4a2dd..b8315cb56f2 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/usage-indicator/usage-indicator.tsx @@ -3,8 +3,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { createLogger } from '@sim/logger' import { useQueryClient } from '@tanstack/react-query' -import { Badge } from '@/components/emcn' -import { Skeleton } from '@/components/ui' +import { Badge, Skeleton } from '@/components/emcn' import { USAGE_PILL_COLORS, USAGE_THRESHOLDS } from '@/lib/billing/client/consts' import { useSubscriptionUpgrade } from '@/lib/billing/client/upgrade' import { diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workspace-header/components/invite-modal/components/permissions-table.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workspace-header/components/invite-modal/components/permissions-table.tsx index 9b313c266f7..c14a54e5dca 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workspace-header/components/invite-modal/components/permissions-table.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workspace-header/components/invite-modal/components/permissions-table.tsx @@ -1,7 +1,6 @@ import { useEffect, useMemo, useState } from 'react' import { Loader2, RotateCw, X } from 'lucide-react' -import { Badge, Button, Tooltip } from '@/components/emcn' -import { Skeleton } from '@/components/ui/skeleton' +import { Badge, Button, Skeleton, Tooltip } from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' import type { PermissionType } from '@/lib/workspaces/permissions/utils' import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider' diff --git a/apps/sim/components/ui/card.tsx b/apps/sim/components/ui/card.tsx deleted file mode 100644 index 3fab3a3a40c..00000000000 --- a/apps/sim/components/ui/card.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import * as React from 'react' -import { cn } from '@/lib/core/utils/cn' - -const Card = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -Card.displayName = 'Card' - -const CardHeader = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -CardHeader.displayName = 'CardHeader' - -const CardTitle = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -CardTitle.displayName = 'CardTitle' - -const CardDescription = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -CardDescription.displayName = 'CardDescription' - -const CardContent = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -CardContent.displayName = 'CardContent' - -const CardFooter = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ) -) -CardFooter.displayName = 'CardFooter' - -export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/apps/sim/components/ui/collapsible.tsx b/apps/sim/components/ui/collapsible.tsx deleted file mode 100644 index 1bbaed5a8d1..00000000000 --- a/apps/sim/components/ui/collapsible.tsx +++ /dev/null @@ -1,11 +0,0 @@ -'use client' - -import * as CollapsiblePrimitive from '@radix-ui/react-collapsible' - -const Collapsible = CollapsiblePrimitive.Root - -const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger - -const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent - -export { Collapsible, CollapsibleTrigger, CollapsibleContent } diff --git a/apps/sim/components/ui/dropdown-menu.tsx b/apps/sim/components/ui/dropdown-menu.tsx deleted file mode 100644 index ec6e7f314b0..00000000000 --- a/apps/sim/components/ui/dropdown-menu.tsx +++ /dev/null @@ -1,184 +0,0 @@ -'use client' - -import * as React from 'react' -import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' -import { Check, ChevronRight, Circle } from 'lucide-react' -import { cn } from '@/lib/core/utils/cn' - -const DropdownMenu = DropdownMenuPrimitive.Root - -const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger - -const DropdownMenuGroup = DropdownMenuPrimitive.Group - -const DropdownMenuPortal = DropdownMenuPrimitive.Portal - -const DropdownMenuSub = DropdownMenuPrimitive.Sub - -const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup - -const DropdownMenuSubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, children, ...props }, ref) => ( - - {children} - - -)) -DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName - -const DropdownMenuSubContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName - -const DropdownMenuContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, sideOffset = 4, ...props }, ref) => ( - - - -)) -DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName - -const DropdownMenuItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName - -const DropdownMenuCheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, checked, ...props }, ref) => ( - - - - - - - {children} - -)) -DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName - -const DropdownMenuRadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - - - - {children} - -)) -DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName - -const DropdownMenuLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean - } ->(({ className, inset, ...props }, ref) => ( - -)) -DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName - -const DropdownMenuSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName - -const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes) => { - return -} -DropdownMenuShortcut.displayName = 'DropdownMenuShortcut' - -export { - DropdownMenu, - DropdownMenuTrigger, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuCheckboxItem, - DropdownMenuRadioItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuGroup, - DropdownMenuPortal, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuRadioGroup, -} diff --git a/apps/sim/components/ui/index.ts b/apps/sim/components/ui/index.ts index a9da32e350f..f4d93994846 100644 --- a/apps/sim/components/ui/index.ts +++ b/apps/sim/components/ui/index.ts @@ -1,7 +1,5 @@ export { Alert, AlertDescription, AlertTitle } from './alert' export { Button, buttonVariants } from './button' -export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './card' -export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible' export { Dialog, DialogClose, @@ -14,28 +12,10 @@ export { DialogTitle, DialogTrigger, } from './dialog' -export { - DropdownMenu, - DropdownMenuCheckboxItem, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuPortal, - DropdownMenuRadioGroup, - DropdownMenuRadioItem, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from './dropdown-menu' export { Input } from './input' export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from './input-otp' export { Label } from './label' export { Progress } from './progress' -export { ScrollArea, ScrollBar } from './scroll-area' export { SearchHighlight } from './search-highlight' export { Select, @@ -49,7 +29,3 @@ export { SelectTrigger, SelectValue, } from './select' -export { Separator } from './separator' -export { Skeleton } from './skeleton' -export { TagInput } from './tag-input' -export { ToolCallCompletion, ToolCallExecution } from './tool-call' diff --git a/apps/sim/components/ui/scroll-area.tsx b/apps/sim/components/ui/scroll-area.tsx deleted file mode 100644 index d4fb41e9597..00000000000 --- a/apps/sim/components/ui/scroll-area.tsx +++ /dev/null @@ -1,52 +0,0 @@ -'use client' - -import * as React from 'react' -import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area' -import { cn } from '@/lib/core/utils/cn' - -const ScrollArea = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - hideScrollbar?: boolean - } ->(({ className, children, hideScrollbar = false, ...props }, ref) => ( - - - {children} - - -)) -ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName - -const ScrollBar = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - hidden?: boolean - } ->(({ className, orientation = 'vertical', hidden = false, ...props }, ref) => ( - -)) -ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName - -export { ScrollArea, ScrollBar } diff --git a/apps/sim/components/ui/separator.tsx b/apps/sim/components/ui/separator.tsx deleted file mode 100644 index 957f8fe0cd6..00000000000 --- a/apps/sim/components/ui/separator.tsx +++ /dev/null @@ -1,25 +0,0 @@ -'use client' - -import * as React from 'react' -import * as SeparatorPrimitive from '@radix-ui/react-separator' -import { cn } from '@/lib/core/utils/cn' - -const Separator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => ( - -)) -Separator.displayName = SeparatorPrimitive.Root.displayName - -export { Separator } diff --git a/apps/sim/components/ui/skeleton.tsx b/apps/sim/components/ui/skeleton.tsx deleted file mode 100644 index c7c73d16304..00000000000 --- a/apps/sim/components/ui/skeleton.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { cn } from '@/lib/core/utils/cn' - -function Skeleton({ className, ...props }: React.HTMLAttributes) { - return
-} - -export { Skeleton } diff --git a/apps/sim/components/ui/tag-input.tsx b/apps/sim/components/ui/tag-input.tsx deleted file mode 100644 index 62881eacd86..00000000000 --- a/apps/sim/components/ui/tag-input.tsx +++ /dev/null @@ -1,112 +0,0 @@ -'use client' - -import { type KeyboardEvent, useRef, useState } from 'react' -import { X } from 'lucide-react' -import { Input } from '@/components/ui/input' -import { cn } from '@/lib/core/utils/cn' - -interface TagInputProps { - value: string[] - onChange: (tags: string[]) => void - placeholder?: string - maxTags?: number - disabled?: boolean - className?: string -} - -export function TagInput({ - value = [], - onChange, - placeholder = 'Type and press Enter', - maxTags = 10, - disabled = false, - className, -}: TagInputProps) { - const [inputValue, setInputValue] = useState('') - const inputRef = useRef(null) - - const addTag = (tag: string) => { - const trimmedTag = tag.trim() - if (trimmedTag && !value.includes(trimmedTag) && value.length < maxTags) { - onChange([...value, trimmedTag]) - setInputValue('') - } - } - - const removeTag = (tagToRemove: string) => { - onChange(value.filter((tag) => tag !== tagToRemove)) - } - - const handleKeyDown = (e: KeyboardEvent) => { - if (e.key === 'Enter' && inputValue.trim()) { - e.preventDefault() - addTag(inputValue) - } else if (e.key === 'Backspace' && !inputValue && value.length > 0) { - removeTag(value[value.length - 1]) - } - } - - const handleBlur = () => { - if (inputValue.trim()) { - addTag(inputValue) - } - } - - return ( -
!disabled && inputRef.current?.focus()} - > - {value.map((tag) => ( - removeTag(tag)} disabled={disabled} /> - ))} - {!disabled && value.length < maxTags && ( - setInputValue(e.target.value)} - onKeyDown={handleKeyDown} - onBlur={handleBlur} - placeholder={value.length === 0 ? placeholder : ''} - disabled={disabled} - className={cn( - 'h-6 min-w-[180px] flex-1 border-none bg-transparent p-0 font-medium font-sans text-sm placeholder:text-[var(--text-muted)] focus-visible:ring-0 focus-visible:ring-offset-0', - value.length > 0 ? 'pl-[4px]' : 'pl-[4px]' - )} - /> - )} -
- ) -} - -interface TagProps { - value: string - onRemove: () => void - disabled?: boolean -} - -function Tag({ value, onRemove, disabled }: TagProps) { - return ( -
- {value} - {!disabled && ( - - )} -
- ) -} diff --git a/apps/sim/components/ui/tool-call.tsx b/apps/sim/components/ui/tool-call.tsx deleted file mode 100644 index bc523894ff3..00000000000 --- a/apps/sim/components/ui/tool-call.tsx +++ /dev/null @@ -1,469 +0,0 @@ -'use client' - -import { useState } from 'react' -import { CheckCircle, ChevronDown, ChevronRight, Loader2, Settings, XCircle } from 'lucide-react' -import { Badge } from '@/components/emcn' -import { Button } from '@/components/ui/button' -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible' -import { cn } from '@/lib/core/utils/cn' -import { formatDuration } from '@/lib/core/utils/formatting' - -interface ToolCallState { - id: string - name: string - displayName?: string - parameters?: Record - state: - | 'detecting' - | 'pending' - | 'executing' - | 'completed' - | 'error' - | 'rejected' - | 'applied' - | 'ready_for_review' - | 'aborted' - | 'skipped' - | 'background' - startTime?: number - endTime?: number - duration?: number - result?: unknown - error?: string - progress?: string -} - -interface ToolCallGroup { - id: string - toolCalls: ToolCallState[] - status: 'pending' | 'in_progress' | 'completed' | 'error' - startTime?: number - endTime?: number - summary?: string -} - -interface ToolCallProps { - toolCall: ToolCallState - isCompact?: boolean -} - -interface ToolCallGroupProps { - group: ToolCallGroup - isCompact?: boolean -} - -interface ToolCallIndicatorProps { - type: 'status' | 'thinking' | 'execution' - content: string - toolNames?: string[] -} - -// Detection State Component -export function ToolCallDetection({ content }: { content: string }) { - return ( -
- - {content} -
- ) -} - -// Execution State Component -export function ToolCallExecution({ toolCall, isCompact = false }: ToolCallProps) { - const [isExpanded, setIsExpanded] = useState(!isCompact) - - return ( -
- - - - - -
-
- - Executing... -
- {toolCall.parameters && - Object.keys(toolCall.parameters).length > 0 && - (toolCall.name === 'make_api_request' || - toolCall.name === 'set_environment_variables' || - toolCall.name === 'set_global_workflow_variables') && ( -
- {toolCall.name === 'make_api_request' ? ( -
-
-
- Method -
-
- Endpoint -
-
-
-
- - {String((toolCall.parameters as any).method || '').toUpperCase() || - 'GET'} - -
-
- - {String((toolCall.parameters as any).url || '') || 'URL not provided'} - -
-
-
- ) : null} - - {toolCall.name === 'set_environment_variables' - ? (() => { - const variables = - (toolCall.parameters as any).variables && - typeof (toolCall.parameters as any).variables === 'object' - ? (toolCall.parameters as any).variables - : {} - const entries = Object.entries(variables) - return ( -
-
-
- Name -
-
- Value -
-
- {entries.length === 0 ? ( -
- No variables provided -
- ) : ( -
- {entries.map(([k, v]) => ( -
-
- {k} -
-
- - {String(v)} - -
-
- ))} -
- )} -
- ) - })() - : null} - - {toolCall.name === 'set_global_workflow_variables' - ? (() => { - const ops = Array.isArray((toolCall.parameters as any).operations) - ? ((toolCall.parameters as any).operations as any[]) - : [] - return ( -
-
-
- Name -
-
- Type -
-
- Value -
-
- {ops.length === 0 ? ( -
- No operations provided -
- ) : ( -
- {ops.map((op, idx) => ( -
-
- - {String(op.name || '')} - -
-
- - {String(op.type || '')} - -
-
- {op.value !== undefined ? ( - - {String(op.value)} - - ) : ( - - )} -
-
- ))} -
- )} -
- ) - })() - : null} -
- )} -
-
-
-
- ) -} - -export function ToolCallCompletion({ toolCall, isCompact = false }: ToolCallProps) { - const [isExpanded, setIsExpanded] = useState(false) - const isSuccess = toolCall.state === 'completed' - const isError = toolCall.state === 'error' - const isAborted = toolCall.state === 'aborted' - - return ( -
- - - - - -
- {toolCall.parameters && - Object.keys(toolCall.parameters).length > 0 && - (toolCall.name === 'make_api_request' || - toolCall.name === 'set_environment_variables') && ( -
-
- Parameters: -
-
- {JSON.stringify(toolCall.parameters, null, 2)} -
-
- )} - - {toolCall.error && ( -
-
- Error: -
-
- {toolCall.error} -
-
- )} -
-
-
-
- ) -} - -// Group Component for Multiple Tool Calls -export function ToolCallGroupComponent({ group, isCompact = false }: ToolCallGroupProps) { - const [isExpanded, setIsExpanded] = useState(true) - - const completedCount = group.toolCalls.filter((t) => t.state === 'completed').length - const totalCount = group.toolCalls.length - const isAllCompleted = completedCount === totalCount - const hasErrors = group.toolCalls.some((t) => t.state === 'error') - - return ( -
- {group.summary && ( -
- - {group.summary} - {!isAllCompleted && ( - - {completedCount}/{totalCount} - - )} -
- )} - - - - - - - {group.toolCalls.map((toolCall) => ( -
- {toolCall.state === 'executing' && ( - - )} - {(toolCall.state === 'completed' || toolCall.state === 'error') && ( - - )} -
- ))} -
-
-
- ) -} - -// Status Indicator Component -export function ToolCallIndicator({ type, content, toolNames }: ToolCallIndicatorProps) { - if (type === 'status' && toolNames) { - return ( -
- - - 🔄 {toolNames.join(' • ')} - -
- ) - } - - return ( -
- - {content} -
- ) -} diff --git a/apps/sim/ee/access-control/components/access-control.tsx b/apps/sim/ee/access-control/components/access-control.tsx index 5c770986714..00436aec593 100644 --- a/apps/sim/ee/access-control/components/access-control.tsx +++ b/apps/sim/ee/access-control/components/access-control.tsx @@ -20,9 +20,10 @@ import { ModalTabsContent, ModalTabsList, ModalTabsTrigger, + Skeleton, Switch, } from '@/components/emcn' -import { Input as BaseInput, Skeleton } from '@/components/ui' +import { Input as BaseInput } from '@/components/ui' import { useSession } from '@/lib/auth/auth-client' import { getSubscriptionStatus } from '@/lib/billing/client' import type { PermissionGroupConfig } from '@/lib/permission-groups/types' diff --git a/apps/sim/ee/sso/components/sso-settings.tsx b/apps/sim/ee/sso/components/sso-settings.tsx index 249bab67eb9..10621ca67ff 100644 --- a/apps/sim/ee/sso/components/sso-settings.tsx +++ b/apps/sim/ee/sso/components/sso-settings.tsx @@ -3,8 +3,7 @@ import { useState } from 'react' import { createLogger } from '@sim/logger' import { Check, ChevronDown, Clipboard, Eye, EyeOff } from 'lucide-react' -import { Button, Combobox, Input, Switch, Textarea } from '@/components/emcn' -import { Skeleton } from '@/components/ui' +import { Button, Combobox, Input, Skeleton, Switch, Textarea } from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' import { getSubscriptionStatus } from '@/lib/billing/client/utils' import { isBillingEnabled } from '@/lib/core/config/feature-flags'