@almadar/std 16.191.0 → 16.193.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +184 -18
  2. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +16 -3
  3. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +6 -0
  4. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +1 -0
  5. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +3 -0
  6. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +37 -4
  7. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +37 -0
  8. package/behaviors/lolo/ui/core/atoms/std-tag-strip.lolo +314 -0
  9. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +195 -13
  10. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +104 -12
  11. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +3 -1
  12. package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +25 -1
  13. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +37 -1
  14. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +46 -1
  15. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +30 -2
  16. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +14 -0
  17. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +25 -0
  18. package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +19 -1
  19. package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +21 -1
  20. package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +15 -1
  21. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +36 -1
  22. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +41 -1
  23. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +34 -1
  24. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +30 -1
  25. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -1
  26. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +39 -1
  27. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +39 -1
  28. package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +24 -1
  29. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +30 -1
  30. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +37 -1
  31. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +18 -1
  32. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +21 -1
  33. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +5 -0
  34. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +16 -1
  35. package/behaviors/lolo/ui/marketing/organisms/ui-book-chapter-view.lolo +12 -1
  36. package/behaviors/lolo/ui/marketing/organisms/ui-book-table-of-contents.lolo +13 -1
  37. package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +23 -1
  38. package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +23 -1
  39. package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +24 -1
  40. package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +22 -1
  41. package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +23 -1
  42. package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +24 -1
  43. package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +22 -1
  44. package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +25 -1
  45. package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +23 -1
  46. package/behaviors/lolo/ui/marketing/templates/ui-about-page-template.lolo +11 -1
  47. package/behaviors/lolo/ui/marketing/templates/ui-feature-detail-page-template.lolo +11 -1
  48. package/behaviors/lolo/ui/marketing/templates/ui-landing-page-template.lolo +13 -1
  49. package/behaviors/lolo/ui/marketing/templates/ui-pricing-page-template.lolo +11 -1
  50. package/behaviors/registry/infra/atoms/std-approval-gate.orb +717 -45
  51. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +85 -10
  52. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +8 -0
  53. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +5 -2
  54. package/behaviors/registry/ui/core/atoms/std-browse.orb +12 -0
  55. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +129 -7
  56. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +316 -0
  57. package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +1360 -0
  58. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +564 -10
  59. package/behaviors/registry/ui/core/atoms/std-tree.orb +427 -66
  60. package/behaviors/registry/ui/core/atoms/std-version-history.orb +5 -1
  61. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +43 -0
  62. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +55 -0
  63. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +64 -0
  64. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +106 -1
  65. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +18 -0
  66. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +41 -0
  67. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +37 -0
  68. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +39 -0
  69. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +45 -0
  70. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +54 -0
  71. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +59 -0
  72. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +52 -0
  73. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +48 -0
  74. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +54 -0
  75. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +57 -0
  76. package/behaviors/registry/ui/core/organisms/ui-form.orb +57 -0
  77. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +42 -0
  78. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +48 -0
  79. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +55 -0
  80. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +36 -0
  81. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +39 -0
  82. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +7 -0
  83. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +34 -0
  84. package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +30 -0
  85. package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +31 -0
  86. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +41 -0
  87. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +41 -0
  88. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +42 -0
  89. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +40 -0
  90. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +41 -0
  91. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +42 -0
  92. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +40 -0
  93. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +43 -0
  94. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +41 -0
  95. package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +29 -0
  96. package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +29 -0
  97. package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +31 -0
  98. package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +29 -0
  99. package/dist/behaviors/exports-reader.js +4884 -1967
  100. package/dist/behaviors/functions/index.d.ts +293 -13
  101. package/dist/behaviors/functions/index.js +4880 -1968
  102. package/dist/behaviors/index.d.ts +1 -1
  103. package/dist/behaviors/index.js +4885 -1968
  104. package/dist/behaviors/query.js +4884 -1967
  105. package/dist/behaviors-embeddings.hash.json +3 -3
  106. package/dist/behaviors-embeddings.json +21 -13
  107. package/dist/behaviors-registry.json +685 -60
  108. package/dist/index.d.ts +1 -1
  109. package/dist/index.js +4885 -1968
  110. package/dist/knob-embeddings.hash.json +3 -3
  111. package/dist/knob-embeddings.json +1 -1
  112. package/dist/registry/factory-signatures.json +1 -1
  113. package/package.json +2 -2
