Phase 1 UI foundation: 32 style classes, 9 shared components, tab shell, placeholders

Dashboard shell: bundle expr binding + script transform, onStartup range init,
hand-rolled tab bar (position.display exprs), CONTRACT.md frozen pending G1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 12:16:16 -05:00
parent af662f6fd2
commit c82a2fa6df
98 changed files with 3006 additions and 13 deletions

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,68 @@
{
"custom": {},
"params": {
"bundle": null
},
"propConfig": {
"params.bundle": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "ph"
},
"props": {
"style": {
"classes": "PrimeControls/Empty"
},
"text": "Analysis - built in Phase 2"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "evt"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "view.params.bundle"
},
"transforms": [
{
"code": "\ttry:\n\t\treturn 'bundle: %s events in range' % value['meta']['event_count']\n\texcept:\n\t\treturn 'bundle: not loaded'",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "PrimeControls/Text/Muted"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"alignItems": "center",
"classes": "PrimeControls/Card",
"justifyContent": "center"
}
},
"type": "ia.container.flex"
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,68 @@
{
"custom": {},
"params": {
"bundle": null
},
"propConfig": {
"params.bundle": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "ph"
},
"props": {
"style": {
"classes": "PrimeControls/Empty"
},
"text": "Bad Actors - built in Phase 2"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "evt"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "view.params.bundle"
},
"transforms": [
{
"code": "\ttry:\n\t\treturn 'bundle: %s events in range' % value['meta']['event_count']\n\texcept:\n\t\treturn 'bundle: not loaded'",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "PrimeControls/Text/Muted"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"alignItems": "center",
"classes": "PrimeControls/Card",
"justifyContent": "center"
}
},
"type": "ia.container.flex"
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,68 @@
{
"custom": {},
"params": {
"bundle": null
},
"propConfig": {
"params.bundle": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "ph"
},
"props": {
"style": {
"classes": "PrimeControls/Empty"
},
"text": "Journal - built in Phase 2"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "evt"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "view.params.bundle"
},
"transforms": [
{
"code": "\ttry:\n\t\treturn 'bundle: %s events in range' % value['meta']['event_count']\n\texcept:\n\t\treturn 'bundle: not loaded'",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "PrimeControls/Text/Muted"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"alignItems": "center",
"classes": "PrimeControls/Card",
"justifyContent": "center"
}
},
"type": "ia.container.flex"
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,68 @@
{
"custom": {},
"params": {
"bundle": null
},
"propConfig": {
"params.bundle": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "ph"
},
"props": {
"style": {
"classes": "PrimeControls/Empty"
},
"text": "Overview - built in Phase 2"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "evt"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "view.params.bundle"
},
"transforms": [
{
"code": "\ttry:\n\t\treturn 'bundle: %s events in range' % value['meta']['event_count']\n\texcept:\n\t\treturn 'bundle: not loaded'",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "PrimeControls/Text/Muted"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"alignItems": "center",
"classes": "PrimeControls/Card",
"justifyContent": "center"
}
},
"type": "ia.container.flex"
}
}