@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.
Files changed (51) hide show
  1. package/dist/components/audit-trail.d.ts +19 -0
  2. package/dist/components/audit-trail.d.ts.map +1 -0
  3. package/dist/components/bulk-actions.d.ts +16 -0
  4. package/dist/components/bulk-actions.d.ts.map +1 -0
  5. package/dist/components/kpi-card.d.ts +15 -0
  6. package/dist/components/kpi-card.d.ts.map +1 -0
  7. package/dist/components/page-header.d.ts +9 -0
  8. package/dist/components/page-header.d.ts.map +1 -0
  9. package/dist/components/section-card.d.ts +10 -0
  10. package/dist/components/section-card.d.ts.map +1 -0
  11. package/dist/index.cjs +757 -0
  12. package/dist/index.d.cts +282 -0
  13. package/dist/index.d.ts +43 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +1433 -0
  16. package/dist/index.mjs +1386 -0
  17. package/dist/template-frame.d.ts +19 -0
  18. package/dist/template-frame.d.ts.map +1 -0
  19. package/dist/templates/activity.d.ts +24 -0
  20. package/dist/templates/activity.d.ts.map +1 -0
  21. package/dist/templates/auth-shell.d.ts +11 -0
  22. package/dist/templates/auth-shell.d.ts.map +1 -0
  23. package/dist/templates/billing.d.ts +35 -0
  24. package/dist/templates/billing.d.ts.map +1 -0
  25. package/dist/templates/dashboard.d.ts +37 -0
  26. package/dist/templates/dashboard.d.ts.map +1 -0
  27. package/dist/templates/detail.d.ts +33 -0
  28. package/dist/templates/detail.d.ts.map +1 -0
  29. package/dist/templates/error.d.ts +12 -0
  30. package/dist/templates/error.d.ts.map +1 -0
  31. package/dist/templates/invite.d.ts +22 -0
  32. package/dist/templates/invite.d.ts.map +1 -0
  33. package/dist/templates/list.d.ts +48 -0
  34. package/dist/templates/list.d.ts.map +1 -0
  35. package/dist/templates/members.d.ts +28 -0
  36. package/dist/templates/members.d.ts.map +1 -0
  37. package/dist/templates/notifications.d.ts +24 -0
  38. package/dist/templates/notifications.d.ts.map +1 -0
  39. package/dist/templates/profile.d.ts +31 -0
  40. package/dist/templates/profile.d.ts.map +1 -0
  41. package/dist/templates/projects.d.ts +27 -0
  42. package/dist/templates/projects.d.ts.map +1 -0
  43. package/dist/templates/security.d.ts +34 -0
  44. package/dist/templates/security.d.ts.map +1 -0
  45. package/dist/templates/settings.d.ts +19 -0
  46. package/dist/templates/settings.d.ts.map +1 -0
  47. package/dist/templates/wizard.d.ts +22 -0
  48. package/dist/templates/wizard.d.ts.map +1 -0
  49. package/dist/types.d.ts +52 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/package.json +44 -0
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateFilters, TemplateProps } from './types';
3
+ export interface TemplateFrameProps<TData = unknown, TFilterState = unknown> {
4
+ title: string;
5
+ subtitle?: string;
6
+ breadcrumbs?: BreadcrumbItem[];
7
+ data?: TData;
8
+ actions?: TemplateAction[];
9
+ filters?: TemplateFilters<TFilterState>;
10
+ audit?: TemplateProps<TData>['audit'];
11
+ layout?: TemplateProps<TData>['layout'];
12
+ children: React.ReactNode;
13
+ }
14
+ /**
15
+ * TemplateFrame: standard page scaffold following ADR-0003 conventions.
16
+ * Composes PageHeader + optional filters slot + content slot + optional audit summary.
17
+ */
18
+ export declare function TemplateFrame<TData = unknown, TFilterState = unknown>({ title, subtitle, breadcrumbs, data: _data, actions, filters, audit, layout, children, }: TemplateFrameProps<TData, TFilterState>): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=template-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-frame.d.ts","sourceRoot":"","sources":["../src/template-frame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK9F,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,OAAO,EAAE,YAAY,GAAG,OAAO;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAG,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,EACrE,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EAAE,KAAK,EACX,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,2CA0DzC"}
@@ -0,0 +1,24 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
3
+ export interface ActivityEvent {
4
+ id: string;
5
+ timestamp: string;
6
+ actor: {
7
+ name: string;
8
+ avatar?: string;
9
+ };
10
+ action: string;
11
+ target?: string;
12
+ type?: 'info' | 'success' | 'warning' | 'error';
13
+ detail?: ReactNode;
14
+ }
15
+ export interface ActivityData {
16
+ events?: ActivityEvent[];
17
+ }
18
+ export interface ActivityTemplateProps extends TemplateProps<ActivityData> {
19
+ title?: string;
20
+ breadcrumbs?: BreadcrumbItem[];
21
+ actions?: TemplateAction[];
22
+ }
23
+ export declare function ActivityTemplate({ title, breadcrumbs, actions, data, audit, layout, }: ActivityTemplateProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/templates/activity.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AASD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAkB,EAClB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,2CAuCvB"}
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface AuthShellProps {
3
+ brand?: ReactNode;
4
+ title?: string;
5
+ subtitle?: string;
6
+ footer?: ReactNode;
7
+ children: ReactNode;
8
+ maxWidth?: number;
9
+ }
10
+ export declare function AuthShell({ brand, title, subtitle, footer, children, maxWidth, }: AuthShellProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=auth-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-shell.d.ts","sourceRoot":"","sources":["../../src/templates/auth-shell.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAc,GACf,EAAE,cAAc,2CAuDhB"}
@@ -0,0 +1,35 @@
1
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
2
+ export interface BillingPlan {
3
+ name: string;
4
+ price: string;
5
+ interval?: string;
6
+ features?: string[];
7
+ isCurrent?: boolean;
8
+ }
9
+ export interface PaymentMethod {
10
+ type: string;
11
+ last4: string;
12
+ expiry?: string;
13
+ isDefault?: boolean;
14
+ }
15
+ export interface Invoice {
16
+ id: string;
17
+ date: string;
18
+ amount: string;
19
+ status: 'paid' | 'pending' | 'overdue';
20
+ }
21
+ export interface BillingData {
22
+ currentPlan?: BillingPlan;
23
+ plans?: BillingPlan[];
24
+ paymentMethods?: PaymentMethod[];
25
+ invoices?: Invoice[];
26
+ }
27
+ export interface BillingTemplateProps extends TemplateProps<BillingData> {
28
+ title?: string;
29
+ breadcrumbs?: BreadcrumbItem[];
30
+ actions?: TemplateAction[];
31
+ onChangePlan?: (plan: BillingPlan) => void;
32
+ onAddPaymentMethod?: () => void;
33
+ }
34
+ export declare function BillingTemplate({ title, breadcrumbs, actions, data, audit, layout, onChangePlan: _onChangePlan, onAddPaymentMethod: _onAddPaymentMethod, }: BillingTemplateProps): import("react/jsx-runtime").JSX.Element;
35
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/templates/billing.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa,CAAC,WAAW,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAiB,EACjB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,YAAY,EAAE,aAAa,EAC3B,kBAAkB,EAAE,mBAAmB,GACxC,EAAE,oBAAoB,2CA6FtB"}
@@ -0,0 +1,37 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type KpiTrend } from '../components/kpi-card';
3
+ import type { BreadcrumbItem, TemplateAction, TemplateFilters, TemplateProps } from '../types';
4
+ export interface DashboardKpi {
5
+ key: string;
6
+ label: string;
7
+ value: ReactNode;
8
+ delta?: ReactNode;
9
+ trend?: KpiTrend;
10
+ helpText?: string;
11
+ icon?: ReactNode;
12
+ onClick?: () => void;
13
+ }
14
+ export interface DashboardPanel {
15
+ key: string;
16
+ title: string;
17
+ subtitle?: string;
18
+ extra?: ReactNode;
19
+ content: ReactNode;
20
+ span?: number;
21
+ }
22
+ export interface DashboardData {
23
+ kpis?: DashboardKpi[];
24
+ panels?: DashboardPanel[];
25
+ }
26
+ export interface DashboardTemplateProps<TFilterState = unknown> {
27
+ title: string;
28
+ subtitle?: string;
29
+ breadcrumbs?: BreadcrumbItem[];
30
+ data?: DashboardData;
31
+ actions?: TemplateAction[];
32
+ filters?: TemplateFilters<TFilterState>;
33
+ audit?: TemplateProps<DashboardData>['audit'];
34
+ layout?: TemplateProps<DashboardData>['layout'];
35
+ }
36
+ export declare function DashboardTemplate<TFilterState = unknown>({ title, subtitle, breadcrumbs, data, actions, filters, audit, layout, }: DashboardTemplateProps<TFilterState>): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/templates/dashboard.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE/F,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,YAAY,GAAG,OAAO;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC;CACjD;AAED,wBAAgB,iBAAiB,CAAC,YAAY,GAAG,OAAO,EAAE,EACxD,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,sBAAsB,CAAC,YAAY,CAAC,2CAgDtC"}
@@ -0,0 +1,33 @@
1
+ import type { DescriptionsProps } from 'antd';
2
+ import { type ReactNode } from 'react';
3
+ import { type AuditEvent } from '../components/audit-trail';
4
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
5
+ export interface DetailSection {
6
+ key: string;
7
+ title: string;
8
+ extra?: ReactNode;
9
+ content: ReactNode;
10
+ }
11
+ export interface DetailSummary {
12
+ items: DescriptionsProps['items'];
13
+ columns?: number;
14
+ }
15
+ export interface DetailAuditTrail {
16
+ title?: string;
17
+ events: AuditEvent[];
18
+ loading?: boolean;
19
+ onLoadMore?: () => void;
20
+ }
21
+ export interface DetailData {
22
+ summary?: DetailSummary;
23
+ sections?: DetailSection[];
24
+ auditTrail?: DetailAuditTrail;
25
+ }
26
+ export interface DetailTemplateProps extends TemplateProps<DetailData> {
27
+ title: string;
28
+ subtitle?: string;
29
+ breadcrumbs?: BreadcrumbItem[];
30
+ actions?: TemplateAction[];
31
+ }
32
+ export declare function DetailTemplate({ title, subtitle, breadcrumbs, data, actions, audit, layout, }: DetailTemplateProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=detail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../src/templates/detail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,UAAU,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,mBAAmB,2CA0CrB"}
@@ -0,0 +1,12 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { TemplateAction } from '../types';
3
+ export type ErrorStatus = 401 | 403 | 404 | 500;
4
+ export interface ErrorPageTemplateProps {
5
+ status: ErrorStatus;
6
+ title?: string;
7
+ message?: ReactNode;
8
+ actions?: TemplateAction[];
9
+ extra?: ReactNode;
10
+ }
11
+ export declare function ErrorPageTemplate({ status, title, message, actions, extra, }: ErrorPageTemplateProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/templates/error.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAuBhD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,GACN,EAAE,sBAAsB,2CAmDxB"}
@@ -0,0 +1,22 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
3
+ export interface InviteReward {
4
+ label: string;
5
+ description?: string;
6
+ icon?: ReactNode;
7
+ }
8
+ export interface InviteData {
9
+ referralLink?: string;
10
+ referralCode?: string;
11
+ totalInvites?: number;
12
+ acceptedInvites?: number;
13
+ rewards?: InviteReward[];
14
+ }
15
+ export interface InviteTemplateProps extends TemplateProps<InviteData> {
16
+ title?: string;
17
+ breadcrumbs?: BreadcrumbItem[];
18
+ actions?: TemplateAction[];
19
+ onCopyLink?: () => void;
20
+ }
21
+ export declare function InviteTemplate({ title, breadcrumbs, actions, data, audit, layout, onCopyLink, }: InviteTemplateProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=invite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/templates/invite.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,UAAU,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAyB,EACzB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,GACX,EAAE,mBAAmB,2CAwErB"}
@@ -0,0 +1,48 @@
1
+ import type { TableProps } from 'antd';
2
+ import { type ReactNode, type Key } from 'react';
3
+ import type { BreadcrumbItem, TemplateAction, TemplateFilters, TemplateProps } from '../types';
4
+ export interface ListData<TItem> {
5
+ items: TItem[];
6
+ loading?: boolean;
7
+ total?: number;
8
+ }
9
+ export interface ListExportSpec {
10
+ key: string;
11
+ label: string;
12
+ onExport: () => void;
13
+ disabled?: boolean;
14
+ icon?: ReactNode;
15
+ }
16
+ export interface ListBulkAction {
17
+ key: string;
18
+ label: string;
19
+ kind?: 'primary' | 'secondary' | 'danger' | 'link';
20
+ onAction: (selectedRowKeys: Key[]) => void;
21
+ disabled?: boolean;
22
+ }
23
+ export interface ListSelection {
24
+ enabled: boolean;
25
+ bulkActions?: ListBulkAction[];
26
+ selectedRowKeys?: Key[];
27
+ onSelectionChange?: (next: Key[]) => void;
28
+ /** Custom aria-label for row checkboxes. Falls back to name/title/key. */
29
+ getAriaLabel?: (record: unknown, index?: number) => string;
30
+ }
31
+ export interface ListTemplateProps<TItem, TFilterState = unknown> {
32
+ title: string;
33
+ subtitle?: string;
34
+ breadcrumbs?: BreadcrumbItem[];
35
+ data?: ListData<TItem>;
36
+ actions?: TemplateAction[];
37
+ filters?: TemplateFilters<TFilterState>;
38
+ audit?: TemplateProps<ListData<TItem>>['audit'];
39
+ layout?: TemplateProps<ListData<TItem>>['layout'];
40
+ table: Omit<TableProps<TItem>, 'dataSource' | 'loading'> & {
41
+ rowKey: TableProps<TItem>['rowKey'];
42
+ };
43
+ selection?: ListSelection;
44
+ exports?: ListExportSpec[];
45
+ tools?: ReactNode;
46
+ }
47
+ export declare function ListTemplate<TItem extends object, TFilterState = unknown>({ title, subtitle, breadcrumbs, data, actions, filters, audit, layout, table, selection, exports: exportSpecs, tools, }: ListTemplateProps<TItem, TFilterState>): import("react/jsx-runtime").JSX.Element;
48
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/templates/list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAc,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE/F,MAAM,WAAW,QAAQ,CAAC,KAAK;IAC7B,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,QAAQ,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG;QACzD,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;KACrC,CAAC;IACF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,EACzE,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EAAE,WAAW,EACpB,KAAK,GACN,EAAE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,2CAyFxC"}
@@ -0,0 +1,28 @@
1
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
2
+ export interface TeamMember {
3
+ id: string;
4
+ name: string;
5
+ email: string;
6
+ avatar?: string;
7
+ role: string;
8
+ status?: 'active' | 'invited' | 'inactive';
9
+ joinedAt?: string;
10
+ }
11
+ export interface TeamRole {
12
+ name: string;
13
+ description?: string;
14
+ memberCount: number;
15
+ }
16
+ export interface MembersData {
17
+ members?: TeamMember[];
18
+ roles?: TeamRole[];
19
+ totalMembers?: number;
20
+ }
21
+ export interface MembersTemplateProps extends TemplateProps<MembersData> {
22
+ title?: string;
23
+ breadcrumbs?: BreadcrumbItem[];
24
+ actions?: TemplateAction[];
25
+ onInvite?: () => void;
26
+ }
27
+ export declare function MembersTemplate({ title, breadcrumbs, actions, data, audit, layout, }: MembersTemplateProps): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../src/templates/members.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa,CAAC,WAAW,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAsB,EACtB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,2CAwFtB"}
@@ -0,0 +1,24 @@
1
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
2
+ export interface NotificationChannel {
3
+ key: string;
4
+ label: string;
5
+ description?: string;
6
+ email?: boolean;
7
+ push?: boolean;
8
+ sms?: boolean;
9
+ }
10
+ export interface NotificationGroup {
11
+ title: string;
12
+ channels: NotificationChannel[];
13
+ }
14
+ export interface NotificationsData {
15
+ groups?: NotificationGroup[];
16
+ }
17
+ export interface NotificationsTemplateProps extends TemplateProps<NotificationsData> {
18
+ title?: string;
19
+ breadcrumbs?: BreadcrumbItem[];
20
+ actions?: TemplateAction[];
21
+ onToggle?: (channelKey: string, method: 'email' | 'push' | 'sms', value: boolean) => void;
22
+ }
23
+ export declare function NotificationsTemplate({ title, breadcrumbs, actions, data, audit, layout, onToggle, }: NotificationsTemplateProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/templates/notifications.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA2B,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3F;AAED,wBAAgB,qBAAqB,CAAC,EACpC,KAAuB,EACvB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE,0BAA0B,2CA4E5B"}
@@ -0,0 +1,31 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
3
+ export interface ProfileStat {
4
+ label: string;
5
+ value: string | number;
6
+ }
7
+ export interface ProfileTab {
8
+ key: string;
9
+ label: string;
10
+ content: ReactNode;
11
+ }
12
+ export interface ProfileData {
13
+ name: string;
14
+ avatar?: string;
15
+ bio?: string;
16
+ role?: string;
17
+ tags?: string[];
18
+ stats?: ProfileStat[];
19
+ tabs?: ProfileTab[];
20
+ details?: {
21
+ label: string;
22
+ value: ReactNode;
23
+ }[];
24
+ }
25
+ export interface ProfileTemplateProps extends TemplateProps<ProfileData> {
26
+ title?: string;
27
+ breadcrumbs?: BreadcrumbItem[];
28
+ actions?: TemplateAction[];
29
+ }
30
+ export declare function ProfileTemplate({ title, breadcrumbs, actions, data, filters: _filters, audit, layout, }: ProfileTemplateProps): import("react/jsx-runtime").JSX.Element;
31
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/templates/profile.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa,CAAC,WAAW,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,OAAO,EACP,IAAI,EACJ,OAAO,EAAE,QAAQ,EACjB,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,2CAsFtB"}
@@ -0,0 +1,27 @@
1
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
2
+ export interface ProjectMember {
3
+ name: string;
4
+ avatar?: string;
5
+ }
6
+ export interface Project {
7
+ id: string;
8
+ title: string;
9
+ description?: string;
10
+ status?: 'active' | 'completed' | 'on-hold' | 'archived';
11
+ progress?: number;
12
+ members?: ProjectMember[];
13
+ dueDate?: string;
14
+ tags?: string[];
15
+ }
16
+ export interface ProjectsData {
17
+ projects?: Project[];
18
+ columns?: 2 | 3;
19
+ }
20
+ export interface ProjectsTemplateProps extends TemplateProps<ProjectsData> {
21
+ title?: string;
22
+ breadcrumbs?: BreadcrumbItem[];
23
+ actions?: TemplateAction[];
24
+ onProjectClick?: (project: Project) => void;
25
+ }
26
+ export declare function ProjectsTemplate({ title, breadcrumbs, actions, data, audit, layout, onProjectClick, }: ProjectsTemplateProps): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/templates/projects.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AASD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAkB,EAClB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,cAAc,GACf,EAAE,qBAAqB,2CAuFvB"}
@@ -0,0 +1,34 @@
1
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
2
+ export interface SecuritySession {
3
+ id: string;
4
+ device: string;
5
+ location?: string;
6
+ lastActive: string;
7
+ isCurrent?: boolean;
8
+ }
9
+ export interface SecurityDevice {
10
+ name: string;
11
+ type: string;
12
+ lastSeen: string;
13
+ trusted?: boolean;
14
+ }
15
+ export interface SecurityLog {
16
+ timestamp: string;
17
+ action: string;
18
+ ip?: string;
19
+ status: 'success' | 'warning' | 'failure';
20
+ }
21
+ export interface SecurityData {
22
+ twoFactorEnabled?: boolean;
23
+ sessions?: SecuritySession[];
24
+ devices?: SecurityDevice[];
25
+ securityLog?: SecurityLog[];
26
+ passwordLastChanged?: string;
27
+ }
28
+ export interface SecurityTemplateProps extends TemplateProps<SecurityData> {
29
+ title?: string;
30
+ breadcrumbs?: BreadcrumbItem[];
31
+ actions?: TemplateAction[];
32
+ }
33
+ export declare function SecurityTemplate({ title, breadcrumbs, actions, data, audit, layout, }: SecurityTemplateProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/templates/security.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAkB,EAClB,WAAW,EACX,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,2CA2FvB"}
@@ -0,0 +1,19 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
3
+ export interface SettingsSection {
4
+ key: string;
5
+ title: string;
6
+ subtitle?: string;
7
+ content: ReactNode;
8
+ }
9
+ export interface SettingsData {
10
+ sections: SettingsSection[];
11
+ }
12
+ export interface SettingsTemplateProps extends TemplateProps<SettingsData> {
13
+ title: string;
14
+ subtitle?: string;
15
+ breadcrumbs?: BreadcrumbItem[];
16
+ actions?: TemplateAction[];
17
+ }
18
+ export declare function SettingsTemplate({ title, subtitle, breadcrumbs, actions, data, filters, audit, layout, }: SettingsTemplateProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/templates/settings.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,2CAuBvB"}
@@ -0,0 +1,22 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { BreadcrumbItem, TemplateAction, TemplateProps } from '../types';
3
+ export interface WizardStep {
4
+ key: string;
5
+ title: string;
6
+ description?: string;
7
+ content: ReactNode;
8
+ }
9
+ export interface WizardData {
10
+ steps: WizardStep[];
11
+ currentStep?: number;
12
+ }
13
+ export interface WizardTemplateProps extends TemplateProps<WizardData> {
14
+ title: string;
15
+ subtitle?: string;
16
+ breadcrumbs?: BreadcrumbItem[];
17
+ actions?: TemplateAction[];
18
+ /** Called when the user clicks a step in the step indicator. */
19
+ onStepChange?: (step: number) => void;
20
+ }
21
+ export declare function WizardTemplate({ title, subtitle, breadcrumbs, actions, data, filters, audit, layout, onStepChange, }: WizardTemplateProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/templates/wizard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,UAAU,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,GACb,EAAE,mBAAmB,2CAsCrB"}
@@ -0,0 +1,52 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Template API types following ADR-0003 conventions.
4
+ * All templates should accept these standardized props for consistency.
5
+ */
6
+ export interface BreadcrumbItem {
7
+ label: string;
8
+ href?: string;
9
+ }
10
+ export interface PageHeaderAction {
11
+ key: string;
12
+ label: string;
13
+ onClick?: () => void;
14
+ kind?: 'primary' | 'secondary' | 'danger' | 'link';
15
+ disabled?: boolean;
16
+ ariaLabel?: string;
17
+ icon?: ReactNode;
18
+ }
19
+ export interface TemplateAction {
20
+ key: string;
21
+ label: string;
22
+ onAction?: () => void;
23
+ kind?: 'primary' | 'secondary' | 'danger' | 'link';
24
+ disabled?: boolean;
25
+ ariaLabel?: string;
26
+ icon?: ReactNode;
27
+ }
28
+ export interface TemplateAudit {
29
+ summary?: string;
30
+ lastUpdatedAt?: string;
31
+ lastUpdatedBy?: string;
32
+ sourceSystem?: string;
33
+ evidenceUrl?: string;
34
+ }
35
+ export interface TemplateFilters<TState = unknown> {
36
+ state: TState;
37
+ onChange: (next: TState) => void;
38
+ content?: ReactNode;
39
+ }
40
+ export interface TemplateLayoutOverrides {
41
+ contentPadding?: number;
42
+ showBreadcrumbs?: boolean;
43
+ }
44
+ export interface TemplateProps<TData = unknown> {
45
+ data?: TData;
46
+ actions?: TemplateAction[];
47
+ filters?: TemplateFilters;
48
+ audit?: TemplateAudit;
49
+ layout?: TemplateLayoutOverrides;
50
+ }
51
+ export declare function templateActionsToPageHeaderActions(actions: TemplateAction[]): PageHeaderAction[];
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,OAAO;IAC5C,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,CAUhG"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@gtcx/templates",
3
+ "version": "0.1.0",
4
+ "description": "GTCX page templates — DashboardTemplate, ListTemplate, DetailTemplate, WizardTemplate, etc.",
5
+ "main": "dist/index.cjs",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.cjs"
13
+ }
14
+ },
15
+ "sideEffects": false,
16
+ "scripts": {
17
+ "build": "tsup && tsc --emitDeclarationOnly --declaration --outDir dist",
18
+ "dev": "tsup src/index.ts --format esm,cjs --dts --watch",
19
+ "lint": "eslint src/",
20
+ "typecheck": "tsc --noEmit",
21
+ "test": "vitest run"
22
+ },
23
+ "dependencies": {
24
+ "@gtcx/tokens": "workspace:*",
25
+ "@gtcx/utils": "workspace:*",
26
+ "@ant-design/icons": "^5.2.0",
27
+ "antd": "^5.12.0"
28
+ },
29
+ "peerDependencies": {
30
+ "react": "^18.0.0 || ^19.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/react": "^18.0.0",
34
+ "tsup": "^8.0.0",
35
+ "typescript": "^5.0.0"
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "README.md"
40
+ ],
41
+ "publishConfig": {
42
+ "access": "public"
43
+ }
44
+ }