@almadar/std 13.12.0 → 13.13.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.
@@ -171,11 +171,11 @@
171
171
  "fetch",
172
172
  "BrowseItem",
173
173
  {
174
+ "limit": "@config.pageSize",
174
175
  "emit": {
175
- "failure": "BrowseItemLoadFailed",
176
- "success": "BrowseItemLoaded"
176
+ "success": "BrowseItemLoaded",
177
+ "failure": "BrowseItemLoadFailed"
177
178
  },
178
- "limit": "@config.pageSize",
179
179
  "offset": 0.0
180
180
  }
181
181
  ],
@@ -198,16 +198,16 @@
198
198
  "render-ui",
199
199
  "main",
200
200
  {
201
+ "type": "stack",
202
+ "direction": "vertical",
201
203
  "children": [
202
204
  {
203
- "fields": "@config.fields",
205
+ "pageSize": "@config.displayPageSize",
204
206
  "type": "data-grid",
205
- "entity": "@payload.data",
206
- "pageSize": "@config.displayPageSize"
207
+ "fields": "@config.fields",
208
+ "entity": "@payload.data"
207
209
  }
208
- ],
209
- "direction": "vertical",
210
- "type": "stack"
210
+ ]
211
211
  }
212
212
  ]
213
213
  ]
@@ -222,9 +222,9 @@
222
222
  "main",
223
223
  {
224
224
  "variant": "caption",
225
- "color": "error",
225
+ "content": "@payload.error",
226
226
  "type": "typography",
227
- "content": "@payload.error"
227
+ "color": "error"
228
228
  }
229
229
  ]
230
230
  ]
@@ -239,19 +239,19 @@
239
239
  "BrowseItem",
240
240
  {
241
241
  "limit": "@config.pageSize",
242
+ "offset": 0.0,
242
243
  "emit": {
243
- "success": "BrowseItemLoaded",
244
- "failure": "BrowseItemLoadFailed"
245
- },
246
- "offset": 0.0
244
+ "failure": "BrowseItemLoadFailed",
245
+ "success": "BrowseItemLoaded"
246
+ }
247
247
  }
248
248
  ],
249
249
  [
250
250
  "render-ui",
251
251
  "main",
252
252
  {
253
- "type": "spinner",
254
- "size": "sm"
253
+ "size": "sm",
254
+ "type": "spinner"
255
255
  }
256
256
  ]
257
257
  ]
@@ -266,11 +266,6 @@
266
266
  "BrowseItem",
267
267
  {
268
268
  "offset": 0.0,
269
- "limit": "@config.pageSize",
270
- "emit": {
271
- "success": "BrowseItemLoaded",
272
- "failure": "BrowseItemLoadFailed"
273
- },
274
269
  "filter": [
275
270
  "or",
276
271
  [
@@ -287,7 +282,12 @@
287
282
  ],
288
283
  "@payload.searchTerm"
289
284
  ]
290
- ]
285
+ ],
286
+ "emit": {
287
+ "success": "BrowseItemLoaded",
288
+ "failure": "BrowseItemLoadFailed"
289
+ },
290
+ "limit": "@config.pageSize"
291
291
  }
292
292
  ]
293
293
  ]
@@ -302,9 +302,10 @@
302
302
  "BrowseItem",
303
303
  {
304
304
  "emit": {
305
- "success": "BrowseItemLoaded",
306
- "failure": "BrowseItemLoadFailed"
305
+ "failure": "BrowseItemLoadFailed",
306
+ "success": "BrowseItemLoaded"
307
307
  },
308
+ "limit": "@config.pageSize",
308
309
  "offset": 0.0,
309
310
  "filter": [
310
311
  "or",
@@ -322,8 +323,7 @@
322
323
  ],
323
324
  "@payload.value"
324
325
  ]
325
- ],
326
- "limit": "@config.pageSize"
326
+ ]
327
327
  }
328
328
  ]
329
329
  ]
@@ -337,6 +337,11 @@
337
337
  "fetch",
338
338
  "BrowseItem",
