@plannotator/ui 0.22.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 (305) hide show
  1. package/README.md +60 -0
  2. package/assets/diff-options.png +0 -0
  3. package/assets/icon-codex.png +0 -0
  4. package/assets/look-flat.png +0 -0
  5. package/assets/look-grid.png +0 -0
  6. package/assets/review-sections.png +0 -0
  7. package/assets/review-tree.png +0 -0
  8. package/assets/workspaces.webp +0 -0
  9. package/components/AISettingsTab.tsx +145 -0
  10. package/components/ActionMenu.tsx +101 -0
  11. package/components/AgentControls.tsx +216 -0
  12. package/components/AgentsTab.tsx +1294 -0
  13. package/components/AnnotationPanel.tsx +731 -0
  14. package/components/AnnotationSidebar.tsx +86 -0
  15. package/components/AnnotationToolbar.tsx +323 -0
  16. package/components/AnnotationToolstrip.tsx +355 -0
  17. package/components/ApproveDropdown.tsx +170 -0
  18. package/components/AttachmentsButton.tsx +410 -0
  19. package/components/BlockRenderer.tsx +163 -0
  20. package/components/BorderTrail.tsx +38 -0
  21. package/components/CodeFilePicker.tsx +64 -0
  22. package/components/CodeFilePopout.tsx +602 -0
  23. package/components/CodePathValidationContext.tsx +14 -0
  24. package/components/CommentPopover.tsx +512 -0
  25. package/components/CompletionOverlay.tsx +99 -0
  26. package/components/ConfirmDialog.tsx +128 -0
  27. package/components/DocBadges.tsx +231 -0
  28. package/components/EditorAnnotationCard.tsx +65 -0
  29. package/components/ExportModal.tsx +565 -0
  30. package/components/FloatingQuickLabelPicker.tsx +144 -0
  31. package/components/GitHubIcon.tsx +16 -0
  32. package/components/GitLabIcon.tsx +30 -0
  33. package/components/GraphvizBlock.tsx +511 -0
  34. package/components/ImageAnnotator/Canvas.tsx +118 -0
  35. package/components/ImageAnnotator/Toolbar.tsx +218 -0
  36. package/components/ImageAnnotator/index.tsx +272 -0
  37. package/components/ImageAnnotator/types.ts +39 -0
  38. package/components/ImageAnnotator/utils.ts +147 -0
  39. package/components/ImageThumbnail.tsx +126 -0
  40. package/components/ImportModal.tsx +146 -0
  41. package/components/InlineMarkdown.tsx +1094 -0
  42. package/components/KeyboardShortcuts.tsx +208 -0
  43. package/components/Landing.tsx +496 -0
  44. package/components/ListItemBody.tsx +62 -0
  45. package/components/ListMarker.tsx +73 -0
  46. package/components/LookAndFeelAnnouncementDialog.tsx +230 -0
  47. package/components/MarkdownEditor.tsx +44 -0
  48. package/components/MenuVersionSection.tsx +91 -0
  49. package/components/MermaidBlock.tsx +579 -0
  50. package/components/ModeToggle.tsx +68 -0
  51. package/components/OpenInAppButton.tsx +299 -0
  52. package/components/OverlayScrollArea.tsx +82 -0
  53. package/components/PermissionModeSetup.tsx +92 -0
  54. package/components/PinpointOverlay.tsx +99 -0
  55. package/components/PlanAIAnnouncementDialog.tsx +187 -0
  56. package/components/PlanHeaderMenu.tsx +299 -0
  57. package/components/PopoutDialog.tsx +91 -0
  58. package/components/Popover.tsx +27 -0
  59. package/components/ProviderIcons.tsx +51 -0
  60. package/components/PullRequestIcon.tsx +12 -0
  61. package/components/QuickLabelDropdown.tsx +63 -0
  62. package/components/RenderedMarkdown.tsx +54 -0
  63. package/components/RepoIcon.tsx +12 -0
  64. package/components/ResizeHandle.tsx +86 -0
  65. package/components/ReviewAgentsIcon.tsx +18 -0
  66. package/components/SearchableSelect.tsx +157 -0
  67. package/components/Settings.tsx +2220 -0
  68. package/components/SparklesIcon.tsx +45 -0
  69. package/components/StickyHeaderLane.tsx +260 -0
  70. package/components/TableOfContents.tsx +157 -0
  71. package/components/TaterSpritePullup.tsx +34 -0
  72. package/components/TaterSpriteRunning.tsx +54 -0
  73. package/components/TaterSpriteSitting.tsx +37 -0
  74. package/components/TextShimmer.tsx +57 -0
  75. package/components/ThemeProvider.tsx +162 -0
  76. package/components/ThemeTab.tsx +139 -0
  77. package/components/ToolbarButtons.tsx +116 -0
  78. package/components/Tooltip.tsx +45 -0
  79. package/components/Viewer.tsx +977 -0
  80. package/components/ai/AIProviderBar.tsx +95 -0
  81. package/components/ai/DocumentAIChatPanel.tsx +313 -0
  82. package/components/blocks/AlertBlock.tsx +58 -0
  83. package/components/blocks/Callout.tsx +60 -0
  84. package/components/blocks/CodeBlock.tsx +75 -0
  85. package/components/blocks/HtmlBlock.tsx +122 -0
  86. package/components/blocks/MathBlock.tsx +36 -0
  87. package/components/blocks/TableBlock.tsx +146 -0
  88. package/components/blocks/TablePopout.tsx +279 -0
  89. package/components/blocks/TableToolbar.tsx +153 -0
  90. package/components/blocks/proseBody.tsx +102 -0
  91. package/components/core/button.tsx +44 -0
  92. package/components/core/textarea.tsx +26 -0
  93. package/components/diagramLanguages.ts +14 -0
  94. package/components/goal-setup/GoalSetupSurface.tsx +1354 -0
  95. package/components/html-viewer/HtmlViewer.tsx +386 -0
  96. package/components/html-viewer/bridge-script.ts +505 -0
  97. package/components/html-viewer/index.ts +1 -0
  98. package/components/html-viewer/useHtmlAnnotation.ts +400 -0
  99. package/components/icons/AgentIcons.tsx +66 -0
  100. package/components/icons/AppIcon.tsx +56 -0
  101. package/components/icons/MessagesIcon.tsx +11 -0
  102. package/components/icons/ObsidianIcons.tsx +208 -0
  103. package/components/icons/app/android-studio.svg +369 -0
  104. package/components/icons/app/antigravity.svg +97 -0
  105. package/components/icons/app/cursor.svg +16 -0
  106. package/components/icons/app/file-explorer.svg +20 -0
  107. package/components/icons/app/finder.png +0 -0
  108. package/components/icons/app/ghostty.svg +13 -0
  109. package/components/icons/app/iterm2.svg +13 -0
  110. package/components/icons/app/powershell.svg +14 -0
  111. package/components/icons/app/sublime-text.svg +17 -0
  112. package/components/icons/app/terminal.png +0 -0
  113. package/components/icons/app/textmate.png +0 -0
  114. package/components/icons/app/vscode.svg +39 -0
  115. package/components/icons/app/warp.png +0 -0
  116. package/components/icons/app/xcode.png +0 -0
  117. package/components/icons/app/zed-dark.svg +15 -0
  118. package/components/icons/app/zed.svg +15 -0
  119. package/components/icons/themeIcons.tsx +47 -0
  120. package/components/mermaidSvg.ts +33 -0
  121. package/components/plan-diff/PlanCleanDiffView.tsx +884 -0
  122. package/components/plan-diff/PlanDiffBadge.tsx +48 -0
  123. package/components/plan-diff/PlanDiffModeSwitcher.tsx +103 -0
  124. package/components/plan-diff/PlanDiffViewer.tsx +214 -0
  125. package/components/plan-diff/PlanRawDiffView.tsx +102 -0
  126. package/components/plan-diff/VSCodeIcon.tsx +132 -0
  127. package/components/settings/HooksTab.tsx +208 -0
  128. package/components/sidebar/ArchiveBrowser.tsx +98 -0
  129. package/components/sidebar/CountBadge.tsx +12 -0
  130. package/components/sidebar/FileBrowser.tsx +498 -0
  131. package/components/sidebar/MessagesBrowser.tsx +109 -0
  132. package/components/sidebar/SidebarContainer.tsx +353 -0
  133. package/components/sidebar/SidebarTabs.tsx +155 -0
  134. package/components/sidebar/VersionBrowser.tsx +141 -0
  135. package/components/types.d.ts +7 -0
  136. package/components/ui/badge.tsx +44 -0
  137. package/components/ui/button.tsx +83 -0
  138. package/components/ui/card.tsx +58 -0
  139. package/components/ui/dialog.tsx +106 -0
  140. package/components/ui/dropdown-menu.tsx +240 -0
  141. package/components/ui/state-pill.tsx +45 -0
  142. package/components/ui/tabs.tsx +46 -0
  143. package/components/ui/textarea.tsx +25 -0
  144. package/config/configStore.ts +214 -0
  145. package/config/index.ts +4 -0
  146. package/config/reviewView.ts +42 -0
  147. package/config/settings.ts +310 -0
  148. package/config/useConfig.ts +20 -0
  149. package/configure.ts +69 -0
  150. package/globals.d.ts +14 -0
  151. package/hooks/pfm/useCodeFilePopout.ts +111 -0
  152. package/hooks/useAIChat.ts +532 -0
  153. package/hooks/useAIProviderConfig.ts +115 -0
  154. package/hooks/useActiveSection.ts +78 -0
  155. package/hooks/useAgentJobs.ts +306 -0
  156. package/hooks/useAgentSettings.ts +579 -0
  157. package/hooks/useAgents.ts +90 -0
  158. package/hooks/useAnnotationDraft.ts +523 -0
  159. package/hooks/useAnnotationHighlighter.ts +1170 -0
  160. package/hooks/useArchive.ts +171 -0
  161. package/hooks/useAutoClose.ts +104 -0
  162. package/hooks/useCodeAnnotationDraft.ts +194 -0
  163. package/hooks/useCodeFilePopout.ts +1 -0
  164. package/hooks/useDismissOnOutsideAndEscape.ts +50 -0
  165. package/hooks/useDraggable.ts +108 -0
  166. package/hooks/useEditorAnnotations.ts +64 -0
  167. package/hooks/useExternalAnnotationHighlights.ts +105 -0
  168. package/hooks/useExternalAnnotations.ts +268 -0
  169. package/hooks/useFileBrowser.ts +402 -0
  170. package/hooks/useInputMethodSwitch.ts +89 -0
  171. package/hooks/useIsMobile.ts +17 -0
  172. package/hooks/useLinkedDoc.ts +494 -0
  173. package/hooks/useOverlayViewport.ts +36 -0
  174. package/hooks/usePinpoint.ts +182 -0
  175. package/hooks/usePlanDiff.ts +176 -0
  176. package/hooks/usePrintMode.ts +27 -0
  177. package/hooks/useResizablePanel.ts +173 -0
  178. package/hooks/useScrollViewport.ts +38 -0
  179. package/hooks/useSharing.ts +441 -0
  180. package/hooks/useSidebar.ts +55 -0
  181. package/hooks/useUpdateCheck.ts +132 -0
  182. package/hooks/useValidatedCodePaths.ts +94 -0
  183. package/icons/GitUser.tsx +17 -0
  184. package/lib/utils.ts +11 -0
  185. package/package.json +117 -0
  186. package/plannotator.webp +0 -0
  187. package/print.css +427 -0
  188. package/shortcuts/code-review/ai.shortcuts.ts +25 -0
  189. package/shortcuts/code-review/allFilesDiff.shortcuts.ts +46 -0
  190. package/shortcuts/code-review/annotationToolbar.shortcuts.ts +30 -0
  191. package/shortcuts/code-review/fileTree.shortcuts.ts +35 -0
  192. package/shortcuts/code-review/prComments.shortcuts.ts +18 -0
  193. package/shortcuts/code-review/suggestionModal.shortcuts.ts +25 -0
  194. package/shortcuts/code-review/tourDialog.shortcuts.ts +18 -0
  195. package/shortcuts/core.ts +399 -0
  196. package/shortcuts/index.ts +21 -0
  197. package/shortcuts/plan-review/annotationPanel.shortcuts.ts +25 -0
  198. package/shortcuts/plan-review/annotationToolbar.shortcuts.ts +39 -0
  199. package/shortcuts/plan-review/commentPopover.shortcuts.ts +21 -0
  200. package/shortcuts/plan-review/goalSetup.shortcuts.ts +10 -0
  201. package/shortcuts/plan-review/imageAnnotator.shortcuts.ts +42 -0
  202. package/shortcuts/plan-review/inputMethod.shortcuts.ts +30 -0
  203. package/shortcuts/plan-review/sidebar.shortcuts.ts +34 -0
  204. package/shortcuts/plan-review/viewer.shortcuts.ts +24 -0
  205. package/shortcuts/runtime.ts +259 -0
  206. package/sprite_package_additional/index.html +34 -0
  207. package/sprite_package_additional/sprite.png +0 -0
  208. package/sprite_package_new/index.html +34 -0
  209. package/sprite_package_new/sprite.png +0 -0
  210. package/sprite_package_pulluphang/index.html +34 -0
  211. package/sprite_package_pulluphang/sprite.png +0 -0
  212. package/styles.css +1 -0
  213. package/theme.css +893 -0
  214. package/themes/adwaita.css +62 -0
  215. package/themes/andromeeda.css +66 -0
  216. package/themes/aurora-x.css +66 -0
  217. package/themes/ayu-dark.css +66 -0
  218. package/themes/caffeine.css +113 -0
  219. package/themes/catppuccin.css +62 -0
  220. package/themes/claude-plus.css +60 -0
  221. package/themes/cursor-hc.css +34 -0
  222. package/themes/cursor-midnight.css +34 -0
  223. package/themes/cursor.css +62 -0
  224. package/themes/dark-plus.css +66 -0
  225. package/themes/doom-64.css +109 -0
  226. package/themes/dracula.css +33 -0
  227. package/themes/everforest-hard.css +62 -0
  228. package/themes/everforest-soft.css +62 -0
  229. package/themes/everforest.css +62 -0
  230. package/themes/github.css +66 -0
  231. package/themes/gruvbox.css +62 -0
  232. package/themes/houston.css +66 -0
  233. package/themes/kanagawa-dragon.css +34 -0
  234. package/themes/kanagawa-lotus.css +34 -0
  235. package/themes/kanagawa-wave.css +34 -0
  236. package/themes/laserwave.css +66 -0
  237. package/themes/material.css +62 -0
  238. package/themes/min.css +66 -0
  239. package/themes/monokai-pro.css +34 -0
  240. package/themes/neutral.css +59 -0
  241. package/themes/night-owl.css +66 -0
  242. package/themes/nord.css +66 -0
  243. package/themes/one-dark-pro.css +66 -0
  244. package/themes/one-light.css +66 -0
  245. package/themes/paulmillr.css +34 -0
  246. package/themes/plannotator.css +60 -0
  247. package/themes/plastic.css +66 -0
  248. package/themes/poimandres.css +66 -0
  249. package/themes/quantum-rose.css +109 -0
  250. package/themes/red.css +66 -0
  251. package/themes/rose-pine.css +62 -0
  252. package/themes/simple.css +124 -0
  253. package/themes/slack.css +66 -0
  254. package/themes/snazzy-light.css +66 -0
  255. package/themes/soft-pop.css +60 -0
  256. package/themes/solar-dusk.css +109 -0
  257. package/themes/solarized.css +66 -0
  258. package/themes/synthwave-84.css +34 -0
  259. package/themes/terminal.css +62 -0
  260. package/themes/tinacious.css +57 -0
  261. package/themes/tokyo-night.css +62 -0
  262. package/themes/vesper.css +62 -0
  263. package/themes/vitesse-black.css +66 -0
  264. package/themes/vitesse.css +62 -0
  265. package/types.ts +264 -0
  266. package/utils/agentSwitch.ts +71 -0
  267. package/utils/aiChatFormat.ts +33 -0
  268. package/utils/aiPrompt.ts +29 -0
  269. package/utils/aiProvider.ts +217 -0
  270. package/utils/anchors.ts +11 -0
  271. package/utils/annotateAgentTerminal.ts +29 -0
  272. package/utils/annotationHelpers.ts +101 -0
  273. package/utils/bear.ts +59 -0
  274. package/utils/blockTargeting.ts +240 -0
  275. package/utils/callback.ts +99 -0
  276. package/utils/commentContent.ts +8 -0
  277. package/utils/defaultNotesApp.ts +20 -0
  278. package/utils/diffFonts.ts +33 -0
  279. package/utils/editorMode.ts +31 -0
  280. package/utils/fileBrowser.ts +40 -0
  281. package/utils/generateId.ts +7 -0
  282. package/utils/generateIdentity.ts +29 -0
  283. package/utils/identity.ts +112 -0
  284. package/utils/inlineTransforms.ts +41 -0
  285. package/utils/inputMethod.ts +17 -0
  286. package/utils/lookAndFeelAnnouncement.ts +18 -0
  287. package/utils/obsidian.ts +201 -0
  288. package/utils/octarine.ts +53 -0
  289. package/utils/parser.ts +991 -0
  290. package/utils/permissionMode.ts +77 -0
  291. package/utils/planAIAnnouncement.ts +17 -0
  292. package/utils/planAgentInstructions.ts +137 -0
  293. package/utils/planDiffEngine.ts +590 -0
  294. package/utils/planSave.ts +49 -0
  295. package/utils/platform.ts +11 -0
  296. package/utils/quickLabels.ts +77 -0
  297. package/utils/reviewAgentInstructions.ts +182 -0
  298. package/utils/sanitizeHtml.ts +45 -0
  299. package/utils/sharing.ts +350 -0
  300. package/utils/slugify.ts +37 -0
  301. package/utils/storage.ts +141 -0
  302. package/utils/themeRegistry.ts +567 -0
  303. package/utils/uiPreferences.ts +34 -0
  304. package/utils/upload.ts +56 -0
  305. package/utils/wideMode.ts +48 -0
