@runfusion/fusion 0.26.0 → 0.27.1

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 (174) hide show
  1. package/dist/bin.js +12847 -2514
  2. package/dist/client/assets/AgentDetailView-B7QRcHJH.css +1 -0
  3. package/dist/client/assets/AgentDetailView-shgiiUb4.js +18 -0
  4. package/dist/client/assets/{AgentsView-CV3vm7Qk.css → AgentsView-B3ADnF0D.css} +1 -1
  5. package/dist/client/assets/{AgentsView-D6Zi5zfP.js → AgentsView-CpwqOVDz.js} +12 -7
  6. package/dist/client/assets/ChatView-DyRBOIKL.js +1 -0
  7. package/dist/client/assets/{DevServerView--_WBvIDQ.js → DevServerView-Cdelj9-m.js} +1 -1
  8. package/dist/client/assets/{DirectoryPicker-xedtR-Rd.js → DirectoryPicker-C0kmRv0u.js} +1 -1
  9. package/dist/client/assets/{DocumentsView-Bg2oaZks.js → DocumentsView-B94U9ijs.js} +1 -1
  10. package/dist/client/assets/{EvalsView-B3uOCXfr.js → EvalsView-O_4YWy--.js} +1 -1
  11. package/dist/client/assets/{ExperimentalAgentOnboardingModal-Bx6yXVS5.js → ExperimentalAgentOnboardingModal-CkEiF85-.js} +1 -1
  12. package/dist/client/assets/InsightsView-D-Qe0tRr.js +11 -0
  13. package/dist/client/assets/{MemoryView-xcN_eouf.js → MemoryView-CoRUmRvb.js} +2 -2
  14. package/dist/client/assets/NodesView-DQzXjcLc.js +14 -0
  15. package/dist/client/assets/{PiExtensionsManager-Cc8aAZXg.js → PiExtensionsManager-Dn1LmFbq.js} +2 -2
  16. package/dist/client/assets/PluginManager-Y0fs-6No.js +1 -0
  17. package/dist/client/assets/{ResearchView-CERNf7sJ.js → ResearchView-CjOxKhdS.js} +1 -1
  18. package/dist/client/assets/{SettingsModal-B1r0yASu.js → SettingsModal-Bg1-3JO_.js} +1 -1
  19. package/dist/client/assets/{SettingsModal-Cis-4Lot.css → SettingsModal-Ci0_sqbU.css} +1 -1
  20. package/dist/client/assets/SettingsModal-DL7tjJQa.js +31 -0
  21. package/dist/client/assets/SettingsModal-DWKgRxBA.css +1 -0
  22. package/dist/client/assets/{SetupWizardModal-D1q548_L.js → SetupWizardModal-DuzYPbuJ.js} +1 -1
  23. package/dist/client/assets/{SkillsView-ClLM6u6p.js → SkillsView-BIFoVNUf.js} +1 -1
  24. package/dist/client/assets/{StashRecoveryView-ze0pEZ5U.js → StashRecoveryView-C52KsV7f.js} +1 -1
  25. package/dist/client/assets/{TodoView-CTmIfy2M.js → TodoView-sS_mT0Y7.js} +2 -2
  26. package/dist/client/assets/{dashboard-view-CyWN-d02.js → dashboard-view-BWGH_fAq.js} +1 -1
  27. package/dist/client/assets/dashboard-view-BoTzlP8b.css +1 -0
  28. package/dist/client/assets/dashboard-view-MB-86hAu.js +21 -0
  29. package/dist/client/assets/{folder-open-BZuKESeq.js → folder-open-B9cwJ-OX.js} +1 -1
  30. package/dist/client/assets/index-BOjPRqEk.js +692 -0
  31. package/dist/client/assets/index-BmSEq8Rb.css +1 -0
  32. package/dist/client/assets/{star-D75YKEq-.js → star-BDn04UYV.js} +1 -1
  33. package/dist/client/assets/{upload-BYYTgWFj.js → upload-zdPPycKQ.js} +1 -1
  34. package/dist/client/assets/{users-RS90Aii3.js → users-CPYZjK2g.js} +1 -1
  35. package/dist/client/index.html +2 -2
  36. package/dist/client/version.json +1 -1
  37. package/dist/droid-cli/package.json +1 -1
  38. package/dist/droid-cli/src/__tests__/index.test.ts +228 -0
  39. package/dist/extension.js +7433 -1920
  40. package/dist/pi-claude-cli/package.json +1 -1
  41. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +36 -22
  42. package/dist/pi-claude-cli/src/provider.ts +7 -1
  43. package/dist/plugins/fusion-plugin-cli-printing-press/manifest.json +19 -1
  44. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +20 -2
  45. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/TestRunnerPanel.test.tsx +99 -0
  46. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/config-flow.test.ts +91 -0
  47. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/dashboard-view.test.tsx +40 -0
  48. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/dashboard-views.test.ts +46 -0
  49. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/draft-store.test.ts +50 -0
  50. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/exec-mock.ts +80 -0
  51. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/fixtures.test.ts +40 -0
  52. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/registry.ts +82 -0
  53. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/generator.test.ts +54 -0
  54. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/manage-view.test.tsx +98 -0
  55. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/manifest.test.ts +21 -5
  56. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/registration.test.ts +29 -0
  57. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/run-routes.test.ts +98 -0
  58. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/runner.test.ts +55 -0
  59. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/runtime-availability.test.ts +61 -0
  60. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/validation.test.ts +30 -0
  61. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/wizard-routes.test.ts +61 -0
  62. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/workflow-integration.test.ts +19 -0
  63. package/dist/plugins/fusion-plugin-cli-printing-press/src/dashboard-view.css +43 -0
  64. package/dist/plugins/fusion-plugin-cli-printing-press/src/dashboard-view.tsx +49 -0
  65. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/generator.ts +95 -0
  66. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/redact.ts +9 -0
  67. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/runner.ts +79 -0
  68. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/types.ts +31 -0
  69. package/dist/plugins/fusion-plugin-cli-printing-press/src/index.ts +46 -2
  70. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage/EditDraftModal.tsx +75 -0
  71. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage/useDrafts.ts +73 -0
  72. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage-view.css +79 -0
  73. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage-view.tsx +122 -0
  74. package/dist/plugins/fusion-plugin-cli-printing-press/src/routes/wizard-routes.ts +272 -0
  75. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/TestRunnerPanel.css +70 -0
  76. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/TestRunnerPanel.tsx +98 -0
  77. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/useRunGeneratedCli.ts +37 -0
  78. package/dist/plugins/fusion-plugin-cli-printing-press/src/runtime/__tests__/executor-runtime-env.test.ts +191 -0
  79. package/dist/plugins/fusion-plugin-cli-printing-press/src/runtime/executor-runtime-env.ts +75 -0
  80. package/dist/plugins/fusion-plugin-cli-printing-press/src/storage/draft-store.ts +85 -0
  81. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/__tests__/cli-press-store.test.ts +128 -0
  82. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/__tests__/credentials.test.ts +62 -0
  83. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/cli-press-store.ts +427 -0
  84. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/cli-press-types.ts +110 -0
  85. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/credentials.ts +95 -0
  86. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/steps.tsx +55 -0
  87. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/types.ts +33 -0
  88. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/validation.ts +63 -0
  89. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  90. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  91. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  92. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  93. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  94. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  95. package/dist/plugins/fusion-plugin-reports/manifest.json +10 -0
  96. package/dist/plugins/fusion-plugin-reports/package.json +18 -2
  97. package/dist/plugins/fusion-plugin-reports/src/__tests__/approval.test.ts +164 -0
  98. package/dist/plugins/fusion-plugin-reports/src/__tests__/manifest.test.ts +14 -0
  99. package/dist/plugins/fusion-plugin-reports/src/__tests__/routes-approval.test.ts +109 -0
  100. package/dist/plugins/fusion-plugin-reports/src/__tests__/scaffold.test.ts +60 -0
  101. package/dist/plugins/fusion-plugin-reports/src/__tests__/share-blocks.test.ts +83 -0
  102. package/dist/plugins/fusion-plugin-reports/src/aggregation.ts +23 -0
  103. package/dist/plugins/fusion-plugin-reports/src/approval.ts +97 -0
  104. package/dist/plugins/fusion-plugin-reports/src/cadence.ts +23 -0
  105. package/dist/plugins/fusion-plugin-reports/src/dashboard/ReportsView.css +82 -0
  106. package/dist/plugins/fusion-plugin-reports/src/dashboard/ReportsView.tsx +24 -0
  107. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportComparisonDrawer.test.tsx +12 -0
  108. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportDetailPanel.test.tsx +12 -0
  109. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportFiltersBar.test.tsx +14 -0
  110. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportsView.test.tsx +27 -0
  111. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/api.test.ts +19 -0
  112. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/useReportSectionDiff.test.ts +11 -0
  113. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/useReports.test.ts +13 -0
  114. package/dist/plugins/fusion-plugin-reports/src/dashboard/api.ts +85 -0
  115. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportApprovalPanel.css +59 -0
  116. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportApprovalPanel.tsx +58 -0
  117. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportComparisonDrawer.tsx +21 -0
  118. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportDetailPanel.tsx +29 -0
  119. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportEmptyState.tsx +3 -0
  120. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportFiltersBar.tsx +19 -0
  121. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportListItem.tsx +8 -0
  122. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ShareBlocksPanel.css +29 -0
  123. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ShareBlocksPanel.tsx +43 -0
  124. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/__tests__/ReportApprovalPanel.test.tsx +38 -0
  125. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/__tests__/ShareBlocksPanel.test.tsx +24 -0
  126. package/dist/plugins/fusion-plugin-reports/src/dashboard/test-setup.ts +18 -0
  127. package/dist/plugins/fusion-plugin-reports/src/dashboard/types.ts +22 -0
  128. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReportPreview.ts +44 -0
  129. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReportSectionDiff.ts +59 -0
  130. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReports.ts +71 -0
  131. package/dist/plugins/fusion-plugin-reports/src/dashboard/useViewportMode.ts +13 -0
  132. package/dist/plugins/fusion-plugin-reports/src/dashboard-view.tsx +6 -0
  133. package/dist/plugins/fusion-plugin-reports/src/index.ts +48 -2
  134. package/dist/plugins/fusion-plugin-reports/src/pipeline.ts +58 -0
  135. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/escape.test.ts +20 -0
  136. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/html-template.test.ts +110 -0
  137. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/standalone-html.test.ts +66 -0
  138. package/dist/plugins/fusion-plugin-reports/src/render/escape.ts +12 -0
  139. package/dist/plugins/fusion-plugin-reports/src/render/html-styles.ts +40 -0
  140. package/dist/plugins/fusion-plugin-reports/src/render/html-template.ts +137 -0
  141. package/dist/plugins/fusion-plugin-reports/src/render/index.ts +4 -0
  142. package/dist/plugins/fusion-plugin-reports/src/render/standalone-html.ts +75 -0
  143. package/dist/plugins/fusion-plugin-reports/src/report-schema.ts +31 -0
  144. package/dist/plugins/fusion-plugin-reports/src/routes/__tests__/report-export-routes.test.ts +104 -0
  145. package/dist/plugins/fusion-plugin-reports/src/routes/report-approval-routes.ts +98 -0
  146. package/dist/plugins/fusion-plugin-reports/src/routes/report-export-routes.ts +77 -0
  147. package/dist/plugins/fusion-plugin-reports/src/routes/report-list-routes.ts +72 -0
  148. package/dist/plugins/fusion-plugin-reports/src/runs-store.ts +69 -0
  149. package/dist/plugins/fusion-plugin-reports/src/share-blocks.ts +82 -0
  150. package/dist/plugins/fusion-plugin-reports/src/store/report-store.ts +51 -2
  151. package/dist/plugins/fusion-plugin-reports/src/store/report-types.ts +6 -1
  152. package/dist/plugins/fusion-plugin-roadmap/bundled.js +1528 -29391
  153. package/dist/plugins/fusion-plugin-roadmap/manifest.json +1 -1
  154. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  155. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  156. package/package.json +1 -1
  157. package/skill/fusion/SKILL.md +1 -1
  158. package/skill/fusion/references/engine-tools.md +2 -2
  159. package/skill/fusion/references/extension-tools.md +4 -3
  160. package/skill/fusion/references/fusion-capabilities.md +1 -1
  161. package/skill/fusion/workflows/task-management.md +3 -1
  162. package/dist/client/assets/AgentDetailView-BwJaLqZh.css +0 -1
  163. package/dist/client/assets/AgentDetailView-Cv-vgOj3.js +0 -18
  164. package/dist/client/assets/ChatView-CAHjY9uO.js +0 -1
  165. package/dist/client/assets/InsightsView-Q1zvtF4F.js +0 -11
  166. package/dist/client/assets/NodesView-RxXg58_Q.js +0 -14
  167. package/dist/client/assets/PluginManager-BEkyBajl.js +0 -1
  168. package/dist/client/assets/SettingsModal-BLsac7CJ.js +0 -31
  169. package/dist/client/assets/SettingsModal-BNSrO1M9.css +0 -1
  170. package/dist/client/assets/dashboard-view-4xAN3yO5.js +0 -21
  171. package/dist/client/assets/dashboard-view-BkTMSZYn.css +0 -1
  172. package/dist/client/assets/index-Bdw6llW6.js +0 -692
  173. package/dist/client/assets/index-CZGlyJuS.css +0 -1
  174. package/dist/plugins/fusion-plugin-roadmap/bundled.css +0 -1093
