@jaimevalasek/aioson 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +6 -0
  2. package/docs/design-previews/aurora-command-ui-website.html +884 -0
  3. package/docs/design-previews/aurora-command-ui.html +682 -0
  4. package/docs/design-previews/bold-editorial-ui-website.html +658 -0
  5. package/docs/design-previews/bold-editorial-ui.html +717 -0
  6. package/docs/design-previews/clean-saas-ui-website.html +1202 -0
  7. package/docs/design-previews/clean-saas-ui.html +549 -0
  8. package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
  9. package/docs/design-previews/cognitive-core-ui.html +463 -0
  10. package/docs/design-previews/glassmorphism-ui-website.html +572 -0
  11. package/docs/design-previews/glassmorphism-ui.html +886 -0
  12. package/docs/design-previews/index.html +699 -0
  13. package/docs/design-previews/interface-design-website.html +1187 -0
  14. package/docs/design-previews/interface-design.html +513 -0
  15. package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
  16. package/docs/design-previews/neo-brutalist-ui.html +797 -0
  17. package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
  18. package/docs/design-previews/premium-command-center-ui.html +552 -0
  19. package/docs/design-previews/warm-craft-ui-website.html +684 -0
  20. package/docs/design-previews/warm-craft-ui.html +739 -0
  21. package/docs/en/cli-reference.md +20 -9
  22. package/docs/pt/README.md +7 -0
  23. package/docs/pt/agent-sharding.md +132 -0
  24. package/docs/pt/agentes.md +8 -2
  25. package/docs/pt/busca-de-contexto.md +129 -0
  26. package/docs/pt/cache-de-contexto.md +156 -0
  27. package/docs/pt/comandos-cli.md +28 -0
  28. package/docs/pt/design-hybrid-forge.md +107 -0
  29. package/docs/pt/inicio-rapido.md +54 -3
  30. package/docs/pt/inteligencia-adaptativa.md +324 -0
  31. package/docs/pt/monitor-de-contexto.md +104 -0
  32. package/docs/pt/recuperacao-de-sessao.md +125 -0
  33. package/docs/pt/sandbox.md +125 -0
  34. package/docs/pt/skills.md +98 -6
  35. package/package.json +1 -1
  36. package/src/agent-loader.js +280 -0
  37. package/src/cli.js +94 -0
  38. package/src/commands/agent-loader.js +85 -0
  39. package/src/commands/context-cache.js +90 -0
  40. package/src/commands/context-monitor.js +92 -0
  41. package/src/commands/context-search.js +66 -0
  42. package/src/commands/design-hybrid-options.js +385 -0
  43. package/src/commands/health.js +214 -0
  44. package/src/commands/init.js +54 -13
  45. package/src/commands/install.js +52 -13
  46. package/src/commands/learning-evolve.js +355 -0
  47. package/src/commands/live.js +34 -0
  48. package/src/commands/recovery.js +43 -0
  49. package/src/commands/sandbox.js +37 -0
  50. package/src/commands/setup-context.js +22 -2
  51. package/src/commands/setup.js +178 -0
  52. package/src/commands/skill.js +79 -32
  53. package/src/commands/tool-registry-cmd.js +232 -0
  54. package/src/commands/update.js +7 -0
  55. package/src/constants.js +9 -0
  56. package/src/context-cache.js +159 -0
  57. package/src/context-search.js +326 -0
  58. package/src/design-variation-catalog.js +503 -0
  59. package/src/i18n/messages/en.js +32 -2
  60. package/src/i18n/messages/es.js +30 -2
  61. package/src/i18n/messages/fr.js +30 -2
  62. package/src/i18n/messages/pt-BR.js +32 -2
  63. package/src/install-animation.js +260 -0
  64. package/src/install-profile.js +143 -0
  65. package/src/install-wizard.js +474 -0
  66. package/src/installer.js +38 -10
  67. package/src/parser.js +7 -1
  68. package/src/recovery-context-session.js +154 -0
  69. package/src/runtime-store.js +97 -1
  70. package/src/sandbox.js +177 -0
  71. package/src/tool-executor.js +94 -0
  72. package/src/updater.js +11 -3
  73. package/template/.aioson/agents/analyst.md +58 -3
  74. package/template/.aioson/agents/architect.md +38 -0
  75. package/template/.aioson/agents/design-hybrid-forge.md +127 -0
  76. package/template/.aioson/agents/dev.md +103 -0
  77. package/template/.aioson/agents/deyvin.md +57 -0
  78. package/template/.aioson/agents/pm.md +58 -0
  79. package/template/.aioson/agents/product.md +28 -0
  80. package/template/.aioson/agents/qa.md +79 -0
  81. package/template/.aioson/agents/setup.md +65 -3
  82. package/template/.aioson/agents/sheldon.md +107 -6
  83. package/template/.aioson/agents/tester.md +156 -0
  84. package/template/.aioson/config.md +15 -0
  85. package/template/.aioson/context/forensics/.gitkeep +0 -0
  86. package/template/.aioson/context/seeds/seed-example.md +27 -0
  87. package/template/.aioson/context/user-profile.md +42 -0
  88. package/template/.aioson/locales/en/agents/setup.md +33 -1
  89. package/template/.aioson/locales/es/agents/setup.md +33 -1
  90. package/template/.aioson/locales/fr/agents/setup.md +33 -1
  91. package/template/.aioson/locales/pt-BR/agents/setup.md +33 -1
  92. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
  93. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
  94. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
  95. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
  96. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
  97. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
  98. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
  99. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
  100. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
  101. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
  102. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
  103. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
  104. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
  105. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
  106. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
  107. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
  108. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
  109. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
  110. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
  111. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
  112. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
  113. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
  114. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
  115. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
  116. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
  117. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
  118. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
  119. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
  120. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
  121. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -0
  122. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
  123. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +144 -0
  124. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
  125. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
  126. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +291 -0
  127. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
  128. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
  129. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
  130. package/template/AGENTS.md +23 -1
  131. package/template/CLAUDE.md +1 -0