@@ -464,6 +464,13 @@
464
464
  "tier": "presentation",
465
465
  "type": "string"
466
466
  },
467
+ "selfFetch": {
468
+ "default": true,
469
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
470
+ "label": "Fetch its own rows on mount?",
471
+ "tier": "internal",
472
+ "type": "boolean"
473
+ },
467
474
  "sortable": {
468
475
  "description": "Enable in-container reorder; items can be dragged to new positions among siblings",
469
476
  "label": "Sortable",
@@ -657,6 +664,54 @@
657
664
  "event": "INIT",
658
665
  "eventId": "evt_01KXG04N8BTF6MP6RFAPG69EK9",
659
666
  "from": "idle",
667
+ "guard": "@config.selfFetch",
668
+ "to": "idle"
669
+ },
670
+ {
671
+ "effects": [
672
+ [
673
+ "render-ui",
674
+ "main",
675
+ {
676
+ "accepts": "@config.accepts",
677
+ "className": "@config.className",
678
+ "cols": "@config.cols",
679
+ "columns": "@config.columns",
680
+ "dndItemIdField": "@config.dndItemIdField",
681
+ "dndRoot": "@config.dndRoot",
682
+ "dragGroup": "@config.dragGroup",
683
+ "dropEvent": "@config.dropEvent",
684
+ "entity": "@entity",
685
+ "error": "@config.error",
686
+ "fields": "@config.fields",
687
+ "gap": "@config.gap",
688
+ "hasMore": "@config.hasMore",
689
+ "imageField": "@config.imageField",
690
+ "infiniteScroll": "@config.infiniteScroll",
691
+ "isLoading": "@config.isLoading",
692
+ "itemActions": "@config.itemActions",
693
+ "loadMoreEvent": "@config.loadMoreEvent",
694
+ "look": "@config.look",
695
+ "maxInlineActions": "@config.maxInlineActions",
696
+ "minCardWidth": "@config.minCardWidth",
697
+ "pageSize": "@config.pageSize",
698
+ "positionEvent": "@config.positionEvent",
699
+ "reorderEvent": "@config.reorderEvent",
700
+ "scrollX": "@config.scrollX",
701
+ "selectable": "@config.selectable",
702
+ "selectionEvent": "@config.selectionEvent",
703
+ "sortable": "@config.sortable",
704
+ "type": "data-grid"
705
+ }
706
+ ]
707
+ ],
708
+ "event": "INIT",
709
+ "eventId": "evt_01KXG04N8BTF6MP6RFAPG69EK9",
710
+ "from": "idle",
711
+ "guard": [
712
+ "not",
713
+ "@config.selfFetch"
714
+ ],
660
715
  "to": "idle"
661
716
  },
662
717
  {
@@ -477,6 +477,13 @@
477
477
  "tier": "presentation",
478
478
  "type": "boolean"
479
479
  },
