@insforge/dashboard 0.0.0-dev.1
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/README.md +14 -0
- package/dist/app/DashboardAppShell.d.ts +7 -0
- package/dist/app/DashboardProviders.d.ts +9 -0
- package/dist/app/InsforgeDashboard.d.ts +2 -0
- package/dist/app/createDashboardQueryClient.d.ts +2 -0
- package/dist/components/CodeEditor.d.ts +12 -0
- package/dist/components/ConnectCTA.d.ts +6 -0
- package/dist/components/DataGridEmptyState.d.ts +9 -0
- package/dist/components/DeleteActionButton.d.ts +8 -0
- package/dist/components/EmptyState.d.ts +14 -0
- package/dist/components/ErrorState.d.ts +8 -0
- package/dist/components/FeatureSidebar.d.ts +47 -0
- package/dist/components/JsonHighlight.d.ts +7 -0
- package/dist/components/LoadingState.d.ts +6 -0
- package/dist/components/PaginationControls.d.ts +11 -0
- package/dist/components/PromptDialog.d.ts +10 -0
- package/dist/components/SelectionClearButton.d.ts +7 -0
- package/dist/components/Stepper.d.ts +22 -0
- package/dist/components/TableHeader.d.ts +20 -0
- package/dist/components/ThemeSelect.d.ts +1 -0
- package/dist/components/TypeBadge.d.ts +6 -0
- package/dist/components/ZoomedVideo.d.ts +7 -0
- package/dist/components/datagrid/DataGrid.d.ts +51 -0
- package/dist/components/datagrid/DefaultCellRenderer.d.ts +12 -0
- package/dist/components/datagrid/IdCell.d.ts +4 -0
- package/dist/components/datagrid/SortableHeader.d.ts +9 -0
- package/dist/components/datagrid/cell-editors/BooleanCellEditor.d.ts +2 -0
- package/dist/components/datagrid/cell-editors/DateCellEditor.d.ts +2 -0
- package/dist/components/datagrid/cell-editors/JsonCellEditor.d.ts +2 -0
- package/dist/components/datagrid/cell-editors/TextCellEditor.d.ts +2 -0
- package/dist/components/datagrid/cell-editors/index.d.ts +5 -0
- package/dist/components/datagrid/cell-editors/types.d.ts +39 -0
- package/dist/components/datagrid/datagridTypes.d.ts +61 -0
- package/dist/components/datagrid/index.d.ts +8 -0
- package/dist/components/index.d.ts +20 -0
- package/dist/components/layout/AppHeader.d.ts +1 -0
- package/dist/components/layout/AppSidebar.d.ts +6 -0
- package/dist/components/layout/Layout.d.ts +6 -0
- package/dist/components/layout/index.d.ts +3 -0
- package/dist/components/radix/Alert.d.ts +8 -0
- package/dist/components/radix/Avatar.d.ts +6 -0
- package/dist/components/radix/Card.d.ts +8 -0
- package/dist/components/radix/Form.d.ts +23 -0
- package/dist/components/radix/Label.d.ts +5 -0
- package/dist/components/radix/Popover.d.ts +6 -0
- package/dist/components/radix/ScrollArea.d.ts +5 -0
- package/dist/components/radix/Separator.d.ts +4 -0
- package/dist/components/radix/Skeleton.d.ts +2 -0
- package/dist/components/radix/Textarea.d.ts +3 -0
- package/dist/components/radix/index.d.ts +10 -0
- package/dist/features/ai/components/AILayout.d.ts +1 -0
- package/dist/features/ai/components/GatewayConfigDialog.d.ts +6 -0
- package/dist/features/ai/components/ModelRow.d.ts +9 -0
- package/dist/features/ai/components/index.d.ts +2 -0
- package/dist/features/ai/helpers.d.ts +36 -0
- package/dist/features/ai/hooks/useAIConfigs.d.ts +43 -0
- package/dist/features/ai/hooks/useAIGatewayConfig.d.ts +15 -0
- package/dist/features/ai/hooks/useAIUsage.d.ts +63 -0
- package/dist/features/ai/pages/AIPage.d.ts +1 -0
- package/dist/features/ai/services/ai.service.d.ts +44 -0
- package/dist/features/auth/components/AuthSettingsMenuDialog.d.ts +6 -0
- package/dist/features/auth/components/AuthenticationLayout.d.ts +1 -0
- package/dist/features/auth/components/AuthenticationSidebar.d.ts +1 -0
- package/dist/features/auth/components/CustomOAuthConfigDialog.d.ts +9 -0
- package/dist/features/auth/components/OAuthConfigDialog.d.ts +9 -0
- package/dist/features/auth/components/OAuthEmptyState.d.ts +1 -0
- package/dist/features/auth/components/SecretInput.d.ts +8 -0
- package/dist/features/auth/components/UserFormDialog.d.ts +13 -0
- package/dist/features/auth/components/UsersDataGrid.d.ts +9 -0
- package/dist/features/auth/components/index.d.ts +6 -0
- package/dist/features/auth/helpers.d.ts +15 -0
- package/dist/features/auth/hooks/useAnonToken.d.ts +14 -0
- package/dist/features/auth/hooks/useAuthConfig.d.ts +57 -0
- package/dist/features/auth/hooks/useCustomOAuthConfig.d.ts +72 -0
- package/dist/features/auth/hooks/useOAuthConfig.d.ts +94 -0
- package/dist/features/auth/hooks/useUsers.d.ts +92 -0
- package/dist/features/auth/index.d.ts +5 -0
- package/dist/features/auth/pages/AuthMethodsPage.d.ts +1 -0
- package/dist/features/auth/pages/UsersPage.d.ts +1 -0
- package/dist/features/auth/services/anonToken.service.d.ts +7 -0
- package/dist/features/auth/services/config.service.d.ts +6 -0
- package/dist/features/auth/services/custom-oauth-config.service.d.ts +14 -0
- package/dist/features/auth/services/oauth-config.service.d.ts +14 -0
- package/dist/features/auth/services/user.service.d.ts +21 -0
- package/dist/features/dashboard/components/ConnectionSuccessBanner.d.ts +1 -0
- package/dist/features/dashboard/components/DashboardLayout.d.ts +1 -0
- package/dist/features/dashboard/components/ProjectSettingsMenuDialog.d.ts +1 -0
- package/dist/features/dashboard/components/PromptCard.d.ts +6 -0
- package/dist/features/dashboard/components/PromptDialog.d.ts +8 -0
- package/dist/features/dashboard/components/StatsCard.d.ts +11 -0
- package/dist/features/dashboard/components/connect/APIKeysSection.d.ts +9 -0
- package/dist/features/dashboard/components/connect/CLISection.d.ts +5 -0
- package/dist/features/dashboard/components/connect/ConnectDialog.d.ts +1 -0
- package/dist/features/dashboard/components/connect/ConnectionStringSection.d.ts +5 -0
- package/dist/features/dashboard/components/connect/MCPSection.d.ts +10 -0
- package/dist/features/dashboard/components/connect/ShowPasswordButton.d.ts +7 -0
- package/dist/features/dashboard/components/connect/VideoDemoModal.d.ts +5 -0
- package/dist/features/dashboard/components/connect/constants.d.ts +2 -0
- package/dist/features/dashboard/components/connect/index.d.ts +8 -0
- package/dist/features/dashboard/components/connect/mcp/CursorDeeplinkGenerator.d.ts +7 -0
- package/dist/features/dashboard/components/connect/mcp/QoderDeeplinkGenerator.d.ts +7 -0
- package/dist/features/dashboard/components/connect/mcp/helpers.d.ts +32 -0
- package/dist/features/dashboard/components/connect/mcp/index.d.ts +4 -0
- package/dist/features/dashboard/components/index.d.ts +5 -0
- package/dist/features/dashboard/pages/DashboardPage.d.ts +2 -0
- package/dist/features/dashboard/prompts/ai-chatbot.d.ts +6 -0
- package/dist/features/dashboard/prompts/crm-system.d.ts +6 -0
- package/dist/features/dashboard/prompts/ecommerce-platform.d.ts +6 -0
- package/dist/features/dashboard/prompts/index.d.ts +14 -0
- package/dist/features/dashboard/prompts/instagram-clone.d.ts +6 -0
- package/dist/features/dashboard/prompts/notion-clone.d.ts +6 -0
- package/dist/features/dashboard/prompts/reddit-clone.d.ts +6 -0
- package/dist/features/database/components/ColumnTypeSelect.d.ts +10 -0
- package/dist/features/database/components/DatabaseDataGrid.d.ts +12 -0
- package/dist/features/database/components/DatabaseLayout.d.ts +1 -0
- package/dist/features/database/components/DatabaseSidebar.d.ts +16 -0
- package/dist/features/database/components/ForeignKeyCell.d.ts +10 -0
- package/dist/features/database/components/ForeignKeyPopover.d.ts +13 -0
- package/dist/features/database/components/LinkRecordDialog.d.ts +10 -0
- package/dist/features/database/components/RecordFormDialog.d.ts +10 -0
- package/dist/features/database/components/RecordFormField.d.ts +10 -0
- package/dist/features/database/components/SQLEditorLayout.d.ts +1 -0
- package/dist/features/database/components/SQLModal.d.ts +13 -0
- package/dist/features/database/components/TableForm.d.ts +11 -0
- package/dist/features/database/components/TableFormColumn.d.ts +13 -0
- package/dist/features/database/components/TablesEmptyState.d.ts +8 -0
- package/dist/features/database/components/TemplateCard.d.ts +8 -0
- package/dist/features/database/components/TemplatePreview.d.ts +7 -0
- package/dist/features/database/constants.d.ts +15 -0
- package/dist/features/database/contexts/SQLEditorContext.d.ts +22 -0
- package/dist/features/database/helpers.d.ts +9 -0
- package/dist/features/database/hooks/useCSVImport.d.ts +19 -0
- package/dist/features/database/hooks/useDatabase.d.ts +90 -0
- package/dist/features/database/hooks/useRawSQL.d.ts +43 -0
- package/dist/features/database/hooks/useRecords.d.ts +39 -0
- package/dist/features/database/hooks/useTableColumnWidthsPreference.d.ts +5 -0
- package/dist/features/database/hooks/useTables.d.ts +72 -0
- package/dist/features/database/index.d.ts +2 -0
- package/dist/features/database/pages/FunctionsPage.d.ts +1 -0
- package/dist/features/database/pages/IndexesPage.d.ts +1 -0
- package/dist/features/database/pages/PoliciesPage.d.ts +1 -0
- package/dist/features/database/pages/SQLEditorPage.d.ts +1 -0
- package/dist/features/database/pages/TablesPage.d.ts +1 -0
- package/dist/features/database/pages/TemplatesPage.d.ts +1 -0
- package/dist/features/database/pages/TriggersPage.d.ts +1 -0
- package/dist/features/database/schema.d.ts +185 -0
- package/dist/features/database/services/advance.service.d.ts +13 -0
- package/dist/features/database/services/database.service.d.ts +24 -0
- package/dist/features/database/services/record.service.d.ts +57 -0
- package/dist/features/database/services/table.service.d.ts +9 -0
- package/dist/features/database/templates/ai-chatbot.d.ts +2 -0
- package/dist/features/database/templates/crm-system.d.ts +2 -0
- package/dist/features/database/templates/ecommerce-platform.d.ts +2 -0
- package/dist/features/database/templates/index.d.ts +17 -0
- package/dist/features/database/templates/instagram-clone.d.ts +2 -0
- package/dist/features/database/templates/notion-clone.d.ts +2 -0
- package/dist/features/database/templates/reddit-clone.d.ts +2 -0
- package/dist/features/deployments/components/DeploymentMetaDataDialog.d.ts +7 -0
- package/dist/features/deployments/components/DeploymentsEmptyState.d.ts +1 -0
- package/dist/features/deployments/components/DeploymentsLayout.d.ts +1 -0
- package/dist/features/deployments/components/DeploymentsSidebar.d.ts +1 -0
- package/dist/features/deployments/components/EnvVarDialog.d.ts +14 -0
- package/dist/features/deployments/components/EnvVarRow.d.ts +9 -0
- package/dist/features/deployments/components/EnvVarsEmptyState.d.ts +1 -0
- package/dist/features/deployments/helpers.d.ts +14 -0
- package/dist/features/deployments/hooks/useCustomDomains.d.ts +68 -0
- package/dist/features/deployments/hooks/useDeploymentEnvVars.d.ts +32 -0
- package/dist/features/deployments/hooks/useDeploymentMetadata.d.ts +13 -0
- package/dist/features/deployments/hooks/useDeploymentSlug.d.ts +9 -0
- package/dist/features/deployments/hooks/useDeployments.d.ts +85 -0
- package/dist/features/deployments/pages/DeploymentDomainsPage.d.ts +6 -0
- package/dist/features/deployments/pages/DeploymentEnvVarsPage.d.ts +1 -0
- package/dist/features/deployments/pages/DeploymentLogsPage.d.ts +1 -0
- package/dist/features/deployments/pages/DeploymentOverviewPage.d.ts +1 -0
- package/dist/features/deployments/services/deployments.service.d.ts +36 -0
- package/dist/features/functions/components/FunctionEmptyState.d.ts +1 -0
- package/dist/features/functions/components/FunctionRow.d.ts +9 -0
- package/dist/features/functions/components/FunctionsLayout.d.ts +1 -0
- package/dist/features/functions/components/FunctionsSidebar.d.ts +1 -0
- package/dist/features/functions/components/ScheduleEmptyState.d.ts +1 -0
- package/dist/features/functions/components/ScheduleFormDialog.d.ts +11 -0
- package/dist/features/functions/components/ScheduleLogs.d.ts +5 -0
- package/dist/features/functions/components/ScheduleRow.d.ts +12 -0
- package/dist/features/functions/components/SecretEmptyState.d.ts +5 -0
- package/dist/features/functions/components/SecretRow.d.ts +8 -0
- package/dist/features/functions/helpers.d.ts +5 -0
- package/dist/features/functions/hooks/useFunctions.d.ts +75 -0
- package/dist/features/functions/hooks/useSchedules.d.ts +90 -0
- package/dist/features/functions/hooks/useSecrets.d.ts +62 -0
- package/dist/features/functions/pages/FunctionsPage.d.ts +1 -0
- package/dist/features/functions/pages/SchedulesPage.d.ts +1 -0
- package/dist/features/functions/pages/SecretsPage.d.ts +1 -0
- package/dist/features/functions/services/function.service.d.ts +8 -0
- package/dist/features/functions/services/schedule.service.d.ts +10 -0
- package/dist/features/functions/services/secret.service.d.ts +8 -0
- package/dist/features/functions/types.d.ts +2 -0
- package/dist/features/login/pages/CloudLoginPage.d.ts +1 -0
- package/dist/features/login/pages/LoginPage.d.ts +1 -0
- package/dist/features/login/services/login.service.d.ts +16 -0
- package/dist/features/login/services/partnership.service.d.ts +18 -0
- package/dist/features/logs/components/BuildLogsView.d.ts +5 -0
- package/dist/features/logs/components/FunctionLogsTabs.d.ts +12 -0
- package/dist/features/logs/components/LogDetailPanel.d.ts +7 -0
- package/dist/features/logs/components/LogsDataGrid.d.ts +21 -0
- package/dist/features/logs/components/LogsLayout.d.ts +1 -0
- package/dist/features/logs/components/LogsSidebar.d.ts +1 -0
- package/dist/features/logs/components/SeverityBadge.d.ts +6 -0
- package/dist/features/logs/components/SeverityFilterDropdown.d.ts +6 -0
- package/dist/features/logs/components/index.d.ts +7 -0
- package/dist/features/logs/helpers.d.ts +38 -0
- package/dist/features/logs/hooks/useAuditLogs.d.ts +38 -0
- package/dist/features/logs/hooks/useLogSources.d.ts +41 -0
- package/dist/features/logs/hooks/useLogs.d.ts +51 -0
- package/dist/features/logs/hooks/useMcpUsage.d.ts +35 -0
- package/dist/features/logs/pages/AuditsPage.d.ts +1 -0
- package/dist/features/logs/pages/FunctionLogsPage.d.ts +1 -0
- package/dist/features/logs/pages/LogsPage.d.ts +1 -0
- package/dist/features/logs/pages/MCPLogsPage.d.ts +1 -0
- package/dist/features/logs/services/audit.service.d.ts +7 -0
- package/dist/features/logs/services/log.service.d.ts +22 -0
- package/dist/features/logs/services/usage.service.d.ts +16 -0
- package/dist/features/realtime/components/ChannelFormDialog.d.ts +13 -0
- package/dist/features/realtime/components/ChannelRow.d.ts +12 -0
- package/dist/features/realtime/components/MessageRow.d.ts +7 -0
- package/dist/features/realtime/components/RealtimeEmptyState.d.ts +6 -0
- package/dist/features/realtime/components/RealtimeLayout.d.ts +1 -0
- package/dist/features/realtime/components/RealtimeSettingsMenuDialog.d.ts +6 -0
- package/dist/features/realtime/components/RealtimeSidebar.d.ts +1 -0
- package/dist/features/realtime/hooks/useRealtimeChannels.d.ts +66 -0
- package/dist/features/realtime/hooks/useRealtimeConfig.d.ts +14 -0
- package/dist/features/realtime/hooks/useRealtimeMessages.d.ts +64 -0
- package/dist/features/realtime/hooks/useRealtimePermissions.d.ts +48 -0
- package/dist/features/realtime/pages/RealtimeChannelsPage.d.ts +1 -0
- package/dist/features/realtime/pages/RealtimeMessagesPage.d.ts +1 -0
- package/dist/features/realtime/pages/RealtimePermissionsPage.d.ts +1 -0
- package/dist/features/realtime/services/realtime.service.d.ts +15 -0
- package/dist/features/storage/components/BucketFormDialog.d.ts +10 -0
- package/dist/features/storage/components/FilePreviewDialog.d.ts +9 -0
- package/dist/features/storage/components/StorageDataGrid.d.ts +14 -0
- package/dist/features/storage/components/StorageLayout.d.ts +1 -0
- package/dist/features/storage/components/StorageSettingsMenuDialog.d.ts +8 -0
- package/dist/features/storage/components/StorageSidebar.d.ts +13 -0
- package/dist/features/storage/components/UploadToast.d.ts +9 -0
- package/dist/features/storage/hooks/useStorage.d.ts +77 -0
- package/dist/features/storage/hooks/useStorageConfig.d.ts +29 -0
- package/dist/features/storage/pages/BucketsPage.d.ts +1 -0
- package/dist/features/storage/services/storage-config.service.d.ts +9 -0
- package/dist/features/storage/services/storage.service.d.ts +26 -0
- package/dist/features/visualizer/components/AuthNode.d.ts +11 -0
- package/dist/features/visualizer/components/BucketNode.d.ts +8 -0
- package/dist/features/visualizer/components/SchemaVisualizer.d.ts +18 -0
- package/dist/features/visualizer/components/TableNode.d.ts +10 -0
- package/dist/features/visualizer/components/VisualizerLayout.d.ts +1 -0
- package/dist/features/visualizer/components/VisualizerSkeleton.d.ts +1 -0
- package/dist/features/visualizer/components/index.d.ts +5 -0
- package/dist/features/visualizer/pages/VisualizerPage.d.ts +2 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +83413 -0
- package/dist/layout/DashboardFrame.d.ts +15 -0
- package/dist/layout/DashboardOutletLayout.d.ts +1 -0
- package/dist/layout/DashboardSectionLayout.d.ts +7 -0
- package/dist/lib/analytics/posthog.d.ts +5 -0
- package/dist/lib/api/client.d.ts +20 -0
- package/dist/lib/config/DashboardHostContext.d.ts +3 -0
- package/dist/lib/config/runtime.d.ts +3 -0
- package/dist/lib/contexts/AuthContext.d.ts +18 -0
- package/dist/lib/contexts/ModalContext.d.ts +2 -0
- package/dist/lib/contexts/SocketContext.d.ts +42 -0
- package/dist/lib/contexts/ThemeContext.d.ts +17 -0
- package/dist/lib/hooks/useCloudProjectInfo.d.ts +19 -0
- package/dist/lib/hooks/useConfirm.d.ts +21 -0
- package/dist/lib/hooks/useHealth.d.ts +13 -0
- package/dist/lib/hooks/useInterval.d.ts +1 -0
- package/dist/lib/hooks/useMediaQuery.d.ts +6 -0
- package/dist/lib/hooks/useMetadata.d.ts +239 -0
- package/dist/lib/hooks/useModal.d.ts +1 -0
- package/dist/lib/hooks/usePageSize.d.ts +5 -0
- package/dist/lib/hooks/useTimeout.d.ts +1 -0
- package/dist/lib/hooks/useToast.d.ts +20 -0
- package/dist/lib/routing/AppRoutes.d.ts +1 -0
- package/dist/lib/routing/RequireAuth.d.ts +6 -0
- package/dist/lib/services/health.service.d.ts +8 -0
- package/dist/lib/services/metadata.service.d.ts +16 -0
- package/dist/lib/utils/__tests__/utils.test.d.ts +1 -0
- package/dist/lib/utils/cloudMessaging.d.ts +13 -0
- package/dist/lib/utils/constants.d.ts +17 -0
- package/dist/lib/utils/local-storage.d.ts +5 -0
- package/dist/lib/utils/menuItems.d.ts +22 -0
- package/dist/lib/utils/schemaValidations.d.ts +21 -0
- package/dist/lib/utils/utils.d.ts +46 -0
- package/dist/modals/DashboardModalContext.d.ts +16 -0
- package/dist/navigation/menuItems.d.ts +13 -0
- package/dist/router/DashboardHostRoutes.d.ts +7 -0
- package/dist/router/DashboardProtectedBoundary.d.ts +9 -0
- package/dist/router/DashboardRouter.d.ts +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/paths.d.ts +5 -0
- package/dist/styles.css +1 -0
- package/dist/types/index.d.ts +80 -0
- package/package.json +78 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ColumnType } from '@insforge/shared-schemas';
|
|
2
|
+
import { type ClassValue } from 'clsx';
|
|
3
|
+
import type { ConvertedValue, DisplayValue, ValueConversionResult } from '../../components/datagrid';
|
|
4
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
5
|
+
/**
|
|
6
|
+
* Convert and validate a string value based on the specified ColumnType
|
|
7
|
+
*/
|
|
8
|
+
export declare function convertValueForColumn(type: ColumnType | string, value: string | null | undefined): ValueConversionResult;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a UUID v4 using the uuid library
|
|
11
|
+
* Works in all browsers and contexts (secure and non-secure)
|
|
12
|
+
* Uses crypto.getRandomValues when available, falls back to Math.random
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateUUID(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Centralized value formatter that handles all data types consistently
|
|
17
|
+
* Converts database values to formatted display strings for UI components
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatValueForDisplay(value: ConvertedValue, type?: ColumnType): DisplayValue;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a value is considered empty for database purposes
|
|
22
|
+
*/
|
|
23
|
+
export declare function isEmptyValue(value: unknown): boolean;
|
|
24
|
+
export declare const isInsForgeCloudProject: () => boolean;
|
|
25
|
+
export declare const getBackendUrl: () => string;
|
|
26
|
+
export declare const isIframe: () => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Formats a timestamp string to a human-readable format with time
|
|
29
|
+
* Used consistently across the application for displaying timestamps
|
|
30
|
+
* @param timestamp - ISO timestamp string
|
|
31
|
+
* @returns Formatted date string (e.g., "Jan 15, 2025, 03:30 PM")
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatTime(timestamp: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Formats a timestamp string to a date-only format
|
|
36
|
+
* @param timestamp - ISO timestamp string
|
|
37
|
+
* @returns Formatted date string (e.g., "Jan 15, 2025")
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatDate(timestamp: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Compare two semantic version strings
|
|
42
|
+
* @param v1 - First version string
|
|
43
|
+
* @param v2 - Second version string
|
|
44
|
+
* @returns -1 if v1 < v2, 0 if equal, 1 if v1 > v2
|
|
45
|
+
*/
|
|
46
|
+
export declare function compareVersions(v1: string, v2: string): number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export type DashboardSettingsTab = 'info' | 'compute' | 'connect';
|
|
3
|
+
interface DashboardModalContextValue {
|
|
4
|
+
isConnectDialogOpen: boolean;
|
|
5
|
+
setConnectDialogOpen: (open: boolean) => void;
|
|
6
|
+
isSettingsDialogOpen: boolean;
|
|
7
|
+
settingsDefaultTab: DashboardSettingsTab;
|
|
8
|
+
openSettingsDialog: (tab?: DashboardSettingsTab) => void;
|
|
9
|
+
closeSettingsDialog: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useDashboardModal(): DashboardModalContextValue;
|
|
12
|
+
interface DashboardModalProviderProps {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare function DashboardModalProvider({ children }: DashboardModalProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type LucideIcon } from 'lucide-react';
|
|
2
|
+
export interface DashboardPrimaryMenuItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
href: string;
|
|
6
|
+
icon: LucideIcon;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
external?: boolean;
|
|
9
|
+
sectionEnd?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const dashboardStaticMenuItems: DashboardPrimaryMenuItem[];
|
|
12
|
+
export declare const dashboardSettingsMenuItem: DashboardPrimaryMenuItem;
|
|
13
|
+
export declare const dashboardDeploymentsMenuItem: DashboardPrimaryMenuItem;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface DashboardHostRoutesProps {
|
|
3
|
+
loginPage: ReactNode;
|
|
4
|
+
cloudLoginPage?: ReactNode;
|
|
5
|
+
protectedApp: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function DashboardHostRoutes({ loginPage, cloudLoginPage, protectedApp, }: DashboardHostRoutesProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface DashboardProtectedBoundaryProps {
|
|
3
|
+
isAuthenticated: boolean;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
loadingFallback?: ReactNode;
|
|
6
|
+
unauthenticatedRedirectPath: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function DashboardProtectedBoundary({ isAuthenticated, isLoading, loadingFallback, unauthenticatedRedirectPath, children, }: DashboardProtectedBoundaryProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DashboardRouter(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { DashboardHostRoutes } from './DashboardHostRoutes';
|
|
2
|
+
export { DashboardProtectedBoundary } from './DashboardProtectedBoundary';
|
|
3
|
+
export { CLOUD_LOGIN_PATH, DASHBOARD_AUTH_USERS_PATH, DASHBOARD_DATABASE_TABLES_PATH, DASHBOARD_HOME_PATH, DASHBOARD_LOGIN_PATH, } from './paths';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const DASHBOARD_LOGIN_PATH = "/dashboard/login";
|
|
2
|
+
export declare const CLOUD_LOGIN_PATH = "/cloud/login";
|
|
3
|
+
export declare const DASHBOARD_HOME_PATH = "/dashboard";
|
|
4
|
+
export declare const DASHBOARD_AUTH_USERS_PATH = "/dashboard/authentication/users";
|
|
5
|
+
export declare const DASHBOARD_DATABASE_TABLES_PATH = "/dashboard/database/tables";
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.mlln6zg7-0-0-beta-47{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.cj343x07-0-0-beta-47{position:relative;padding-block:0;padding-inline:8px;border-inline-end:1px solid var(--rdg-border-color);border-block-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.cj343x07-0-0-beta-47[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.Cell{.csofj7r7-0-0-beta-47{position:sticky;z-index:1}.csofj7r7-0-0-beta-47:nth-last-child(1 of.csofj7r7-0-0-beta-47){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.CheckboxInput{.c1bn88vv7-0-0-beta-47{display:block;margin:auto;inline-size:20px;block-size:20px}.c1bn88vv7-0-0-beta-47:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.c1bn88vv7-0-0-beta-47:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.g1s9ylgp7-0-0-beta-47{outline:none}}@layer rdg.GroupCellCaret{.cz54e4y7-0-0-beta-47{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cz54e4y7-0-0-beta-47>path{transition:d .1s}}@layer rdg.DragHandle{.c1w9bbhr7-0-0-beta-47{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.c1w9bbhr7-0-0-beta-47:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.c1creorc7-0-0-beta-47{z-index:1;position:sticky}}@layer rdg.EditCell{.cis5rrm7-0-0-beta-47{padding:0}}@layer rdg.SortableHeaderCell{.h44jtk67-0-0-beta-47{display:flex}}@layer rdg.SortableHeaderCellName{.hcgkhxz7-0-0-beta-47{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.HeaderCell{.c6l2wv17-0-0-beta-47{cursor:pointer}}@layer rdg.HeaderCell{.c1kqdw7y7-0-0-beta-47{touch-action:none}}@layer rdg.HeaderCell{.r1y6ywlx7-0-0-beta-47{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}.c1bezg5o7-0-0-beta-47{opacity:.5}.c1vc96037-0-0-beta-47{background-color:var(--rdg-header-draggable-background-color)}@layer rdg.Row{.r1upfr807-0-0-beta-47{display:contents;background-color:var(--rdg-background-color)}.r1upfr807-0-0-beta-47:hover{background-color:var(--rdg-row-hover-background-color)}.r1upfr807-0-0-beta-47[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1upfr807-0-0-beta-47[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.r190mhd37-0-0-beta-47{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r139qu9m7-0-0-beta-47:before{content:"";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h10tskcx7-0-0-beta-47{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.h10tskcx7-0-0-beta-47>.cj343x07-0-0-beta-47{z-index:2;position:sticky}.h10tskcx7-0-0-beta-47>.csofj7r7-0-0-beta-47{z-index:3}}@layer rdg.Cell{.c6ra8a37-0-0-beta-47{background-color:#ccf}}@layer rdg.Cell{.cq910m07-0-0-beta-47{background-color:#ccf}.cq910m07-0-0-beta-47.c6ra8a37-0-0-beta-47{background-color:#99f}}@layer rdg.SortIcon{.a3ejtar7-0-0-beta-47{fill:currentColor}.a3ejtar7-0-0-beta-47>path{transition:d .1s}}@layer rdg.Defaults{.rnvodz57-0-0-beta-47 *,.rnvodz57-0-0-beta-47 *:before,.rnvodz57-0-0-beta-47 *:after{box-sizing:inherit}}@layer rdg.Root{.rnvodz57-0-0-beta-47{--rdg-color: #000;--rdg-border-color: #ddd;--rdg-summary-border-color: #aaa;--rdg-background-color: hsl(0deg 0% 100%);--rdg-header-background-color: hsl(0deg 0% 97.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);--rdg-row-hover-background-color: hsl(0deg 0% 96%);--rdg-row-selected-background-color: hsl(207deg 76% 92%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);--rdg-checkbox-focus-color: hsl(207deg 100% 69%);--rdg-selection-color: #66afe9;--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);display:grid;color-scheme:var(--rdg-color-scheme, light dark);accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rnvodz57-0-0-beta-47:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rnvodz57-0-0-beta-47:before{content:"";grid-column:1/-1;grid-row:1/-1}.rnvodz57-0-0-beta-47.rdg-dark{--rdg-color-scheme: dark;--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%)}.rnvodz57-0-0-beta-47.rdg-light{--rdg-color-scheme: light}@media(prefers-color-scheme:dark){.rnvodz57-0-0-beta-47:not(.rdg-light){--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%)}}.rnvodz57-0-0-beta-47>:nth-last-child(1 of.rdg-top-summary-row)>.cj343x07-0-0-beta-47{border-block-end:2px solid var(--rdg-summary-border-color)}.rnvodz57-0-0-beta-47>:nth-child(1 of.rdg-bottom-summary-row)>.cj343x07-0-0-beta-47{border-block-start:2px solid var(--rdg-summary-border-color)}}@layer rdg.Root{.vlqv91k7-0-0-beta-47{-webkit-user-select:none;user-select:none}.vlqv91k7-0-0-beta-47 .r1upfr807-0-0-beta-47{cursor:move}}@layer rdg.FocusSink{.f1lsfrzw7-0-0-beta-47{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.f1cte0lg7-0-0-beta-47{z-index:3}}@layer rdg.SummaryCell{.s8wc6fl7-0-0-beta-47{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.skuhp557-0-0-beta-47>.cj343x07-0-0-beta-47{position:sticky}}@layer rdg.SummaryRow{.tf8l5ub7-0-0-beta-47>.cj343x07-0-0-beta-47{z-index:2}.tf8l5ub7-0-0-beta-47>.csofj7r7-0-0-beta-47{z-index:3}}@layer rdg.GroupedRow{.g1yxluv37-0-0-beta-47:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.g1yxluv37-0-0-beta-47>.cj343x07-0-0-beta-47:not(:last-child,.csofj7r7-0-0-beta-47),.g1yxluv37-0-0-beta-47>:nth-last-child(n+2 of.csofj7r7-0-0-beta-47){border-inline-end:none}}@layer rdg.TextEditor{.t7vyx3i7-0-0-beta-47{appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.t7vyx3i7-0-0-beta-47:focus{border-color:var(--rdg-selection-color);outline:none}.t7vyx3i7-0-0-beta-47::placeholder{color:#999;opacity:1}}@layer base{:root{--rdg-border-color: var(--alpha-8);--rdg-background-color: rgb(var(--semantic-1));--rdg-row-hover-color: var(--alpha-4);--rdg-background-color-edit: rgb(var(--semantic-1));--rdg-header-row-background-color: rgb(var(--semantic-1));--rdg-outline-color: rgb(var(--foreground));--rdg-cell-frozen-box-shadow: none}.rdg-dark{--rdg-border-color: var(--alpha-8);--rdg-background-color: rgb(var(--semantic-1));--rdg-row-hover-color: var(--alpha-4);--rdg-background-color-edit: rgb(var(--semantic-1));--rdg-header-row-background-color: rgb(var(--semantic-1));--rdg-outline-color: rgb(var(--foreground));--rdg-cell-frozen-box-shadow: none}}.rdg-cell{display:flex;align-items:center;min-width:0;border-right:1px solid var(--rdg-border-color);border-bottom:1px solid var(--rdg-border-color);padding-inline:6px}.rdg-header-row .rdg-cell{border-bottom:1px solid var(--rdg-border-color);background-color:var(--rdg-header-row-background-color)!important;font-weight:400;color:rgb(var(--muted-foreground))}.rdg-row .rdg-cell:first-child,.rdg-header-row .rdg-cell:first-child{padding-left:12px}.rdg-row{background-color:rgb(var(--semantic-0))}.rdg-row:hover,.rdg-row[aria-selected=true],.rdg-row[aria-selected=true]:hover{background-color:var(--rdg-row-hover-color)}.rdg-cell[aria-selected=true]{outline:1px solid rgb(var(--foreground));outline-offset:-1px;box-shadow:none}.rdg-cell.link-record-dialog-disabled-cell[aria-selected=true]{outline:none!important;box-shadow:none!important}.rdg-cell.rdg-cell-editing{background-color:var(--rdg-background-color-edit)}.rdg-sort-arrow,.rdg-header-row .rdg-cell .rdg-sort-arrow,.rdg-header-row .rdg-cell[aria-sort=ascending]:after,.rdg-header-row .rdg-cell[aria-sort=descending]:after,.rdg-header-row .rdg-cell:after{display:none!important}.rdg-cell[data-column-key=rdg-select-column],.rdg-header-row .rdg-cell[data-column-key=rdg-select-column],.rdg .rdg-cell[data-column-key=select-row]{justify-content:flex-start;padding-left:10px;padding-right:10px}.rdg-header-row .rdg-cell[aria-sort]{cursor:pointer}.rdg .rdg-viewport-dragging .rdg-row{pointer-events:none}[data-radix-popper-content-wrapper]{position:fixed!important}.if-dashboard{min-height:100%;color:#111827;background:radial-gradient(circle at top,rgba(16,185,129,.08),transparent 28%),linear-gradient(180deg,#f7faf9,#eef4f1)}.if-dashboard__placeholder{display:flex;min-height:100%;flex-direction:column;justify-content:center;gap:.75rem;padding:3rem}.if-dashboard__eyebrow{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#047857}.if-dashboard__title{margin:0;font-size:2rem;line-height:1.1}.if-dashboard__description{margin:0;max-width:42rem;font-size:1rem;line-height:1.6;color:#4b5563}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export type DashboardMode = 'self-hosting' | 'cloud-hosting';
|
|
2
|
+
export interface DashboardRoute {
|
|
3
|
+
path: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DashboardProjectInfo {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
region: string;
|
|
9
|
+
instanceType: string;
|
|
10
|
+
latestVersion?: string | null;
|
|
11
|
+
currentVersion?: string | null;
|
|
12
|
+
status?: 'active' | 'paused' | 'restoring' | string;
|
|
13
|
+
}
|
|
14
|
+
export interface DashboardCapabilities {
|
|
15
|
+
canManageProjectSettings?: boolean;
|
|
16
|
+
canDeleteProject?: boolean;
|
|
17
|
+
canRenameProject?: boolean;
|
|
18
|
+
canManageInstance?: boolean;
|
|
19
|
+
canManageVersion?: boolean;
|
|
20
|
+
canOpenUsagePage?: boolean;
|
|
21
|
+
canOpenSubscriptionPage?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export type DashboardAuthConfig = {
|
|
24
|
+
strategy: 'session';
|
|
25
|
+
} | {
|
|
26
|
+
strategy: 'authorization-code';
|
|
27
|
+
getAuthorizationCode: () => Promise<string>;
|
|
28
|
+
};
|
|
29
|
+
export interface DashboardInstanceInfo {
|
|
30
|
+
currentInstanceType: string;
|
|
31
|
+
planName: string;
|
|
32
|
+
computeCredits: number;
|
|
33
|
+
currentOrgComputeCost: number;
|
|
34
|
+
instanceTypes: Array<{
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
cpu: string;
|
|
38
|
+
ram: string;
|
|
39
|
+
pricePerHour: number;
|
|
40
|
+
pricePerMonth: number;
|
|
41
|
+
}>;
|
|
42
|
+
projects: Array<{
|
|
43
|
+
name: string;
|
|
44
|
+
instanceType: string;
|
|
45
|
+
monthlyCost: number;
|
|
46
|
+
isCurrent: boolean;
|
|
47
|
+
status: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export interface DashboardSharedProps {
|
|
51
|
+
backendUrl: string;
|
|
52
|
+
initialPath?: string;
|
|
53
|
+
project?: DashboardProjectInfo;
|
|
54
|
+
capabilities?: DashboardCapabilities;
|
|
55
|
+
onRouteChange?: (route: DashboardRoute) => void;
|
|
56
|
+
onOpenSettings?: () => void;
|
|
57
|
+
onNavigateToUsage?: () => void;
|
|
58
|
+
onNavigateToSubscription?: () => void;
|
|
59
|
+
onRenameProject?: (name: string) => Promise<void>;
|
|
60
|
+
onDeleteProject?: () => Promise<void>;
|
|
61
|
+
onRequestInstanceInfo?: () => Promise<DashboardInstanceInfo>;
|
|
62
|
+
onRequestInstanceTypeChange?: (instanceType: string) => Promise<{
|
|
63
|
+
success: boolean;
|
|
64
|
+
instanceType?: string;
|
|
65
|
+
error?: string;
|
|
66
|
+
}>;
|
|
67
|
+
onUpdateVersion?: () => Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
export interface SelfHostingDashboardProps extends DashboardSharedProps {
|
|
70
|
+
mode: 'self-hosting';
|
|
71
|
+
auth?: Extract<DashboardAuthConfig, {
|
|
72
|
+
strategy: 'session';
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
export interface CloudHostingDashboardProps extends DashboardSharedProps {
|
|
76
|
+
mode: 'cloud-hosting';
|
|
77
|
+
auth: DashboardAuthConfig;
|
|
78
|
+
}
|
|
79
|
+
export type DashboardProps = SelfHostingDashboardProps | CloudHostingDashboardProps;
|
|
80
|
+
export type InsForgeDashboardProps = DashboardProps;
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@insforge/dashboard",
|
|
3
|
+
"version": "0.0.0-dev.1",
|
|
4
|
+
"description": "Shared InsForge dashboard package for self-hosting and cloud-hosting hosts",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"main": "./dist/index.js",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"sideEffects": [
|
|
18
|
+
"./dist/styles.css"
|
|
19
|
+
],
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"import": "./dist/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./styles.css": "./dist/styles.css",
|
|
26
|
+
"./self-hosting.css": "./dist/styles.css"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "vite build && tsc -p tsconfig.build.json",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@codemirror/lang-javascript": "^6.2.4",
|
|
35
|
+
"@codemirror/lang-sql": "^6.10.0",
|
|
36
|
+
"@hookform/resolvers": "^5.1.1",
|
|
37
|
+
"@insforge/shared-schemas": "file:../shared-schemas",
|
|
38
|
+
"@insforge/ui": "file:../ui",
|
|
39
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
40
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
41
|
+
"@radix-ui/react-popover": "^1.1.14",
|
|
42
|
+
"@radix-ui/react-scroll-area": "^1.2.9",
|
|
43
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
44
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
45
|
+
"@tanstack/react-query": "^5.83.0",
|
|
46
|
+
"@types/uuid": "^10.0.0",
|
|
47
|
+
"@uiw/codemirror-theme-vscode": "^4.25.2",
|
|
48
|
+
"@uiw/react-codemirror": "^4.25.2",
|
|
49
|
+
"@xyflow/react": "^12.8.4",
|
|
50
|
+
"class-variance-authority": "^0.7.1",
|
|
51
|
+
"clsx": "^2.1.1",
|
|
52
|
+
"date-fns": "^4.1.0",
|
|
53
|
+
"lucide-react": "^0.536.0",
|
|
54
|
+
"posthog-js": "^1.302.2",
|
|
55
|
+
"react-data-grid": "7.0.0-beta.47",
|
|
56
|
+
"react-hook-form": "^7.61.1",
|
|
57
|
+
"react-router-dom": "^7.7.0",
|
|
58
|
+
"socket.io-client": "^4.8.1",
|
|
59
|
+
"tailwind-merge": "^3.3.1",
|
|
60
|
+
"uuid": "^11.1.0",
|
|
61
|
+
"zod": "^3.23.8"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@tailwindcss/vite": "^4.1.11",
|
|
65
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
66
|
+
"@types/react": "^19.2.2",
|
|
67
|
+
"@types/react-dom": "^19.2.2",
|
|
68
|
+
"tailwindcss": "^4.1.11",
|
|
69
|
+
"tailwindcss-animate": "^1.0.7",
|
|
70
|
+
"typescript": "^5.8.3",
|
|
71
|
+
"vite": "^7.0.5",
|
|
72
|
+
"vite-plugin-svgr": "^4.3.0"
|
|
73
|
+
},
|
|
74
|
+
"peerDependencies": {
|
|
75
|
+
"react": "^19.0.0",
|
|
76
|
+
"react-dom": "^19.0.0"
|
|
77
|
+
}
|
|
78
|
+
}
|