@almadar/std 16.179.0 → 16.181.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 (28) hide show
  1. package/behaviors/lolo/ui/core/atoms/std-detail-layout.lolo +82 -0
  2. package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +1 -9
  3. package/behaviors/lolo/ui/core/atoms/ui-filter-pill.lolo +2 -25
  4. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +20 -2
  5. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +6 -0
  6. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +2 -36
  7. package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +265 -0
  8. package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -38
  9. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +2 -90
  10. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +55 -17
  11. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +8 -0
  12. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +2 -101
  13. package/canonical-operators.json +14 -2
  14. package/dist/behaviors/exports-reader.js +2519 -2467
  15. package/dist/behaviors/functions/index.d.ts +91 -29
  16. package/dist/behaviors/functions/index.js +2517 -2468
  17. package/dist/behaviors/index.d.ts +1 -1
  18. package/dist/behaviors/index.js +2520 -2468
  19. package/dist/behaviors/query.js +2519 -2467
  20. package/dist/behaviors-embeddings.hash.json +3 -3
  21. package/dist/behaviors-embeddings.json +299 -291
  22. package/dist/behaviors-registry.json +556 -133
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +2520 -2468
  25. package/dist/knob-embeddings.hash.json +3 -3
  26. package/dist/knob-embeddings.json +1 -1
  27. package/dist/registry/factory-signatures.json +1 -1
  28. package/package.json +2 -2
@@ -0,0 +1,82 @@
1
+ app std-detail-layout "1.0.0"
2
+ "std-detail-layout — detail-page chrome band (back button + navigation-stack breadcrumb trail) above a single contentTrait slot. Use as the contentTrait of a detail page's AppShell binding: the band renders `← Back | Contracts › Contract details` from the orbital-scoped client navigation stack (session history, seeded from declared page-path ancestry on cold loads — the trail is never empty), and the consumer's detail trait renders below it. Back pops the stack; crumb clicks navigate to their level; a list router's `(navigate path payload { crumb: ?row.title })` labels the detail crumb with the real record title. Bind once per detail page — `XDetailLayout = DetailShell.traits.DetailLayout` with `contentTrait: @trait.XDetail`."
3
+ ;; @capabilities "detail page shell, breadcrumb trail, back navigation, record detail chrome, navigation stack, drill-down hierarchy"
4
+ orbital DetailLayoutOrbital {
5
+ entity DetailLayoutData [runtime] {
6
+ id : string!
7
+ }
8
+
9
+ trait DetailLayout -> @rebindable DetailLayoutData [interaction, instance] {
10
+ initial: composing
11
+
12
+ state composing {
13
+ INIT -> composing
14
+ (render-ui main {
15
+ type: stack
16
+ direction: vertical
17
+ gap: lg
18
+ className: "w-full"
19
+ children: [{
20
+ type: stack
21
+ direction: horizontal
22
+ align: center
23
+ gap: sm
24
+ className: "w-full border-b border-border pb-3"
25
+ children: [{
26
+ type: button
27
+ variant: ghost
28
+ size: sm
29
+ icon: arrow-left
30
+ label: @config.backLabel
31
+ action: BACK
32
+ }, {
33
+ type: breadcrumb
34
+ fromNavStack: true
35
+ itemEvent: CRUMB_NAV
36
+ }]
37
+ },
38
+ @config.contentTrait]
39
+ })
40
+ BACK -> composing
41
+ (navigate-back)
42
+ CRUMB_NAV -> composing
43
+ (navigate ?href)
44
+ }
45
+
46
+ emits {
47
+ BACK
48
+ @description "The shell's back affordance was pressed; the layout pops the navigation stack."
49
+ @synonyms "go back, return, previous page, up one level"
50
+ @tier "internal"
51
+ CRUMB_NAV
52
+ @description "A breadcrumb level was clicked; the layout navigates to that level's href."
53
+ @synonyms "breadcrumb click, jump to level, trail navigation"
54
+ @tier "internal"
55
+ }
56
+
57
+ listens {
58
+ CRUMB_NAV {
59
+ label : string
60
+ href : string!
61
+ index : number
62
+ }
63
+ @description "Breadcrumb level picked from the navigation-stack trail."
64
+ @synonyms "breadcrumb click, trail navigation"
65
+ @tier "internal"
66
+ }
67
+
68
+ config {
69
+ contentTrait : trait
70
+ @label "Content trait"
71
+ @description "The detail trait rendered below the navigation band (the DetailPanel + sections view)."
72
+ @tier "presentation"
73
+ backLabel : string = Back
74
+ @label "Back button label"
75
+ @description "Label on the band's back button, e.g. \"Back to contracts\"."
76
+ @synonyms "back text, return label"
77
+ @tier "presentation"
78
+ }
79
+ }
80
+
81
+ page "/detail-layout" as DetailLayoutPage -> DetailLayout
82
+ }
@@ -39,14 +39,6 @@ orbital BadgeOrbital {
39
39
  })
