@mdxui/cockpit 0.2.0 → 6.0.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 +207 -8
- package/dist/auth/auth-layout.js +13 -53
- package/dist/auth/auth-layout.js.map +1 -1
- package/dist/auth/index.js +13 -54
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/login-page.js +13 -53
- package/dist/auth/login-page.js.map +1 -1
- package/dist/auth/otp-page.js +13 -53
- package/dist/auth/otp-page.js.map +1 -1
- package/dist/auth/password-reset-page.js +13 -53
- package/dist/auth/password-reset-page.js.map +1 -1
- package/dist/auth/signup-page.js +13 -53
- package/dist/auth/signup-page.js.map +1 -1
- package/dist/developer/index.d.ts +525 -11
- package/dist/developer/index.js +1053 -767
- package/dist/developer/index.js.map +1 -1
- package/dist/developer/themes/index.d.ts +1 -1
- package/dist/developer/themes/index.js +38 -1
- package/dist/developer/themes/index.js.map +1 -1
- package/dist/index.d.ts +35 -2
- package/dist/index.js +1111 -831
- package/dist/index.js.map +1 -1
- package/package.json +28 -17
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { useAuth } from '@
|
|
1
|
+
export { useAuth } from '@mdxui/auth';
|
|
2
2
|
import { Theme } from '@mdxui/themes';
|
|
3
3
|
export { Theme, ThemeMode, ThemePreset, ThemeScript, ThemeState, ThemeStore, applyThemeToElement, getResolvedMode, getThemeCSS, getThemeScriptContent, isThemePreset, themeCSS, themeNames, themePresets, useThemeStore } from '@mdxui/themes';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -7,7 +7,7 @@ import { ChartConfig } from '@mdxui/primitives/chart';
|
|
|
7
7
|
import * as React$1 from 'react';
|
|
8
8
|
import { ReactNode } from 'react';
|
|
9
9
|
import { ColumnDef } from '@tanstack/react-table';
|
|
10
|
-
import { SettingsProps, APIKeysProps, TeamProps, BillingProps } from 'mdxui';
|
|
10
|
+
import { SettingsProps, APIKeysProps, TeamProps, BillingProps, DeveloperDashboardProps as DeveloperDashboardProps$1 } from 'mdxui';
|
|
11
11
|
import * as platform_do from 'platform.do';
|
|
12
12
|
import { $Context } from 'platform.do';
|
|
13
13
|
|
|
@@ -480,7 +480,7 @@ interface UserProfileProps {
|
|
|
480
480
|
* @example
|
|
481
481
|
* ```tsx
|
|
482
482
|
* <UserProfile
|
|
483
|
-
* user={{ name: 'John Doe', email: 'john@example.com' }}
|
|
483
|
+
* user={{ name: 'John Doe', email: 'john@example.com.ai' }}
|
|
484
484
|
* onUpdate={(data) => console.log(data)}
|
|
485
485
|
* />
|
|
486
486
|
* ```
|
|
@@ -541,6 +541,31 @@ declare function TeamManager({ workspace, allowInvite, allowRoleChange, allowRem
|
|
|
541
541
|
*/
|
|
542
542
|
declare function Billing({ customer, showInvoices, showPaymentMethods, showUsage, subscription: initialSubscription, }: BillingProps): react_jsx_runtime.JSX.Element;
|
|
543
543
|
|
|
544
|
+
/**
|
|
545
|
+
* Custom route definition for extending the dashboard with additional pages.
|
|
546
|
+
* Allows consumers to add their own pages without modifying the cockpit package.
|
|
547
|
+
*/
|
|
548
|
+
interface CustomRoute {
|
|
549
|
+
/** URL path (e.g., '/pipeline', '/analytics') */
|
|
550
|
+
path: string;
|
|
551
|
+
/** Display label in sidebar navigation */
|
|
552
|
+
label: string;
|
|
553
|
+
/** Lucide icon component for sidebar */
|
|
554
|
+
icon?: LucideIcon;
|
|
555
|
+
/** React element to render for this route */
|
|
556
|
+
element: ReactNode;
|
|
557
|
+
/**
|
|
558
|
+
* Navigation group placement:
|
|
559
|
+
* - 'main' (default): Primary navigation section
|
|
560
|
+
* - 'secondary': Below main nav, before settings
|
|
561
|
+
* - 'admin': Admin/settings section at bottom
|
|
562
|
+
*/
|
|
563
|
+
group?: 'main' | 'secondary' | 'admin';
|
|
564
|
+
/** Sort order within group (lower = higher in list) */
|
|
565
|
+
order?: number;
|
|
566
|
+
/** Make this route the index/home page */
|
|
567
|
+
index?: boolean;
|
|
568
|
+
}
|
|
544
569
|
interface DashboardRoutes {
|
|
545
570
|
overview?: boolean;
|
|
546
571
|
requests?: boolean;
|
|
@@ -600,6 +625,11 @@ interface DashboardConfig {
|
|
|
600
625
|
basePath?: string;
|
|
601
626
|
branding?: DashboardBranding;
|
|
602
627
|
routes?: DashboardRoutes;
|
|
628
|
+
/**
|
|
629
|
+
* Custom routes to add to the dashboard.
|
|
630
|
+
* These will be rendered alongside built-in routes and appear in sidebar navigation.
|
|
631
|
+
*/
|
|
632
|
+
customRoutes?: CustomRoute[];
|
|
603
633
|
theme?: DashboardTheme;
|
|
604
634
|
/** Identity provider configuration for authentication and user management */
|
|
605
635
|
identity: DashboardIdentity;
|
|
@@ -620,14 +650,33 @@ interface DashboardContextValue {
|
|
|
620
650
|
debug?: boolean;
|
|
621
651
|
};
|
|
622
652
|
routes: Required<DashboardRoutes>;
|
|
653
|
+
customRoutes: CustomRoute[];
|
|
623
654
|
basePath: string;
|
|
624
655
|
}
|
|
625
656
|
declare function useDashboard(): DashboardContextValue;
|
|
626
657
|
declare function useRoutes(): Required<DashboardRoutes>;
|
|
658
|
+
declare function useCustomRoutes(): CustomRoute[];
|
|
627
659
|
|
|
628
|
-
|
|
660
|
+
/**
|
|
661
|
+
* Props for DeveloperDashboard - supports both mdxui interface and legacy config.
|
|
662
|
+
*
|
|
663
|
+
* Option 1: mdxui interface (recommended for new code)
|
|
664
|
+
* ```tsx
|
|
665
|
+
* <DeveloperDashboard
|
|
666
|
+
* identity={{ clientId: 'xxx' }}
|
|
667
|
+
* routes={{ webhooks: true, billing: false }}
|
|
668
|
+
* customRoutes={[{ path: '/analytics', label: 'Analytics', element: <Analytics /> }]}
|
|
669
|
+
* />
|
|
670
|
+
* ```
|
|
671
|
+
*
|
|
672
|
+
* Option 2: Legacy config object
|
|
673
|
+
* ```tsx
|
|
674
|
+
* <DeveloperDashboard config={{ identity: { clientId: 'xxx' }, routes: {...} }} />
|
|
675
|
+
* ```
|
|
676
|
+
*/
|
|
677
|
+
type DeveloperDashboardProps = DeveloperDashboardProps$1 | {
|
|
629
678
|
config: DashboardConfig;
|
|
630
|
-
}
|
|
679
|
+
};
|
|
631
680
|
/**
|
|
632
681
|
* Main dashboard component that wraps everything with necessary providers
|
|
633
682
|
* and renders the dashboard routes.
|
|
@@ -638,16 +687,129 @@ interface DeveloperDashboardProps {
|
|
|
638
687
|
* - SDKInitializer - Platform SDK setup
|
|
639
688
|
* - IdentityProvider - WorkOS AuthKit + Widgets
|
|
640
689
|
* - QueryProvider - TanStack Query + Auth sync
|
|
690
|
+
*
|
|
691
|
+
* @example Basic usage
|
|
692
|
+
* ```tsx
|
|
693
|
+
* <DeveloperDashboard
|
|
694
|
+
* identity={{ clientId: 'xxx' }}
|
|
695
|
+
* />
|
|
696
|
+
* ```
|
|
697
|
+
*
|
|
698
|
+
* @example With custom routes
|
|
699
|
+
* ```tsx
|
|
700
|
+
* <DeveloperDashboard
|
|
701
|
+
* identity={{ clientId: 'xxx' }}
|
|
702
|
+
* routes={{ webhooks: true, billing: false }}
|
|
703
|
+
* customRoutes={[
|
|
704
|
+
* { path: '/analytics', label: 'Analytics', icon: 'BarChart3', element: <AnalyticsPage /> },
|
|
705
|
+
* ]}
|
|
706
|
+
* />
|
|
707
|
+
* ```
|
|
708
|
+
*
|
|
709
|
+
* @example Hide built-in routes
|
|
710
|
+
* ```tsx
|
|
711
|
+
* <DeveloperDashboard
|
|
712
|
+
* identity={{ clientId: 'xxx' }}
|
|
713
|
+
* routes={{ billing: false, team: false }}
|
|
714
|
+
* />
|
|
715
|
+
* ```
|
|
641
716
|
*/
|
|
642
|
-
declare function DeveloperDashboard(
|
|
717
|
+
declare function DeveloperDashboard(props: DeveloperDashboardProps): react_jsx_runtime.JSX.Element;
|
|
643
718
|
|
|
644
|
-
declare
|
|
719
|
+
declare const mockBillingData: {
|
|
720
|
+
plan: string;
|
|
721
|
+
planPrice: number;
|
|
722
|
+
planFeatures: string[];
|
|
723
|
+
status: "active";
|
|
724
|
+
renewalDate: string;
|
|
725
|
+
totalSpend: number;
|
|
726
|
+
usageBreakdown: {
|
|
727
|
+
resource: string;
|
|
728
|
+
usage: number;
|
|
729
|
+
limit: number;
|
|
730
|
+
unit: string;
|
|
731
|
+
cost: number;
|
|
732
|
+
}[];
|
|
733
|
+
invoices: {
|
|
734
|
+
id: string;
|
|
735
|
+
invoiceNumber: string;
|
|
736
|
+
date: string;
|
|
737
|
+
amount: number;
|
|
738
|
+
status: "paid";
|
|
739
|
+
}[];
|
|
740
|
+
paymentMethod: {
|
|
741
|
+
type: "card";
|
|
742
|
+
brand: string;
|
|
743
|
+
last4: string;
|
|
744
|
+
expiryMonth: number;
|
|
745
|
+
expiryYear: number;
|
|
746
|
+
};
|
|
747
|
+
billingAlerts: {
|
|
748
|
+
enabled: boolean;
|
|
749
|
+
threshold: number;
|
|
750
|
+
};
|
|
751
|
+
};
|
|
752
|
+
interface WebhookEndpoint {
|
|
753
|
+
id: string;
|
|
754
|
+
url: string;
|
|
755
|
+
events: string[];
|
|
756
|
+
lastDelivery: string | null;
|
|
757
|
+
status: "active" | "disabled";
|
|
758
|
+
secret: string;
|
|
759
|
+
createdAt: string;
|
|
760
|
+
failureCount: number;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
type BillingData = typeof mockBillingData;
|
|
764
|
+
interface BillingPageProps {
|
|
765
|
+
/** Billing data - uses mock data if not provided */
|
|
766
|
+
billingData?: BillingData;
|
|
767
|
+
/** Callback when "Manage Plan" is clicked */
|
|
768
|
+
onManagePlan?: () => Promise<void>;
|
|
769
|
+
/** Callback when "Update" payment method is clicked */
|
|
770
|
+
onUpdatePaymentMethod?: () => Promise<void>;
|
|
771
|
+
/** Callback when an invoice is downloaded */
|
|
772
|
+
onDownloadInvoice?: (invoiceId: string) => Promise<void>;
|
|
773
|
+
/** Callback when billing alerts are toggled */
|
|
774
|
+
onToggleAlerts?: (enabled: boolean) => Promise<void>;
|
|
775
|
+
/** Hide the header with sidebar trigger and breadcrumb */
|
|
776
|
+
hideHeader?: boolean;
|
|
777
|
+
/** Additional CSS class for the container */
|
|
778
|
+
className?: string;
|
|
779
|
+
}
|
|
780
|
+
declare function BillingPage({ billingData: initialBillingData, onManagePlan, onUpdatePaymentMethod, onDownloadInvoice, onToggleAlerts, hideHeader, className, }?: BillingPageProps): react_jsx_runtime.JSX.Element;
|
|
645
781
|
|
|
646
782
|
declare function DatabasePage(): react_jsx_runtime.JSX.Element;
|
|
647
783
|
|
|
648
784
|
declare function IntegrationsPage(): react_jsx_runtime.JSX.Element;
|
|
649
785
|
|
|
650
|
-
|
|
786
|
+
type ApiKeyStatus = 'active' | 'expiring' | 'never_used';
|
|
787
|
+
type ApiKey = {
|
|
788
|
+
id: string;
|
|
789
|
+
name: string;
|
|
790
|
+
key: string;
|
|
791
|
+
created: string;
|
|
792
|
+
lastUsed: string | null;
|
|
793
|
+
status: ApiKeyStatus;
|
|
794
|
+
};
|
|
795
|
+
interface KeysPageProps {
|
|
796
|
+
/** Initial keys data - uses mock data if not provided */
|
|
797
|
+
keys?: ApiKey[];
|
|
798
|
+
/** Callback when a key is created - if not provided, uses internal mock */
|
|
799
|
+
onCreateKey?: (name: string) => Promise<{
|
|
800
|
+
id: string;
|
|
801
|
+
key: string;
|
|
802
|
+
}>;
|
|
803
|
+
/** Callback when a key is revoked - if not provided, uses internal mock */
|
|
804
|
+
onRevokeKey?: (keyId: string) => Promise<void>;
|
|
805
|
+
/** Callback when a key is renamed - if not provided, uses internal mock */
|
|
806
|
+
onRenameKey?: (keyId: string, newName: string) => Promise<void>;
|
|
807
|
+
/** Hide the header with sidebar trigger and breadcrumb */
|
|
808
|
+
hideHeader?: boolean;
|
|
809
|
+
/** Additional CSS class for the container */
|
|
810
|
+
className?: string;
|
|
811
|
+
}
|
|
812
|
+
declare function KeysPage({ keys: initialKeys, onCreateKey, onRevokeKey, onRenameKey, hideHeader, className, }?: KeysPageProps): react_jsx_runtime.JSX.Element;
|
|
651
813
|
|
|
652
814
|
declare function OverviewPage(): react_jsx_runtime.JSX.Element;
|
|
653
815
|
|
|
@@ -659,18 +821,370 @@ declare function SettingsSecurityPage(): react_jsx_runtime.JSX.Element;
|
|
|
659
821
|
|
|
660
822
|
declare function SettingsSessionsPage(): react_jsx_runtime.JSX.Element;
|
|
661
823
|
|
|
662
|
-
|
|
824
|
+
interface TeamPageProps {
|
|
825
|
+
/** Whether to use mock widgets instead of real WorkOS widgets */
|
|
826
|
+
useMockWidgets?: boolean;
|
|
827
|
+
/** Hide the header with sidebar trigger and breadcrumb */
|
|
828
|
+
hideHeader?: boolean;
|
|
829
|
+
/** Additional CSS class for the container */
|
|
830
|
+
className?: string;
|
|
831
|
+
}
|
|
832
|
+
declare function TeamPage({ useMockWidgets: useMockWidgetsProp, hideHeader, className, }?: TeamPageProps): react_jsx_runtime.JSX.Element;
|
|
663
833
|
|
|
664
834
|
declare function VaultPage(): react_jsx_runtime.JSX.Element;
|
|
665
835
|
|
|
666
836
|
declare function WebhooksActivityPage(): react_jsx_runtime.JSX.Element;
|
|
667
837
|
|
|
668
|
-
|
|
838
|
+
interface WebhooksEndpointsPageProps {
|
|
839
|
+
/** Initial endpoints data - uses mock data if not provided */
|
|
840
|
+
endpoints?: WebhookEndpoint[];
|
|
841
|
+
/** Callback when an endpoint is created */
|
|
842
|
+
onCreateEndpoint?: (data: {
|
|
843
|
+
url: string;
|
|
844
|
+
events: string[];
|
|
845
|
+
enabled: boolean;
|
|
846
|
+
}) => Promise<{
|
|
847
|
+
id: string;
|
|
848
|
+
secret: string;
|
|
849
|
+
}>;
|
|
850
|
+
/** Callback when an endpoint is updated */
|
|
851
|
+
onUpdateEndpoint?: (id: string, data: {
|
|
852
|
+
url: string;
|
|
853
|
+
events: string[];
|
|
854
|
+
enabled: boolean;
|
|
855
|
+
}) => Promise<void>;
|
|
856
|
+
/** Callback when an endpoint is deleted */
|
|
857
|
+
onDeleteEndpoint?: (id: string) => Promise<void>;
|
|
858
|
+
/** Hide the header with sidebar trigger and breadcrumb */
|
|
859
|
+
hideHeader?: boolean;
|
|
860
|
+
/** Additional CSS class for the container */
|
|
861
|
+
className?: string;
|
|
862
|
+
}
|
|
863
|
+
declare function WebhooksEndpointsPage({ endpoints: initialEndpoints, onCreateEndpoint, onUpdateEndpoint, onDeleteEndpoint, hideHeader, className, }?: WebhooksEndpointsPageProps): react_jsx_runtime.JSX.Element;
|
|
669
864
|
|
|
670
865
|
declare function WebhooksEventCatalogPage(): react_jsx_runtime.JSX.Element;
|
|
671
866
|
|
|
672
867
|
declare function WebhooksLogsPage(): react_jsx_runtime.JSX.Element;
|
|
673
868
|
|
|
869
|
+
/**
|
|
870
|
+
* Configuration for standalone components.
|
|
871
|
+
* Lighter weight than full DashboardConfig - no auth or routing required.
|
|
872
|
+
*/
|
|
873
|
+
interface StandaloneConfig {
|
|
874
|
+
/** Theme configuration */
|
|
875
|
+
theme?: {
|
|
876
|
+
/** Theme preset name */
|
|
877
|
+
preset?: Theme;
|
|
878
|
+
/** Color mode */
|
|
879
|
+
mode?: 'light' | 'dark' | 'system';
|
|
880
|
+
/** Custom CSS variable overrides */
|
|
881
|
+
custom?: Record<string, string>;
|
|
882
|
+
};
|
|
883
|
+
/** Base path for internal links (optional) */
|
|
884
|
+
basePath?: string;
|
|
885
|
+
}
|
|
886
|
+
interface StandaloneProviderProps {
|
|
887
|
+
/** Configuration options */
|
|
888
|
+
config?: StandaloneConfig;
|
|
889
|
+
/** Children components */
|
|
890
|
+
children: ReactNode;
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Lightweight provider for standalone page components.
|
|
894
|
+
*
|
|
895
|
+
* Use this when you want to embed individual cockpit pages
|
|
896
|
+
* (APIKeys, Webhooks, Billing, etc.) in your own app shell
|
|
897
|
+
* without the full DeveloperDashboard.
|
|
898
|
+
*
|
|
899
|
+
* Does NOT include:
|
|
900
|
+
* - Authentication (you handle this)
|
|
901
|
+
* - Routing (you handle this)
|
|
902
|
+
* - Dashboard layout/sidebar (you provide your own)
|
|
903
|
+
*
|
|
904
|
+
* DOES include:
|
|
905
|
+
* - Theme provider (light/dark mode)
|
|
906
|
+
* - Theme preset application
|
|
907
|
+
* - Custom CSS variable support
|
|
908
|
+
*
|
|
909
|
+
* @example
|
|
910
|
+
* ```tsx
|
|
911
|
+
* import { StandaloneProvider, StandaloneAPIKeys } from '@mdxui/cockpit'
|
|
912
|
+
*
|
|
913
|
+
* function MyApp() {
|
|
914
|
+
* return (
|
|
915
|
+
* <StandaloneProvider config={{ theme: { preset: 'stripe', mode: 'dark' } }}>
|
|
916
|
+
* <MyAppShell>
|
|
917
|
+
* <StandaloneAPIKeys
|
|
918
|
+
* onCreateKey={createKey}
|
|
919
|
+
* onRevokeKey={revokeKey}
|
|
920
|
+
* />
|
|
921
|
+
* </MyAppShell>
|
|
922
|
+
* </StandaloneProvider>
|
|
923
|
+
* )
|
|
924
|
+
* }
|
|
925
|
+
* ```
|
|
926
|
+
*/
|
|
927
|
+
declare function StandaloneProvider({ config, children }: StandaloneProviderProps): react_jsx_runtime.JSX.Element;
|
|
928
|
+
|
|
929
|
+
/**
|
|
930
|
+
* Props for standalone API Keys component.
|
|
931
|
+
*/
|
|
932
|
+
interface StandaloneAPIKeysProps {
|
|
933
|
+
/** Initial API keys data (uses mock data if not provided) */
|
|
934
|
+
keys?: ApiKey[];
|
|
935
|
+
/** Callback when a new key is created */
|
|
936
|
+
onCreateKey?: (name: string) => Promise<{
|
|
937
|
+
id: string;
|
|
938
|
+
key: string;
|
|
939
|
+
}>;
|
|
940
|
+
/** Callback when a key is revoked */
|
|
941
|
+
onRevokeKey?: (keyId: string) => Promise<void>;
|
|
942
|
+
/** Callback when a key is renamed */
|
|
943
|
+
onRenameKey?: (keyId: string, newName: string) => Promise<void>;
|
|
944
|
+
/** Hide the page header/breadcrumb (default: true for standalone) */
|
|
945
|
+
hideHeader?: boolean;
|
|
946
|
+
/** Additional CSS class */
|
|
947
|
+
className?: string;
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* Standalone API Keys management component.
|
|
951
|
+
*
|
|
952
|
+
* Use this component to embed API key management in your own app shell
|
|
953
|
+
* without requiring the full DeveloperDashboard.
|
|
954
|
+
*
|
|
955
|
+
* @example Basic usage (uses mock data)
|
|
956
|
+
* ```tsx
|
|
957
|
+
* import { StandaloneProvider, StandaloneAPIKeys } from '@mdxui/cockpit'
|
|
958
|
+
*
|
|
959
|
+
* function MySettings() {
|
|
960
|
+
* return (
|
|
961
|
+
* <StandaloneProvider>
|
|
962
|
+
* <StandaloneAPIKeys />
|
|
963
|
+
* </StandaloneProvider>
|
|
964
|
+
* )
|
|
965
|
+
* }
|
|
966
|
+
* ```
|
|
967
|
+
*
|
|
968
|
+
* @example With real backend integration
|
|
969
|
+
* ```tsx
|
|
970
|
+
* <StandaloneAPIKeys
|
|
971
|
+
* keys={myKeys}
|
|
972
|
+
* onCreateKey={async (name) => {
|
|
973
|
+
* const result = await api.createKey(name)
|
|
974
|
+
* return { id: result.id, key: result.secretKey }
|
|
975
|
+
* }}
|
|
976
|
+
* onRevokeKey={async (keyId) => {
|
|
977
|
+
* await api.revokeKey(keyId)
|
|
978
|
+
* }}
|
|
979
|
+
* onRenameKey={async (keyId, newName) => {
|
|
980
|
+
* await api.renameKey(keyId, newName)
|
|
981
|
+
* }}
|
|
982
|
+
* />
|
|
983
|
+
* ```
|
|
984
|
+
*/
|
|
985
|
+
declare function StandaloneAPIKeys({ keys, onCreateKey, onRevokeKey, onRenameKey, hideHeader, className, }: StandaloneAPIKeysProps): react_jsx_runtime.JSX.Element;
|
|
986
|
+
|
|
987
|
+
/**
|
|
988
|
+
* Props for standalone Webhooks component.
|
|
989
|
+
*/
|
|
990
|
+
interface StandaloneWebhooksProps {
|
|
991
|
+
/** Initial endpoints data (uses mock data if not provided) */
|
|
992
|
+
endpoints?: WebhookEndpoint[];
|
|
993
|
+
/** Callback when an endpoint is created */
|
|
994
|
+
onCreateEndpoint?: (data: {
|
|
995
|
+
url: string;
|
|
996
|
+
events: string[];
|
|
997
|
+
enabled: boolean;
|
|
998
|
+
}) => Promise<{
|
|
999
|
+
id: string;
|
|
1000
|
+
secret: string;
|
|
1001
|
+
}>;
|
|
1002
|
+
/** Callback when an endpoint is updated */
|
|
1003
|
+
onUpdateEndpoint?: (id: string, data: {
|
|
1004
|
+
url: string;
|
|
1005
|
+
events: string[];
|
|
1006
|
+
enabled: boolean;
|
|
1007
|
+
}) => Promise<void>;
|
|
1008
|
+
/** Callback when an endpoint is deleted */
|
|
1009
|
+
onDeleteEndpoint?: (id: string) => Promise<void>;
|
|
1010
|
+
/** Hide the page header/breadcrumb (default: true for standalone) */
|
|
1011
|
+
hideHeader?: boolean;
|
|
1012
|
+
/** Additional CSS class */
|
|
1013
|
+
className?: string;
|
|
1014
|
+
}
|
|
1015
|
+
/**
|
|
1016
|
+
* Standalone Webhooks management component.
|
|
1017
|
+
*
|
|
1018
|
+
* Use this component to embed webhook management in your own app shell
|
|
1019
|
+
* without requiring the full DeveloperDashboard.
|
|
1020
|
+
*
|
|
1021
|
+
* @example Basic usage (uses mock data)
|
|
1022
|
+
* ```tsx
|
|
1023
|
+
* import { StandaloneProvider, StandaloneWebhooks } from '@mdxui/cockpit'
|
|
1024
|
+
*
|
|
1025
|
+
* function MySettings() {
|
|
1026
|
+
* return (
|
|
1027
|
+
* <StandaloneProvider>
|
|
1028
|
+
* <StandaloneWebhooks />
|
|
1029
|
+
* </StandaloneProvider>
|
|
1030
|
+
* )
|
|
1031
|
+
* }
|
|
1032
|
+
* ```
|
|
1033
|
+
*
|
|
1034
|
+
* @example With real backend integration
|
|
1035
|
+
* ```tsx
|
|
1036
|
+
* <StandaloneWebhooks
|
|
1037
|
+
* endpoints={myEndpoints}
|
|
1038
|
+
* onCreateEndpoint={async (data) => {
|
|
1039
|
+
* const result = await api.createWebhook(data)
|
|
1040
|
+
* return { id: result.id, secret: result.secret }
|
|
1041
|
+
* }}
|
|
1042
|
+
* onUpdateEndpoint={async (id, data) => {
|
|
1043
|
+
* await api.updateWebhook(id, data)
|
|
1044
|
+
* }}
|
|
1045
|
+
* onDeleteEndpoint={async (id) => {
|
|
1046
|
+
* await api.deleteWebhook(id)
|
|
1047
|
+
* }}
|
|
1048
|
+
* />
|
|
1049
|
+
* ```
|
|
1050
|
+
*/
|
|
1051
|
+
declare function StandaloneWebhooks({ endpoints, onCreateEndpoint, onUpdateEndpoint, onDeleteEndpoint, hideHeader, className, }: StandaloneWebhooksProps): react_jsx_runtime.JSX.Element;
|
|
1052
|
+
|
|
1053
|
+
/**
|
|
1054
|
+
* Props for standalone Billing component.
|
|
1055
|
+
*/
|
|
1056
|
+
interface StandaloneBillingProps {
|
|
1057
|
+
/** Billing data (uses mock data if not provided) */
|
|
1058
|
+
billingData?: BillingData;
|
|
1059
|
+
/** Callback when "Manage Plan" is clicked */
|
|
1060
|
+
onManagePlan?: () => Promise<void>;
|
|
1061
|
+
/** Callback when "Update" payment method is clicked */
|
|
1062
|
+
onUpdatePaymentMethod?: () => Promise<void>;
|
|
1063
|
+
/** Callback when an invoice is downloaded */
|
|
1064
|
+
onDownloadInvoice?: (invoiceId: string) => Promise<void>;
|
|
1065
|
+
/** Callback when billing alerts are toggled */
|
|
1066
|
+
onToggleAlerts?: (enabled: boolean) => Promise<void>;
|
|
1067
|
+
/** Hide the page header/breadcrumb (default: true for standalone) */
|
|
1068
|
+
hideHeader?: boolean;
|
|
1069
|
+
/** Additional CSS class */
|
|
1070
|
+
className?: string;
|
|
1071
|
+
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Standalone Billing management component.
|
|
1074
|
+
*
|
|
1075
|
+
* Use this component to embed billing management in your own app shell
|
|
1076
|
+
* without requiring the full DeveloperDashboard.
|
|
1077
|
+
*
|
|
1078
|
+
* @example Basic usage (uses mock data)
|
|
1079
|
+
* ```tsx
|
|
1080
|
+
* import { StandaloneProvider, StandaloneBilling } from '@mdxui/cockpit'
|
|
1081
|
+
*
|
|
1082
|
+
* function MySettings() {
|
|
1083
|
+
* return (
|
|
1084
|
+
* <StandaloneProvider>
|
|
1085
|
+
* <StandaloneBilling />
|
|
1086
|
+
* </StandaloneProvider>
|
|
1087
|
+
* )
|
|
1088
|
+
* }
|
|
1089
|
+
* ```
|
|
1090
|
+
*
|
|
1091
|
+
* @example With real backend integration
|
|
1092
|
+
* ```tsx
|
|
1093
|
+
* <StandaloneBilling
|
|
1094
|
+
* billingData={myBillingData}
|
|
1095
|
+
* onManagePlan={async () => {
|
|
1096
|
+
* const url = await createBillingPortalSession()
|
|
1097
|
+
* window.location.href = url
|
|
1098
|
+
* }}
|
|
1099
|
+
* onDownloadInvoice={async (invoiceId) => {
|
|
1100
|
+
* const url = await api.getInvoiceDownloadUrl(invoiceId)
|
|
1101
|
+
* window.open(url, '_blank')
|
|
1102
|
+
* }}
|
|
1103
|
+
* />
|
|
1104
|
+
* ```
|
|
1105
|
+
*/
|
|
1106
|
+
declare function StandaloneBilling({ billingData, onManagePlan, onUpdatePaymentMethod, onDownloadInvoice, onToggleAlerts, hideHeader, className, }: StandaloneBillingProps): react_jsx_runtime.JSX.Element;
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
* Props for standalone Team component.
|
|
1110
|
+
*/
|
|
1111
|
+
interface StandaloneTeamProps {
|
|
1112
|
+
/** Whether to use mock widgets instead of real WorkOS widgets */
|
|
1113
|
+
useMockWidgets?: boolean;
|
|
1114
|
+
/** Hide the page header/breadcrumb (default: true for standalone) */
|
|
1115
|
+
hideHeader?: boolean;
|
|
1116
|
+
/** Additional CSS class */
|
|
1117
|
+
className?: string;
|
|
1118
|
+
}
|
|
1119
|
+
/**
|
|
1120
|
+
* Standalone Team management component.
|
|
1121
|
+
*
|
|
1122
|
+
* Use this component to embed team management in your own app shell
|
|
1123
|
+
* without requiring the full DeveloperDashboard.
|
|
1124
|
+
*
|
|
1125
|
+
* NOTE: This component uses WorkOS widgets for team management.
|
|
1126
|
+
* You need to wrap your app with IdentityProvider from @mdxui/auth
|
|
1127
|
+
* for the real widgets to work. Use useMockWidgets={true} for demo/testing.
|
|
1128
|
+
*
|
|
1129
|
+
* @example Basic usage (uses mock widgets)
|
|
1130
|
+
* ```tsx
|
|
1131
|
+
* import { StandaloneProvider, StandaloneTeam } from '@mdxui/cockpit'
|
|
1132
|
+
*
|
|
1133
|
+
* function MySettings() {
|
|
1134
|
+
* return (
|
|
1135
|
+
* <StandaloneProvider>
|
|
1136
|
+
* <StandaloneTeam useMockWidgets />
|
|
1137
|
+
* </StandaloneProvider>
|
|
1138
|
+
* )
|
|
1139
|
+
* }
|
|
1140
|
+
* ```
|
|
1141
|
+
*
|
|
1142
|
+
* @example With WorkOS integration
|
|
1143
|
+
* ```tsx
|
|
1144
|
+
* import { IdentityProvider } from '@mdxui/auth'
|
|
1145
|
+
* import { StandaloneProvider, StandaloneTeam } from '@mdxui/cockpit'
|
|
1146
|
+
*
|
|
1147
|
+
* function MySettings() {
|
|
1148
|
+
* return (
|
|
1149
|
+
* <IdentityProvider clientId="your-client-id">
|
|
1150
|
+
* <StandaloneProvider>
|
|
1151
|
+
* <StandaloneTeam />
|
|
1152
|
+
* </StandaloneProvider>
|
|
1153
|
+
* </IdentityProvider>
|
|
1154
|
+
* )
|
|
1155
|
+
* }
|
|
1156
|
+
* ```
|
|
1157
|
+
*/
|
|
1158
|
+
declare function StandaloneTeam({ useMockWidgets, hideHeader, className, }: StandaloneTeamProps): react_jsx_runtime.JSX.Element;
|
|
1159
|
+
|
|
1160
|
+
/**
|
|
1161
|
+
* Maps a Lucide icon name string to the actual icon component.
|
|
1162
|
+
* Used to convert mdxui's string-based icon references to LucideIcon components.
|
|
1163
|
+
*
|
|
1164
|
+
* @example
|
|
1165
|
+
* ```ts
|
|
1166
|
+
* const icon = getIconByName('BarChart3') // returns BarChart3 component
|
|
1167
|
+
* const icon = getIconByName('Settings') // returns Settings component
|
|
1168
|
+
* ```
|
|
1169
|
+
*/
|
|
1170
|
+
declare function getIconByName(name: string): LucideIcon | undefined;
|
|
1171
|
+
/**
|
|
1172
|
+
* Common dashboard icons for quick reference.
|
|
1173
|
+
* These are the icons most commonly used in DeveloperDashboard navigation.
|
|
1174
|
+
*/
|
|
1175
|
+
declare const dashboardIcons: {
|
|
1176
|
+
readonly overview: "BarChart3";
|
|
1177
|
+
readonly requests: "Activity";
|
|
1178
|
+
readonly keys: "Key";
|
|
1179
|
+
readonly team: "Users";
|
|
1180
|
+
readonly billing: "CreditCard";
|
|
1181
|
+
readonly settings: "Settings";
|
|
1182
|
+
readonly webhooks: "Webhook";
|
|
1183
|
+
readonly database: "Database";
|
|
1184
|
+
readonly integrations: "Puzzle";
|
|
1185
|
+
readonly vault: "Lock";
|
|
1186
|
+
};
|
|
1187
|
+
|
|
674
1188
|
/**
|
|
675
1189
|
* SDK instance type - the $ proxy with all platform methods
|
|
676
1190
|
*/
|
|
@@ -761,4 +1275,4 @@ declare function testSDKConnection(): Promise<{
|
|
|
761
1275
|
result?: undefined;
|
|
762
1276
|
}>;
|
|
763
1277
|
|
|
764
|
-
export { APIKeyManager, ActivityFeed, type ActivityFeedProps, type ActivityItem, AreaChart, type AreaChartProps, BarChart, type BarChartProps, Billing, BillingPage, type CommandGroup, type CommandItem, CommandPalette, type CommandPaletteProps, type DashboardBranding, type DashboardConfig, DashboardGrid, DashboardGridItem, type DashboardGridItemProps, type DashboardGridProps, type DashboardIdentity, DashboardLayout, type DashboardRoutes, type DashboardTheme, DataTable, type DataTableProps, DatabasePage, DeveloperDashboard, IntegrationsPage, JsonViewer, KPICard, type KPICardProps, KeysPage, LandingPage, LineChart, type LineChartProps, MockAuthenticationFactors, MockUserProfile, MockUserSessions, MockUsersManagement, type NavItem, NavMain, NavUser, OverviewPage, RequestsPage, SettingsPage, SettingsProfilePage, SettingsSecurityPage, SettingsSessionsPage, SidebarAd, SortableHeader, StatusBadge, StatusDot, TeamManager, TeamPage, TeamSwitcher, UserProfile, VaultDeleteDialog, VaultEmptyState, VaultInputModal, VaultItemCard, VaultList, VaultPage, WebhooksActivityPage, WebhooksEndpointsPage, WebhooksEventCatalogPage, WebhooksLogsPage, getAuthToken, getDebugStatus, getEffectiveToken, getSDK, isAuthenticated, isDebugMode, setDebugMode, setDevToken, testSDKConnection, useCommandPalette, useDashboard, useRoutes };
|
|
1278
|
+
export { APIKeyManager, ActivityFeed, type ActivityFeedProps, type ActivityItem, AreaChart, type AreaChartProps, BarChart, type BarChartProps, Billing, BillingPage, type CommandGroup, type CommandItem, CommandPalette, type CommandPaletteProps, type CustomRoute, type DashboardBranding, type DashboardConfig, DashboardGrid, DashboardGridItem, type DashboardGridItemProps, type DashboardGridProps, type DashboardIdentity, DashboardLayout, type DashboardRoutes, type DashboardTheme, DataTable, type DataTableProps, DatabasePage, DeveloperDashboard, type DeveloperDashboardProps, IntegrationsPage, JsonViewer, KPICard, type KPICardProps, KeysPage, LandingPage, LineChart, type LineChartProps, MockAuthenticationFactors, MockUserProfile, MockUserSessions, MockUsersManagement, type NavItem, NavMain, NavUser, OverviewPage, RequestsPage, SettingsPage, SettingsProfilePage, SettingsSecurityPage, SettingsSessionsPage, SidebarAd, SortableHeader, StandaloneAPIKeys, type StandaloneAPIKeysProps, StandaloneBilling, type StandaloneBillingProps, type StandaloneConfig, StandaloneProvider, StandaloneTeam, type StandaloneTeamProps, StandaloneWebhooks, type StandaloneWebhooksProps, StatusBadge, StatusDot, TeamManager, TeamPage, TeamSwitcher, UserProfile, VaultDeleteDialog, VaultEmptyState, VaultInputModal, VaultItemCard, VaultList, VaultPage, WebhooksActivityPage, WebhooksEndpointsPage, WebhooksEventCatalogPage, WebhooksLogsPage, dashboardIcons, getAuthToken, getDebugStatus, getEffectiveToken, getIconByName, getSDK, isAuthenticated, isDebugMode, setDebugMode, setDevToken, testSDKConnection, useCommandPalette, useCustomRoutes, useDashboard, useRoutes };
|