@runfusion/fusion 0.25.0 → 0.27.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 (226) hide show
  1. package/README.md +6 -0
  2. package/dist/bin.js +28004 -16888
  3. package/dist/client/assets/AgentDetailView-B7QRcHJH.css +1 -0
  4. package/dist/client/assets/AgentDetailView-DwLmRXTY.js +18 -0
  5. package/dist/client/assets/{AgentsView-B3jYk8Kt.js → AgentsView-D-N6aA0P.js} +12 -7
  6. package/dist/client/assets/ChatView-DnCdKu8Z.js +1 -0
  7. package/dist/client/assets/{DevServerView-DyGDEiBP.js → DevServerView-BiA1nYtt.js} +1 -1
  8. package/dist/client/assets/{DirectoryPicker-D5UIeIl6.js → DirectoryPicker-DvBviDG6.js} +1 -1
  9. package/dist/client/assets/{DocumentsView-DNHu1T8K.js → DocumentsView-BWXOxpuq.js} +1 -1
  10. package/dist/client/assets/{EvalsView-CpRobtDi.js → EvalsView-CJFbtL7i.js} +1 -1
  11. package/dist/client/assets/{ExperimentalAgentOnboardingModal-DOY_oZi7.js → ExperimentalAgentOnboardingModal-DuGIPd0B.js} +1 -1
  12. package/dist/client/assets/InsightsView-BBpRiolN.js +11 -0
  13. package/dist/client/assets/{MemoryView-PSc5lGJt.js → MemoryView-48LuNkKk.js} +2 -2
  14. package/dist/client/assets/NodesView-CGQWSNZM.js +14 -0
  15. package/dist/client/assets/{PiExtensionsManager-DL_QcN56.js → PiExtensionsManager-i-7UL2oh.js} +2 -2
  16. package/dist/client/assets/PluginManager-DoSAykD6.js +1 -0
  17. package/dist/client/assets/{ResearchView-BzCcDAS4.css → ResearchView-BEI4ZSGs.css} +1 -1
  18. package/dist/client/assets/ResearchView-XZuRtOxE.js +1 -0
  19. package/dist/client/assets/SettingsModal-Ci0_sqbU.css +1 -0
  20. package/dist/client/assets/{SettingsModal-CUCyaAyE.js → SettingsModal-CmeF8CN4.js} +1 -1
  21. package/dist/client/assets/SettingsModal-DBcjf9Bu.js +31 -0
  22. package/dist/client/assets/SettingsModal-DWKgRxBA.css +1 -0
  23. package/dist/client/assets/{SetupWizardModal-BKscasuh.js → SetupWizardModal-CgtvpMX9.js} +1 -1
  24. package/dist/client/assets/{SkillsView-BdELqTy7.js → SkillsView-DErYRumF.js} +1 -1
  25. package/dist/client/assets/StashRecoveryView-B_8WIQEo.css +1 -0
  26. package/dist/client/assets/StashRecoveryView-QJrNS4Vg.js +1 -0
  27. package/dist/client/assets/{TodoView-DFNGBDNV.js → TodoView-BD9NRwq0.js} +2 -2
  28. package/dist/client/assets/createLucideIcon-BazL2hk5.js +21 -0
  29. package/dist/client/assets/dashboard-view-BWGH_fAq.js +63 -0
  30. package/dist/client/assets/dashboard-view-BoTzlP8b.css +1 -0
  31. package/dist/client/assets/dashboard-view-DdGlfuu-.css +1 -0
  32. package/dist/client/assets/dashboard-view-Ws9_ZnKu.js +21 -0
  33. package/dist/client/assets/{folder-open-k1xmUMyr.js → folder-open-CHSlllzf.js} +1 -1
  34. package/dist/client/assets/index-DCovGm5b.css +1 -0
  35. package/dist/client/assets/index-bEwSVl7B.js +692 -0
  36. package/dist/client/assets/{star-ne32r3Y4.js → star-BgVwWAPz.js} +1 -1
  37. package/dist/client/assets/{upload-MS-2Gx53.js → upload-CAzycxr9.js} +1 -1
  38. package/dist/client/assets/{users-C519GSjH.js → users-CZnxCCCJ.js} +1 -1
  39. package/dist/client/index.html +2 -2
  40. package/dist/client/version.json +1 -1
  41. package/dist/droid-cli/package.json +1 -1
  42. package/dist/droid-cli/src/__tests__/index.test.ts +228 -0
  43. package/dist/extension.js +15810 -10205
  44. package/dist/pi-claude-cli/package.json +1 -1
  45. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +36 -22
  46. package/dist/pi-claude-cli/src/provider.ts +7 -1
  47. package/dist/plugins/fusion-plugin-cli-printing-press/manifest.json +24 -0
  48. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +44 -0
  49. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/TestRunnerPanel.test.tsx +99 -0
  50. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/config-flow.test.ts +91 -0
  51. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/dashboard-view.test.tsx +40 -0
  52. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/dashboard-views.test.ts +46 -0
  53. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/draft-store.test.ts +50 -0
  54. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/exec-mock.ts +80 -0
  55. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/fixtures.test.ts +40 -0
  56. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/fixtures/registry.ts +82 -0
  57. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/generator.test.ts +54 -0
  58. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/manage-view.test.tsx +98 -0
  59. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/manifest.test.ts +36 -0
  60. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/registration.test.ts +29 -0
  61. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/run-routes.test.ts +98 -0
  62. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/runner.test.ts +55 -0
  63. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/runtime-availability.test.ts +61 -0
  64. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/validation.test.ts +30 -0
  65. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/wizard-routes.test.ts +61 -0
  66. package/dist/plugins/fusion-plugin-cli-printing-press/src/__tests__/workflow-integration.test.ts +19 -0
  67. package/dist/plugins/fusion-plugin-cli-printing-press/src/dashboard-view.css +43 -0
  68. package/dist/plugins/fusion-plugin-cli-printing-press/src/dashboard-view.tsx +49 -0
  69. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/generator.ts +95 -0
  70. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/redact.ts +9 -0
  71. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/runner.ts +79 -0
  72. package/dist/plugins/fusion-plugin-cli-printing-press/src/generation/types.ts +31 -0
  73. package/dist/plugins/fusion-plugin-cli-printing-press/src/index.ts +58 -0
  74. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage/EditDraftModal.tsx +75 -0
  75. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage/useDrafts.ts +73 -0
  76. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage-view.css +79 -0
  77. package/dist/plugins/fusion-plugin-cli-printing-press/src/manage-view.tsx +122 -0
  78. package/dist/plugins/fusion-plugin-cli-printing-press/src/routes/wizard-routes.ts +272 -0
  79. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/TestRunnerPanel.css +70 -0
  80. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/TestRunnerPanel.tsx +98 -0
  81. package/dist/plugins/fusion-plugin-cli-printing-press/src/run/useRunGeneratedCli.ts +37 -0
  82. package/dist/plugins/fusion-plugin-cli-printing-press/src/runtime/__tests__/executor-runtime-env.test.ts +191 -0
  83. package/dist/plugins/fusion-plugin-cli-printing-press/src/runtime/executor-runtime-env.ts +75 -0
  84. package/dist/plugins/fusion-plugin-cli-printing-press/src/storage/draft-store.ts +85 -0
  85. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/__tests__/cli-press-store.test.ts +128 -0
  86. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/__tests__/credentials.test.ts +62 -0
  87. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/cli-press-store.ts +427 -0
  88. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/cli-press-types.ts +110 -0
  89. package/dist/plugins/fusion-plugin-cli-printing-press/src/store/credentials.ts +95 -0
  90. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/steps.tsx +55 -0
  91. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/types.ts +33 -0
  92. package/dist/plugins/fusion-plugin-cli-printing-press/src/wizard/validation.ts +63 -0
  93. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  94. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  95. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  96. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  97. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  98. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  99. package/dist/plugins/fusion-plugin-reports/manifest.json +10 -0
  100. package/dist/plugins/fusion-plugin-reports/package.json +18 -2
  101. package/dist/plugins/fusion-plugin-reports/src/__tests__/approval.test.ts +164 -0
  102. package/dist/plugins/fusion-plugin-reports/src/__tests__/manifest.test.ts +14 -0
  103. package/dist/plugins/fusion-plugin-reports/src/__tests__/routes-approval.test.ts +109 -0
  104. package/dist/plugins/fusion-plugin-reports/src/__tests__/scaffold.test.ts +60 -0
  105. package/dist/plugins/fusion-plugin-reports/src/__tests__/share-blocks.test.ts +83 -0
  106. package/dist/plugins/fusion-plugin-reports/src/aggregation.ts +23 -0
  107. package/dist/plugins/fusion-plugin-reports/src/approval.ts +97 -0
  108. package/dist/plugins/fusion-plugin-reports/src/cadence.ts +23 -0
  109. package/dist/plugins/fusion-plugin-reports/src/dashboard/ReportsView.css +82 -0
  110. package/dist/plugins/fusion-plugin-reports/src/dashboard/ReportsView.tsx +24 -0
  111. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportComparisonDrawer.test.tsx +12 -0
  112. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportDetailPanel.test.tsx +12 -0
  113. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportFiltersBar.test.tsx +14 -0
  114. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/ReportsView.test.tsx +27 -0
  115. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/api.test.ts +19 -0
  116. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/useReportSectionDiff.test.ts +11 -0
  117. package/dist/plugins/fusion-plugin-reports/src/dashboard/__tests__/useReports.test.ts +13 -0
  118. package/dist/plugins/fusion-plugin-reports/src/dashboard/api.ts +85 -0
  119. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportApprovalPanel.css +59 -0
  120. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportApprovalPanel.tsx +58 -0
  121. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportComparisonDrawer.tsx +21 -0
  122. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportDetailPanel.tsx +29 -0
  123. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportEmptyState.tsx +3 -0
  124. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportFiltersBar.tsx +19 -0
  125. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ReportListItem.tsx +8 -0
  126. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ShareBlocksPanel.css +29 -0
  127. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/ShareBlocksPanel.tsx +43 -0
  128. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/__tests__/ReportApprovalPanel.test.tsx +38 -0
  129. package/dist/plugins/fusion-plugin-reports/src/dashboard/components/__tests__/ShareBlocksPanel.test.tsx +24 -0
  130. package/dist/plugins/fusion-plugin-reports/src/dashboard/test-setup.ts +18 -0
  131. package/dist/plugins/fusion-plugin-reports/src/dashboard/types.ts +22 -0
  132. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReportPreview.ts +44 -0
  133. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReportSectionDiff.ts +59 -0
  134. package/dist/plugins/fusion-plugin-reports/src/dashboard/useReports.ts +71 -0
  135. package/dist/plugins/fusion-plugin-reports/src/dashboard/useViewportMode.ts +13 -0
  136. package/dist/plugins/fusion-plugin-reports/src/dashboard-view.tsx +6 -0
  137. package/dist/plugins/fusion-plugin-reports/src/index.ts +48 -2
  138. package/dist/plugins/fusion-plugin-reports/src/pipeline.ts +58 -0
  139. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/escape.test.ts +20 -0
  140. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/html-template.test.ts +110 -0
  141. package/dist/plugins/fusion-plugin-reports/src/render/__tests__/standalone-html.test.ts +66 -0
  142. package/dist/plugins/fusion-plugin-reports/src/render/escape.ts +12 -0
  143. package/dist/plugins/fusion-plugin-reports/src/render/html-styles.ts +40 -0
  144. package/dist/plugins/fusion-plugin-reports/src/render/html-template.ts +137 -0
  145. package/dist/plugins/fusion-plugin-reports/src/render/index.ts +4 -0
  146. package/dist/plugins/fusion-plugin-reports/src/render/standalone-html.ts +75 -0
  147. package/dist/plugins/fusion-plugin-reports/src/report-schema.ts +31 -0
  148. package/dist/plugins/fusion-plugin-reports/src/routes/__tests__/report-export-routes.test.ts +104 -0
  149. package/dist/plugins/fusion-plugin-reports/src/routes/report-approval-routes.ts +98 -0
  150. package/dist/plugins/fusion-plugin-reports/src/routes/report-export-routes.ts +77 -0
  151. package/dist/plugins/fusion-plugin-reports/src/routes/report-list-routes.ts +72 -0
  152. package/dist/plugins/fusion-plugin-reports/src/runs-store.ts +69 -0
  153. package/dist/plugins/fusion-plugin-reports/src/share-blocks.ts +82 -0
  154. package/dist/plugins/fusion-plugin-reports/src/store/report-store.ts +51 -2
  155. package/dist/plugins/fusion-plugin-reports/src/store/report-types.ts +6 -1
  156. package/dist/plugins/fusion-plugin-roadmap/bundled.js +1672 -0
  157. package/dist/plugins/fusion-plugin-roadmap/manifest.json +1 -1
  158. package/dist/plugins/fusion-plugin-roadmap/package.json +4 -41
  159. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  160. package/package.json +2 -3
  161. package/skill/fusion/references/engine-tools.md +1 -1
  162. package/skill/fusion/references/extension-tools.md +3 -3
  163. package/skill/fusion/references/fusion-capabilities.md +1 -1
  164. package/dist/client/assets/AgentDetailView-BwJaLqZh.css +0 -1
  165. package/dist/client/assets/AgentDetailView-ZbHEbYRT.js +0 -18
  166. package/dist/client/assets/ChatView-DhPkiEGs.js +0 -1
  167. package/dist/client/assets/InsightsView-vp0RE8Mg.js +0 -11
  168. package/dist/client/assets/NodesView-DMj6HGeC.js +0 -14
  169. package/dist/client/assets/PluginManager-BtYKm8IT.js +0 -1
  170. package/dist/client/assets/ResearchView-BhWqfdV0.js +0 -1
  171. package/dist/client/assets/SettingsModal-BAgB4_AR.js +0 -31
  172. package/dist/client/assets/SettingsModal-BNSrO1M9.css +0 -1
  173. package/dist/client/assets/SettingsModal-DzsLquBu.css +0 -1
  174. package/dist/client/assets/index-Qq2JOOWx.css +0 -1
  175. package/dist/client/assets/index-TFYXEVpn.js +0 -692
  176. package/dist/plugins/fusion-plugin-roadmap/src/__tests__/api-client.test.ts +0 -101
  177. package/dist/plugins/fusion-plugin-roadmap/src/__tests__/index.test.ts +0 -92
  178. package/dist/plugins/fusion-plugin-roadmap/src/__tests__/roadmap-routes.test.ts +0 -48
  179. package/dist/plugins/fusion-plugin-roadmap/src/__tests__/roadmap-suggestions.test.ts +0 -31
  180. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/RoadmapsView.css +0 -1299
  181. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/RoadmapsView.tsx +0 -2559
  182. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/__tests__/RoadmapsView.test.tsx +0 -1144
  183. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/__tests__/useRoadmaps.test.ts +0 -1756
  184. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/api.ts +0 -70
  185. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/test-setup.ts +0 -7
  186. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/types.ts +0 -1
  187. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/useConfirm.ts +0 -8
  188. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/useRoadmaps.ts +0 -1188
  189. package/dist/plugins/fusion-plugin-roadmap/src/dashboard/useViewportMode.ts +0 -20
  190. package/dist/plugins/fusion-plugin-roadmap/src/dashboard-view.tsx +0 -6
  191. package/dist/plugins/fusion-plugin-roadmap/src/index.ts +0 -74
  192. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-routes.ts +0 -1
  193. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-schema.ts +0 -41
  194. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-suggestions.d.ts +0 -15
  195. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-suggestions.ts +0 -15
  196. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-types.d.ts +0 -283
  197. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-types.d.ts.map +0 -1
  198. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-types.js +0 -21
  199. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-types.js.map +0 -1
  200. package/dist/plugins/fusion-plugin-roadmap/src/roadmap-types.ts +0 -310
  201. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-routes.d.ts +0 -5
  202. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-routes.d.ts.map +0 -1
  203. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-routes.js +0 -361
  204. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-routes.js.map +0 -1
  205. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-routes.ts +0 -408
  206. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-suggestions.d.ts +0 -68
  207. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-suggestions.d.ts.map +0 -1
  208. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-suggestions.js +0 -300
  209. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-suggestions.js.map +0 -1
  210. package/dist/plugins/fusion-plugin-roadmap/src/routes/roadmap-suggestions.ts +0 -381
  211. package/dist/plugins/fusion-plugin-roadmap/src/server/index.d.ts +0 -3
  212. package/dist/plugins/fusion-plugin-roadmap/src/server/index.ts +0 -1
  213. package/dist/plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-handoff.test.ts +0 -445
  214. package/dist/plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-ordering.test.ts +0 -334
  215. package/dist/plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-store.test.ts +0 -1318
  216. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-handoff.ts +0 -163
  217. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-ordering.d.ts +0 -37
  218. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-ordering.d.ts.map +0 -1
  219. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-ordering.js +0 -188
  220. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-ordering.js.map +0 -1
  221. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-ordering.ts +0 -311
  222. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-store.d.ts +0 -299
  223. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-store.d.ts.map +0 -1
  224. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-store.js +0 -765
  225. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-store.js.map +0 -1
  226. package/dist/plugins/fusion-plugin-roadmap/src/store/roadmap-store.ts +0 -1001
