@gtcx/templates 0.1.0
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/dist/components/audit-trail.d.ts +19 -0
- package/dist/components/audit-trail.d.ts.map +1 -0
- package/dist/components/bulk-actions.d.ts +16 -0
- package/dist/components/bulk-actions.d.ts.map +1 -0
- package/dist/components/kpi-card.d.ts +15 -0
- package/dist/components/kpi-card.d.ts.map +1 -0
- package/dist/components/page-header.d.ts +9 -0
- package/dist/components/page-header.d.ts.map +1 -0
- package/dist/components/section-card.d.ts +10 -0
- package/dist/components/section-card.d.ts.map +1 -0
- package/dist/index.cjs +757 -0
- package/dist/index.d.cts +282 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1433 -0
- package/dist/index.mjs +1386 -0
- package/dist/template-frame.d.ts +19 -0
- package/dist/template-frame.d.ts.map +1 -0
- package/dist/templates/activity.d.ts +24 -0
- package/dist/templates/activity.d.ts.map +1 -0
- package/dist/templates/auth-shell.d.ts +11 -0
- package/dist/templates/auth-shell.d.ts.map +1 -0
- package/dist/templates/billing.d.ts +35 -0
- package/dist/templates/billing.d.ts.map +1 -0
- package/dist/templates/dashboard.d.ts +37 -0
- package/dist/templates/dashboard.d.ts.map +1 -0
- package/dist/templates/detail.d.ts +33 -0
- package/dist/templates/detail.d.ts.map +1 -0
- package/dist/templates/error.d.ts +12 -0
- package/dist/templates/error.d.ts.map +1 -0
- package/dist/templates/invite.d.ts +22 -0
- package/dist/templates/invite.d.ts.map +1 -0
- package/dist/templates/list.d.ts +48 -0
- package/dist/templates/list.d.ts.map +1 -0
- package/dist/templates/members.d.ts +28 -0
- package/dist/templates/members.d.ts.map +1 -0
- package/dist/templates/notifications.d.ts +24 -0
- package/dist/templates/notifications.d.ts.map +1 -0
- package/dist/templates/profile.d.ts +31 -0
- package/dist/templates/profile.d.ts.map +1 -0
- package/dist/templates/projects.d.ts +27 -0
- package/dist/templates/projects.d.ts.map +1 -0
- package/dist/templates/security.d.ts +34 -0
- package/dist/templates/security.d.ts.map +1 -0
- package/dist/templates/settings.d.ts +19 -0
- package/dist/templates/settings.d.ts.map +1 -0
- package/dist/templates/wizard.d.ts +22 -0
- package/dist/templates/wizard.d.ts.map +1 -0
- package/dist/types.d.ts +52 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +44 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import React, { ReactNode, Key } from 'react';
|
|
2
|
+
import { PageHeaderAction, BreadcrumbItem } from '@gtcx/ui';
|
|
3
|
+
export { BreadcrumbItem } from '@gtcx/ui';
|
|
4
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
import { TableProps, DescriptionsProps } from 'antd';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Template API types following ADR-0003 conventions.
|
|
9
|
+
* All templates should accept these standardized props for consistency.
|
|
10
|
+
*/
|
|
11
|
+
interface TemplateAction {
|
|
12
|
+
key: string;
|
|
13
|
+
label: string;
|
|
14
|
+
onAction?: () => void;
|
|
15
|
+
kind?: 'primary' | 'secondary' | 'danger' | 'link';
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
ariaLabel?: string;
|
|
18
|
+
icon?: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
interface TemplateAudit {
|
|
21
|
+
summary?: string;
|
|
22
|
+
lastUpdatedAt?: string;
|
|
23
|
+
lastUpdatedBy?: string;
|
|
24
|
+
sourceSystem?: string;
|
|
25
|
+
evidenceUrl?: string;
|
|
26
|
+
}
|
|
27
|
+
interface TemplateFilters<TState = unknown> {
|
|
28
|
+
state: TState;
|
|
29
|
+
onChange: (next: TState) => void;
|
|
30
|
+
content?: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
interface TemplateLayoutOverrides {
|
|
33
|
+
contentPadding?: number;
|
|
34
|
+
showBreadcrumbs?: boolean;
|
|
35
|
+
}
|
|
36
|
+
interface TemplateProps<TData = unknown> {
|
|
37
|
+
data?: TData;
|
|
38
|
+
actions?: TemplateAction[];
|
|
39
|
+
filters?: TemplateFilters;
|
|
40
|
+
audit?: TemplateAudit;
|
|
41
|
+
layout?: TemplateLayoutOverrides;
|
|
42
|
+
}
|
|
43
|
+
declare function templateActionsToPageHeaderActions(actions: TemplateAction[]): PageHeaderAction[];
|
|
44
|
+
|
|
45
|
+
interface TemplateFrameProps<TData = unknown, TFilterState = unknown> {
|
|
46
|
+
title: string;
|
|
47
|
+
subtitle?: string;
|
|
48
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
49
|
+
data?: TData;
|
|
50
|
+
actions?: TemplateAction[];
|
|
51
|
+
filters?: TemplateFilters<TFilterState>;
|
|
52
|
+
audit?: TemplateProps<TData>['audit'];
|
|
53
|
+
layout?: TemplateProps<TData>['layout'];
|
|
54
|
+
children: React.ReactNode;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* TemplateFrame: standard page scaffold following ADR-0003 conventions.
|
|
58
|
+
* Composes PageHeader + optional filters slot + content slot + optional audit summary.
|
|
59
|
+
*/
|
|
60
|
+
declare function TemplateFrame<TData = unknown, TFilterState = unknown>({ title, subtitle, breadcrumbs, data: _data, actions, filters, audit, layout, children, }: TemplateFrameProps<TData, TFilterState>): react_jsx_runtime.JSX.Element;
|
|
61
|
+
|
|
62
|
+
type KpiTrend = 'up' | 'down' | 'flat';
|
|
63
|
+
interface KpiCardProps {
|
|
64
|
+
label: string;
|
|
65
|
+
value: ReactNode;
|
|
66
|
+
delta?: ReactNode;
|
|
67
|
+
trend?: KpiTrend;
|
|
68
|
+
helpText?: string;
|
|
69
|
+
icon?: ReactNode;
|
|
70
|
+
onClick?: () => void;
|
|
71
|
+
}
|
|
72
|
+
declare function KpiCard({ label, value, delta, trend, helpText, icon, onClick, }: KpiCardProps): react_jsx_runtime.JSX.Element;
|
|
73
|
+
|
|
74
|
+
interface SectionCardProps {
|
|
75
|
+
title?: string;
|
|
76
|
+
subtitle?: string;
|
|
77
|
+
extra?: ReactNode;
|
|
78
|
+
children: ReactNode;
|
|
79
|
+
noPadding?: boolean;
|
|
80
|
+
}
|
|
81
|
+
declare function SectionCard({ title, subtitle, extra, children, noPadding, }: SectionCardProps): react_jsx_runtime.JSX.Element;
|
|
82
|
+
|
|
83
|
+
interface BulkAction {
|
|
84
|
+
key: string;
|
|
85
|
+
label: string;
|
|
86
|
+
kind?: 'primary' | 'secondary' | 'danger' | 'link';
|
|
87
|
+
onAction: (selectedRowKeys: Key[]) => void;
|
|
88
|
+
disabled?: boolean;
|
|
89
|
+
}
|
|
90
|
+
interface BulkActionsBarProps {
|
|
91
|
+
selectedCount: number;
|
|
92
|
+
selectedRowKeys: Key[];
|
|
93
|
+
actions: BulkAction[];
|
|
94
|
+
onClear?: () => void;
|
|
95
|
+
}
|
|
96
|
+
declare function BulkActionsBar({ selectedCount, selectedRowKeys, actions, onClear, }: BulkActionsBarProps): react_jsx_runtime.JSX.Element | null;
|
|
97
|
+
|
|
98
|
+
interface AuditEvent {
|
|
99
|
+
key: string;
|
|
100
|
+
at: string;
|
|
101
|
+
by?: string;
|
|
102
|
+
action: string;
|
|
103
|
+
description?: ReactNode;
|
|
104
|
+
sourceSystem?: string;
|
|
105
|
+
evidenceUrl?: string;
|
|
106
|
+
}
|
|
107
|
+
interface AuditTrailProps {
|
|
108
|
+
title?: string;
|
|
109
|
+
events: AuditEvent[];
|
|
110
|
+
loading?: boolean;
|
|
111
|
+
onLoadMore?: () => void;
|
|
112
|
+
}
|
|
113
|
+
declare function AuditTrail({ title, events, loading, onLoadMore, }: AuditTrailProps): react_jsx_runtime.JSX.Element;
|
|
114
|
+
|
|
115
|
+
interface DashboardKpi {
|
|
116
|
+
key: string;
|
|
117
|
+
label: string;
|
|
118
|
+
value: ReactNode;
|
|
119
|
+
delta?: ReactNode;
|
|
120
|
+
trend?: KpiTrend;
|
|
121
|
+
helpText?: string;
|
|
122
|
+
icon?: ReactNode;
|
|
123
|
+
onClick?: () => void;
|
|
124
|
+
}
|
|
125
|
+
interface DashboardPanel {
|
|
126
|
+
key: string;
|
|
127
|
+
title: string;
|
|
128
|
+
subtitle?: string;
|
|
129
|
+
extra?: ReactNode;
|
|
130
|
+
content: ReactNode;
|
|
131
|
+
span?: number;
|
|
132
|
+
}
|
|
133
|
+
interface DashboardData {
|
|
134
|
+
kpis?: DashboardKpi[];
|
|
135
|
+
panels?: DashboardPanel[];
|
|
136
|
+
}
|
|
137
|
+
interface DashboardTemplateProps<TFilterState = unknown> {
|
|
138
|
+
title: string;
|
|
139
|
+
subtitle?: string;
|
|
140
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
141
|
+
data?: DashboardData;
|
|
142
|
+
actions?: TemplateAction[];
|
|
143
|
+
filters?: TemplateFilters<TFilterState>;
|
|
144
|
+
audit?: TemplateProps<DashboardData>['audit'];
|
|
145
|
+
layout?: TemplateProps<DashboardData>['layout'];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
declare function DashboardTemplate<TFilterState = unknown>({ title, subtitle, breadcrumbs, data, actions, filters, audit, layout, }: DashboardTemplateProps<TFilterState>): react_jsx_runtime.JSX.Element;
|
|
149
|
+
|
|
150
|
+
interface ListData<TItem> {
|
|
151
|
+
items: TItem[];
|
|
152
|
+
loading?: boolean;
|
|
153
|
+
total?: number;
|
|
154
|
+
}
|
|
155
|
+
interface ListExportSpec {
|
|
156
|
+
key: string;
|
|
157
|
+
label: string;
|
|
158
|
+
onExport: () => void;
|
|
159
|
+
disabled?: boolean;
|
|
160
|
+
icon?: ReactNode;
|
|
161
|
+
}
|
|
162
|
+
interface ListBulkAction {
|
|
163
|
+
key: string;
|
|
164
|
+
label: string;
|
|
165
|
+
kind?: 'primary' | 'secondary' | 'danger' | 'link';
|
|
166
|
+
onAction: (selectedRowKeys: Key[]) => void;
|
|
167
|
+
disabled?: boolean;
|
|
168
|
+
}
|
|
169
|
+
interface ListSelection {
|
|
170
|
+
enabled: boolean;
|
|
171
|
+
bulkActions?: ListBulkAction[];
|
|
172
|
+
selectedRowKeys?: Key[];
|
|
173
|
+
onSelectionChange?: (next: Key[]) => void;
|
|
174
|
+
getAriaLabel?: (record: unknown, index?: number) => string;
|
|
175
|
+
}
|
|
176
|
+
interface ListTemplateProps<TItem, TFilterState = unknown> {
|
|
177
|
+
title: string;
|
|
178
|
+
subtitle?: string;
|
|
179
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
180
|
+
data?: ListData<TItem>;
|
|
181
|
+
actions?: TemplateAction[];
|
|
182
|
+
filters?: TemplateFilters<TFilterState>;
|
|
183
|
+
audit?: TemplateProps<ListData<TItem>>['audit'];
|
|
184
|
+
layout?: TemplateProps<ListData<TItem>>['layout'];
|
|
185
|
+
table: Omit<TableProps<TItem>, 'dataSource' | 'loading'> & {
|
|
186
|
+
rowKey: TableProps<TItem>['rowKey'];
|
|
187
|
+
};
|
|
188
|
+
selection?: ListSelection;
|
|
189
|
+
exports?: ListExportSpec[];
|
|
190
|
+
tools?: ReactNode;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
declare function ListTemplate<TItem extends object, TFilterState = unknown>({ title, subtitle, breadcrumbs, data, actions, filters, audit, layout, table, selection, exports, tools, }: ListTemplateProps<TItem, TFilterState>): react_jsx_runtime.JSX.Element;
|
|
194
|
+
|
|
195
|
+
interface DetailSection {
|
|
196
|
+
key: string;
|
|
197
|
+
title: string;
|
|
198
|
+
extra?: ReactNode;
|
|
199
|
+
content: ReactNode;
|
|
200
|
+
}
|
|
201
|
+
interface DetailSummary {
|
|
202
|
+
items: DescriptionsProps['items'];
|
|
203
|
+
columns?: number;
|
|
204
|
+
}
|
|
205
|
+
interface DetailAuditTrail {
|
|
206
|
+
title?: string;
|
|
207
|
+
events: AuditEvent[];
|
|
208
|
+
loading?: boolean;
|
|
209
|
+
onLoadMore?: () => void;
|
|
210
|
+
}
|
|
211
|
+
interface DetailData {
|
|
212
|
+
summary?: DetailSummary;
|
|
213
|
+
sections?: DetailSection[];
|
|
214
|
+
auditTrail?: DetailAuditTrail;
|
|
215
|
+
}
|
|
216
|
+
interface DetailTemplateProps extends TemplateProps<DetailData> {
|
|
217
|
+
title: string;
|
|
218
|
+
subtitle?: string;
|
|
219
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
220
|
+
actions?: TemplateAction[];
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
declare function DetailTemplate({ title, subtitle, breadcrumbs, data, actions, audit, layout, }: DetailTemplateProps): react_jsx_runtime.JSX.Element;
|
|
224
|
+
|
|
225
|
+
interface AuthShellProps {
|
|
226
|
+
brand?: ReactNode;
|
|
227
|
+
title?: string;
|
|
228
|
+
subtitle?: string;
|
|
229
|
+
footer?: ReactNode;
|
|
230
|
+
children: ReactNode;
|
|
231
|
+
maxWidth?: number;
|
|
232
|
+
}
|
|
233
|
+
declare function AuthShell({ brand, title, subtitle, footer, children, maxWidth, }: AuthShellProps): react_jsx_runtime.JSX.Element;
|
|
234
|
+
|
|
235
|
+
type ErrorStatus = 401 | 403 | 404 | 500;
|
|
236
|
+
interface ErrorPageTemplateProps {
|
|
237
|
+
status: ErrorStatus;
|
|
238
|
+
title?: string;
|
|
239
|
+
message?: ReactNode;
|
|
240
|
+
actions?: TemplateAction[];
|
|
241
|
+
extra?: ReactNode;
|
|
242
|
+
}
|
|
243
|
+
declare function ErrorPageTemplate({ status, title, message, actions, extra, }: ErrorPageTemplateProps): react_jsx_runtime.JSX.Element;
|
|
244
|
+
|
|
245
|
+
interface WizardStep {
|
|
246
|
+
key: string;
|
|
247
|
+
title: string;
|
|
248
|
+
description?: string;
|
|
249
|
+
content: ReactNode;
|
|
250
|
+
}
|
|
251
|
+
interface WizardData {
|
|
252
|
+
steps: WizardStep[];
|
|
253
|
+
currentStep?: number;
|
|
254
|
+
}
|
|
255
|
+
interface WizardTemplateProps extends TemplateProps<WizardData> {
|
|
256
|
+
title: string;
|
|
257
|
+
subtitle?: string;
|
|
258
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
259
|
+
actions?: TemplateAction[];
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
declare function WizardTemplate({ title, subtitle, breadcrumbs, actions, data, filters, audit, layout, }: WizardTemplateProps): react_jsx_runtime.JSX.Element;
|
|
263
|
+
|
|
264
|
+
interface SettingsSection {
|
|
265
|
+
key: string;
|
|
266
|
+
title: string;
|
|
267
|
+
subtitle?: string;
|
|
268
|
+
content: ReactNode;
|
|
269
|
+
}
|
|
270
|
+
interface SettingsData {
|
|
271
|
+
sections: SettingsSection[];
|
|
272
|
+
}
|
|
273
|
+
interface SettingsTemplateProps extends TemplateProps<SettingsData> {
|
|
274
|
+
title: string;
|
|
275
|
+
subtitle?: string;
|
|
276
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
277
|
+
actions?: TemplateAction[];
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
declare function SettingsTemplate({ title, subtitle, breadcrumbs, actions, data, filters, audit, layout, }: SettingsTemplateProps): react_jsx_runtime.JSX.Element;
|
|
281
|
+
|
|
282
|
+
export { type AuditEvent, AuditTrail, type AuditTrailProps, AuthShell, type AuthShellProps, type BulkAction, BulkActionsBar, type BulkActionsBarProps, type DashboardData, type DashboardKpi, type DashboardPanel, DashboardTemplate, type DashboardTemplateProps, type DetailAuditTrail, type DetailData, type DetailSection, type DetailSummary, DetailTemplate, type DetailTemplateProps, ErrorPageTemplate, type ErrorPageTemplateProps, type ErrorStatus, KpiCard, type KpiCardProps, type KpiTrend, type ListBulkAction, type ListData, type ListExportSpec, type ListSelection, ListTemplate, type ListTemplateProps, SectionCard, type SectionCardProps, type SettingsData, type SettingsSection, SettingsTemplate, type SettingsTemplateProps, type TemplateAction, type TemplateAudit, type TemplateFilters, TemplateFrame, type TemplateFrameProps, type TemplateLayoutOverrides, type TemplateProps, type WizardData, type WizardStep, WizardTemplate, type WizardTemplateProps, templateActionsToPageHeaderActions };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type { TemplateAction, TemplateAudit, TemplateFilters, TemplateLayoutOverrides, TemplateProps, BreadcrumbItem, } from './types';
|
|
2
|
+
export { templateActionsToPageHeaderActions } from './types';
|
|
3
|
+
export { TemplateFrame } from './template-frame';
|
|
4
|
+
export type { TemplateFrameProps } from './template-frame';
|
|
5
|
+
export { KpiCard } from './components/kpi-card';
|
|
6
|
+
export type { KpiCardProps, KpiTrend } from './components/kpi-card';
|
|
7
|
+
export { SectionCard } from './components/section-card';
|
|
8
|
+
export type { SectionCardProps } from './components/section-card';
|
|
9
|
+
export { BulkActionsBar } from './components/bulk-actions';
|
|
10
|
+
export type { BulkAction, BulkActionsBarProps } from './components/bulk-actions';
|
|
11
|
+
export { AuditTrail } from './components/audit-trail';
|
|
12
|
+
export type { AuditEvent, AuditTrailProps } from './components/audit-trail';
|
|
13
|
+
export { DashboardTemplate } from './templates/dashboard';
|
|
14
|
+
export type { DashboardData, DashboardKpi, DashboardPanel, DashboardTemplateProps, } from './templates/dashboard';
|
|
15
|
+
export { ListTemplate } from './templates/list';
|
|
16
|
+
export type { ListData, ListExportSpec, ListBulkAction, ListSelection, ListTemplateProps, } from './templates/list';
|
|
17
|
+
export { DetailTemplate } from './templates/detail';
|
|
18
|
+
export type { DetailData, DetailSection, DetailSummary, DetailAuditTrail, DetailTemplateProps, } from './templates/detail';
|
|
19
|
+
export { ErrorPageTemplate } from './templates/error';
|
|
20
|
+
export type { ErrorStatus, ErrorPageTemplateProps } from './templates/error';
|
|
21
|
+
export { WizardTemplate } from './templates/wizard';
|
|
22
|
+
export type { WizardData, WizardStep, WizardTemplateProps } from './templates/wizard';
|
|
23
|
+
export { SettingsTemplate } from './templates/settings';
|
|
24
|
+
export type { SettingsData, SettingsSection, SettingsTemplateProps } from './templates/settings';
|
|
25
|
+
export { AuthShell } from './templates/auth-shell';
|
|
26
|
+
export type { AuthShellProps } from './templates/auth-shell';
|
|
27
|
+
export { ProfileTemplate } from './templates/profile';
|
|
28
|
+
export type { ProfileData, ProfileStat, ProfileTab, ProfileTemplateProps, } from './templates/profile';
|
|
29
|
+
export { BillingTemplate } from './templates/billing';
|
|
30
|
+
export type { BillingData, BillingPlan, PaymentMethod, Invoice, BillingTemplateProps, } from './templates/billing';
|
|
31
|
+
export { SecurityTemplate } from './templates/security';
|
|
32
|
+
export type { SecurityData, SecuritySession, SecurityDevice, SecurityLog, SecurityTemplateProps, } from './templates/security';
|
|
33
|
+
export { MembersTemplate } from './templates/members';
|
|
34
|
+
export type { MembersData, TeamMember, TeamRole, MembersTemplateProps } from './templates/members';
|
|
35
|
+
export { NotificationsTemplate } from './templates/notifications';
|
|
36
|
+
export type { NotificationsData, NotificationChannel, NotificationGroup, NotificationsTemplateProps, } from './templates/notifications';
|
|
37
|
+
export { ActivityTemplate } from './templates/activity';
|
|
38
|
+
export type { ActivityData, ActivityEvent, ActivityTemplateProps } from './templates/activity';
|
|
39
|
+
export { InviteTemplate } from './templates/invite';
|
|
40
|
+
export type { InviteData, InviteReward, InviteTemplateProps } from './templates/invite';
|
|
41
|
+
export { ProjectsTemplate } from './templates/projects';
|
|
42
|
+
export type { ProjectsData, Project, ProjectMember, ProjectsTemplateProps, } from './templates/projects';
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|