@almadar/std 6.3.0 → 6.4.1

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 (25) hide show
  1. package/behaviors/registry/atoms/std-push.orb +252 -0
  2. package/behaviors/registry/atoms/std-related.orb +130 -0
  3. package/behaviors/registry/molecules/std-batch-selected-list.orb +131 -0
  4. package/behaviors/registry/molecules/std-calendar-booking.orb +115 -0
  5. package/behaviors/registry/molecules/std-dashboard-tabbed.orb +126 -0
  6. package/behaviors/registry/molecules/std-drawer-master-list.orb +123 -0
  7. package/behaviors/registry/molecules/std-filtered-list.orb +135 -0
  8. package/behaviors/registry/molecules/std-gallery-filtered.orb +124 -0
  9. package/behaviors/registry/molecules/std-push-activity-log.orb +107 -0
  10. package/behaviors/registry/molecules/std-related-master-detail.orb +119 -0
  11. package/behaviors/registry/molecules/std-wizard-form.orb +115 -0
  12. package/dist/behaviors/behaviors-registry.json +1038 -6250
  13. package/dist/behaviors/registry/atoms/std-push.orb +252 -0
  14. package/dist/behaviors/registry/atoms/std-related.orb +130 -0
  15. package/dist/behaviors/registry/molecules/std-batch-selected-list.orb +131 -0
  16. package/dist/behaviors/registry/molecules/std-calendar-booking.orb +115 -0
  17. package/dist/behaviors/registry/molecules/std-dashboard-tabbed.orb +126 -0
  18. package/dist/behaviors/registry/molecules/std-drawer-master-list.orb +123 -0
  19. package/dist/behaviors/registry/molecules/std-filtered-list.orb +135 -0
  20. package/dist/behaviors/registry/molecules/std-gallery-filtered.orb +124 -0
  21. package/dist/behaviors/registry/molecules/std-push-activity-log.orb +107 -0
  22. package/dist/behaviors/registry/molecules/std-related-master-detail.orb +119 -0
  23. package/dist/behaviors/registry/molecules/std-wizard-form.orb +115 -0
  24. package/dist/behaviors-registry.json +1038 -6250
  25. package/package.json +3 -3
