@pattern-stack/frontend-patterns 0.2.0-alpha.18 → 0.2.0-alpha.19

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 (67) hide show
  1. package/dist/frontend-patterns.css +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.es.js +93 -33
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/index.js +93 -33
  7. package/dist/index.js.map +1 -1
  8. package/dist/swebrain/SweBrainShowcase.d.ts +8 -0
  9. package/dist/swebrain/SweBrainShowcase.d.ts.map +1 -0
  10. package/dist/swebrain/atoms/Card.d.ts +15 -0
  11. package/dist/swebrain/atoms/Card.d.ts.map +1 -0
  12. package/dist/swebrain/atoms/Chip.d.ts +17 -0
  13. package/dist/swebrain/atoms/Chip.d.ts.map +1 -0
  14. package/dist/swebrain/atoms/Duration.d.ts +7 -0
  15. package/dist/swebrain/atoms/Duration.d.ts.map +1 -0
  16. package/dist/swebrain/atoms/EmptyCell.d.ts +5 -0
  17. package/dist/swebrain/atoms/EmptyCell.d.ts.map +1 -0
  18. package/dist/swebrain/atoms/Hand.d.ts +8 -0
  19. package/dist/swebrain/atoms/Hand.d.ts.map +1 -0
  20. package/dist/swebrain/atoms/ID.d.ts +9 -0
  21. package/dist/swebrain/atoms/ID.d.ts.map +1 -0
  22. package/dist/swebrain/atoms/IdTag.d.ts +9 -0
  23. package/dist/swebrain/atoms/IdTag.d.ts.map +1 -0
  24. package/dist/swebrain/atoms/KV.d.ts +7 -0
  25. package/dist/swebrain/atoms/KV.d.ts.map +1 -0
  26. package/dist/swebrain/atoms/LiveIndicator.d.ts +7 -0
  27. package/dist/swebrain/atoms/LiveIndicator.d.ts.map +1 -0
  28. package/dist/swebrain/atoms/PoolChip.d.ts +14 -0
  29. package/dist/swebrain/atoms/PoolChip.d.ts.map +1 -0
  30. package/dist/swebrain/atoms/Row.d.ts +10 -0
  31. package/dist/swebrain/atoms/Row.d.ts.map +1 -0
  32. package/dist/swebrain/atoms/Sparkline.d.ts +11 -0
  33. package/dist/swebrain/atoms/Sparkline.d.ts.map +1 -0
  34. package/dist/swebrain/atoms/StatusBadge.d.ts +11 -0
  35. package/dist/swebrain/atoms/StatusBadge.d.ts.map +1 -0
  36. package/dist/swebrain/atoms/StatusDot.d.ts +11 -0
  37. package/dist/swebrain/atoms/StatusDot.d.ts.map +1 -0
  38. package/dist/swebrain/atoms/Timestamp.d.ts +8 -0
  39. package/dist/swebrain/atoms/Timestamp.d.ts.map +1 -0
  40. package/dist/swebrain/atoms/index.d.ts +34 -0
  41. package/dist/swebrain/atoms/index.d.ts.map +1 -0
  42. package/dist/swebrain/atoms/pool-tokens.d.ts +14 -0
  43. package/dist/swebrain/atoms/pool-tokens.d.ts.map +1 -0
  44. package/dist/swebrain/atoms/tokens.d.ts +96 -0
  45. package/dist/swebrain/atoms/tokens.d.ts.map +1 -0
  46. package/dist/swebrain/index.d.ts +4 -0
  47. package/dist/swebrain/index.d.ts.map +1 -0
  48. package/dist/swebrain/lib/favs.d.ts +5 -0
  49. package/dist/swebrain/lib/favs.d.ts.map +1 -0
  50. package/dist/swebrain/lib/vendors.d.ts +14 -0
  51. package/dist/swebrain/lib/vendors.d.ts.map +1 -0
  52. package/dist/swebrain/molecules/PoolLegend.d.ts +8 -0
  53. package/dist/swebrain/molecules/PoolLegend.d.ts.map +1 -0
  54. package/dist/swebrain/molecules/SearchInput.d.ts +17 -0
  55. package/dist/swebrain/molecules/SearchInput.d.ts.map +1 -0
  56. package/dist/swebrain/molecules/StatCard.d.ts +11 -0
  57. package/dist/swebrain/molecules/StatCard.d.ts.map +1 -0
  58. package/dist/swebrain/molecules/TimeRangePicker.d.ts +18 -0
  59. package/dist/swebrain/molecules/TimeRangePicker.d.ts.map +1 -0
  60. package/dist/swebrain/molecules/index.d.ts +9 -0
  61. package/dist/swebrain/molecules/index.d.ts.map +1 -0
  62. package/dist/sync/createEntityHooks.d.ts.map +1 -1
  63. package/dist/sync/index.d.ts +1 -1
  64. package/dist/sync/index.d.ts.map +1 -1
  65. package/dist/sync/types.d.ts +110 -23
  66. package/dist/sync/types.d.ts.map +1 -1
  67. package/package.json +2 -1