480
+ "selfFetch": {
481
+ "default": true,
482
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
483
+ "label": "Fetch its own rows on mount?",
484
+ "tier": "internal",
485
+ "type": "boolean"
486
+ },
480
487
  "senderField": {
481
488
  "description": "Field name identifying the sender (used with variant: 'message')",
482
489
  "label": "Sender Field",
@@ -905,6 +912,63 @@
905
912
  "event": "INIT",
906
913
  "eventId": "evt_01KXG04N9J3A885VW02NZQMP51",
907
914
  "from": "idle",
915
+ "guard": "@config.selfFetch",
916
+ "to": "idle"
917
+ },
918
+ {
919
+ "effects": [
920
+ [
921
+ "render-ui",
922
+ "main",
923
+ {
924
+ "accepts": "@config.accepts",
925
+ "className": "@config.className",
926
+ "columns": "@config.columns",
927
+ "currentUser": "@config.currentUser",
928
+ "dndItemIdField": "@config.dndItemIdField",
929
+ "dndRoot": "@config.dndRoot",
930
+ "dragGroup": "@config.dragGroup",
931
+ "dropEvent": "@config.dropEvent",
932
+ "emptyMessage": "@config.emptyMessage",
933
+ "entity": "@entity",
934
+ "error": "@config.error",
935
+ "fields": "@config.fields",
936
+ "gap": "@config.gap",
937
+ "groupBy": "@config.groupBy",
938
+ "hasMore": "@config.hasMore",
939
+ "infiniteScroll": "@config.infiniteScroll",
940
+ "isLoading": "@config.isLoading",
941
+ "itemActions": "@config.itemActions",
942
+ "itemClickEvent": "@config.itemClickEvent",
943
+ "loadMoreEvent": "@config.loadMoreEvent",
944
+ "longPressEvent": "@config.longPressEvent",
945
+ "look": "@config.look",
946
+ "maxInlineActions": "@config.maxInlineActions",
947
+ "pageSize": "@config.pageSize",
948
+ "positionEvent": "@config.positionEvent",
949
+ "reorderEvent": "@config.reorderEvent",
950
+ "reorderable": "@config.reorderable",
951
+ "senderField": "@config.senderField",
952
+ "senderLabelField": "@config.senderLabelField",
953
+ "sortBy": "@config.sortBy",
954
+ "sortDirection": "@config.sortDirection",
955
+ "sortable": "@config.sortable",
956
+ "swipeLeftActions": "@config.swipeLeftActions",
957
+ "swipeLeftEvent": "@config.swipeLeftEvent",
958
+ "swipeRightActions": "@config.swipeRightActions",
959
+ "swipeRightEvent": "@config.swipeRightEvent",
960
+ "type": "data-list",
961
+ "variant": "@config.variant"
962
+ }
963
+ ]
964
+ ],
965
+ "event": "INIT",
966
+ "eventId": "evt_01KXG04N9J3A885VW02NZQMP51",
967
+ "from": "idle",
968
+ "guard": [
969
+ "not",
970
+ "@config.selfFetch"
971
+ ],
908
972
  "to": "idle"
909
973
  },
910
974
  {
@@ -37,6 +37,15 @@
37
37
  "parent": "trt_01M13ZXC5906BVQKXF5JMWBD0E",
38
38
  "renames": []
39
39
  },
40
+ "evt_01M1694617Q04F1T085TTM4F8C": {
41
+ "bakedName": "@config.relationEvent",
42
+ "curName": "@config.relationEvent",
43
+ "id": "evt_01M1694617Q04F1T085TTM4F8C",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M13ZXC5906BVQKXF5JMWBD0E",
47
+ "renames": []
48
+ },
40
49
  "orb_01M13ZXC59HR3466AAAMSKD8MY": {
41
50
  "bakedName": "DocumentDetailsOrbital",
42
51
  "curName": "DocumentDetailsOrbital",
@@ -144,7 +153,8 @@
144
153
  "text",
145
154
  "boolean",
146
155
  "select",
147
- "readonly"
156
+ "readonly",
157
+ "image"
148
158
  ]
149
159
  },
150
160
  "label": {
@@ -164,6 +174,11 @@
164
174
  "name": "options",
165
175
  "required": false,
166
176
  "type": "array"
177
+ },
178
+ "type": {
179
+ "name": "type",
180
+ "required": false,
181
+ "type": "string"
167
182
  }
168
183
  },
169
184
  "type": "object"
@@ -179,6 +194,20 @@
179
194
  "tier": "presentation",
180
195
  "type": "string"
181
196
  },
