From 1247c513892503094f944ae392a2c5cca027f283 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sat, 11 Apr 2026 22:00:03 +0200 Subject: [PATCH] Create initial screens and brief Signed-off-by: Till Wegmueller --- main.pen | 11070 +++++++++++++++++++++++++++++++++++++++++++++ projectbrief.txt | 10 + 2 files changed, 11080 insertions(+) create mode 100644 main.pen create mode 100644 projectbrief.txt diff --git a/main.pen b/main.pen new file mode 100644 index 0000000..220cbda --- /dev/null +++ b/main.pen @@ -0,0 +1,11070 @@ +{ + "version": "2.10", + "children": [ + { + "type": "frame", + "id": "Q70r7", + "x": 1540, + "y": 0, + "name": "Work Item Detail", + "clip": true, + "width": 1440, + "height": 900, + "fill": "$--surface-inverse", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "frame", + "id": "O7bQq", + "name": "Sidebar", + "width": 240, + "height": "fill_container", + "fill": "$--surface-card", + "layout": "vertical", + "gap": 8, + "padding": [ + 24, + 16, + 16, + 16 + ], + "children": [ + { + "type": "frame", + "id": "leYvG", + "name": "logo", + "width": "fill_container", + "gap": 10, + "padding": [ + 0, + 0, + 20, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "69rUm", + "name": "logoIcon", + "width": 28, + "height": 28, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 1 + } + ] + }, + "cornerRadius": 6 + }, + { + "type": "text", + "id": "1pqsv", + "name": "logoText", + "fill": "$--foreground-inverse", + "content": "CommandApp", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "OWxi9", + "name": "navSection", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "frame", + "id": "zqEjH", + "name": "navDash", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "8Q3Bk", + "name": "navDashIcon", + "width": 18, + "height": 18, + "iconFontName": "layout-dashboard", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "WvuJv", + "name": "navDashText", + "fill": "$--foreground-dim", + "content": "Dashboard", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "ZvXJu", + "name": "navProj", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "JsGkf", + "name": "navProjIcon", + "width": 18, + "height": 18, + "iconFontName": "folder-git-2", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "BKZLi", + "name": "navProjText", + "fill": "$--foreground-dim", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "lbaIs", + "name": "navLib", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "OFylu", + "name": "navLibIcon", + "width": 18, + "height": 18, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "B1xQz", + "name": "navLibText", + "fill": "$--foreground-dim", + "content": "Library", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "7J6qH", + "name": "navFlow", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "jA2t7", + "name": "navFlowIcon", + "width": 18, + "height": 18, + "iconFontName": "workflow", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "Ebv81", + "name": "navFlowText", + "fill": "$--foreground-dim", + "content": "Workflows", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "zGqPO", + "name": "Main Content", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-inverse", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "Pv6ql", + "layoutPosition": "absolute", + "x": 0, + "y": 0, + "name": "Neon Streaks", + "opacity": 0.35, + "width": 1200, + "height": 900, + "layout": "none", + "children": [ + { + "type": "rectangle", + "id": "2dR5i", + "x": -50, + "y": 80, + "name": "streak1", + "rotation": 8, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#582CFF00", + "position": 0 + }, + { + "color": "$--accent-primary", + "position": 0.4 + }, + { + "color": "#582CFF00", + "position": 1 + } + ] + }, + "width": 700, + "height": 3, + "effect": { + "type": "blur", + "radius": 20 + } + }, + { + "type": "rectangle", + "id": "zRtg6", + "x": 200, + "y": 350, + "name": "streak2", + "rotation": -6.000000000000001, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#BF40FF00", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 0.5 + }, + { + "color": "#BF40FF00", + "position": 1 + } + ] + }, + "width": 500, + "height": 2, + "effect": { + "type": "blur", + "radius": 25 + } + }, + { + "type": "rectangle", + "id": "ZPJgv", + "x": 100, + "y": 600, + "name": "streak3", + "rotation": 10, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#00F2FF00", + "position": 0 + }, + { + "color": "$--accent-tertiary", + "position": 0.45 + }, + { + "color": "#00F2FF00", + "position": 1 + } + ] + }, + "width": 600, + "height": 3, + "effect": { + "type": "blur", + "radius": 30 + } + }, + { + "type": "rectangle", + "id": "TVh6t", + "x": -100, + "y": 500, + "name": "streak4", + "rotation": -12.000000000000002, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#582CFF00", + "position": 0 + }, + { + "color": "$--accent-primary", + "position": 0.5 + }, + { + "color": "#BF40FF00", + "position": 1 + } + ] + }, + "width": 400, + "height": 2, + "effect": { + "type": "blur", + "radius": 18 + } + } + ] + }, + { + "type": "frame", + "id": "iBkcA", + "name": "Top Bar", + "width": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 16, + "padding": [ + 16, + 24 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "uSFxd", + "name": "backBtn", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 6, + "padding": [ + 6, + 8 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "mMfEK", + "name": "backIcon", + "width": 14, + "height": 14, + "iconFontName": "arrow-left", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "aLRU5", + "name": "backText", + "fill": "$--foreground-muted", + "content": "Back", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "54HsM", + "name": "breadcrumb", + "fill": "$--foreground-dim", + "content": "Projects / Auth Service / Work Items / WI-142", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal", + "letterSpacing": 0.3 + }, + { + "type": "frame", + "id": "WBXEX", + "name": "topSpacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "9A4a9", + "name": "searchBox", + "width": 200, + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "G6cjr", + "name": "searchIcon", + "width": 14, + "height": 14, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "tSe7C", + "name": "searchText", + "fill": "$--foreground-dim", + "content": "Search...", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "icon_font", + "id": "PAcqk", + "name": "bellIcon", + "width": 18, + "height": 18, + "iconFontName": "bell", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + }, + { + "type": "frame", + "id": "bfkBF", + "name": "Content Body", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "children": [ + { + "type": "frame", + "id": "fyzyD", + "name": "Left Column", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 20, + "padding": [ + 24, + 28 + ], + "children": [ + { + "type": "frame", + "id": "j8Zda", + "name": "Work Item Header", + "width": "fill_container", + "layout": "vertical", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "sxHkC", + "name": "headerTop", + "width": "fill_container", + "gap": 10, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "aIR1I", + "name": "statusBadge", + "fill": "$--accent-primary-muted", + "cornerRadius": 12, + "gap": 5, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "lB19p", + "name": "statusDot", + "fill": "$--accent-primary", + "width": 7, + "height": 7 + }, + { + "type": "text", + "id": "oy86G", + "name": "statusText", + "fill": "$--accent-primary", + "content": "In Progress", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "5mmmr", + "name": "priorBadge", + "fill": "#F59E0B22", + "cornerRadius": 12, + "gap": 5, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "5Bhp7", + "name": "priorText", + "fill": "$--warning", + "content": "High Priority", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "idPAk", + "name": "workflowBadge", + "cornerRadius": 12, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 5, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "3Aiel", + "name": "wfIcon", + "width": 11, + "height": 11, + "iconFontName": "workflow", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "7AWnQ", + "name": "wfText", + "fill": "$--accent-tertiary", + "content": "Security Review", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "tb2bh", + "name": "titleText", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Auth middleware rewrite — session token compliance", + "fontFamily": "Inter", + "fontSize": 22, + "fontWeight": "600" + }, + { + "type": "text", + "id": "purGb", + "name": "descText", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Rewrite the authentication middleware to meet new compliance requirements for session token storage. Legal flagged the current implementation for storing tokens in a way that doesn't meet the updated security policy. This work item coordinates the full rewrite across API gateway and service layers.", + "lineHeight": 1.5, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "deB74", + "name": "Phase Indicator", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "chCX9", + "name": "phaseLabel", + "fill": "$--foreground-dim", + "content": "Phase:", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "lL7pq", + "name": "phase1", + "fill": "#22C55E22", + "cornerRadius": 10, + "gap": 4, + "padding": [ + 2, + 8 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "GNY3F", + "name": "phase1Check", + "width": 10, + "height": 10, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "sNyJM", + "name": "phase1Text", + "fill": "$--success", + "content": "Created", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "icon_font", + "id": "7e5fg", + "name": "phaseArrow1", + "width": 10, + "height": 10, + "iconFontName": "chevron-right", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "ImTvk", + "name": "phase2", + "fill": "#22C55E22", + "cornerRadius": 10, + "gap": 4, + "padding": [ + 2, + 8 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "DKEWe", + "name": "phase2Check", + "width": 10, + "height": 10, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "ilt70", + "name": "phase2Text", + "fill": "$--success", + "content": "AI Research", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "icon_font", + "id": "3qSWy", + "name": "phaseArrow2", + "width": 10, + "height": 10, + "iconFontName": "chevron-right", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "ZdszT", + "name": "phase3", + "fill": "#22C55E22", + "cornerRadius": 10, + "gap": 4, + "padding": [ + 2, + 8 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "xBOEp", + "name": "phase3Check", + "width": 10, + "height": 10, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "swGOL", + "name": "phase3Text", + "fill": "$--success", + "content": "AI Enhanced", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "icon_font", + "id": "PKoA0", + "name": "phaseArrow3", + "width": 10, + "height": 10, + "iconFontName": "chevron-right", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "OmNrb", + "name": "phase4", + "fill": "$--accent-primary-muted", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--accent-primary" + }, + "gap": 4, + "padding": [ + 3, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "4Zik1", + "name": "phase4Dot", + "fill": "$--accent-primary", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "wD5Li", + "name": "phase4Text", + "fill": "$--accent-primary", + "content": "Implementation", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "icon_font", + "id": "ZnVe7", + "name": "phaseArrow4", + "width": 10, + "height": 10, + "iconFontName": "chevron-right", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "pWdHu", + "name": "phase5", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "DcKiK", + "name": "phase5Text", + "fill": "$--foreground-dim", + "content": "Review", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "sVOkh", + "name": "metaRow", + "width": "fill_container", + "gap": 20, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "Tsg3U", + "name": "metaProj", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "M7TkM", + "name": "metaProjIcon", + "width": 13, + "height": 13, + "iconFontName": "folder-git-2", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "fJMdd", + "name": "metaProjText", + "fill": "$--foreground-dim", + "content": "auth-service", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "szvYD", + "name": "metaBranch", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Q3lre", + "name": "metaBranchIcon", + "width": 13, + "height": 13, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "WxJw1", + "name": "metaBranchText", + "fill": "$--foreground-dim", + "content": "feat/auth-rewrite", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "rYI7p", + "name": "metaTime", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "7Gm8d", + "name": "metaTimeIcon", + "width": 13, + "height": 13, + "iconFontName": "timer", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "2V0zk", + "name": "metaTimeText", + "fill": "$--foreground-dim", + "content": "Updated 12 min ago", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "kNpll", + "name": "divider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "urcLp", + "name": "Thread Tabs", + "width": "fill_container", + "children": [ + { + "type": "frame", + "id": "hnxgR", + "name": "tabDiscussion", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 2 + }, + "fill": "$--accent-primary" + }, + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QwXhY", + "name": "tabDiscIcon", + "width": 14, + "height": 14, + "iconFontName": "message-square", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "g623q", + "name": "tabDiscText", + "fill": "$--foreground-inverse", + "content": "Discussion", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "t12Qo", + "name": "tabDiscCount", + "fill": "$--accent-primary-muted", + "cornerRadius": 8, + "padding": [ + 2, + 7 + ], + "children": [ + { + "type": "text", + "id": "SYjGE", + "name": "tabDiscNum", + "fill": "$--accent-primary", + "content": "8", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "CvRjo", + "name": "tabAI", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "w15B0", + "name": "tabAIIcon", + "width": 14, + "height": 14, + "iconFontName": "bot", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "kOdG0", + "name": "tabAIText", + "fill": "$--foreground-dim", + "content": "AI Sessions", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "ikUcY", + "name": "tabToolOutput", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "wZ4N9", + "name": "tabToolIcon", + "width": 14, + "height": 14, + "iconFontName": "terminal", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "FNLh5", + "name": "tabToolText", + "fill": "$--foreground-dim", + "content": "Tool Output", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "FPJKO", + "name": "tabPatches", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "MChpj", + "name": "tabPatchIcon", + "width": 14, + "height": 14, + "iconFontName": "git-compare", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "umksF", + "name": "tabPatchText", + "fill": "$--foreground-dim", + "content": "Changes", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "9WzsM", + "name": "tabPatchCount", + "fill": "$--surface-elevated", + "cornerRadius": 8, + "padding": [ + 2, + 7 + ], + "children": [ + { + "type": "text", + "id": "p0pJu", + "name": "tabPatchNum", + "fill": "$--foreground-dim", + "content": "2", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "2Bnji", + "name": "tabDocs", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Kfghw", + "name": "tabDocsIcon", + "width": 14, + "height": 14, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "wP0JV", + "name": "tabDocsText", + "fill": "$--foreground-dim", + "content": "Docs", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "723iT", + "name": "Discussion Thread", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 16, + "children": [ + { + "type": "frame", + "id": "oRQVy", + "name": "AI Message", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "DyDhg", + "name": "msg1Avatar", + "width": 32, + "height": 32, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 1 + } + ] + }, + "cornerRadius": 16, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "2mJw2", + "name": "msg1AvatarIcon", + "width": 16, + "height": 16, + "iconFontName": "bot", + "iconFontFamily": "lucide", + "fill": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "YnTFC", + "name": "msg1Body", + "width": "fill_container", + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "IFF34", + "name": "msg1Header", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "ou9fI", + "name": "msg1Name", + "fill": "$--foreground-inverse", + "content": "Claude — Gap Analysis", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "MWw1d", + "name": "msg1Badge", + "fill": "$--accent-primary-muted", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "J2Y1k", + "name": "msg1BadgeText", + "fill": "$--accent-primary", + "content": "Promoted", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "text", + "id": "DfipG", + "name": "msg1Time", + "fill": "$--foreground-dim", + "content": "2h ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "CtSFh", + "name": "msg1Content", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Gap analysis complete for auth middleware. Found 3 critical gaps:\n\n1. Session tokens stored in plaintext cookies — needs encrypted httpOnly tokens\n2. No token rotation on privilege escalation\n3. Missing CSRF protection on state-changing endpoints\n\nRecommended implementation order: CSRF → token encryption → rotation. Estimated 3 sessions to complete.", + "lineHeight": 1.55, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "LFsPD", + "name": "msg1Actions", + "width": "fill_container", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "XCDZU", + "name": "msg1Act1", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 4, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "tkVXo", + "name": "msg1Act1Icon", + "width": 12, + "height": 12, + "iconFontName": "thumbs-up", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "zxjsV", + "name": "msg1Act1Text", + "fill": "$--foreground-dim", + "content": "Approve", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "daKaB", + "name": "msg1Act2", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 4, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "ZNBXY", + "name": "msg1Act2Icon", + "width": 12, + "height": 12, + "iconFontName": "play", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "Y2j9u", + "name": "msg1Act2Text", + "fill": "$--foreground-dim", + "content": "Start Implementation", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Rf2lq", + "name": "Human Message", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "b0w0Z", + "name": "msg2Avatar", + "width": 32, + "height": 32, + "fill": "$--surface-elevated", + "cornerRadius": 16, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "6IXy3", + "name": "msg2AvatarText", + "fill": "$--foreground-muted", + "content": "TM", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "19Swj", + "name": "msg2Body", + "width": "fill_container", + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "TWeP0", + "name": "msg2Header", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "kjhOU", + "name": "msg2Name", + "fill": "$--foreground-inverse", + "content": "You", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "text", + "id": "mVxYd", + "name": "msg2Time", + "fill": "$--foreground-dim", + "content": "1h ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "V3w5v", + "name": "msg2Content", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Agreed on the order. Let's prioritize CSRF first since that's the lowest effort highest impact. Make sure the token encryption approach is compatible with our Redis session store.", + "lineHeight": 1.55, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "oorzM", + "name": "Email Attachment", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "bYKry", + "name": "emailAvatar", + "width": 32, + "height": 32, + "fill": "#3B82F622", + "cornerRadius": 16, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Asae7", + "name": "emailAvatarIcon", + "width": 15, + "height": 15, + "iconFontName": "mail", + "iconFontFamily": "lucide", + "fill": "$--info" + } + ] + }, + { + "type": "frame", + "id": "CvHir", + "name": "emailBody", + "width": "fill_container", + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "IUvRZ", + "name": "emailHeader", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "kIZrB", + "name": "emailName", + "fill": "$--foreground-inverse", + "content": "Sarah (Legal) via Email", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "8y0Oc", + "name": "emailBadge", + "fill": "#3B82F622", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "yK624", + "name": "emailBadgeText", + "fill": "$--info", + "content": "Attached", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "text", + "id": "rS93P", + "name": "emailTime", + "fill": "$--foreground-dim", + "content": "45m ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "NWwEi", + "name": "emailContent", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Compliance review deadline is April 18. The token storage changes need to pass audit before the next release cycle. Please ensure the implementation includes audit logging for all token lifecycle events.", + "lineHeight": 1.55, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "IxuWb", + "name": "emailAttach", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "E1VUg", + "name": "emailAttachIcon", + "width": 12, + "height": 12, + "iconFontName": "paperclip", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "Idehk", + "name": "emailAttachText", + "fill": "$--foreground-muted", + "content": "compliance-requirements-v2.pdf", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Q9STs", + "name": "Outgoing Email", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "MFMT5", + "name": "outAvatar", + "width": 32, + "height": 32, + "fill": "$--surface-elevated", + "cornerRadius": 16, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "79fxA", + "name": "outAvatarIcon", + "width": 14, + "height": 14, + "iconFontName": "send", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + } + ] + }, + { + "type": "frame", + "id": "wcynw", + "name": "outBody", + "width": "fill_container", + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "Do7Yr", + "name": "outHeader", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "3zdso", + "name": "outName", + "fill": "$--foreground-inverse", + "content": "You → sarah.martinez@legal.corp", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "Y5KrR", + "name": "outBadge", + "fill": "#00F2FF22", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "bLxVg", + "name": "outBadgeText", + "fill": "$--accent-tertiary", + "content": "Sent via Email", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "text", + "id": "qGga9", + "name": "outTime", + "fill": "$--foreground-dim", + "content": "30m ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "LR40R", + "name": "outContent", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Hi Sarah, sharing the latest CSRF middleware patch for your compliance review. The implementation uses double-submit cookie pattern with SameSite=Strict as discussed.", + "lineHeight": 1.55, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "Zzi51", + "name": "outAttachments", + "width": "fill_container", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "gZBnE", + "name": "outAttach1", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 5, + "padding": [ + 5, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "rxivG", + "name": "outAttach1Icon", + "width": 12, + "height": 12, + "iconFontName": "git-compare", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "qEo38", + "name": "outAttach1Text", + "fill": "$--foreground-muted", + "content": "csrf-middleware.patch", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "WnVLX", + "name": "outAttach2", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 5, + "padding": [ + 5, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "bSDHw", + "name": "outAttach2Icon", + "width": 12, + "height": 12, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "cppPS", + "name": "outAttach2Text", + "fill": "$--foreground-muted", + "content": "gap-analysis-results.md", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "DIXDt", + "name": "outHint", + "width": "fill_container", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "H1Qfc", + "name": "outHintIcon", + "width": 11, + "height": 11, + "iconFontName": "info", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "fDK3p", + "name": "outHintText", + "fill": "$--foreground-dim", + "content": "Replies to this email will appear in this discussion", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal", + "fontStyle": "italic" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "UPUkC", + "name": "AI Implementation", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "g5zZT", + "name": "msg4Avatar", + "width": 32, + "height": 32, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-tertiary", + "position": 1 + } + ] + }, + "cornerRadius": 16, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "9DCuB", + "name": "msg4AvatarIcon", + "width": 16, + "height": 16, + "iconFontName": "bot", + "iconFontFamily": "lucide", + "fill": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "V4PUn", + "name": "msg4Body", + "width": "fill_container", + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "3TqlH", + "name": "msg4Header", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "LebSX", + "name": "msg4Name", + "fill": "$--foreground-inverse", + "content": "Claude — CSRF Implementation", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "ONBsJ", + "name": "msg4StatusBadge", + "fill": "#22C55E22", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "DVMyh", + "name": "msg4StatusText", + "fill": "$--success", + "content": "Running", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "text", + "id": "X4R9m", + "name": "msg4Time", + "fill": "$--foreground-dim", + "content": "12m ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "AsU9O", + "name": "msg4Content", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "CSRF middleware implementation started. Added double-submit cookie pattern with SameSite=Strict. Currently running test suite against 47 protected endpoints...", + "lineHeight": 1.55, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "lwHi4", + "name": "msg4Progress", + "width": "fill_container", + "layout": "vertical", + "gap": 4, + "children": [ + { + "type": "frame", + "id": "2AB0k", + "name": "msg4ProgBar", + "width": "fill_container", + "height": 4, + "fill": "$--surface-elevated", + "cornerRadius": 2, + "layout": "none", + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "GGrrI", + "x": 0, + "y": 0, + "name": "msg4ProgFill", + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-tertiary", + "position": 1 + } + ] + }, + "width": 200, + "height": 4 + } + ] + }, + { + "type": "text", + "id": "AM5jP", + "name": "msg4ProgLabel", + "fill": "$--foreground-dim", + "content": "34/47 endpoints tested — 92% passing", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "x7L26", + "name": "Compose Bar", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": [ + 0, + 0, + "$--rounded-lg", + 0 + ], + "stroke": { + "align": "inside", + "thickness": { + "top": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "FLwkw", + "name": "composeInput", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-md", + "gap": 8, + "padding": [ + 10, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "SMBKd", + "name": "composeIcon", + "width": 14, + "height": 14, + "iconFontName": "message-square", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "vje9J", + "name": "composeText", + "fill": "$--foreground-dim", + "content": "Reply to thread or give AI instructions...", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "90NVm", + "name": "attachBtn", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": 8, + "children": [ + { + "type": "icon_font", + "id": "IS3hr", + "name": "attachIcon", + "width": 16, + "height": 16, + "iconFontName": "paperclip", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + }, + { + "type": "frame", + "id": "Un183", + "name": "Share Email Btn", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 6, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "kOgS8", + "name": "shareIcon", + "width": 14, + "height": 14, + "iconFontName": "mail", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "NtaRd", + "name": "shareText", + "fill": "$--foreground-muted", + "content": "Share", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "AGvf3", + "name": "sendBtn", + "fill": "$--accent-primary", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "iPiem", + "name": "sendIcon", + "width": 14, + "height": 14, + "iconFontName": "send", + "iconFontFamily": "lucide", + "fill": "#FFFFFF" + }, + { + "type": "text", + "id": "ZNhew", + "name": "sendText", + "fill": "#FFFFFF", + "content": "Send", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "laMMd", + "layoutPosition": "absolute", + "x": 520, + "y": -120, + "name": "Email Dropdown", + "width": 220, + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-md", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "effect": { + "type": "shadow", + "shadowType": "outer", + "color": "#00000066", + "offset": { + "x": 0, + "y": 8 + }, + "blur": 24 + }, + "layout": "vertical", + "gap": 2, + "padding": 6, + "children": [ + { + "type": "frame", + "id": "XUAkB", + "name": "ddOption1", + "width": "fill_container", + "fill": "$--surface-card-hover", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "RlVZA", + "name": "ddOpt1Icon", + "width": 14, + "height": 14, + "iconFontName": "mail", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "frame", + "id": "Z8N8q", + "name": "ddOpt1Info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "jtv2J", + "name": "ddOpt1Title", + "fill": "$--foreground-inverse", + "content": "Share via Email", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "7NvwS", + "name": "ddOpt1Desc", + "fill": "$--foreground-dim", + "content": "Send doc or patch to external people", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n8Knv", + "name": "ddOption2", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "jgvas", + "name": "ddOpt2Icon", + "width": 14, + "height": 14, + "iconFontName": "git-compare", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "w4OLu", + "name": "ddOpt2Info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "Y5L35", + "name": "ddOpt2Title", + "fill": "$--foreground-muted", + "content": "Share Patch", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "W9EPy", + "name": "ddOpt2Desc", + "fill": "$--foreground-dim", + "content": "Email latest changes for review", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "f346d", + "name": "ddOption3", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "coIqZ", + "name": "ddOpt3Icon", + "width": 14, + "height": 14, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "frame", + "id": "PnTLH", + "name": "ddOpt3Info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "eoIXh", + "name": "ddOpt3Title", + "fill": "$--foreground-muted", + "content": "Share Document", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "wzy9y", + "name": "ddOpt3Desc", + "fill": "$--foreground-dim", + "content": "Send linked doc for feedback", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "6RnjJ", + "name": "Right Panel", + "clip": true, + "width": 320, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "left": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 20, + "padding": [ + 20, + 16 + ], + "children": [ + { + "type": "frame", + "id": "yhzuV", + "name": "Workflow Status", + "width": "fill_container", + "layout": "vertical", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "U14VU", + "name": "wfHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "xxn8f", + "name": "wfHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "list-checks", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "6bm1R", + "name": "wfHeaderText", + "fill": "$--foreground-inverse", + "content": "Completion Conditions", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "bDlSR", + "name": "wfSteps", + "width": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "camDK", + "name": "wfStep1", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "d5OeV", + "name": "wfStep1Check", + "width": 16, + "height": 16, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "bdMZd", + "name": "wfStep1Text", + "fill": "$--foreground-muted", + "content": "Gap analysis complete", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "QRGlH", + "name": "wfStep2", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "4pDSJ", + "name": "wfStep2Check", + "width": 16, + "height": 16, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "yiVds", + "name": "wfStep2Text", + "fill": "$--foreground-muted", + "content": "Design decision documented", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "mHXc7", + "name": "wfStep3", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "GmKm1", + "name": "wfStep3Dot", + "width": 16, + "height": 16, + "cornerRadius": 8, + "stroke": { + "align": "inside", + "thickness": 2, + "fill": "$--warning" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "0i7DB", + "name": "wfStep3Inner", + "fill": "$--warning", + "width": 6, + "height": 6 + } + ] + }, + { + "type": "text", + "id": "8IPZk", + "name": "wfStep3Text", + "fill": "$--foreground-inverse", + "content": "All changes merged", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "3ns2a", + "name": "wfStep4", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "Mki8m", + "name": "wfStep4Dot", + "width": 16, + "height": 16, + "stroke": { + "align": "inside", + "thickness": 1.5, + "fill": "$--border-subtle" + } + }, + { + "type": "text", + "id": "QtQ9s", + "name": "wfStep4Text", + "fill": "$--foreground-dim", + "content": "Tests passing", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "86VVX", + "name": "wfStep5", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "CoXZa", + "name": "wfStep5Dot", + "width": 16, + "height": 16, + "stroke": { + "align": "inside", + "thickness": 1.5, + "fill": "$--border-subtle" + } + }, + { + "type": "text", + "id": "PRBSI", + "name": "wfStep5Text", + "fill": "$--foreground-dim", + "content": "Compliance audit submitted", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "Oreoy", + "name": "Complete Button", + "opacity": 0.5, + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-md", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 10, + 0 + ], + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "b8N5k", + "name": "completeBtnIcon", + "width": 16, + "height": 16, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "gTnFO", + "name": "completeBtnText", + "fill": "$--foreground-dim", + "content": "Complete Work Item", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "text", + "id": "6LWzl", + "name": "completeHint", + "fill": "$--foreground-dim", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "2 conditions remaining before completion", + "textAlign": "center", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "rectangle", + "id": "1VepF", + "name": "divR1", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "gOTZR", + "name": "Patches & PRs", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "frame", + "id": "RfkDF", + "name": "prHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "TkUqC", + "name": "prHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "git-compare", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "8Cn3H", + "name": "prHeaderText", + "fill": "$--foreground-inverse", + "content": "Changes", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "eNhgX", + "name": "pr1", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 6, + "padding": 10, + "children": [ + { + "type": "frame", + "id": "nb7n0", + "name": "pr1Top", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "ir5xP", + "name": "pr1Icon", + "width": 13, + "height": 13, + "iconFontName": "git-merge", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "hpXNR", + "name": "pr1Title", + "fill": "$--foreground-inverse", + "content": "#247 CSRF middleware", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "PV99K", + "name": "pr1Status", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "E4RRH", + "name": "pr1StatusBadge", + "fill": "#22C55E22", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "Agp4I", + "name": "pr1StatusText", + "fill": "$--success", + "content": "Merged", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "eqHs2", + "name": "pr1Files", + "fill": "$--foreground-dim", + "content": "+342 −89 · 12 files", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "zr5vl", + "name": "pr2", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 6, + "padding": 10, + "children": [ + { + "type": "frame", + "id": "x9oXK", + "name": "pr2Top", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "7tmzC", + "name": "pr2Icon", + "width": 13, + "height": 13, + "iconFontName": "git-pull-request", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "hHW1S", + "name": "pr2Title", + "fill": "$--foreground-inverse", + "content": "#251 Token encryption layer", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "EwxjF", + "name": "pr2Status", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "zNqvh", + "name": "pr2StatusBadge", + "fill": "$--accent-primary-muted", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "knnDD", + "name": "pr2StatusText", + "fill": "$--accent-primary", + "content": "Open — Draft", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "l9X6q", + "name": "pr2Files", + "fill": "$--foreground-dim", + "content": "+156 −23 · 8 files", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "onCYF", + "name": "divR2", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "1s83L", + "name": "Linked Docs", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "frame", + "id": "8A0c0", + "name": "docsHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "T73tl", + "name": "docsHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "RHk9U", + "name": "docsHeaderText", + "fill": "$--foreground-inverse", + "content": "Linked Documents", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "IAQIp", + "name": "doc1", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "F4wZo", + "name": "doc1Icon", + "width": 14, + "height": 14, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "PUZus", + "name": "doc1Text", + "fill": "$--foreground-muted", + "content": "design-decision-auth.md", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "XoFR0", + "name": "doc2", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "CfSUE", + "name": "doc2Icon", + "width": 14, + "height": 14, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "d0Wny", + "name": "doc2Text", + "fill": "$--foreground-muted", + "content": "implementation-plan.md", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "tjAVJ", + "name": "doc3", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 8, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "OpwK7", + "name": "doc3Icon", + "width": 14, + "height": 14, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "zHWl6", + "name": "doc3Text", + "fill": "$--foreground-muted", + "content": "gap-analysis-results.md", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "VA1dY", + "name": "divR3", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "J7VdJ", + "name": "AI Skills", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "frame", + "id": "Q2yjQ", + "name": "skillsHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "fn8JN", + "name": "skillsHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "plug", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "sYCWj", + "name": "skillsHeaderText", + "fill": "$--foreground-inverse", + "content": "Capabilities", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "G3POO", + "name": "skill1", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Jg5xL", + "name": "skill1Icon", + "width": 13, + "height": 13, + "iconFontName": "shield", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "Mgqh9", + "name": "skill1Text", + "fill": "$--foreground-muted", + "content": "Security Audit", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "gecJz", + "name": "skill1Active", + "fill": "$--success", + "width": 6, + "height": 6 + } + ] + }, + { + "type": "frame", + "id": "6bl3J", + "name": "skill2", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "p5wvE", + "name": "skill2Icon", + "width": 13, + "height": 13, + "iconFontName": "code", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "1YTqH", + "name": "skill2Text", + "fill": "$--foreground-muted", + "content": "Code Generation", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "xoJ49", + "name": "skill2Active", + "fill": "$--success", + "width": 6, + "height": 6 + } + ] + }, + { + "type": "frame", + "id": "MWio5", + "name": "skill3", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "TykWU", + "name": "skill3Icon", + "width": 13, + "height": 13, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "zzHfj", + "name": "skill3Text", + "fill": "$--foreground-muted", + "content": "Deep Research", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "o3Nox", + "name": "skill3Active", + "fill": "$--success", + "width": 6, + "height": 6 + } + ] + }, + { + "type": "frame", + "id": "o16PF", + "name": "skill4", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "jkiDf", + "name": "skill4Icon", + "width": 13, + "height": 13, + "iconFontName": "terminal", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "Augn6", + "name": "skill4Text", + "fill": "$--foreground-muted", + "content": "CLI & Shell", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "6ZouU", + "name": "skill4Active", + "fill": "$--foreground-dim", + "width": 6, + "height": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "ptR5e", + "x": 0, + "y": 1000, + "name": "Project List", + "clip": true, + "width": 1440, + "height": 900, + "fill": "$--surface-inverse", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "frame", + "id": "JNwMK", + "name": "sidebar", + "width": 240, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "right": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "padding": [ + 24, + 20 + ], + "children": [ + { + "type": "frame", + "id": "kYxpR", + "name": "logoArea", + "width": "fill_container", + "gap": 10, + "padding": [ + 0, + 0, + 32, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "iwBIF", + "name": "logoIcon", + "width": 32, + "height": 32, + "fill": "$--accent-primary", + "cornerRadius": "$--rounded-md", + "children": [ + { + "type": "text", + "id": "Jj3bL", + "name": "logoText", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width-height", + "width": 32, + "height": 32, + "content": "C", + "textAlign": "center", + "textAlignVertical": "middle", + "fontFamily": "Inter", + "fontSize": 18, + "fontWeight": "700" + } + ] + }, + { + "type": "text", + "id": "fAQkJ", + "name": "appName", + "fill": "$--foreground-inverse", + "content": "CommandApp", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "thYI2", + "name": "navSection", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 4, + "children": [ + { + "type": "frame", + "id": "AZ6UY", + "name": "navDashboard", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "5fe0E", + "name": "navDashIcon", + "width": 18, + "height": 18, + "iconFontName": "layout-dashboard", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "YMKkP", + "name": "navDashLabel", + "fill": "$--foreground-muted", + "content": "Dashboard", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "5hPxR", + "name": "navProjects", + "width": "fill_container", + "fill": "$--accent-primary-muted", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "L9AvU", + "name": "navProjIcon", + "width": 18, + "height": 18, + "iconFontName": "folder-kanban", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "r83hn", + "name": "navProjLabel", + "fill": "$--accent-primary", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "CWXn7", + "name": "navLibrary", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "2YvPy", + "name": "navLibIcon", + "width": 18, + "height": 18, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "dBUPO", + "name": "navLibLabel", + "fill": "$--foreground-muted", + "content": "Library", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "MUA4D", + "name": "navWorkflows", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "44rtY", + "name": "navWfIcon", + "width": 18, + "height": 18, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "DvH1B", + "name": "navWfLabel", + "fill": "$--foreground-muted", + "content": "Workflows", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "aAt89", + "name": "userArea", + "width": "fill_container", + "gap": 10, + "padding": [ + 16, + 0, + 0, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "xGx5Y", + "name": "avatar", + "fill": "#2A2A40", + "width": 32, + "height": 32 + }, + { + "type": "text", + "id": "PfzQ7", + "name": "userName", + "fill": "$--foreground-muted", + "content": "John Doe", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "Ks97F", + "name": "mainContent", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 24, + "padding": [ + 32, + 40 + ], + "children": [ + { + "type": "frame", + "id": "mE1PI", + "name": "topBar", + "width": "fill_container", + "gap": 16, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "SJJJi", + "name": "title", + "fill": "$--foreground-inverse", + "content": "Projects", + "fontFamily": "Inter", + "fontSize": 28, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "y6sRn", + "name": "searchBar", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-md", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 10, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "nsKYq", + "name": "searchIcon", + "width": 16, + "height": 16, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "kBQrS", + "name": "searchText", + "fill": "$--foreground-dim", + "content": "Search projects...", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "hlZ5p", + "name": "newBtn", + "fill": "$--accent-primary", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 10, + 18 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "xuGQk", + "name": "newBtnIcon", + "width": 16, + "height": 16, + "iconFontName": "plus", + "iconFontFamily": "lucide", + "fill": "$--foreground-inverse" + }, + { + "type": "text", + "id": "H7dzh", + "name": "newBtnText", + "fill": "$--foreground-inverse", + "content": "New Project", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "ldrYn", + "name": "filterRow", + "width": "fill_container", + "gap": 10, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "XlhIP", + "name": "filterAll", + "fill": "$--accent-primary", + "cornerRadius": 20, + "padding": [ + 6, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "1QTip", + "name": "filterAllText", + "fill": "$--foreground-inverse", + "content": "All", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "Q0EJ1", + "name": "filterActive", + "cornerRadius": 20, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 6, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "ha9t6", + "name": "filterActiveText", + "fill": "$--foreground-muted", + "content": "Active", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "WeBI5", + "name": "filterArchived", + "cornerRadius": 20, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 6, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "saeRM", + "name": "filterArchivedText", + "fill": "$--foreground-muted", + "content": "Archived", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "KxbnJ", + "name": "spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "h7o3X", + "name": "sortDrop", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 6, + "padding": [ + 6, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "CA9C6", + "name": "sortText", + "fill": "$--foreground-muted", + "content": "Last Updated", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "icon_font", + "id": "zxOG4", + "name": "sortIcon", + "width": 14, + "height": 14, + "iconFontName": "chevron-down", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + } + ] + }, + { + "type": "frame", + "id": "yrNUw", + "name": "grid", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 16, + "children": [ + { + "type": "frame", + "id": "zwQFe", + "name": "row1", + "width": "fill_container", + "height": "fill_container", + "gap": 16, + "children": [ + { + "type": "frame", + "id": "K0Htg", + "name": "card1", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "7sw7W", + "name": "c1Name", + "fill": "$--foreground-inverse", + "content": "Auth Service", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "QlozS", + "name": "c1Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Authentication and authorization microservice", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "58XpX", + "name": "c1Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "k5bNp", + "name": "c1s1", + "fill": "$--foreground-dim", + "content": "12 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "KJ8Yv", + "name": "c1dot", + "fill": "$--success", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "G0WZX", + "name": "c1s2", + "fill": "$--foreground-dim", + "content": "3 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "HxCyg", + "name": "c1Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "OI9ug", + "name": "c1t1", + "fill": "$--accent-primary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "4D4Py", + "name": "c1t1t", + "fill": "$--accent-primary", + "content": "Backend", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "20PHl", + "name": "c1t2", + "fill": "$--accent-secondary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "Wq66y", + "name": "c1t2t", + "fill": "$--accent-secondary", + "content": "Security", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "hkEFG", + "name": "c1time", + "fill": "$--foreground-dim", + "content": "Updated 2h ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "5jIVc", + "name": "card2", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "3n1FD", + "name": "c2Name", + "fill": "$--foreground-inverse", + "content": "Payment Gateway", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "G7GCL", + "name": "c2Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Stripe and PayPal integration service", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "Jw0CS", + "name": "c2Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "ENesj", + "name": "c2s1", + "fill": "$--foreground-dim", + "content": "8 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "1FABu", + "name": "c2dot", + "fill": "$--success", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "63QmW", + "name": "c2s2", + "fill": "$--foreground-dim", + "content": "2 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "FKmim", + "name": "c2Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "XrALc", + "name": "c2t1", + "fill": "$--accent-primary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "JPBzU", + "name": "c2t1t", + "fill": "$--accent-primary", + "content": "Backend", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "co3Hq", + "name": "c2t2", + "fill": "$--accent-secondary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "mNMk5", + "name": "c2t2t", + "fill": "$--accent-secondary", + "content": "API", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "Jmziz", + "name": "c2time", + "fill": "$--foreground-dim", + "content": "Updated 5h ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "W8gmj", + "name": "card3", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "GRJZJ", + "name": "c3Name", + "fill": "$--foreground-inverse", + "content": "Dashboard UI", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "aMEzS", + "name": "c3Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Analytics dashboard and data visualization", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "OTpTn", + "name": "c3Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "7GWFe", + "name": "c3s1", + "fill": "$--foreground-dim", + "content": "21 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "YyIww", + "name": "c3dot", + "fill": "$--warning", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "Vo7BZ", + "name": "c3s2", + "fill": "$--foreground-dim", + "content": "4 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "UtwA4", + "name": "c3Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "1xdsY", + "name": "c3t1", + "fill": "$--accent-secondary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "oneJd", + "name": "c3t1t", + "fill": "$--accent-secondary", + "content": "Frontend", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "oAiia", + "name": "c3t2", + "fill": "#00F2FF22", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "tpNil", + "name": "c3t2t", + "fill": "$--accent-tertiary", + "content": "Analytics", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "goECz", + "name": "c3time", + "fill": "$--foreground-dim", + "content": "Updated 1d ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "TBZav", + "name": "row2", + "width": "fill_container", + "height": "fill_container", + "gap": 16, + "children": [ + { + "type": "frame", + "id": "MGIrK", + "name": "card4", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "BFnLU", + "name": "c4Name", + "fill": "$--foreground-inverse", + "content": "Data Pipeline", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "yH7du", + "name": "c4Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "ETL workflows and data transformation engine", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "kIxq4", + "name": "c4Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "uyBnk", + "name": "c4s1", + "fill": "$--foreground-dim", + "content": "15 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "Gg2md", + "name": "c4dot", + "fill": "$--success", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "OX9F7", + "name": "c4s2", + "fill": "$--foreground-dim", + "content": "5 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "RADcE", + "name": "c4Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "bYkDs", + "name": "c4t1", + "fill": "$--accent-primary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "QyLFA", + "name": "c4t1t", + "fill": "$--accent-primary", + "content": "Backend", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "4Oic6", + "name": "c4t2", + "fill": "#00F2FF22", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "sf2fr", + "name": "c4t2t", + "fill": "$--accent-tertiary", + "content": "Data", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "NfaZa", + "name": "c4time", + "fill": "$--foreground-dim", + "content": "Updated 30m ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "8mMAP", + "name": "card5", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "jIy8w", + "name": "c5Name", + "fill": "$--foreground-inverse", + "content": "Mobile App", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "bA6tr", + "name": "c5Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Cross-platform mobile client for iOS and Android", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "BaLZ6", + "name": "c5Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "xXUUH", + "name": "c5s1", + "fill": "$--foreground-dim", + "content": "34 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "1DfqP", + "name": "c5dot", + "fill": "$--success", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "EnlKf", + "name": "c5s2", + "fill": "$--foreground-dim", + "content": "2 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "Gp1L0", + "name": "c5Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "WGZIE", + "name": "c5t1", + "fill": "$--accent-secondary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "ADZsA", + "name": "c5t1t", + "fill": "$--accent-secondary", + "content": "Mobile", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "G2ccX", + "name": "c5t2", + "fill": "$--accent-primary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "t7Jmb", + "name": "c5t2t", + "fill": "$--accent-primary", + "content": "React Native", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "WgO4V", + "name": "c5time", + "fill": "$--foreground-dim", + "content": "Updated 4h ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "Py0Jk", + "name": "card6", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 12, + "padding": 20, + "children": [ + { + "type": "text", + "id": "LYbDQ", + "name": "c6Name", + "fill": "$--foreground-inverse", + "content": "Infrastructure", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "text", + "id": "liPAB", + "name": "c6Desc", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Terraform configs and CI/CD pipeline setup", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "NmuEO", + "name": "c6Stats", + "width": "fill_container", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "O2p0a", + "name": "c6s1", + "fill": "$--foreground-dim", + "content": "7 items", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "ellipse", + "id": "2b23f", + "name": "c6dot", + "fill": "$--foreground-dim", + "width": 8, + "height": 8 + }, + { + "type": "text", + "id": "33Ru4", + "name": "c6s2", + "fill": "$--foreground-dim", + "content": "6 repos", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "apiU9", + "name": "c6Tags", + "width": "fill_container", + "gap": 6, + "children": [ + { + "type": "frame", + "id": "awuHz", + "name": "c6t1", + "fill": "#00F2FF22", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "awTm3", + "name": "c6t1t", + "fill": "$--accent-tertiary", + "content": "DevOps", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "4zeva", + "name": "c6t2", + "fill": "$--accent-primary-muted", + "cornerRadius": 4, + "padding": [ + 3, + 8 + ], + "children": [ + { + "type": "text", + "id": "NheDs", + "name": "c6t2t", + "fill": "$--accent-primary", + "content": "Terraform", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "text", + "id": "SDll7", + "name": "c6time", + "fill": "$--foreground-dim", + "content": "Updated 3d ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "cornerRadius": 2, + "id": "5NbPN", + "layoutPosition": "absolute", + "x": -20, + "y": 180, + "name": "streak1", + "opacity": 0.5, + "rotation": 7, + "fill": { + "type": "color", + "color": "#582CFF", + "enabled": true, + "blendMode": "screen" + }, + "width": 900, + "height": 4, + "effect": { + "type": "blur", + "radius": 35 + } + }, + { + "type": "rectangle", + "cornerRadius": 2, + "id": "xLsgP", + "layoutPosition": "absolute", + "x": 100, + "y": 450, + "name": "streak2", + "opacity": 0.45, + "rotation": -5, + "fill": { + "type": "color", + "color": "#BF40FF", + "enabled": true, + "blendMode": "screen" + }, + "width": 700, + "height": 3, + "effect": { + "type": "blur", + "radius": 40 + } + }, + { + "type": "rectangle", + "cornerRadius": 2, + "id": "8BRBe", + "layoutPosition": "absolute", + "x": 50, + "y": 680, + "name": "streak3", + "opacity": 0.35, + "rotation": 10, + "fill": { + "type": "color", + "color": "#00F2FF", + "enabled": true, + "blendMode": "screen" + }, + "width": 800, + "height": 5, + "effect": { + "type": "blur", + "radius": 45 + } + } + ] + } + ] + }, + { + "type": "frame", + "id": "p4OXh", + "x": 0, + "y": 0, + "name": "Dashboard v2 - Human Decisions", + "clip": true, + "width": 1440, + "height": 900, + "fill": "$--surface-inverse", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "frame", + "id": "kkns1", + "name": "sidebar1", + "width": 240, + "height": "fill_container", + "fill": "$--surface-card", + "layout": "vertical", + "padding": [ + 32, + 20 + ], + "children": [ + { + "type": "text", + "id": "jA1Et", + "name": "logo1", + "fill": "$--foreground-inverse", + "content": "CommandApp", + "fontFamily": "Inter", + "fontSize": 18, + "fontWeight": "600", + "letterSpacing": -0.5 + }, + { + "type": "frame", + "id": "Ti9K7", + "name": "nav1", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 4, + "padding": [ + 40, + 0, + 0, + 0 + ], + "children": [ + { + "type": "frame", + "id": "LX568", + "name": "navActive", + "width": "fill_container", + "fill": "$--accent-primary-muted", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "MmjrB", + "name": "navActiveIcon", + "width": 18, + "height": 18, + "iconFontName": "layout-dashboard", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "a1ZTr", + "name": "navActiveText", + "fill": "$--accent-primary", + "content": "Dashboard", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "fontWeight": "500", + "letterSpacing": 0.3 + } + ] + }, + { + "type": "frame", + "id": "0U0R3", + "name": "navProj", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "e6wqc", + "name": "navProjIcon", + "width": 18, + "height": 18, + "iconFontName": "folder", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "V1jwj", + "name": "navProjText", + "fill": "$--foreground-muted", + "content": "Projects", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "letterSpacing": 0.3 + } + ] + }, + { + "type": "frame", + "id": "MaUjH", + "name": "navLib", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Eh40m", + "name": "navLibIcon", + "width": 18, + "height": 18, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "fan6I", + "name": "navLibText", + "fill": "$--foreground-muted", + "content": "Library", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "letterSpacing": 0.3 + } + ] + }, + { + "type": "frame", + "id": "XWQRi", + "name": "navWf", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 10, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "JkmCq", + "name": "navWfIcon", + "width": 18, + "height": 18, + "iconFontName": "workflow", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "XLFxy", + "name": "navWfText", + "fill": "$--foreground-muted", + "content": "Workflows", + "fontFamily": "Funnel Sans", + "fontSize": 13, + "letterSpacing": 0.3 + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Zcx7p", + "name": "mainArea", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "qU25H", + "name": "topBar", + "width": "fill_container", + "gap": 16, + "padding": [ + 20, + 32 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "obyvr", + "name": "greeting", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "7GSvw", + "name": "greetTitle", + "fill": "$--foreground-inverse", + "content": "Good morning, Commander", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "text", + "id": "dFhtg", + "name": "greetDate", + "fill": "$--foreground-muted", + "content": "Friday, April 11, 2026", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "6GslP", + "name": "searchBar", + "width": 220, + "height": 36, + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 8, + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QWw4q", + "name": "searchIcon", + "width": 16, + "height": 16, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "qQUJA", + "name": "searchText", + "fill": "$--foreground-dim", + "content": "Search...", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "v0e1B", + "name": "notifBtn", + "width": 36, + "height": 36, + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "2HP6Z", + "name": "notifIcon", + "width": 18, + "height": 18, + "iconFontName": "bell", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + }, + { + "type": "line", + "id": "fMnkm", + "name": "divider", + "width": "fill_container", + "height": 0, + "stroke": { + "align": "center", + "thickness": 1, + "fill": "$--border-subtle" + } + } + ] + }, + { + "type": "frame", + "id": "WaFyQ", + "name": "contentBody", + "width": "fill_container", + "height": "fill_container", + "children": [ + { + "type": "frame", + "id": "V8oCg", + "name": "mainContent", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 28, + "padding": [ + 28, + 32 + ], + "children": [ + { + "type": "frame", + "id": "g3WN0", + "name": "attentionLabel", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "NQdqA", + "name": "attIcon", + "width": 18, + "height": 18, + "iconFontName": "circle-alert", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "WSog4", + "name": "attText", + "fill": "$--foreground-inverse", + "content": "Needs Your Decision", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "ggG38", + "name": "attCards", + "width": "fill_container", + "gap": 16, + "children": [ + { + "type": "frame", + "id": "Ggpol", + "name": "card1", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "rectangle", + "cornerRadius": [ + 4, + 0, + 0, + 4 + ], + "id": "RhC4R", + "name": "card1border", + "fill": "$--warning", + "width": 4, + "height": "fill_container" + }, + { + "type": "frame", + "id": "Otkl9", + "name": "card1body", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "padding": 16, + "children": [ + { + "type": "text", + "id": "GaaW9", + "name": "card1proj", + "fill": "$--foreground-dim", + "content": "Auth Service", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500", + "letterSpacing": 0.5 + }, + { + "type": "text", + "id": "XNXRi", + "name": "card1title", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Choose OAuth2 provider strategy", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "4l40z", + "name": "card1ai", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "gahhM", + "name": "card1dot", + "fill": "$--warning", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "Ebsyh", + "name": "card1aitext", + "fill": "$--warning", + "content": "Decision needed before implementation", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "ya2Oh", + "name": "card2", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "rectangle", + "cornerRadius": [ + 4, + 0, + 0, + 4 + ], + "id": "gAo0b", + "name": "card2border", + "fill": "$--accent-primary", + "width": 4, + "height": "fill_container" + }, + { + "type": "frame", + "id": "BFdAV", + "name": "card2body", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "padding": 16, + "children": [ + { + "type": "text", + "id": "JK1yS", + "name": "card2proj", + "fill": "$--foreground-dim", + "content": "Auth Rewrite", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500", + "letterSpacing": 0.5 + }, + { + "type": "text", + "id": "a8pNq", + "name": "card2title", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Review gap analysis findings", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "qqoRs", + "name": "card2ai", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "gPcyg", + "name": "card2dot", + "fill": "$--accent-primary", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "0XIBY", + "name": "card2aitext", + "fill": "$--accent-primary", + "content": "AI research complete — ready for your review", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "dvqBI", + "name": "card3", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "rectangle", + "cornerRadius": [ + 4, + 0, + 0, + 4 + ], + "id": "WSLXl", + "name": "card3border", + "fill": "$--accent-secondary", + "width": 4, + "height": "fill_container" + }, + { + "type": "frame", + "id": "oOth6", + "name": "card3body", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "padding": 16, + "children": [ + { + "type": "text", + "id": "ENSuc", + "name": "card3proj", + "fill": "$--foreground-dim", + "content": "Dashboard", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500", + "letterSpacing": 0.5 + }, + { + "type": "text", + "id": "sBpZv", + "name": "card3title", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Provide feedback on wireframes", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "CGczB", + "name": "card3ai", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "PPBtQ", + "name": "card3dot", + "fill": "$--accent-secondary", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "9WZc4", + "name": "card3aitext", + "fill": "$--accent-secondary", + "content": "Design iteration ready for input", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "text", + "id": "DeiCg", + "name": "projLabel", + "fill": "$--foreground-inverse", + "content": "Active Projects", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "2OaoE", + "name": "projRow", + "width": "fill_container", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "zp6Ko", + "name": "p1", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 10, + "padding": 14, + "children": [ + { + "type": "text", + "id": "rimhC", + "name": "p1name", + "fill": "$--foreground-inverse", + "content": "OAuth2 Provider", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "syUDb", + "name": "p1bar", + "width": "fill_container", + "height": 4, + "fill": "$--border-subtle", + "cornerRadius": 2, + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "1gDsm", + "name": "p1fill", + "fill": "$--accent-primary", + "width": 100, + "height": "fill_container" + } + ] + }, + { + "type": "frame", + "id": "Wrd0c", + "name": "p1meta", + "width": "fill_container", + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "PLL5m", + "name": "p1items", + "fill": "$--foreground-dim", + "content": "3 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "JAQrV", + "name": "p1ai", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "86q35", + "name": "p1aidot", + "fill": "$--success", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "52bOC", + "name": "p1aitext", + "fill": "$--success", + "content": "AI active", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "lofnJ", + "name": "p2", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 10, + "padding": 14, + "children": [ + { + "type": "text", + "id": "wk07v", + "name": "p2name", + "fill": "$--foreground-inverse", + "content": "Auth Rewrite", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "Auppp", + "name": "p2bar", + "width": "fill_container", + "height": 4, + "fill": "$--border-subtle", + "cornerRadius": 2, + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "6PNEg", + "name": "p2fill", + "fill": "$--accent-secondary", + "width": 60, + "height": "fill_container" + } + ] + }, + { + "type": "frame", + "id": "qQaJA", + "name": "p2meta", + "width": "fill_container", + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "0guyS", + "name": "p2items", + "fill": "$--foreground-dim", + "content": "5 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "86o87", + "name": "p2ai", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "bcWlC", + "name": "p2aidot", + "fill": "$--warning", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "4unA1", + "name": "p2aitext", + "fill": "$--warning", + "content": "Blocked", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "fgfP2", + "name": "p3", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 10, + "padding": 14, + "children": [ + { + "type": "text", + "id": "h7TcT", + "name": "p3name", + "fill": "$--foreground-inverse", + "content": "Dashboard UI", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "1ke4M", + "name": "p3bar", + "width": "fill_container", + "height": 4, + "fill": "$--border-subtle", + "cornerRadius": 2, + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "2xBXD", + "name": "p3fill", + "fill": "$--accent-tertiary", + "width": 140, + "height": "fill_container" + } + ] + }, + { + "type": "frame", + "id": "XneCM", + "name": "p3meta", + "width": "fill_container", + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "WHcL1", + "name": "p3items", + "fill": "$--foreground-dim", + "content": "2 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "XJ33R", + "name": "p3ai", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "M8Fta", + "name": "p3aidot", + "fill": "$--success", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "fDwEe", + "name": "p3aitext", + "fill": "$--success", + "content": "AI active", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "W6VSC", + "name": "p4", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 10, + "padding": 14, + "children": [ + { + "type": "text", + "id": "mrzoF", + "name": "p4name", + "fill": "$--foreground-inverse", + "content": "API Gateway", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "zizel", + "name": "p4bar", + "width": "fill_container", + "height": 4, + "fill": "$--border-subtle", + "cornerRadius": 2, + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "CstnH", + "name": "p4fill", + "fill": "$--accent-primary", + "width": 30, + "height": "fill_container" + } + ] + }, + { + "type": "frame", + "id": "mSHK5", + "name": "p4meta", + "width": "fill_container", + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "JC3ds", + "name": "p4items", + "fill": "$--foreground-dim", + "content": "7 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "Ibzc2", + "name": "p4ai", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "gk6wo", + "name": "p4aidot", + "fill": "$--success", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "giUCW", + "name": "p4aitext", + "fill": "$--success", + "content": "AI active", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "sXmhW", + "name": "actPanel", + "width": 300, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "left": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 16, + "padding": [ + 24, + 20 + ], + "children": [ + { + "type": "text", + "id": "Nqomo", + "name": "actTitle", + "fill": "$--foreground-inverse", + "content": "Recent Activity", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "b6c1K", + "name": "actList", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "B5w1Z", + "name": "a1", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "3xfbf", + "name": "a1icon", + "width": 16, + "height": 16, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "frame", + "id": "UN7WC", + "name": "a1body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "ea6VI", + "name": "a1text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "AI completed gap analysis", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "E5xKE", + "name": "a1time", + "fill": "$--foreground-dim", + "content": "2 min ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "3WXyn", + "name": "a2", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "4fhDt", + "name": "a2icon", + "width": 16, + "height": 16, + "iconFontName": "milestone", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "frame", + "id": "qsrZW", + "name": "a2body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "FhJPI", + "name": "a2text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Plan milestone reached", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "u3xcq", + "name": "a2time", + "fill": "$--foreground-dim", + "content": "15 min ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "sWBsR", + "name": "a3", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "goTc6", + "name": "a3icon", + "width": 16, + "height": 16, + "iconFontName": "file-plus", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "frame", + "id": "H8oPo", + "name": "a3body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "0D1Pc", + "name": "a3text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "New doc added to library", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "cUmdQ", + "name": "a3time", + "fill": "$--foreground-dim", + "content": "32 min ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "F2Dc4", + "name": "a4", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "gvOBX", + "name": "a4icon", + "width": 16, + "height": 16, + "iconFontName": "arrow-right-left", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "frame", + "id": "LPpfX", + "name": "a4body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "kTiAG", + "name": "a4text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Work item phase changed", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "KXiPn", + "name": "a4time", + "fill": "$--foreground-dim", + "content": "1 hr ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "wevkv", + "name": "a5", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "VrRup", + "name": "a5icon", + "width": 16, + "height": 16, + "iconFontName": "bot", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "frame", + "id": "MnojI", + "name": "a5body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "oWTYh", + "name": "a5text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "AI started implementation", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "GAthT", + "name": "a5time", + "fill": "$--foreground-dim", + "content": "2 hrs ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "X80B2", + "name": "a6", + "width": "fill_container", + "gap": 10, + "padding": [ + 12, + 0 + ], + "children": [ + { + "type": "icon_font", + "id": "1uCUm", + "name": "a6icon", + "width": 16, + "height": 16, + "iconFontName": "git-commit-horizontal", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "frame", + "id": "xSHJL", + "name": "a6body", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "text", + "id": "6ScF8", + "name": "a6text", + "fill": "$--foreground-inverse", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "3 commits pushed", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "4jpnu", + "name": "a6time", + "fill": "$--foreground-dim", + "content": "3 hrs ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "JCFR8", + "layoutPosition": "absolute", + "x": 300, + "y": 180, + "name": "streak1", + "opacity": 0.5, + "rotation": 7, + "fill": "$--accent-primary", + "width": 800, + "height": 3, + "effect": { + "type": "blur", + "radius": 40 + } + }, + { + "type": "rectangle", + "id": "Fs27c", + "layoutPosition": "absolute", + "x": 500, + "y": 500, + "name": "streak2", + "opacity": 0.4, + "rotation": -5, + "fill": "$--accent-secondary", + "width": 600, + "height": 4, + "effect": { + "type": "blur", + "radius": 50 + } + }, + { + "type": "rectangle", + "id": "bPUhJ", + "layoutPosition": "absolute", + "x": 200, + "y": 750, + "name": "streak3", + "opacity": 0.35, + "rotation": 10, + "fill": "$--accent-tertiary", + "width": 900, + "height": 2, + "effect": { + "type": "blur", + "radius": 35 + } + } + ] + }, + { + "type": "frame", + "id": "tWe2a", + "x": 1540, + "y": 1000, + "name": "Project Detail v2 - Plans Centric", + "clip": true, + "width": 1440, + "height": 900, + "fill": "$--surface-inverse", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "frame", + "id": "TfGaD", + "name": "Sidebar", + "width": 240, + "height": "fill_container", + "fill": "$--surface-card", + "layout": "vertical", + "gap": 8, + "padding": [ + 24, + 16, + 16, + 16 + ], + "children": [ + { + "type": "frame", + "id": "PSF49", + "name": "logo", + "width": "fill_container", + "gap": 10, + "padding": [ + 0, + 0, + 20, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "1GDfm", + "name": "logoIcon", + "width": 28, + "height": 28, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 1 + } + ] + }, + "cornerRadius": 6 + }, + { + "type": "text", + "id": "Ju2Eh", + "name": "logoText", + "fill": "$--foreground-inverse", + "content": "CommandApp", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "Hv2wk", + "name": "navSection", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "frame", + "id": "DWBCQ", + "name": "navDash", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "nMhSP", + "name": "navDashIcon", + "width": 18, + "height": 18, + "iconFontName": "layout-dashboard", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "PDU0l", + "name": "navDashText", + "fill": "$--foreground-dim", + "content": "Dashboard", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "3lXYQ", + "name": "navProj", + "width": "fill_container", + "fill": "$--accent-primary-muted", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "nboBQ", + "name": "navProjIcon", + "width": 18, + "height": 18, + "iconFontName": "folder-git-2", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "oFzLg", + "name": "navProjText", + "fill": "$--foreground-inverse", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "zGWbm", + "name": "navLib", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "j3kMi", + "name": "navLibIcon", + "width": 18, + "height": 18, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "3lvSE", + "name": "navLibText", + "fill": "$--foreground-dim", + "content": "Library", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "zH8gi", + "name": "navFlow", + "width": "fill_container", + "cornerRadius": "$--rounded-sm", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "RMVw2", + "name": "navFlowIcon", + "width": 18, + "height": 18, + "iconFontName": "workflow", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "UygH9", + "name": "navFlowText", + "fill": "$--foreground-dim", + "content": "Workflows", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "gGcTG", + "name": "Main Content", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-inverse", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "uoPaS", + "layoutPosition": "absolute", + "x": 0, + "y": 0, + "name": "Neon Streaks", + "opacity": 0.25, + "width": 1200, + "height": 900, + "layout": "none", + "children": [ + { + "type": "rectangle", + "id": "hor77", + "x": -20, + "y": 100, + "name": "s1", + "rotation": 6.000000000000001, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#582CFF00", + "position": 0 + }, + { + "color": "$--accent-primary", + "position": 0.4 + }, + { + "color": "#582CFF00", + "position": 1 + } + ] + }, + "width": 550, + "height": 3, + "effect": { + "type": "blur", + "radius": 24 + } + }, + { + "type": "rectangle", + "id": "Fle2A", + "x": 300, + "y": 500, + "name": "s2", + "rotation": -7, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#BF40FF00", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 0.5 + }, + { + "color": "#BF40FF00", + "position": 1 + } + ] + }, + "width": 450, + "height": 2, + "effect": { + "type": "blur", + "radius": 26 + } + }, + { + "type": "rectangle", + "id": "axl5c", + "x": 80, + "y": 730, + "name": "s3", + "rotation": 9, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#00F2FF00", + "position": 0 + }, + { + "color": "$--accent-tertiary", + "position": 0.45 + }, + { + "color": "#00F2FF00", + "position": 1 + } + ] + }, + "width": 600, + "height": 3, + "effect": { + "type": "blur", + "radius": 30 + } + } + ] + }, + { + "type": "frame", + "id": "h6QUR", + "name": "Top Bar", + "width": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 12, + "padding": [ + 14, + 24 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "uPAWL", + "name": "backBtn", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 6, + "padding": [ + 6, + 8 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QJXnq", + "name": "backIcon", + "width": 14, + "height": 14, + "iconFontName": "arrow-left", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "yTvVn", + "name": "backText", + "fill": "$--foreground-muted", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "BqbOb", + "name": "breadcrumb", + "fill": "$--foreground-dim", + "content": "/ Auth Service", + "fontFamily": "Funnel Sans", + "fontSize": 12, + "fontWeight": "normal", + "letterSpacing": 0.3 + }, + { + "type": "frame", + "id": "kEoPE", + "name": "topSpacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "sQliT", + "name": "searchBox", + "width": 200, + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "eLknv", + "name": "searchIcon", + "width": 14, + "height": 14, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "FQCI8", + "name": "searchText", + "fill": "$--foreground-dim", + "content": "Search project...", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "icon_font", + "id": "FFLQB", + "name": "bellIcon", + "width": 18, + "height": 18, + "iconFontName": "bell", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + }, + { + "type": "frame", + "id": "MEWVJ", + "name": "Content Body", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "children": [ + { + "type": "frame", + "id": "IiJvt", + "name": "Left Column", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 16, + "padding": [ + 20, + 24 + ], + "children": [ + { + "type": "frame", + "id": "5Hf2A", + "name": "Project Header", + "width": "fill_container", + "gap": 16, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "eDALf", + "name": "projIcon", + "width": 36, + "height": 36, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 1 + } + ] + }, + "cornerRadius": 8, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "KJFt7", + "name": "projIconInner", + "width": 18, + "height": 18, + "iconFontName": "shield", + "iconFontFamily": "lucide", + "fill": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "rCLnj", + "name": "projInfo", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "90wL0", + "name": "projTitle", + "fill": "$--foreground-inverse", + "content": "Auth Service", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "700" + }, + { + "type": "text", + "id": "blXia", + "name": "projDesc", + "fill": "$--foreground-muted", + "content": "Authentication & authorization middleware", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "VHPsT", + "name": "projStats", + "gap": 14, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "HTDE6", + "name": "pStat1", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "0FcFI", + "name": "pStat1Dot", + "fill": "$--success", + "width": 7, + "height": 7 + }, + { + "type": "text", + "id": "SpF8M", + "name": "pStat1Text", + "fill": "$--foreground-dim", + "content": "3 AI active", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "gBqKj", + "name": "pStat2", + "gap": 4, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "8Q9mv", + "name": "pStat2Icon", + "width": 12, + "height": 12, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "jml9q", + "name": "pStat2Text", + "fill": "$--foreground-dim", + "content": "4 worktrees", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "0V1S3", + "name": "divider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "4osZQ", + "name": "Project Tabs", + "width": "fill_container", + "children": [ + { + "type": "frame", + "id": "ODl7Q", + "name": "tabPlans", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 2 + }, + "fill": "$--accent-primary" + }, + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "sTHDH", + "name": "tabPlansIcon", + "width": 14, + "height": 14, + "iconFontName": "map", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "4040A", + "name": "tabPlansText", + "fill": "$--foreground-inverse", + "content": "Plans", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "XO0lW", + "name": "tabWorktrees", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "7OsX0", + "name": "tabWorktreesIcon", + "width": 14, + "height": 14, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "CTsAw", + "name": "tabWorktreesText", + "fill": "$--foreground-dim", + "content": "Worktrees", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "rdANu", + "name": "tabWorktreesCount", + "fill": "$--surface-elevated", + "cornerRadius": 8, + "padding": [ + 2, + 7 + ], + "children": [ + { + "type": "text", + "id": "YZIhF", + "name": "tabWorktreesNum", + "fill": "$--foreground-dim", + "content": "4", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "frame", + "id": "FZ8Md", + "name": "tabDocsLib", + "gap": 6, + "padding": [ + 8, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "OKE7U", + "name": "tabDocsLibIcon", + "width": 14, + "height": 14, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "0Nmq2", + "name": "tabDocsLibText", + "fill": "$--foreground-dim", + "content": "Docs & Library", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "Fk5DK", + "name": "tabDocsLibCount", + "fill": "$--surface-elevated", + "cornerRadius": 8, + "padding": [ + 2, + 7 + ], + "children": [ + { + "type": "text", + "id": "fXqbO", + "name": "tabDocsLibNum", + "fill": "$--foreground-dim", + "content": "5", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "vrzuA", + "name": "Active Plan", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 14, + "children": [ + { + "type": "frame", + "id": "eaFOX", + "name": "planHeader", + "width": "fill_container", + "gap": 10, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "EruKM", + "name": "planIcon", + "width": 16, + "height": 16, + "iconFontName": "map", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "nVYRN", + "name": "planTitle", + "fill": "$--foreground-inverse", + "content": "Auth Compliance Roadmap", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "2bKnU", + "name": "planProgressBadge", + "fill": "$--accent-primary-muted", + "cornerRadius": 10, + "padding": [ + 3, + 10 + ], + "children": [ + { + "type": "text", + "id": "On2Fz", + "name": "planProgressText", + "fill": "$--accent-primary", + "content": "66% complete", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "ApsGp", + "name": "planSpacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "7G9Mw", + "name": "planToggle", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "1cqhs", + "name": "planToggle1", + "fill": "$--accent-primary-muted", + "cornerRadius": "$--rounded-sm", + "padding": [ + 4, + 10 + ], + "children": [ + { + "type": "text", + "id": "oS4na", + "name": "planToggle1Text", + "fill": "$--accent-primary", + "content": "Plans", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "lGDHD", + "name": "planToggle2", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 4, + 10 + ], + "children": [ + { + "type": "text", + "id": "lZh0l", + "name": "planToggle2Text", + "fill": "$--foreground-dim", + "content": "All Items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "L1Szg", + "name": "planProgressBar", + "width": "fill_container", + "height": 4, + "fill": "$--surface-elevated", + "cornerRadius": 2, + "layout": "none", + "children": [ + { + "type": "rectangle", + "cornerRadius": 2, + "id": "ripeU", + "x": 0, + "y": 0, + "name": "planProgressFill", + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 0, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "$--accent-primary", + "position": 0 + }, + { + "color": "$--accent-secondary", + "position": 0.7 + }, + { + "color": "$--accent-tertiary", + "position": 1 + } + ] + }, + "width": 440, + "height": 4 + } + ] + }, + { + "type": "frame", + "id": "HSil9", + "name": "Plan Description", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "padding": [ + 0, + 0, + 4, + 0 + ], + "children": [ + { + "type": "text", + "id": "hqNtE", + "name": "planDescText", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Bring the auth middleware into compliance with updated legal and security requirements. Covers gap analysis, token storage migration, CSRF protection, and final compliance audit certification by April 18.", + "lineHeight": 1.5, + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "gAurU", + "name": "planDescMeta", + "width": "fill_container", + "gap": 16, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "iGOev", + "name": "planMetaMilestone", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QLHDX", + "name": "planMetaMIcon", + "width": 12, + "height": 12, + "iconFontName": "flag", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "mEq1n", + "name": "planMetaMText", + "fill": "$--foreground-dim", + "content": "4/6 milestones", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "T8JCv", + "name": "planMetaItems", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QKfXg", + "name": "planMetaIIcon", + "width": 12, + "height": 12, + "iconFontName": "list-checks", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "fMjra", + "name": "planMetaIText", + "fill": "$--foreground-dim", + "content": "8 work items · 4 done", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "JccA8", + "name": "planMetaDue", + "gap": 5, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Cpfo5", + "name": "planMetaDIcon", + "width": 12, + "height": 12, + "iconFontName": "calendar", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "5DTXl", + "name": "planMetaDText", + "fill": "$--warning", + "content": "Due Apr 18", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "oqfyI", + "name": "Phases", + "clip": true, + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "gap": 12, + "children": [ + { + "type": "frame", + "id": "ovcJm", + "name": "Phase 1 - Analysis", + "width": "fill_container", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "m3MMm", + "name": "phase1Header", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": [ + "$--rounded-lg", + "$--rounded-lg", + 0, + 0 + ], + "gap": 10, + "padding": [ + 10, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "eBsoV", + "name": "phase1Check", + "width": 16, + "height": 16, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "etQw4", + "name": "phase1Title", + "fill": "$--foreground-inverse", + "content": "Phase 1 — Analysis & Research", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "82Vy9", + "name": "phase1Badge", + "fill": "#22C55E22", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "BSfQT", + "name": "phase1BadgeText", + "fill": "$--success", + "content": "Complete", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "2Wg1Q", + "name": "phase1Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "text", + "id": "3ktaf", + "name": "phase1Count", + "fill": "$--foreground-dim", + "content": "3/3 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "3JUQ0", + "name": "phase1Items", + "width": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "NJjuQ", + "name": "p1wi1", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "pW0DV", + "name": "p1wi1Check", + "width": 14, + "height": 14, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "frame", + "id": "5lEp3", + "name": "p1wi1info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "80ygi", + "fill": "$--foreground-muted", + "content": "Gap analysis — identify compliance gaps", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "YYuiu", + "fill": "$--foreground-dim", + "content": "Scan current auth middleware against OWASP and legal token storage requirements", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "eU3y6", + "name": "p1wi1Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "6JkTO", + "name": "p1wi1Phase", + "fill": "#22C55E22", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "azi5I", + "name": "p1wi1PhaseText", + "fill": "$--success", + "content": "AI Enhanced", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "t0JBY", + "name": "p1wi1Id", + "fill": "$--foreground-dim", + "content": "WI-140", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "2ivoZ", + "name": "p1wi2", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 10, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "Pb5Tm", + "name": "p1wi2Check", + "width": 14, + "height": 14, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "frame", + "id": "sVw57", + "name": "p1wi2info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "yrD7e", + "fill": "$--foreground-muted", + "content": "Design decision — token storage approach", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "Vjxaz", + "fill": "$--foreground-dim", + "content": "Evaluate encrypted httpOnly cookies vs server-side session store for compliance", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "dt0oG", + "name": "p1wi2Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "VsTry", + "name": "p1wi2Phase", + "fill": "#22C55E22", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "4OMh9", + "name": "p1wi2PhaseText", + "fill": "$--success", + "content": "Complete", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "U8QWx", + "name": "p1wi2Id", + "fill": "$--foreground-dim", + "content": "WI-141", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "ItUmI", + "name": "p1wi3", + "width": "fill_container", + "gap": 10, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "1PsuG", + "name": "p1wi3Check", + "width": 14, + "height": 14, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "frame", + "id": "ssQsa", + "name": "p1wi3info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "WfeXR", + "fill": "$--foreground-muted", + "content": "Deep research — compliance standards review", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "0IzuN", + "fill": "$--foreground-dim", + "content": "AI deep research into SOC2 and GDPR token handling requirements for audit prep", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "VerYe", + "name": "p1wi3Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "ja6Ix", + "name": "p1wi3Phase", + "fill": "#22C55E22", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "abvYP", + "name": "p1wi3PhaseText", + "fill": "$--success", + "content": "AI Enhanced", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "vqgtX", + "name": "p1wi3Id", + "fill": "$--foreground-dim", + "content": "WI-139", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Gsdol", + "name": "Phase 2 - Implementation", + "width": "fill_container", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--accent-primary" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "HL1fP", + "name": "phase2Header", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": [ + "$--rounded-lg", + "$--rounded-lg", + 0, + 0 + ], + "gap": 10, + "padding": [ + 10, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "cV5RQ", + "name": "phase2Dot", + "width": 16, + "height": 16, + "cornerRadius": 8, + "stroke": { + "align": "inside", + "thickness": 2, + "fill": "$--accent-primary" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "vFyql", + "name": "phase2DotInner", + "fill": "$--accent-primary", + "width": 6, + "height": 6 + } + ] + }, + { + "type": "text", + "id": "Hi6JU", + "name": "phase2Title", + "fill": "$--foreground-inverse", + "content": "Phase 2 — Implementation", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "ukEo6", + "name": "phase2Badge", + "fill": "$--accent-primary-muted", + "cornerRadius": 8, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "Oqn8s", + "name": "phase2BadgeText", + "fill": "$--accent-primary", + "content": "In Progress", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "pjXX9", + "name": "phase2Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "text", + "id": "qVQTR", + "name": "phase2Count", + "fill": "$--foreground-dim", + "content": "1/3 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "cB4ry", + "name": "phase2Items", + "width": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "DrQdu", + "name": "p2wi1", + "width": "fill_container", + "fill": "$--surface-card-hover", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "goBAX", + "name": "p2wi1Dot", + "fill": "$--accent-primary", + "width": 10, + "height": 10 + }, + { + "type": "frame", + "id": "xedYH", + "name": "p2wi1info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "dRCzV", + "fill": "$--foreground-inverse", + "content": "Auth middleware rewrite — session token compliance", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "SBY9J", + "fill": "$--foreground-dim", + "content": "Rewrite middleware with encrypted httpOnly tokens, CSRF double-submit, and audit logging", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "yVIeK", + "name": "p2wi1Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "DzR4X", + "name": "p2wi1AIBadge", + "fill": "#22C55E22", + "cornerRadius": 6, + "gap": 4, + "padding": [ + 2, + 6 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "a6M54", + "name": "p2wi1AIDot", + "fill": "$--success", + "width": 5, + "height": 5 + }, + { + "type": "text", + "id": "wtxY7", + "name": "p2wi1AIText", + "fill": "$--success", + "content": "AI Running", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "ERkkB", + "name": "p2wi1Phase", + "fill": "$--accent-primary-muted", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "COKnP", + "name": "p2wi1PhaseText", + "fill": "$--accent-primary", + "content": "Implementation", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "UajDt", + "name": "p2wi1Id", + "fill": "$--foreground-dim", + "content": "WI-142", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "v2ngo", + "name": "p2wi2", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "3TcUQ", + "name": "p2wi2Dot", + "fill": "$--warning", + "width": 10, + "height": 10 + }, + { + "type": "frame", + "id": "XhLso", + "name": "p2wi2info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "aplk6", + "fill": "$--foreground-inverse", + "content": "OAuth2 provider integration", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "BgXbj", + "fill": "$--foreground-dim", + "content": "Integrate external OAuth2 providers — waiting on API key provisioning from vendor", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "RmZ1J", + "name": "p2wi2Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "0E3h5", + "name": "p2wi2BlockBadge", + "fill": "#F59E0B22", + "cornerRadius": 6, + "gap": 4, + "padding": [ + 2, + 6 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "xk0FC", + "name": "p2wi2BlockIcon", + "width": 9, + "height": 9, + "iconFontName": "lock", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "ONxXz", + "name": "p2wi2BlockText", + "fill": "$--warning", + "content": "Blocked by WI-142", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "28ujj", + "name": "p2wi2Phase", + "fill": "#F59E0B22", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "h9lH2", + "name": "p2wi2PhaseText", + "fill": "$--warning", + "content": "Waiting", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "Mz5oV", + "name": "p2wi2Id", + "fill": "$--foreground-dim", + "content": "WI-149", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "A1ajn", + "name": "p2wi3", + "width": "fill_container", + "gap": 8, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "XjKBg", + "name": "p2wi3Dot", + "fill": "$--accent-primary", + "width": 10, + "height": 10 + }, + { + "type": "frame", + "id": "lVe8O", + "name": "p2wi3info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "CctMa", + "fill": "$--foreground-inverse", + "content": "API rate limiting per tenant", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "xgFPC", + "fill": "$--foreground-dim", + "content": "Implement tenant-scoped rate limits with Redis sliding window counters", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "7Aqe8", + "name": "p2wi3Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "eSorE", + "name": "p2wi3AIBadge", + "fill": "$--accent-primary-muted", + "cornerRadius": 6, + "gap": 4, + "padding": [ + 2, + 6 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "FUKC0", + "name": "p2wi3AIText", + "fill": "$--accent-primary", + "content": "AI Research", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "fMyck", + "name": "p2wi3Phase", + "fill": "$--accent-secondary-muted", + "cornerRadius": 6, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "FAxJd", + "name": "p2wi3PhaseText", + "fill": "$--accent-secondary", + "content": "AI Enhanced", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "VcoZh", + "name": "p2wi3Id", + "fill": "$--foreground-dim", + "content": "WI-138", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "CbNf1", + "name": "Phase 3 - Review & Audit", + "opacity": 0.7, + "width": "fill_container", + "cornerRadius": "$--rounded-lg", + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "h9DZm", + "name": "phase3Header", + "width": "fill_container", + "fill": "$--surface-card", + "cornerRadius": [ + "$--rounded-lg", + "$--rounded-lg", + 0, + 0 + ], + "gap": 10, + "padding": [ + 10, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "is8wq", + "name": "phase3Dot", + "width": 16, + "height": 16, + "stroke": { + "align": "inside", + "thickness": 1.5, + "fill": "$--border-subtle" + } + }, + { + "type": "text", + "id": "1AcSA", + "name": "phase3Title", + "fill": "$--foreground-muted", + "content": "Phase 3 — Review & Compliance Audit", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "wBI6J", + "name": "phase3Badge", + "cornerRadius": 8, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 2, + 8 + ], + "children": [ + { + "type": "text", + "id": "MvizE", + "name": "phase3BadgeText", + "fill": "$--foreground-dim", + "content": "Upcoming", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "gg0kb", + "name": "phase3Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "text", + "id": "iVu2z", + "name": "phase3Count", + "fill": "$--foreground-dim", + "content": "0/2 items", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "OR6Sx", + "name": "phase3Items", + "width": "fill_container", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "VBByP", + "name": "p3wi1", + "width": "fill_container", + "stroke": { + "align": "inside", + "thickness": { + "bottom": 1 + }, + "fill": "$--border-subtle" + }, + "gap": 8, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "X0Pug", + "name": "p3wi1Dot", + "width": 10, + "height": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + } + }, + { + "type": "frame", + "id": "OX1Gz", + "name": "p3wi1info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "mVwhc", + "fill": "$--foreground-dim", + "content": "Code review & security audit", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "ecAiR", + "opacity": 0.7, + "fill": "$--foreground-dim", + "content": "Full security review of auth changes before compliance certification", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "xTyOc", + "name": "p3wi1Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "My9Gq", + "name": "p3wi1BlockBadge", + "cornerRadius": 6, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 4, + "padding": [ + 2, + 6 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "gsRyk", + "name": "p3wi1BlockIcon", + "width": 9, + "height": 9, + "iconFontName": "lock", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "cHQXI", + "name": "p3wi1BlockText", + "fill": "$--foreground-dim", + "content": "Waiting on Phase 2", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "LdyHz", + "name": "p3wi1Phase", + "cornerRadius": 6, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "mn5BC", + "name": "p3wi1PhaseText", + "fill": "$--foreground-dim", + "content": "Created", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "Rbc2I", + "name": "p3wi1Id", + "fill": "$--foreground-dim", + "content": "WI-155", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "IEikP", + "name": "p3wi2", + "width": "fill_container", + "gap": 8, + "padding": [ + 8, + 14, + 8, + 38 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "NH5LK", + "name": "p3wi2Dot", + "width": 10, + "height": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + } + }, + { + "type": "frame", + "id": "fnkdU", + "name": "p3wi2info", + "width": "fill_container", + "layout": "vertical", + "gap": 1, + "children": [ + { + "type": "text", + "id": "zA3ID", + "fill": "$--foreground-dim", + "content": "Compliance certification submission", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "ygxea", + "opacity": 0.7, + "fill": "$--foreground-dim", + "content": "Submit audit logs and token lifecycle documentation to legal for final sign-off", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "PIIvu", + "name": "p3wi2Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "y5RJc", + "name": "p3wi2Phase", + "cornerRadius": 6, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "padding": [ + 2, + 6 + ], + "children": [ + { + "type": "text", + "id": "vnAzG", + "name": "p3wi2PhaseText", + "fill": "$--foreground-dim", + "content": "Created", + "fontFamily": "Funnel Sans", + "fontSize": 9, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "fGWsH", + "name": "p3wi2Id", + "fill": "$--foreground-dim", + "content": "WI-156", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "An7Jt", + "name": "Right Panel", + "clip": true, + "width": 300, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "left": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 16, + "padding": [ + 18, + 14 + ], + "children": [ + { + "type": "frame", + "id": "93Wui", + "name": "Needs Attention", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "1x0l1", + "name": "attentionHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "zN1Cg", + "name": "attentionIcon", + "width": 14, + "height": 14, + "iconFontName": "circle-alert", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "FnHSg", + "name": "attentionHeaderText", + "fill": "$--foreground-inverse", + "content": "Needs Your Decision", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "zXT0t", + "name": "att1", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": { + "left": 3 + }, + "fill": "$--warning" + }, + "layout": "vertical", + "gap": 4, + "padding": 10, + "children": [ + { + "type": "text", + "id": "Y9op4", + "name": "att1Title", + "fill": "$--foreground-inverse", + "content": "OAuth2: Choose provider integration strategy", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "ZUDHB", + "name": "att1Sub", + "fill": "$--warning", + "content": "Decision needed before implementation begins", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "KAKsK", + "name": "att2", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "stroke": { + "align": "inside", + "thickness": { + "left": 3 + }, + "fill": "$--accent-primary" + }, + "layout": "vertical", + "gap": 4, + "padding": 10, + "children": [ + { + "type": "text", + "id": "cZp6E", + "name": "att2Title", + "fill": "$--foreground-inverse", + "content": "Rate limiter: Review research findings", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "7xLrL", + "name": "att2Sub", + "fill": "$--accent-primary", + "content": "AI research complete — ready for your review", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "KOncq", + "name": "divRP1", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "D1AkP", + "name": "Repositories", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "zz1yu", + "name": "repoHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "mY1FC", + "name": "repoHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "avqJx", + "name": "repoHeaderText", + "fill": "$--foreground-inverse", + "content": "Repositories", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "YS99w", + "name": "repo1", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "sZ3wn", + "name": "repo1Icon", + "width": 12, + "height": 12, + "iconFontName": "folder-git-2", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "tbQrH", + "name": "repo1Name", + "fill": "$--foreground-inverse", + "content": "auth-service", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "0F8TQ", + "name": "repo1Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "text", + "id": "PK57A", + "name": "repo1Trees", + "fill": "$--foreground-dim", + "content": "3 worktrees", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "aWtij", + "name": "repo2", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "SfCRg", + "name": "repo2Icon", + "width": 12, + "height": 12, + "iconFontName": "folder-git-2", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "Dk3Ji", + "name": "repo2Name", + "fill": "$--foreground-inverse", + "content": "auth-gateway", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "QoB4Z", + "name": "repo2Spacer", + "width": "fill_container", + "height": 1 + }, + { + "type": "text", + "id": "mMxp8", + "name": "repo2Trees", + "fill": "$--foreground-dim", + "content": "1 worktree", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "Hje0D", + "name": "divRP2", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "lwQhl", + "name": "Library & Docs", + "width": "fill_container", + "layout": "vertical", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "Dxzmu", + "name": "libHeader", + "width": "fill_container", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "8dsXT", + "name": "libHeaderIcon", + "width": 14, + "height": 14, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "nJ5QU", + "name": "libHeaderText", + "fill": "$--foreground-inverse", + "content": "Library & Documents", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "hnCgQ", + "name": "doc1", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "w1eeb", + "name": "doc1Icon", + "width": 12, + "height": 12, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "Jd69e", + "name": "doc1Name", + "fill": "$--foreground-muted", + "content": "design-decision-auth.md", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "G1Qlj", + "name": "doc2", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "vnxP5", + "name": "doc2Icon", + "width": 12, + "height": 12, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "PGSz2", + "name": "doc2Name", + "fill": "$--foreground-muted", + "content": "gap-analysis-results.md", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "lBJ5u", + "name": "doc3", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "CmwKo", + "name": "doc3Icon", + "width": 12, + "height": 12, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--warning" + }, + { + "type": "text", + "id": "Teyn1", + "name": "doc3Name", + "fill": "$--foreground-muted", + "content": "implementation-plan.md", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "QMsuv", + "name": "doc4", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "XTRyS", + "name": "doc4Icon", + "width": 12, + "height": 12, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "WkHyV", + "name": "doc4Name", + "fill": "$--foreground-muted", + "content": "compliance-requirements-v2.pdf", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "wm6r7", + "name": "doc5", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": "$--rounded-sm", + "gap": 6, + "padding": [ + 6, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "L5YNq", + "name": "doc5Icon", + "width": 12, + "height": 12, + "iconFontName": "file-code", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "EVh16", + "name": "doc5Name", + "fill": "$--foreground-muted", + "content": "session-token-spec.md", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "iUKLV", + "x": 3163, + "y": 0, + "name": "Work Item - Email Share Mode", + "clip": true, + "width": 1440, + "height": 900, + "fill": "$--surface-inverse", + "cornerRadius": "$--rounded-lg", + "children": [ + { + "type": "frame", + "id": "QrYHR", + "name": "sidebar", + "width": 240, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "right": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "padding": [ + 24, + 16 + ], + "children": [ + { + "type": "frame", + "id": "i3A8X", + "name": "logo", + "width": "fill_container", + "gap": 8, + "padding": [ + 0, + 0, + 24, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "Mjtx0", + "name": "logoIcon", + "width": 28, + "height": 28, + "fill": "$--accent-primary", + "cornerRadius": 6 + }, + { + "type": "text", + "id": "6a15p", + "name": "logoTxt", + "fill": "$--foreground-inverse", + "content": "CommandApp", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "700" + } + ] + }, + { + "type": "frame", + "id": "CBQcD", + "name": "navGroup", + "width": "fill_container", + "layout": "vertical", + "gap": 2, + "children": [ + { + "type": "frame", + "id": "VfPMW", + "name": "nav1", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "C9vdl", + "name": "nav1icon", + "width": 18, + "height": 18, + "iconFontName": "layout-dashboard", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "GLZMr", + "name": "nav1txt", + "fill": "$--foreground-muted", + "content": "Dashboard", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "krZ7N", + "name": "nav2", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "LyeZM", + "name": "nav2icon", + "width": 18, + "height": 18, + "iconFontName": "folder", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "Ia6PL", + "name": "nav2txt", + "fill": "$--foreground-muted", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "VZfoY", + "name": "nav3", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "g4KYE", + "name": "nav3icon", + "width": 18, + "height": 18, + "iconFontName": "library", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "GzW5T", + "name": "nav3txt", + "fill": "$--foreground-muted", + "content": "Library", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "27CWo", + "name": "nav4", + "width": "fill_container", + "cornerRadius": "$--rounded-md", + "gap": 10, + "padding": [ + 8, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "D5NU9", + "name": "nav4icon", + "width": 18, + "height": 18, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "Wb0tN", + "name": "nav4txt", + "fill": "$--foreground-muted", + "content": "Workflows", + "fontFamily": "Geist", + "fontSize": 14, + "fontWeight": "normal" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "nphvg", + "name": "mainCol", + "width": "fill_container", + "height": "fill_container", + "fill": "$--surface-inverse", + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "rooRa", + "name": "topBar", + "width": "fill_container", + "fill": "$--surface-card", + "padding": [ + 12, + 20 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "ntxYS", + "name": "breadcrumb", + "gap": 6, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "jyqG4", + "name": "backIcon", + "width": 16, + "height": 16, + "iconFontName": "chevron-left", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "text", + "id": "h5VqG", + "name": "bc1", + "fill": "$--foreground-muted", + "content": "Projects", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "rAo9z", + "name": "bcSep1", + "fill": "$--foreground-dim", + "content": "/", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "Qhyfn", + "name": "bc2", + "fill": "$--foreground-muted", + "content": "Auth Service", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "WEspm", + "name": "bcSep2", + "fill": "$--foreground-dim", + "content": "/", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "jb112", + "name": "bc3", + "fill": "$--foreground-muted", + "content": "Work Items", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "Dz98s", + "name": "bcSep3", + "fill": "$--foreground-dim", + "content": "/", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "text", + "id": "pov66", + "name": "bc4", + "fill": "$--foreground-inverse", + "content": "WI-142", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "fOq1y", + "name": "topRight", + "gap": 16, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "76WLf", + "name": "searchIcon", + "width": 18, + "height": 18, + "iconFontName": "search", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + }, + { + "type": "icon_font", + "id": "xfoBm", + "name": "bellIcon", + "width": 18, + "height": 18, + "iconFontName": "bell", + "iconFontFamily": "lucide", + "fill": "$--foreground-muted" + } + ] + } + ] + }, + { + "type": "frame", + "id": "cOCJM", + "name": "wiHeader", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "padding": [ + 16, + 24 + ], + "children": [ + { + "type": "frame", + "id": "oSHVl", + "name": "wiTitleRow", + "width": "fill_container", + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "4hbIE", + "name": "wiTitle", + "fill": "$--foreground-inverse", + "content": "Auth middleware rewrite — session token compliance", + "fontFamily": "Inter", + "fontSize": 18, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "5MUsU", + "name": "badgeRow", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "N1W46", + "name": "badge1", + "fill": "$--accent-primary-muted", + "cornerRadius": 12, + "gap": 5, + "padding": [ + 3, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "EFkVK", + "name": "badge1dot", + "fill": "$--accent-primary", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "SKPnm", + "name": "badge1txt", + "fill": "$--accent-primary", + "content": "In Progress", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "R0Pa5", + "name": "badge2", + "fill": "#F59E0B22", + "cornerRadius": 12, + "gap": 5, + "padding": [ + 3, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "pkyg9", + "name": "badge2dot", + "fill": "$--warning", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "jqRL4", + "name": "badge2txt", + "fill": "$--warning", + "content": "High Priority", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "1Ez7D", + "name": "divider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + } + ] + }, + { + "type": "frame", + "id": "Mz7l4", + "name": "threadArea", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "padding": [ + 0, + 24 + ], + "children": [ + { + "type": "frame", + "id": "WHYUt", + "name": "msg1", + "width": "fill_container", + "gap": 12, + "padding": [ + 14, + 0 + ], + "children": [ + { + "type": "ellipse", + "id": "kQOvs", + "name": "av1", + "fill": "#2D2D4E", + "width": 32, + "height": 32 + }, + { + "type": "frame", + "id": "33iaA", + "name": "msg1body", + "width": "fill_container", + "layout": "vertical", + "gap": 4, + "children": [ + { + "type": "frame", + "id": "sEdzy", + "name": "msg1head", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Ung1n", + "name": "msg1name", + "fill": "$--foreground-inverse", + "content": "James Chen", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "text", + "id": "LK8Tw", + "name": "msg1time", + "fill": "$--foreground-dim", + "content": "2 hours ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "KJGXD", + "name": "msg1txt", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Updated the CSRF middleware implementation. Double-submit cookie pattern is now using SameSite=Strict. Ready for compliance review.", + "lineHeight": 1.5, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "OoWGm", + "name": "msgDiv1", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "oF5na", + "name": "msg2", + "width": "fill_container", + "gap": 12, + "padding": [ + 14, + 0 + ], + "children": [ + { + "type": "ellipse", + "id": "vpj6k", + "name": "av2", + "fill": "#1E3A2E", + "width": 32, + "height": 32 + }, + { + "type": "frame", + "id": "vDjm4", + "name": "msg2body", + "width": "fill_container", + "layout": "vertical", + "gap": 4, + "children": [ + { + "type": "frame", + "id": "01DkI", + "name": "msg2head", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "NcZYK", + "name": "msg2name", + "fill": "$--foreground-inverse", + "content": "Riya Kumar", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "text", + "id": "L8SmD", + "name": "msg2time", + "fill": "$--foreground-dim", + "content": "1 hour ago", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "text", + "id": "wupxd", + "name": "msg2txt", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Looks good. Let's share this with Sarah from Legal for the compliance sign-off before merging.", + "lineHeight": 1.5, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "cgzno", + "name": "msgDiv2", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "UDujJ", + "name": "compose", + "width": "fill_container", + "fill": "$--surface-elevated", + "cornerRadius": [ + 8, + 8, + 0, + 0 + ], + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "XguTL", + "name": "modeRow", + "width": "fill_container", + "padding": [ + 12, + 16, + 10, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "CeZIn", + "name": "modeEmail", + "fill": "$--accent-primary-muted", + "cornerRadius": 6, + "gap": 6, + "padding": [ + 6, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "QB4R2", + "name": "modeEmailIcon", + "width": 14, + "height": 14, + "iconFontName": "mail", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + }, + { + "type": "text", + "id": "n10HX", + "name": "modeEmailTxt", + "fill": "$--accent-primary", + "content": "Share via Email", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "zDcnu", + "name": "modeReply", + "cornerRadius": 6, + "gap": 6, + "padding": [ + 6, + 14 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "aruUL", + "name": "modeReplyIcon", + "width": 14, + "height": 14, + "iconFontName": "message-square", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "UoHh0", + "name": "modeReplyTxt", + "fill": "$--foreground-dim", + "content": "Reply", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "rpeT7", + "name": "modeDivider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "sPkfE", + "name": "toRow", + "width": "fill_container", + "gap": 8, + "padding": [ + 10, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "B8SRz", + "name": "toLabel", + "fill": "$--foreground-dim", + "content": "TO", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "600", + "letterSpacing": 1 + }, + { + "type": "frame", + "id": "bTJ3q", + "name": "toPill", + "fill": "$--accent-primary-muted", + "cornerRadius": 14, + "gap": 6, + "padding": [ + 4, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "DTPjU", + "name": "toPillTxt", + "fill": "$--accent-primary", + "content": "sarah.martinez@legal.corp", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + }, + { + "type": "icon_font", + "id": "RfqlN", + "name": "toPillX", + "width": 12, + "height": 12, + "iconFontName": "x", + "iconFontFamily": "lucide", + "fill": "$--accent-primary" + } + ] + }, + { + "type": "text", + "id": "40vOi", + "name": "toInput", + "fill": "$--foreground-dim", + "content": "Add recipient...", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "rectangle", + "id": "en1e5", + "name": "toDivider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "bi7CW", + "name": "subRow", + "width": "fill_container", + "gap": 8, + "padding": [ + 10, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "KAk44", + "name": "subLabel", + "fill": "$--foreground-dim", + "content": "SUBJECT", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "600", + "letterSpacing": 1 + }, + { + "type": "text", + "id": "fkOYs", + "name": "subText", + "fill": "$--foreground-inverse", + "content": "Re: WI-142 Auth middleware rewrite — CSRF implementation update", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "rectangle", + "id": "j68JG", + "name": "subDivider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "xdvI3", + "name": "attachRow", + "width": "fill_container", + "gap": 8, + "padding": [ + 10, + 16 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "T7BdU", + "name": "attachLabel", + "fill": "$--foreground-dim", + "content": "ATTACHMENTS", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "600", + "letterSpacing": 1 + }, + { + "type": "frame", + "id": "3XF2e", + "name": "attach1", + "fill": "$--surface-card", + "cornerRadius": 6, + "gap": 6, + "padding": [ + 5, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "SnGa9", + "name": "attach1icon", + "width": 13, + "height": 13, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "D7Qee", + "name": "attach1txt", + "fill": "$--foreground-muted", + "content": "csrf-middleware.patch", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "3AfKZ", + "name": "attach2", + "fill": "$--surface-card", + "cornerRadius": 6, + "gap": 6, + "padding": [ + 5, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "ZdkJX", + "name": "attach2icon", + "width": 13, + "height": 13, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "gnsaT", + "name": "attach2txt", + "fill": "$--foreground-muted", + "content": "gap-analysis-results.md", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "XbVBJ", + "name": "attachBtn", + "cornerRadius": 6, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "$--border-subtle" + }, + "gap": 4, + "padding": [ + 5, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "cDSuG", + "name": "attachBtnIcon", + "width": 12, + "height": 12, + "iconFontName": "plus", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "4hOUv", + "name": "attachBtnTxt", + "fill": "$--foreground-dim", + "content": "Attach", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "r1WUJ", + "name": "attachDivider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "oBsx0", + "name": "msgArea", + "width": "fill_container", + "layout": "vertical", + "padding": 16, + "children": [ + { + "type": "text", + "id": "AIaWR", + "name": "msgText", + "fill": "$--foreground-muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "Hi Sarah,\n\nSharing the latest CSRF middleware patch for your compliance review. The implementation uses double-submit cookie pattern with SameSite=Strict as discussed.\n\nPlease review and let us know if this meets the audit requirements.", + "lineHeight": 1.6, + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + } + ] + }, + { + "type": "rectangle", + "id": "P6sjQ", + "name": "bottomDivider", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "ZJQGc", + "name": "bottomBar", + "width": "fill_container", + "padding": [ + 12, + 16 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "UJKMx", + "name": "hintText", + "fill": "$--foreground-dim", + "content": "Responses will appear in this discussion", + "fontFamily": "Funnel Sans", + "fontSize": 11, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "SmIak", + "name": "bottomActions", + "gap": 12, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "xvZ3I", + "name": "cancelBtn", + "fill": "$--foreground-muted", + "content": "Cancel", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "normal" + }, + { + "type": "frame", + "id": "SdbyO", + "name": "sendBtn", + "fill": "$--accent-primary", + "cornerRadius": "$--rounded-md", + "gap": 6, + "padding": [ + 8, + 20 + ], + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "ySeql", + "name": "sendIcon", + "width": 14, + "height": 14, + "iconFontName": "send", + "iconFontFamily": "lucide", + "fill": "$--foreground-inverse" + }, + { + "type": "text", + "id": "5r0oy", + "name": "sendTxt", + "fill": "$--foreground-inverse", + "content": "Send Email", + "fontFamily": "Geist", + "fontSize": 13, + "fontWeight": "600" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "TpLPt", + "layoutPosition": "absolute", + "x": 100, + "y": 80, + "name": "neon1", + "opacity": 0.5, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 90, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#582CFF00", + "position": 0 + }, + { + "color": "#582CFF66", + "position": 0.5 + }, + { + "color": "#582CFF00", + "position": 1 + } + ] + }, + "width": 200, + "height": 3 + }, + { + "type": "rectangle", + "id": "YW29D", + "layoutPosition": "absolute", + "x": 250, + "y": 200, + "name": "neon2", + "opacity": 0.4, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 90, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#BF40FF00", + "position": 0 + }, + { + "color": "#BF40FF55", + "position": 0.5 + }, + { + "color": "#BF40FF00", + "position": 1 + } + ] + }, + "width": 300, + "height": 2 + }, + { + "type": "rectangle", + "id": "P294T", + "layoutPosition": "absolute", + "x": 400, + "y": 350, + "name": "neon3", + "opacity": 0.35, + "fill": { + "type": "gradient", + "gradientType": "linear", + "enabled": true, + "rotation": 90, + "size": { + "height": 1 + }, + "colors": [ + { + "color": "#00F2FF00", + "position": 0 + }, + { + "color": "#00F2FF44", + "position": 0.5 + }, + { + "color": "#00F2FF00", + "position": 1 + } + ] + }, + "width": 150, + "height": 2 + } + ] + }, + { + "type": "frame", + "id": "T068X", + "name": "rightPanel", + "width": 300, + "height": "fill_container", + "fill": "$--surface-card", + "stroke": { + "align": "inside", + "thickness": { + "left": 1 + }, + "fill": "$--border-subtle" + }, + "layout": "vertical", + "gap": 20, + "padding": [ + 20, + 16 + ], + "children": [ + { + "type": "text", + "id": "wUR41", + "name": "rpTitle", + "fill": "$--foreground-inverse", + "content": "Details", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "9dtFL", + "name": "compSection", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "text", + "id": "CQqqe", + "name": "compLabel", + "fill": "$--foreground-dim", + "content": "COMPLETION CONDITIONS", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "600", + "letterSpacing": 1.2 + }, + { + "type": "frame", + "id": "HK7Pw", + "name": "cond1", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "vIlCf", + "name": "cond1check", + "width": 15, + "height": 15, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "TTEGY", + "name": "cond1txt", + "fill": "$--foreground-muted", + "content": "CSRF token validation", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "zj0Lc", + "name": "cond2", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "dDpxY", + "name": "cond2check", + "width": 15, + "height": 15, + "iconFontName": "circle-check", + "iconFontFamily": "lucide", + "fill": "$--success" + }, + { + "type": "text", + "id": "jAtYW", + "name": "cond2txt", + "fill": "$--foreground-muted", + "content": "SameSite cookie policy", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "1QvBV", + "name": "cond3", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "OTUt6", + "name": "cond3check", + "width": 15, + "height": 15, + "iconFontName": "circle", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "LcFgO", + "name": "cond3txt", + "fill": "$--foreground-dim", + "content": "Legal compliance sign-off", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "o9FUM", + "name": "cond4", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "ViE1e", + "name": "cond4check", + "width": 15, + "height": 15, + "iconFontName": "circle", + "iconFontFamily": "lucide", + "fill": "$--foreground-dim" + }, + { + "type": "text", + "id": "2C2bC", + "name": "cond4txt", + "fill": "$--foreground-dim", + "content": "Integration test coverage", + "fontFamily": "Geist", + "fontSize": 12, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "DhMpI", + "name": "rpDiv1", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "EQGr0", + "name": "changesSection", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "text", + "id": "KOMpE", + "name": "changesLabel", + "fill": "$--foreground-dim", + "content": "RECENT CHANGES", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "600", + "letterSpacing": 1.2 + }, + { + "type": "frame", + "id": "TUlpF", + "name": "change1", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "dBQmp", + "name": "change1icon", + "width": 13, + "height": 13, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "R4msk", + "name": "change1txt", + "fill": "$--foreground-muted", + "content": "csrf-middleware.ts +142 −38", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "Orvc8", + "name": "change2", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "zMP5I", + "name": "change2icon", + "width": 13, + "height": 13, + "iconFontName": "git-branch", + "iconFontFamily": "lucide", + "fill": "$--accent-tertiary" + }, + { + "type": "text", + "id": "Uyi4b", + "name": "change2txt", + "fill": "$--foreground-muted", + "content": "session-config.ts +24 −12", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "msAdd", + "name": "rpDiv2", + "fill": "$--border-subtle", + "width": "fill_container", + "height": 1 + }, + { + "type": "frame", + "id": "2Dsum", + "name": "docsSection", + "width": "fill_container", + "layout": "vertical", + "gap": 10, + "children": [ + { + "type": "text", + "id": "MY1uo", + "name": "docsLabel", + "fill": "$--foreground-dim", + "content": "LINKED DOCUMENTS", + "fontFamily": "Funnel Sans", + "fontSize": 10, + "fontWeight": "600", + "letterSpacing": 1.2 + }, + { + "type": "frame", + "id": "VW35D", + "name": "doc1", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "iBKtr", + "name": "doc1icon", + "width": 13, + "height": 13, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "5FryS", + "name": "doc1txt", + "fill": "$--foreground-muted", + "content": "Security compliance spec", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + }, + { + "type": "frame", + "id": "8yCBB", + "name": "doc2", + "width": "fill_container", + "gap": 8, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "4U6xb", + "name": "doc2icon", + "width": 13, + "height": 13, + "iconFontName": "file-text", + "iconFontFamily": "lucide", + "fill": "$--accent-secondary" + }, + { + "type": "text", + "id": "DKsjK", + "name": "doc2txt", + "fill": "$--foreground-muted", + "content": "OWASP CSRF prevention", + "fontFamily": "Geist", + "fontSize": 11, + "fontWeight": "normal" + } + ] + } + ] + } + ] + } + ] + } + ], + "variables": { + "--accent-primary": { + "type": "color", + "value": "#582CFF" + }, + "--accent-primary-muted": { + "type": "color", + "value": "#582CFF33" + }, + "--accent-secondary": { + "type": "color", + "value": "#BF40FF" + }, + "--accent-secondary-muted": { + "type": "color", + "value": "#BF40FF22" + }, + "--accent-tertiary": { + "type": "color", + "value": "#00F2FF" + }, + "--border-active": { + "type": "color", + "value": "#333355" + }, + "--border-subtle": { + "type": "color", + "value": "#222233" + }, + "--error": { + "type": "color", + "value": "#EF4444" + }, + "--font-body": { + "type": "string", + "value": "Geist" + }, + "--font-caption": { + "type": "string", + "value": "Funnel Sans" + }, + "--font-heading": { + "type": "string", + "value": "Inter" + }, + "--foreground-dim": { + "type": "color", + "value": "#6B6B80" + }, + "--foreground-inverse": { + "type": "color", + "value": "#FFFFFF" + }, + "--foreground-muted": { + "type": "color", + "value": "#A1A1A1" + }, + "--info": { + "type": "color", + "value": "#3B82F6" + }, + "--rounded-lg": { + "type": "number", + "value": 8 + }, + "--rounded-md": { + "type": "number", + "value": 6 + }, + "--rounded-sm": { + "type": "number", + "value": 4 + }, + "--success": { + "type": "color", + "value": "#22C55E" + }, + "--surface-card": { + "type": "color", + "value": "#111118" + }, + "--surface-card-hover": { + "type": "color", + "value": "#18182A" + }, + "--surface-elevated": { + "type": "color", + "value": "#161622" + }, + "--surface-inverse": { + "type": "color", + "value": "#0A0A0A" + }, + "--warning": { + "type": "color", + "value": "#F59E0B" + } + } +} \ No newline at end of file diff --git a/projectbrief.txt b/projectbrief.txt new file mode 100644 index 0000000..a4dd910 --- /dev/null +++ b/projectbrief.txt @@ -0,0 +1,10 @@ +So I have many tools and workspaces I work with every day and want to unify that into a structure I can use and work with every day. I am a developer that works on projects. These projects have workapces which are git repositories but sometimes use worktrees for those repositories so multiple Work can happen at the same time. I use AI. The AI tools have sessions which responds to one item of work and sometimes sessions gets split into tasks. Needless to say I need an overview I can come into in the morning and give my instructions to AI. Projects sometimes have relationships and they produce documentation which is usually markdown or a text document that gets added to the repository. Those need to be accessible in the UI to read easily. The AI in my workflows produces Design descisions implementation plans and gap anylisis verifying gaps in the implemenentation. The main purpose of this app is to coordinate and surface this work. Make it easy to schedule and mark items done by AI and see those progresses. On those steps etc, there are discussions comming in through mail sometimes that I need to attach to the thread which talks about units of work. or work items. Work items also have patches or merge/pull requests attached which are basically automatically generated patches generated by git or the version control in charge of the repository and the workspaces what are checked out work from those repositories. I loved previous approches that went into this directions but in my opinion no platform formed the basics of strategical overview I want. All of them focus on the deep in the weeds IDE views. Those can attach and show things of course but I want the strategical view with the AI discussion and session directly inside the talk. Results of the chat not just being put at the side but promotable to main work item discussions. AI can then use that thread so update description and specs this work item coordinates. Main goal is to get the AI to do things while take the context heavy but important items out of repositories and the filesystem and into the platform next to the items. Some work items follow workflows which give them structure and skills the AI will need to do them (AI Skills and plugins) All documentation and things going on are a library that can be used by AI via vector databases. Let's focus on a desktop App to give command of the work and only think of mobile as a quick response on the go UI, where people can talk into the phone and unblock some work with feedback. + +Use the following style: Dark Centered Platform +- headings: Inter +- body: Geist +- captions: Funnel Sans +- colorPalette: Violet Void +- roundness: Basic Roundness +- elevation: Sharp Depth +- decorativeImagery: Neon Streak Overlay