@@ -0,0 +1,513 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Interface Design — AIOSON Design Skill</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
10
+ <style>
11
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
12
+
13
+ :root {
14
+ --bg: #F5F5F5;
15
+ --surface: #FFFFFF;
16
+ --border: #E2E2E2;
17
+ --border-focus: #6366F1;
18
+ --heading: #0F172A;
19
+ --body: #334155;
20
+ --secondary: #475569;
21
+ --muted: #94A3B8;
22
+ --accent: #6366F1;
23
+ --accent-light: #EEF2FF;
24
+ --accent-text: #4338CA;
25
+ --danger: #EF4444;
26
+ --danger-light: #FEF2F2;
27
+ --success: #10B981;
28
+ --success-light: #ECFDF5;
29
+ --sidebar: 240px;
30
+ --topbar: 60px;
31
+ --shadow-card: 0 2px 6px rgba(0,0,0,0.05);
32
+ }
33
+
34
+ html, body { height: 100%; font-family: 'Inter', system-ui, sans-serif; background: var(--bg); color: var(--body); font-size: 14px; line-height: 1.6; }
35
+
36
+ /* AIOSON badge */
37
+ .aioson-badge {
38
+ position: fixed; top: 12px; right: 12px; z-index: 9999;
39
+ background: var(--accent); color: #fff;
40
+ font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600;
41
+ letter-spacing: 0.05em; padding: 4px 10px; border-radius: 9999px;
42
+ box-shadow: 0 2px 8px rgba(99,102,241,0.3);
43
+ pointer-events: none;
44
+ }
45
+
46
+ /* Shell */
47
+ .shell { display: flex; height: 100vh; overflow: hidden; }
48
+
49
+ /* Sidebar */
50
+ .sidebar {
51
+ width: var(--sidebar); flex-shrink: 0;
52
+ background: var(--surface); border-right: 1px solid var(--border);
53
+ display: flex; flex-direction: column;
54
+ padding-top: var(--topbar);
55
+ }
56
+
57
+ /* Logo area (absolute to overlap topbar border) */
58
+ .sidebar-top {
59
+ position: absolute; top: 0; left: 0; width: var(--sidebar);
60
+ height: var(--topbar);
61
+ background: var(--surface); border-right: 1px solid var(--border);
62
+ border-bottom: 1px solid var(--border);
63
+ display: flex; align-items: center; padding: 0 20px; gap: 10px;
64
+ }
65
+ .logo-block {
66
+ width: 30px; height: 30px; border-radius: 8px;
67
+ background: var(--accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0;
68
+ }
69
+ .logo-block svg { width: 15px; height: 15px; }
70
+ .logo-name { font-size: 15px; font-weight: 700; color: var(--heading); letter-spacing: -0.02em; }
71
+
72
+ /* Sidebar nav */
73
+ .sidebar-nav { padding: 16px 0; flex: 1; overflow-y: auto; }
74
+ .nav-group { margin-bottom: 24px; }
75
+ .nav-group-label {
76
+ padding: 0 20px; margin-bottom: 6px;
77
+ font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em;
78
+ color: var(--muted); text-transform: uppercase;
79
+ }
80
+ .nav-item {
81
+ display: flex; align-items: center; gap: 10px;
82
+ padding: 0 20px; height: 38px; cursor: pointer;
83
+ font-size: 13.5px; font-weight: 500; color: var(--secondary);
84
+ border-radius: 0; position: relative;
85
+ transition: background 0.12s, color 0.12s;
86
+ }
87
+ .nav-item:hover { background: var(--bg); color: var(--heading); }
88
+ .nav-item.active {
89
+ color: var(--accent); background: var(--accent-light);
90
+ font-weight: 600;
91
+ }
92
+ .nav-item.active::before {
93
+ content: ''; position: absolute; left: 0; top: 4px; bottom: 4px;
94
+ width: 3px; border-radius: 0 3px 3px 0; background: var(--accent);
95
+ }
96
+ .nav-icon {
97
+ width: 18px; height: 18px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
98
+ }
99
+ .nav-icon-box { width: 14px; height: 14px; border-radius: 3px; background: currentColor; opacity: 0.3; }
100
+ .nav-item.active .nav-icon-box { opacity: 0.65; }
101
+ .sidebar-footer {
102
+ padding: 12px 16px; border-top: 1px solid var(--border);
103
+ }
104
+ .user-block {
105
+ display: flex; align-items: center; gap: 10px;
106
+ padding: 10px; border-radius: 8px; cursor: pointer;
107
+ }
108
+ .user-block:hover { background: var(--bg); }
109
+ .user-av {
110
+ width: 32px; height: 32px; border-radius: 9999px;
111
+ background: var(--accent-light); border: 2px solid var(--border);
112
+ display: flex; align-items: center; justify-content: center;
113
+ font-size: 12px; font-weight: 700; color: var(--accent); flex-shrink: 0;
114
+ }
115
+ .user-name { font-size: 13px; font-weight: 600; color: var(--heading); }
116
+ .user-email { font-size: 11.5px; color: var(--muted); }
117
+
118
+ /* Main */
119
+ .main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
120
+
121
+ /* Topbar */
122
+ .topbar {
123
+ height: var(--topbar); flex-shrink: 0;
124
+ background: var(--surface); border-bottom: 1px solid var(--border);
125
+ display: flex; align-items: center; justify-content: space-between;
126
+ padding: 0 32px;
127
+ }
128
+ .page-title { font-size: 16px; font-weight: 700; color: var(--heading); letter-spacing: -0.02em; }
129
+ .page-title-sub { font-size: 12px; color: var(--muted); font-weight: 400; margin-top: 1px; }
130
+ .topbar-right { display: flex; align-items: center; gap: 10px; }
131
+ .btn {
132
+ display: inline-flex; align-items: center; gap: 7px;
133
+ height: 36px; padding: 0 16px; border-radius: 8px; border: none;
134
+ font-family: 'Inter', sans-serif; font-size: 13.5px; font-weight: 500;
135
+ cursor: pointer; transition: opacity 0.12s, background 0.12s;
136
+ }
137
+ .btn-primary { background: var(--accent); color: #fff; }
138
+ .btn-primary:hover { opacity: 0.9; }
139
+ .btn-ghost { background: none; color: var(--secondary); border: 1px solid var(--border); }
140
+ .btn-ghost:hover { background: var(--bg); }
141
+ .btn-danger { background: none; color: var(--danger); border: 1px solid #FCA5A5; }
142
+ .btn-danger:hover { background: var(--danger-light); }
143
+
144
+ /* Page content */
145
+ .page { flex: 1; overflow-y: auto; }
146
+
147
+ /* Settings layout */
148
+ .settings-layout { display: flex; min-height: 100%; }
149
+ .settings-nav { width: 200px; flex-shrink: 0; padding: 28px 0; border-right: 1px solid var(--border); }
150
+ .settings-nav-item {
151
+ display: flex; align-items: center; gap: 8px;
152
+ padding: 0 20px; height: 36px; cursor: pointer;
153
+ font-size: 13px; font-weight: 500; color: var(--secondary);
154
+ border-radius: 0; border-left: 2px solid transparent;
155
+ transition: background 0.1s, color 0.1s;
156
+ }
157
+ .settings-nav-item:hover { background: var(--bg); color: var(--heading); }
158
+ .settings-nav-item.active {
159
+ border-left-color: var(--accent);
160
+ background: var(--accent-light); color: var(--accent-text);
161
+ }
162
+ .settings-nav-label {
163
+ padding: 0 20px; margin-top: 20px; margin-bottom: 6px;
164
+ font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em;
165
+ color: var(--muted); text-transform: uppercase;
166
+ }
167
+ .settings-nav-label:first-child { margin-top: 0; }
168
+
169
+ /* Settings content */
170
+ .settings-content { flex: 1; padding: 32px 40px; max-width: 680px; }
171
+
172
+ /* Form sections */
173
+ .form-section {
174
+ background: var(--surface); border: 1px solid var(--border);
175
+ border-radius: 10px; box-shadow: var(--shadow-card); margin-bottom: 24px;
176
+ overflow: hidden;
177
+ }
178
+ .form-section-header {
179
+ padding: 20px 24px 16px;
180
+ border-bottom: 1px solid var(--border);
181
+ }
182
+ .form-section-title { font-size: 15px; font-weight: 600; color: var(--heading); letter-spacing: -0.01em; }
183
+ .form-section-desc { font-size: 13px; color: var(--muted); margin-top: 3px; }
184
+ .form-body { padding: 20px 24px; display: flex; flex-direction: column; gap: 18px; }
185
+ .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
186
+ .form-field { display: flex; flex-direction: column; gap: 6px; }
187
+ .form-field.full { grid-column: 1 / -1; }
188
+ .field-label { font-size: 13px; font-weight: 600; color: var(--heading); }
189
+ .field-hint { font-size: 11.5px; color: var(--muted); }
190
+ .field-input {
191
+ height: 38px; padding: 0 12px;
192
+ border: 1px solid var(--border); border-radius: 8px;
193
+ background: var(--surface);
194
+ font-family: 'Inter', sans-serif; font-size: 13.5px; color: var(--body);
195
+ outline: none; transition: border-color 0.15s, box-shadow 0.15s;
196
+ width: 100%;
197
+ }
198
+ .field-input:focus { border-color: var(--border-focus); box-shadow: 0 0 0 3px rgba(99,102,241,0.1); }
199
+ .field-input::placeholder { color: var(--muted); }
200
+ .field-input.danger { border-color: var(--danger); }
201
+ .field-textarea {
202
+ padding: 10px 12px; height: 80px; resize: none;
203
+ border: 1px solid var(--border); border-radius: 8px;
204
+ background: var(--surface);
205
+ font-family: 'Inter', sans-serif; font-size: 13.5px; color: var(--body);
206
+ outline: none; transition: border-color 0.15s, box-shadow 0.15s;
207
+ width: 100%; line-height: 1.5;
208
+ }
209
+ .field-textarea:focus { border-color: var(--border-focus); box-shadow: 0 0 0 3px rgba(99,102,241,0.1); }
210
+ .field-select {
211
+ height: 38px; padding: 0 12px;
212
+ border: 1px solid var(--border); border-radius: 8px;
213
+ background: var(--surface);
214
+ font-family: 'Inter', sans-serif; font-size: 13.5px; color: var(--body);
215
+ outline: none; cursor: pointer; appearance: none; width: 100%;
216
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394A3B8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
217
+ background-repeat: no-repeat; background-position: right 12px center;
218
+ }
219
+ .form-footer { padding: 14px 24px; border-top: 1px solid var(--border); background: var(--bg); display: flex; align-items: center; justify-content: space-between; }
220
+ .save-row { display: flex; align-items: center; gap: 10px; }
221
+ .save-hint { font-size: 12px; color: var(--muted); }
222
+
223
+ /* Toggle */
224
+ .toggle-row {
225
+ display: flex; align-items: center; justify-content: space-between;
226
+ padding: 14px 24px; border-bottom: 1px solid var(--border);
227
+ }
228
+ .toggle-row:last-child { border-bottom: none; }
229
+ .toggle-info { flex: 1; }
230
+ .toggle-title { font-size: 13.5px; font-weight: 600; color: var(--heading); }
231
+ .toggle-desc { font-size: 12px; color: var(--muted); margin-top: 2px; }
232
+ .toggle {
233
+ width: 40px; height: 22px; border-radius: 9999px;
234
+ border: none; cursor: pointer; flex-shrink: 0; position: relative;
235
+ transition: background 0.2s;
236
+ }
237
+ .toggle.on { background: var(--accent); }
238
+ .toggle.off { background: var(--border); }
239
+ .toggle::after {
240
+ content: ''; position: absolute; top: 3px;
241
+ width: 16px; height: 16px; border-radius: 9999px; background: #fff;
242
+ box-shadow: 0 1px 3px rgba(0,0,0,0.15); transition: left 0.2s;
243
+ }
244
+ .toggle.on::after { left: 21px; }
245
+ .toggle.off::after { left: 3px; }
246
+
247
+ /* Danger zone */
248
+ .danger-section {
249
+ border: 1px solid #FCA5A5; border-radius: 10px;
250
+ background: var(--surface); overflow: hidden; margin-bottom: 24px;
251
+ }
252
+ .danger-header { padding: 16px 24px; border-bottom: 1px solid #FCA5A5; background: var(--danger-light); }
253
+ .danger-header-title { font-size: 13.5px; font-weight: 700; color: var(--danger); }
254
+ .danger-header-desc { font-size: 12.5px; color: #B91C1C; margin-top: 2px; }
255
+ .danger-row {
256
+ display: flex; align-items: center; justify-content: space-between;
257
+ padding: 14px 24px; border-bottom: 1px solid #FEE2E2;
258
+ }
259
+ .danger-row:last-child { border-bottom: none; }
260
+ .danger-row-title { font-size: 13.5px; font-weight: 600; color: var(--heading); }
261
+ .danger-row-desc { font-size: 12px; color: var(--muted); margin-top: 2px; }
262
+ </style>
263
+ </head>
264
+ <body>
265
+
266
+ <div class="aioson-badge">AIOSON Design Skill</div>
267
+
268
+ <div class="shell">
269
+
270
+ <!-- Sidebar top (logo) -->
271
+ <div class="sidebar-top">
272
+ <div class="logo-block">
273
+ <svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
274
+ <rect x="2" y="2" width="4.5" height="4.5" rx="1" fill="white"/>
275
+ <rect x="8.5" y="2" width="4.5" height="4.5" rx="1" fill="white" opacity="0.6"/>
276
+ <rect x="2" y="8.5" width="4.5" height="4.5" rx="1" fill="white" opacity="0.6"/>
277
+ <rect x="8.5" y="8.5" width="4.5" height="4.5" rx="1" fill="white"/>
278
+ </svg>
279
+ </div>
280
+ <span class="logo-name">Workspace</span>
281
+ </div>
282
+
283
+ <!-- Sidebar -->
284
+ <aside class="sidebar">
285
+ <nav class="sidebar-nav">
286
+ <div class="nav-group">
287
+ <div class="nav-group-label">Main</div>
288
+ <div class="nav-item">
289
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
290
+ Dashboard
291
+ </div>
292
+ <div class="nav-item">
293
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
294
+ Projects
295
+ </div>
296
+ <div class="nav-item">
297
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
298
+ Team
299
+ </div>
300
+ </div>
301
+ <div class="nav-group">
302
+ <div class="nav-group-label">Account</div>
303
+ <div class="nav-item active">
304
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
305
+ Settings
306
+ </div>
307
+ <div class="nav-item">
308
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
309
+ Billing
310
+ </div>
311
+ <div class="nav-item">
312
+ <div class="nav-icon"><div class="nav-icon-box"></div></div>
313
+ Integrations
314
+ </div>
315
+ </div>
316
+ </nav>
317
+ <div class="sidebar-footer">
318
+ <div class="user-block">
319
+ <div class="user-av">JD</div>
320
+ <div>
321
+ <div class="user-name">Jordan Davies</div>
322
+ <div class="user-email">jordan@workspace.io</div>
323
+ </div>
324
+ </div>
325
+ </div>
326
+ </aside>
327
+
328
+ <!-- Main -->
329
+ <div class="main">
330
+
331
+ <!-- Topbar -->
332
+ <header class="topbar">
333
+ <div>
334
+ <div class="page-title">Settings</div>
335
+ <div class="page-title-sub">Interface Design — AIOSON Design Skill Preview</div>
336
+ </div>
337
+ <div class="topbar-right">
338
+ <button class="btn btn-ghost">Discard</button>
339
+ <button class="btn btn-primary">Save Changes</button>
340
+ </div>
341
+ </header>
342
+
343
+ <!-- Page -->
344
+ <div class="page">
345
+ <div class="settings-layout">
346
+
347
+ <!-- Settings nav -->
348
+ <div class="settings-nav">
349
+ <div class="settings-nav-label">General</div>
350
+ <div class="settings-nav-item active">Profile</div>
351
+ <div class="settings-nav-item">Workspace</div>
352
+ <div class="settings-nav-item">Appearance</div>
353
+ <div class="settings-nav-label">Access</div>
354
+ <div class="settings-nav-item">Security</div>
355
+ <div class="settings-nav-item">Notifications</div>
356
+ <div class="settings-nav-item">API Keys</div>
357
+ <div class="settings-nav-label">Billing</div>
358
+ <div class="settings-nav-item">Plan</div>
359
+ <div class="settings-nav-item">Invoices</div>
360
+ </div>
361
+
362
+ <!-- Settings content -->
363
+ <div class="settings-content">
364
+
365
+ <!-- Profile section -->
366
+ <div class="form-section">
367
+ <div class="form-section-header">
368
+ <div class="form-section-title">Profile Information</div>
369
+ <div class="form-section-desc">Update your personal details and public profile.</div>
370
+ </div>
371
+ <div class="form-body">
372
+ <div class="form-row">
373
+ <div class="form-field">
374
+ <label class="field-label">First Name</label>
375
+ <input class="field-input" type="text" value="Jordan" />
376
+ </div>
377
+ <div class="form-field">
378
+ <label class="field-label">Last Name</label>
379
+ <input class="field-input" type="text" value="Davies" />
380
+ </div>
381
+ </div>
382
+ <div class="form-field full">
383
+ <label class="field-label">Email Address</label>
384
+ <input class="field-input" type="email" value="jordan@workspace.io" />
385
+ <span class="field-hint">Used for login and notifications. Changes require email verification.</span>
386
+ </div>
387
+ <div class="form-field full">
388
+ <label class="field-label">Bio</label>
389
+ <textarea class="field-textarea" placeholder="A short description about yourself...">Product designer and engineer. Building tools that make teams move faster.</textarea>
390
+ </div>
391
+ </div>
392
+ <div class="form-footer">
393
+ <span class="save-hint">Last saved 2 hours ago</span>
394
+ <div class="save-row">
395
+ <button class="btn btn-ghost" style="height:32px;font-size:13px;">Cancel</button>
396
+ <button class="btn btn-primary" style="height:32px;font-size:13px;">Save Profile</button>
397
+ </div>
398
+ </div>
399
+ </div>
400
+
401
+ <!-- Workspace section -->
402
+ <div class="form-section">
403
+ <div class="form-section-header">
404
+ <div class="form-section-title">Workspace</div>
405
+ <div class="form-section-desc">Manage your workspace name, timezone, and language settings.</div>
406
+ </div>
407
+ <div class="form-body">
408
+ <div class="form-row">
409
+ <div class="form-field">
410
+ <label class="field-label">Workspace Name</label>
411
+ <input class="field-input" type="text" value="Acme Corp" />
412
+ </div>
413
+ <div class="form-field">
414
+ <label class="field-label">Workspace URL</label>
415
+ <input class="field-input" type="text" value="acme-corp" />
416
+ <span class="field-hint">workspace.io/acme-corp</span>
417
+ </div>
418
+ </div>
419
+ <div class="form-row">
420
+ <div class="form-field">
421
+ <label class="field-label">Timezone</label>
422
+ <select class="field-select">
423
+ <option selected>UTC+00:00 — London</option>
424
+ <option>UTC-05:00 — New York</option>
425
+ <option>UTC-08:00 — Los Angeles</option>
426
+ <option>UTC+01:00 — Berlin</option>
427
+ </select>
428
+ </div>
429
+ <div class="form-field">
430
+ <label class="field-label">Language</label>
431
+ <select class="field-select">
432
+ <option selected>English (US)</option>
433
+ <option>English (UK)</option>
434
+ <option>Português (BR)</option>
435
+ <option>Español</option>
436
+ </select>
437
+ </div>
438
+ </div>
439
+ </div>
440
+ <div class="form-footer">
441
+ <span class="save-hint">Affects all members in this workspace</span>
442
+ <div class="save-row">
443
+ <button class="btn btn-primary" style="height:32px;font-size:13px;">Save Workspace</button>
444
+ </div>
445
+ </div>
446
+ </div>
447
+
448
+ <!-- Notifications section -->
449
+ <div class="form-section">
450
+ <div class="form-section-header">
451
+ <div class="form-section-title">Notifications</div>
452
+ <div class="form-section-desc">Choose what you want to be notified about.</div>
453
+ </div>
454
+ <div class="toggle-row">
455
+ <div class="toggle-info">
456
+ <div class="toggle-title">Email Digest</div>
457
+ <div class="toggle-desc">Receive a weekly summary of workspace activity.</div>
458
+ </div>
459
+ <button class="toggle on"></button>
460
+ </div>
461
+ <div class="toggle-row">
462
+ <div class="toggle-info">
463
+ <div class="toggle-title">Task Assignments</div>
464
+ <div class="toggle-desc">Get notified when a task is assigned to you.</div>
465
+ </div>
466
+ <button class="toggle on"></button>
467
+ </div>
468
+ <div class="toggle-row">
469
+ <div class="toggle-info">
470
+ <div class="toggle-title">Project Updates</div>
471
+ <div class="toggle-desc">Notify when project status or milestones change.</div>
472
+ </div>
473
+ <button class="toggle off"></button>
474
+ </div>
475
+ <div class="toggle-row">
476
+ <div class="toggle-info">
477
+ <div class="toggle-title">Marketing & Announcements</div>
478
+ <div class="toggle-desc">Product news, feature releases, and tips.</div>
479
+ </div>
480
+ <button class="toggle off"></button>
481
+ </div>
482
+ </div>
483
+
484
+ <!-- Danger zone -->
485
+ <div class="danger-section">
486
+ <div class="danger-header">
487
+ <div class="danger-header-title">Danger Zone</div>
488
+ <div class="danger-header-desc">These actions are irreversible. Please proceed with care.</div>
489
+ </div>
490
+ <div class="danger-row">
491
+ <div>
492
+ <div class="danger-row-title">Transfer Workspace</div>
493
+ <div class="danger-row-desc">Transfer ownership to another member of this workspace.</div>
494
+ </div>
495
+ <button class="btn btn-danger" style="height:32px;font-size:12.5px;white-space:nowrap;flex-shrink:0;margin-left:24px;">Transfer</button>
496
+ </div>
497
+ <div class="danger-row">
498
+ <div>
499
+ <div class="danger-row-title">Delete Workspace</div>
500
+ <div class="danger-row-desc">Permanently delete this workspace and all its data. No recovery.</div>
501
+ </div>
502
+ <button class="btn btn-danger" style="height:32px;font-size:12.5px;white-space:nowrap;flex-shrink:0;margin-left:24px;">Delete</button>
503
+ </div>
504
+ </div>
505
+
506
+ </div>
507
+ </div>
508
+ </div>
509
+ </div>
510
+ </div>
511
+
512
+ </body>
513
+ </html>