197
+ "relationEvent": {
198
+ "default": "RELATION",
199
+ "description": "Makes relation chips clickable: emitted with { field, id, name } when a hydrated relation value (or one row of a many-relation) is clicked — the host routes it to the linked record's own surface.",
200
+ "label": "Relation Event",
201
+ "tier": "presentation",
202
+ "type": "string"
203
+ },
204
+ "selfFetch": {
205
+ "default": true,
206
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
207
+ "label": "Fetch its own rows on mount?",
208
+ "tier": "internal",
209
+ "type": "boolean"
210
+ },
182
211
  "title": {
183
212
  "description": "Card heading (defaults to the localized 'Details')",
184
213
  "label": "Title",
@@ -206,6 +235,30 @@
206
235
  "scope": "external",
207
236
  "tier": "essential"
208
237
  },
238
+ {
239
+ "description": "Makes relation chips clickable: emitted with { field, id, name } when a hydrated relation value (or one row of a many-relation) is clicked — the host routes it to the linked record's own surface.",
240
+ "event": "@config.relationEvent",
241
+ "eventId": "evt_01M1694617Q04F1T085TTM4F8C",
242
+ "payloadSchema": [
243
+ {
244
+ "name": "field",
245
+ "required": true,
246
+ "type": "string"
247
+ },
248
+ {
249
+ "name": "id",
250
+ "required": true,
251
+ "type": "string"
252
+ },
253
+ {
254
+ "name": "name",
255
+ "required": true,
256
+ "type": "string"
257
+ }
258
+ ],
259
+ "scope": "external",
260
+ "tier": "essential"
261
+ },
209
262
  {
210
263
  "description": "DocumentDetails rows finished loading; payload.data holds the collection.",
211
264
  "event": "DocumentDetailsLoaded",
@@ -273,6 +326,30 @@
273
326
  }
274
327
  ],
275
328
  "tier": "essential"
329
+ },
330
+ {
331
+ "description": "Makes relation chips clickable: emitted with { field, id, name } when a hydrated relation value (or one row of a many-relation) is clicked — the host routes it to the linked record's own surface.",
332
+ "id": "evt_01M1694617Q04F1T085TTM4F8C",
333
+ "key": "@config.relationEvent",
334
+ "name": "@config.relation event",
335
+ "payloadSchema": [
336
+ {
337
+ "name": "field",
338
+ "required": true,
339
+ "type": "string"
340
+ },
341
+ {
342
+ "name": "id",
343
+ "required": true,
344
+ "type": "string"
345
+ },
346
+ {
347
+ "name": "name",
348
+ "required": true,
349
+ "type": "string"
350
+ }
351
+ ],
352
+ "tier": "essential"
276
353
  }
277
354
  ],
278
355
  "states": [
@@ -301,6 +378,7 @@
301
378
  "entity": "@entity",
302
379
  "fields": "@config.fields",
303
380
  "metaCommitEvent": "@config.metaCommitEvent",
381
+ "relationEvent": "@config.relationEvent",
304
382
  "title": "@config.title",
305
383
  "type": "document-details"
306
384
  }
@@ -309,6 +387,32 @@
309
387
  "event": "INIT",
310
388
  "eventId": "evt_01M13ZXC59XKCDATMN4TVFVMZ7",
311
389
  "from": "idle",
390
+ "guard": "@config.selfFetch",
391
+ "to": "idle"
392
+ },
393
+ {
394
+ "effects": [
395
+ [
396
+ "render-ui",
397
+ "main",
398
+ {
399
+ "className": "@config.className",
400
+ "entity": "@entity",
401
+ "fields": "@config.fields",
402
+ "metaCommitEvent": "@config.metaCommitEvent",
403
+ "relationEvent": "@config.relationEvent",
404
+ "title": "@config.title",
405
+ "type": "document-details"
406
+ }
407
+ ]
408
+ ],
409
+ "event": "INIT",
410
+ "eventId": "evt_01M13ZXC59XKCDATMN4TVFVMZ7",
411
+ "from": "idle",
412
+ "guard": [
413
+ "not",
414
+ "@config.selfFetch"
415
+ ],
312
416
  "to": "idle"
313
417
  },
