Skip to content

Commit cfbbc0c

Browse files
authored
Update front_panel.objects.json
1 parent 97d4f55 commit cfbbc0c

1 file changed

Lines changed: 100 additions & 137 deletions

File tree

Lines changed: 100 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,118 @@
11
{
2-
"artifact_kind": "frog_backend_contract",
2+
"artifact_kind": "frog_ui_object_realization",
33
"artifact_governance_ref": {
44
"path": "Versioning/Readme.md"
55
},
6-
"backend_family": "reference_host_runtime_ui_binding",
7-
"producer": {
8-
"implementation": "FROG Reference ContractEmitter",
9-
"implementation_kind": "non_normative_reference_emitter",
10-
"version_governance_ref": "Versioning/Readme.md"
11-
},
12-
"compatibility": "family_specific",
13-
"source_ref": {
6+
"example_ref": {
147
"example_id": "05_bounded_ui_accumulator",
15-
"path": "Examples/05_bounded_ui_accumulator/main.frog",
16-
"entry_unit": "main"
17-
},
18-
"derived_from": {
19-
"fir_path": "Examples/05_bounded_ui_accumulator/main.fir.json",
20-
"lowering_path": "Examples/05_bounded_ui_accumulator/main.lowering.json",
8+
"source_path": "Examples/05_bounded_ui_accumulator/main.frog",
219
"ui_package_path": "Examples/05_bounded_ui_accumulator/ui/accumulator_panel.wfrog"
2210
},
23-
"assumptions": {
24-
"runtime_family": {
25-
"name": "reference_host_runtime_ui_binding",
26-
"host_model": "single_process_host_runtime",
27-
"ui_binding": {
28-
"widget_value_binding": true,
29-
"widget_reference_binding": true
30-
}
31-
},
32-
"scheduling": {
33-
"family_rule": "deterministic_step_execution",
34-
"parallelism_claim": "none"
35-
},
36-
"execution_start": {
37-
"input_binding_complete": true,
38-
"ui_host_available": true,
39-
"initial_state_materialized": true
40-
},
41-
"numeric_behavior": {
42-
"value_domain": "u16",
43-
"overflow_behavior": "family_private_reject_or_fail_if_unhandled"
44-
}
11+
"ownership_boundary": {
12+
"semantic_authority": "canonical_source_and_published_widget_contracts",
13+
"object_contract_authority": "published_widget_contracts",
14+
"host_realization_authority": "this_file",
15+
"notes": [
16+
"This file is downstream from canonical source-owned meaning.",
17+
"This file must not redefine executable semantics.",
18+
"This file may define concrete host widgets, layout, styling, and host-private realization metadata.",
19+
"Widget class names in this file must stay aligned with published widget contracts."
20+
]
21+
},
22+
"host_family": {
23+
"name": "reference_host_runtime_ui_binding",
24+
"ui_host_kind": "reference_windowed_host",
25+
"rendering_model": "immediate_value_and_property_application"
4526
},
46-
"units": [
27+
"window": {
28+
"id": "main_window",
29+
"title": "Bounded UI Accumulator",
30+
"width": 460,
31+
"height": 170,
32+
"resizable": false,
33+
"background": "#F5F7FA"
34+
},
35+
"objects": [
4736
{
48-
"unit_id": "main",
49-
"kind": "bounded_executable_ui_unit",
50-
"public_interface": {
51-
"inputs": [
52-
{
53-
"id": "input_value",
54-
"type": "u16",
55-
"binding_origin": "widget.ctrl_input.value"
56-
}
57-
],
58-
"outputs": [
59-
{
60-
"id": "result",
61-
"type": "u16",
62-
"binding_target": "interface.result"
63-
}
64-
]
37+
"object_id": "ctrl_input",
38+
"widget_id": "ctrl_input",
39+
"widget_class": "frog.widgets.numeric_control",
40+
"role": "control",
41+
"layout": {
42+
"x": 20,
43+
"y": 24,
44+
"width": 140,
45+
"height": 32
6546
},
66-
"ui_binding": {
67-
"package_refs": [
68-
"Examples/05_bounded_ui_accumulator/ui/accumulator_panel.wfrog"
69-
],
70-
"widgets": [
71-
{
72-
"widget_id": "ctrl_input",
73-
"widget_class": "frog.widgets.numeric_control",
74-
"value_type": "u16",
75-
"role": "control",
76-
"binding": {
77-
"mode": "widget_value",
78-
"public_input_id": "input_value"
79-
}
80-
},
81-
{
82-
"widget_id": "ind_result",
83-
"widget_class": "frog.widgets.numeric_indicator",
84-
"value_type": "u16",
85-
"role": "indicator",
86-
"binding": {
87-
"mode": "widget_value",
88-
"public_output_id": "result"
89-
}
90-
}
91-
],
92-
"widget_reference_support": [
93-
{
94-
"widget_id": "ctrl_input",
95-
"supported_members": [
96-
"foreground_color"
97-
]
98-
},
99-
{
100-
"widget_id": "ind_result",
101-
"supported_members": [
102-
"foreground_color"
103-
]
104-
}
105-
]
47+
"semantic_surface": {
48+
"value_type": "u16",
49+
"value_binding_mode": "widget_value",
50+
"reference_binding": true,
51+
"label.text": "Input",
52+
"interaction.visible": true,
53+
"default_value": 3
10654
},
107-
"state_model": {
108-
"explicit_state": true,
109-
"carrier": {
110-
"primitive": "frog.core.delay",
111-
"state_id": "accumulator_state",
112-
"type": "u16",
113-
"initial_value": 0
55+
"host_realization": {
56+
"host_class": "reference.numeric_spinbox",
57+
"visual": {
58+
"caption_text": "Input",
59+
"foreground_color": "#5B9BD5",
60+
"text_color": "#1F2937",
61+
"font_family": "default_sans",
62+
"font_size": 12,
63+
"border_radius": 4
11464
},
115-
"commit_rule": "state_next becomes state_current at the loop iteration commit point"
65+
"constraints": {
66+
"minimum": 0,
67+
"maximum": 65535,
68+
"step": 1
69+
}
11670
},
117-
"execution_model": {
118-
"structure": "for_loop",
119-
"iteration_count": 5,
120-
"iteration_variable": "i",
121-
"body_rule": {
122-
"kind": "accumulate_with_explicit_state",
123-
"expression": "state_next = state_current + input_value"
124-
},
125-
"final_result_rule": "final_state is published to public output result and to indicator ind_result"
71+
"runtime_binding": {
72+
"widget_value_binding": true,
73+
"widget_reference_binding": true,
74+
"supported_members": [
75+
"foreground_color"
76+
]
77+
}
78+
},
79+
{
80+
"object_id": "ind_result",
81+
"widget_id": "ind_result",
82+
"widget_class": "frog.widgets.numeric_indicator",
83+
"role": "indicator",
84+
"layout": {
85+
"x": 240,
86+
"y": 24,
87+
"width": 160,
88+
"height": 32
12689
},
127-
"property_writes": [
128-
{
129-
"operation": "frog.ui.property_write",
130-
"widget_id": "ctrl_input",
131-
"member": "foreground_color",
132-
"value": {
133-
"type": "frog.color.rgba8",
134-
"value": "#5B9BD5"
135-
}
136-
},
137-
{
138-
"operation": "frog.ui.property_write",
139-
"widget_id": "ind_result",
140-
"member": "foreground_color",
141-
"value": {
142-
"type": "frog.color.rgba8",
143-
"value": "#70AD47"
144-
}
90+
"semantic_surface": {
91+
"value_type": "u16",
92+
"value_binding_mode": "widget_value",
93+
"reference_binding": true,
94+
"label.text": "Accumulated result",
95+
"interaction.visible": true,
96+
"default_value": 0
97+
},
98+
"host_realization": {
99+
"host_class": "reference.numeric_display",
100+
"visual": {
101+
"caption_text": "Accumulated result",
102+
"foreground_color": "#70AD47",
103+
"text_color": "#1F2937",
104+
"font_family": "default_sans",
105+
"font_size": 12,
106+
"border_radius": 4
145107
}
146-
],
147-
"public_output_publication": {
148-
"output_id": "result",
149-
"source": "final_state"
108+
},
109+
"runtime_binding": {
110+
"widget_value_binding": true,
111+
"widget_reference_binding": true,
112+
"supported_members": [
113+
"foreground_color"
114+
]
150115
}
151116
}
152-
],
153-
"unsupported": [],
154-
"diagnostics": []
117+
]
155118
}

0 commit comments

Comments
 (0)