@@ -1,1299 +0,0 @@
1
- /* Roadmaps view */
2
- .roadmaps-view {
3
- display: flex;
4
- height: 100%;
5
- overflow: hidden;
6
- }
7
-
8
- .roadmaps-view--loading,
9
- .roadmaps-view--error {
10
- display: flex;
11
- align-items: center;
12
- justify-content: center;
13
- }
14
-
15
- .roadmaps-view__loading-state,
16
- .roadmaps-view__error-state {
17
- text-align: center;
18
- color: var(--text-muted);
19
- }
20
-
21
- .roadmaps-view__error-msg {
22
- font-size: 0.85rem;
23
- margin-top: 4px;
24
- }
25
-
26
- .roadmaps-view__handoff-intro,
27
- .roadmaps-view__handoff-error,
28
- .roadmaps-view__handoff-section {
29
- margin-bottom: var(--space-lg);
30
- }
31
-
32
- .roadmaps-view__handoff-empty-state,
33
- .roadmaps-view__handoff-loading-state {
34
- text-align: center;
35
- padding: var(--space-xl);
36
- }
37
-
38
- .roadmaps-view__handoff-button-icon {
39
- margin-right: var(--space-sm);
40
- }
41
-
42
- .roadmaps-view__handoff-loading-text {
43
- margin-top: var(--space-md);
44
- }
45
-
46
- .roadmaps-view__handoff-section-title {
47
- margin-bottom: var(--space-sm);
48
- }
49
-
50
- .roadmaps-view__handoff-card {
51
- padding: var(--space-md);
52
- }
53
-
54
- .roadmaps-view__handoff-pre {
55
- white-space: pre-wrap;
56
- font-size: 0.75rem;
57
- overflow: auto;
58
- }
59
-
60
- .roadmaps-view__handoff-pre--mission {
61
- max-height: 200px;
62
- }
63
-
64
- .roadmaps-view__handoff-pre--features {
65
- max-height: 300px;
66
- }
67
-
68
- .roadmaps-view__handoff-copy-icon {
69
- margin-right: var(--space-xs);
70
- }
71
-
72
- /* Sidebar */
73
- .roadmaps-view__sidebar {
74
- width: 280px;
75
- flex-shrink: 0;
76
- display: flex;
77
- flex-direction: column;
78
- border-right: 1px solid var(--border);
79
- background: var(--surface-elevated);
80
- }
81
-
82
- .roadmaps-view__sidebar-header {
83
- display: flex;
84
- align-items: center;
85
- justify-content: space-between;
86
- padding: var(--space-md) var(--space-lg);
87
- border-bottom: 1px solid var(--border);
88
- }
89
-
90
- .roadmaps-view__sidebar-title {
91
- font-size: 1rem;
92
- font-weight: 600;
93
- color: var(--text-primary);
94
- }
95
-
96
- .roadmaps-view__add-btn {
97
- display: flex;
98
- align-items: center;
99
- justify-content: center;
100
- width: 28px;
101
- height: 28px;
102
- border: none;
103
- border-radius: var(--radius-sm);
104
- background: var(--accent);
105
- color: var(--cta-text);
106
- cursor: pointer;
107
- transition: opacity var(--transition-fast);
108
- }
109
-
110
- .roadmaps-view__add-btn:hover {
111
- opacity: 0.85;
112
- }
113
-
114
- .roadmaps-view__sidebar-list {
115
- flex: 1;
116
- overflow-y: auto;
117
- padding: var(--space-sm);
118
- }
119
-
120
- .roadmaps-view__empty-sidebar {
121
- padding: var(--space-lg);
122
- text-align: center;
123
- color: var(--text-muted);
124
- font-size: 0.9rem;
125
- }
126
-
127
- .roadmaps-view__sidebar-item {
128
- display: flex;
129
- align-items: flex-start;
130
- justify-content: space-between;
131
- padding: var(--space-sm) var(--space-md);
132
- border-radius: var(--radius-sm);
133
- cursor: pointer;
134
- transition: background var(--transition-fast);
135
- gap: var(--space-sm);
136
- }
137
-
138
- .roadmaps-view__sidebar-item:hover {
139
- background: var(--surface-hover);
140
- }
141
-
142
- .roadmaps-view__sidebar-item--active {
143
- background: var(--card-hover);
144
- }
145
-
146
- .roadmaps-view__sidebar-item-content {
147
- flex: 1;
148
- min-width: 0;
149
- }
150
-
151
- .roadmaps-view__sidebar-item-title {
152
- font-weight: 500;
153
- color: var(--text-primary);
154
- white-space: nowrap;
155
- overflow: hidden;
156
- text-overflow: ellipsis;
157
- }
158
-
159
- .roadmaps-view__sidebar-item-desc {
160
- font-size: 0.8rem;
161
- color: var(--text-muted);
162
- margin-top: 2px;
163
- display: -webkit-box;
164
- -webkit-line-clamp: 2;
165
- -webkit-box-orient: vertical;
166
- overflow: hidden;
167
- }
168
-
169
- .roadmaps-view__sidebar-item-actions {
170
- display: flex;
171
- gap: 2px;
172
- opacity: 0;
173
- transition: opacity var(--transition-fast);
174
- }
175
-
176
- .roadmaps-view__sidebar-item:hover .roadmaps-view__sidebar-item-actions {
177
- opacity: 1;
178
- }
179
-
180
- /* Icon buttons */
181
- .roadmaps-view__icon-btn {
182
- display: inline-flex;
183
- align-items: center;
184
- justify-content: center;
185
- width: 24px;
186
- height: 24px;
187
- border: none;
188
- border-radius: var(--radius-sm);
189
- background: transparent;
190
- color: var(--text-muted);
191
- cursor: pointer;
192
- transition: background var(--transition-fast), color var(--transition-fast);
193
- }
194
-
195
- .roadmaps-view__icon-btn:hover {
196
- background: var(--surface-hover, color-mix(in srgb, var(--text) 6%, transparent));
197
- color: var(--text);
198
- }
199
-
200
- .roadmaps-view__icon-btn--danger:hover {
201
- background: color-mix(in srgb, var(--color-error) 10%, transparent);
202
- color: var(--color-error);
203
- }
204
-
205
- .roadmaps-view__icon-btn--success:hover {
206
- background: color-mix(in srgb, var(--color-success) 10%, transparent);
207
- color: var(--color-success);
208
- }
209
-
210
- .roadmaps-view__icon-btn:disabled {
211
- opacity: 0.4;
212
- cursor: not-allowed;
213
- }
214
-
215
- /* Main content */
216
- .roadmaps-view__main {
217
- flex: 1;
218
- display: flex;
219
- flex-direction: column;
220
- min-width: 0;
221
- overflow: hidden;
222
- }
223
-
224
- .roadmaps-view__empty-main {
225
- display: flex;
226
- align-items: center;
227
- justify-content: center;
228
- flex: 1;
229
- color: var(--text-muted);
230
- }
231
-
232
- /* Roadmap header */
233
- .roadmaps-view__roadmap-header {
234
- padding: var(--space-lg);
235
- border-bottom: 1px solid var(--border);
236
- }
237
-
238
- .roadmaps-view__roadmap-title-row {
239
- display: flex;
240
- align-items: center;
241
- gap: var(--space-md);
242
- }
243
-
244
- .roadmaps-view__roadmap-title {
245
- font-size: 1.5rem;
246
- font-weight: 600;
247
- color: var(--text-primary);
248
- flex: 1;
249
- }
250
-
251
- .roadmaps-view__roadmap-actions {
252
- display: flex;
253
- gap: var(--space-xs);
254
- }
255
-
256
- .roadmaps-view__roadmap-desc {
257
- margin-top: var(--space-sm);
258
- color: var(--text-muted);
259
- font-size: 0.95rem;
260
- }
261
-
262
- /* Milestone lanes */
263
- .roadmaps-view__milestone-lanes {
264
- flex: 1;
265
- display: flex;
266
- flex-direction: row;
267
- gap: var(--space-md);
268
- padding: var(--space-md);
269
- overflow-x: auto;
270
- overflow-y: hidden;
271
- }
272
-
273
- .roadmaps-view__milestone {
274
- min-width: 300px;
275
- width: 320px;
276
- flex-shrink: 0;
277
- display: flex;
278
- flex-direction: column;
279
- background: var(--surface-elevated);
280
- border: 1px solid var(--border);
281
- border-radius: var(--radius-md);
282
- box-shadow: var(--shadow-sm);
283
- transition: opacity var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
284
- cursor: grab;
285
- }
286
-
287
- .roadmaps-view__milestone:active {
288
- cursor: grabbing;
289
- }
290
-
291
- .roadmaps-view__milestone--dragging {
292
- opacity: 0.5;
293
- }
294
-
295
- .roadmaps-view__milestone--drop-target {
296
- border-color: var(--accent);
297
- }
298
-
299
- .roadmaps-view__milestone--drop-before {
300
- border-top: 3px solid var(--accent);
301
- }
302
-
303
- .roadmaps-view__milestone--drop-after {
304
- border-bottom: 3px solid var(--accent);
305
- }
306
-
307
- .roadmaps-view__drag-handle {
308
- display: flex;
309
- align-items: center;
310
- justify-content: center;
311
- color: var(--text-muted);
312
- cursor: grab;
313
- padding: 2px;
314
- border-radius: var(--radius-sm);
315
- transition: color var(--transition-fast), background var(--transition-fast);
316
- }
317
-
318
- .roadmaps-view__drag-handle:hover {
319
- color: var(--text-primary);
320
- background: var(--surface-hover);
321
- }
322
-
323
- .roadmaps-view__milestone-header {
324
- padding: var(--space-md);
325
- border-bottom: 1px solid var(--border);
326
- }
327
-
328
- .roadmaps-view__milestone-title-row {
329
- display: flex;
330
- align-items: flex-start;
331
- justify-content: space-between;
332
- gap: var(--space-sm);
333
- }
334
-
335
- .roadmaps-view__milestone-title {
336
- font-size: 1rem;
337
- font-weight: 600;
338
- color: var(--text-primary);
339
- flex: 1;
340
- }
341
-
342
- .roadmaps-view__milestone-actions {
343
- display: flex;
344
- gap: 2px;
345
- }
346
-
347
- .roadmaps-view__milestone-desc {
348
- margin-top: var(--space-xs);
349
- font-size: 0.85rem;
350
- color: var(--text-muted);
351
- }
352
-
353
- .roadmaps-view__milestone-actions-bar {
354
- padding: var(--space-sm) var(--space-md);
355
- border-bottom: 1px solid var(--border);
356
- }
357
-
358
- .roadmaps-view__add-feature-btn {
359
- display: inline-flex;
360
- align-items: center;
361
- gap: var(--space-xs);
362
- padding: var(--space-xs) var(--space-sm);
363
- border: 1px dashed var(--border);
364
- border-radius: var(--radius-sm);
365
- background: transparent;
366
- color: var(--text-muted);
367
- font-size: 0.8rem;
368
- cursor: pointer;
369
- transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
370
- }
371
-
372
- .roadmaps-view__add-feature-btn:hover {
373
- background: var(--surface-hover);
374
- color: var(--text-primary);
375
- border-color: var(--text-muted);
376
- }
377
-
378
- /* AI Suggestion button */
379
- .roadmaps-view__suggest-btn {
380
- display: flex;
381
- align-items: center;
382
- gap: var(--space-xs);
383
- padding: var(--space-xs) var(--space-sm);
384
- background: var(--accent);
385
- color: var(--cta-text);
386
- border: 1px solid var(--accent);
387
- border-radius: var(--radius-md);
388
- font-size: 0.75rem;
389
- cursor: pointer;
390
- transition: background var(--transition-fast), transform var(--transition-fast);
391
- }
392
-
393
- .roadmaps-view__suggest-btn:hover {
394
- background: color-mix(in srgb, var(--accent) 88%, var(--bg) 12%);
395
- border-color: color-mix(in srgb, var(--accent) 88%, var(--bg) 12%);
396
- }
397
-
398
- .roadmaps-view__suggest-btn:active {
399
- transform: scale(0.97);
400
- }
401
-
402
- .roadmaps-view__suggest-btn:disabled {
403
- opacity: 0.5;
404
- cursor: not-allowed;
405
- }
406
-
407
- /* Feature list */
408
- .roadmaps-view__feature-list {
409
- flex: 1;
410
- overflow-y: auto;
411
- padding: var(--space-sm);
412
- transition: background var(--transition-fast);
413
- }
414
-
415
- .roadmaps-view__feature-list--drop-target {
416
- background: color-mix(in srgb, var(--color-info) 5%, transparent);
417
- }
418
-
419
- .roadmaps-view__empty-features {
420
- padding: var(--space-md);
421
- text-align: center;
422
- color: var(--text-muted);
423
- font-size: 0.85rem;
424
- }
425
-
426
- .roadmaps-view__feature-item {
427
- display: flex;
428
- align-items: flex-start;
429
- justify-content: space-between;
430
- padding: var(--space-sm);
431
- border-bottom: 1px solid var(--border);
432
- gap: var(--space-sm);
433
- transition: opacity var(--transition-fast), border-color var(--transition-fast);
434
- cursor: grab;
435
- }
436
-
437
- .roadmaps-view__feature-item:active {
438
- cursor: grabbing;
439
- }
440
-
441
- .roadmaps-view__feature-item:last-child {
442
- border-bottom: none;
443
- }
444
-
445
- .roadmaps-view__feature-item--dragging {
446
- opacity: 0.5;
447
- }
448
-
449
- .roadmaps-view__feature-item--drop-before {
450
- border-top: 3px solid var(--accent);
451
- }
452
-
453
- .roadmaps-view__feature-item--drop-after {
454
- border-bottom: 3px solid var(--accent);
455
- }
456
-
457
- .roadmaps-view__drag-handle--feature {
458
- flex-shrink: 0;
459
- }
460
-
461
- .roadmaps-view__feature-content {
462
- flex: 1;
463
- min-width: 0;
464
- }
465
-
466
- .roadmaps-view__feature-title {
467
- font-weight: 500;
468
- color: var(--text-primary);
469
- font-size: 0.9rem;
470
- }
471
-
472
- .roadmaps-view__feature-desc {
473
- font-size: 0.8rem;
474
- color: var(--text-muted);
475
- margin-top: 2px;
476
- }
477
-
478
- .roadmaps-view__feature-actions {
479
- display: flex;
480
- gap: 2px;
481
- opacity: 0;
482
- transition: opacity var(--transition-fast);
483
- }
484
-
485
- .roadmaps-view__feature-item:hover .roadmaps-view__feature-actions {
486
- opacity: 1;
487
- }
488
-
489
- /* Inline edit forms */
490
- .roadmaps-view__inline-edit {
491
- display: flex;
492
- flex-direction: column;
493
- gap: var(--space-sm);
494
- }
495
-
496
- .roadmaps-view__inline-edit-row {
497
- display: flex;
498
- align-items: center;
499
- gap: var(--space-xs);
500
- }
501
-
502
- .roadmaps-view__inline-input {
503
- flex: 1;
504
- padding: var(--space-sm);
505
- border: 1px solid var(--border);
506
- border-radius: var(--radius-sm);
507
- background: var(--surface-input);
508
- color: var(--text-primary);
509
- font-size: 0.9rem;
510
- font-family: inherit;
511
- }
512
-
513
- .roadmaps-view__inline-input:focus {
514
- outline: none;
515
- border-color: var(--accent);
516
- }
517
-
518
- .roadmaps-view__inline-input--large {
519
- font-size: 1.1rem;
520
- font-weight: 600;
521
- padding: var(--space-sm) var(--space-md);
522
- }
523
-
524
- .roadmaps-view__inline-textarea {
525
- width: 100%;
526
- padding: var(--space-sm);
527
- border: 1px solid var(--border);
528
- border-radius: var(--radius-sm);
529
- background: var(--surface-input);
530
- color: var(--text-primary);
531
- font-size: 0.85rem;
532
- font-family: inherit;
533
- resize: vertical;
534
- }
535
-
536
- .roadmaps-view__inline-textarea:focus {
537
- outline: none;
538
- border-color: var(--accent);
539
- }
540
-
541
- /* Create forms */
542
- .roadmaps-view__create-form {
543
- padding: var(--space-md);
544
- border-bottom: 1px solid var(--border);
545
- background: var(--surface-elevated);
546
- }
547
-
548
- .roadmaps-view__create-form-actions {
549
- display: flex;
550
- gap: var(--space-sm);
551
- margin-top: var(--space-sm);
552
- }
553
-
554
- .roadmaps-view__btn {
555
- padding: var(--space-sm) var(--space-md);
556
- border: 1px solid var(--border);
557
- border-radius: var(--radius-sm);
558
- background: var(--surface-input);
559
- color: var(--text-primary);
560
- font-size: 0.85rem;
561
- cursor: pointer;
562
- transition: background var(--transition-fast);
563
- }
564
-
565
- .roadmaps-view__btn:hover {
566
- background: var(--surface-hover);
567
- }
568
-
569
- .roadmaps-view__btn--primary {
570
- background: var(--accent);
571
- border-color: var(--accent);
572
- color: var(--cta-text);
573
- }
574
-
575
- .roadmaps-view__btn--primary:hover {
576
- opacity: 0.9;
577
- }
578
-
579
- .roadmaps-view__btn:disabled {
580
- opacity: 0.5;
581
- cursor: not-allowed;
582
- }
583
-
584
- /* Empty milestones state */
585
- .roadmaps-view__empty-milestones {
586
- display: flex;
587
- flex-direction: column;
588
- align-items: center;
589
- justify-content: center;
590
- flex: 1;
591
- gap: var(--space-md);
592
- color: var(--text-muted);
593
- padding: var(--space-xl);
594
- }
595
-
596
- .roadmaps-view__add-milestone-btn,
597
- .roadmaps-view__add-milestone-fab {
598
- display: inline-flex;
599
- align-items: center;
600
- gap: var(--space-sm);
601
- padding: var(--space-sm) var(--space-lg);
602
- border: 1px dashed var(--border);
603
- border-radius: var(--radius-sm);
604
- background: transparent;
605
- color: var(--text-muted);
606
- font-size: 0.9rem;
607
- cursor: pointer;
608
- transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
609
- }
610
-
611
- .roadmaps-view__add-milestone-fab {
612
- align-self: flex-start;
613
- min-width: 150px;
614
- }
615
-
616
- .roadmaps-view__add-milestone-btn:hover,
617
- .roadmaps-view__add-milestone-fab:hover {
618
- background: var(--surface-hover);
619
- color: var(--text-primary);
620
- border-color: var(--text-muted);
621
- }
622
-
623
- /* Inline create forms */
624
- .roadmaps-view__create-form--inline {
625
- border: 1px dashed var(--border);
626
- border-radius: var(--radius-sm);
627
- margin: var(--space-sm);
628
- background: var(--surface-elevated);
629
- }
630
-
631
- .roadmaps-view__inline-form {
632
- display: flex;
633
- flex-direction: column;
634
- gap: var(--space-xs);
635
- }
636
-
637
- .roadmaps-view__inline-form-actions {
638
- display: flex;
639
- justify-content: flex-end;
640
- gap: var(--space-xs);
641
- }
642
-
643
- /* Feature create overlay */
644
- .roadmaps-view__feature-create-overlay {
645
- position: fixed;
646
- bottom: var(--space-lg);
647
- left: 50%;
648
- transform: translateX(-50%);
649
- z-index: 100;
650
- }
651
-
652
- /* Inline edit compact */
653
- .roadmaps-view__inline-edit--compact .roadmaps-view__inline-input {
654
- padding: var(--space-xs) var(--space-sm);
655
- font-size: 0.85rem;
656
- }
657
-
658
- /* === Roadmap Suggestion Section === */
659
-
660
- .roadmap-suggestion-section {
661
- background: var(--surface);
662
- border: 1px solid var(--border);
663
- border-radius: var(--radius-md);
664
- padding: var(--space-lg);
665
- margin-bottom: var(--space-lg);
666
- }
667
-
668
- .roadmap-suggestion-header {
669
- display: flex;
670
- align-items: center;
671
- justify-content: space-between;
672
- margin-bottom: var(--space-md);
673
- }
674
-
675
- .roadmap-suggestion-title {
676
- font-size: 1rem;
677
- font-weight: 600;
678
- color: var(--text-primary);
679
- margin: 0;
680
- }
681
-
682
- .roadmap-suggestion-form {
683
- display: flex;
684
- flex-direction: column;
685
- gap: var(--space-sm);
686
- }
687
-
688
- .roadmap-suggestion-input {
689
- width: 100%;
690
- padding: var(--space-sm) var(--space-md);
691
- border: 1px solid var(--border);
692
- border-radius: var(--radius-sm);
693
- background: var(--surface-input);
694
- color: var(--text-primary);
695
- font-size: 0.9rem;
696
- font-family: inherit;
697
- resize: vertical;
698
- min-height: 60px;
699
- transition: border-color var(--transition-fast);
700
- }
701
-
702
- .roadmap-suggestion-input:focus {
703
- outline: none;
704
- border-color: var(--accent);
705
- box-shadow: var(--focus-ring);
706
- }
707
-
708
- .roadmap-suggestion-input:disabled {
709
- opacity: 0.6;
710
- cursor: not-allowed;
711
- }
712
-
713
- .roadmap-suggestion-input::placeholder {
714
- color: var(--text-muted);
715
- }
716
-
717
- .roadmap-suggestion-actions {
718
- display: flex;
719
- gap: var(--space-sm);
720
- align-items: center;
721
- }
722
-
723
- .roadmap-suggestion-generate-btn {
724
- padding: var(--space-sm) var(--space-lg);
725
- background: var(--accent);
726
- color: var(--cta-text);
727
- border: none;
728
- border-radius: var(--radius-sm);
729
- font-size: 0.9rem;
730
- font-weight: 500;
731
- cursor: pointer;
732
- transition: opacity var(--transition-fast), transform var(--transition-instant);
733
- }
734
-
735
- .roadmap-suggestion-generate-btn:hover:not(:disabled) {
736
- opacity: 0.9;
737
- }
738
-
739
- .roadmap-suggestion-generate-btn:active:not(:disabled) {
740
- transform: scale(0.98);
741
- }
742
-
743
- .roadmap-suggestion-generate-btn:disabled {
744
- opacity: 0.5;
745
- cursor: not-allowed;
746
- }
747
-
748
- .roadmap-suggestion-accept-all-btn {
749
- padding: var(--space-sm) var(--space-md);
750
- background: var(--color-success);
751
- color: var(--cta-text);
752
- border: none;
753
- border-radius: var(--radius-sm);
754
- font-size: 0.85rem;
755
- font-weight: 500;
756
- cursor: pointer;
757
- transition: opacity var(--transition-fast), transform var(--transition-instant);
758
- }
759
-
760
- .roadmap-suggestion-accept-all-btn:hover {
761
- opacity: 0.9;
762
- }
763
-
764
- .roadmap-suggestion-accept-all-btn:active {
765
- transform: scale(0.98);
766
- }
767
-
768
- .roadmap-suggestion-clear-btn {
769
- display: flex;
770
- align-items: center;
771
- justify-content: center;
772
- width: 28px;
773
- height: 28px;
774
- padding: 0;
775
- background: transparent;
776
- color: var(--text-muted);
777
- border: 1px solid var(--border);
778
- border-radius: var(--radius-sm);
779
- cursor: pointer;
780
- transition: color var(--transition-fast), border-color var(--transition-fast);
781
- }
782
-
783
- .roadmap-suggestion-clear-btn:hover {
784
- color: var(--color-error);
785
- border-color: var(--color-error);
786
- }
787
-
788
- .roadmap-suggestion-list {
789
- display: flex;
790
- flex-direction: column;
791
- gap: var(--space-sm);
792
- margin-top: var(--space-md);
793
- }
794
-
795
- .roadmap-suggestion-card {
796
- display: flex;
797
- align-items: flex-start;
798
- justify-content: space-between;
799
- padding: var(--space-md);
800
- background: var(--surface-elevated);
801
- border: 1px solid var(--border);
802
- border-radius: var(--radius-sm);
803
- transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
804
- }
805
-
806
- .roadmap-suggestion-card:hover {
807
- border-color: var(--accent);
808
- box-shadow: var(--shadow-sm);
809
- }
810
-
811
- .roadmap-suggestion-card-content {
812
- display: flex;
813
- flex-direction: column;
814
- gap: var(--space-xs);
815
- flex: 1;
816
- min-width: 0;
817
- }
818
-
819
- .roadmap-suggestion-card-title {
820
- font-size: 0.9rem;
821
- font-weight: 500;
822
- color: var(--text-primary);
823
- }
824
-
825
- .roadmap-suggestion-card-desc {
826
- font-size: 0.85rem;
827
- color: var(--text-muted);
828
- line-height: 1.4;
829
- }
830
-
831
- .roadmap-suggestion-card-actions {
832
- display: flex;
833
- gap: var(--space-xs);
834
- flex-shrink: 0;
835
- }
836
-
837
- .roadmap-suggestion-accept-btn {
838
- display: flex;
839
- align-items: center;
840
- justify-content: center;
841
- width: 28px;
842
- height: 28px;
843
- padding: 0;
844
- background: var(--color-success);
845
- color: var(--cta-text);
846
- border: none;
847
- border-radius: var(--radius-sm);
848
- cursor: pointer;
849
- transition: opacity var(--transition-fast), transform var(--transition-instant);
850
- }
851
-
852
- .roadmap-suggestion-accept-btn:hover {
853
- opacity: 0.9;
854
- }
855
-
856
- .roadmap-suggestion-accept-btn:active {
857
- transform: scale(0.95);
858
- }
859
-
860
- .roadmap-suggestion-accept-btn:disabled {
861
- opacity: 0.5;
862
- cursor: not-allowed;
863
- }
864
-
865
- .roadmap-suggestion-edit-btn {
866
- display: flex;
867
- align-items: center;
868
- justify-content: center;
869
- width: 28px;
870
- height: 28px;
871
- padding: 0;
872
- background: var(--surface-elevated);
873
- color: var(--text-muted);
874
- border: 1px solid var(--border);
875
- border-radius: var(--radius-sm);
876
- cursor: pointer;
877
- transition: background-color var(--transition-fast), color var(--transition-fast);
878
- }
879
-
880
- .roadmap-suggestion-edit-btn:hover {
881
- background: var(--surface-hover);
882
- color: var(--text-primary);
883
- }
884
-
885
- .roadmap-suggestion-card--editing {
886
- background: var(--surface-elevated);
887
- border-color: var(--accent);
888
- }
889
-
890
- .roadmap-suggestion-edit-form {
891
- display: flex;
892
- flex-direction: column;
893
- gap: var(--space-sm);
894
- flex: 1;
895
- min-width: 0;
896
- }
897
-
898
- .roadmap-suggestion-textarea {
899
- width: 100%;
900
- padding: var(--space-sm);
901
- background: var(--bg);
902
- color: var(--text-primary);
903
- border: 1px solid var(--border);
904
- border-radius: var(--radius-sm);
905
- font-size: 0.9rem;
906
- font-family: inherit;
907
- resize: vertical;
908
- transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
909
- }
910
-
911
- .roadmap-suggestion-textarea:focus {
912
- outline: none;
913
- border-color: var(--accent);
914
- box-shadow: var(--focus-ring);
915
- }
916
-
917
- .roadmap-suggestion-textarea::placeholder {
918
- color: var(--text-dim);
919
- }
920
-
921
- .roadmap-suggestion-edit-actions {
922
- display: flex;
923
- gap: var(--space-xs);
924
- }
925
-
926
- .roadmap-suggestion-save-btn {
927
- display: flex;
928
- align-items: center;
929
- justify-content: center;
930
- width: 28px;
931
- height: 28px;
932
- padding: 0;
933
- background: var(--color-success);
934
- color: var(--cta-text);
935
- border: none;
936
- border-radius: var(--radius-sm);
937
- cursor: pointer;
938
- transition: opacity var(--transition-fast);
939
- }
940
-
941
- .roadmap-suggestion-save-btn:hover:not(:disabled) {
942
- opacity: 0.9;
943
- }
944
-
945
- .roadmap-suggestion-save-btn:disabled {
946
- opacity: 0.5;
947
- cursor: not-allowed;
948
- }
949
-
950
- .roadmap-suggestion-cancel-btn {
951
- display: flex;
952
- align-items: center;
953
- justify-content: center;
954
- width: 28px;
955
- height: 28px;
956
- padding: 0;
957
- background: var(--surface-elevated);
958
- color: var(--text-muted);
959
- border: 1px solid var(--border);
960
- border-radius: var(--radius-sm);
961
- cursor: pointer;
962
- transition: background-color var(--transition-fast), color var(--transition-fast);
963
- }
964
-
965
- .roadmap-suggestion-cancel-btn:hover {
966
- background: var(--surface-hover);
967
- color: var(--text-primary);
968
- }
969
-
970
- /* === Mobile Suggestion Panel Expand/Collapse === */
971
-
972
- .roadmap-suggestion-expand-btn {
973
- width: 100%;
974
- display: flex;
975
- align-items: center;
976
- justify-content: center;
977
- gap: var(--space-sm);
978
- background: var(--surface);
979
- border: 1px solid var(--border);
980
- border-radius: var(--radius-md);
981
- padding: var(--space-md) var(--space-lg);
982
- color: var(--text-primary);
983
- cursor: pointer;
984
- font-size: 0.9rem;
985
- font-weight: 600;
986
- transition: background var(--transition-fast), color var(--transition-fast);
987
- }
988
-
989
- .roadmap-suggestion-expand-btn:hover:not(:disabled) {
990
- background: var(--card-hover);
991
- }
992
-
993
- .roadmap-suggestion-expand-btn:active:not(:disabled) {
994
- transform: scale(0.98);
995
- }
996
-
997
- .roadmap-suggestion-expand-btn:disabled {
998
- opacity: 0.5;
999
- cursor: not-allowed;
1000
- }
1001
-
1002
- .roadmap-suggestion-collapse-btn {
1003
- display: flex;
1004
- align-items: center;
1005
- justify-content: center;
1006
- background: none;
1007
- border: none;
1008
- color: var(--text-muted);
1009
- cursor: pointer;
1010
- padding: var(--space-xs);
1011
- border-radius: var(--radius-sm);
1012
- transition: color var(--transition-fast);
1013
- }
1014
-
1015
- .roadmap-suggestion-collapse-btn:hover {
1016
- color: var(--text-primary);
1017
- }
1018
-
1019
- /* Mobile responsive */
1020
- @media (max-width: 768px) {
1021
- /* Allow vertical scrolling on mobile for roadmap list and detail views */
1022
- .roadmaps-view {
1023
- overflow-y: auto;
1024
- -webkit-overflow-scrolling: touch;
1025
- }
1026
-
1027
- .roadmaps-view__sidebar {
1028
- display: none;
1029
- }
1030
-
1031
- /* Allow vertical scrolling in the main content area on mobile */
1032
- .roadmaps-view__main {
1033
- overflow-y: auto;
1034
- -webkit-overflow-scrolling: touch;
1035
- flex: 1;
1036
- padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
1037
- }
1038
-
1039
- /* Mobile Roadmap List */
1040
- .roadmaps-view__mobile-list {
1041
- display: flex;
1042
- flex-direction: column;
1043
- width: 100%;
1044
- height: 100%;
1045
- background: var(--surface);
1046
- }
1047
-
1048
- .roadmaps-view__mobile-list-header {
1049
- display: flex;
1050
- align-items: center;
1051
- justify-content: space-between;
1052
- padding: var(--space-md) var(--space-lg);
1053
- border-bottom: 1px solid var(--border);
1054
- flex-shrink: 0;
1055
- }
1056
-
1057
- .roadmaps-view__mobile-list-title {
1058
- margin: 0;
1059
- font-size: 1rem;
1060
- font-weight: 600;
1061
- color: var(--text);
1062
- }
1063
-
1064
- .roadmaps-view__mobile-add-btn {
1065
- display: flex;
1066
- align-items: center;
1067
- justify-content: center;
1068
- width: 36px;
1069
- height: 36px;
1070
- border: none;
1071
- border-radius: var(--radius-md);
1072
- background: var(--accent);
1073
- color: var(--cta-text);
1074
- cursor: pointer;
1075
- transition: opacity var(--transition-fast);
1076
- }
1077
-
1078
- .roadmaps-view__mobile-add-btn:hover {
1079
- opacity: 0.85;
1080
- }
1081
-
1082
- .roadmaps-view__mobile-add-btn:focus-visible {
1083
- outline: none;
1084
- box-shadow: var(--focus-ring-strong);
1085
- }
1086
-
1087
- .roadmaps-view__mobile-create-form {
1088
- padding: var(--space-md);
1089
- border-bottom: 1px solid var(--border);
1090
- background: var(--bg);
1091
- }
1092
-
1093
- .roadmaps-view__mobile-list-items {
1094
- flex: 1;
1095
- overflow-y: auto;
1096
- }
1097
-
1098
- .roadmaps-view__mobile-item {
1099
- display: flex;
1100
- align-items: center;
1101
- justify-content: space-between;
1102
- padding: var(--space-md) var(--space-lg);
1103
- border-bottom: 1px solid var(--border);
1104
- min-height: 44px;
1105
- cursor: pointer;
1106
- transition: background var(--transition-fast);
1107
- }
1108
-
1109
- .roadmaps-view__mobile-item:hover {
1110
- background: var(--surface-hover);
1111
- }
1112
-
1113
- .roadmaps-view__mobile-item--active {
1114
- background: color-mix(in srgb, var(--accent) 10%, transparent);
1115
- border-left: 3px solid var(--accent);
1116
- }
1117
-
1118
- .roadmaps-view__mobile-item-content {
1119
- flex: 1;
1120
- min-width: 0;
1121
- display: flex;
1122
- flex-direction: column;
1123
- gap: 2px;
1124
- }
1125
-
1126
- .roadmaps-view__mobile-item-title {
1127
- font-weight: 500;
1128
- color: var(--text);
1129
- white-space: nowrap;
1130
- overflow: hidden;
1131
- text-overflow: ellipsis;
1132
- }
1133
-
1134
- .roadmaps-view__mobile-item-desc {
1135
- font-size: 0.8rem;
1136
- color: var(--text-muted);
1137
- white-space: nowrap;
1138
- overflow: hidden;
1139
- text-overflow: ellipsis;
1140
- }
1141
-
1142
- .roadmaps-view__mobile-item-actions {
1143
- display: flex;
1144
- gap: var(--space-xs);
1145
- flex-shrink: 0;
1146
- }
1147
-
1148
- .roadmaps-view__mobile-action-btn {
1149
- display: flex;
1150
- align-items: center;
1151
- justify-content: center;
1152
- width: 36px;
1153
- height: 36px;
1154
- border: none;
1155
- border-radius: var(--radius-md);
1156
- background: transparent;
1157
- color: var(--text-muted);
1158
- cursor: pointer;
1159
- transition: background var(--transition-fast), color var(--transition-fast);
1160
- }
1161
-
1162
- .roadmaps-view__mobile-action-btn:hover {
1163
- background: var(--surface-hover);
1164
- color: var(--text);
1165
- }
1166
-
1167
- .roadmaps-view__mobile-action-btn:focus-visible {
1168
- outline: none;
1169
- box-shadow: var(--focus-ring-strong);
1170
- }
1171
-
1172
- .roadmaps-view__mobile-action-btn--danger:hover {
1173
- background: color-mix(in srgb, var(--color-error) 10%, transparent);
1174
- color: var(--color-error);
1175
- }
1176
-
1177
- .roadmaps-view__mobile-empty {
1178
- display: flex;
1179
- flex-direction: column;
1180
- align-items: center;
1181
- justify-content: center;
1182
- gap: var(--space-md);
1183
- padding: var(--space-2xl);
1184
- color: var(--text-muted);
1185
- text-align: center;
1186
- }
1187
-
1188
- /* Mobile Roadmap Header (shown when roadmap selected) */
1189
- .roadmaps-view__mobile-header {
1190
- display: flex;
1191
- align-items: center;
1192
- gap: var(--space-sm);
1193
- padding: var(--space-sm) var(--space-md);
1194
- border-bottom: 1px solid var(--border);
1195
- background: var(--surface);
1196
- flex-shrink: 0;
1197
- position: sticky;
1198
- top: 0;
1199
- z-index: 10;
1200
- }
1201
-
1202
- .roadmaps-view__mobile-back-btn {
1203
- display: flex;
1204
- align-items: center;
1205
- justify-content: center;
1206
- width: 36px;
1207
- height: 36px;
1208
- border: none;
1209
- border-radius: var(--radius-md);
1210
- background: transparent;
1211
- color: var(--text-muted);
1212
- cursor: pointer;
1213
- transition: background var(--transition-fast), color var(--transition-fast);
1214
- flex-shrink: 0;
1215
- }
1216
-
1217
- .roadmaps-view__mobile-back-btn:hover {
1218
- background: var(--surface-hover);
1219
- color: var(--text);
1220
- }
1221
-
1222
- .roadmaps-view__mobile-back-btn:focus-visible {
1223
- outline: none;
1224
- box-shadow: var(--focus-ring-strong);
1225
- }
1226
-
1227
- .roadmaps-view__mobile-header-title {
1228
- flex: 1;
1229
- margin: 0;
1230
- font-size: 1rem;
1231
- font-weight: 600;
1232
- color: var(--text);
1233
- white-space: nowrap;
1234
- overflow: hidden;
1235
- text-overflow: ellipsis;
1236
- }
1237
-
1238
- .roadmaps-view__mobile-header-actions {
1239
- display: flex;
1240
- gap: var(--space-xs);
1241
- flex-shrink: 0;
1242
- }
1243
-
1244
- /* Mobile milestone lanes */
1245
- .roadmaps-view__milestone-lanes {
1246
- flex-direction: column;
1247
- overflow-x: hidden;
1248
- overflow-y: auto;
1249
- padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
1250
- }
1251
-
1252
- .roadmaps-view__milestone {
1253
- width: 100%;
1254
- min-width: unset;
1255
- }
1256
-
1257
- /* Roadmap suggestion mobile styles */
1258
- .roadmap-suggestion-section {
1259
- padding: var(--space-md);
1260
- margin: var(--space-md);
1261
- }
1262
-
1263
- .roadmap-suggestion-actions {
1264
- flex-wrap: wrap;
1265
- }
1266
-
1267
- .roadmap-suggestion-generate-btn {
1268
- flex: 1;
1269
- }
1270
-
1271
- .roadmap-suggestion-accept-all-btn {
1272
- flex: 1;
1273
- }
1274
-
1275
- .roadmap-suggestion-card {
1276
- padding: var(--space-sm);
1277
- }
1278
-
1279
- /* Mobile roadmap header section */
1280
- .roadmaps-view__roadmap-header {
1281
- padding: var(--space-md) var(--space-lg);
1282
- }
1283
-
1284
- /* Mobile create form on desktop sidebar for roadmaps - ensure proper sizing */
1285
- .roadmaps-view__create-form {
1286
- margin: var(--space-sm);
1287
- }
1288
-
1289
- /* Bump icon button touch targets to 36px on mobile */
1290
- .roadmaps-view__icon-btn {
1291
- width: 36px;
1292
- height: 36px;
1293
- }
1294
-
1295
- /* Feature create overlay - offset from mobile nav bar */
1296
- .roadmaps-view__feature-create-overlay {
1297
- bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px) + var(--space-md));
1298
- }
1299
- }