40
40
  }
41
41
 
42
- emits {
43
- @config.onRemove -> external {
44
- id : string
45
- }
46
- @description "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces."
47
- @tier "essential"
48
- }
49
-
50
42
  config {
51
43
  className : string
52
44
  @label "Class Name"
@@ -76,7 +68,7 @@ orbital BadgeOrbital {
76
68
  @label "Icon Asset"
77
69
  @description "Asset image rendered as the badge icon; takes precedence over icon when provided."
78
70
  @tier "presentation"
79
- onRemove : string = "REMOVE"
71
+ onRemove : string = ""
80
72
  @label "On Remove"
81
73
  @description "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces."
82
74
  @tier "presentation"
@@ -25,21 +25,6 @@ orbital FilterPillOrbital {
25
25
  removeEvent: @config.removeEvent
26
26
  type: filter-pill
27
27
  })
28
- REMOVE -> idle
29
- (set @entity.label ?label)
30
- (render-ui main {
31
- className: @config.className
32
- variant: @config.variant
33
- size: @config.size
34
- label: @entity.label
35
- icon: @config.icon
36
- onRemove: @config.onRemove
37
- removable: @config.removable
38
- onClick: @config.onClick
39
- clickEvent: @config.clickEvent
40
- removeEvent: @config.removeEvent
41
- type: filter-pill
42
- })
43
28
  CLICK -> idle
44
29
  (set @entity.label ?label)
45
30
  (render-ui main {
@@ -58,11 +43,6 @@ orbital FilterPillOrbital {
58
43
  }
59
44
 
60
45
  emits {
61
- @config.onRemove -> external {
62
- label : string!
63
- }
64
- @description "Called when the user clicks the remove (×) button"
65
- @tier "essential"
66
46
  @config.onClick -> external {
67
47
  label : string!
68
48
  }
@@ -71,9 +51,6 @@ orbital FilterPillOrbital {
71
51
  }
72
52
 
73
53
  listens {
74
- REMOVE {
75
- label : string!
76
- }
77
54
  CLICK {
78
55
  label : string!
79
56
  }
@@ -100,7 +77,7 @@ orbital FilterPillOrbital {
100
77
  @label "Icon"
101
78
  @description "Lucide icon component or canonical kebab-case icon name string"
102
79
  @tier "presentation"
103
- onRemove : string = "REMOVE"
80
+ onRemove : string = ""
104
81
  @label "On Remove"
105
82
  @description "Called when the user clicks the remove (×) button"
106
83
  @tier "presentation"
@@ -116,7 +93,7 @@ orbital FilterPillOrbital {
116
93
  @label "Click Event"
117
94
  @description "Event name dispatched via event bus when the pill body is clicked. Payload: { label }"
118
95
  @tier "presentation"
119
- removeEvent : string = "REMOVE"
96
+ removeEvent : string = ""
120
97
  @label "Remove Event"
121
98
  @description "Event name dispatched via event bus when the remove (×) button is clicked. Payload: { label }"
122
99
  @tier "presentation"
@@ -21,6 +21,8 @@ orbital BreadcrumbOrbital {
21
21
  INIT -> idle
22
22
  (render-ui main {
23
23
  items: @config.items
24
+ fromNavStack: @config.fromNavStack
25
+ itemEvent: @config.itemEvent
24
26
  separator: @config.separator
25
27
  maxItems: @config.maxItems
26
28
  className: @config.className
@@ -28,10 +30,26 @@ orbital BreadcrumbOrbital {
28
30
  })
29
31
  }
30
32
 
33
+ emits {
34
+ @config.itemEvent -> external {
35
+ id : string
36
+ }
37
+ @description "Event emitted when a non-current crumb is clicked, with payload `{ label, href, index }` — the trait handles it with `(navigate ?href)`. Without it, stack crumbs navigate directly."
38
+ @tier "essential"
39
+ }
40
+
31
41
  config {
32
- items : [BreadcrumbItemsItem] = [{ label: "Label", href: "Href", path: "Path", icon: "circle", isCurrent: false }, { label: "Label 2", href: "Href 2", path: "Path 2", icon: "circle", isCurrent: true }]
42
+ items : [BreadcrumbItemsItem] = []
33
43
  @label "Items"
34
- @description "Breadcrumb items"
44
+ @description "Breadcrumb items. Omit together with `fromNavStack` to render the orbital-scoped navigation stack instead of an authored trail."
45
+ @tier "presentation"
46
+ fromNavStack : boolean = false
47
+ @label "From Nav Stack"
48
+ @description "Render the current orbital's navigation stack (NavStackProvider) as the trail: one crumb per visited/declared level, last entry current. The stack is client-session state both execution paths maintain; outside a provider this renders nothing."
49
+ @tier "presentation"
50
+ itemEvent : string = "ITEM"
51
+ @label "Item Event"
52
+ @description "Event emitted when a non-current crumb is clicked, with payload `{ label, href, index }` — the trait handles it with `(navigate ?href)`. Without it, stack crumbs navigate directly."
35
53
  @tier "presentation"
36
54
  separator : icon
37
55
  @label "Separator"
@@ -79,6 +79,7 @@ orbital DetailPanelOrbital {
79
79
  avatar: @config.avatar
80
80
  sections: @config.sections
81
81
  actions: @config.actions
82
+ maxInlineActions: @config.maxInlineActions
82
83
  backAction: @config.backAction
83
84
  footer: @config.footer
84
85
  slideOver: @config.slideOver
@@ -113,6 +114,7 @@ orbital DetailPanelOrbital {
113
114
  avatar: @config.avatar
114
115
  sections: @config.sections
115
116
  actions: @config.actions
117
+ maxInlineActions: @config.maxInlineActions
116
118
  backAction: @config.backAction
117
119
  footer: @config.footer
118
120
  slideOver: @config.slideOver
@@ -206,6 +208,10 @@ orbital DetailPanelOrbital {
206
208
  @label "Actions"
207
209
  @description "Unified actions array - first action with variant='primary' is the main action"
208
210
  @tier "presentation"
211
+ maxInlineActions : number
212
+ @label "Max Inline Actions"
213
+ @description "Max inline action buttons before the rest collapse into a '⋯' overflow menu (mirrors DataGrid's maxInlineActions). Omit = all inline."
214
+ @tier "presentation"
209
215
  backAction : DetailPanelBackAction
210
216
  @label "Back Action"
211
217
  @description "Navigation-back affordance. Renders top-LEFT before the title (OS/back convention — Almadar_UX §8.4), spatially separated from the right-aligned action buttons + close X. Never inferred from actions[] labels."
@@ -156,32 +156,6 @@ orbital TraitSlotOrbital {
156
156
  dropEvent: @config.dropEvent
157
157
  type: trait-slot
158
158
  })
159
- REMOVE -> idle
160
- (set @entity.slotNumber ?slotNumber)
161
- (render-ui main {
162
- slotNumber: @entity.slotNumber
163
- equippedItem: @config.equippedItem
164
- locked: @config.locked
165
- lockLabel: @config.lockLabel
166
- selected: @config.selected
167
- size: @config.size
168
- showTooltip: @config.showTooltip
169
- categoryColors: @config.categoryColors
170
- tooltipFrameUrl: @config.tooltipFrameUrl
171
- className: @config.className
172
- isLoading: @config.isLoading
173
- error: @config.error
174
- onItemDrop: @config.onItemDrop
175
- draggable: @config.draggable
176
- onDragStart: @config.onDragStart
177
- feedback: @config.feedback
178
- onClick: @config.onClick
179
- onRemove: @config.onRemove
180
- clickEvent: @config.clickEvent
181
- removeEvent: @config.removeEvent
182
- dropEvent: @config.dropEvent
183
- type: trait-slot
184
- })
185
159
  DROP -> idle
186
160
  (set @entity.slotNumber ?slotNumber)
187
161
  (render-ui main {
@@ -226,11 +200,6 @@ orbital TraitSlotOrbital {
226
200
  }
227
201
  @description "-- Callbacks --"
228
202
  @tier "essential"
229
- @config.onRemove -> external {
230
- slotNumber : number!
231
- }
232
- @description "Remove handler"
233
- @tier "essential"
234
203
  @config.dropEvent -> external {
235
204
  slotNumber : number!
236
205
  itemId : string!
@@ -243,9 +212,6 @@ orbital TraitSlotOrbital {
243
212
  CLICK {
244
213
  slotNumber : number!
245
214
  }
246
- REMOVE {
247
- slotNumber : number!
248
- }
249
215
  DROP {
250
216
  slotNumber : number!
251
217
  itemId : string!
@@ -321,7 +287,7 @@ orbital TraitSlotOrbital {
321
287
  @label "On Click"
322
288
  @description "-- Callbacks --"
323
289
  @tier "presentation"
324
- onRemove : string = "REMOVE"
290
+ onRemove : string = ""
325
291
  @label "On Remove"
326
292
  @description "Remove handler"
327
293
  @tier "presentation"
@@ -329,7 +295,7 @@ orbital TraitSlotOrbital {
329
295
  @label "Click Event"
330
296
  @description "-- Declarative events --"
331
297
  @tier "presentation"
332
- removeEvent : string = "REMOVE"
298
+ removeEvent : string = ""
333
299
  @label "Remove Event"
334
300
  @description "Emits UI:{removeEvent} with { slotNumber }"
335
301
  @tier "presentation"
@@ -0,0 +1,265 @@
1
+ {
2
+ "description": "std-detail-layout — detail-page chrome band (back button + navigation-stack breadcrumb trail) above a single contentTrait slot. Use as the contentTrait of a detail page's AppShell binding: the band renders `← Back | Contracts › Contract details` from the orbital-scoped client navigation stack (session history, seeded from declared page-path ancestry on cold loads — the trail is never empty), and the consumer's detail trait renders below it. Back pops the stack; crumb clicks navigate to their level; a list router's `(navigate path payload { crumb: ?row.title })` labels the detail crumb with the real record title. Bind once per detail page — `XDetailLayout = DetailShell.traits.DetailLayout` with `contentTrait: @trait.XDetail`.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M0J07QZHFKDT9JQZ42HBVNQQ": {
6
+ "bakedName": "DetailLayoutData",
7
+ "curName": "DetailLayoutData",
8
+ "id": "ent_01M0J07QZHFKDT9JQZ42HBVNQQ",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M0J07QZHF7RM3JBVCVWSV7B4": {
14
+ "bakedName": "INIT",
15
+ "curName": "INIT",
16
+ "id": "evt_01M0J07QZHF7RM3JBVCVWSV7B4",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6",
20
+ "renames": []
21
+ },
22
+ "evt_01M0J07QZKCG5P5AGK0VHN2N9G": {
23
+ "bakedName": "BACK",
24
+ "curName": "BACK",
25
+ "id": "evt_01M0J07QZKCG5P5AGK0VHN2N9G",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6",
29
+ "renames": []
30
+ },
31
+ "evt_01M0J07QZKF2YJ9MMQ69KZ3CVB": {
32
+ "bakedName": "CRUMB_NAV",
33
+ "curName": "CRUMB_NAV",
34
+ "id": "evt_01M0J07QZKF2YJ9MMQ69KZ3CVB",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6",
38
+ "renames": []
39
+ },
40
+ "orb_01M0J07QZHNJF5BJSSEKF13PVV": {
41
+ "bakedName": "DetailLayoutOrbital",
42
+ "curName": "DetailLayoutOrbital",
43
+ "id": "orb_01M0J07QZHNJF5BJSSEKF13PVV",
44
+ "kind": "orbital",
45
+ "owner": "workspace",
46
+ "renames": []
47
+ },
48
+ "pag_01M0J07QZKPKTYGMZR1DDDDFC1": {
49
+ "bakedName": "DetailLayoutPage",
50
+ "curName": "DetailLayoutPage",
51
+ "id": "pag_01M0J07QZKPKTYGMZR1DDDDFC1",
52
+ "kind": "page",
53
+ "owner": "workspace",
54
+ "renames": []
55
+ },
56
+ "trt_01M0J07QZH6N0G9CKFXKBJ3AC6": {
57
+ "bakedName": "DetailLayout",
58
+ "curName": "DetailLayout",
59
+ "id": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6",
60
+ "kind": "trait",
61
+ "owner": "workspace",
62
+ "renames": []
63
+ }
64
+ },
65
+ "schemaVersion": 1
66
+ },
67
+ "name": "std-detail-layout",
68
+ "orbitals": [
69
+ {
70
+ "entity": {
71
+ "fields": [
72
+ {
73
+ "name": "id",
74
+ "required": true,
75
+ "type": "string"
76
+ }
77
+ ],
78
+ "id": "ent_01M0J07QZHFKDT9JQZ42HBVNQQ",
79
+ "name": "DetailLayoutData",
80
+ "persistence": "runtime"
81
+ },
82
+ "id": "orb_01M0J07QZHNJF5BJSSEKF13PVV",
83
+ "name": "DetailLayoutOrbital",
84
+ "pages": [
85
+ {
86
+ "id": "pag_01M0J07QZKPKTYGMZR1DDDDFC1",
87
+ "name": "DetailLayoutPage",
88
+ "path": "/detail-layout",
89
+ "traits": [
90
+ {
91
+ "ref": "DetailLayout",
92
+ "refId": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6"
93
+ }
94
+ ]
95
+ }
96
+ ],
97
+ "traits": [
98
+ {
99
+ "category": "interaction",
100
+ "config": {
101
+ "backLabel": {
102
+ "default": "Back",
103
+ "description": "Label on the band's back button, e.g. \"Back to contracts\".",
104
+ "label": "Back button label",
105
+ "synonyms": "back text, return label",
106
+ "tier": "presentation",
107
+ "type": "string"
108
+ },
109
+ "contentTrait": {
110
+ "description": "The detail trait rendered below the navigation band (the DetailPanel + sections view).",
111
+ "label": "Content trait",
112
+ "tier": "presentation",
113
+ "type": "trait"
114
+ }
115
+ },
116
+ "emits": [
117
+ {
118
+ "description": "The shell's back affordance was pressed; the layout pops the navigation stack.",
119
+ "event": "BACK",
120
+ "eventId": "evt_01M0J07QZKCG5P5AGK0VHN2N9G",
121
+ "synonyms": "go back, return, previous page, up one level",
122
+ "tier": "internal"
123
+ },
124
+ {
125
+ "description": "A breadcrumb level was clicked; the layout navigates to that level's href.",
126
+ "event": "CRUMB_NAV",
127
+ "eventId": "evt_01M0J07QZKF2YJ9MMQ69KZ3CVB",
128
+ "synonyms": "breadcrumb click, jump to level, trail navigation",
129
+ "tier": "internal"
130
+ }
131
+ ],
132
+ "entityContract": {
133
+ "provides": [],
134
+ "requires": []
135
+ },
136
+ "entityRebindable": true,
137
+ "entityRefIds": {
138
+ "DetailLayoutData": "ent_01M0J07QZHFKDT9JQZ42HBVNQQ"
139
+ },
140
+ "id": "trt_01M0J07QZH6N0G9CKFXKBJ3AC6",
141
+ "linkedEntity": "DetailLayoutData",
142
+ "linkedEntityId": "ent_01M0J07QZHFKDT9JQZ42HBVNQQ",
143
+ "name": "DetailLayout",
144
+ "scope": "instance",
145
+ "stateMachine": {
146
+ "events": [
147
+ {
148
+ "id": "evt_01M0J07QZHF7RM3JBVCVWSV7B4",
149
+ "key": "INIT",
150
+ "name": "Initialize"
151
+ },
152
+ {
153
+ "description": "The shell's back affordance was pressed; the layout pops the navigation stack.",
154
+ "id": "evt_01M0J07QZKCG5P5AGK0VHN2N9G",
155
+ "key": "BACK",
156
+ "name": "Back",
157
+ "synonyms": "go back, return, previous page, up one level",
158
+ "tier": "internal"
159
+ },
160
+ {
161
+ "description": "A breadcrumb level was clicked; the layout navigates to that level's href.",
162
+ "id": "evt_01M0J07QZKF2YJ9MMQ69KZ3CVB",
163
+ "key": "CRUMB_NAV",
164
+ "name": "Crumb Nav",
165
+ "payloadSchema": [
166
+ {
167
+ "name": "label",
168
+ "type": "string"
169
+ },
170
+ {
171
+ "name": "href",
172
+ "required": true,
173
+ "type": "string"
174
+ },
175
+ {
176
+ "name": "index",
177
+ "type": "number"
178
+ }
179
+ ],
180
+ "synonyms": "breadcrumb click, jump to level, trail navigation",
181
+ "tier": "internal"
182
+ }
183
+ ],
184
+ "states": [
185
+ {
186
+ "isInitial": true,
187
+ "name": "composing"
188
+ }
189
+ ],
190
+ "transitions": [
191
+ {
192
+ "effects": [
193
+ [
194
+ "render-ui",
195
+ "main",
196
+ {
197
+ "children": [
198
+ {
199
+ "align": "center",
200
+ "children": [
201
+ {
202
+ "action": "BACK",
203
+ "icon": "arrow-left",
204
+ "label": "@config.backLabel",
205
+ "size": "sm",
206
+ "type": "button",
207
+ "variant": "ghost"
208
+ },
209
+ {
210
+ "fromNavStack": true,
211
+ "itemEvent": "CRUMB_NAV",
212
+ "type": "breadcrumb"
213
+ }
214
+ ],
215
+ "className": "w-full border-b border-border pb-3",
216
+ "direction": "horizontal",
217
+ "gap": "sm",
218
+ "type": "stack"
219
+ },
220
+ "@config.contentTrait"
221
+ ],
222
+ "className": "w-full",
223
+ "direction": "vertical",
224
+ "gap": "lg",
225
+ "type": "stack"
226
+ }
227
+ ]
228
+ ],
229
+ "event": "INIT",
230
+ "eventId": "evt_01M0J07QZHF7RM3JBVCVWSV7B4",
231
+ "from": "composing",
232
+ "to": "composing"
233
+ },
234
+ {
235
+ "effects": [
236
+ [
237
+ "navigate-back"
238
+ ]
239
+ ],
240
+ "event": "BACK",
241
+ "eventId": "evt_01M0J07QZKCG5P5AGK0VHN2N9G",
242
+ "from": "composing",
243
+ "to": "composing"
244
+ },
245
+ {
246
+ "effects": [
247
+ [
248
+ "navigate",
249
+ "@payload.href"
250
+ ]
251
+ ],
252
+ "event": "CRUMB_NAV",
253
+ "eventId": "evt_01M0J07QZKF2YJ9MMQ69KZ3CVB",
254
+ "from": "composing",
255
+ "to": "composing"
256
+ }
257
+ ]
258
+ }
259
+ }
260
+ ]
261
+ }
262
+ ],
263
+ "schemaVersion": 1,
264
+ "version": "1.0.0"
265
+ }
@@ -19,15 +19,6 @@
19
19
  "parent": "trt_01KXG04J66F1NVJTF3ZS57P7K6",
20
20
  "renames": []
21
21
  },
22
- "evt_01KXG04J690VY1KHNSN7EFXBQX": {
23
- "bakedName": "@config.onRemove",
24
- "curName": "@config.onRemove",
25
- "id": "evt_01KXG04J690VY1KHNSN7EFXBQX",
26
- "kind": "event",
27
- "owner": "workspace",
28
- "parent": "trt_01KXG04J66F1NVJTF3ZS57P7K6",
29
- "renames": []
30
- },
31
22
  "orb_01KXG04J66RQ2ZKZ9VJXM9VS1C": {
32
23
  "bakedName": "BadgeOrbital",
33
24
  "curName": "BadgeOrbital",
@@ -202,7 +193,7 @@
202
193
  "type": "string"
203
194
  },
204
195
  "onRemove": {
205
- "default": "REMOVE",
196
+ "default": "",
206
197
  "description": "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces.",
207
198
  "label": "On Remove",
208
199
  "tier": "presentation",
@@ -245,21 +236,6 @@
245
236
  ]
246
237
  }
247
238
  },
248
- "emits": [
249
- {
250
- "description": "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces.",
251
- "event": "@config.onRemove",
252
- "eventId": "evt_01KXG04J690VY1KHNSN7EFXBQX",
253
- "payloadSchema": [
254
- {
255
- "name": "id",
256
- "type": "string"
257
- }
258
- ],
259
- "scope": "external",
260
- "tier": "essential"
261
- }
262
- ],
263
239
  "entityContract": {
264
240
  "provides": [],
265
241
  "requires": []
@@ -279,19 +255,6 @@
279
255
  "id": "evt_01KXG04J66HMQ87R0XX75VN72Q",
280
256
  "key": "INIT",
281
257
  "name": "Initialize"
282
- },
283
- {
284
- "description": "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces.",
285
- "id": "evt_01KXG04J690VY1KHNSN7EFXBQX",
286
- "key": "@config.onRemove",
287
- "name": "@config.on remove",
288
- "payloadSchema": [
289
- {
290
- "name": "id",
291
- "type": "string"
292
- }
293
- ],
294
- "tier": "essential"
295
258
  }
296
259
  ],
297
260
  "states": [