314
418
  {
@@ -321,6 +425,7 @@
321
425
  "entity": "@payload.data",
322
426
  "fields": "@config.fields",
323
427
  "metaCommitEvent": "@config.metaCommitEvent",
428
+ "relationEvent": "@config.relationEvent",
324
429
  "title": "@config.title",
325
430
  "type": "document-details"
326
431
  }
@@ -199,6 +199,12 @@
199
199
  "tier": "presentation",
200
200
  "type": "string"
201
201
  },
202
+ "coverImage": {
203
+ "description": "Cover/hero image URL painted as a full-bleed banner above the header row (Notion/article-hero shape); hidden when empty",
204
+ "label": "Cover Image",
205
+ "tier": "presentation",
206
+ "type": "string"
207
+ },
202
208
  "doneEvent": {
203
209
  "default": "DONE",
204
210
  "description": "Emitted by the Done button that ends the editing session: { id }",
@@ -232,6 +238,12 @@
232
238
  "tier": "presentation",
233
239
  "type": "boolean"
234
240
  },
241
+ "icon": {
242
+ "description": "Document icon rendered beside the title (a file glyph, a domain icon); hidden when empty",
243
+ "label": "Icon",
244
+ "tier": "presentation",
245
+ "type": "icon"
246
+ },
235
247
  "maxInlineActions": {
236
248
  "description": "0 collapses even the primary action into the menu",
237
249
  "label": "Max Inline Actions",
@@ -474,11 +486,13 @@
474
486
  "autosaveHint": "@config.autosaveHint",
475
487
  "className": "@config.className",
476
488
  "contentChangeEvent": "@config.contentChangeEvent",
489
+ "coverImage": "@config.coverImage",
477
490
  "doneEvent": "@config.doneEvent",
478
491
  "doneLabel": "@config.doneLabel",
479
492
  "editEvent": "@config.editEvent",
480
493
  "editLabel": "@config.editLabel",
481
494
  "editing": "@config.editing",
495
+ "icon": "@config.icon",
482
496
  "maxInlineActions": "@config.maxInlineActions",
483
497
  "placeholder": "@config.placeholder",
484
498
  "subtitle": "@config.subtitle",
@@ -509,11 +523,13 @@
509
523
  "autosaveHint": "@config.autosaveHint",
510
524
  "className": "@config.className",
511
525
  "contentChangeEvent": "@config.contentChangeEvent",
526
+ "coverImage": "@config.coverImage",
512
527
  "doneEvent": "@config.doneEvent",
513
528
  "doneLabel": "@config.doneLabel",
514
529
  "editEvent": "@config.editEvent",
515
530
  "editLabel": "@config.editLabel",
516
531
  "editing": "@config.editing",
532
+ "icon": "@config.icon",
517
533
  "maxInlineActions": "@config.maxInlineActions",
518
534
  "placeholder": "@config.placeholder",
519
535
  "subtitle": "@config.subtitle",
@@ -544,11 +560,13 @@
544
560
  "autosaveHint": "@config.autosaveHint",
545
561
  "className": "@config.className",
546
562
  "contentChangeEvent": "@config.contentChangeEvent",
563
+ "coverImage": "@config.coverImage",
547
564
  "doneEvent": "@config.doneEvent",
548
565
  "doneLabel": "@config.doneLabel",
549
566
  "editEvent": "@config.editEvent",
550
567
  "editLabel": "@config.editLabel",
551
568
  "editing": "@config.editing",
569
+ "icon": "@config.icon",
552
570
  "maxInlineActions": "@config.maxInlineActions",
553
571
  "placeholder": "@config.placeholder",
554
572
  "subtitle": "@config.subtitle",
@@ -134,6 +134,29 @@
134
134
  "tier": "presentation",
135
135
  "type": "[FileTreeItemsItem]"
136
136
  },