339
339
  {
340
+ "limit": "@config.pageSize",
341
+ "emit": {
342
+ "failure": "BrowseItemLoadFailed",
343
+ "success": "BrowseItemLoaded"
344
+ },
340
345
  "offset": [
341
346
  "*",
342
347
  [
@@ -345,12 +350,7 @@
345
350
  1.0
346
351
  ],
347
352
  "@config.pageSize"
348
- ],
349
- "limit": "@config.pageSize",
350
- "emit": {
351
- "success": "BrowseItemLoaded",
352
- "failure": "BrowseItemLoadFailed"
353
- }
353
+ ]
354
354
  }
355
355
  ]
356
356
  ]
@@ -364,16 +364,16 @@
364
364
  "render-ui",
365
365
  "main",
366
366
  {
367
+ "type": "stack",
367
368
  "direction": "vertical",
368
369
  "children": [
369
370
  {
370
- "type": "data-grid",
371
- "fields": "@config.fields",
371
+ "entity": "@payload.data",
372
372
  "pageSize": "@config.displayPageSize",
373
- "entity": "@payload.data"
373
+ "type": "data-grid",
374
+ "fields": "@config.fields"
374
375
  }
375
- ],
376
- "type": "stack"
376
+ ]
377
377
  }
378
378
  ]
379
379
  ]
@@ -387,8 +387,8 @@
387
387
  "fetch",
388
388
  "BrowseItem",
389
389
  {
390
- "offset": 0.0,
391
390
  "limit": "@config.pageSize",
391
+ "offset": 0.0,
392
392
  "emit": {
393
393
  "failure": "BrowseItemLoadFailed",
394
394
  "success": "BrowseItemLoaded"
@@ -410,15 +410,31 @@
410
410
  "config": {
411
411
  "displayPageSize": {
412
412
  "type": "number",
413
- "default": 0.0
413
+ "default": 10.0
414
414
  },
415
415
  "fields": {
416
416
  "type": "[object]",
417
- "default": []
417
+ "default": [
418
+ {
419
+ "variant": "h4",
420
+ "name": "name",
421
+ "label": "Name"
422
+ },
423
+ {
424
+ "variant": "caption",
425
+ "name": "description",
426
+ "label": "Description"
427
+ },
428
+ {
429
+ "label": "Status",
430
+ "name": "status",
431
+ "variant": "badge"
432
+ }
433
+ ]
418
434
  },
419
435
  "pageSize": {
420
436
  "type": "number",
421
- "default": 0.0
437
+ "default": 10.0
422
438
  }
423
439
  },
424
440
  "scope": "collection"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-display",
3
3
  "version": "1.1.0",
4
- "description": "std-display — DEPRECATED. The earlier shape inlined a hard-coded\nchart + graph-view + several stat cards into a single render-ui spec\nwith @entity.X bindings that no transition explicitly set, which\nviolates the explicit-binding rule (gap #25 in\ndocs/Almadar_Std_Verification.md). The chart payload was hand-\nauthored literal data, not aggregated from a real entity stream.\n\nUse these instead:\n std-stats embeddable stat-card aggregations (count / sum / avg\n / min / max / distinct), ITEMS_LOADED listener.\n std-graphs embeddable charts (bar / line / pie / area / donut),\n config-driven categoryField + aggregation, same\n ITEMS_LOADED listener shape.\n\nCompose them in a molecule alongside std-browse the same way\nstd-filtered-list composes std-search / std-filter / std-browse /\nstd-pagination. See std-dashboard.lolo for the canonical pattern.\n\nThis file is preserved (and still embedded) so existing projects\nthat import `std/behaviors/std-display` keep loading; new dashboards\nshould target std-stats + std-graphs.",
4
+ "description": "std-display — DEPRECATED. Use std-stats (stat-cards) + std-graphs (charts) composed in a molecule (see std-dashboard); the original violated the explicit-binding rule. Preserved so existing imports keep loading.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "DisplayItemOrbital",
@@ -44,10 +44,10 @@
44
44
  "render-ui",
45
45
  "main",
46
46
  {
47
+ "title": "std-display is deprecated",
47
48
  "message": "@config.message",
48
- "variant": "warning",
49
49
  "type": "alert",
50
- "title": "std-display is deprecated"
50
+ "variant": "warning"
51
51
  }
52
52
  ]
53
53
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-filter",
3
3
  "version": "1.0.0",
4
- "description": "std-filter as a Function — single primitive: filter-group. The atom's\nown FilterTarget entity is the UI-state container — every FILTER\ntransition persists field/value into the entity. Visual reflection of\nthe persisted value (filter-group `value` prop) is a follow-up that\nneeds the pattern registry + UI component to accept a `value` prop;\nthe persistence side is done.",
4
+ "description": "std-filter — single primitive: filter-group. Owns a FilterTarget runtime entity; every FILTER transition persists field/value so cross-trait listeners can route the latest selection into data atoms.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "FilterTargetOrbital",
@@ -94,9 +94,9 @@
94
94
  "render-ui",
95
95
  "main",
96
96
  {
97
- "filters": "@config.filters",
98
97
  "entity": "FilterTarget",
99
- "type": "filter-group"
98
+ "type": "filter-group",
99
+ "filters": "@config.filters"
100
100
  }
101
101
  ]