@@ -71,9 +71,9 @@ export interface EntityApi<TEntity, TCreate, TUpdate> {
71
71
  /**
72
72
  * Fetch a list of entities with optional filtering/pagination.
73
73
  * @param params - Optional list parameters
74
- * @returns Promise resolving to array of entities
74
+ * @returns Promise resolving to a {@link Page} envelope of entities
75
75
  */
76
- list(params?: ListParams): Promise<TEntity[]>;
76
+ list(params?: ListQuery): Promise<Page<TEntity>>;
77
77
  /**
78
78
  * Fetch a single entity by ID.
79
79
  * @param id - The entity ID
@@ -107,31 +107,86 @@ export interface EntityApi<TEntity, TCreate, TUpdate> {
107
107
  }>;
108
108
  }
109
109
  /**
110
- * Common list parameters for API queries.
110
+ * Pagination request parameters sent to `api.list`.
111
+ *
112
+ * This is the request half of the pagination contract. The generated API
113
+ * client serializes these into the list endpoint's querystring; the backend
114
+ * returns a {@link Page} envelope. Engine is page-based (OFFSET) in v1, but
115
+ * `cursor` is part of the contract from day one (the keyset request-honoring
116
+ * upgrade is a deferred, seam-internal change — passing a cursor is accepted).
117
+ *
118
+ * Arbitrary additional keys are treated as `where` filters (pagination is
119
+ * orthogonal to filtering).
111
120
  *
112
121
  * @example
113
122
  * ```typescript
114
- * const params: ListParams = {
115
- * skip: 0,
116
- * limit: 20,
123
+ * const query: ListQuery = {
124
+ * page: 2,
125
+ * pageSize: 50,
117
126
  * sort_by: 'created_at',
118
127
  * sort_order: 'desc',
119
- * status: 'active', // Additional filter
128
+ * status: 'active', // Additional where filter
120
129
  * }
121
130
  * ```
122
131
  */
123
- export interface ListParams {
124
- /** Number of items to skip (for pagination) */
125
- skip?: number;
126
- /** Maximum number of items to return */
127
- limit?: number;
132
+ export interface ListQuery {
133
+ /** 1-based page number to fetch (default: 1) */
134
+ page?: number;
135
+ /** Opaque keyset cursor (contract-stable; v1 OFFSET engine ignores it for fetching) */
136
+ cursor?: string;
137
+ /** Page size — number of items per page (default: 50, clamped server-side) */
138
+ pageSize?: number;
128
139
  /** Field to sort by */
129
140
  sort_by?: string;
130
141
  /** Sort direction */
131
142
  sort_order?: 'asc' | 'desc';
132
- /** Additional filter parameters */
143
+ /** Additional filter parameters (where clause) */
133
144
  [key: string]: unknown;
134
145
  }
146
+ /**
147
+ * Pagination response envelope returned by `api.list`.
148
+ *
149
+ * This is the response half of the pagination contract — the shape every
150
+ * codegen-generated list endpoint returns. Extends the proven
151
+ * `{ items, nextCursor }` keyset shape (jobs subsystem `JobRunPage`,
152
+ * observability) with `total`/`page`/`pageCount`/`pageSize` for numbered,
153
+ * jump-to-page UIs.
154
+ *
155
+ * @template T - The entity type
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * const page: Page<Transaction> = {
160
+ * items: [...],
161
+ * page: 1,
162
+ * pageCount: 4,
163
+ * total: 187,
164
+ * pageSize: 50,
165
+ * nextCursor: 'eyJjcmVhdGVkQXQiOiIuLi4ifQ==',
166
+ * }
167
+ * ```
168
+ */
169
+ export interface Page<T> {
170
+ /** The rows for the current page */
171
+ items: T[];
172
+ /** 1-based number of the current page */
173
+ page: number;
174
+ /** Total number of pages for the (filtered) set */
175
+ pageCount: number;
176
+ /** Total number of rows in the (filtered) set, across all pages */
177
+ total: number;
178
+ /** Number of items per page */
179
+ pageSize: number;
180
+ /** Opaque cursor for the next page; null on the last page */
181
+ nextCursor: string | null;
182
+ }
183
+ /**
184
+ * Common list parameters for API queries.
185
+ *
186
+ * @deprecated Use {@link ListQuery} instead — `skip`/`limit` were never honored
187
+ * by `useList`. Retained as an alias for source compatibility; will be removed.
188
+ */
189
+ export type ListParams = ListQuery;
135
190
  /**
136
191
  * Type-safe filter where value types match field types.
137
192
  *
@@ -162,23 +217,28 @@ export type WhereClause<TEntity> = {
162
217
  * const options: UseListOptions<Transaction> = {
163
218
  * where: { state: 'active' },
164
219
  * orderBy: { field: 'created_at', direction: 'desc' },
165
- * skip: 0,
166
- * limit: 20,
220
+ * page: 2,
221
+ * pageSize: 50,
167
222
  * }
168
223
  * ```
169
224
  */
170
225
  export interface UseListOptions<TEntity> {
171
- /** Filter criteria - applied client-side to collection */
226
+ /** Filter criteria - sent to the server AND applied client-side to the page */
172
227
  where?: WhereClause<TEntity>;
173
228
  /** Sort configuration */
174
229
  orderBy?: {
175
230
  field: keyof TEntity;
176
231
  direction: 'asc' | 'desc';
177
232
  };
178
- /** Number of items to skip (for pagination) */
179
- skip?: number;
180
- /** Maximum number of items to return */
181
- limit?: number;
233
+ /**
234
+ * Initial 1-based page to fetch (default: 1). `useList` owns the live page
235
+ * state thereafter use the returned `setPage`/`next`/`prev` to navigate.
236
+ */
237
+ page?: number;
238
+ /** Opaque keyset cursor (contract-stable; v1 OFFSET engine ignores it for fetching) */
239
+ cursor?: string;
240
+ /** Page size — number of items per page (default: server default, typically 50) */
241
+ pageSize?: number;
182
242
  /** Enable hook (default: true) */
183
243
  enabled?: boolean;
184
244
  }
@@ -203,16 +263,25 @@ export interface UseGetOptions {
203
263
  *
204
264
  * @example
205
265
  * ```typescript
206
- * const { data, isLoading, error, refetch, collection } = useTransactionList()
266
+ * const {
267
+ * data, isLoading, error, refetch, collection,
268
+ * page, pageCount, total, pageSize,
269
+ * setPage, next, prev, hasNext, hasPrev,
270
+ * } = useTransactionList({ pageSize: 50 })
207
271
  *
208
272
  * if (isLoading) return <Spinner />
209
273
  * if (error) return <Error message={error.message} />
210
274
  *
211
- * return <DataTable data={data} />
275
+ * return (
276
+ * <>
277
+ * <DataTable data={data} />
278
+ * <Pagination page={page} pageCount={pageCount} onPageChange={setPage} />
279
+ * </>
280
+ * )
212
281
  * ```
213
282
  */
214
283
  export interface UseListResult<TEntity extends object> {
215
- /** Array of entities (empty array if loading or error) */
284
+ /** The current page's entities (empty array if loading or error) */
216
285
  data: TEntity[];
217
286
  /** True while initial data is loading */
218
287
  isLoading: boolean;
@@ -224,6 +293,24 @@ export interface UseListResult<TEntity extends object> {
224
293
  refetch: () => void;
225
294
  /** Direct collection access for mutations */
226
295
  collection: Collection<TEntity, string>;
296
+ /** 1-based number of the current page */
297
+ page: number;
298
+ /** Total number of pages for the (filtered) set */
299
+ pageCount: number;
300
+ /** Total number of rows in the (filtered) set, across all pages */
301
+ total: number;
302
+ /** Number of items per page */
303
+ pageSize: number;
304
+ /** Jump to a specific 1-based page (clamped to [1, pageCount]) and refetch */
305
+ setPage: (page: number) => void;
306
+ /** Advance to the next page (no-op when on the last page) */
307
+ next: () => void;
308
+ /** Go back to the previous page (no-op when on the first page) */
309
+ prev: () => void;
310
+ /** True when a next page exists (page < pageCount) */
311
+ hasNext: boolean;
312
+ /** True when a previous page exists (page > 1) */
313
+ hasPrev: boolean;
227
314
  }
228
315
  /**
229
316
  * Result type for single entity hooks.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pattern-stack/frontend-patterns",
3
3
  "description": "Production-ready React frontend template with atomic architecture patterns. Build ultra-lean applications by importing shared UI foundation patterns.",
4
4
  "private": false,
5
- "version": "0.2.0-alpha.18",
5
+ "version": "0.2.0-alpha.19",
6
6
  "keywords": [
7
7
  "react",
8
8
  "typescript",
@@ -61,6 +61,7 @@
61
61
  "clean:temp": "rm -rf .playwright-mcp coverage .vite .turbo && find . -name '*.tgz' -delete && find . -name '.DS_Store' -delete",
62
62
  "lint": "eslint .",
63
63
  "lint:fix": "eslint . --fix",
64
+ "lint:tokens": "node scripts/check-design-tokens.mjs",
64
65
  "lint:design-system": "eslint . --ext .tsx,.ts --config eslint.config.js",
65
66
  "style:check": "npm run lint:design-system",
66
67
  "style:fix": "npm run lint:fix && npm run style:check",