@@ -0,0 +1,66 @@
1
+ /* Poimandres — by drcmda */
2
+ .theme-poimandres {
3
+ --background: #1b1e28;
4
+ --foreground: #a6accd;
5
+ --card: #303340;
6
+ --card-foreground: #a6accd;
7
+ --popover: #303340;
8
+ --popover-foreground: #a6accd;
9
+ --primary: #add7ff;
10
+ --primary-foreground: #1b1e28;
11
+ --secondary: #252934;
12
+ --secondary-foreground: #767c9d;
13
+ --muted: #252934;
14
+ --muted-foreground: #767c9d;
15
+ --accent: #5de4c7;
16
+ --accent-foreground: #1b1e28;
17
+ --destructive: #d0679d;
18
+ --destructive-foreground: #1b1e28;
19
+ --border: #3b3f4f;
20
+ --input: #252934;
21
+ --ring: #add7ff;
22
+ --success: #5de4c7;
23
+ --success-foreground: #1b1e28;
24
+ --warning: #fffac2;
25
+ --warning-foreground: #1b1e28;
26
+
27
+ --font-sans: system-ui, sans-serif;
28
+ --font-mono: 'Fira Code', ui-monospace, monospace;
29
+ --radius: 0.625rem;
30
+
31
+ --code-bg: #252934;
32
+ --focus-highlight: #add7ff;
33
+ }
34
+
35
+ .theme-poimandres.light {
36
+ --background: #1b1e28;
37
+ --foreground: #a6accd;
38
+ --card: #303340;
39
+ --card-foreground: #a6accd;
40
+ --popover: #303340;
41
+ --popover-foreground: #a6accd;
42
+ --primary: #add7ff;
43
+ --primary-foreground: #1b1e28;
44
+ --secondary: #252934;
45
+ --secondary-foreground: #767c9d;
46
+ --muted: #252934;
47
+ --muted-foreground: #767c9d;
48
+ --accent: #5de4c7;
49
+ --accent-foreground: #1b1e28;
50
+ --destructive: #d0679d;
51
+ --destructive-foreground: #1b1e28;
52
+ --border: #3b3f4f;
53
+ --input: #252934;
54
+ --ring: #add7ff;
55
+ --success: #5de4c7;
56
+ --success-foreground: #1b1e28;
57
+ --warning: #fffac2;
58
+ --warning-foreground: #1b1e28;
59
+
60
+ --font-sans: system-ui, sans-serif;
61
+ --font-mono: 'Fira Code', ui-monospace, monospace;
62
+ --radius: 0.625rem;
63
+
64
+ --code-bg: #252934;
65
+ --focus-highlight: #add7ff;
66
+ }
@@ -0,0 +1,109 @@
1
+ .theme-quantum-rose {
2
+ --background: #1a0922;
3
+ --foreground: #ffb3ff;
4
+ --card: #2a1435;
5
+ --card-foreground: #ffb3ff;
6
+ --popover: #2a1435;
7
+ --popover-foreground: #ffb3ff;
8
+ --primary: #ff6bef;
9
+ --primary-foreground: #180518;
10
+ --secondary: #46204f;
11
+ --secondary-foreground: #ffb3ff;
12
+ --muted: #331941;
13
+ --muted-foreground: #d67ad6;
14
+ --accent: #c06ec4;
15
+ --accent-foreground: #1a0922;
16
+ --destructive: #ff2876;
17
+ --destructive-foreground: #f9f9f9;
18
+ --border: #4a1b5f;
19
+ --input: #46204f;
20
+ --ring: #ff6bef;
21
+ --chart-1: #ff6bef;
22
+ --chart-2: #c359e3;
23
+ --chart-3: #9161ff;
24
+ --chart-4: #6f73e2;
25
+ --chart-5: #547aff;
26
+ --sidebar: #1c0d25;
27
+ --sidebar-foreground: #ffb3ff;
28
+ --sidebar-primary: #ff6bef;
29
+ --sidebar-primary-foreground: #180518;
30
+ --sidebar-accent: #5a1f5d;
31
+ --sidebar-accent-foreground: #ffb3ff;
32
+ --sidebar-border: #4a1b5f;
33
+ --sidebar-ring: #ff6bef;
34
+ --font-sans: Quicksand, sans-serif;
35
+ --font-serif: Playfair Display, serif;
36
+ --font-mono: Space Mono, monospace;
37
+ --radius: 0.625rem;
38
+ --shadow-2xs: 0px 3px 0px 0px hsl(300 80% 50% / 0.09);
39
+ --shadow-xs: 0px 3px 0px 0px hsl(300 80% 50% / 0.09);
40
+ --shadow-sm: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 1px 2px -1px hsl(300 80% 50% / 0.18);
41
+ --shadow: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 1px 2px -1px hsl(300 80% 50% / 0.18);
42
+ --shadow-md: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 2px 4px -1px hsl(300 80% 50% / 0.18);
43
+ --shadow-lg: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 4px 6px -1px hsl(300 80% 50% / 0.18);
44
+ --shadow-xl: 0px 3px 0px 0px hsl(300 80% 50% / 0.18), 0px 8px 10px -1px hsl(300 80% 50% / 0.18);
45
+ --shadow-2xl: 0px 3px 0px 0px hsl(300 80% 50% / 0.45);
46
+
47
+ /* Plannotator extended tokens */
48
+ --success: oklch(0.72 0.17 150);
49
+ --success-foreground: oklch(0.15 0.02 260);
50
+ --warning: oklch(0.75 0.15 85);
51
+ --warning-foreground: oklch(0.20 0.02 260);
52
+ --code-bg: oklch(0.13 0.015 260);
53
+ --focus-highlight: oklch(0.70 0.20 200);
54
+ }
55
+
56
+ .theme-quantum-rose.light {
57
+ --background: #fff0f8;
58
+ --foreground: #91185c;
59
+ --card: #fff7fc;
60
+ --card-foreground: #91185c;
61
+ --popover: #fff7fc;
62
+ --popover-foreground: #91185c;
63
+ --primary: #e6067a;
64
+ --primary-foreground: #ffffff;
65
+ --secondary: #ffd6ff;
66
+ --secondary-foreground: #91185c;
67
+ --muted: #ffe3f2;
68
+ --muted-foreground: #c04283;
69
+ --accent: #ffc1e3;
70
+ --accent-foreground: #91185c;
71
+ --destructive: #d13869;
72
+ --destructive-foreground: #ffffff;
73
+ --border: #ffc7e6;
74
+ --input: #ffd6ff;
75
+ --ring: #e6067a;
76
+ --chart-1: #e6067a;
77
+ --chart-2: #c44b97;
78
+ --chart-3: #9969b6;
79
+ --chart-4: #7371bf;
80
+ --chart-5: #5e84ff;
81
+ --sidebar: #ffedf6;
82
+ --sidebar-foreground: #91185c;
83
+ --sidebar-primary: #e6067a;
84
+ --sidebar-primary-foreground: #ffffff;
85
+ --sidebar-accent: #ffc1e3;
86
+ --sidebar-accent-foreground: #91185c;
87
+ --sidebar-border: #ffddf0;
88
+ --sidebar-ring: #e6067a;
89
+ --font-sans: Poppins, sans-serif;
90
+ --font-serif: Playfair Display, serif;
91
+ --font-mono: Space Mono, monospace;
92
+ --radius: 0.625rem;
93
+ --shadow-2xs: 0px 3px 0px 0px hsl(330 70% 30% / 0.09);
94
+ --shadow-xs: 0px 3px 0px 0px hsl(330 70% 30% / 0.09);
95
+ --shadow-sm: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 1px 2px -1px hsl(330 70% 30% / 0.18);
96
+ --shadow: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 1px 2px -1px hsl(330 70% 30% / 0.18);
97
+ --shadow-md: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 2px 4px -1px hsl(330 70% 30% / 0.18);
98
+ --shadow-lg: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 4px 6px -1px hsl(330 70% 30% / 0.18);
99
+ --shadow-xl: 0px 3px 0px 0px hsl(330 70% 30% / 0.18), 0px 8px 10px -1px hsl(330 70% 30% / 0.18);
100
+ --shadow-2xl: 0px 3px 0px 0px hsl(330 70% 30% / 0.45);
101
+
102
+ /* Plannotator extended tokens */
103
+ --success: oklch(0.45 0.20 150);
104
+ --success-foreground: oklch(1 0 0);
105
+ --warning: oklch(0.55 0.18 85);
106
+ --warning-foreground: oklch(0.18 0.02 260);
107
+ --code-bg: oklch(0.96 0.005 260);
108
+ --focus-highlight: oklch(0.70 0.20 200);
109
+ }
package/themes/red.css ADDED
@@ -0,0 +1,66 @@
1
+ /* Red — by Thibaut Tiberghien */
2
+ .theme-red {
3
+ --background: #390000;
4
+ --foreground: #f8f8f8;
5
+ --card: #490000;
6
+ --card-foreground: #f8f8f8;
7
+ --popover: #490000;
8
+ --popover-foreground: #f8f8f8;
9
+ --primary: #cc3333;
10
+ --primary-foreground: #ffffff;
11
+ --secondary: #580000;
12
+ --secondary-foreground: #f8f8f8;
13
+ --muted: #580000;
14
+ --muted-foreground: #e7c0c0;
15
+ --accent: #ffd0aa;
16
+ --accent-foreground: #390000;
17
+ --destructive: #f12727;
18
+ --destructive-foreground: #ffffff;
19
+ --border: #660000;
20
+ --input: #580000;
21
+ --ring: #cc3333;
22
+ --success: #41a83e;
23
+ --success-foreground: #390000;
24
+ --warning: #fec758;
25
+ --warning-foreground: #390000;
26
+
27
+ --font-sans: system-ui, sans-serif;
28
+ --font-mono: 'Fira Code', ui-monospace, monospace;
29
+ --radius: 0.625rem;
30
+
31
+ --code-bg: #580000;
32
+ --focus-highlight: #cc3333;
33
+ }
34
+
35
+ .theme-red.light {
36
+ --background: #390000;
37
+ --foreground: #f8f8f8;
38
+ --card: #490000;
39
+ --card-foreground: #f8f8f8;
40
+ --popover: #490000;
41
+ --popover-foreground: #f8f8f8;
42
+ --primary: #cc3333;
43
+ --primary-foreground: #ffffff;
44
+ --secondary: #580000;
45
+ --secondary-foreground: #f8f8f8;
46
+ --muted: #580000;
47
+ --muted-foreground: #e7c0c0;
48
+ --accent: #ffd0aa;
49
+ --accent-foreground: #390000;
50
+ --destructive: #f12727;
51
+ --destructive-foreground: #ffffff;
52
+ --border: #660000;
53
+ --input: #580000;
54
+ --ring: #cc3333;
55
+ --success: #41a83e;
56
+ --success-foreground: #390000;
57
+ --warning: #fec758;
58
+ --warning-foreground: #390000;
59
+
60
+ --font-sans: system-ui, sans-serif;
61
+ --font-mono: 'Fira Code', ui-monospace, monospace;
62
+ --radius: 0.625rem;
63
+
64
+ --code-bg: #580000;
65
+ --focus-highlight: #cc3333;
66
+ }
@@ -0,0 +1,62 @@
1
+ /* Rosé Pine — Moon (dark) + Dawn (light) */
2
+ .theme-rose-pine {
3
+ --background: #191724;
4
+ --foreground: #e0def4;
5
+ --card: #26233a;
6
+ --card-foreground: #e0def4;
7
+ --popover: #26233a;
8
+ --popover-foreground: #e0def4;
9
+ --primary: #c4a7e7;
10
+ --primary-foreground: #191724;
11
+ --secondary: #403d52;
12
+ --secondary-foreground: #e0def4;
13
+ --muted: #26233a;
14
+ --muted-foreground: #6e6a86;
15
+ --accent: #f6c177;
16
+ --accent-foreground: #191724;
17
+ --destructive: #eb6f92;
18
+ --destructive-foreground: #191724;
19
+ --border: #403d52;
20
+ --input: #26233a;
21
+ --ring: #c4a7e7;
22
+ --success: #31748f;
23
+ --success-foreground: #e0def4;
24
+ --warning: #f6c177;
25
+ --warning-foreground: #191724;
26
+
27
+ --font-sans: system-ui, sans-serif;
28
+ --font-mono: ui-monospace, monospace;
29
+ --radius: 0.625rem;
30
+
31
+ --code-bg: #1f1d2e;
32
+ --focus-highlight: #9ccfd8;
33
+ }
34
+
35
+ .theme-rose-pine.light {
36
+ --background: #faf4ed;
37
+ --foreground: #575279;
38
+ --card: #fffaf3;
39
+ --card-foreground: #575279;
40
+ --popover: #fffaf3;
41
+ --popover-foreground: #575279;
42
+ --primary: #907aa9;
43
+ --primary-foreground: #faf4ed;
44
+ --secondary: #dfdad9;
45
+ --secondary-foreground: #575279;
46
+ --muted: #f2e9e1;
47
+ --muted-foreground: #9893a5;
48
+ --accent: #ea9d34;
49
+ --accent-foreground: #faf4ed;
50
+ --destructive: #b4637a;
51
+ --destructive-foreground: #faf4ed;
52
+ --border: #dfdad9;
53
+ --input: #f2e9e1;
54
+ --ring: #907aa9;
55
+ --success: #286983;
56
+ --success-foreground: #faf4ed;
57
+ --warning: #ea9d34;
58
+ --warning-foreground: #faf4ed;
59
+
60
+ --code-bg: #f2e9e1;
61
+ --focus-highlight: #56949f;
62
+ }
@@ -0,0 +1,124 @@
1
+ /* Simple — faithful port of the DiffKit goal-prototype palette (shadcn "neutral" base).
2
+ *
3
+ * The UI 2.0 reference scheme. Unlike most themes, this one pins EXPLICIT surface
4
+ * layers (--surface-0/1/2) instead of letting them derive from --muted, because the
5
+ * prototype's elevation steps UP from the card (card 0.205 → surface 0.21/0.245/0.28)
6
+ * while the global color-mix derivation would step DOWN. The explicit values preserve
7
+ * the prototype's layered card/row/hover look.
8
+ *
9
+ * Polarity note: the prototype is light-default (:root) + .dark override. Plannotator
10
+ * is dark-default (.theme-x) + .theme-x.light override. So the prototype's `.dark`
11
+ * block maps to `.theme-simple` and its `:root` block maps to `.theme-simple.light`.
12
+ */
13
+ .theme-simple {
14
+ --background: oklch(0.141 0.005 285.823);
15
+ --foreground: oklch(0.985 0 0);
16
+ --card: oklch(0.205 0.006 285.885);
17
+ --card-foreground: oklch(0.985 0 0);
18
+ --popover: oklch(0.225 0.006 285.885);
19
+ --popover-foreground: oklch(0.985 0 0);
20
+ --primary: oklch(0.985 0 0);
21
+ --primary-foreground: oklch(0.21 0.006 285.885);
22
+ --secondary: oklch(0.274 0.006 286.033);
23
+ --secondary-foreground: oklch(0.985 0 0);
24
+ --muted: oklch(0.16 0.005 285.823);
25
+ --muted-foreground: oklch(0.705 0.015 286.067);
26
+ --accent: oklch(0.274 0.006 286.033);
27
+ --accent-foreground: oklch(0.985 0 0);
28
+ /* --accent is a low-contrast neutral gray here, so the comment-annotation
29
+ * label/buttons use a legible blue instead (other themes inherit --accent). */
30
+ --annotation-comment: oklch(0.62 0.19 256);
31
+ --destructive: oklch(0.396 0.141 25.723);
32
+ --destructive-foreground: oklch(0.637 0.237 25.331);
33
+ --border: oklch(0.274 0.006 286.033);
34
+ --input: oklch(0.274 0.006 286.033);
35
+ --ring: oklch(0.442 0.017 285.786);
36
+
37
+ /* Plannotator tokens the prototype doesn't define (tuned to this palette) */
38
+ --success: oklch(0.62 0.194 149.214);
39
+ --success-foreground: oklch(0.985 0 0);
40
+ --warning: oklch(0.75 0.15 85);
41
+ --warning-foreground: oklch(0.21 0.006 285.885);
42
+
43
+ /* Explicit elevation — the prototype's layered look (steps up from card) */
44
+ --surface-0: oklch(0.21 0.006 286.033);
45
+ --surface-1: oklch(0.245 0.006 286.033);
46
+ --surface-2: oklch(0.28 0.006 286.033);
47
+
48
+ /* Sidebar (mirrors the prototype's dark sidebar tokens) */
49
+ --sidebar: oklch(0.21 0.006 285.885);
50
+ --sidebar-foreground: oklch(0.985 0 0);
51
+ --sidebar-primary: oklch(0.488 0.243 264.376);
52
+ --sidebar-primary-foreground: oklch(0.985 0 0);
53
+ --sidebar-accent: oklch(0.274 0.006 286.033);
54
+ --sidebar-accent-foreground: oklch(0.985 0 0);
55
+ --sidebar-border: oklch(0.274 0.006 286.033);
56
+ --sidebar-ring: oklch(0.442 0.017 285.786);
57
+
58
+ --font-sans: "Inter Variable", "Inter", ui-sans-serif, system-ui, sans-serif;
59
+ --font-mono: "Geist Mono Variable", "SF Mono", ui-monospace, monospace;
60
+ --radius: 0.625rem;
61
+
62
+ --code-bg: oklch(0.245 0.006 286.033);
63
+
64
+ /* Prototype extras (brand + chart) — available as raw vars for future use */
65
+ --brand: oklch(0.75 0.2 150);
66
+ --brand-dev: oklch(0.8 0.17 85);
67
+ --chart-1: oklch(0.488 0.243 264.376);
68
+ --chart-2: oklch(0.696 0.17 162.48);
69
+ --chart-3: oklch(0.769 0.188 70.08);
70
+ --chart-4: oklch(0.627 0.265 303.9);
71
+ --chart-5: oklch(0.645 0.246 16.439);
72
+ }
73
+
74
+ .theme-simple.light {
75
+ --background: oklch(1 0 0);
76
+ --foreground: oklch(0.141 0.005 285.823);
77
+ --card: oklch(1 0 0);
78
+ --card-foreground: oklch(0.141 0.005 285.823);
79
+ --popover: oklch(1 0 0);
80
+ --popover-foreground: oklch(0.141 0.005 285.823);
81
+ --primary: oklch(0.21 0.006 285.885);
82
+ --primary-foreground: oklch(0.985 0 0);
83
+ --secondary: oklch(0.967 0.001 286.375);
84
+ --secondary-foreground: oklch(0.21 0.006 285.885);
85
+ --muted: oklch(0.967 0.001 286.375);
86
+ --muted-foreground: oklch(0.552 0.016 285.938);
87
+ --accent: oklch(0.967 0.001 286.375);
88
+ --accent-foreground: oklch(0.21 0.006 285.885);
89
+ /* Darker blue for the near-white light card (other themes inherit --accent). */
90
+ --annotation-comment: oklch(0.52 0.20 256);
91
+ --destructive: oklch(0.577 0.245 27.325);
92
+ --destructive-foreground: oklch(0.577 0.245 27.325);
93
+ --border: oklch(0.92 0.004 286.32);
94
+ --input: oklch(0.92 0.004 286.32);
95
+ --ring: oklch(0.871 0.006 286.286);
96
+
97
+ --success: oklch(0.62 0.194 149.214);
98
+ --success-foreground: oklch(0.985 0 0);
99
+ --warning: oklch(0.55 0.18 85);
100
+ --warning-foreground: oklch(0.141 0.005 285.823);
101
+
102
+ --surface-0: oklch(0.967 0.001 286.375);
103
+ --surface-1: oklch(0.945 0.002 286.375);
104
+ --surface-2: oklch(0.925 0.003 286.375);
105
+
106
+ --sidebar: oklch(0.985 0 0);
107
+ --sidebar-foreground: oklch(0.141 0.005 285.823);
108
+ --sidebar-primary: oklch(0.21 0.006 285.885);
109
+ --sidebar-primary-foreground: oklch(0.985 0 0);
110
+ --sidebar-accent: oklch(0.967 0.001 286.375);
111
+ --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
112
+ --sidebar-border: oklch(0.92 0.004 286.32);
113
+ --sidebar-ring: oklch(0.871 0.006 286.286);
114
+
115
+ --code-bg: oklch(0.967 0.001 286.375);
116
+
117
+ --brand: oklch(0.68 0.2 150);
118
+ --brand-dev: oklch(0.75 0.17 85);
119
+ --chart-1: oklch(0.646 0.222 41.116);
120
+ --chart-2: oklch(0.6 0.118 184.704);
121
+ --chart-3: oklch(0.398 0.07 227.392);
122
+ --chart-4: oklch(0.828 0.189 84.429);
123
+ --chart-5: oklch(0.769 0.188 70.08);
124
+ }
@@ -0,0 +1,66 @@
1
+ /* Slack — dark + light */
2
+ .theme-slack {
3
+ --background: #222222;
4
+ --foreground: #e6e6e6;
5
+ --card: #292929;
6
+ --card-foreground: #e6e6e6;
7
+ --popover: #292929;
8
+ --popover-foreground: #e6e6e6;
9
+ --primary: #0077b5;
10
+ --primary-foreground: #ffffff;
11
+ --secondary: #141414;
12
+ --secondary-foreground: #e6e6e6;
13
+ --muted: #141414;
14
+ --muted-foreground: #6e7681;
15
+ --accent: #1d978d;
16
+ --accent-foreground: #ffffff;
17
+ --destructive: #f44747;
18
+ --destructive-foreground: #ffffff;
19
+ --border: #3a3d41;
20
+ --input: #292929;
21
+ --ring: #0077b5;
22
+ --success: #6a9955;
23
+ --success-foreground: #ffffff;
24
+ --warning: #cd9731;
25
+ --warning-foreground: #222222;
26
+
27
+ --font-sans: system-ui, sans-serif;
28
+ --font-mono: 'Fira Code', ui-monospace, monospace;
29
+ --radius: 0.625rem;
30
+
31
+ --code-bg: #141414;
32
+ --focus-highlight: #0077b5;
33
+ }
34
+
35
+ .theme-slack.light {
36
+ --background: #ffffff;
37
+ --foreground: #000000;
38
+ --card: #f3f3f3;
39
+ --card-foreground: #000000;
40
+ --popover: #f3f3f3;
41
+ --popover-foreground: #000000;
42
+ --primary: #5899c5;
43
+ --primary-foreground: #ffffff;
44
+ --secondary: #eeeeee;
45
+ --secondary-foreground: #000000;
46
+ --muted: #f3f3f3;
47
+ --muted-foreground: #6e7681;
48
+ --accent: #5899c5;
49
+ --accent-foreground: #ffffff;
50
+ --destructive: #f44c5e;
51
+ --destructive-foreground: #ffffff;
52
+ --border: #dcdedf;
53
+ --input: #dcdedf;
54
+ --ring: #5899c5;
55
+ --success: #91b859;
56
+ --success-foreground: #161f26;
57
+ --warning: #ffb62c;
58
+ --warning-foreground: #161f26;
59
+
60
+ --font-sans: system-ui, sans-serif;
61
+ --font-mono: 'Fira Code', ui-monospace, monospace;
62
+ --radius: 0.625rem;
63
+
64
+ --code-bg: #eeeeee;
65
+ --focus-highlight: #5899c5;
66
+ }
@@ -0,0 +1,66 @@
1
+ /* Snazzy Light — by Aleksandr Hovhannisyan */
2
+ .theme-snazzy-light {
3
+ --background: #fafbfc;
4
+ --foreground: #565869;
5
+ --card: #f3f4f5;
6
+ --card-foreground: #565869;
7
+ --popover: #f3f4f5;
8
+ --popover-foreground: #565869;
9
+ --primary: #09a1ed;
10
+ --primary-foreground: #ffffff;
11
+ --secondary: #e9eaeb;
12
+ --secondary-foreground: #565869;
13
+ --muted: #e9eaeb;
14
+ --muted-foreground: #9194a2;
15
+ --accent: #2dae58;
16
+ --accent-foreground: #ffffff;
17
+ --destructive: #ff5c56;
18
+ --destructive-foreground: #ffffff;
19
+ --border: #dedfe0;
20
+ --input: #e9eaeb;
21
+ --ring: #09a1ed;
22
+ --success: #2dae58;
23
+ --success-foreground: #ffffff;
24
+ --warning: #cf9c00;
25
+ --warning-foreground: #ffffff;
26
+
27
+ --font-sans: system-ui, sans-serif;
28
+ --font-mono: 'Fira Code', ui-monospace, monospace;
29
+ --radius: 0.625rem;
30
+
31
+ --code-bg: #e9eaeb;
32
+ --focus-highlight: #09a1ed;
33
+ }
34
+
35
+ .theme-snazzy-light.light {
36
+ --background: #fafbfc;
37
+ --foreground: #565869;
38
+ --card: #f3f4f5;
39
+ --card-foreground: #565869;
40
+ --popover: #f3f4f5;
41
+ --popover-foreground: #565869;
42
+ --primary: #09a1ed;
43
+ --primary-foreground: #ffffff;
44
+ --secondary: #e9eaeb;
45
+ --secondary-foreground: #565869;
46
+ --muted: #e9eaeb;
47
+ --muted-foreground: #9194a2;
48
+ --accent: #2dae58;
49
+ --accent-foreground: #ffffff;
50
+ --destructive: #ff5c56;
51
+ --destructive-foreground: #ffffff;
52
+ --border: #dedfe0;
53
+ --input: #e9eaeb;
54
+ --ring: #09a1ed;
55
+ --success: #2dae58;
56
+ --success-foreground: #ffffff;
57
+ --warning: #cf9c00;
58
+ --warning-foreground: #ffffff;
59
+
60
+ --font-sans: system-ui, sans-serif;
61
+ --font-mono: 'Fira Code', ui-monospace, monospace;
62
+ --radius: 0.625rem;
63
+
64
+ --code-bg: #e9eaeb;
65
+ --focus-highlight: #09a1ed;
66
+ }
@@ -0,0 +1,60 @@
1
+ .theme-soft-pop {
2
+ --background: oklch(0 0 0);
3
+ --foreground: oklch(1.0000 0 0);
4
+ --card: oklch(0.1500 0 0);
5
+ --card-foreground: oklch(1.0000 0 0);
6
+ --popover: oklch(0.1500 0 0);
7
+ --popover-foreground: oklch(1.0000 0 0);
8
+ --primary: oklch(0.6801 0.1583 276.9349);
9
+ --primary-foreground: oklch(1.0000 0 0);
10
+ --secondary: oklch(0.7845 0.1325 181.9120);
11
+ --secondary-foreground: oklch(0 0 0);
12
+ --muted: oklch(0.3211 0 0);
13
+ --muted-foreground: oklch(0.7000 0 0);
14
+ --accent: oklch(0.8790 0.1534 91.6054);
15
+ --accent-foreground: oklch(0 0 0);
16
+ --destructive: oklch(0.7106 0.1661 22.2162);
17
+ --destructive-foreground: oklch(1.0000 0 0);
18
+ --border: oklch(0.4459 0 0);
19
+ --input: oklch(0.3211 0 0);
20
+ --ring: oklch(0.6801 0.1583 276.9349);
21
+ --success: oklch(0.72 0.17 150);
22
+ --success-foreground: oklch(0.15 0.02 260);
23
+ --warning: oklch(0.75 0.15 85);
24
+ --warning-foreground: oklch(0.20 0.02 260);
25
+
26
+ --font-sans: 'DM Sans', sans-serif;
27
+ --font-mono: 'Space Mono', monospace;
28
+ --radius: 0.625rem;
29
+
30
+ --code-bg: oklch(0.08 0 0);
31
+ --focus-highlight: oklch(0.70 0.20 200);
32
+ }
33
+
34
+ .theme-soft-pop.light {
35
+ --background: oklch(0.9789 0.0082 121.6272);
36
+ --foreground: oklch(0 0 0);
37
+ --card: oklch(1.0000 0 0);
38
+ --card-foreground: oklch(0 0 0);
39
+ --popover: oklch(1.0000 0 0);
40
+ --popover-foreground: oklch(0 0 0);
41
+ --primary: oklch(0.5106 0.2301 276.9656);
42
+ --primary-foreground: oklch(1.0000 0 0);
43
+ --secondary: oklch(0.7038 0.1230 182.5025);
44
+ --secondary-foreground: oklch(0 0 0);
45
+ --muted: oklch(0.9551 0 0);
46
+ --muted-foreground: oklch(0.4000 0 0);
47
+ --accent: oklch(0.7686 0.1647 70.0804);
48
+ --accent-foreground: oklch(0 0 0);
49
+ --destructive: oklch(0.6368 0.2078 25.3313);
50
+ --destructive-foreground: oklch(1.0000 0 0);
51
+ --border: oklch(0 0 0);
52
+ --input: oklch(0.9551 0 0);
53
+ --ring: oklch(0.7853 0.1041 274.7134);
54
+ --success: oklch(0.45 0.20 150);
55
+ --success-foreground: oklch(1 0 0);
56
+ --warning: oklch(0.55 0.18 85);
57
+ --warning-foreground: oklch(0.18 0.02 260);
58
+
59
+ --code-bg: oklch(0.96 0.005 120);
60
+ }