102
102
  ]
@@ -121,8 +121,8 @@
121
121
  "main",
122
122
  {
123
123
  "type": "filter-group",
124
- "entity": "FilterTarget",
125
- "filters": "@config.filters"
124
+ "filters": "@config.filters",
125
+ "entity": "FilterTarget"
126
126
  }
127
127
  ]
128
128
  ]
@@ -146,17 +146,17 @@
146
146
  "emit",
147
147
  "FILTER",
148
148
  {
149
- "field": "",
150
- "value": ""
149
+ "value": "",
150
+ "field": ""
151
151
  }
152
152
  ],
153
153
  [
154
154
  "render-ui",
155
155
  "main",
156
156
  {
157
+ "type": "filter-group",
157
158
  "entity": "FilterTarget",
158
- "filters": "@config.filters",
159
- "type": "filter-group"
159
+ "filters": "@config.filters"
160
160
  }
161
161
  ]
162
162
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-graphs",
3
3
  "version": "1.0.0",
4
- "description": "std-graphs — embeddable chart atom. Drops into a dashboard molecule\nalongside std-stats / std-browse; wire its ITEMS_LOADED listener to\nthe upstream collection's success emit, then configure `chartType` +\n`categoryField` + (`valueField` | `aggregation`) per call-site to\ndeclare WHAT to chart.\n\nAggregation runs in the lolo state machine: ITEMS_LOADED groups\n@payload.data by @config.categoryField (array/groupBy returns\n{<category>: [<rows>]}) then array/maps over (object/entries result)\nto apply the configured aggregation (count | sum | avg | min | max)\nper bucket. The resulting chart-data array of {label, value} drops\ninto the existing chart pattern with no aggregator component required.\n\nThe `ChartPoint` type alias narrows the entity field to the exact\nshape the `chart` pattern's `data` prop expects (`{label, value}`),\nso no `Record<string, unknown>` cast lands at the call site —\nschema authors keep strict typing end-to-end.",
4
+ "description": "std-graphs — embeddable chart atom. ITEMS_LOADED groups @payload.data by @config.categoryField and applies the configured aggregation (count|sum|avg|min|max) per bucket, emitting {label,value} points into the chart pattern. Drop into a dashboard alongside std-stats / std-browse.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "GraphItemOrbital",
@@ -21,13 +21,13 @@
21
21
  "items": {
22
22
  "type": "object",
23
23
  "properties": {
24
- "value": {
25
- "name": "value",
26
- "type": "number"
27
- },
28
24
  "label": {
29
25
  "name": "label",
30
26
  "type": "string"
27
+ },
28
+ "value": {
29
+ "name": "value",
30
+ "type": "number"
31
31
  }
32
32
  }
33
33
  }
@@ -81,14 +81,14 @@
81
81
  "render-ui",
82
82
  "main",
