@almadar/std 16.148.0 → 16.150.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +86 -41
- package/behaviors/lolo/ui/core/atoms/std-board.lolo +29 -16
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +190 -86
- package/behaviors/lolo/ui/core/atoms/std-dashboard-grid-embedded.lolo +8 -0
- package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-stats.lolo +14 -10
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -29
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +1 -0
- package/behaviors/registry/factory-signatures.json +9 -13
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +39 -4
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +242 -50
- package/behaviors/registry/ui/core/atoms/std-board.orb +86 -20
- package/behaviors/registry/ui/core/atoms/std-browse.orb +423 -125
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +41 -29
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +0 -3
- package/behaviors/registry/ui/core/atoms/std-stats.orb +267 -238
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -38
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +5 -0
- package/dist/behaviors/behaviors-embeddings.json +200 -200
- package/dist/behaviors/behaviors-registry.json +34 -18
- package/dist/behaviors/exports-reader.js +33 -3
- package/dist/behaviors/functions/index.d.ts +41 -54
- package/dist/behaviors/functions/index.js +31 -3
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +34 -4
- package/dist/behaviors/knob-embeddings.json +1 -1
- package/dist/behaviors/query.js +33 -3
- package/dist/behaviors/registry/factory-signatures.json +9 -13
- package/dist/behaviors/registry/ui/core/atoms/std-app-search.orb +39 -4
- package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +242 -50
- package/dist/behaviors/registry/ui/core/atoms/std-board.orb +86 -20
- package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +423 -125
- package/dist/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +41 -29
- package/dist/behaviors/registry/ui/core/atoms/std-file-store.orb +0 -3
- package/dist/behaviors/registry/ui/core/atoms/std-stats.orb +267 -238
- package/dist/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -38
- package/dist/behaviors/registry/ui/core/organisms/ui-entity-table.orb +5 -0
- package/dist/behaviors-embeddings.json +200 -200
- package/dist/behaviors-registry.json +34 -18
- package/dist/index.d.ts +1 -1
- package/dist/index.js +34 -4
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +9 -13
- package/package.json +9 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "std-browse as a Function — single primitive: data-grid. Owns the fetch + REFETCH (query/filter/page) state machine. Consumers configure fields/imageField/itemActions/cols/gap/variant; the atom renders the grid. Each `fields[]` entry accepts `{ name, label, variant }` plus optional `referenceEntity` + `displayField` to render a foreign-key column as the joined entity's display value (data-grid resolves @list[referenceEntity] at render time when both keys are present). `browseLook` (table default / dense / feed / gallery) selects one of
|
|
2
|
+
"description": "std-browse as a Function — single primitive: data-grid. Owns the fetch + REFETCH (query/filter/page) state machine. Consumers configure fields/imageField/itemActions/cols/gap/variant; the atom renders the grid. Each `fields[]` entry accepts `{ name, label, variant }` plus optional `referenceEntity` + `displayField` to render a foreign-key column as the joined entity's display value (data-grid resolves @list[referenceEntity] at render time when both keys are present). `browseLook` (table default / dense / feed / gallery / master-detail / triage) selects one of six render bodies; dense/feed/gallery were folded in from std-browse-dense/-feed/-gallery (Phase 5.B); master-detail (split record view driven by the guarded VIEW/CLOSE self-transitions) and triage (inbox rows) were folded in 2026-07-26. Consumers retarget by setting browseLook.",
|
|
3
3
|
"ledger": {
|
|
4
4
|
"entries": {
|
|
5
5
|
"ent_01KXG04FVGGWM52VJZVMAEG5H0": {
|
|
@@ -91,6 +91,15 @@
|
|
|
91
91
|
"parent": "trt_01KXG04FVGGKHGXMTQZAJY1308",
|
|
92
92
|
"renames": []
|
|
93
93
|
},
|
|
94
|
+
"evt_01KYG176Z4DTZ2W62WXFKKSXJV": {
|
|
95
|
+
"bakedName": "CLOSE",
|
|
96
|
+
"curName": "CLOSE",
|
|
97
|
+
"id": "evt_01KYG176Z4DTZ2W62WXFKKSXJV",
|
|
98
|
+
"kind": "event",
|
|
99
|
+
"owner": "workspace",
|
|
100
|
+
"parent": "trt_01KXG04FVGGKHGXMTQZAJY1308",
|
|
101
|
+
"renames": []
|
|
102
|
+
},
|
|
94
103
|
"orb_01KXG04FVG2QCHAX67XWPG65GZ": {
|
|
95
104
|
"bakedName": "BrowseItemOrbital",
|
|
96
105
|
"curName": "BrowseItemOrbital",
|
|
@@ -130,6 +139,14 @@
|
|
|
130
139
|
"kind": "trait",
|
|
131
140
|
"owner": "workspace",
|
|
132
141
|
"renames": []
|
|
142
|
+
},
|
|
143
|
+
"trt_01KYG176Z400JFKWZ2XPKJ4798": {
|
|
144
|
+
"bakedName": "MasterListView",
|
|
145
|
+
"curName": "MasterListView",
|
|
146
|
+
"id": "trt_01KYG176Z400JFKWZ2XPKJ4798",
|
|
147
|
+
"kind": "trait",
|
|
148
|
+
"owner": "workspace",
|
|
149
|
+
"renames": []
|
|
133
150
|
}
|
|
134
151
|
},
|
|
135
152
|
"schemaVersion": 1
|
|
@@ -216,6 +233,10 @@
|
|
|
216
233
|
"default": "@config.itemActions",
|
|
217
234
|
"type": "unknown"
|
|
218
235
|
},
|
|
236
|
+
"maxInlineActions": {
|
|
237
|
+
"default": "@config.maxInlineActions",
|
|
238
|
+
"type": "unknown"
|
|
239
|
+
},
|
|
219
240
|
"pageSize": {
|
|
220
241
|
"default": "@config.displayPageSize",
|
|
221
242
|
"type": "unknown"
|
|
@@ -264,7 +285,7 @@
|
|
|
264
285
|
"type": "unknown"
|
|
265
286
|
},
|
|
266
287
|
"selectable": {
|
|
267
|
-
"default":
|
|
288
|
+
"default": "@config.selectable",
|
|
268
289
|
"type": "unknown"
|
|
269
290
|
}
|
|
270
291
|
},
|
|
@@ -284,6 +305,45 @@
|
|
|
284
305
|
"name": "DenseTableView",
|
|
285
306
|
"ref": "TableView.traits.TableViewRender"
|
|
286
307
|
},
|
|
308
|
+
{
|
|
309
|
+
"config": {
|
|
310
|
+
"fields": {
|
|
311
|
+
"default": "@config.fields",
|
|
312
|
+
"type": "unknown"
|
|
313
|
+
},
|
|
314
|
+
"itemActions": {
|
|
315
|
+
"default": "@config.itemActions",
|
|
316
|
+
"type": "unknown"
|
|
317
|
+
},
|
|
318
|
+
"itemClickEvent": {
|
|
319
|
+
"default": "VIEW",
|
|
320
|
+
"type": "unknown"
|
|
321
|
+
},
|
|
322
|
+
"maxInlineActions": {
|
|
323
|
+
"default": "@config.maxInlineActions",
|
|
324
|
+
"type": "unknown"
|
|
325
|
+
},
|
|
326
|
+
"variant": {
|
|
327
|
+
"default": "compact",
|
|
328
|
+
"type": "unknown"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"id": "trt_01KYG176Z400JFKWZ2XPKJ4798",
|
|
332
|
+
"linkedEntity": "BrowseItem",
|
|
333
|
+
"linkedEntityId": "ent_01KXG04FVGGWM52VJZVMAEG5H0",
|
|
334
|
+
"listens": [
|
|
335
|
+
{
|
|
336
|
+
"event": "BrowseItemLoaded",
|
|
337
|
+
"source": {
|
|
338
|
+
"kind": "trait",
|
|
339
|
+
"trait": "BrowseItemBrowse"
|
|
340
|
+
},
|
|
341
|
+
"triggers": "DataListLoaded"
|
|
342
|
+
}
|
|
343
|
+
],
|
|
344
|
+
"name": "MasterListView",
|
|
345
|
+
"ref": "DataList.traits.DataListRender"
|
|
346
|
+
},
|
|
287
347
|
{
|
|
288
348
|
"category": "interaction",
|
|
289
349
|
"config": {
|
|
@@ -324,7 +384,7 @@
|
|
|
324
384
|
},
|
|
325
385
|
"browseLook": {
|
|
326
386
|
"default": "table",
|
|
327
|
-
"description": "Layer 2 visual treatment for the whole browse surface. table = the default data-grid (bodyContent); dense = spreadsheet-style
|
|
387
|
+
"description": "Layer 2 visual treatment for the whole browse surface. table = the default data-grid (bodyContent); dense = spreadsheet-style table with toolbar search (denseBodyContent); feed = chronological card stream (feedBodyContent); gallery = image-first responsive card grid (galleryBodyContent); master-detail = record-work split view — dense list left, clicked record's detail right (masterDetailBodyContent); triage = inbox-register compact rows for queue work (triageBodyContent). Selecting a non-table look swaps which body tree renders after rows load; any body may still be overridden directly at the call site for a one-off layout.",
|
|
328
388
|
"label": "Browse look",
|
|
329
389
|
"tier": "presentation",
|
|
330
390
|
"type": "string",
|
|
@@ -332,7 +392,9 @@
|
|
|
332
392
|
"table",
|
|
333
393
|
"dense",
|
|
334
394
|
"feed",
|
|
335
|
-
"gallery"
|
|
395
|
+
"gallery",
|
|
396
|
+
"master-detail",
|
|
397
|
+
"triage"
|
|
336
398
|
]
|
|
337
399
|
},
|
|
338
400
|
"categoryBinding": {
|
|
@@ -379,7 +441,12 @@
|
|
|
379
441
|
"align": {
|
|
380
442
|
"name": "align",
|
|
381
443
|
"required": false,
|
|
382
|
-
"type": "string"
|
|
444
|
+
"type": "string",
|
|
445
|
+
"values": [
|
|
446
|
+
"left",
|
|
447
|
+
"center",
|
|
448
|
+
"right"
|
|
449
|
+
]
|
|
383
450
|
},
|
|
384
451
|
"className": {
|
|
385
452
|
"name": "className",
|
|
@@ -394,7 +461,15 @@
|
|
|
394
461
|
"format": {
|
|
395
462
|
"name": "format",
|
|
396
463
|
"required": false,
|
|
397
|
-
"type": "string"
|
|
464
|
+
"type": "string",
|
|
465
|
+
"values": [
|
|
466
|
+
"badge",
|
|
467
|
+
"date",
|
|
468
|
+
"currency",
|
|
469
|
+
"number",
|
|
470
|
+
"percent",
|
|
471
|
+
"boolean"
|
|
472
|
+
]
|
|
398
473
|
},
|
|
399
474
|
"header": {
|
|
400
475
|
"name": "header",
|
|
@@ -414,7 +489,12 @@
|
|
|
414
489
|
"weight": {
|
|
415
490
|
"name": "weight",
|
|
416
491
|
"required": false,
|
|
417
|
-
"type": "string"
|
|
492
|
+
"type": "string",
|
|
493
|
+
"values": [
|
|
494
|
+
"normal",
|
|
495
|
+
"medium",
|
|
496
|
+
"semibold"
|
|
497
|
+
]
|
|
418
498
|
},
|
|
419
499
|
"width": {
|
|
420
500
|
"name": "width",
|
|
@@ -437,14 +517,14 @@
|
|
|
437
517
|
{
|
|
438
518
|
"children": [
|
|
439
519
|
{
|
|
440
|
-
"className": "w-full",
|
|
520
|
+
"className": "w-full max-w-md",
|
|
441
521
|
"clearable": true,
|
|
442
522
|
"event": "REFETCH_QUERY",
|
|
443
523
|
"placeholder": "@config.searchPlaceholder",
|
|
444
524
|
"type": "search-input"
|
|
445
525
|
}
|
|
446
526
|
],
|
|
447
|
-
"className": "
|
|
527
|
+
"className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
|
|
448
528
|
"direction": "horizontal",
|
|
449
529
|
"gap": "sm",
|
|
450
530
|
"type": "stack"
|
|
@@ -459,14 +539,15 @@
|
|
|
459
539
|
"children": [
|
|
460
540
|
"@trait.DenseTableView"
|
|
461
541
|
],
|
|
462
|
-
"className": "
|
|
542
|
+
"className": "overflow-x-auto",
|
|
463
543
|
"direction": "vertical",
|
|
464
544
|
"gap": "none",
|
|
465
545
|
"type": "stack"
|
|
466
546
|
}
|
|
467
547
|
],
|
|
548
|
+
"className": "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
468
549
|
"direction": "vertical",
|
|
469
|
-
"gap": "
|
|
550
|
+
"gap": "none",
|
|
470
551
|
"type": "stack"
|
|
471
552
|
},
|
|
472
553
|
"description": "Render-ui SExpr rendered after rows load when browseLook = dense. Spreadsheet-style sticky-header data-table with a search bar; composes columns/itemActions/maxInlineActions/displayPageSize/searchPlaceholder. Folded from std-browse-dense (Phase 5.B).",
|
|
@@ -481,6 +562,22 @@
|
|
|
481
562
|
"tier": "internal",
|
|
482
563
|
"type": "string"
|
|
483
564
|
},
|
|
565
|
+
"detailFields": {
|
|
566
|
+
"default": [
|
|
567
|
+
"name",
|
|
568
|
+
"description",
|
|
569
|
+
"status",
|
|
570
|
+
"createdAt"
|
|
571
|
+
],
|
|
572
|
+
"description": "Field names shown in the detail panel when browseLook = master-detail; the first entry doubles as the pane title. Consumers overriding columns/fields should override this list to match their entity.",
|
|
573
|
+
"items": {
|
|
574
|
+
"type": "string"
|
|
575
|
+
},
|
|
576
|
+
"label": "Which fields appear in the master-detail record pane?",
|
|
577
|
+
"synonyms": "detail columns, record fields, detail pane fields",
|
|
578
|
+
"tier": "presentation",
|
|
579
|
+
"type": "[string]"
|
|
580
|
+
},
|
|
484
581
|
"displayPageSize": {
|
|
485
582
|
"default": 10.0,
|
|
486
583
|
"description": "Rows visible per page before the pagination control appears.",
|
|
@@ -603,6 +700,7 @@
|
|
|
603
700
|
],
|
|
604
701
|
"className": "rounded-lg bg-[var(--color-card)] border border-[var(--color-border)] shadow-sm transition-all duration-normal hover:shadow-main hover:border-[var(--color-border-strong)] hover:-translate-y-px",
|
|
605
702
|
"look": "flat-bordered",
|
|
703
|
+
"padding": "none",
|
|
606
704
|
"type": "card"
|
|
607
705
|
}
|
|
608
706
|
],
|
|
@@ -644,7 +742,14 @@
|
|
|
644
742
|
"format": {
|
|
645
743
|
"name": "format",
|
|
646
744
|
"required": false,
|
|
647
|
-
"type": "string"
|
|
745
|
+
"type": "string",
|
|
746
|
+
"values": [
|
|
747
|
+
"date",
|
|
748
|
+
"currency",
|
|
749
|
+
"number",
|
|
750
|
+
"boolean",
|
|
751
|
+
"percent"
|
|
752
|
+
]
|
|
648
753
|
},
|
|
649
754
|
"header": {
|
|
650
755
|
"name": "header",
|
|
@@ -674,7 +779,16 @@
|
|
|
674
779
|
"variant": {
|
|
675
780
|
"name": "variant",
|
|
676
781
|
"required": false,
|
|
677
|
-
"type": "string"
|
|
782
|
+
"type": "string",
|
|
783
|
+
"values": [
|
|
784
|
+
"h3",
|
|
785
|
+
"h4",
|
|
786
|
+
"body",
|
|
787
|
+
"caption",
|
|
788
|
+
"badge",
|
|
789
|
+
"small",
|
|
790
|
+
"progress"
|
|
791
|
+
]
|
|
678
792
|
}
|
|
679
793
|
},
|
|
680
794
|
"type": "object"
|
|
@@ -732,7 +846,7 @@
|
|
|
732
846
|
"type": "search-input"
|
|
733
847
|
}
|
|
734
848
|
],
|
|
735
|
-
"className": "sticky top-0 z-10
|
|
849
|
+
"className": "sticky top-0 z-10 py-3 bg-[var(--color-surface)]/95 backdrop-blur",
|
|
736
850
|
"direction": "horizontal",
|
|
737
851
|
"gap": "sm",
|
|
738
852
|
"type": "stack"
|
|
@@ -746,95 +860,12 @@
|
|
|
746
860
|
{
|
|
747
861
|
"className": "w-full",
|
|
748
862
|
"entity": "@payload.data",
|
|
749
|
-
"fields":
|
|
863
|
+
"fields": "@config.fields",
|
|
750
864
|
"gap": "lg",
|
|
865
|
+
"imageField": "@config.imageField",
|
|
751
866
|
"itemActions": "@config.itemActions",
|
|
752
867
|
"maxInlineActions": "@config.maxInlineActions",
|
|
753
868
|
"minCardWidth": 260.0,
|
|
754
|
-
"renderItem": [
|
|
755
|
-
"fn",
|
|
756
|
-
"item",
|
|
757
|
-
{
|
|
758
|
-
"children": [
|
|
759
|
-
{
|
|
760
|
-
"align": "center",
|
|
761
|
-
"children": [
|
|
762
|
-
{
|
|
763
|
-
"className": "text-muted-foreground opacity-50 transition-transform duration-normal group-hover:scale-105",
|
|
764
|
-
"name": "image",
|
|
765
|
-
"size": "lg",
|
|
766
|
-
"type": "icon"
|
|
767
|
-
},
|
|
768
|
-
{
|
|
769
|
-
"className": "px-2 text-center truncate max-w-full",
|
|
770
|
-
"color": "muted",
|
|
771
|
-
"content": "@config.imageLabelBinding",
|
|
772
|
-
"type": "typography",
|
|
773
|
-
"variant": "caption"
|
|
774
|
-
},
|
|
775
|
-
{
|
|
776
|
-
"align": "center",
|
|
777
|
-
"children": [
|
|
778
|
-
{
|
|
779
|
-
"label": "@config.priceBinding",
|
|
780
|
-
"type": "badge",
|
|
781
|
-
"variant": "primary"
|
|
782
|
-
}
|
|
783
|
-
],
|
|
784
|
-
"className": "absolute top-2 right-2",
|
|
785
|
-
"direction": "horizontal",
|
|
786
|
-
"gap": "xs",
|
|
787
|
-
"type": "stack"
|
|
788
|
-
},
|
|
789
|
-
{
|
|
790
|
-
"align": "center",
|
|
791
|
-
"children": [
|
|
792
|
-
{
|
|
793
|
-
"label": "@config.badgeBinding",
|
|
794
|
-
"type": "badge",
|
|
795
|
-
"variant": "neutral"
|
|
796
|
-
}
|
|
797
|
-
],
|
|
798
|
-
"className": "absolute top-2 left-2",
|
|
799
|
-
"direction": "horizontal",
|
|
800
|
-
"gap": "xs",
|
|
801
|
-
"type": "stack"
|
|
802
|
-
}
|
|
803
|
-
],
|
|
804
|
-
"className": "relative aspect-square w-full bg-muted overflow-hidden",
|
|
805
|
-
"direction": "vertical",
|
|
806
|
-
"gap": "xs",
|
|
807
|
-
"justify": "center",
|
|
808
|
-
"type": "stack"
|
|
809
|
-
},
|
|
810
|
-
{
|
|
811
|
-
"children": [
|
|
812
|
-
{
|
|
813
|
-
"className": "truncate",
|
|
814
|
-
"content": "@config.titleBinding",
|
|
815
|
-
"type": "typography",
|
|
816
|
-
"variant": "h4"
|
|
817
|
-
},
|
|
818
|
-
{
|
|
819
|
-
"className": "line-clamp-2",
|
|
820
|
-
"color": "muted",
|
|
821
|
-
"content": "@config.descriptionBinding",
|
|
822
|
-
"type": "typography",
|
|
823
|
-
"variant": "caption"
|
|
824
|
-
}
|
|
825
|
-
],
|
|
826
|
-
"className": "p-card-md",
|
|
827
|
-
"direction": "vertical",
|
|
828
|
-
"gap": "xs",
|
|
829
|
-
"type": "stack"
|
|
830
|
-
}
|
|
831
|
-
],
|
|
832
|
-
"className": "group rounded-lg overflow-hidden bg-[var(--color-card)] border border-[var(--color-border)] shadow-sm hover:shadow-hover hover:-translate-y-0.5 transition-all duration-normal cursor-pointer",
|
|
833
|
-
"direction": "vertical",
|
|
834
|
-
"gap": "sm",
|
|
835
|
-
"type": "stack"
|
|
836
|
-
}
|
|
837
|
-
],
|
|
838
869
|
"type": "data-grid"
|
|
839
870
|
}
|
|
840
871
|
],
|
|
@@ -843,7 +874,7 @@
|
|
|
843
874
|
"gap": "lg",
|
|
844
875
|
"type": "stack"
|
|
845
876
|
},
|
|
846
|
-
"description": "Render-ui SExpr rendered after rows load when browseLook = gallery. Image-first responsive card grid
|
|
877
|
+
"description": "Render-ui SExpr rendered after rows load when browseLook = gallery. Image-first responsive card grid (auto-fit minCardWidth) on the data-grid fields path: imageField renders the card photo when set (falsy-safe when empty), fields drive title/badges/meta. One tree, no renderItem lambda — lambdas do not survive inside (if) arms (2026-07-27).",
|
|
847
878
|
"label": "Gallery look body",
|
|
848
879
|
"tier": "internal",
|
|
849
880
|
"type": "render-ui"
|
|
@@ -899,7 +930,13 @@
|
|
|
899
930
|
"variant": {
|
|
900
931
|
"name": "variant",
|
|
901
932
|
"required": false,
|
|
902
|
-
"type": "string"
|
|
933
|
+
"type": "string",
|
|
934
|
+
"values": [
|
|
935
|
+
"primary",
|
|
936
|
+
"secondary",
|
|
937
|
+
"ghost",
|
|
938
|
+
"danger"
|
|
939
|
+
]
|
|
903
940
|
}
|
|
904
941
|
},
|
|
905
942
|
"type": "object"
|
|
@@ -909,8 +946,115 @@
|
|
|
909
946
|
"tier": "presentation",
|
|
910
947
|
"type": "[ItemAction]"
|
|
911
948
|
},
|
|
949
|
+
"masterDetailBodyContent": {
|
|
950
|
+
"default": {
|
|
951
|
+
"children": [
|
|
952
|
+
{
|
|
953
|
+
"children": [
|
|
954
|
+
{
|
|
955
|
+
"className": "w-full max-w-md",
|
|
956
|
+
"clearable": true,
|
|
957
|
+
"event": "REFETCH_QUERY",
|
|
958
|
+
"placeholder": "@config.searchPlaceholder",
|
|
959
|
+
"type": "search-input"
|
|
960
|
+
}
|
|
961
|
+
],
|
|
962
|
+
"className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
|
|
963
|
+
"direction": "horizontal",
|
|
964
|
+
"gap": "sm",
|
|
965
|
+
"type": "stack"
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"detail": {
|
|
969
|
+
"children": [],
|
|
970
|
+
"gap": "none",
|
|
971
|
+
"type": "stack"
|
|
972
|
+
},
|
|
973
|
+
"emptyDetail": {
|
|
974
|
+
"description": "Select a record from the list to see its details.",
|
|
975
|
+
"icon": "mouse-pointer-click",
|
|
976
|
+
"title": "Nothing selected",
|
|
977
|
+
"type": "empty-state"
|
|
978
|
+
},
|
|
979
|
+
"hasSelection": false,
|
|
980
|
+
"master": {
|
|
981
|
+
"children": [
|
|
982
|
+
"@trait.MasterListView"
|
|
983
|
+
],
|
|
984
|
+
"className": "overflow-y-auto",
|
|
985
|
+
"direction": "vertical",
|
|
986
|
+
"gap": "none",
|
|
987
|
+
"type": "stack"
|
|
988
|
+
},
|
|
989
|
+
"type": "master-detail-layout"
|
|
990
|
+
}
|
|
991
|
+
],
|
|
992
|
+
"className": "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
993
|
+
"direction": "vertical",
|
|
994
|
+
"gap": "none",
|
|
995
|
+
"type": "stack"
|
|
996
|
+
},
|
|
997
|
+
"description": "Render-ui SExpr rendered after rows load when browseLook = master-detail: record-work split view — toolbar search, dense list left, empty-state pane right until a row is opened. Opening a row renders masterDetailRecordBodyContent. The toolbar is always present in this look (bodySearch does not apply).",
|
|
998
|
+
"label": "Master-detail look body (no selection)",
|
|
999
|
+
"tier": "internal",
|
|
1000
|
+
"type": "render-ui"
|
|
1001
|
+
},
|
|
1002
|
+
"masterDetailRecordBodyContent": {
|
|
1003
|
+
"default": {
|
|
1004
|
+
"children": [
|
|
1005
|
+
{
|
|
1006
|
+
"children": [
|
|
1007
|
+
{
|
|
1008
|
+
"className": "w-full max-w-md",
|
|
1009
|
+
"clearable": true,
|
|
1010
|
+
"event": "REFETCH_QUERY",
|
|
1011
|
+
"placeholder": "@config.searchPlaceholder",
|
|
1012
|
+
"type": "search-input"
|
|
1013
|
+
}
|
|
1014
|
+
],
|
|
1015
|
+
"className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
|
|
1016
|
+
"direction": "horizontal",
|
|
1017
|
+
"gap": "sm",
|
|
1018
|
+
"type": "stack"
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
"detail": {
|
|
1022
|
+
"actions": [
|
|
1023
|
+
{
|
|
1024
|
+
"event": "CLOSE",
|
|
1025
|
+
"label": "Close"
|
|
1026
|
+
}
|
|
1027
|
+
],
|
|
1028
|
+
"fieldNames": "@config.detailFields",
|
|
1029
|
+
"initialData": "@payload.row",
|
|
1030
|
+
"showActions": false,
|
|
1031
|
+
"type": "detail-panel"
|
|
1032
|
+
},
|
|
1033
|
+
"hasSelection": true,
|
|
1034
|
+
"master": {
|
|
1035
|
+
"children": [
|
|
1036
|
+
"@trait.MasterListView"
|
|
1037
|
+
],
|
|
1038
|
+
"className": "overflow-y-auto",
|
|
1039
|
+
"direction": "vertical",
|
|
1040
|
+
"gap": "none",
|
|
1041
|
+
"type": "stack"
|
|
1042
|
+
},
|
|
1043
|
+
"type": "master-detail-layout"
|
|
1044
|
+
}
|
|
1045
|
+
],
|
|
1046
|
+
"className": "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
1047
|
+
"direction": "vertical",
|
|
1048
|
+
"gap": "none",
|
|
1049
|
+
"type": "stack"
|
|
1050
|
+
},
|
|
1051
|
+
"description": "Render-ui SExpr rendered by the VIEW transition when browseLook = master-detail: the same split view with the clicked record's detail panel on the right, fed by the VIEW payload row and detailFields.",
|
|
1052
|
+
"label": "Master-detail look body (record open)",
|
|
1053
|
+
"tier": "internal",
|
|
1054
|
+
"type": "render-ui"
|
|
1055
|
+
},
|
|
912
1056
|
"maxInlineActions": {
|
|
913
|
-
"default":
|
|
1057
|
+
"default": 3.0,
|
|
914
1058
|
"description": "Actions beyond this count collapse into a '⋯' overflow menu. Set 2–3 for dense tables.",
|
|
915
1059
|
"label": "How many row actions to show before collapsing?",
|
|
916
1060
|
"synonyms": "inline actions limit, overflow threshold, max buttons per row",
|
|
@@ -954,6 +1098,14 @@
|
|
|
954
1098
|
"tier": "presentation",
|
|
955
1099
|
"type": "string"
|
|
956
1100
|
},
|
|
1101
|
+
"selectable": {
|
|
1102
|
+
"default": false,
|
|
1103
|
+
"description": "Adds a checkbox column with select-all to the dense table. Enable only when the surface offers bulk actions — checkboxes with nothing to act on are a dead affordance.",
|
|
1104
|
+
"label": "Show row selection checkboxes?",
|
|
1105
|
+
"synonyms": "row checkboxes, multi-select, bulk select, selection column",
|
|
1106
|
+
"tier": "presentation",
|
|
1107
|
+
"type": "boolean"
|
|
1108
|
+
},
|
|
957
1109
|
"titleBinding": {
|
|
958
1110
|
"default": "@item.name",
|
|
959
1111
|
"description": "Binding path for the card title slot (e.g. @item.dishName).",
|
|
@@ -961,6 +1113,60 @@
|
|
|
961
1113
|
"tier": "internal",
|
|
962
1114
|
"type": "string"
|
|
963
1115
|
},
|
|
1116
|
+
"triageBodyContent": {
|
|
1117
|
+
"default": {
|
|
1118
|
+
"children": [
|
|
1119
|
+
[
|
|
1120
|
+
"if",
|
|
1121
|
+
"@config.bodySearch",
|
|
1122
|
+
{
|
|
1123
|
+
"children": [
|
|
1124
|
+
{
|
|
1125
|
+
"className": "w-full max-w-md",
|
|
1126
|
+
"clearable": true,
|
|
1127
|
+
"event": "REFETCH_QUERY",
|
|
1128
|
+
"placeholder": "@config.searchPlaceholder",
|
|
1129
|
+
"type": "search-input"
|
|
1130
|
+
}
|
|
1131
|
+
],
|
|
1132
|
+
"className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
|
|
1133
|
+
"direction": "horizontal",
|
|
1134
|
+
"gap": "sm",
|
|
1135
|
+
"type": "stack"
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"children": [],
|
|
1139
|
+
"gap": "none",
|
|
1140
|
+
"type": "stack"
|
|
1141
|
+
}
|
|
1142
|
+
],
|
|
1143
|
+
{
|
|
1144
|
+
"children": [
|
|
1145
|
+
{
|
|
1146
|
+
"entity": "@payload.data",
|
|
1147
|
+
"fields": "@config.fields",
|
|
1148
|
+
"itemActions": "@config.itemActions",
|
|
1149
|
+
"maxInlineActions": "@config.maxInlineActions",
|
|
1150
|
+
"type": "data-list",
|
|
1151
|
+
"variant": "compact"
|
|
1152
|
+
}
|
|
1153
|
+
],
|
|
1154
|
+
"className": "overflow-x-auto",
|
|
1155
|
+
"direction": "vertical",
|
|
1156
|
+
"gap": "none",
|
|
1157
|
+
"type": "stack"
|
|
1158
|
+
}
|
|
1159
|
+
],
|
|
1160
|
+
"className": "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
1161
|
+
"direction": "vertical",
|
|
1162
|
+
"gap": "none",
|
|
1163
|
+
"type": "stack"
|
|
1164
|
+
},
|
|
1165
|
+
"description": "Render-ui SExpr rendered after rows load when browseLook = triage. Inbox-register queue: one surface with a toolbar search and compact list rows (title + badges + inline meta) built for keyboard-pace queue work; row actions collapse per maxInlineActions. Composes fields/itemActions/searchPlaceholder/bodySearch.",
|
|
1166
|
+
"label": "Triage look body",
|
|
1167
|
+
"tier": "internal",
|
|
1168
|
+
"type": "render-ui"
|
|
1169
|
+
},
|
|
964
1170
|
"viewPattern": {
|
|
965
1171
|
"default": "data-grid",
|
|
966
1172
|
"description": "UI pattern used to render the collection. Used by the default bodyContent tree; Layer 3 variants override bodyContent directly instead and may ignore this knob.",
|
|
@@ -1285,6 +1491,11 @@
|
|
|
1285
1491
|
"synonyms": "display, show, update, render",
|
|
1286
1492
|
"tier": "domain"
|
|
1287
1493
|
},
|
|
1494
|
+
{
|
|
1495
|
+
"id": "evt_01KYG176Z4DTZ2W62WXFKKSXJV",
|
|
1496
|
+
"key": "CLOSE",
|
|
1497
|
+
"name": "Close"
|
|
1498
|
+
},
|
|
1288
1499
|
{
|
|
1289
1500
|
"description": "Signals a request to edit the selected item.",
|
|
1290
1501
|
"id": "evt_01KXG04FVGRP1SF2QXKEBQ3GNQ",
|
|
@@ -1403,8 +1614,8 @@
|
|
|
1403
1614
|
"render-ui",
|
|
1404
1615
|
"main",
|
|
1405
1616
|
{
|
|
1406
|
-
"
|
|
1407
|
-
"type": "
|
|
1617
|
+
"rows": 4.0,
|
|
1618
|
+
"type": "skeleton"
|
|
1408
1619
|
}
|
|
1409
1620
|
]
|
|
1410
1621
|
],
|
|
@@ -1452,9 +1663,35 @@
|
|
|
1452
1663
|
"@config.galleryBodyContent"
|
|
1453
1664
|
],
|
|
1454
1665
|
[
|
|
1455
|
-
"
|
|
1456
|
-
|
|
1457
|
-
|
|
1666
|
+
"if",
|
|
1667
|
+
[
|
|
1668
|
+
"=",
|
|
1669
|
+
"@config.browseLook",
|
|
1670
|
+
"master-detail"
|
|
1671
|
+
],
|
|
1672
|
+
[
|
|
1673
|
+
"render-ui",
|
|
1674
|
+
"main",
|
|
1675
|
+
"@config.masterDetailBodyContent"
|
|
1676
|
+
],
|
|
1677
|
+
[
|
|
1678
|
+
"if",
|
|
1679
|
+
[
|
|
1680
|
+
"=",
|
|
1681
|
+
"@config.browseLook",
|
|
1682
|
+
"triage"
|
|
1683
|
+
],
|
|
1684
|
+
[
|
|
1685
|
+
"render-ui",
|
|
1686
|
+
"main",
|
|
1687
|
+
"@config.triageBodyContent"
|
|
1688
|
+
],
|
|
1689
|
+
[
|
|
1690
|
+
"render-ui",
|
|
1691
|
+
"main",
|
|
1692
|
+
"@config.bodyContent"
|
|
1693
|
+
]
|
|
1694
|
+
]
|
|
1458
1695
|
]
|
|
1459
1696
|
]
|
|
1460
1697
|
]
|
|
@@ -1471,16 +1708,10 @@
|
|
|
1471
1708
|
"render-ui",
|
|
1472
1709
|
"main",
|
|
1473
1710
|
{
|
|
1474
|
-
"
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
"type": "typography",
|
|
1479
|
-
"variant": "caption"
|
|
1480
|
-
}
|
|
1481
|
-
],
|
|
1482
|
-
"direction": "vertical",
|
|
1483
|
-
"type": "stack"
|
|
1711
|
+
"message": "@payload.error",
|
|
1712
|
+
"title": "Couldn't load this list",
|
|
1713
|
+
"type": "alert",
|
|
1714
|
+
"variant": "error"
|
|
1484
1715
|
}
|
|
1485
1716
|
]
|
|
1486
1717
|
],
|
|
@@ -1507,8 +1738,8 @@
|
|
|
1507
1738
|
"render-ui",
|
|
1508
1739
|
"main",
|
|
1509
1740
|
{
|
|
1510
|
-
"
|
|
1511
|
-
"type": "
|
|
1741
|
+
"rows": 4.0,
|
|
1742
|
+
"type": "skeleton"
|
|
1512
1743
|
}
|
|
1513
1744
|
]
|
|
1514
1745
|
],
|
|
@@ -1619,6 +1850,42 @@
|
|
|
1619
1850
|
"from": "browsing",
|
|
1620
1851
|
"to": "browsing"
|
|
1621
1852
|
},
|
|
1853
|
+
{
|
|
1854
|
+
"effects": [
|
|
1855
|
+
[
|
|
1856
|
+
"render-ui",
|
|
1857
|
+
"main",
|
|
1858
|
+
"@config.masterDetailRecordBodyContent"
|
|
1859
|
+
]
|
|
1860
|
+
],
|
|
1861
|
+
"event": "VIEW",
|
|
1862
|
+
"eventId": "evt_01KXG04FVGX3Q7N39AZ68VGPTJ",
|
|
1863
|
+
"from": "browsing",
|
|
1864
|
+
"guard": [
|
|
1865
|
+
"=",
|
|
1866
|
+
"@config.browseLook",
|
|
1867
|
+
"master-detail"
|
|
1868
|
+
],
|
|
1869
|
+
"to": "browsing"
|
|
1870
|
+
},
|
|
1871
|
+
{
|
|
1872
|
+
"effects": [
|
|
1873
|
+
[
|
|
1874
|
+
"render-ui",
|
|
1875
|
+
"main",
|
|
1876
|
+
"@config.masterDetailBodyContent"
|
|
1877
|
+
]
|
|
1878
|
+
],
|
|
1879
|
+
"event": "CLOSE",
|
|
1880
|
+
"eventId": "evt_01KYG176Z4DTZ2W62WXFKKSXJV",
|
|
1881
|
+
"from": "browsing",
|
|
1882
|
+
"guard": [
|
|
1883
|
+
"=",
|
|
1884
|
+
"@config.browseLook",
|
|
1885
|
+
"master-detail"
|
|
1886
|
+
],
|
|
1887
|
+
"to": "browsing"
|
|
1888
|
+
},
|
|
1622
1889
|
{
|
|
1623
1890
|
"effects": [
|
|
1624
1891
|
[
|
|
@@ -1658,9 +1925,35 @@
|
|
|
1658
1925
|
"@config.galleryBodyContent"
|
|
1659
1926
|
],
|
|
1660
1927
|
[
|
|
1661
|
-
"
|
|
1662
|
-
|
|
1663
|
-
|
|
1928
|
+
"if",
|
|
1929
|
+
[
|
|
1930
|
+
"=",
|
|
1931
|
+
"@config.browseLook",
|
|
1932
|
+
"master-detail"
|
|
1933
|
+
],
|
|
1934
|
+
[
|
|
1935
|
+
"render-ui",
|
|
1936
|
+
"main",
|
|
1937
|
+
"@config.masterDetailBodyContent"
|
|
1938
|
+
],
|
|
1939
|
+
[
|
|
1940
|
+
"if",
|
|
1941
|
+
[
|
|
1942
|
+
"=",
|
|
1943
|
+
"@config.browseLook",
|
|
1944
|
+
"triage"
|
|
1945
|
+
],
|
|
1946
|
+
[
|
|
1947
|
+
"render-ui",
|
|
1948
|
+
"main",
|
|
1949
|
+
"@config.triageBodyContent"
|
|
1950
|
+
],
|
|
1951
|
+
[
|
|
1952
|
+
"render-ui",
|
|
1953
|
+
"main",
|
|
1954
|
+
"@config.bodyContent"
|
|
1955
|
+
]
|
|
1956
|
+
]
|
|
1664
1957
|
]
|
|
1665
1958
|
]
|
|
1666
1959
|
]
|
|
@@ -1689,8 +1982,8 @@
|
|
|
1689
1982
|
"render-ui",
|
|
1690
1983
|
"main",
|
|
1691
1984
|
{
|
|
1692
|
-
"
|
|
1693
|
-
"type": "
|
|
1985
|
+
"rows": 4.0,
|
|
1986
|
+
"type": "skeleton"
|
|
1694
1987
|
}
|
|
1695
1988
|
]
|
|
1696
1989
|
],
|
|
@@ -1703,7 +1996,8 @@
|
|
|
1703
1996
|
},
|
|
1704
1997
|
"traitEmbedIds": {
|
|
1705
1998
|
"DataGrid1": "trt_01KXZ44Y965J2Q55E5JN4JKVGR",
|
|
1706
|
-
"DenseTableView": "trt_01KXZ44Y963YXRJDNR4F2M5QHX"
|
|
1999
|
+
"DenseTableView": "trt_01KXZ44Y963YXRJDNR4F2M5QHX",
|
|
2000
|
+
"MasterListView": "trt_01KYG176Z400JFKWZ2XPKJ4798"
|
|
1707
2001
|
}
|
|
1708
2002
|
}
|
|
1709
2003
|
],
|
|
@@ -1719,6 +2013,10 @@
|
|
|
1719
2013
|
{
|
|
1720
2014
|
"as": "TableView",
|
|
1721
2015
|
"from": "std/behaviors/ui-table-view"
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
"as": "DataList",
|
|
2019
|
+
"from": "std/behaviors/ui-data-list"
|
|
1722
2020
|
}
|
|
1723
2021
|
]
|
|
1724
2022
|
}
|