@@ -1,1093 +0,0 @@
1
- /* ../../plugins/fusion-plugin-roadmap/src/dashboard/RoadmapsView.css */
2
- .roadmaps-view {
3
- display: flex;
4
- height: 100%;
5
- overflow: hidden;
6
- }
7
- .roadmaps-view--loading,
8
- .roadmaps-view--error {
9
- display: flex;
10
- align-items: center;
11
- justify-content: center;
12
- }
13
- .roadmaps-view__loading-state,
14
- .roadmaps-view__error-state {
15
- text-align: center;
16
- color: var(--text-muted);
17
- }
18
- .roadmaps-view__error-msg {
19
- font-size: 0.85rem;
20
- margin-top: 4px;
21
- }
22
- .roadmaps-view__handoff-intro,
23
- .roadmaps-view__handoff-error,
24
- .roadmaps-view__handoff-section {
25
- margin-bottom: var(--space-lg);
26
- }
27
- .roadmaps-view__handoff-empty-state,
28
- .roadmaps-view__handoff-loading-state {
29
- text-align: center;
30
- padding: var(--space-xl);
31
- }
32
- .roadmaps-view__handoff-button-icon {
33
- margin-right: var(--space-sm);
34
- }
35
- .roadmaps-view__handoff-loading-text {
36
- margin-top: var(--space-md);
37
- }
38
- .roadmaps-view__handoff-section-title {
39
- margin-bottom: var(--space-sm);
40
- }
41
- .roadmaps-view__handoff-card {
42
- padding: var(--space-md);
43
- }
44
- .roadmaps-view__handoff-pre {
45
- white-space: pre-wrap;
46
- font-size: 0.75rem;
47
- overflow: auto;
48
- }
49
- .roadmaps-view__handoff-pre--mission {
50
- max-height: 200px;
51
- }
52
- .roadmaps-view__handoff-pre--features {
53
- max-height: 300px;
54
- }
55
- .roadmaps-view__handoff-copy-icon {
56
- margin-right: var(--space-xs);
57
- }
58
- .roadmaps-view__sidebar {
59
- width: 280px;
60
- flex-shrink: 0;
61
- display: flex;
62
- flex-direction: column;
63
- border-right: 1px solid var(--border);
64
- background: var(--surface-elevated);
65
- }
66
- .roadmaps-view__sidebar-header {
67
- display: flex;
68
- align-items: center;
69
- justify-content: space-between;
70
- padding: var(--space-md) var(--space-lg);
71
- border-bottom: 1px solid var(--border);
72
- }
73
- .roadmaps-view__sidebar-title {
74
- font-size: 1rem;
75
- font-weight: 600;
76
- color: var(--text-primary);
77
- }
78
- .roadmaps-view__add-btn {
79
- display: flex;
80
- align-items: center;
81
- justify-content: center;
82
- width: 28px;
83
- height: 28px;
84
- border: none;
85
- border-radius: var(--radius-sm);
86
- background: var(--accent);
87
- color: var(--cta-text);
88
- cursor: pointer;
89
- transition: opacity var(--transition-fast);
90
- }
91
- .roadmaps-view__add-btn:hover {
92
- opacity: 0.85;
93
- }
94
- .roadmaps-view__sidebar-list {
95
- flex: 1;
96
- overflow-y: auto;
97
- padding: var(--space-sm);
98
- }
99
- .roadmaps-view__empty-sidebar {
100
- padding: var(--space-lg);
101
- text-align: center;
102
- color: var(--text-muted);
103
- font-size: 0.9rem;
104
- }
105
- .roadmaps-view__sidebar-item {
106
- display: flex;
107
- align-items: flex-start;
108
- justify-content: space-between;
109
- padding: var(--space-sm) var(--space-md);
110
- border-radius: var(--radius-sm);
111
- cursor: pointer;
112
- transition: background var(--transition-fast);
113
- gap: var(--space-sm);
114
- }
115
- .roadmaps-view__sidebar-item:hover {
116
- background: var(--surface-hover);
117
- }
118
- .roadmaps-view__sidebar-item--active {
119
- background: var(--card-hover);
120
- }
121
- .roadmaps-view__sidebar-item-content {
122
- flex: 1;
123
- min-width: 0;
124
- }
125
- .roadmaps-view__sidebar-item-title {
126
- font-weight: 500;
127
- color: var(--text-primary);
128
- white-space: nowrap;
129
- overflow: hidden;
130
- text-overflow: ellipsis;
131
- }
132
- .roadmaps-view__sidebar-item-desc {
133
- font-size: 0.8rem;
134
- color: var(--text-muted);
135
- margin-top: 2px;
136
- display: -webkit-box;
137
- -webkit-line-clamp: 2;
138
- -webkit-box-orient: vertical;
139
- overflow: hidden;
140
- }
141
- .roadmaps-view__sidebar-item-actions {
142
- display: flex;
143
- gap: 2px;
144
- opacity: 0;
145
- transition: opacity var(--transition-fast);
146
- }
147
- .roadmaps-view__sidebar-item:hover .roadmaps-view__sidebar-item-actions {
148
- opacity: 1;
149
- }
150
- .roadmaps-view__icon-btn {
151
- display: inline-flex;
152
- align-items: center;
153
- justify-content: center;
154
- width: 24px;
155
- height: 24px;
156
- border: none;
157
- border-radius: var(--radius-sm);
158
- background: transparent;
159
- color: var(--text-muted);
160
- cursor: pointer;
161
- transition: background var(--transition-fast), color var(--transition-fast);
162
- }
163
- .roadmaps-view__icon-btn:hover {
164
- background: var(--surface-hover, color-mix(in srgb, var(--text) 6%, transparent));
165
- color: var(--text);
166
- }
167
- .roadmaps-view__icon-btn--danger:hover {
168
- background: color-mix(in srgb, var(--color-error) 10%, transparent);
169
- color: var(--color-error);
170
- }
171
- .roadmaps-view__icon-btn--success:hover {
172
- background: color-mix(in srgb, var(--color-success) 10%, transparent);
173
- color: var(--color-success);
174
- }
175
- .roadmaps-view__icon-btn:disabled {
176
- opacity: 0.4;
177
- cursor: not-allowed;
178
- }
179
- .roadmaps-view__main {
180
- flex: 1;
181
- display: flex;
182
- flex-direction: column;
183
- min-width: 0;
184
- overflow: hidden;
185
- }
186
- .roadmaps-view__empty-main {
187
- display: flex;
188
- align-items: center;
189
- justify-content: center;
190
- flex: 1;
191
- color: var(--text-muted);
192
- }
193
- .roadmaps-view__roadmap-header {
194
- padding: var(--space-lg);
195
- border-bottom: 1px solid var(--border);
196
- }
197
- .roadmaps-view__roadmap-title-row {
198
- display: flex;
199
- align-items: center;
200
- gap: var(--space-md);
201
- }
202
- .roadmaps-view__roadmap-title {
203
- font-size: 1.5rem;
204
- font-weight: 600;
205
- color: var(--text-primary);
206
- flex: 1;
207
- }
208
- .roadmaps-view__roadmap-actions {
209
- display: flex;
210
- gap: var(--space-xs);
211
- }
212
- .roadmaps-view__roadmap-desc {
213
- margin-top: var(--space-sm);
214
- color: var(--text-muted);
215
- font-size: 0.95rem;
216
- }
217
- .roadmaps-view__milestone-lanes {
218
- flex: 1;
219
- display: flex;
220
- flex-direction: row;
221
- gap: var(--space-md);
222
- padding: var(--space-md);
223
- overflow-x: auto;
224
- overflow-y: hidden;
225
- }
226
- .roadmaps-view__milestone {
227
- min-width: 300px;
228
- width: 320px;
229
- flex-shrink: 0;
230
- display: flex;
231
- flex-direction: column;
232
- background: var(--surface-elevated);
233
- border: 1px solid var(--border);
234
- border-radius: var(--radius-md);
235
- box-shadow: var(--shadow-sm);
236
- transition:
237
- opacity var(--transition-fast),
238
- border-color var(--transition-fast),
239
- box-shadow var(--transition-fast);
240
- cursor: grab;
241
- }
242
- .roadmaps-view__milestone:active {
243
- cursor: grabbing;
244
- }
245
- .roadmaps-view__milestone--dragging {
246
- opacity: 0.5;
247
- }
248
- .roadmaps-view__milestone--drop-target {
249
- border-color: var(--accent);
250
- }
251
- .roadmaps-view__milestone--drop-before {
252
- border-top: 3px solid var(--accent);
253
- }
254
- .roadmaps-view__milestone--drop-after {
255
- border-bottom: 3px solid var(--accent);
256
- }
257
- .roadmaps-view__drag-handle {
258
- display: flex;
259
- align-items: center;
260
- justify-content: center;
261
- color: var(--text-muted);
262
- cursor: grab;
263
- padding: 2px;
264
- border-radius: var(--radius-sm);
265
- transition: color var(--transition-fast), background var(--transition-fast);
266
- }
267
- .roadmaps-view__drag-handle:hover {
268
- color: var(--text-primary);
269
- background: var(--surface-hover);
270
- }
271
- .roadmaps-view__milestone-header {
272
- padding: var(--space-md);
273
- border-bottom: 1px solid var(--border);
274
- }
275
- .roadmaps-view__milestone-title-row {
276
- display: flex;
277
- align-items: flex-start;
278
- justify-content: space-between;
279
- gap: var(--space-sm);
280
- }
281
- .roadmaps-view__milestone-title {
282
- font-size: 1rem;
283
- font-weight: 600;
284
- color: var(--text-primary);
285
- flex: 1;
286
- }
287
- .roadmaps-view__milestone-actions {
288
- display: flex;
289
- gap: 2px;
290
- }
291
- .roadmaps-view__milestone-desc {
292
- margin-top: var(--space-xs);
293
- font-size: 0.85rem;
294
- color: var(--text-muted);
295
- }
296
- .roadmaps-view__milestone-actions-bar {
297
- padding: var(--space-sm) var(--space-md);
298
- border-bottom: 1px solid var(--border);
299
- }
300
- .roadmaps-view__add-feature-btn {
301
- display: inline-flex;
302
- align-items: center;
303
- gap: var(--space-xs);
304
- padding: var(--space-xs) var(--space-sm);
305
- border: 1px dashed var(--border);
306
- border-radius: var(--radius-sm);
307
- background: transparent;
308
- color: var(--text-muted);
309
- font-size: 0.8rem;
310
- cursor: pointer;
311
- transition:
312
- background var(--transition-fast),
313
- color var(--transition-fast),
314
- border-color var(--transition-fast);
315
- }
316
- .roadmaps-view__add-feature-btn:hover {
317
- background: var(--surface-hover);
318
- color: var(--text-primary);
319
- border-color: var(--text-muted);
320
- }
321
- .roadmaps-view__suggest-btn {
322
- display: flex;
323
- align-items: center;
324
- gap: var(--space-xs);
325
- padding: var(--space-xs) var(--space-sm);
326
- background: var(--accent);
327
- color: var(--cta-text);
328
- border: 1px solid var(--accent);
329
- border-radius: var(--radius-md);
330
- font-size: 0.75rem;
331
- cursor: pointer;
332
- transition: background var(--transition-fast), transform var(--transition-fast);
333
- }
334
- .roadmaps-view__suggest-btn:hover {
335
- background: color-mix(in srgb, var(--accent) 88%, var(--bg) 12%);
336
- border-color: color-mix(in srgb, var(--accent) 88%, var(--bg) 12%);
337
- }
338
- .roadmaps-view__suggest-btn:active {
339
- transform: scale(0.97);
340
- }
341
- .roadmaps-view__suggest-btn:disabled {
342
- opacity: 0.5;
343
- cursor: not-allowed;
344
- }
345
- .roadmaps-view__feature-list {
346
- flex: 1;
347
- overflow-y: auto;
348
- padding: var(--space-sm);
349
- transition: background var(--transition-fast);
350
- }
351
- .roadmaps-view__feature-list--drop-target {
352
- background: color-mix(in srgb, var(--color-info) 5%, transparent);
353
- }
354
- .roadmaps-view__empty-features {
355
- padding: var(--space-md);
356
- text-align: center;
357
- color: var(--text-muted);
358
- font-size: 0.85rem;
359
- }
360
- .roadmaps-view__feature-item {
361
- display: flex;
362
- align-items: flex-start;
363
- justify-content: space-between;
364
- padding: var(--space-sm);
365
- border-bottom: 1px solid var(--border);
366
- gap: var(--space-sm);
367
- transition: opacity var(--transition-fast), border-color var(--transition-fast);
368
- cursor: grab;
369
- }
370
- .roadmaps-view__feature-item:active {
371
- cursor: grabbing;
372
- }
373
- .roadmaps-view__feature-item:last-child {
374
- border-bottom: none;
375
- }
376
- .roadmaps-view__feature-item--dragging {
377
- opacity: 0.5;
378
- }
379
- .roadmaps-view__feature-item--drop-before {
380
- border-top: 3px solid var(--accent);
381
- }
382
- .roadmaps-view__feature-item--drop-after {
383
- border-bottom: 3px solid var(--accent);
384
- }
385
- .roadmaps-view__drag-handle--feature {
386
- flex-shrink: 0;
387
- }
388
- .roadmaps-view__feature-content {
389
- flex: 1;
390
- min-width: 0;
391
- }
392
- .roadmaps-view__feature-title {
393
- font-weight: 500;
394
- color: var(--text-primary);
395
- font-size: 0.9rem;
396
- }
397
- .roadmaps-view__feature-desc {
398
- font-size: 0.8rem;
399
- color: var(--text-muted);
400
- margin-top: 2px;
401
- }
402
- .roadmaps-view__feature-actions {
403
- display: flex;
404
- gap: 2px;
405
- opacity: 0;
406
- transition: opacity var(--transition-fast);
407
- }
408
- .roadmaps-view__feature-item:hover .roadmaps-view__feature-actions {
409
- opacity: 1;
410
- }
411
- .roadmaps-view__inline-edit {
412
- display: flex;
413
- flex-direction: column;
414
- gap: var(--space-sm);
415
- }
416
- .roadmaps-view__inline-edit-row {
417
- display: flex;
418
- align-items: center;
419
- gap: var(--space-xs);
420
- }
421
- .roadmaps-view__inline-input {
422
- flex: 1;
423
- padding: var(--space-sm);
424
- border: 1px solid var(--border);
425
- border-radius: var(--radius-sm);
426
- background: var(--surface-input);
427
- color: var(--text-primary);
428
- font-size: 0.9rem;
429
- font-family: inherit;
430
- }
431
- .roadmaps-view__inline-input:focus {
432
- outline: none;
433
- border-color: var(--accent);
434
- }
435
- .roadmaps-view__inline-input--large {
436
- font-size: 1.1rem;
437
- font-weight: 600;
438
- padding: var(--space-sm) var(--space-md);
439
- }
440
- .roadmaps-view__inline-textarea {
441
- width: 100%;
442
- padding: var(--space-sm);
443
- border: 1px solid var(--border);
444
- border-radius: var(--radius-sm);
445
- background: var(--surface-input);
446
- color: var(--text-primary);
447
- font-size: 0.85rem;
448
- font-family: inherit;
449
- resize: vertical;
450
- }
451
- .roadmaps-view__inline-textarea:focus {
452
- outline: none;
453
- border-color: var(--accent);
454
- }
455
- .roadmaps-view__create-form {
456
- padding: var(--space-md);
457
- border-bottom: 1px solid var(--border);
458
- background: var(--surface-elevated);
459
- }
460
- .roadmaps-view__create-form-actions {
461
- display: flex;
462
- gap: var(--space-sm);
463
- margin-top: var(--space-sm);
464
- }
465
- .roadmaps-view__btn {
466
- padding: var(--space-sm) var(--space-md);
467
- border: 1px solid var(--border);
468
- border-radius: var(--radius-sm);
469
- background: var(--surface-input);
470
- color: var(--text-primary);
471
- font-size: 0.85rem;
472
- cursor: pointer;
473
- transition: background var(--transition-fast);
474
- }
475
- .roadmaps-view__btn:hover {
476
- background: var(--surface-hover);
477
- }
478
- .roadmaps-view__btn--primary {
479
- background: var(--accent);
480
- border-color: var(--accent);
481
- color: var(--cta-text);
482
- }
483
- .roadmaps-view__btn--primary:hover {
484
- opacity: 0.9;
485
- }
486
- .roadmaps-view__btn:disabled {
487
- opacity: 0.5;
488
- cursor: not-allowed;
489
- }
490
- .roadmaps-view__empty-milestones {
491
- display: flex;
492
- flex-direction: column;
493
- align-items: center;
494
- justify-content: center;
495
- flex: 1;
496
- gap: var(--space-md);
497
- color: var(--text-muted);
498
- padding: var(--space-xl);
499
- }
500
- .roadmaps-view__add-milestone-btn,
501
- .roadmaps-view__add-milestone-fab {
502
- display: inline-flex;
503
- align-items: center;
504
- gap: var(--space-sm);
505
- padding: var(--space-sm) var(--space-lg);
506
- border: 1px dashed var(--border);
507
- border-radius: var(--radius-sm);
508
- background: transparent;
509
- color: var(--text-muted);
510
- font-size: 0.9rem;
511
- cursor: pointer;
512
- transition:
513
- background var(--transition-fast),
514
- color var(--transition-fast),
515
- border-color var(--transition-fast);
516
- }
517
- .roadmaps-view__add-milestone-fab {
518
- align-self: flex-start;
519
- min-width: 150px;
520
- }
521
- .roadmaps-view__add-milestone-btn:hover,
522
- .roadmaps-view__add-milestone-fab:hover {
523
- background: var(--surface-hover);
524
- color: var(--text-primary);
525
- border-color: var(--text-muted);
526
- }
527
- .roadmaps-view__create-form--inline {
528
- border: 1px dashed var(--border);
529
- border-radius: var(--radius-sm);
530
- margin: var(--space-sm);
531
- background: var(--surface-elevated);
532
- }
533
- .roadmaps-view__inline-form {
534
- display: flex;
535
- flex-direction: column;
536
- gap: var(--space-xs);
537
- }
538
- .roadmaps-view__inline-form-actions {
539
- display: flex;
540
- justify-content: flex-end;
541
- gap: var(--space-xs);
542
- }
543
- .roadmaps-view__feature-create-overlay {
544
- position: fixed;
545
- bottom: var(--space-lg);
546
- left: 50%;
547
- transform: translateX(-50%);
548
- z-index: 100;
549
- }
550
- .roadmaps-view__inline-edit--compact .roadmaps-view__inline-input {
551
- padding: var(--space-xs) var(--space-sm);
552
- font-size: 0.85rem;
553
- }
554
- .roadmap-suggestion-section {
555
- background: var(--surface);
556
- border: 1px solid var(--border);
557
- border-radius: var(--radius-md);
558
- padding: var(--space-lg);
559
- margin-bottom: var(--space-lg);
560
- }
561
- .roadmap-suggestion-header {
562
- display: flex;
563
- align-items: center;
564
- justify-content: space-between;
565
- margin-bottom: var(--space-md);
566
- }
567
- .roadmap-suggestion-title {
568
- font-size: 1rem;
569
- font-weight: 600;
570
- color: var(--text-primary);
571
- margin: 0;
572
- }
573
- .roadmap-suggestion-form {
574
- display: flex;
575
- flex-direction: column;
576
- gap: var(--space-sm);
577
- }
578
- .roadmap-suggestion-input {
579
- width: 100%;
580
- padding: var(--space-sm) var(--space-md);
581
- border: 1px solid var(--border);
582
- border-radius: var(--radius-sm);
583
- background: var(--surface-input);
584
- color: var(--text-primary);
585
- font-size: 0.9rem;
586
- font-family: inherit;
587
- resize: vertical;
588
- min-height: 60px;
589
- transition: border-color var(--transition-fast);
590
- }
591
- .roadmap-suggestion-input:focus {
592
- outline: none;
593
- border-color: var(--accent);
594
- box-shadow: var(--focus-ring);
595
- }
596
- .roadmap-suggestion-input:disabled {
597
- opacity: 0.6;
598
- cursor: not-allowed;
599
- }
600
- .roadmap-suggestion-input::placeholder {
601
- color: var(--text-muted);
602
- }
603
- .roadmap-suggestion-actions {
604
- display: flex;
605
- gap: var(--space-sm);
606
- align-items: center;
607
- }
608
- .roadmap-suggestion-generate-btn {
609
- padding: var(--space-sm) var(--space-lg);
610
- background: var(--accent);
611
- color: var(--cta-text);
612
- border: none;
613
- border-radius: var(--radius-sm);
614
- font-size: 0.9rem;
615
- font-weight: 500;
616
- cursor: pointer;
617
- transition: opacity var(--transition-fast), transform var(--transition-instant);
618
- }
619
- .roadmap-suggestion-generate-btn:hover:not(:disabled) {
620
- opacity: 0.9;
621
- }
622
- .roadmap-suggestion-generate-btn:active:not(:disabled) {
623
- transform: scale(0.98);
624
- }
625
- .roadmap-suggestion-generate-btn:disabled {
626
- opacity: 0.5;
627
- cursor: not-allowed;
628
- }
629
- .roadmap-suggestion-accept-all-btn {
630
- padding: var(--space-sm) var(--space-md);
631
- background: var(--color-success);
632
- color: var(--cta-text);
633
- border: none;
634
- border-radius: var(--radius-sm);
635
- font-size: 0.85rem;
636
- font-weight: 500;
637
- cursor: pointer;
638
- transition: opacity var(--transition-fast), transform var(--transition-instant);
639
- }
640
- .roadmap-suggestion-accept-all-btn:hover {
641
- opacity: 0.9;
642
- }
643
- .roadmap-suggestion-accept-all-btn:active {
644
- transform: scale(0.98);
645
- }
646
- .roadmap-suggestion-clear-btn {
647
- display: flex;
648
- align-items: center;
649
- justify-content: center;
650
- width: 28px;
651
- height: 28px;
652
- padding: 0;
653
- background: transparent;
654
- color: var(--text-muted);
655
- border: 1px solid var(--border);
656
- border-radius: var(--radius-sm);
657
- cursor: pointer;
658
- transition: color var(--transition-fast), border-color var(--transition-fast);
659
- }
660
- .roadmap-suggestion-clear-btn:hover {
661
- color: var(--color-error);
662
- border-color: var(--color-error);
663
- }
664
- .roadmap-suggestion-list {
665
- display: flex;
666
- flex-direction: column;
667
- gap: var(--space-sm);
668
- margin-top: var(--space-md);
669
- }
670
- .roadmap-suggestion-card {
671
- display: flex;
672
- align-items: flex-start;
673
- justify-content: space-between;
674
- padding: var(--space-md);
675
- background: var(--surface-elevated);
676
- border: 1px solid var(--border);
677
- border-radius: var(--radius-sm);
678
- transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
679
- }
680
- .roadmap-suggestion-card:hover {
681
- border-color: var(--accent);
682
- box-shadow: var(--shadow-sm);
683
- }
684
- .roadmap-suggestion-card-content {
685
- display: flex;
686
- flex-direction: column;
687
- gap: var(--space-xs);
688
- flex: 1;
689
- min-width: 0;
690
- }
691
- .roadmap-suggestion-card-title {
692
- font-size: 0.9rem;
693
- font-weight: 500;
694
- color: var(--text-primary);
695
- }
696
- .roadmap-suggestion-card-desc {
697
- font-size: 0.85rem;
698
- color: var(--text-muted);
699
- line-height: 1.4;
700
- }
701
- .roadmap-suggestion-card-actions {
702
- display: flex;
703
- gap: var(--space-xs);
704
- flex-shrink: 0;
705
- }
706
- .roadmap-suggestion-accept-btn {
707
- display: flex;
708
- align-items: center;
709
- justify-content: center;
710
- width: 28px;
711
- height: 28px;
712
- padding: 0;
713
- background: var(--color-success);
714
- color: var(--cta-text);
715
- border: none;
716
- border-radius: var(--radius-sm);
717
- cursor: pointer;
718
- transition: opacity var(--transition-fast), transform var(--transition-instant);
719
- }
720
- .roadmap-suggestion-accept-btn:hover {
721
- opacity: 0.9;
722
- }
723
- .roadmap-suggestion-accept-btn:active {
724
- transform: scale(0.95);
725
- }
726
- .roadmap-suggestion-accept-btn:disabled {
727
- opacity: 0.5;
728
- cursor: not-allowed;
729
- }
730
- .roadmap-suggestion-edit-btn {
731
- display: flex;
732
- align-items: center;
733
- justify-content: center;
734
- width: 28px;
735
- height: 28px;
736
- padding: 0;
737
- background: var(--surface-elevated);
738
- color: var(--text-muted);
739
- border: 1px solid var(--border);
740
- border-radius: var(--radius-sm);
741
- cursor: pointer;
742
- transition: background-color var(--transition-fast), color var(--transition-fast);
743
- }
744
- .roadmap-suggestion-edit-btn:hover {
745
- background: var(--surface-hover);
746
- color: var(--text-primary);
747
- }
748
- .roadmap-suggestion-card--editing {
749
- background: var(--surface-elevated);
750
- border-color: var(--accent);
751
- }
752
- .roadmap-suggestion-edit-form {
753
- display: flex;
754
- flex-direction: column;
755
- gap: var(--space-sm);
756
- flex: 1;
757
- min-width: 0;
758
- }
759
- .roadmap-suggestion-textarea {
760
- width: 100%;
761
- padding: var(--space-sm);
762
- background: var(--bg);
763
- color: var(--text-primary);
764
- border: 1px solid var(--border);
765
- border-radius: var(--radius-sm);
766
- font-size: 0.9rem;
767
- font-family: inherit;
768
- resize: vertical;
769
- transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
770
- }
771
- .roadmap-suggestion-textarea:focus {
772
- outline: none;
773
- border-color: var(--accent);
774
- box-shadow: var(--focus-ring);
775
- }
776
- .roadmap-suggestion-textarea::placeholder {
777
- color: var(--text-dim);
778
- }
779
- .roadmap-suggestion-edit-actions {
780
- display: flex;
781
- gap: var(--space-xs);
782
- }
783
- .roadmap-suggestion-save-btn {
784
- display: flex;
785
- align-items: center;
786
- justify-content: center;
787
- width: 28px;
788
- height: 28px;
789
- padding: 0;
790
- background: var(--color-success);
791
- color: var(--cta-text);
792
- border: none;
793
- border-radius: var(--radius-sm);
794
- cursor: pointer;
795
- transition: opacity var(--transition-fast);
796
- }
797
- .roadmap-suggestion-save-btn:hover:not(:disabled) {
798
- opacity: 0.9;
799
- }
800
- .roadmap-suggestion-save-btn:disabled {
801
- opacity: 0.5;
802
- cursor: not-allowed;
803
- }
804
- .roadmap-suggestion-cancel-btn {
805
- display: flex;
806
- align-items: center;
807
- justify-content: center;
808
- width: 28px;
809
- height: 28px;
810
- padding: 0;
811
- background: var(--surface-elevated);
812
- color: var(--text-muted);
813
- border: 1px solid var(--border);
814
- border-radius: var(--radius-sm);
815
- cursor: pointer;
816
- transition: background-color var(--transition-fast), color var(--transition-fast);
817
- }
818
- .roadmap-suggestion-cancel-btn:hover {
819
- background: var(--surface-hover);
820
- color: var(--text-primary);
821
- }
822
- .roadmap-suggestion-expand-btn {
823
- width: 100%;
824
- display: flex;
825
- align-items: center;
826
- justify-content: center;
827
- gap: var(--space-sm);
828
- background: var(--surface);
829
- border: 1px solid var(--border);
830
- border-radius: var(--radius-md);
831
- padding: var(--space-md) var(--space-lg);
832
- color: var(--text-primary);
833
- cursor: pointer;
834
- font-size: 0.9rem;
835
- font-weight: 600;
836
- transition: background var(--transition-fast), color var(--transition-fast);
837
- }
838
- .roadmap-suggestion-expand-btn:hover:not(:disabled) {
839
- background: var(--card-hover);
840
- }
841
- .roadmap-suggestion-expand-btn:active:not(:disabled) {
842
- transform: scale(0.98);
843
- }
844
- .roadmap-suggestion-expand-btn:disabled {
845
- opacity: 0.5;
846
- cursor: not-allowed;
847
- }
848
- .roadmap-suggestion-collapse-btn {
849
- display: flex;
850
- align-items: center;
851
- justify-content: center;
852
- background: none;
853
- border: none;
854
- color: var(--text-muted);
855
- cursor: pointer;
856
- padding: var(--space-xs);
857
- border-radius: var(--radius-sm);
858
- transition: color var(--transition-fast);
859
- }
860
- .roadmap-suggestion-collapse-btn:hover {
861
- color: var(--text-primary);
862
- }
863
- @media (max-width: 768px) {
864
- .roadmaps-view {
865
- overflow-y: auto;
866
- -webkit-overflow-scrolling: touch;
867
- }
868
- .roadmaps-view__sidebar {
869
- display: none;
870
- }
871
- .roadmaps-view__main {
872
- overflow-y: auto;
873
- -webkit-overflow-scrolling: touch;
874
- flex: 1;
875
- padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
876
- }
877
- .roadmaps-view__mobile-list {
878
- display: flex;
879
- flex-direction: column;
880
- width: 100%;
881
- height: 100%;
882
- background: var(--surface);
883
- }
884
- .roadmaps-view__mobile-list-header {
885
- display: flex;
886
- align-items: center;
887
- justify-content: space-between;
888
- padding: var(--space-md) var(--space-lg);
889
- border-bottom: 1px solid var(--border);
890
- flex-shrink: 0;
891
- }
892
- .roadmaps-view__mobile-list-title {
893
- margin: 0;
894
- font-size: 1rem;
895
- font-weight: 600;
896
- color: var(--text);
897
- }
898
- .roadmaps-view__mobile-add-btn {
899
- display: flex;
900
- align-items: center;
901
- justify-content: center;
902
- width: 36px;
903
- height: 36px;
904
- border: none;
905
- border-radius: var(--radius-md);
906
- background: var(--accent);
907
- color: var(--cta-text);
908
- cursor: pointer;
909
- transition: opacity var(--transition-fast);
910
- }
911
- .roadmaps-view__mobile-add-btn:hover {
912
- opacity: 0.85;
913
- }
914
- .roadmaps-view__mobile-add-btn:focus-visible {
915
- outline: none;
916
- box-shadow: var(--focus-ring-strong);
917
- }
918
- .roadmaps-view__mobile-create-form {
919
- padding: var(--space-md);
920
- border-bottom: 1px solid var(--border);
921
- background: var(--bg);
922
- }
923
- .roadmaps-view__mobile-list-items {
924
- flex: 1;
925
- overflow-y: auto;
926
- }
927
- .roadmaps-view__mobile-item {
928
- display: flex;
929
- align-items: center;
930
- justify-content: space-between;
931
- padding: var(--space-md) var(--space-lg);
932
- border-bottom: 1px solid var(--border);
933
- min-height: 44px;
934
- cursor: pointer;
935
- transition: background var(--transition-fast);
936
- }
937
- .roadmaps-view__mobile-item:hover {
938
- background: var(--surface-hover);
939
- }
940
- .roadmaps-view__mobile-item--active {
941
- background: color-mix(in srgb, var(--accent) 10%, transparent);
942
- border-left: 3px solid var(--accent);
943
- }
944
- .roadmaps-view__mobile-item-content {
945
- flex: 1;
946
- min-width: 0;
947
- display: flex;
948
- flex-direction: column;
949
- gap: 2px;
950
- }
951
- .roadmaps-view__mobile-item-title {
952
- font-weight: 500;
953
- color: var(--text);
954
- white-space: nowrap;
955
- overflow: hidden;
956
- text-overflow: ellipsis;
957
- }
958
- .roadmaps-view__mobile-item-desc {
959
- font-size: 0.8rem;
960
- color: var(--text-muted);
961
- white-space: nowrap;
962
- overflow: hidden;
963
- text-overflow: ellipsis;
964
- }
965
- .roadmaps-view__mobile-item-actions {
966
- display: flex;
967
- gap: var(--space-xs);
968
- flex-shrink: 0;
969
- }
970
- .roadmaps-view__mobile-action-btn {
971
- display: flex;
972
- align-items: center;
973
- justify-content: center;
974
- width: 36px;
975
- height: 36px;
976
- border: none;
977
- border-radius: var(--radius-md);
978
- background: transparent;
979
- color: var(--text-muted);
980
- cursor: pointer;
981
- transition: background var(--transition-fast), color var(--transition-fast);
982
- }
983
- .roadmaps-view__mobile-action-btn:hover {
984
- background: var(--surface-hover);
985
- color: var(--text);
986
- }
987
- .roadmaps-view__mobile-action-btn:focus-visible {
988
- outline: none;
989
- box-shadow: var(--focus-ring-strong);
990
- }
991
- .roadmaps-view__mobile-action-btn--danger:hover {
992
- background: color-mix(in srgb, var(--color-error) 10%, transparent);
993
- color: var(--color-error);
994
- }
995
- .roadmaps-view__mobile-empty {
996
- display: flex;
997
- flex-direction: column;
998
- align-items: center;
999
- justify-content: center;
1000
- gap: var(--space-md);
1001
- padding: var(--space-2xl);
1002
- color: var(--text-muted);
1003
- text-align: center;
1004
- }
1005
- .roadmaps-view__mobile-header {
1006
- display: flex;
1007
- align-items: center;
1008
- gap: var(--space-sm);
1009
- padding: var(--space-sm) var(--space-md);
1010
- border-bottom: 1px solid var(--border);
1011
- background: var(--surface);
1012
- flex-shrink: 0;
1013
- position: sticky;
1014
- top: 0;
1015
- z-index: 10;
1016
- }
1017
- .roadmaps-view__mobile-back-btn {
1018
- display: flex;
1019
- align-items: center;
1020
- justify-content: center;
1021
- width: 36px;
1022
- height: 36px;
1023
- border: none;
1024
- border-radius: var(--radius-md);
1025
- background: transparent;
1026
- color: var(--text-muted);
1027
- cursor: pointer;
1028
- transition: background var(--transition-fast), color var(--transition-fast);
1029
- flex-shrink: 0;
1030
- }
1031
- .roadmaps-view__mobile-back-btn:hover {
1032
- background: var(--surface-hover);
1033
- color: var(--text);
1034
- }
1035
- .roadmaps-view__mobile-back-btn:focus-visible {
1036
- outline: none;
1037
- box-shadow: var(--focus-ring-strong);
1038
- }
1039
- .roadmaps-view__mobile-header-title {
1040
- flex: 1;
1041
- margin: 0;
1042
- font-size: 1rem;
1043
- font-weight: 600;
1044
- color: var(--text);
1045
- white-space: nowrap;
1046
- overflow: hidden;
1047
- text-overflow: ellipsis;
1048
- }
1049
- .roadmaps-view__mobile-header-actions {
1050
- display: flex;
1051
- gap: var(--space-xs);
1052
- flex-shrink: 0;
1053
- }
1054
- .roadmaps-view__milestone-lanes {
1055
- flex-direction: column;
1056
- overflow-x: hidden;
1057
- overflow-y: auto;
1058
- padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
1059
- }
1060
- .roadmaps-view__milestone {
1061
- width: 100%;
1062
- min-width: unset;
1063
- }
1064
- .roadmap-suggestion-section {
1065
- padding: var(--space-md);
1066
- margin: var(--space-md);
1067
- }
1068
- .roadmap-suggestion-actions {
1069
- flex-wrap: wrap;
1070
- }
1071
- .roadmap-suggestion-generate-btn {
1072
- flex: 1;
1073
- }
1074
- .roadmap-suggestion-accept-all-btn {
1075
- flex: 1;
1076
- }
1077
- .roadmap-suggestion-card {
1078
- padding: var(--space-sm);
1079
- }
1080
- .roadmaps-view__roadmap-header {
1081
- padding: var(--space-md) var(--space-lg);
1082
- }
1083
- .roadmaps-view__create-form {
1084
- margin: var(--space-sm);
1085
- }
1086
- .roadmaps-view__icon-btn {
1087
- width: 36px;
1088
- height: 36px;
1089
- }
1090
- .roadmaps-view__feature-create-overlay {
1091
- bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px) + var(--space-md));
1092
- }
1093
- }