137
+ "look": {
138
+ "default": "files",
139
+ "description": "Visual treatment for flat `items` mode: `files` (default) keeps the monospace file-browser look; `nav` renders a sidebar navigation tree — regular font, document icons, roomier hit areas.",
140
+ "label": "Look",
141
+ "tier": "presentation",
142
+ "type": "string",
143
+ "values": [
144
+ "files",
145
+ "nav"
146
+ ]
147
+ },
148
+ "nodeActionIcon": {
149
+ "description": "Icon for the row hover action (default: plus).",
150
+ "label": "Node Action Icon",
151
+ "tier": "presentation",
152
+ "type": "string"
153
+ },
154
+ "nodeActionLabel": {
155
+ "description": "Accessible label/tooltip for the row hover action.",
156
+ "label": "Node Action Label",
157
+ "tier": "presentation",
158
+ "type": "string"
159
+ },
137
160
  "onFileSelect": {
138
161
  "default": "FILE_SELECT",
139
162
  "description": "Called when a file is clicked",
@@ -141,6 +164,13 @@
141
164
  "tier": "presentation",
142
165
  "type": "string"
143
166
  },
167
+ "onNodeAction": {
168
+ "default": "",
169
+ "description": "Called from the row's hover action button, in flat `items` mode; carries that node's id. Presence-gated: binding it renders the action.",
170
+ "label": "On Node Action",
171
+ "tier": "presentation",
172
+ "type": "string"
173
+ },
144
174
  "onNodeSelect": {
145
175
  "default": "",
146
176
  "description": "Called when a node is clicked, in flat `items` mode; carries the selected node's id. Presence-gated: binding this prop is what turns on the click-to-select affordance, mirroring Badge's `onRemove`.",
@@ -148,6 +178,12 @@
148
178
  "tier": "presentation",
149
179
  "type": "string"
150
180
  },
181
+ "selectedId": {
182
+ "description": "Currently selected node id, in flat `items` mode: the row highlights and every ancestor auto-expands so the selection is always visible — the 'you are here' a navigation tree needs.",
183
+ "label": "Selected Id",
184
+ "tier": "presentation",
185
+ "type": "string"
186
+ },
151
187
  "selectedPath": {
152
188
  "description": "Currently selected file path",
153
189
  "label": "Selected Path",
@@ -269,8 +305,13 @@
269
305
  "className": "@config.className",
270
306
  "indent": "@config.indent",
271
307
  "items": "@config.items",
308
+ "look": "@config.look",
309
+ "nodeActionIcon": "@config.nodeActionIcon",
310
+ "nodeActionLabel": "@config.nodeActionLabel",
272
311
  "onFileSelect": "@config.onFileSelect",
312
+ "onNodeAction": "@config.onNodeAction",
273
313
  "onNodeSelect": "@config.onNodeSelect",
314
+ "selectedId": "@config.selectedId",
274
315
  "selectedPath": "@config.selectedPath",
275
316
  "tree": "@config.tree",
276
317
  "type": "file-tree"
@@ -213,6 +213,13 @@
213
213
  "tier": "presentation",
214
214
  "type": "string"
215
215
  },
216
+ "selfFetch": {
217
+ "default": true,
218
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
219
+ "label": "Fetch its own rows on mount?",
220
+ "tier": "internal",
221
+ "type": "boolean"
222
+ },
216
223
  "width": {
217
224
  "default": 800.0,
218
225
  "description": "width prop",
@@ -379,6 +386,36 @@
379
386
  "event": "INIT",
380
387
  "eventId": "evt_01KXG04QK8NJ7JNE65YZ899XWA",
381
388
  "from": "idle",
389
+ "guard": "@config.selfFetch",
390
+ "to": "idle"
391
+ },
392
+ {
393
+ "effects": [
394
+ [
395
+ "render-ui",
396
+ "main",
397
+ {
398
+ "className": "@config.className",
399
+ "editable": "@config.editable",
400
+ "height": "@config.height",
401
+ "items": "@entity",
402
+ "moveEvent": "@config.moveEvent",
403
+ "onMove": "@config.onMove",
404
+ "onSelect": "@config.onSelect",
405
+ "selectEvent": "@config.selectEvent",
406
+ "selectedId": "@config.selectedId",
407
+ "type": "positioned-canvas",
408
+ "width": "@config.width"
409
+ }
410
+ ]
411
+ ],
412
+ "event": "INIT",
413
+ "eventId": "evt_01KXG04QK8NJ7JNE65YZ899XWA",
414
+ "from": "idle",
415
+ "guard": [
416
+ "not",
417
+ "@config.selfFetch"
418
+ ],
382
419
  "to": "idle"
383
420
  },
