@almadar/std 16.190.0 → 16.192.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/infra/atoms/std-approval-gate.lolo +184 -18
- package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +16 -3
- package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +1 -0
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +3 -0
- package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +37 -4
- package/behaviors/lolo/ui/core/atoms/std-modal.lolo +20 -6
- package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +40 -3
- package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +176 -4
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +3 -1
- package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +25 -1
- package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +37 -1
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +46 -1
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +30 -2
- package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +14 -29
- package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +19 -1
- package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +21 -1
- package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +15 -1
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +36 -1
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +41 -1
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +34 -1
- package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +30 -1
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -1
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +39 -1
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +39 -1
- package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +24 -1
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +30 -1
- package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +37 -1
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +18 -1
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +21 -1
- package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +16 -1
- package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +7 -2
- package/behaviors/lolo/ui/marketing/organisms/ui-book-chapter-view.lolo +12 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-book-table-of-contents.lolo +13 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +23 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +23 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +24 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +22 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +23 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +24 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +22 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +25 -1
- package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +23 -1
- package/behaviors/lolo/ui/marketing/templates/ui-about-page-template.lolo +11 -1
- package/behaviors/lolo/ui/marketing/templates/ui-feature-detail-page-template.lolo +11 -1
- package/behaviors/lolo/ui/marketing/templates/ui-landing-page-template.lolo +13 -1
- package/behaviors/lolo/ui/marketing/templates/ui-pricing-page-template.lolo +11 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +717 -45
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +85 -10
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +5 -2
- package/behaviors/registry/ui/core/atoms/std-browse.orb +12 -0
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +129 -7
- package/behaviors/registry/ui/core/atoms/std-modal.orb +95 -3
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +319 -3
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +539 -1
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +5 -1
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +43 -0
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +55 -0
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +64 -0
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +106 -1
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +18 -80
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +37 -0
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +39 -0
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +45 -0
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +54 -0
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +59 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +52 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +48 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +54 -0
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +57 -0
- package/behaviors/registry/ui/core/organisms/ui-form.orb +57 -0
- package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +42 -0
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +48 -0
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +55 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +36 -0
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +39 -0
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +34 -0
- package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +543 -496
- package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +30 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +31 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +41 -0
- package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +41 -0
- package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +42 -0
- package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +40 -0
- package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +41 -0
- package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +42 -0
- package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +40 -0
- package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +43 -0
- package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +41 -0
- package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +29 -0
- package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +29 -0
- package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +31 -0
- package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +29 -0
- package/dist/behaviors/exports-reader.js +2651 -50
- package/dist/behaviors/functions/index.d.ts +138 -19
- package/dist/behaviors/functions/index.js +2650 -51
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +2652 -51
- package/dist/behaviors/query.js +2651 -50
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +961 -929
- package/dist/behaviors-registry.json +106 -58
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2652 -51
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +3 -3
|
@@ -2,7 +2,6 @@ app ui-document-panel "1.0.0"
|
|
|
2
2
|
"DocumentPanel — a record rendered as one continuous document: editable title over the rich-text body, editing controls tucked into the header corner. — UI factory (1:1 with the @almadar/ui document-panel pattern)."
|
|
3
3
|
;; @capabilities "document page, note editor, wiki page, article editor, writing surface, rich text document, content editing canvas"
|
|
4
4
|
orbital DocumentPanelOrbital {
|
|
5
|
-
type DocumentPanelLoaded = Event { data : [DocumentPanelItem] } "DocumentPanel rows finished loading; payload.data holds the collection"
|
|
6
5
|
type DocumentPanelActionsItem = {
|
|
7
6
|
label : string!
|
|
8
7
|
event : string
|
|
@@ -21,33 +20,13 @@ orbital DocumentPanelOrbital {
|
|
|
21
20
|
|
|
22
21
|
state idle {
|
|
23
22
|
INIT -> idle
|
|
24
|
-
(fetch DocumentPanelItem { emit: { success: DocumentPanelLoaded } })
|
|
25
23
|
(set @entity.title @config.title)
|
|
26
24
|
(set @entity.value @config.value)
|
|
27
25
|
(render-ui main {
|
|
28
|
-
entity: @entity
|
|
29
|
-
title: @entity.title
|
|
30
|
-
subtitle: @config.subtitle
|
|
31
|
-
value: @entity.value
|
|
32
|
-
actions: @config.actions
|
|
33
|
-
maxInlineActions: @config.maxInlineActions
|
|
34
|
-
editing: @config.editing
|
|
35
|
-
titleCommitEvent: @config.titleCommitEvent
|
|
36
|
-
contentChangeEvent: @config.contentChangeEvent
|
|
37
|
-
editEvent: @config.editEvent
|
|
38
|
-
doneEvent: @config.doneEvent
|
|
39
|
-
editLabel: @config.editLabel
|
|
40
|
-
doneLabel: @config.doneLabel
|
|
41
|
-
autosaveHint: @config.autosaveHint
|
|
42
|
-
placeholder: @config.placeholder
|
|
43
|
-
className: @config.className
|
|
44
|
-
type: document-panel
|
|
45
|
-
})
|
|
46
|
-
DocumentPanelLoaded -> idle
|
|
47
|
-
(render-ui main {
|
|
48
|
-
entity: @payload.data
|
|
49
26
|
title: @entity.title
|
|
50
27
|
subtitle: @config.subtitle
|
|
28
|
+
coverImage: @config.coverImage
|
|
29
|
+
icon: @config.icon
|
|
51
30
|
value: @entity.value
|
|
52
31
|
actions: @config.actions
|
|
53
32
|
maxInlineActions: @config.maxInlineActions
|
|
@@ -66,9 +45,10 @@ orbital DocumentPanelOrbital {
|
|
|
66
45
|
TITLE_COMMIT -> idle
|
|
67
46
|
(set @entity.title ?title)
|
|
68
47
|
(render-ui main {
|
|
69
|
-
entity: @entity
|
|
70
48
|
title: @entity.title
|
|
71
49
|
subtitle: @config.subtitle
|
|
50
|
+
coverImage: @config.coverImage
|
|
51
|
+
icon: @config.icon
|
|
72
52
|
value: @entity.value
|
|
73
53
|
actions: @config.actions
|
|
74
54
|
maxInlineActions: @config.maxInlineActions
|
|
@@ -87,9 +67,10 @@ orbital DocumentPanelOrbital {
|
|
|
87
67
|
CONTENT_CHANGE -> idle
|
|
88
68
|
(set @entity.value ?value)
|
|
89
69
|
(render-ui main {
|
|
90
|
-
entity: @entity
|
|
91
70
|
title: @entity.title
|
|
92
71
|
subtitle: @config.subtitle
|
|
72
|
+
coverImage: @config.coverImage
|
|
73
|
+
icon: @config.icon
|
|
93
74
|
value: @entity.value
|
|
94
75
|
actions: @config.actions
|
|
95
76
|
maxInlineActions: @config.maxInlineActions
|
|
@@ -129,10 +110,6 @@ orbital DocumentPanelOrbital {
|
|
|
129
110
|
}
|
|
130
111
|
@description "Emitted by the Done button that ends the editing session: { id }"
|
|
131
112
|
@tier "essential"
|
|
132
|
-
DocumentPanelLoaded
|
|
133
|
-
@description "DocumentPanel rows finished loading; payload.data holds the collection."
|
|
134
|
-
@synonyms "loaded, fetched, retrieved"
|
|
135
|
-
@tier "essential"
|
|
136
113
|
}
|
|
137
114
|
|
|
138
115
|
listens {
|
|
@@ -154,6 +131,14 @@ orbital DocumentPanelOrbital {
|
|
|
154
131
|
@label "Subtitle"
|
|
155
132
|
@description "Muted byline under the title; hidden when empty"
|
|
156
133
|
@tier "presentation"
|
|
134
|
+
coverImage : string
|
|
135
|
+
@label "Cover Image"
|
|
136
|
+
@description "Cover/hero image URL painted as a full-bleed banner above the header row (Notion/article-hero shape); hidden when empty"
|
|
137
|
+
@tier "presentation"
|
|
138
|
+
icon : icon
|
|
139
|
+
@label "Icon"
|
|
140
|
+
@description "Document icon rendered beside the title (a file glyph, a domain icon); hidden when empty"
|
|
141
|
+
@tier "presentation"
|
|
157
142
|
value : string
|
|
158
143
|
@label "Value"
|
|
159
144
|
@description "The document body as rich-text HTML"
|
|
@@ -19,7 +19,7 @@ orbital PositionedCanvasOrbital {
|
|
|
19
19
|
initial: idle
|
|
20
20
|
|
|
21
21
|
state idle {
|
|
22
|
-
INIT -> idle
|
|
22
|
+
INIT -> idle when @config.selfFetch
|
|
23
23
|
(fetch PositionedCanvasItem { emit: { success: PositionedCanvasLoaded } })
|
|
24
24
|
(render-ui main {
|
|
25
25
|
items: @entity
|
|
@@ -34,6 +34,20 @@ orbital PositionedCanvasOrbital {
|
|
|
34
34
|
className: @config.className
|
|
35
35
|
type: positioned-canvas
|
|
36
36
|
})
|
|
37
|
+
INIT -> idle when (not @config.selfFetch)
|
|
38
|
+
(render-ui main {
|
|
39
|
+
items: @entity
|
|
40
|
+
width: @config.width
|
|
41
|
+
height: @config.height
|
|
42
|
+
selectedId: @config.selectedId
|
|
43
|
+
editable: @config.editable
|
|
44
|
+
onSelect: @config.onSelect
|
|
45
|
+
onMove: @config.onMove
|
|
46
|
+
selectEvent: @config.selectEvent
|
|
47
|
+
moveEvent: @config.moveEvent
|
|
48
|
+
className: @config.className
|
|
49
|
+
type: positioned-canvas
|
|
50
|
+
})
|
|
37
51
|
PositionedCanvasLoaded -> idle
|
|
38
52
|
(render-ui main {
|
|
39
53
|
items: @payload.data
|
|
@@ -106,6 +120,10 @@ orbital PositionedCanvasOrbital {
|
|
|
106
120
|
@label "Class Name"
|
|
107
121
|
@description "className prop"
|
|
108
122
|
@tier "presentation"
|
|
123
|
+
selfFetch : boolean = true
|
|
124
|
+
@label "Fetch its own rows on mount?"
|
|
125
|
+
@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."
|
|
126
|
+
@tier "internal"
|
|
109
127
|
}
|
|
110
128
|
}
|
|
111
129
|
|
|
@@ -19,7 +19,7 @@ orbital ReplyTreeOrbital {
|
|
|
19
19
|
initial: idle
|
|
20
20
|
|
|
21
21
|
state idle {
|
|
22
|
-
INIT -> idle
|
|
22
|
+
INIT -> idle when @config.selfFetch
|
|
23
23
|
(fetch ReplyTreeItem { emit: { success: ReplyTreeLoaded } })
|
|
24
24
|
(render-ui main {
|
|
25
25
|
nodes: @entity
|
|
@@ -36,6 +36,22 @@ orbital ReplyTreeOrbital {
|
|
|
36
36
|
className: @config.className
|
|
37
37
|
type: reply-tree
|
|
38
38
|
})
|
|
39
|
+
INIT -> idle when (not @config.selfFetch)
|
|
40
|
+
(render-ui main {
|
|
41
|
+
nodes: @entity
|
|
42
|
+
maxDepth: @config.maxDepth
|
|
43
|
+
onVote: @config.onVote
|
|
44
|
+
onReply: @config.onReply
|
|
45
|
+
onFlag: @config.onFlag
|
|
46
|
+
onContinueThread: @config.onContinueThread
|
|
47
|
+
voteEvent: @config.voteEvent
|
|
48
|
+
replyEvent: @config.replyEvent
|
|
49
|
+
flagEvent: @config.flagEvent
|
|
50
|
+
continueThreadEvent: @config.continueThreadEvent
|
|
51
|
+
showActions: @config.showActions
|
|
52
|
+
className: @config.className
|
|
53
|
+
type: reply-tree
|
|
54
|
+
})
|
|
39
55
|
ReplyTreeLoaded -> idle
|
|
40
56
|
(render-ui main {
|
|
41
57
|
nodes: @payload.data
|
|
@@ -128,6 +144,10 @@ orbital ReplyTreeOrbital {
|
|
|
128
144
|
@label "Class Name"
|
|
129
145
|
@description "className prop"
|
|
130
146
|
@tier "presentation"
|
|
147
|
+
selfFetch : boolean = true
|
|
148
|
+
@label "Fetch its own rows on mount?"
|
|
149
|
+
@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."
|
|
150
|
+
@tier "internal"
|
|
131
151
|
}
|
|
132
152
|
}
|
|
133
153
|
|
|
@@ -12,7 +12,7 @@ orbital SortableListOrbital {
|
|
|
12
12
|
initial: idle
|
|
13
13
|
|
|
14
14
|
state idle {
|
|
15
|
-
INIT -> idle
|
|
15
|
+
INIT -> idle when @config.selfFetch
|
|
16
16
|
(fetch SortableListItem { emit: { success: SortableListLoaded } })
|
|
17
17
|
(render-ui main {
|
|
18
18
|
items: @entity
|
|
@@ -23,6 +23,16 @@ orbital SortableListOrbital {
|
|
|
23
23
|
className: @config.className
|
|
24
24
|
type: sortable-list
|
|
25
25
|
})
|
|
26
|
+
INIT -> idle when (not @config.selfFetch)
|
|
27
|
+
(render-ui main {
|
|
28
|
+
items: @entity
|
|
29
|
+
renderItem: (fn item { content: (object/get @item @config.itemLabelField ""), type: typography })
|
|
30
|
+
reorderEvent: @config.reorderEvent
|
|
31
|
+
reorderPayload: @config.reorderPayload
|
|
32
|
+
dragHandlePosition: @config.dragHandlePosition
|
|
33
|
+
className: @config.className
|
|
34
|
+
type: sortable-list
|
|
35
|
+
})
|
|
26
36
|
SortableListLoaded -> idle
|
|
27
37
|
(render-ui main {
|
|
28
38
|
items: @payload.data
|
|
@@ -68,6 +78,10 @@ orbital SortableListOrbital {
|
|
|
68
78
|
@label "Class Name"
|
|
69
79
|
@description "className prop"
|
|
70
80
|
@tier "presentation"
|
|
81
|
+
selfFetch : boolean = true
|
|
82
|
+
@label "Fetch its own rows on mount?"
|
|
83
|
+
@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."
|
|
84
|
+
@tier "internal"
|
|
71
85
|
}
|
|
72
86
|
}
|
|
73
87
|
|
|
@@ -50,7 +50,7 @@ orbital TableViewOrbital {
|
|
|
50
50
|
initial: idle
|
|
51
51
|
|
|
52
52
|
state idle {
|
|
53
|
-
INIT -> idle
|
|
53
|
+
INIT -> idle when @config.selfFetch
|
|
54
54
|
(fetch TableViewItem { emit: { success: TableViewLoaded } })
|
|
55
55
|
(render-ui main {
|
|
56
56
|
dragGroup: @config.dragGroup
|
|
@@ -82,6 +82,37 @@ orbital TableViewOrbital {
|
|
|
82
82
|
look: @config.look
|
|
83
83
|
type: table-view
|
|
84
84
|
})
|
|
85
|
+
INIT -> idle when (not @config.selfFetch)
|
|
86
|
+
(render-ui main {
|
|
87
|
+
dragGroup: @config.dragGroup
|
|
88
|
+
accepts: @config.accepts
|
|
89
|
+
sortable: @config.sortable
|
|
90
|
+
dropEvent: @config.dropEvent
|
|
91
|
+
reorderEvent: @config.reorderEvent
|
|
92
|
+
positionEvent: @config.positionEvent
|
|
93
|
+
dndItemIdField: @config.dndItemIdField
|
|
94
|
+
dndRoot: @config.dndRoot
|
|
95
|
+
entity: @entity
|
|
96
|
+
columns: @config.columns
|
|
97
|
+
fields: @config.fields
|
|
98
|
+
itemActions: @config.itemActions
|
|
99
|
+
maxInlineActions: @config.maxInlineActions
|
|
100
|
+
itemClickEvent: @config.itemClickEvent
|
|
101
|
+
selectable: @config.selectable
|
|
102
|
+
selectEvent: @config.selectEvent
|
|
103
|
+
selectedIds: @config.selectedIds
|
|
104
|
+
sortEvent: @config.sortEvent
|
|
105
|
+
sortColumn: @config.sortColumn
|
|
106
|
+
sortDirection: @config.sortDirection
|
|
107
|
+
className: @config.className
|
|
108
|
+
emptyMessage: @config.emptyMessage
|
|
109
|
+
isLoading: @config.isLoading
|
|
110
|
+
error: @config.error
|
|
111
|
+
groupBy: @config.groupBy
|
|
112
|
+
pageSize: @config.pageSize
|
|
113
|
+
look: @config.look
|
|
114
|
+
type: table-view
|
|
115
|
+
})
|
|
85
116
|
TableViewLoaded -> idle
|
|
86
117
|
(render-ui main {
|
|
87
118
|
dragGroup: @config.dragGroup
|
|
@@ -242,6 +273,10 @@ orbital TableViewOrbital {
|
|
|
242
273
|
@label "Look"
|
|
243
274
|
@description "Layer 2 visual treatment — mirrors the data-list / entity-table look enum so authors share one knob name across row renderers."
|
|
244
275
|
@tier "presentation"
|
|
276
|
+
selfFetch : boolean = true
|
|
277
|
+
@label "Fetch its own rows on mount?"
|
|
278
|
+
@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."
|
|
279
|
+
@tier "internal"
|
|
245
280
|
}
|
|
246
281
|
}
|
|
247
282
|
|
|
@@ -62,7 +62,7 @@ orbital DetailPanelOrbital {
|
|
|
62
62
|
initial: idle
|
|
63
63
|
|
|
64
64
|
state idle {
|
|
65
|
-
INIT -> idle
|
|
65
|
+
INIT -> idle when @config.selfFetch
|
|
66
66
|
(fetch DetailPanelItem { emit: { success: DetailPanelLoaded } })
|
|
67
67
|
(render-ui main {
|
|
68
68
|
className: @config.className
|
|
@@ -99,6 +99,42 @@ orbital DetailPanelOrbital {
|
|
|
99
99
|
relationsData: @config.relationsData
|
|
100
100
|
type: detail-panel
|
|
101
101
|
})
|
|
102
|
+
INIT -> idle when (not @config.selfFetch)
|
|
103
|
+
(render-ui main {
|
|
104
|
+
className: @config.className
|
|
105
|
+
isLoading: @config.isLoading
|
|
106
|
+
error: @config.error
|
|
107
|
+
sortBy: @config.sortBy
|
|
108
|
+
sortDirection: @config.sortDirection
|
|
109
|
+
searchValue: @config.searchValue
|
|
110
|
+
page: @config.pageProp
|
|
111
|
+
pageSize: @config.pageSize
|
|
112
|
+
totalCount: @config.totalCount
|
|
113
|
+
activeFilters: @config.activeFilters
|
|
114
|
+
selectedIds: @config.selectedIds
|
|
115
|
+
entity: @entity
|
|
116
|
+
title: @config.title
|
|
117
|
+
onTitleCommit: @config.onTitleCommit
|
|
118
|
+
subtitle: @config.subtitle
|
|
119
|
+
status: @config.status
|
|
120
|
+
avatar: @config.avatar
|
|
121
|
+
sections: @config.sections
|
|
122
|
+
actions: @config.actions
|
|
123
|
+
maxInlineActions: @config.maxInlineActions
|
|
124
|
+
backAction: @config.backAction
|
|
125
|
+
footer: @config.footer
|
|
126
|
+
slideOver: @config.slideOver
|
|
127
|
+
fields: @config.fields
|
|
128
|
+
fieldNames: @config.fieldNames
|
|
129
|
+
initialData: @entity
|
|
130
|
+
mode: @config.mode
|
|
131
|
+
position: @config.position
|
|
132
|
+
width: @config.width
|
|
133
|
+
displayFields: @config.displayFields
|
|
134
|
+
showActions: @config.showActions
|
|
135
|
+
relationsData: @config.relationsData
|
|
136
|
+
type: detail-panel
|
|
137
|
+
})
|
|
102
138
|
DetailPanelLoaded -> idle
|
|
103
139
|
(render-ui main {
|
|
104
140
|
className: @config.className
|
|
@@ -266,6 +302,10 @@ orbital DetailPanelOrbital {
|
|
|
266
302
|
@label "Relations Data"
|
|
267
303
|
@description "Relation display data: { fieldName: [{value, label}] } — injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names."
|
|
268
304
|
@tier "presentation"
|
|
305
|
+
selfFetch : boolean = true
|
|
306
|
+
@label "Fetch its own rows on mount?"
|
|
307
|
+
@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."
|
|
308
|
+
@tier "internal"
|
|
269
309
|
}
|
|
270
310
|
}
|
|
271
311
|
|
|
@@ -37,7 +37,7 @@ orbital EntityCardsOrbital {
|
|
|
37
37
|
initial: idle
|
|
38
38
|
|
|
39
39
|
state idle {
|
|
40
|
-
INIT -> idle
|
|
40
|
+
INIT -> idle when @config.selfFetch
|
|
41
41
|
(fetch EntityCardsItem { emit: { success: EntityCardsLoaded } })
|
|
42
42
|
(render-ui main {
|
|
43
43
|
className: @config.className
|
|
@@ -67,6 +67,35 @@ orbital EntityCardsOrbital {
|
|
|
67
67
|
imageField: @config.imageField
|
|
68
68
|
type: entity-cards
|
|
69
69
|
})
|
|
70
|
+
INIT -> idle when (not @config.selfFetch)
|
|
71
|
+
(render-ui main {
|
|
72
|
+
className: @config.className
|
|
73
|
+
isLoading: @config.isLoading
|
|
74
|
+
error: @config.error
|
|
75
|
+
sortBy: @config.sortBy
|
|
76
|
+
sortDirection: @config.sortDirection
|
|
77
|
+
searchValue: @config.searchValue
|
|
78
|
+
page: @config.pageProp
|
|
79
|
+
pageSize: @config.pageSize
|
|
80
|
+
totalCount: @config.totalCount
|
|
81
|
+
activeFilters: @config.activeFilters
|
|
82
|
+
selectedIds: @config.selectedIds
|
|
83
|
+
entity: @entity
|
|
84
|
+
minCardWidth: @config.minCardWidth
|
|
85
|
+
maxCols: @config.maxCols
|
|
86
|
+
gap: @config.gap
|
|
87
|
+
alignItems: @config.alignItems
|
|
88
|
+
children: @config.children
|
|
89
|
+
fields: @config.fields
|
|
90
|
+
fieldNames: @config.fieldNames
|
|
91
|
+
columns: @config.columns
|
|
92
|
+
itemActions: @config.itemActions
|
|
93
|
+
showTotal: @config.showTotal
|
|
94
|
+
showAvatar: @config.showAvatar
|
|
95
|
+
variant: @config.variant
|
|
96
|
+
imageField: @config.imageField
|
|
97
|
+
type: entity-cards
|
|
98
|
+
})
|
|
70
99
|
EntityCardsLoaded -> idle
|
|
71
100
|
(render-ui main {
|
|
72
101
|
className: @config.className
|
|
@@ -208,6 +237,10 @@ orbital EntityCardsOrbital {
|
|
|
208
237
|
@label "Image Field"
|
|
209
238
|
@description "Entity field name containing an image URL to display as card thumbnail"
|
|
210
239
|
@tier "presentation"
|
|
240
|
+
selfFetch : boolean = true
|
|
241
|
+
@label "Fetch its own rows on mount?"
|
|
242
|
+
@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."
|
|
243
|
+
@tier "internal"
|
|
211
244
|
}
|
|
212
245
|
}
|
|
213
246
|
|
|
@@ -23,7 +23,7 @@ orbital EntityListOrbital {
|
|
|
23
23
|
initial: idle
|
|
24
24
|
|
|
25
25
|
state idle {
|
|
26
|
-
INIT -> idle
|
|
26
|
+
INIT -> idle when @config.selfFetch
|
|
27
27
|
(fetch EntityListItem { emit: { success: EntityListLoaded } })
|
|
28
28
|
(render-ui main {
|
|
29
29
|
className: @config.className
|
|
@@ -49,6 +49,31 @@ orbital EntityListOrbital {
|
|
|
49
49
|
fieldNames: @config.fieldNames
|
|
50
50
|
type: entity-list
|
|
51
51
|
})
|
|
52
|
+
INIT -> idle when (not @config.selfFetch)
|
|
53
|
+
(render-ui main {
|
|
54
|
+
className: @config.className
|
|
55
|
+
isLoading: @config.isLoading
|
|
56
|
+
error: @config.error
|
|
57
|
+
sortBy: @config.sortBy
|
|
58
|
+
sortDirection: @config.sortDirection
|
|
59
|
+
searchValue: @config.searchValue
|
|
60
|
+
page: @config.pageProp
|
|
61
|
+
pageSize: @config.pageSize
|
|
62
|
+
totalCount: @config.totalCount
|
|
63
|
+
activeFilters: @config.activeFilters
|
|
64
|
+
selectedIds: @config.selectedIds
|
|
65
|
+
entity: @entity
|
|
66
|
+
entityType: @config.entityType
|
|
67
|
+
selectable: @config.selectable
|
|
68
|
+
itemActions: @config.itemActions
|
|
69
|
+
showDividers: @config.showDividers
|
|
70
|
+
variant: @config.variant
|
|
71
|
+
emptyMessage: @config.emptyMessage
|
|
72
|
+
children: @config.children
|
|
73
|
+
fields: @config.fields
|
|
74
|
+
fieldNames: @config.fieldNames
|
|
75
|
+
type: entity-list
|
|
76
|
+
})
|
|
52
77
|
EntityListLoaded -> idle
|
|
53
78
|
(render-ui main {
|
|
54
79
|
className: @config.className
|
|
@@ -175,6 +200,10 @@ orbital EntityListOrbital {
|
|
|
175
200
|
@label "Field Names"
|
|
176
201
|
@description "Alias for fields - backwards compatibility"
|
|
177
202
|
@tier "presentation"
|
|
203
|
+
selfFetch : boolean = true
|
|
204
|
+
@label "Fetch its own rows on mount?"
|
|
205
|
+
@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."
|
|
206
|
+
@tier "internal"
|
|
178
207
|
}
|
|
179
208
|
}
|
|
180
209
|
|
|
@@ -58,7 +58,7 @@ orbital EntityTableOrbital {
|
|
|
58
58
|
initial: idle
|
|
59
59
|
|
|
60
60
|
state idle {
|
|
61
|
-
INIT -> idle
|
|
61
|
+
INIT -> idle when @config.selfFetch
|
|
62
62
|
(fetch EntityTableItem { emit: { success: EntityTableLoaded } })
|
|
63
63
|
(render-ui main {
|
|
64
64
|
className: @config.className
|
|
@@ -90,6 +90,37 @@ orbital EntityTableOrbital {
|
|
|
90
90
|
look: @config.look
|
|
91
91
|
type: entity-table
|
|
92
92
|
})
|
|
93
|
+
INIT -> idle when (not @config.selfFetch)
|
|
94
|
+
(render-ui main {
|
|
95
|
+
className: @config.className
|
|
96
|
+
isLoading: @config.isLoading
|
|
97
|
+
error: @config.error
|
|
98
|
+
sortBy: @config.sortBy
|
|
99
|
+
sortDirection: @config.sortDirection
|
|
100
|
+
searchValue: @config.searchValue
|
|
101
|
+
page: @config.pageProp
|
|
102
|
+
pageSize: @config.pageSize
|
|
103
|
+
totalCount: @config.totalCount
|
|
104
|
+
activeFilters: @config.activeFilters
|
|
105
|
+
selectedIds: @config.selectedIds
|
|
106
|
+
entity: @entity
|
|
107
|
+
fields: @config.fields
|
|
108
|
+
columns: @config.columns
|
|
109
|
+
itemActions: @config.itemActions
|
|
110
|
+
emptyIcon: @config.emptyIcon
|
|
111
|
+
emptyTitle: @config.emptyTitle
|
|
112
|
+
emptyDescription: @config.emptyDescription
|
|
113
|
+
emptyAction: @config.emptyAction
|
|
114
|
+
selectable: @config.selectable
|
|
115
|
+
searchable: @config.searchable
|
|
116
|
+
searchPlaceholder: @config.searchPlaceholder
|
|
117
|
+
rowActions: @config.rowActions
|
|
118
|
+
bulkActions: @config.bulkActions
|
|
119
|
+
headerActions: @config.headerActions
|
|
120
|
+
showTotal: @config.showTotal
|
|
121
|
+
look: @config.look
|
|
122
|
+
type: entity-table
|
|
123
|
+
})
|
|
93
124
|
EntityTableLoaded -> idle
|
|
94
125
|
(render-ui main {
|
|
95
126
|
className: @config.className
|
|
@@ -241,6 +272,10 @@ orbital EntityTableOrbital {
|
|
|
241
272
|
@label "Look"
|
|
242
273
|
@description "Layer 2 visual treatment — orthogonal to the semantic variant."
|
|
243
274
|
@tier "presentation"
|
|
275
|
+
selfFetch : boolean = true
|
|
276
|
+
@label "Fetch its own rows on mount?"
|
|
277
|
+
@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."
|
|
278
|
+
@tier "internal"
|
|
244
279
|
}
|
|
245
280
|
}
|
|
246
281
|
|
|
@@ -127,7 +127,7 @@ orbital FormSectionOrbital {
|
|
|
127
127
|
initial: idle
|
|
128
128
|
|
|
129
129
|
state idle {
|
|
130
|
-
INIT -> idle
|
|
130
|
+
INIT -> idle when @config.selfFetch
|
|
131
131
|
(fetch FormSectionItem { emit: { success: FormSectionLoaded } })
|
|
132
132
|
(render-ui main {
|
|
133
133
|
children: @config.children
|
|
@@ -162,6 +162,40 @@ orbital FormSectionOrbital {
|
|
|
162
162
|
repeatable: @config.repeatable
|
|
163
163
|
type: form-section
|
|
164
164
|
})
|
|
165
|
+
INIT -> idle when (not @config.selfFetch)
|
|
166
|
+
(render-ui main {
|
|
167
|
+
children: @config.children
|
|
168
|
+
onSubmit: @config.onSubmit
|
|
169
|
+
onCancel: @config.onCancel
|
|
170
|
+
layout: @config.layout
|
|
171
|
+
gap: @config.gap
|
|
172
|
+
className: @config.className
|
|
173
|
+
entity: @entity
|
|
174
|
+
mode: @config.mode
|
|
175
|
+
fields: @config.fields
|
|
176
|
+
initialData: @entity
|
|
177
|
+
isLoading: @config.isLoading
|
|
178
|
+
error: @config.error
|
|
179
|
+
submitLabel: @config.submitLabel
|
|
180
|
+
cancelLabel: @config.cancelLabel
|
|
181
|
+
showCancel: @config.showCancel
|
|
182
|
+
showSubmit: @config.showSubmit
|
|
183
|
+
title: @config.title
|
|
184
|
+
submitEvent: @config.submitEvent
|
|
185
|
+
cancelEvent: @config.cancelEvent
|
|
186
|
+
relationsData: @config.relationsData
|
|
187
|
+
relationsLoading: @config.relationsLoading
|
|
188
|
+
fieldOverrides: @config.fieldOverrides
|
|
189
|
+
conditionalFields: @config.conditionalFields
|
|
190
|
+
hiddenCalculations: @config.hiddenCalculations
|
|
191
|
+
violationTriggers: @config.violationTriggers
|
|
192
|
+
evaluationContext: @config.evaluationContext
|
|
193
|
+
sections: @config.sections
|
|
194
|
+
onFieldChange: @config.onFieldChange
|
|
195
|
+
configPath: @config.configPath
|
|
196
|
+
repeatable: @config.repeatable
|
|
197
|
+
type: form-section
|
|
198
|
+
})
|
|
165
199
|
FormSectionLoaded -> idle
|
|
166
200
|
(render-ui main {
|
|
167
201
|
children: @config.children
|
|
@@ -333,6 +367,10 @@ orbital FormSectionOrbital {
|
|
|
333
367
|
@label "Repeatable"
|
|
334
368
|
@description "Whether the form supports repeatable entries"
|
|
335
369
|
@tier "presentation"
|
|
370
|
+
selfFetch : boolean = true
|
|
371
|
+
@label "Fetch its own rows on mount?"
|
|
372
|
+
@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."
|
|
373
|
+
@tier "internal"
|
|
336
374
|
}
|
|
337
375
|
}
|
|
338
376
|
|
|
@@ -127,7 +127,7 @@ orbital FormOrbital {
|
|
|
127
127
|
initial: idle
|
|
128
128
|
|
|
129
129
|
state idle {
|
|
130
|
-
INIT -> idle
|
|
130
|
+
INIT -> idle when @config.selfFetch
|
|
131
131
|
(fetch FormItem { emit: { success: FormLoaded } })
|
|
132
132
|
(render-ui main {
|
|
133
133
|
children: @config.children
|
|
@@ -162,6 +162,40 @@ orbital FormOrbital {
|
|
|
162
162
|
repeatable: @config.repeatable
|
|
163
163
|
type: form
|
|
164
164
|
})
|
|
165
|
+
INIT -> idle when (not @config.selfFetch)
|
|
166
|
+
(render-ui main {
|
|
167
|
+
children: @config.children
|
|
168
|
+
onSubmit: @config.onSubmit
|
|
169
|
+
onCancel: @config.onCancel
|
|
170
|
+
layout: @config.layout
|
|
171
|
+
gap: @config.gap
|
|
172
|
+
className: @config.className
|
|
173
|
+
entity: @entity
|
|
174
|
+
mode: @config.mode
|
|
175
|
+
fields: @config.fields
|
|
176
|
+
initialData: @entity
|
|
177
|
+
isLoading: @config.isLoading
|
|
178
|
+
error: @config.error
|
|
179
|
+
submitLabel: @config.submitLabel
|
|
180
|
+
cancelLabel: @config.cancelLabel
|
|
181
|
+
showCancel: @config.showCancel
|
|
182
|
+
showSubmit: @config.showSubmit
|
|
183
|
+
title: @config.title
|
|
184
|
+
submitEvent: @config.submitEvent
|
|
185
|
+
cancelEvent: @config.cancelEvent
|
|
186
|
+
relationsData: @config.relationsData
|
|
187
|
+
relationsLoading: @config.relationsLoading
|
|
188
|
+
fieldOverrides: @config.fieldOverrides
|
|
189
|
+
conditionalFields: @config.conditionalFields
|
|
190
|
+
hiddenCalculations: @config.hiddenCalculations
|
|
191
|
+
violationTriggers: @config.violationTriggers
|
|
192
|
+
evaluationContext: @config.evaluationContext
|
|
193
|
+
sections: @config.sections
|
|
194
|
+
onFieldChange: @config.onFieldChange
|
|
195
|
+
configPath: @config.configPath
|
|
196
|
+
repeatable: @config.repeatable
|
|
197
|
+
type: form
|
|
198
|
+
})
|
|
165
199
|
FormLoaded -> idle
|
|
166
200
|
(render-ui main {
|
|
167
201
|
children: @config.children
|
|
@@ -333,6 +367,10 @@ orbital FormOrbital {
|
|
|
333
367
|
@label "Repeatable"
|
|
334
368
|
@description "Whether the form supports repeatable entries"
|
|
335
369
|
@tier "presentation"
|
|
370
|
+
selfFetch : boolean = true
|
|
371
|
+
@label "Fetch its own rows on mount?"
|
|
372
|
+
@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."
|
|
373
|
+
@tier "internal"
|
|
336
374
|
}
|
|
337
375
|
}
|
|
338
376
|
|
|
@@ -17,7 +17,7 @@ orbital MasterDetailOrbital {
|
|
|
17
17
|
initial: idle
|
|
18
18
|
|
|
19
19
|
state idle {
|
|
20
|
-
INIT -> idle
|
|
20
|
+
INIT -> idle when @config.selfFetch
|
|
21
21
|
(fetch MasterDetailItem { emit: { success: MasterDetailLoaded } })
|
|
22
22
|
(render-ui main {
|
|
23
23
|
className: @config.className
|
|
@@ -37,6 +37,25 @@ orbital MasterDetailOrbital {
|
|
|
37
37
|
loading: @config.loading
|
|
38
38
|
type: master-detail
|
|
39
39
|
})
|
|
40
|
+
INIT -> idle when (not @config.selfFetch)
|
|
41
|
+
(render-ui main {
|
|
42
|
+
className: @config.className
|
|
43
|
+
isLoading: @config.isLoading
|
|
44
|
+
error: @config.error
|
|
45
|
+
sortBy: @config.sortBy
|
|
46
|
+
sortDirection: @config.sortDirection
|
|
47
|
+
searchValue: @config.searchValue
|
|
48
|
+
page: @config.pageProp
|
|
49
|
+
pageSize: @config.pageSize
|
|
50
|
+
totalCount: @config.totalCount
|
|
51
|
+
activeFilters: @config.activeFilters
|
|
52
|
+
selectedIds: @config.selectedIds
|
|
53
|
+
entity: @entity
|
|
54
|
+
masterFields: @config.masterFields
|
|
55
|
+
detailFields: @config.detailFields
|
|
56
|
+
loading: @config.loading
|
|
57
|
+
type: master-detail
|
|
58
|
+
})
|
|
40
59
|
MasterDetailLoaded -> idle
|
|
41
60
|
(render-ui main {
|
|
42
61
|
className: @config.className
|
|
@@ -123,6 +142,10 @@ orbital MasterDetailOrbital {
|
|
|
123
142
|
@label "Loading"
|
|
124
143
|
@description "Loading state (alias for isLoading)"
|
|
125
144
|
@tier "presentation"
|
|
145
|
+
selfFetch : boolean = true
|
|
146
|
+
@label "Fetch its own rows on mount?"
|
|
147
|
+
@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."
|
|
148
|
+
@tier "internal"
|
|
126
149
|
}
|
|
127
150
|
}
|
|
128
151
|
|