83
83
  {
84
- "data": "@entity.chartData",
85
- "chartType": "@config.chartType",
86
84
  "subtitle": "@config.subtitle",
87
- "type": "chart",
88
- "showValues": "@config.showValues",
85
+ "chartType": "@config.chartType",
86
+ "showLegend": "@config.showLegend",
89
87
  "title": "@config.title",
90
- "height": "@config.height",
91
- "showLegend": "@config.showLegend"
88
+ "data": "@entity.chartData",
89
+ "showValues": "@config.showValues",
90
+ "type": "chart",
91
+ "height": "@config.height"
92
92
  }
93
93
  ]
94
94
  ]
@@ -207,11 +207,11 @@
207
207
  "chartType": "@config.chartType",
208
208
  "data": "@entity.chartData",
209
209
  "height": "@config.height",
210
+ "showValues": "@config.showValues",
210
211
  "type": "chart",
212
+ "showLegend": "@config.showLegend",
211
213
  "title": "@config.title",
212
- "subtitle": "@config.subtitle",
213
- "showValues": "@config.showValues",
214
- "showLegend": "@config.showLegend"
214
+ "subtitle": "@config.subtitle"
215
215
  }
216
216
  ]
217
217
  ]
@@ -219,13 +219,28 @@
219
219
  ]
220
220
  },
221
221
  "config": {
222
- "categoryField": {
222
+ "chartType": {
223
+ "type": "string",
224
+ "default": "bar",
225
+ "values": [
226
+ "bar",
227
+ "line",
228
+ "pie",
229
+ "area",
230
+ "donut"
231
+ ]
232
+ },
233
+ "showLegend": {
234
+ "type": "boolean",
235
+ "default": true
236
+ },
237
+ "subtitle": {
223
238
  "type": "string",
224
239
  "default": ""
225
240
  },
226
- "height": {
227
- "type": "number",
228
- "default": 280.0
241
+ "valueField": {
242
+ "type": "string",
243
+ "default": ""
229
244
  },
230
245
  "showValues": {
231
246
  "type": "boolean",
@@ -242,32 +257,17 @@
242
257
  "max"
243
258
  ]
244
259
  },
245
- "title": {
260
+ "categoryField": {
246
261
  "type": "string",
247
262
  "default": ""
248
263
  },
249
- "subtitle": {
250
- "type": "string",
251
- "default": ""
264
+ "height": {
265
+ "type": "number",
266
+ "default": 280.0
252
267
  },
253
- "valueField": {
268
+ "title": {
254
269
  "type": "string",
255
270
  "default": ""
256
- },
257
- "chartType": {
258
- "type": "string",
259
- "default": "bar",
260
- "values": [
261
- "bar",
262
- "line",
263
- "pie",
264
- "area",
265
- "donut"
266
- ]
267
- },
268
- "showLegend": {
269
- "type": "boolean",
270
- "default": true
271
271
  }
272
272
  },
273
273
  "scope": "instance"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-pagination",
3
3
  "version": "1.0.0",
4
- "description": "std-pagination as a Function — single primitive: pagination control.\nThe Pagination UI component emits `{page}` for page changes; the atom's\nPAGE event payload matches that shape. ITEMS_LOADED accepts an upstream\ndata-loaded event payload `{data : [object]}` and derives totalPages =\nceil(len(data) / pageSize). Molecules wire e.g.\n`FilteredItemBrowse.BrowseItemLoaded -> ITEMS_LOADED` to keep the\npagination control in lockstep with the data hub. The PagedItem entity\npersists currentPage and the derived totalPages so reads from\n@entity.totalPages reflect the latest row count.",
4
+ "description": "std-pagination — single primitive: pagination control. PAGE accepts the Pagination component's `{page}` emit; ITEMS_LOADED accepts an upstream `{data:[object]}` payload and derives totalPages = ceil(len/pageSize). Molecules wire `BrowseItemLoaded -> ITEMS_LOADED` to keep it in lockstep with the data hub.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "PagedItemOrbital",
@@ -130,10 +130,10 @@
130
130
  "main",
131
131
  {
132
132
  "type": "pagination",
133
- "totalPages": "@entity.totalPages",
134
133
  "pageChangeEvent": "@config.event",
135
- "showPageSize": false,
136
- "currentPage": "@entity.currentPage"
134
+ "currentPage": "@entity.currentPage",
135
+ "totalPages": "@entity.totalPages",
136
+ "showPageSize": false
137
137
  }
138
138
  ]
139
139
  ]
@@ -148,10 +148,10 @@
148
148
  "main",
149
149
  {
150
150
  "type": "pagination",
151
- "pageChangeEvent": "@config.event",
152
- "showPageSize": false,
153
151
  "totalPages": "@entity.totalPages",
154
- "currentPage": "@entity.currentPage"
152
+ "pageChangeEvent": "@config.event",
153
+ "currentPage": "@entity.currentPage",
154
+ "showPageSize": false
155
155
  }
156
156
  ]
157
157
  ]
