@pattern-stack/frontend-patterns 0.2.0-alpha.4 → 0.2.0-alpha.6
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/atoms/components/data/DataTable/DataTable.d.ts +1 -1
- package/dist/atoms/components/data/DataTable/DataTable.d.ts.map +1 -1
- package/dist/atoms/components/data/DataTable/DataTable.types.d.ts +28 -0
- package/dist/atoms/components/data/DataTable/DataTable.types.d.ts.map +1 -1
- package/dist/atoms/components/data/index.d.ts +1 -0
- package/dist/atoms/components/data/index.d.ts.map +1 -1
- package/dist/atoms/composed/ConnectionStatus/ConnectionStatus.d.ts +16 -0
- package/dist/atoms/composed/ConnectionStatus/ConnectionStatus.d.ts.map +1 -0
- package/dist/atoms/composed/ConnectionStatus/index.d.ts +3 -0
- package/dist/atoms/composed/ConnectionStatus/index.d.ts.map +1 -0
- package/dist/atoms/hooks/index.d.ts +2 -0
- package/dist/atoms/hooks/index.d.ts.map +1 -1
- package/dist/atoms/hooks/useEntityDetail.d.ts +43 -0
- package/dist/atoms/hooks/useEntityDetail.d.ts.map +1 -0
- package/dist/atoms/hooks/useOnlineStatus.d.ts +16 -0
- package/dist/atoms/hooks/useOnlineStatus.d.ts.map +1 -0
- package/dist/atoms/primitives/table.d.ts.map +1 -1
- package/dist/atoms/services/api/client.d.ts +12 -2
- package/dist/atoms/services/api/client.d.ts.map +1 -1
- package/dist/atoms/services/auth-service.d.ts +15 -0
- package/dist/atoms/services/auth-service.d.ts.map +1 -1
- package/dist/atoms/services/index.d.ts +2 -2
- package/dist/atoms/services/index.d.ts.map +1 -1
- package/dist/atoms/types/auth.d.ts +44 -2
- package/dist/atoms/types/auth.d.ts.map +1 -1
- package/dist/atoms/types/ui-config.d.ts +11 -0
- package/dist/atoms/types/ui-config.d.ts.map +1 -1
- package/dist/atoms/utils/entity-card-mapping.d.ts +105 -0
- package/dist/atoms/utils/entity-card-mapping.d.ts.map +1 -0
- package/dist/atoms/utils/index.d.ts +1 -0
- package/dist/atoms/utils/index.d.ts.map +1 -1
- package/dist/features/auth/components/ProtectedRoute.d.ts +3 -1
- package/dist/features/auth/components/ProtectedRoute.d.ts.map +1 -1
- package/dist/features/auth/hooks/useAuth.d.ts.map +1 -1
- package/dist/features/auth/providers/NoAuthProvider.d.ts +17 -0
- package/dist/features/auth/providers/NoAuthProvider.d.ts.map +1 -0
- package/dist/features/auth/providers/index.d.ts +1 -0
- package/dist/features/auth/providers/index.d.ts.map +1 -1
- package/dist/frontend-patterns.css +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +857 -91
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +854 -88
- package/dist/index.js.map +1 -1
- package/dist/molecules/layout/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/molecules/layout/FieldGrid/FieldGrid.d.ts +61 -0
- package/dist/molecules/layout/FieldGrid/FieldGrid.d.ts.map +1 -0
- package/dist/molecules/layout/FieldGrid/index.d.ts +2 -0
- package/dist/molecules/layout/FieldGrid/index.d.ts.map +1 -0
- package/dist/molecules/layout/index.d.ts +1 -0
- package/dist/molecules/layout/index.d.ts.map +1 -1
- package/dist/templates/factory.d.ts.map +1 -1
- package/package.json +4 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IListLoadable } from "../../../types";
|
|
2
2
|
import type { DataTableProps } from "./DataTable.types";
|
|
3
3
|
export type { Column, ResponsiveColumn, DataTableProps, DataTableColumn, } from "./DataTable.types";
|
|
4
|
-
export declare function DataTable<T extends Record<string, unknown>>({ data, columns, searchPlaceholder, pageSize, showPagination, showSearch, onRowClick, emptyMessage, className, hover, isLoading, loadingItemCount, responsive, renderMobileCard, ui, error, errorTitle, errorRetry, }: DataTableProps<T> & IListLoadable): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function DataTable<T extends Record<string, unknown>>({ data, columns, searchPlaceholder, pageSize, showPagination, showSearch, onRowClick, emptyMessage, className, hover, isLoading, loadingItemCount, responsive, renderMobileCard, ui, error, errorTitle, errorRetry, selectable, selectedIds, onSelectionChange, getRowId, selectAllMode, }: DataTableProps<T> & IListLoadable): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../../src/atoms/components/data/DataTable/DataTable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../../src/atoms/components/data/DataTable/DataTable.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASpD,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAC;AA4B3B,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3D,IAAI,EACJ,OAAO,EACP,iBAA+B,EAC/B,QAAa,EACb,cAAqB,EACrB,UAAiB,EACjB,UAAU,EACV,YAAkC,EAClC,SAAc,EACd,KAAa,EACb,SAAiB,EACjB,gBAAoB,EACpB,UAAiB,EACjB,gBAAgB,EAChB,EAAE,EACF,KAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,aAAsB,GACvB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,2CAogBnC"}
|
|
@@ -72,5 +72,33 @@ export interface DataTableProps<T> {
|
|
|
72
72
|
errorTitle?: string;
|
|
73
73
|
/** Callback for retry button */
|
|
74
74
|
errorRetry?: () => void;
|
|
75
|
+
/**
|
|
76
|
+
* Enable row selection with checkboxes.
|
|
77
|
+
* When true, a selection column is prepended to the table.
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
selectable?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Set of selected row IDs (controlled).
|
|
83
|
+
* Required when `selectable` is true.
|
|
84
|
+
*/
|
|
85
|
+
selectedIds?: Set<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Callback fired when selection changes.
|
|
88
|
+
* Required when `selectable` is true.
|
|
89
|
+
*/
|
|
90
|
+
onSelectionChange?: (selectedIds: Set<string>) => void;
|
|
91
|
+
/**
|
|
92
|
+
* Function to extract unique ID from a row.
|
|
93
|
+
* @default (row) => row.id
|
|
94
|
+
*/
|
|
95
|
+
getRowId?: (row: T) => string;
|
|
96
|
+
/**
|
|
97
|
+
* What "select all" checkbox selects.
|
|
98
|
+
* - 'page': Only visible rows on current page
|
|
99
|
+
* - 'all': All rows matching current filters
|
|
100
|
+
* @default 'page'
|
|
101
|
+
*/
|
|
102
|
+
selectAllMode?: 'page' | 'all';
|
|
75
103
|
}
|
|
76
104
|
//# sourceMappingURL=DataTable.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.types.d.ts","sourceRoot":"","sources":["../../../../../src/atoms/components/data/DataTable/DataTable.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CACjC,SAAQ,MAAM,CAAC,CAAC,CAAC,EACf,sBAAsB;IACxB,mCAAmC;IACnC,eAAe,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,yCAAyC;IACzC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;AAElF,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;KACjC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,qDAAqD;IACrD,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTable.types.d.ts","sourceRoot":"","sources":["../../../../../src/atoms/components/data/DataTable/DataTable.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,5 @@ export { ListCard, type ListCardProps } from "./ListCard";
|
|
|
10
10
|
export { EntityIcon, type EntityIconProps } from "./EntityIcon";
|
|
11
11
|
export { TruncatedText, type TruncatedTextProps } from "./TruncatedText";
|
|
12
12
|
export { ActivityFeed, type ActivityFeedProps, type ActivityItem, type ActivityType, type ActivityVariant, } from "./ActivityFeed";
|
|
13
|
+
export { ConnectionStatus, type ConnectionStatusProps, } from "../../composed/ConnectionStatus";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/components/data/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/components/data/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ConnectionStatusProps {
|
|
2
|
+
/** Health endpoint to check (default: /api/v1/health) */
|
|
3
|
+
healthEndpoint?: string;
|
|
4
|
+
/** Show as badge (compact) or full status */
|
|
5
|
+
variant?: "badge" | "full";
|
|
6
|
+
/** Additional CSS classes */
|
|
7
|
+
className?: string;
|
|
8
|
+
/** Show even when online (default: false - only show when offline) */
|
|
9
|
+
showWhenOnline?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Connection status indicator showing online/offline state.
|
|
13
|
+
* Shows backend reachability status for offline-first apps.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ConnectionStatus({ healthEndpoint, variant, className, showWhenOnline, }: ConnectionStatusProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=ConnectionStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionStatus.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/ConnectionStatus/ConnectionStatus.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4BD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,OAAiB,EACjB,SAAS,EACT,cAAsB,GACvB,EAAE,qBAAqB,2CA6DvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/atoms/composed/ConnectionStatus/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ColumnMetadata } from "../types/ui-metadata";
|
|
2
|
+
interface UseEntityDetailOptions {
|
|
3
|
+
/** View context for metadata (default: 'detail') */
|
|
4
|
+
view?: "detail" | "form";
|
|
5
|
+
/** Custom source ID for tenant-specific fields */
|
|
6
|
+
sourceId?: string;
|
|
7
|
+
/** Whether queries are enabled */
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface UseEntityDetailResult<T> {
|
|
11
|
+
/** Entity data */
|
|
12
|
+
data: T | null;
|
|
13
|
+
/** Field metadata for rendering */
|
|
14
|
+
fields: ColumnMetadata[];
|
|
15
|
+
/** Combined loading state */
|
|
16
|
+
isLoading: boolean;
|
|
17
|
+
/** Data query loading state */
|
|
18
|
+
isLoadingData: boolean;
|
|
19
|
+
/** Metadata query loading state */
|
|
20
|
+
isLoadingMetadata: boolean;
|
|
21
|
+
/** First error from either query */
|
|
22
|
+
error: Error | null;
|
|
23
|
+
/** Refetch both queries */
|
|
24
|
+
refetch: () => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Hook for fetching single entity detail with field metadata.
|
|
28
|
+
*
|
|
29
|
+
* Similar to useEntityData but for single-entity detail views.
|
|
30
|
+
* Fetches entity by ID and corresponding field metadata for rendering.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* const { data, fields, isLoading } = useEntityDetail<Account>('accounts', id)
|
|
35
|
+
*
|
|
36
|
+
* if (isLoading) return <Spinner />
|
|
37
|
+
*
|
|
38
|
+
* return <FieldGrid data={data} fields={fields} />
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function useEntityDetail<T>(entity: string, id: string | undefined, options?: UseEntityDetailOptions): UseEntityDetailResult<T>;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=useEntityDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEntityDetail.d.ts","sourceRoot":"","sources":["../../../src/atoms/hooks/useEntityDetail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,UAAU,sBAAsB;IAC9B,oDAAoD;IACpD,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,qBAAqB,CAAC,CAAC;IAC/B,kBAAkB;IAClB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,mCAAmC;IACnC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,6BAA6B;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAAC,CAAC,CAAC,CAuC1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface OnlineStatus {
|
|
2
|
+
/** Whether the browser reports being online */
|
|
3
|
+
isOnline: boolean;
|
|
4
|
+
/** Whether we've confirmed backend connectivity (last successful request) */
|
|
5
|
+
isBackendReachable: boolean;
|
|
6
|
+
/** Timestamp of last successful backend request */
|
|
7
|
+
lastBackendContact: number | null;
|
|
8
|
+
/** Manually check backend connectivity */
|
|
9
|
+
checkBackend: () => Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Hook to track online/offline status.
|
|
13
|
+
* Combines browser's navigator.onLine with actual backend reachability.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useOnlineStatus(healthEndpoint?: string): OnlineStatus;
|
|
16
|
+
//# sourceMappingURL=useOnlineStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOnlineStatus.d.ts","sourceRoot":"","sources":["../../../src/atoms/hooks/useOnlineStatus.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0CAA0C;IAC1C,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,CAiErE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/atoms/primitives/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,KAAK,iHAWT,CAAC;AAGH,QAAA,MAAM,WAAW,+HAKf,CAAC;AAGH,QAAA,MAAM,SAAS,+HASb,CAAC;AAGH,QAAA,MAAM,WAAW,+HAYf,CAAC;AAGH,QAAA,MAAM,QAAQ,uHAYZ,CAAC;AAGH,QAAA,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/atoms/primitives/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,KAAK,iHAWT,CAAC;AAGH,QAAA,MAAM,WAAW,+HAKf,CAAC;AAGH,QAAA,MAAM,SAAS,+HASb,CAAC;AAGH,QAAA,MAAM,WAAW,+HAYf,CAAC;AAGH,QAAA,MAAM,QAAQ,uHAYZ,CAAC;AAGH,QAAA,MAAM,SAAS,2HAcb,CAAC;AAGH,QAAA,MAAM,SAAS,2HAcb,CAAC;AAGH,QAAA,MAAM,YAAY,+HAShB,CAAC;AAGH,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
|
|
@@ -12,9 +12,14 @@ interface AuthService {
|
|
|
12
12
|
shouldRefreshToken(): boolean;
|
|
13
13
|
refreshToken(): Promise<void>;
|
|
14
14
|
clearAuth(): void;
|
|
15
|
+
onAuthError?: (error: {
|
|
16
|
+
status: number;
|
|
17
|
+
message?: string;
|
|
18
|
+
}) => boolean | void;
|
|
15
19
|
}
|
|
16
|
-
export declare function setGlobalAuthService(authService: AuthService): void;
|
|
17
|
-
declare
|
|
20
|
+
export declare function setGlobalAuthService(authService: AuthService | null): void;
|
|
21
|
+
export declare function getGlobalAuthService(): AuthService | null;
|
|
22
|
+
export declare class ApiClient {
|
|
18
23
|
private instance;
|
|
19
24
|
constructor(config?: ApiClientConfig);
|
|
20
25
|
private setupInterceptors;
|
|
@@ -24,6 +29,11 @@ declare class ApiClient {
|
|
|
24
29
|
patch<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
25
30
|
delete<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
26
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a new API client instance with the given configuration.
|
|
34
|
+
* For library use, always pass baseURL explicitly rather than relying on env vars.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createApiClient(config?: ApiClientConfig): ApiClient;
|
|
27
37
|
export declare const apiClient: ApiClient;
|
|
28
38
|
export default apiClient;
|
|
29
39
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/atoms/services/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAEZ,KAAK,kBAAkB,EAExB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/atoms/services/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAEZ,KAAK,kBAAkB,EAExB,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAGD,UAAU,WAAW;IACnB,YAAY,IAAI;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAS,IAAI,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,GAAG,IAAI,CAAC;CAC/E;AAID,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE1E;AAED,wBAAgB,oBAAoB,IAAI,WAAW,GAAG,IAAI,CAEzD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,GAAE,eAAoB;IAaxC,OAAO,CAAC,iBAAiB;IAuFnB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5D,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IASP,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IASP,KAAK,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IASP,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;CAItE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,eAAoB,GAAG,SAAS,CAEvE;AAID,eAAO,MAAM,SAAS,WAAkB,CAAC;AACzC,eAAe,SAAS,CAAC"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import type { AuthConfig, BaseUser, LoginCredentials, TokenData } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical token key used across Pattern Stack.
|
|
4
|
+
* Exported for use by sync-patterns and generated code.
|
|
5
|
+
*/
|
|
6
|
+
export declare const AUTH_TOKEN_KEY = "auth_token";
|
|
2
7
|
export declare class AuthService<T extends BaseUser = BaseUser> {
|
|
3
8
|
private config;
|
|
9
|
+
private apiClient;
|
|
4
10
|
private refreshPromise;
|
|
11
|
+
private endpoints;
|
|
5
12
|
constructor(config: AuthConfig);
|
|
13
|
+
/**
|
|
14
|
+
* Get the auth mode
|
|
15
|
+
*/
|
|
16
|
+
get mode(): import("../types").AuthMode;
|
|
6
17
|
private getStorageKey;
|
|
7
18
|
private setItem;
|
|
8
19
|
private getItem;
|
|
@@ -20,5 +31,9 @@ export declare class AuthService<T extends BaseUser = BaseUser> {
|
|
|
20
31
|
shouldRefreshToken(): boolean;
|
|
21
32
|
getCurrentUser(): Promise<T | null>;
|
|
22
33
|
logout(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the configured onAuthError handler
|
|
36
|
+
*/
|
|
37
|
+
get onAuthError(): import("../types").AuthErrorHandler;
|
|
23
38
|
}
|
|
24
39
|
//# sourceMappingURL=auth-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../src/atoms/services/auth-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../src/atoms/services/auth-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACV,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAgC3C,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,SAAS,CAAgB;gBAErB,MAAM,EAAE,UAAU;IAmB9B;;OAEG;IACH,IAAI,IAAI,gCAEP;IAED,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,UAAU;IAclB,YAAY,IAAI,SAAS,GAAG,IAAI;IAchC,OAAO,CAAC,YAAY;IAUpB,aAAa,IAAI,CAAC,GAAG,IAAI;IAYzB,OAAO,CAAC,aAAa;IAIrB,SAAS,IAAI,IAAI;IAOX,KAAK,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAiDhD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAoBrB,mBAAmB;IAiDjC,OAAO,CAAC,oBAAoB;IAc5B,cAAc,IAAI,OAAO;IAOzB,kBAAkB,IAAI,OAAO;IAQvB,cAAc,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWnC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7B;;OAEG;IACH,IAAI,WAAW,wCAEd;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { apiClient, setGlobalAuthService } from "./api/client";
|
|
2
|
-
export { AuthService } from "./auth-service";
|
|
1
|
+
export { apiClient, setGlobalAuthService, getGlobalAuthService } from "./api/client";
|
|
2
|
+
export { AuthService, AUTH_TOKEN_KEY } from "./auth-service";
|
|
3
3
|
export * from "./health";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,UAAU,CAAC"}
|
|
@@ -45,13 +45,35 @@ export interface AuthEndpoints {
|
|
|
45
45
|
me: string;
|
|
46
46
|
logout?: string;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Auth mode determines how the auth system behaves.
|
|
50
|
+
* - 'pattern-stack': Expects backend-patterns format (access_token, refresh_token, user)
|
|
51
|
+
* - 'custom': Use responseMapper to transform backend responses
|
|
52
|
+
* - 'none': Auth is disabled, no providers or protection
|
|
53
|
+
*/
|
|
54
|
+
export type AuthMode = "pattern-stack" | "custom" | "none";
|
|
55
|
+
/**
|
|
56
|
+
* Callback for handling auth errors (401/403).
|
|
57
|
+
* Return true to suppress default behavior (page reload).
|
|
58
|
+
*/
|
|
59
|
+
export type AuthErrorHandler = (error: {
|
|
60
|
+
status: number;
|
|
61
|
+
message?: string;
|
|
62
|
+
}) => boolean | void;
|
|
48
63
|
/**
|
|
49
64
|
* Auth system configuration.
|
|
50
65
|
* Frontend-specific configuration for the auth provider.
|
|
51
66
|
*/
|
|
52
67
|
export interface AuthConfig {
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Auth mode. Default: 'pattern-stack'
|
|
70
|
+
* - 'pattern-stack': Backend-patterns format, no mapping needed
|
|
71
|
+
* - 'custom': Custom backend, use responseMapper
|
|
72
|
+
* - 'none': Auth disabled
|
|
73
|
+
*/
|
|
74
|
+
mode?: AuthMode;
|
|
75
|
+
apiUrl?: string;
|
|
76
|
+
endpoints?: Partial<AuthEndpoints>;
|
|
55
77
|
tokenStorage?: "localStorage" | "sessionStorage" | "cookie";
|
|
56
78
|
tokenRefreshBuffer?: number;
|
|
57
79
|
autoRefresh?: boolean;
|
|
@@ -62,6 +84,26 @@ export interface AuthConfig {
|
|
|
62
84
|
};
|
|
63
85
|
requireAuth?: boolean;
|
|
64
86
|
publicPaths?: string[];
|
|
87
|
+
/**
|
|
88
|
+
* Skip server validation (/auth/me) if token is not expired locally.
|
|
89
|
+
* Enables offline-first auth - trusts the JWT without server roundtrip.
|
|
90
|
+
* Default: false (always validate with server)
|
|
91
|
+
*/
|
|
92
|
+
offlineFirst?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Called on 401/403 errors. Return true to prevent default page reload.
|
|
95
|
+
*/
|
|
96
|
+
onAuthError?: AuthErrorHandler;
|
|
97
|
+
/**
|
|
98
|
+
* Custom response mapper for 'custom' mode.
|
|
99
|
+
* Transforms backend response to standard format.
|
|
100
|
+
*/
|
|
101
|
+
responseMapper?: (response: unknown) => {
|
|
102
|
+
user: BaseUser;
|
|
103
|
+
token: string;
|
|
104
|
+
refreshToken?: string;
|
|
105
|
+
expiresIn?: number;
|
|
106
|
+
};
|
|
65
107
|
}
|
|
66
108
|
/**
|
|
67
109
|
* @deprecated Use generated LoginRequest from @/generated/types instead.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/atoms/types/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/atoms/types/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,13 @@ export type UIType = "text" | "password" | "number" | "money" | "percent" | "dat
|
|
|
17
17
|
* @deprecated Use UIType instead
|
|
18
18
|
*/
|
|
19
19
|
export type UIFieldType = UIType;
|
|
20
|
+
/**
|
|
21
|
+
* Option for select/dropdown fields
|
|
22
|
+
*/
|
|
23
|
+
export interface SelectOption {
|
|
24
|
+
value: string;
|
|
25
|
+
label: string;
|
|
26
|
+
}
|
|
20
27
|
/**
|
|
21
28
|
* Format configuration for field renderers
|
|
22
29
|
* Passed from column metadata to customize rendering behavior
|
|
@@ -36,6 +43,10 @@ export interface FieldFormat {
|
|
|
36
43
|
entityType?: "vendor" | "partner" | "company" | "customer";
|
|
37
44
|
/** Max value for rating display (default 5) */
|
|
38
45
|
max?: number;
|
|
46
|
+
/** Options for select/dropdown fields */
|
|
47
|
+
options?: SelectOption[];
|
|
48
|
+
/** Whether the field is editable inline (enables dropdown for status fields) */
|
|
49
|
+
editable?: boolean;
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
41
52
|
* UI configuration for a specific field
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../../src/atoms/types/ui-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAEd,MAAM,GACN,UAAU,GAEV,QAAQ,GACR,OAAO,GACP,SAAS,GAET,MAAM,GACN,UAAU,GAEV,OAAO,GACP,KAAK,GACL,OAAO,GAEP,SAAS,GAET,OAAO,GACP,QAAQ,GAER,QAAQ,GACR,MAAM,GAEN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IACpF,kFAAkF;IAClF,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3D,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../../src/atoms/types/ui-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAEd,MAAM,GACN,UAAU,GAEV,QAAQ,GACR,OAAO,GACP,SAAS,GAET,MAAM,GACN,UAAU,GAEV,OAAO,GACP,KAAK,GACL,OAAO,GAEP,SAAS,GAET,OAAO,GACP,QAAQ,GAER,QAAQ,GACR,MAAM,GAEN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IACpF,kFAAkF;IAClF,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3D,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,OAAO,CAAC,EAAE;SACP,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW;KACrD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KACjD,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CACvC,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,CAAC,EAAE,WAAW,KACjB,SAAS,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,MAAM,GAAG,aAAa;CAC7B,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Card Mapping Utilities
|
|
3
|
+
*
|
|
4
|
+
* Maps entity data and column metadata to ListCard props for responsive
|
|
5
|
+
* card-based display of table data.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { ColumnMetadata } from "../types/ui-metadata";
|
|
9
|
+
import type { ListCardProps } from "../components/data/ListCard";
|
|
10
|
+
import type { Column } from "../components/data/DataTable";
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for mapping entity data to ListCard props.
|
|
13
|
+
* Allows customization of which fields map to which card elements.
|
|
14
|
+
*/
|
|
15
|
+
export interface EntityCardMapping {
|
|
16
|
+
/** Field to use as card title (default: first primary column or 'name') */
|
|
17
|
+
titleField?: string;
|
|
18
|
+
/** Field to use as subtitle */
|
|
19
|
+
subtitleField?: string;
|
|
20
|
+
/** Field to display as the value (typically money/number) */
|
|
21
|
+
valueField?: string;
|
|
22
|
+
/** Field to display as status badge */
|
|
23
|
+
statusField?: string;
|
|
24
|
+
/** Fields to show in metadata row (default: auto-detect up to 3) */
|
|
25
|
+
metadataFields?: string[];
|
|
26
|
+
/** Icon configuration */
|
|
27
|
+
iconConfig?: {
|
|
28
|
+
/** Icon variant type */
|
|
29
|
+
variant: "category" | "status";
|
|
30
|
+
/** Field to derive icon/color from */
|
|
31
|
+
field?: string;
|
|
32
|
+
/** Static icon to use */
|
|
33
|
+
icon?: React.ReactNode;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Convert entity data and column metadata to ListCard props.
|
|
38
|
+
*
|
|
39
|
+
* @param item - The entity data row
|
|
40
|
+
* @param columns - Column metadata from the API
|
|
41
|
+
* @param mapping - Optional custom mapping configuration
|
|
42
|
+
* @param entityType - Optional entity type for icon/category inference
|
|
43
|
+
* @returns Props for the ListCard component
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const cardProps = entityToListCardProps(row, columns);
|
|
48
|
+
* return <ListCard {...cardProps} onClick={() => handleClick(row)} />;
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function entityToListCardProps(item: Record<string, unknown>, columns: ColumnMetadata[], mapping?: EntityCardMapping, entityType?: string): ListCardProps;
|
|
52
|
+
/**
|
|
53
|
+
* Options for generating compact columns
|
|
54
|
+
*/
|
|
55
|
+
export interface CompactColumnsOptions {
|
|
56
|
+
/** Maximum number of columns in compact view (default: 5) */
|
|
57
|
+
maxColumns?: number;
|
|
58
|
+
/** Whether to use abbreviated headers (default: true) */
|
|
59
|
+
abbreviateHeaders?: boolean;
|
|
60
|
+
/** Fields to always include regardless of importance */
|
|
61
|
+
requiredFields?: string[];
|
|
62
|
+
/** Fields to exclude from compact view */
|
|
63
|
+
excludeFields?: string[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Generate compact column definitions from full column metadata.
|
|
67
|
+
*
|
|
68
|
+
* Creates a reduced set of columns suitable for narrow displays.
|
|
69
|
+
* Prioritizes primary importance columns and applies compact formatting.
|
|
70
|
+
*
|
|
71
|
+
* @param columns - Full column metadata
|
|
72
|
+
* @param options - Customization options
|
|
73
|
+
* @returns Array of compact Column definitions
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* const compactCols = generateCompactColumns(metadata.columns, { maxColumns: 4 });
|
|
78
|
+
* <DataTable columns={isCompact ? compactCols : fullCols} data={data} />
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function generateCompactColumns<T extends Record<string, unknown>>(columns: ColumnMetadata[], options?: CompactColumnsOptions): Column<T>[];
|
|
82
|
+
/**
|
|
83
|
+
* Render function for mobile cards that uses entityToListCardProps.
|
|
84
|
+
*
|
|
85
|
+
* Returns a render function compatible with DataTable's renderMobileCard prop.
|
|
86
|
+
*
|
|
87
|
+
* @param columns - Column metadata
|
|
88
|
+
* @param mapping - Optional custom card mapping
|
|
89
|
+
* @param entityType - Optional entity type for icon inference
|
|
90
|
+
* @returns Render function for mobile cards
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* <DataTable
|
|
95
|
+
* data={data}
|
|
96
|
+
* columns={columns}
|
|
97
|
+
* renderMobileCard={createMobileCardRenderer(metadata.columns, undefined, 'accounts')}
|
|
98
|
+
* />
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function createMobileCardRenderer<T extends Record<string, unknown>>(columns: ColumnMetadata[], mapping?: EntityCardMapping, entityType?: string): (props: {
|
|
102
|
+
data: T[];
|
|
103
|
+
onItemClick?: (item: T) => void;
|
|
104
|
+
}) => React.ReactNode;
|
|
105
|
+
//# sourceMappingURL=entity-card-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-card-mapping.d.ts","sourceRoot":"","sources":["../../../src/atoms/utils/entity-card-mapping.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAG3D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,yBAAyB;IACzB,UAAU,CAAC,EAAE;QACX,wBAAwB;QACxB,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;QAC/B,sCAAsC;QACtC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,yBAAyB;QACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACxB,CAAC;CACH;AA6QD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,CAkGf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CA8Cb;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;CAAE,KAAK,KAAK,CAAC,SAAS,CAwB5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
|
|
@@ -4,7 +4,9 @@ interface ProtectedRouteProps {
|
|
|
4
4
|
requirePermission?: string;
|
|
5
5
|
requireRole?: string;
|
|
6
6
|
fallback?: ReactNode;
|
|
7
|
+
/** Path to redirect to when not authenticated (default: /login) */
|
|
8
|
+
loginPath?: string;
|
|
7
9
|
}
|
|
8
|
-
export declare function ProtectedRoute({ children, requirePermission, requireRole, fallback, }: ProtectedRouteProps): string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function ProtectedRoute({ children, requirePermission, requireRole, fallback, loginPath, }: ProtectedRouteProps): string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react/jsx-runtime").JSX.Element;
|
|
9
11
|
export {};
|
|
10
12
|
//# sourceMappingURL=ProtectedRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/components/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/components/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,SAAoB,GACrB,EAAE,mBAAmB,kSA0DrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/hooks/useAuth.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/hooks/useAuth.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EAGT,MAAM,sBAAsB,CAAC;AAG9B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,EAC1D,QAAQ,EACR,MAAM,GACP,EAAE,iBAAiB,2CAsMnB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
interface NoAuthProviderProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* NoAuthProvider - A pass-through provider for apps that don't need authentication.
|
|
7
|
+
*
|
|
8
|
+
* Use this when:
|
|
9
|
+
* - Your app is entirely public
|
|
10
|
+
* - Auth is handled externally (e.g., by a gateway)
|
|
11
|
+
* - You want to disable auth during development
|
|
12
|
+
*
|
|
13
|
+
* All auth operations are no-ops and isAuthenticated is always true.
|
|
14
|
+
*/
|
|
15
|
+
export declare function NoAuthProvider({ children }: NoAuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=NoAuthProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoAuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/providers/NoAuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA0B/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/auth/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|