@finatic/client 0.0.131
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 +489 -0
- package/dist/index.d.ts +2037 -0
- package/dist/index.js +4815 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +4787 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types/client/ApiClient.d.ts +234 -0
- package/dist/types/client/FinaticConnect.d.ts +307 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/mocks/MockApiClient.d.ts +228 -0
- package/dist/types/mocks/MockDataProvider.d.ts +132 -0
- package/dist/types/mocks/MockFactory.d.ts +53 -0
- package/dist/types/mocks/index.d.ts +5 -0
- package/dist/types/mocks/utils.d.ts +29 -0
- package/dist/types/portal/PortalUI.d.ts +38 -0
- package/dist/types/security/ApiSecurity.d.ts +24 -0
- package/dist/types/security/RuntimeSecurity.d.ts +28 -0
- package/dist/types/security/SecurityUtils.d.ts +21 -0
- package/dist/types/security/index.d.ts +2 -0
- package/dist/types/services/AnalyticsService.d.ts +18 -0
- package/dist/types/services/ApiClient.d.ts +121 -0
- package/dist/types/services/PortalService.d.ts +24 -0
- package/dist/types/services/TradingService.d.ts +55 -0
- package/dist/types/services/api.d.ts +23 -0
- package/dist/types/services/auth.d.ts +9 -0
- package/dist/types/services/index.d.ts +4 -0
- package/dist/types/services/portfolio.d.ts +10 -0
- package/dist/types/services/trading.d.ts +10 -0
- package/dist/types/shared/index.d.ts +2 -0
- package/dist/types/shared/themes/index.d.ts +2 -0
- package/dist/types/shared/themes/portalPresets.d.ts +8 -0
- package/dist/types/shared/themes/presets.d.ts +3 -0
- package/dist/types/shared/themes/system.d.ts +2 -0
- package/dist/types/shared/types/index.d.ts +110 -0
- package/dist/types/types/api.d.ts +486 -0
- package/dist/types/types/config.d.ts +12 -0
- package/dist/types/types/connect.d.ts +51 -0
- package/dist/types/types/errors.d.ts +47 -0
- package/dist/types/types/portal.d.ts +75 -0
- package/dist/types/types/security.d.ts +35 -0
- package/dist/types/types/shared.d.ts +50 -0
- package/dist/types/types/theme.d.ts +101 -0
- package/dist/types/types.d.ts +157 -0
- package/dist/types/utils/errors.d.ts +42 -0
- package/dist/types/utils/events.d.ts +12 -0
- package/dist/types/utils/themeUtils.d.ts +34 -0
- package/package.json +56 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ApiConfig, ApiResponse, OrdersFilter, PositionsFilter, AccountsFilter, FilteredOrdersResponse, FilteredPositionsResponse, FilteredAccountsResponse } from '../types/api';
|
|
2
|
+
import { PaginatedResult } from '../types';
|
|
3
|
+
export declare class ApiClient {
|
|
4
|
+
private baseUrl;
|
|
5
|
+
private apiKey;
|
|
6
|
+
private accessToken?;
|
|
7
|
+
private refreshToken?;
|
|
8
|
+
private isSandbox;
|
|
9
|
+
constructor(config: ApiConfig);
|
|
10
|
+
private getBaseUrl;
|
|
11
|
+
private request;
|
|
12
|
+
getPortalContent(): Promise<ApiResponse<{
|
|
13
|
+
content: string;
|
|
14
|
+
}>>;
|
|
15
|
+
getInitToken(): Promise<ApiResponse<{
|
|
16
|
+
token: string;
|
|
17
|
+
}>>;
|
|
18
|
+
login(otp: string): Promise<ApiResponse<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
}>>;
|
|
21
|
+
verifyOTP(otp: string): Promise<ApiResponse<{
|
|
22
|
+
userId: string;
|
|
23
|
+
connectionIds: string[];
|
|
24
|
+
}>>;
|
|
25
|
+
getUserProfile(): Promise<ApiResponse<{
|
|
26
|
+
profile: any;
|
|
27
|
+
brokers: any[];
|
|
28
|
+
}>>;
|
|
29
|
+
getConnectionComplete(): Promise<ApiResponse<{
|
|
30
|
+
userId: string;
|
|
31
|
+
connectionIds: string[];
|
|
32
|
+
}>>;
|
|
33
|
+
getUserToken(userId: string): Promise<ApiResponse<{
|
|
34
|
+
accessToken: string;
|
|
35
|
+
refreshToken: string;
|
|
36
|
+
}>>;
|
|
37
|
+
refreshAccessToken(): Promise<ApiResponse<{
|
|
38
|
+
accessToken: string;
|
|
39
|
+
refreshToken: string;
|
|
40
|
+
}>>;
|
|
41
|
+
revokeTokens(): Promise<ApiResponse<{
|
|
42
|
+
success: boolean;
|
|
43
|
+
}>>;
|
|
44
|
+
connectBroker(brokerId: string): Promise<ApiResponse<{
|
|
45
|
+
success: boolean;
|
|
46
|
+
}>>;
|
|
47
|
+
disconnectBroker(brokerId: string): Promise<ApiResponse<{
|
|
48
|
+
success: boolean;
|
|
49
|
+
}>>;
|
|
50
|
+
getBrokerAccounts(): Promise<ApiResponse<{
|
|
51
|
+
accounts: any[];
|
|
52
|
+
}>>;
|
|
53
|
+
getConnections(): Promise<ApiResponse<{
|
|
54
|
+
connections: any[];
|
|
55
|
+
}>>;
|
|
56
|
+
getConnectionDetails(connectionId: string): Promise<ApiResponse<{
|
|
57
|
+
connection: any;
|
|
58
|
+
}>>;
|
|
59
|
+
getAccounts(filter?: AccountsFilter): Promise<ApiResponse<{
|
|
60
|
+
accounts: any[];
|
|
61
|
+
}>>;
|
|
62
|
+
getHoldings(): Promise<ApiResponse<{
|
|
63
|
+
holdings: any[];
|
|
64
|
+
}>>;
|
|
65
|
+
getBalances(): Promise<ApiResponse<{
|
|
66
|
+
balances: any;
|
|
67
|
+
}>>;
|
|
68
|
+
getTransactions(): Promise<ApiResponse<{
|
|
69
|
+
transactions: any[];
|
|
70
|
+
}>>;
|
|
71
|
+
getPerformance(): Promise<ApiResponse<{
|
|
72
|
+
performance: any;
|
|
73
|
+
}>>;
|
|
74
|
+
getOrders(filter?: OrdersFilter): Promise<ApiResponse<{
|
|
75
|
+
orders: any[];
|
|
76
|
+
}>>;
|
|
77
|
+
getTrades(): Promise<ApiResponse<{
|
|
78
|
+
trades: any[];
|
|
79
|
+
}>>;
|
|
80
|
+
placeOrder(order: any): Promise<ApiResponse<{
|
|
81
|
+
orderId: string;
|
|
82
|
+
}>>;
|
|
83
|
+
cancelOrder(orderId: string): Promise<ApiResponse<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
}>>;
|
|
86
|
+
getOrderStatus(orderId: string): Promise<ApiResponse<{
|
|
87
|
+
status: string;
|
|
88
|
+
}>>;
|
|
89
|
+
getOptionsChain(symbol: string): Promise<ApiResponse<{
|
|
90
|
+
chain: any[];
|
|
91
|
+
}>>;
|
|
92
|
+
getOptionQuote(symbol: string, strike: number, expiry: string): Promise<ApiResponse<{
|
|
93
|
+
quote: any;
|
|
94
|
+
}>>;
|
|
95
|
+
placeOptionsOrder(order: any): Promise<ApiResponse<{
|
|
96
|
+
orderId: string;
|
|
97
|
+
}>>;
|
|
98
|
+
getDailyHistory(): Promise<ApiResponse<{
|
|
99
|
+
history: any[];
|
|
100
|
+
}>>;
|
|
101
|
+
getWeeklySnapshots(): Promise<ApiResponse<{
|
|
102
|
+
snapshots: any[];
|
|
103
|
+
}>>;
|
|
104
|
+
getPortfolioDeltas(): Promise<ApiResponse<{
|
|
105
|
+
deltas: any[];
|
|
106
|
+
}>>;
|
|
107
|
+
getUserLogs(userId: string): Promise<ApiResponse<{
|
|
108
|
+
logs: any[];
|
|
109
|
+
}>>;
|
|
110
|
+
getBrokerOrders(filter?: OrdersFilter): Promise<ApiResponse<FilteredOrdersResponse>>;
|
|
111
|
+
getBrokerPositions(filter?: PositionsFilter): Promise<ApiResponse<FilteredPositionsResponse>>;
|
|
112
|
+
getBrokerDataAccounts(filter?: AccountsFilter): Promise<ApiResponse<FilteredAccountsResponse>>;
|
|
113
|
+
testWebhook(): Promise<ApiResponse<{
|
|
114
|
+
success: boolean;
|
|
115
|
+
}>>;
|
|
116
|
+
private buildQueryParams;
|
|
117
|
+
getBrokerOrdersPage(page?: number, perPage?: number, filters?: OrdersFilter): Promise<PaginatedResult<any[]>>;
|
|
118
|
+
getBrokerAccountsPage(page?: number, perPage?: number, filters?: AccountsFilter): Promise<PaginatedResult<any[]>>;
|
|
119
|
+
getBrokerPositionsPage(page?: number, perPage?: number, filters?: PositionsFilter): Promise<PaginatedResult<any[]>>;
|
|
120
|
+
getNextPage<T>(previousResult: PaginatedResult<T>, fetchFunction: (offset: number, limit: number) => Promise<PaginatedResult<T>>): Promise<PaginatedResult<T> | null>;
|
|
121
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ApiClient } from './ApiClient';
|
|
2
|
+
import { PortalConfig } from '../types/portal';
|
|
3
|
+
import { Theme } from '../types/theme';
|
|
4
|
+
export interface IPortalService {
|
|
5
|
+
createPortal(config: PortalConfig): Promise<void>;
|
|
6
|
+
closePortal(): Promise<void>;
|
|
7
|
+
updateTheme(theme: Theme): Promise<void>;
|
|
8
|
+
getBrokerAccounts(): Promise<any[]>;
|
|
9
|
+
linkBrokerAccount(brokerId: string): Promise<void>;
|
|
10
|
+
unlinkBrokerAccount(brokerId: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare class CorePortalService implements IPortalService {
|
|
13
|
+
private apiClient;
|
|
14
|
+
private iframe;
|
|
15
|
+
constructor(apiClient: ApiClient);
|
|
16
|
+
createPortal(config: PortalConfig): Promise<void>;
|
|
17
|
+
closePortal(): Promise<void>;
|
|
18
|
+
updateTheme(theme: Theme): Promise<void>;
|
|
19
|
+
getBrokerAccounts(): Promise<any[]>;
|
|
20
|
+
linkBrokerAccount(brokerId: string): Promise<void>;
|
|
21
|
+
unlinkBrokerAccount(brokerId: string): Promise<void>;
|
|
22
|
+
private positionIframe;
|
|
23
|
+
private styleIframe;
|
|
24
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ApiClient } from './ApiClient';
|
|
2
|
+
import { Order, OptionsOrder, OrdersFilter, PositionsFilter, AccountsFilter, BrokerDataOrder, BrokerDataPosition, BrokerDataAccount } from '../types/api';
|
|
3
|
+
import { PaginatedResult } from '../types';
|
|
4
|
+
export interface ITradingService {
|
|
5
|
+
getAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]>;
|
|
6
|
+
getOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]>;
|
|
7
|
+
getPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]>;
|
|
8
|
+
placeOrder(order: Order): Promise<string>;
|
|
9
|
+
cancelOrder(orderId: string): Promise<boolean>;
|
|
10
|
+
placeOptionsOrder(order: OptionsOrder): Promise<string>;
|
|
11
|
+
getAccountsPage(page?: number, perPage?: number, filter?: AccountsFilter): Promise<PaginatedResult<BrokerDataAccount[]>>;
|
|
12
|
+
getOrdersPage(page?: number, perPage?: number, filter?: OrdersFilter): Promise<PaginatedResult<BrokerDataOrder[]>>;
|
|
13
|
+
getPositionsPage(page?: number, perPage?: number, filter?: PositionsFilter): Promise<PaginatedResult<BrokerDataPosition[]>>;
|
|
14
|
+
getNextAccountsPage(previousResult: PaginatedResult<BrokerDataAccount[]>): Promise<PaginatedResult<BrokerDataAccount[]> | null>;
|
|
15
|
+
getNextOrdersPage(previousResult: PaginatedResult<BrokerDataOrder[]>): Promise<PaginatedResult<BrokerDataOrder[]> | null>;
|
|
16
|
+
getNextPositionsPage(previousResult: PaginatedResult<BrokerDataPosition[]>): Promise<PaginatedResult<BrokerDataPosition[]> | null>;
|
|
17
|
+
getAllAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]>;
|
|
18
|
+
getAllOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]>;
|
|
19
|
+
getAllPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]>;
|
|
20
|
+
getOpenPositions(): Promise<BrokerDataPosition[]>;
|
|
21
|
+
getFilledOrders(): Promise<BrokerDataOrder[]>;
|
|
22
|
+
getPendingOrders(): Promise<BrokerDataOrder[]>;
|
|
23
|
+
getActiveAccounts(): Promise<BrokerDataAccount[]>;
|
|
24
|
+
getOrdersBySymbol(symbol: string): Promise<BrokerDataOrder[]>;
|
|
25
|
+
getPositionsBySymbol(symbol: string): Promise<BrokerDataPosition[]>;
|
|
26
|
+
getOrdersByBroker(brokerId: string): Promise<BrokerDataOrder[]>;
|
|
27
|
+
getPositionsByBroker(brokerId: string): Promise<BrokerDataPosition[]>;
|
|
28
|
+
}
|
|
29
|
+
export declare class CoreTradingService implements ITradingService {
|
|
30
|
+
private apiClient;
|
|
31
|
+
constructor(apiClient: ApiClient);
|
|
32
|
+
getAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]>;
|
|
33
|
+
getOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]>;
|
|
34
|
+
getPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]>;
|
|
35
|
+
placeOrder(order: Order): Promise<string>;
|
|
36
|
+
cancelOrder(orderId: string): Promise<boolean>;
|
|
37
|
+
placeOptionsOrder(order: OptionsOrder): Promise<string>;
|
|
38
|
+
getAccountsPage(page?: number, perPage?: number, filter?: AccountsFilter): Promise<PaginatedResult<BrokerDataAccount[]>>;
|
|
39
|
+
getOrdersPage(page?: number, perPage?: number, filter?: OrdersFilter): Promise<PaginatedResult<BrokerDataOrder[]>>;
|
|
40
|
+
getPositionsPage(page?: number, perPage?: number, filter?: PositionsFilter): Promise<PaginatedResult<BrokerDataPosition[]>>;
|
|
41
|
+
getNextAccountsPage(previousResult: PaginatedResult<BrokerDataAccount[]>): Promise<PaginatedResult<BrokerDataAccount[]> | null>;
|
|
42
|
+
getNextOrdersPage(previousResult: PaginatedResult<BrokerDataOrder[]>): Promise<PaginatedResult<BrokerDataOrder[]> | null>;
|
|
43
|
+
getNextPositionsPage(previousResult: PaginatedResult<BrokerDataPosition[]>): Promise<PaginatedResult<BrokerDataPosition[]> | null>;
|
|
44
|
+
getAllAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]>;
|
|
45
|
+
getAllOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]>;
|
|
46
|
+
getAllPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]>;
|
|
47
|
+
getOpenPositions(): Promise<BrokerDataPosition[]>;
|
|
48
|
+
getFilledOrders(): Promise<BrokerDataOrder[]>;
|
|
49
|
+
getPendingOrders(): Promise<BrokerDataOrder[]>;
|
|
50
|
+
getActiveAccounts(): Promise<BrokerDataAccount[]>;
|
|
51
|
+
getOrdersBySymbol(symbol: string): Promise<BrokerDataOrder[]>;
|
|
52
|
+
getPositionsBySymbol(symbol: string): Promise<BrokerDataPosition[]>;
|
|
53
|
+
getOrdersByBroker(brokerId: string): Promise<BrokerDataOrder[]>;
|
|
54
|
+
getPositionsByBroker(brokerId: string): Promise<BrokerDataPosition[]>;
|
|
55
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ApiConfig, ApiResponse } from '../types/api';
|
|
2
|
+
export declare class ApiService {
|
|
3
|
+
private config;
|
|
4
|
+
private accessToken?;
|
|
5
|
+
private deviceInfo?;
|
|
6
|
+
constructor(config: ApiConfig);
|
|
7
|
+
setAccessToken(token: string): void;
|
|
8
|
+
setDeviceInfo(deviceInfo: string): void;
|
|
9
|
+
private request;
|
|
10
|
+
get<T>(path: string, options?: {
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
params?: Record<string, string>;
|
|
13
|
+
}): Promise<ApiResponse<T>>;
|
|
14
|
+
post<T>(path: string, body: any, options?: {
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
}): Promise<ApiResponse<T>>;
|
|
17
|
+
put<T>(path: string, body: any, options?: {
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
}): Promise<ApiResponse<T>>;
|
|
20
|
+
delete<T>(path: string, options?: {
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
}): Promise<ApiResponse<T>>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiService } from './api';
|
|
2
|
+
import { UserToken, PortalResponse } from '../types/api';
|
|
3
|
+
export declare class AuthService {
|
|
4
|
+
private api;
|
|
5
|
+
constructor(api: ApiService);
|
|
6
|
+
getPortalToken(companyId: string): Promise<PortalResponse>;
|
|
7
|
+
getUserToken(token: string, companyId: string, userId: string): Promise<UserToken>;
|
|
8
|
+
revokeToken(accessToken: string): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ApiService } from './api';
|
|
2
|
+
import { Holding, Portfolio, PortfolioSnapshot, PerformanceMetrics } from '../types/api';
|
|
3
|
+
export declare class PortfolioService {
|
|
4
|
+
private api;
|
|
5
|
+
constructor(api: ApiService);
|
|
6
|
+
getHoldings(accessToken: string): Promise<Holding[]>;
|
|
7
|
+
getPortfolio(accessToken: string): Promise<Portfolio>;
|
|
8
|
+
getPortfolioSnapshot(accessToken: string): Promise<PortfolioSnapshot>;
|
|
9
|
+
getPerformanceMetrics(accessToken: string): Promise<PerformanceMetrics>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ApiService } from './api';
|
|
2
|
+
import { Order, OptionsOrder } from '../types/api';
|
|
3
|
+
export declare class TradingService {
|
|
4
|
+
private api;
|
|
5
|
+
constructor(api: ApiService);
|
|
6
|
+
placeOrder(accessToken: string, order: Order): Promise<void>;
|
|
7
|
+
placeOptionsOrder(accessToken: string, order: OptionsOrder): Promise<void>;
|
|
8
|
+
cancelOrder(accessToken: string, orderId: string): Promise<void>;
|
|
9
|
+
getOrders(accessToken: string): Promise<Order[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PortalThemeConfig } from '../../types/portal';
|
|
2
|
+
export declare const darkTheme: PortalThemeConfig;
|
|
3
|
+
export declare const lightTheme: PortalThemeConfig;
|
|
4
|
+
export declare const corporateBlueTheme: PortalThemeConfig;
|
|
5
|
+
export declare const purpleTheme: PortalThemeConfig;
|
|
6
|
+
export declare const greenTheme: PortalThemeConfig;
|
|
7
|
+
export declare const orangeTheme: PortalThemeConfig;
|
|
8
|
+
export declare const portalThemePresets: Record<string, PortalThemeConfig>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export interface BrokerAccount {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
type: string;
|
|
5
|
+
status: 'active' | 'inactive' | 'pending';
|
|
6
|
+
balance?: {
|
|
7
|
+
total: number;
|
|
8
|
+
available: number;
|
|
9
|
+
currency: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface Theme {
|
|
13
|
+
colors: {
|
|
14
|
+
primary: string;
|
|
15
|
+
secondary: string;
|
|
16
|
+
background: {
|
|
17
|
+
primary: string;
|
|
18
|
+
secondary: string;
|
|
19
|
+
tertiary: string;
|
|
20
|
+
};
|
|
21
|
+
text: {
|
|
22
|
+
primary: string;
|
|
23
|
+
secondary: string;
|
|
24
|
+
disabled: string;
|
|
25
|
+
error: string;
|
|
26
|
+
success: string;
|
|
27
|
+
warning: string;
|
|
28
|
+
};
|
|
29
|
+
border: {
|
|
30
|
+
light: string;
|
|
31
|
+
medium: string;
|
|
32
|
+
dark: string;
|
|
33
|
+
};
|
|
34
|
+
status: {
|
|
35
|
+
active: string;
|
|
36
|
+
inactive: string;
|
|
37
|
+
pending: string;
|
|
38
|
+
error: string;
|
|
39
|
+
success: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
typography: {
|
|
43
|
+
fontFamily: string;
|
|
44
|
+
fontSize: {
|
|
45
|
+
xs: string;
|
|
46
|
+
sm: string;
|
|
47
|
+
base: string;
|
|
48
|
+
lg: string;
|
|
49
|
+
xl: string;
|
|
50
|
+
'2xl': string;
|
|
51
|
+
};
|
|
52
|
+
fontWeight: {
|
|
53
|
+
light: number;
|
|
54
|
+
normal: number;
|
|
55
|
+
medium: number;
|
|
56
|
+
semibold: number;
|
|
57
|
+
bold: number;
|
|
58
|
+
};
|
|
59
|
+
lineHeight: {
|
|
60
|
+
none: number;
|
|
61
|
+
tight: number;
|
|
62
|
+
normal: number;
|
|
63
|
+
relaxed: number;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
spacing: {
|
|
67
|
+
xs: string;
|
|
68
|
+
sm: string;
|
|
69
|
+
md: string;
|
|
70
|
+
lg: string;
|
|
71
|
+
xl: string;
|
|
72
|
+
'2xl': string;
|
|
73
|
+
};
|
|
74
|
+
animation: {
|
|
75
|
+
duration: {
|
|
76
|
+
fast: string;
|
|
77
|
+
normal: string;
|
|
78
|
+
slow: string;
|
|
79
|
+
};
|
|
80
|
+
easing: {
|
|
81
|
+
linear: string;
|
|
82
|
+
easeIn: string;
|
|
83
|
+
easeOut: string;
|
|
84
|
+
easeInOut: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
components: {
|
|
88
|
+
button: {
|
|
89
|
+
borderRadius: string;
|
|
90
|
+
padding: string;
|
|
91
|
+
fontSize: string;
|
|
92
|
+
fontWeight: number;
|
|
93
|
+
};
|
|
94
|
+
input: {
|
|
95
|
+
borderRadius: string;
|
|
96
|
+
padding: string;
|
|
97
|
+
fontSize: string;
|
|
98
|
+
};
|
|
99
|
+
card: {
|
|
100
|
+
borderRadius: string;
|
|
101
|
+
padding: string;
|
|
102
|
+
shadow: string;
|
|
103
|
+
};
|
|
104
|
+
modal: {
|
|
105
|
+
borderRadius: string;
|
|
106
|
+
padding: string;
|
|
107
|
+
backdrop: string;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
}
|