-
Notifications
You must be signed in to change notification settings - Fork 154
Expand file tree
/
Copy pathcloud-flow-plan.html
More file actions
298 lines (269 loc) · 45.6 KB
/
Copy pathcloud-flow-plan.html
File metadata and controls
298 lines (269 loc) · 45.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>
<title>__PLAN_TITLE__ - __SITE_NAME__</title>
<style>
:root{
--bg:#faf9f8; --surface:#ffffff; --surface2:#f3f2f1; --border:#e1dfdd; --border-light:#c8c6c4;
--text:#323130; --text-dim:#605e5c; --text-bright:#201f1e; --accent:#0078d4; --accent-bg:#0078d40a; --accent-border:#0078d425;
--pass:#107c10; --pass-bg:#107c100a; --pass-border:#107c1020; --high:#ca5010; --high-bg:#ca50100a; --high-border:#ca501020;
--purple:#8764b8; --purple-bg:#8764b80a; --purple-border:#8764b820;
--mono:'Cascadia Code','Consolas',monospace; --sans:'Segoe UI','Segoe UI Web (West European)',-apple-system,system-ui,sans-serif;
--radius:8px; --radius-sm:4px; --shadow-4:0 1.6px 3.6px 0 rgba(0,0,0,0.132),0 0.3px 0.9px 0 rgba(0,0,0,0.108);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;}
.topbar{z-index:100;background:var(--surface);box-shadow:var(--shadow-4);padding:14px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.topbar-left{display:flex;align-items:center;gap:14px;}
.logo{width:36px;height:36px;object-fit:contain;display:block;flex-shrink:0;}
.topbar-title{font-size:16px;font-weight:700;color:var(--text-bright);}
.topbar-sub{font-size:11px;color:var(--text-dim);margin-top:1px;}
.layout{display:flex;min-height:calc(100vh - 65px);}
.sidebar{width:200px;background:var(--surface);border-right:1px solid var(--border);padding:20px 0;flex-shrink:0;}
.nav-btn{display:flex;align-items:center;gap:10px;width:100%;padding:11px 22px;background:none;border:none;border-left:2px solid transparent;color:var(--text-dim);font-size:13px;font-weight:500;cursor:pointer;font-family:var(--sans);text-align:left;transition:all 0.15s;}
.nav-btn:hover{color:var(--text);background:var(--surface2);}
.nav-btn.active{color:var(--accent);font-weight:600;border-left-color:var(--accent);background:var(--accent-bg);}
.nav-btn .nav-icon{font-size:15px;opacity:0.5;width:18px;text-align:center;}
.nav-btn.active .nav-icon{opacity:0.9;}
.content{flex:1;padding:32px 40px 72px;max-width:960px;}
.section{display:none;}
.section.active{display:block;animation:fadeIn 0.3s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
h2{font-size:21px;font-weight:800;color:var(--text-bright);letter-spacing:-0.3px;margin-bottom:5px;}
.section-desc{font-size:13px;color:var(--text-dim);margin-bottom:20px;}
.section-desc code{color:var(--accent);background:var(--accent-bg);padding:1px 6px;border-radius:3px;font-family:var(--mono);font-size:12px;}
h3{font-size:15px;font-weight:700;color:var(--text-bright);margin-top:24px;margin-bottom:12px;}
.summary-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:22px;font-size:14px;color:var(--text);line-height:1.75;}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-4);}
.stat-card::after{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:2px;border-radius:0 0 2px 2px;}
.stat-card:nth-child(1)::after{background:var(--accent);}
.stat-card:nth-child(2)::after{background:var(--pass);}
.stat-card:nth-child(3)::after{background:var(--purple);}
.stat-num{font-size:30px;font-weight:800;font-family:var(--mono);line-height:1;}
.stat-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin-top:6px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:10px;transition:box-shadow 0.2s,border-color 0.2s;}
.card:hover{box-shadow:var(--shadow-4);}
.principle{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);}
.principle:last-child{border-bottom:none;}
.principle-icon{font-size:22px;flex-shrink:0;margin-top:2px;}
.principle-title{font-size:13px;font-weight:700;color:var(--text-bright);margin-bottom:3px;}
.principle-desc{font-size:13px;color:var(--text-dim);line-height:1.65;}
.field-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;}
.role-chip,.flow-chip{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600;display:inline-block;}
.role-chip{border:1px solid var(--border);}
.flow-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text);}
.state-chip{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;}
.state-active{background:var(--pass-bg);color:var(--pass);border:1px solid var(--pass-border);}
.state-draft{background:var(--high-bg);color:var(--high);border:1px solid var(--high-border);}
.new-badge,.existing-badge,.builtin-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;margin-left:8px;text-transform:uppercase;letter-spacing:0.5px;}
.new-badge{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);}
.existing-badge{background:var(--pass-bg);color:var(--pass);border:1px solid var(--pass-border);}
.builtin-badge{background:var(--surface2);color:var(--text-dim);border:1px solid var(--border);}
.mono{font-family:var(--mono);}
.reason-box{font-size:12px;color:var(--text);background:var(--surface2);padding:10px 14px;border-radius:var(--radius-sm);border-left:2px solid var(--accent);line-height:1.8;}
.fn-list{display:grid;gap:10px;margin-top:12px;}
.fn-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;}
.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.warn-banner{background:var(--high-bg);border:1px solid var(--high-border);border-radius:var(--radius-sm);padding:10px 14px;font-size:12px;color:var(--high);margin-top:8px;line-height:1.65;}
@media(max-width:768px){
.sidebar{display:none;}
.content{padding:20px 16px 72px;}
.stats-grid,.meta-grid{grid-template-columns:1fr;}
}
</style>
</head>
<body>
<div id="mainApp">
<div class="topbar">
<div class="topbar-left">
<img class="logo" src="data:image/png;base64,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" alt="Power Pages" />
<div>
<div class="topbar-title">__PLAN_TITLE__</div>
<div class="topbar-sub">__SITE_NAME__</div>
</div>
</div>
<div class="topbar-sub" id="topbarCount"></div>
</div>
<div class="layout">
<div class="sidebar">
<button class="nav-btn active" data-tab="overview"><span class="nav-icon">◉</span> Overview</button>
<button class="nav-btn" data-tab="roles"><span class="nav-icon">◈</span> Web Roles</button>
<button class="nav-btn" data-tab="flows"><span class="nav-icon">►</span> Cloud Flows</button>
</div>
<div class="content">
<div class="section active" id="tab-overview">
<h2>Plan Overview</h2>
<p class="section-desc">Cloud flow integration plan for <code>__SITE_NAME__</code></p>
<div class="summary-box" id="summaryBox">__SUMMARY__</div>
<div class="stats-grid">
<div class="stat-card"><div class="stat-num" style="color:var(--accent)" id="statTotal">0</div><div class="stat-label">Flows to Add</div></div>
<div class="stat-card"><div class="stat-num" style="color:var(--pass)" id="statRoles">0</div><div class="stat-label">Web Roles Involved</div></div>
<div class="stat-card"><div class="stat-num" style="color:var(--purple)" id="statNew">0</div><div class="stat-label">New Roles Proposed</div></div>
</div>
<div class="card">
<div class="field-label">Flows Being Added</div>
<div class="chip-row" id="flowSummary"></div>
</div>
<h3>Design Rationale</h3>
<div id="rationaleContainer"></div>
</div>
<div class="section" id="tab-roles">
<h2>Web Roles</h2>
<p class="section-desc" id="rolesDesc"></p>
<div id="rolesContainer"></div>
</div>
<div class="section" id="tab-flows">
<h2>Cloud Flows</h2>
<p class="section-desc" id="flowsDesc"></p>
<div id="flowsContainer"></div>
</div>
</div>
</div>
</div>
<script>
const WEB_ROLES = __WEB_ROLES_DATA__;
const CLOUD_FLOWS = __CLOUD_FLOWS_DATA__;
const RATIONALE = __RATIONALE_DATA__;
function esc(str) { const d = document.createElement('div'); d.textContent = str; return d.innerHTML; }
document.querySelectorAll('.nav-btn').forEach(btn => {
btn.addEventListener('click', () => {
document.querySelectorAll('.nav-btn').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
document.querySelectorAll('.section').forEach(s => s.classList.remove('active'));
document.getElementById('tab-' + btn.dataset.tab).classList.add('active');
});
});
function getRole(id) {
return WEB_ROLES.find(r => r.id === id) || { id, name: id, desc: '', builtin: false, isNew: false, color: '#8890a4' };
}
function getAssignedRoleDetails(flow) {
return (flow.webRoles || []).map(entry => {
if (typeof entry === 'string') return { id: entry, reasoning: '' };
return { id: entry.id, reasoning: entry.reasoning || '' };
});
}
function stateChip(state) {
const cls = state === 'Active' ? 'state-active' : 'state-draft';
return `<span class="state-chip ${cls}">${state}</span>`;
}
// Topbar
document.getElementById('topbarCount').textContent =
CLOUD_FLOWS.length + ' flow' + (CLOUD_FLOWS.length !== 1 ? 's' : '');
// Stats
const newRolesCount = WEB_ROLES.filter(r => r.isNew).length;
document.getElementById('statTotal').textContent = CLOUD_FLOWS.length;
document.getElementById('statRoles').textContent = WEB_ROLES.length;
document.getElementById('statNew').textContent = newRolesCount;
// Flow summary chips
const flowSummaryEl = document.getElementById('flowSummary');
flowSummaryEl.innerHTML = CLOUD_FLOWS.length
? CLOUD_FLOWS.map(f => `<span class="flow-chip">${f.displayName || f.name}</span>`).join('')
: '<span class="flow-chip">No flows planned</span>';
// Rationale
const rationaleContainer = document.getElementById('rationaleContainer');
rationaleContainer.innerHTML = RATIONALE.map(r => `
<div class="principle">
<div class="principle-icon">${r.icon}</div>
<div>
<div class="principle-title">${r.title}</div>
<div class="principle-desc">${r.desc}</div>
</div>
</div>
`).join('');
// Roles tab
const proposedRoles = WEB_ROLES.filter(r => r.isNew).length;
const builtinRoles = WEB_ROLES.filter(r => r.builtin).length;
const existingRoles = WEB_ROLES.filter(r => !r.builtin && !r.isNew).length;
const roleParts = [];
if (builtinRoles > 0) roleParts.push(builtinRoles + ' built-in');
if (existingRoles > 0) roleParts.push(existingRoles + ' existing');
if (proposedRoles > 0) roleParts.push(proposedRoles + ' proposed');
document.getElementById('rolesDesc').textContent =
WEB_ROLES.length + ' role' + (WEB_ROLES.length !== 1 ? 's' : '') +
(roleParts.length ? ' — ' + roleParts.join(', ') : '') + '.';
const rolesContainer = document.getElementById('rolesContainer');
rolesContainer.innerHTML = WEB_ROLES.map(role => {
const assigned = CLOUD_FLOWS.filter(f => getAssignedRoleDetails(f).some(e => e.id === role.id));
const assignedMarkup = assigned.length
? assigned.map(f => `<span class="flow-chip">${f.displayName || f.name}</span>`).join('')
: '<span style="font-size:11px;color:var(--text-dim);font-style:italic;">Not assigned to any flow</span>';
const anonWarning = role.isAnonymous
? `<div class="warn-banner">⚠ This is the Anonymous Users role. Any unauthenticated visitor to the site will be able to trigger flows assigned to this role. Confirm this is intentional before proceeding.</div>`
: '';
return `<div class="card"${role.isNew ? ' style="background:var(--accent-bg);border-color:var(--accent-border);"' : ''}>
<div style="display:flex;justify-content:space-between;align-items:flex-start;gap:12px;">
<div style="display:flex;align-items:flex-start;gap:10px;">
<div style="width:10px;height:10px;border-radius:50%;background:${role.color || '#8890a4'};flex-shrink:0;margin-top:6px;"></div>
<div>
<span style="font-size:14px;font-weight:700;color:var(--text-bright)">${role.name}</span>
${role.builtin ? '<span class="builtin-badge">BUILT-IN</span>' : role.isNew ? '<span class="new-badge">PROPOSED</span>' : '<span class="existing-badge">EXISTING</span>'}
<div style="font-size:12px;color:var(--text-dim);margin-top:2px;">${role.desc || ''}</div>
</div>
</div>
</div>
${anonWarning}
<div style="margin-top:12px;">
<div class="field-label">Assigned to Flows</div>
<div class="chip-row">${assignedMarkup}</div>
</div>
</div>`;
}).join('');
// Flows tab
const flowParts = [];
flowParts.push(CLOUD_FLOWS.length + ' to add');
document.getElementById('flowsDesc').textContent =
CLOUD_FLOWS.length + ' cloud flow' + (CLOUD_FLOWS.length !== 1 ? 's' : '') +
(flowParts.length ? ' — ' + flowParts.join(', ') : '') + '.';
const flowsContainer = document.getElementById('flowsContainer');
flowsContainer.innerHTML = CLOUD_FLOWS.map(flow => {
const roles = getAssignedRoleDetails(flow).map(entry => ({ ...getRole(entry.id), reasoning: entry.reasoning }));
const roleMarkup = roles.length
? roles.map(role => `
<div class="fn-item">
<div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;">
<div style="font-size:13px;font-weight:700;color:var(--text-bright);">${role.name}</div>
${role.builtin ? '<span class="builtin-badge">Built-in</span>' : role.isNew ? '<span class="new-badge">Proposed</span>' : '<span class="existing-badge">Existing</span>'}
</div>
<div style="font-size:12px;color:var(--text-dim);margin-top:8px;">${role.reasoning || 'No reasoning provided.'}</div>
${role.isAnonymous ? '<div class="warn-banner" style="margin-top:8px;">⚠ Anonymous Users role — any unauthenticated visitor can trigger this flow.</div>' : ''}
</div>
`).join('')
: '<div class="fn-item" style="color:var(--high);">⚠ No web roles assigned — this flow will not be accessible by any user.</div>';
return `<div class="card" style="background:var(--accent-bg);border-color:var(--accent-border);">
<div style="display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;">
<div>
<span style="font-size:14px;font-weight:700;color:var(--text-bright)">${flow.displayName || flow.name}</span>
${stateChip(flow.state || 'Active')}
<div style="font-size:12px;color:var(--text-dim);margin-top:4px;"><span style="text-transform:uppercase;letter-spacing:0.4px;font-size:10px;font-weight:600;">Process ID</span> <span class="mono">${flow.flowId || ''}</span></div>
${flow.description ? `<div style="font-size:12px;color:var(--text-dim);margin-top:2px;">${flow.description}</div>` : ''}
</div>
</div>
<div class="meta-grid">
<div>
<div class="field-label">Scenario</div>
<div style="font-size:13px;">${flow.scenario || 'Not specified'}</div>
</div>
<div>
<div class="field-label">Flow State</div>
<div>${stateChip(flow.state || 'Active')}</div>
</div>
</div>
<div style="margin-top:12px;">
<div class="field-label">Rationale</div>
<div class="reason-box">${flow.rationale || 'No rationale provided.'}</div>
</div>
<div style="margin-top:12px;">
<div class="field-label">Web Roles Assigned and Why</div>
<div class="fn-list">${roleMarkup}</div>
</div>
</div>`;
}).join('');
</script>
<footer style="position:fixed;bottom:0;left:0;right:0;text-align:center;padding:10px;font-size:12px;color:#605e5c;border-top:1px solid #c8c6c4;background:#ffffff;z-index:100;">AI-generated content may be incorrect</footer>
</body>
</html>