384
421
  {
@@ -232,6 +232,13 @@
232
232
  "tier": "presentation",
233
233
  "type": "string"
234
234
  },
235
+ "selfFetch": {
236
+ "default": true,
237
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
238
+ "label": "Fetch its own rows on mount?",
239
+ "tier": "internal",
240
+ "type": "boolean"
241
+ },
235
242
  "showActions": {
236
243
  "default": true,
237
244
  "description": "showActions prop",
@@ -461,6 +468,38 @@
461
468
  "event": "INIT",
462
469
  "eventId": "evt_01KXG04QWSXSBBRW7AVGKVHDQ8",
463
470
  "from": "idle",
471
+ "guard": "@config.selfFetch",
472
+ "to": "idle"
473
+ },
474
+ {
475
+ "effects": [
476
+ [
477
+ "render-ui",
478
+ "main",
479
+ {
480
+ "className": "@config.className",
481
+ "continueThreadEvent": "@config.continueThreadEvent",
482
+ "flagEvent": "@config.flagEvent",
483
+ "maxDepth": "@config.maxDepth",
484
+ "nodes": "@entity",
485
+ "onContinueThread": "@config.onContinueThread",
486
+ "onFlag": "@config.onFlag",
487
+ "onReply": "@config.onReply",
488
+ "onVote": "@config.onVote",
489
+ "replyEvent": "@config.replyEvent",
490
+ "showActions": "@config.showActions",
491
+ "type": "reply-tree",
492
+ "voteEvent": "@config.voteEvent"
493
+ }
494
+ ]
495
+ ],
496
+ "event": "INIT",
497
+ "eventId": "evt_01KXG04QWSXSBBRW7AVGKVHDQ8",
498
+ "from": "idle",
499
+ "guard": [
500
+ "not",
501
+ "@config.selfFetch"
502
+ ],
464
503
  "to": "idle"
465
504
  },
466
505
  {
@@ -135,6 +135,13 @@
135
135
  "label": "Reorder Payload",
136
136
  "tier": "presentation",
137
137
  "type": "json"
138
+ },
139
+ "selfFetch": {
140
+ "default": true,
141
+ "description": "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's.",
142
+ "label": "Fetch its own rows on mount?",
143
+ "tier": "internal",
144
+ "type": "boolean"
138
145
  }
139
146
  },
140
147
  "emits": [
@@ -261,6 +268,44 @@
261
268
  "event": "INIT",
262
269
  "eventId": "evt_01KXG04RHS5P5JWNREKWNE5SAQ",
263
270
  "from": "idle",
271
+ "guard": "@config.selfFetch",
272
+ "to": "idle"
273
+ },
274
+ {
275
+ "effects": [
276
+ [
277
+ "render-ui",
278
+ "main",
279
+ {
280
+ "className": "@config.className",
281
+ "dragHandlePosition": "@config.dragHandlePosition",
282
+ "items": "@entity",
283
+ "renderItem": [
284
+ "fn",
285
+ "item",
286
+ {
287
+ "content": [
288
+ "object/get",
289
+ "@item",
290
+ "@config.itemLabelField",
291
+ ""
292
+ ],
293
+ "type": "typography"
294
+ }
295
+ ],
296
+ "reorderEvent": "@config.reorderEvent",
297
+ "reorderPayload": "@config.reorderPayload",
298
+ "type": "sortable-list"
299
+ }
300
+ ]
301
+ ],
302
+ "event": "INIT",
303
+ "eventId": "evt_01KXG04RHS5P5JWNREKWNE5SAQ",
304
+ "from": "idle",
305
+ "guard": [
306
+ "not",
307
+ "@config.selfFetch"
308
+ ],
264
309
  "to": "idle"
265
310
  },
266
311
  {