@@ -170,11 +170,11 @@
170
170
  "render-ui",
171
171
  "main",
172
172
  {
173
+ "currentPage": "@entity.currentPage",
174
+ "showPageSize": false,
173
175
  "totalPages": "@entity.totalPages",
174
176
  "type": "pagination",
175
- "pageChangeEvent": "@config.event",
176
- "currentPage": "@entity.currentPage",
177
- "showPageSize": false
177
+ "pageChangeEvent": "@config.event"
178
178
  }
179
179
  ]
180
180
  ]
@@ -200,11 +200,11 @@
200
200
  "render-ui",
201
201
  "main",
202
202
  {
203
- "pageChangeEvent": "@config.event",
204
- "showPageSize": false,
203
+ "type": "pagination",
205
204
  "currentPage": "@entity.currentPage",
205
+ "pageChangeEvent": "@config.event",
206
206
  "totalPages": "@entity.totalPages",
207
- "type": "pagination"
207
+ "showPageSize": false
208
208
  }
209
209
  ]
210
210
  ]
@@ -212,13 +212,13 @@
212
212
  ]
213
213
  },
214
214
  "config": {
215
- "event": {
216
- "type": "string",
217
- "default": "PAGE"
218
- },
219
215
  "pageSize": {
220
216
  "type": "number",
221
217
  "default": 10.0
218
+ },
219
+ "event": {
220
+ "type": "string",
221
+ "default": "PAGE"
222
222
  }
223
223
  },
224
224
  "scope": "instance"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-search",
3
3
  "version": "1.0.0",
4
- "description": "std-search as a Function — single primitive: search-input. The atom's\nown SearchResult entity is the UI-state container — SEARCH persists\n@payload.searchTerm (matching the SearchInput component's emit shape)\ninto @entity.searchTerm. Cross-trait listeners route the same payload\nfield to data atoms (Browse REFETCH_QUERY).",
4
+ "description": "std-search — single primitive: search-input. Owns a SearchResult runtime entity; SEARCH persists @payload.searchTerm (matching SearchInput's emit shape) so cross-trait listeners can route it into data atoms (Browse REFETCH_QUERY).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "SearchResultOrbital",
@@ -71,9 +71,9 @@
71
71
  "render-ui",
72
72
  "main",
73
73
  {
74
- "event": "@config.event",
75
74
  "placeholder": "@config.placeholder",
76
- "type": "search-input"
75
+ "type": "search-input",
76
+ "event": "@config.event"
77
77
  }
78
78
  ]
79
79
  ]
@@ -93,8 +93,8 @@
93
93
  "main",
94
94
  {
95
95
  "placeholder": "@config.placeholder",
96
- "type": "search-input",
97
- "event": "@config.event"
96
+ "event": "@config.event",
97
+ "type": "search-input"
98
98
  }
99
99
  ]
100
100
  ]
@@ -102,13 +102,13 @@
102
102
  ]
103
103
  },
104
104
  "config": {
105
- "placeholder": {
106
- "type": "string",
107
- "default": "Search…"
108
- },
109
105
  "event": {
110
106
  "type": "string",
111
107
  "default": "SEARCH"
108
+ },
109
+ "placeholder": {
110
+ "type": "string",
111
+ "default": "Search…"
112
112
  }
113
113
  },
114
114
  "scope": "instance"