@@ -0,0 +1,252 @@
1
+ {
2
+ "name": "std-push",
3
+ "version": "1.0.0",
4
+ "description": "External-event subscription atom. Wraps os/watch-http with a lifecycle state machine (idle → subscribed ↔ reconnecting) using emit: config to turn incoming messages + failures into closed-circuit events.",
5
+ "orbitals": [
6
+ {
7
+ "name": "PushSubscriberOrbital",
8
+ "entity": {
9
+ "name": "PushSubscriber",
10
+ "persistence": "runtime",
11
+ "fields": [
12
+ {
13
+ "name": "id",
14
+ "type": "string",
15
+ "required": true
16
+ },
17
+ {
18
+ "name": "status",
19
+ "type": "string"
20
+ }
21
+ ]
22
+ },
23
+ "traits": [
24
+ {
25
+ "name": "PushSubscriberIndicator",
26
+ "category": "interaction",
27
+ "linkedEntity": "PushSubscriber",
28
+ "emits": [
29
+ {
30
+ "event": "PUSH_RECEIVED"
31
+ },
32
+ {
33
+ "event": "PUSH_DISCONNECTED"
34
+ }
35
+ ],
36
+ "stateMachine": {
37
+ "states": [
38
+ {
39
+ "name": "idle",
40
+ "isInitial": true
41
+ },
42
+ {
43
+ "name": "subscribed"
44
+ },
45
+ {
46
+ "name": "reconnecting"
47
+ }
48
+ ],
49
+ "events": [
50
+ {
51
+ "key": "INIT"
52
+ },
53
+ {
54
+ "key": "PUSH_RECEIVED"
55
+ },
56
+ {
57
+ "key": "PUSH_DISCONNECTED"
58
+ }
59
+ ],
60
+ "transitions": [
61
+ {
62
+ "from": "idle",
63
+ "to": "subscribed",
64
+ "event": "INIT",
65
+ "effects": [
66
+ [
67
+ "os/watch-http",
68
+ "wss://push.example.com",
69
+ {
70
+ "emit": {
71
+ "on_message": "PUSH_RECEIVED",
72
+ "failure": "PUSH_DISCONNECTED"
73
+ }
74
+ }
75
+ ],
76
+ [
77
+ "render-ui",
78
+ "main",
79
+ {
80
+ "direction": "horizontal",
81
+ "align": "center",
82
+ "type": "stack",
83
+ "children": [
84
+ {
85
+ "name": "wifi",
86
+ "size": "sm",
87
+ "type": "icon"
88
+ },
89
+ {
90
+ "type": "typography",
91
+ "variant": "caption",
92
+ "content": "Connecting…"
93
+ }
94
+ ],
95
+ "gap": "sm"
96
+ }
97
+ ]
98
+ ]
99
+ },
100
+ {
101
+ "from": "subscribed",
102
+ "to": "subscribed",
103
+ "event": "PUSH_RECEIVED",
104
+ "effects": [
105
+ [
106
+ "set",
107
+ "@entity.status",
108
+ "subscribed"
109
+ ],
110
+ [
111
+ "render-ui",
112
+ "main",
113
+ {
114
+ "direction": "horizontal",
115
+ "align": "center",
116
+ "children": [
117
+ {
118
+ "size": "sm",
119
+ "name": "wifi",
120
+ "color": "success",
121
+ "type": "icon"
122
+ },
123
+ {
124
+ "content": "Connected",
125
+ "variant": "caption",
126
+ "type": "typography"
127
+ }
128
+ ],
129
+ "gap": "sm",
130
+ "type": "stack"
131
+ }
132
+ ]
133
+ ]
134
+ },
135
+ {
136
+ "from": "subscribed",
137
+ "to": "reconnecting",
138
+ "event": "PUSH_DISCONNECTED",
139
+ "effects": [
140
+ [
141
+ "set",
142
+ "@entity.status",
143
+ "reconnecting"
144
+ ],
145
+ [
146
+ "render-ui",
147
+ "main",
148
+ {
149
+ "align": "center",
150
+ "children": [
151
+ {
152
+ "type": "icon",
153
+ "name": "wifi-off",
154
+ "color": "warning",
155
+ "size": "sm"
156
+ },
157
+ {
158
+ "type": "typography",
159
+ "variant": "caption",
160
+ "content": "Reconnecting…"
161
+ }
162
+ ],
163
+ "type": "stack",
164
+ "gap": "sm",
165
+ "direction": "horizontal"
166
+ }
167
+ ]
168
+ ]
169
+ },
170
+ {
171
+ "from": "reconnecting",
172
+ "to": "subscribed",
173
+ "event": "PUSH_RECEIVED",
174
+ "effects": [
175
+ [
176
+ "set",
177
+ "@entity.status",
178
+ "subscribed"
179
+ ],
180
+ [
181
+ "render-ui",
182
+ "main",
183
+ {
184
+ "gap": "sm",
185
+ "direction": "horizontal",
186
+ "type": "stack",
187
+ "align": "center",
188
+ "children": [
189
+ {
190
+ "type": "icon",
191
+ "size": "sm",
192
+ "name": "wifi",
193
+ "color": "success"
194
+ },
195
+ {
196
+ "type": "typography",
197
+ "content": "Connected",
198
+ "variant": "caption"
199
+ }
200
+ ]
201
+ }
202
+ ]
203
+ ]
204
+ },
205
+ {
206
+ "from": "reconnecting",
207
+ "to": "reconnecting",
208
+ "event": "PUSH_DISCONNECTED",
209
+ "effects": [
210
+ [
211
+ "render-ui",
212
+ "main",
213
+ {
214
+ "gap": "sm",
215
+ "direction": "horizontal",
216
+ "type": "stack",
217
+ "align": "center",
218
+ "children": [
219
+ {
220
+ "size": "sm",
221
+ "name": "wifi-off",
222
+ "type": "icon",
223
+ "color": "destructive"
224
+ },
225
+ {
226
+ "variant": "caption",
227
+ "content": "Disconnected",
228
+ "type": "typography"
229
+ }
230
+ ]
231
+ }
232
+ ]
233
+ ]
234
+ }
235
+ ]
236
+ }
237
+ }
238
+ ],
239
+ "pages": [
240
+ {
241
+ "name": "Push",
242
+ "path": "/push",
243
+ "traits": [
244
+ {
245
+ "ref": "PushSubscriberIndicator"
246
+ }
247
+ ]
248
+ }
249
+ ]
250
+ }
251
+ ]
252
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "name": "std-related",
3
+ "version": "1.0.0",
4
+ "description": "Relation-rendering atom. Renders the linked entity as a data-list; consumers hydrate data via upstream fetch include: and rebind linkedEntity. Canonical @trait.X showcase in std-related-master-detail.",
5
+ "orbitals": [
6
+ {
7
+ "name": "RelatedItemOrbital",
8
+ "entity": {
9
+ "name": "RelatedItem",
10
+ "collection": "relateditems",
11
+ "persistence": "persistent",
12
+ "fields": [
13
+ {
14
+ "name": "id",
15
+ "type": "string",
16
+ "required": true
17
+ },
18
+ {
19
+ "name": "name",
20
+ "type": "string"
21
+ }
22
+ ]
23
+ },
24
+ "traits": [
25
+ {
26
+ "name": "RelatedItemList",
27
+ "category": "interaction",
28
+ "linkedEntity": "RelatedItem",
29
+ "emits": [
30
+ {
31
+ "event": "SELECT_RELATED"
32
+ }
33
+ ],
34
+ "stateMachine": {
35
+ "states": [
36
+ {
37
+ "name": "loaded",
38
+ "isInitial": true
39
+ }
40
+ ],
41
+ "events": [
42
+ {
43
+ "key": "INIT"
44
+ }
45
+ ],
46
+ "transitions": [
47
+ {
48
+ "from": "loaded",
49
+ "to": "loaded",
50
+ "event": "INIT",
51
+ "effects": [
52
+ [
53
+ "ref",
54
+ "RelatedItem"
55
+ ],
56
+ [
57
+ "render-ui",
58
+ "main",
59
+ {
60
+ "direction": "vertical",
61
+ "type": "stack",
62
+ "gap": "md",
63
+ "children": [
64
+ {
65
+ "align": "center",
66
+ "direction": "horizontal",
67
+ "type": "stack",
68
+ "gap": "sm",
69
+ "children": [
70
+ {
71
+ "size": "md",
72
+ "type": "icon",
73
+ "name": "link"
74
+ },
75
+ {
76
+ "variant": "h3",
77
+ "content": "Related",
78
+ "type": "typography"
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "type": "divider"
84
+ },
85
+ {
86
+ "type": "data-list",
87
+ "entity": "RelatedItem",
88
+ "emptyTitle": "No related items",
89
+ "emptyIcon": "inbox",
90
+ "emptyDescription": "Nothing to show.",
91
+ "renderItem": [
92
+ "fn",
93
+ "item",
94
+ {
95
+ "children": [
96
+ {
97
+ "type": "typography",
98
+ "variant": "body",
99
+ "content": "@item.name"
100
+ }
101
+ ],
102
+ "direction": "vertical",
103
+ "type": "stack",
104
+ "gap": "xs"
105
+ }
106
+ ]
107
+ }
108
+ ]
109
+ }
110
+ ]
111
+ ]
112
+ }
113
+ ]
114
+ }
115
+ }
116
+ ],
117
+ "pages": [
118
+ {
119
+ "name": "Related",
120
+ "path": "/related",
121
+ "traits": [
122
+ {
123
+ "ref": "RelatedItemList"
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ }
129
+ ]
130
+ }
@@ -0,0 +1,131 @@
1
+ {
2
+ "name": "std-batch-selected-list",
3
+ "version": "1.0.0",
4
+ "description": "Batch-select list: Browse + Selection + Confirmation with a batch-action toolbar, composed via @trait.X.",
5
+ "orbitals": [
6
+ {
7
+ "name": "BatchListItemOrbital",
8
+ "uses": [
9
+ {
10
+ "from": "std/behaviors/std-browse",
11
+ "as": "Browse"
12
+ },
13
+ {
14
+ "from": "std/behaviors/std-selection",
15
+ "as": "Selection"
16
+ },
17
+ {
18
+ "from": "std/behaviors/std-confirmation",
19
+ "as": "Confirmation"
20
+ }
21
+ ],
22
+ "entity": {
23
+ "name": "BatchListItem",
24
+ "collection": "batchlistitems",
25
+ "persistence": "persistent",
26
+ "fields": [
27
+ {
28
+ "name": "id",
29
+ "type": "string",
30
+ "required": true
31
+ },
32
+ {
33
+ "name": "name",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "name": "description",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "name": "status",
42
+ "type": "string"
43
+ }
44
+ ]
45
+ },
46
+ "traits": [
47
+ {
48
+ "ref": "Browse.traits.BrowseItemBrowse",
49
+ "name": "BatchItemBrowse",
50
+ "linkedEntity": "BatchListItem"
51
+ },
52
+ {
53
+ "ref": "Selection.traits.SelectableItemSelection",
54
+ "name": "BatchItemSelection",
55
+ "linkedEntity": "BatchListItem"
56
+ },
57
+ {
58
+ "ref": "Confirmation.traits.ConfirmActionConfirmation",
59
+ "name": "BatchItemConfirmation",
60
+ "linkedEntity": "BatchListItem"
61
+ },
62
+ {
63
+ "name": "BatchListLayout",
64
+ "category": "interaction",
65
+ "linkedEntity": "BatchListItem",
66
+ "stateMachine": {
67
+ "states": [
68
+ {
69
+ "name": "composing",
70
+ "isInitial": true
71
+ }
72
+ ],
73
+ "events": [
74
+ {
75
+ "key": "INIT"
76
+ }
77
+ ],
78
+ "transitions": [
79
+ {
80
+ "from": "composing",
81
+ "to": "composing",
82
+ "event": "INIT",
83
+ "effects": [
84
+ [
85
+ "render-ui",
86
+ "main",
87
+ {
88
+ "type": "stack",
89
+ "direction": "vertical",
90
+ "gap": "md",
91
+ "children": [
92
+ {
93
+ "direction": "horizontal",
94
+ "type": "stack",
95
+ "justify": "end",
96
+ "children": [
97
+ {
98
+ "icon": "trash-2",
99
+ "type": "button",
100
+ "event": "REQUEST",
101
+ "variant": "danger",
102
+ "label": "Delete selected"
103
+ }
104
+ ],
105
+ "gap": "sm"
106
+ },
107
+ "@trait.BatchItemSelection",
108
+ "@trait.BatchItemBrowse"
109
+ ]
110
+ }
111
+ ]
112
+ ]
113
+ }
114
+ ]
115
+ }
116
+ }
117
+ ],
118
+ "pages": [
119
+ {
120
+ "name": "BatchList",
121
+ "path": "/batch-list",
122
+ "traits": [
123
+ {
124
+ "ref": "BatchListLayout"
125
+ }
126
+ ]
127
+ }
128
+ ]
129
+ }
130
+ ]
131
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "std-calendar-booking",
3
+ "version": "1.0.0",
4
+ "description": "Calendar booking: Calendar view with Modal + Confirmation modals, Calendar composed via @trait.X.",
5
+ "orbitals": [
6
+ {
7
+ "name": "BookingOrbital",
8
+ "uses": [
9
+ {
10
+ "from": "std/behaviors/std-calendar",
11
+ "as": "Calendar"
12
+ },
13
+ {
14
+ "from": "std/behaviors/std-modal",
15
+ "as": "Modal"
16
+ },
17
+ {
18
+ "from": "std/behaviors/std-confirmation",
19
+ "as": "Confirmation"
20
+ }
21
+ ],
22
+ "entity": {
23
+ "name": "Booking",
24
+ "collection": "bookings",
25
+ "persistence": "persistent",
26
+ "fields": [
27
+ {
28
+ "name": "id",
29
+ "type": "string",
30
+ "required": true
31
+ },
32
+ {
33
+ "name": "title",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "name": "startsAt",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "name": "status",
42
+ "type": "string"
43
+ }
44
+ ]
45
+ },
46
+ "traits": [
47
+ {
48
+ "ref": "Calendar.traits.CalendarEventCalendar",
49
+ "name": "BookingCalendar",
50
+ "linkedEntity": "Booking"
51
+ },
52
+ {
53
+ "ref": "Modal.traits.ModalRecordModal",
54
+ "name": "BookingModal",
55
+ "linkedEntity": "Booking"
56
+ },
57
+ {
58
+ "ref": "Confirmation.traits.ConfirmActionConfirmation",
59
+ "name": "BookingConfirmation",
60
+ "linkedEntity": "Booking"
61
+ },
62
+ {
63
+ "name": "BookingLayout",
64
+ "category": "interaction",
65
+ "linkedEntity": "Booking",
66
+ "stateMachine": {
67
+ "states": [
68
+ {
69
+ "name": "composing",
70
+ "isInitial": true
71
+ }
72
+ ],
73
+ "events": [
74
+ {
75
+ "key": "INIT"
76
+ }
77
+ ],
78
+ "transitions": [
79
+ {
80
+ "from": "composing",
81
+ "to": "composing",
82
+ "event": "INIT",
83
+ "effects": [
84
+ [
85
+ "render-ui",
86
+ "main",
87
+ {
88
+ "type": "stack",
89
+ "direction": "vertical",
90
+ "children": [
91
+ "@trait.BookingCalendar"
92
+ ],
93
+ "gap": "md"
94
+ }
95
+ ]
96
+ ]
97
+ }
98
+ ]
99
+ }
100
+ }
101
+ ],
102
+ "pages": [
103
+ {
104
+ "name": "Calendar",
105
+ "path": "/calendar",
106
+ "traits": [
107
+ {
108
+ "ref": "BookingLayout"
109
+ }
110
+ ]
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ }