@anthusai/papyrus 0.0.0 → 1.0.0-next.2

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 (254) hide show
  1. package/LICENSE +21 -0
  2. package/amplify/auth/resource.js +61 -0
  3. package/amplify/auth/resource.ts +65 -0
  4. package/amplify/data/resource.js +2037 -0
  5. package/amplify/data/resource.ts +2148 -0
  6. package/amplify/data/schema.js +1850 -0
  7. package/amplify/data/schema.ts +1953 -0
  8. package/amplify/functions/assignment-action/handler.ts +1416 -0
  9. package/amplify/functions/assignment-action/resource.js +8 -0
  10. package/amplify/functions/assignment-action/resource.ts +9 -0
  11. package/amplify/functions/category-action/handler.ts +2259 -0
  12. package/amplify/functions/category-action/resource.js +8 -0
  13. package/amplify/functions/category-action/resource.ts +9 -0
  14. package/amplify/functions/console-chat-responder/Cargo.lock +3456 -0
  15. package/amplify/functions/console-chat-responder/Cargo.toml +26 -0
  16. package/amplify/functions/console-chat-responder/Dockerfile +19 -0
  17. package/amplify/functions/console-chat-responder/py/execute_tactus_runner.py +116 -0
  18. package/amplify/functions/console-chat-responder/resource.js +153 -0
  19. package/amplify/functions/console-chat-responder/resource.ts +179 -0
  20. package/amplify/functions/console-chat-responder/src/main.rs +3242 -0
  21. package/amplify/functions/email-submission-processor/handler.py +46 -0
  22. package/amplify/functions/email-submission-processor/requirements.txt +2 -0
  23. package/amplify/functions/email-submission-processor/resource.js +56 -0
  24. package/amplify/functions/email-submission-processor/resource.ts +69 -0
  25. package/amplify/functions/graphql-jwt-authorizer/handler.ts +193 -0
  26. package/amplify/functions/graphql-jwt-authorizer/resource.js +14 -0
  27. package/amplify/functions/graphql-jwt-authorizer/resource.ts +15 -0
  28. package/amplify/functions/knowledge-query/handler.py +1 -0
  29. package/amplify/functions/knowledge-query/requirements.txt +3 -0
  30. package/amplify/functions/knowledge-query/resource.js +50 -0
  31. package/amplify/functions/knowledge-query/resource.ts +61 -0
  32. package/amplify/functions/manage-user-role/handler.ts +799 -0
  33. package/amplify/functions/manage-user-role/resource.js +8 -0
  34. package/amplify/functions/manage-user-role/resource.ts +9 -0
  35. package/amplify/functions/model-attachment-upload/handler.ts +387 -0
  36. package/amplify/functions/model-attachment-upload/resource.js +8 -0
  37. package/amplify/functions/model-attachment-upload/resource.ts +9 -0
  38. package/amplify/functions/newsroom-summary/handler.ts +321 -0
  39. package/amplify/functions/newsroom-summary/resource.js +8 -0
  40. package/amplify/functions/newsroom-summary/resource.ts +9 -0
  41. package/amplify/functions/procedure-action/handler.ts +621 -0
  42. package/amplify/functions/procedure-action/resource.js +8 -0
  43. package/amplify/functions/procedure-action/resource.ts +9 -0
  44. package/amplify/functions/reader-settings/handler.ts +322 -0
  45. package/amplify/functions/reader-settings/resource.js +8 -0
  46. package/amplify/functions/reader-settings/resource.ts +9 -0
  47. package/amplify/functions/ses-inbound-receive/handler.ts +493 -0
  48. package/amplify/functions/ses-inbound-receive/resource.js +8 -0
  49. package/amplify/functions/ses-inbound-receive/resource.ts +9 -0
  50. package/amplify/functions/shared/amplify-secrets.ts +65 -0
  51. package/amplify/functions/shared/console-chat-enqueue.ts +117 -0
  52. package/amplify/functions/shared/email-mime-intake.ts +196 -0
  53. package/amplify/functions/shared/email-submission.ts +415 -0
  54. package/amplify/functions/shared/inbound-email-intake.ts +37 -0
  55. package/amplify/functions/shared/lambda-data-client.ts +21 -0
  56. package/amplify/functions/shared/model-payloads.ts +186 -0
  57. package/amplify/functions/shared/python-bundle.js +115 -0
  58. package/amplify/functions/shared/python-bundle.ts +141 -0
  59. package/amplify/functions/shared/slack-events.ts +111 -0
  60. package/amplify/functions/slack-delivery/handler.py +112 -0
  61. package/amplify/functions/slack-delivery/requirements.txt +2 -0
  62. package/amplify/functions/slack-delivery/resource.js +38 -0
  63. package/amplify/functions/slack-delivery/resource.ts +51 -0
  64. package/amplify/functions/slack-events/handler.ts +155 -0
  65. package/amplify/functions/slack-events/resource.js +11 -0
  66. package/amplify/functions/slack-events/resource.ts +12 -0
  67. package/amplify/inbound-email/stack.js +46 -0
  68. package/amplify/inbound-email/stack.ts +61 -0
  69. package/amplify/package.json +3 -0
  70. package/amplify/site-backend-config.js +1 -0
  71. package/amplify/site-backend-config.ts +30 -0
  72. package/amplify/site-backend.js +587 -0
  73. package/amplify/site-backend.ts +704 -0
  74. package/amplify/storage/resource.js +18 -0
  75. package/amplify/storage/resource.ts +19 -0
  76. package/app/[year]/[month]/[day]/[articleSlug]/page.tsx +62 -0
  77. package/app/[year]/[month]/[day]/edition-route-page.tsx +53 -0
  78. package/app/[year]/[month]/[day]/page/[pageNumber]/page.tsx +32 -0
  79. package/app/[year]/[month]/[day]/page.tsx +22 -0
  80. package/app/[year]/[month]/[day]/section/[sectionKey]/page.tsx +32 -0
  81. package/app/api/archive/editions/route.ts +18 -0
  82. package/app/api/media/[...path]/route.ts +35 -0
  83. package/app/api/revalidate/route.ts +94 -0
  84. package/app/archive/page.tsx +24 -0
  85. package/app/articles/[slug]/page.tsx +35 -0
  86. package/app/globals.css +10329 -0
  87. package/app/layout.tsx +146 -0
  88. package/app/newsroom/[section]/[...selection]/page.tsx +50 -0
  89. package/app/newsroom/[section]/page.tsx +47 -0
  90. package/app/newsroom/forum/[threadId]/page.tsx +35 -0
  91. package/app/newsroom/insights/[threadId]/page.tsx +22 -0
  92. package/app/newsroom/insights/page.tsx +14 -0
  93. package/app/newsroom/layout.tsx +12 -0
  94. package/app/newsroom/page.tsx +31 -0
  95. package/app/newsroom/sections/[sectionId]/page.tsx +17 -0
  96. package/app/page.tsx +272 -0
  97. package/app/settings/page.tsx +14 -0
  98. package/app/tailwind.css +65 -0
  99. package/bin/papyrus-app.mjs +10 -0
  100. package/bin/papyrus-infra.mjs +39 -0
  101. package/components/ai-elements/conversation.tsx +168 -0
  102. package/components/ai-elements/message.tsx +360 -0
  103. package/components/ai-elements/model-selector.tsx +30 -0
  104. package/components/ai-elements/prompt-input.tsx +1461 -0
  105. package/components/ai-elements/shimmer.tsx +76 -0
  106. package/components/ai-elements/suggestion.tsx +54 -0
  107. package/components/ai-elements/tool.tsx +173 -0
  108. package/components/amplify-client-provider.tsx +140 -0
  109. package/components/archive-grid.tsx +89 -0
  110. package/components/archive-shell.tsx +41 -0
  111. package/components/article-video.tsx +47 -0
  112. package/components/blog-page-background.tsx +20 -0
  113. package/components/dev-sandbox-editor-sign-in.tsx +60 -0
  114. package/components/news-desk-client-provider.tsx +211 -0
  115. package/components/news-desk-page.tsx +119 -0
  116. package/components/news-desk-taxonomy-client.ts +3684 -0
  117. package/components/newspaper.tsx +1929 -0
  118. package/components/newsroom-assignments-view.tsx +664 -0
  119. package/components/newsroom-ops-overview.tsx +226 -0
  120. package/components/newsroom-ops-shell.tsx +319 -0
  121. package/components/newsroom-references-view.tsx +598 -0
  122. package/components/newsroom-topics-view.tsx +425 -0
  123. package/components/papyrus-console-shell.tsx +1912 -0
  124. package/components/pictogram-figure.tsx +65 -0
  125. package/components/presentation-footer.tsx +146 -0
  126. package/components/reader-auth-control.tsx +162 -0
  127. package/components/reader-auth-state.ts +122 -0
  128. package/components/reader-settings.ts +332 -0
  129. package/components/reader-theme-control.tsx +85 -0
  130. package/components/reference-source-preview.tsx +163 -0
  131. package/components/settings-page.tsx +239 -0
  132. package/components/topic-steering-workspace.tsx +18063 -0
  133. package/components/ui/badge.tsx +30 -0
  134. package/components/ui/button-group.tsx +87 -0
  135. package/components/ui/button.tsx +58 -0
  136. package/components/ui/card.tsx +32 -0
  137. package/components/ui/command.tsx +194 -0
  138. package/components/ui/dialog.tsx +158 -0
  139. package/components/ui/dropdown-menu.tsx +266 -0
  140. package/components/ui/hover-card.tsx +51 -0
  141. package/components/ui/input-group.tsx +158 -0
  142. package/components/ui/input.tsx +20 -0
  143. package/components/ui/scroll-area.tsx +16 -0
  144. package/components/ui/select.tsx +199 -0
  145. package/components/ui/separator.tsx +23 -0
  146. package/components/ui/sheet.tsx +92 -0
  147. package/components/ui/spinner.tsx +10 -0
  148. package/components/ui/tabs.tsx +113 -0
  149. package/components/ui/textarea.tsx +18 -0
  150. package/components/ui/tooltip.tsx +66 -0
  151. package/components/use-resolved-papyrus-theme.ts +47 -0
  152. package/infra/amplify-app-shell.js +109 -0
  153. package/infra/amplify-app-shell.ts +155 -0
  154. package/infra/index.js +12 -0
  155. package/lib/amplify-outputs-guard.ts +24 -0
  156. package/lib/amplify-outputs-path.ts +16 -0
  157. package/lib/amplify-server-runtime.ts +63 -0
  158. package/lib/archive-data.ts +30 -0
  159. package/lib/archive-types.ts +15 -0
  160. package/lib/articles.ts +320 -0
  161. package/lib/cached-content-repository.ts +89 -0
  162. package/lib/category-dashboard.ts +37 -0
  163. package/lib/category-repository.ts +1907 -0
  164. package/lib/console-chat-client.ts +1316 -0
  165. package/lib/console-web-context.ts +118 -0
  166. package/lib/content-load-timing.ts +23 -0
  167. package/lib/content-repository.ts +40 -0
  168. package/lib/content-types.ts +104 -0
  169. package/lib/define-site.js +3 -0
  170. package/lib/define-site.ts +21 -0
  171. package/lib/demo-amplify-outputs.ts +15 -0
  172. package/lib/dev-sandbox-editor-auth.ts +18 -0
  173. package/lib/doctrine.ts +128 -0
  174. package/lib/edition-routes.ts +155 -0
  175. package/lib/edition-sections.ts +111 -0
  176. package/lib/empty-edition-layout-plan.ts +109 -0
  177. package/lib/excerpts.ts +8 -0
  178. package/lib/graphql-content-repository.ts +986 -0
  179. package/lib/image-url.ts +10 -0
  180. package/lib/layout-plan.ts +981 -0
  181. package/lib/layout-scenarios.ts +564 -0
  182. package/lib/markus-body.ts +168 -0
  183. package/lib/markus-ir.ts +235 -0
  184. package/lib/markus-projection.ts +243 -0
  185. package/lib/markus-to-article.ts +93 -0
  186. package/lib/news-desk-session.ts +160 -0
  187. package/lib/newspaper-layout.ts +3459 -0
  188. package/lib/newsroom-assignments.ts +173 -0
  189. package/lib/newsroom-base-path.ts +48 -0
  190. package/lib/newsroom-card-layout.ts +102 -0
  191. package/lib/newsroom-category-drilldown.ts +133 -0
  192. package/lib/newsroom-demo-dashboard.ts +267 -0
  193. package/lib/newsroom-demo-profile.ts +46 -0
  194. package/lib/newsroom-forum-routes.ts +153 -0
  195. package/lib/newsroom-index-filters.ts +202 -0
  196. package/lib/newsroom-knowledge-query-request.ts +51 -0
  197. package/lib/newsroom-list-selection.ts +42 -0
  198. package/lib/newsroom-nav.ts +42 -0
  199. package/lib/newsroom-references.ts +116 -0
  200. package/lib/newsroom-sections.ts +52 -0
  201. package/lib/newsroom-topics.ts +118 -0
  202. package/lib/papyrus-object-kinds.ts +24 -0
  203. package/lib/papyrus-web-locations.ts +480 -0
  204. package/lib/pilobol-sample.ts +167 -0
  205. package/lib/presentation-footer.ts +92 -0
  206. package/lib/pretext-layout.ts +179 -0
  207. package/lib/public-placeholder-config.ts +102 -0
  208. package/lib/publication-items.ts +181 -0
  209. package/lib/reader-route-config.ts +1 -0
  210. package/lib/reader-static-params.ts +56 -0
  211. package/lib/reader-storage-url.ts +63 -0
  212. package/lib/reference-display.ts +74 -0
  213. package/lib/reference-policy.ts +97 -0
  214. package/lib/reference-source-preview.ts +175 -0
  215. package/lib/renderer-config.ts +50 -0
  216. package/lib/renderer.ts +87 -0
  217. package/lib/reporting-story-budget.ts +638 -0
  218. package/lib/semantic-graph.ts +554 -0
  219. package/lib/site-brand-tenant.ts +41 -0
  220. package/lib/site-brand.ts +179 -0
  221. package/lib/site-renderer.ts +17 -0
  222. package/lib/site-stack.ts +195 -0
  223. package/lib/themed-image.ts +30 -0
  224. package/lib/utils.ts +6 -0
  225. package/middleware.ts +78 -0
  226. package/package.json +296 -1
  227. package/publications/anth_us/brand.ts +68 -0
  228. package/publications/anth_us/theme.css +66 -0
  229. package/publications/papyrus/theme.css +11 -0
  230. package/publications/pilobol_us/brand.ts +37 -0
  231. package/publications/pilobol_us/theme.css +140 -0
  232. package/publications/threat_intelligence/blog-defense/graph.ts +636 -0
  233. package/publications/threat_intelligence/blog-defense/layout.ts +934 -0
  234. package/publications/threat_intelligence/blog-defense/page-background.tsx +590 -0
  235. package/publications/threat_intelligence/brand.ts +40 -0
  236. package/publications/threat_intelligence/pictograms/art.tsx +608 -0
  237. package/publications/threat_intelligence/pictograms/figure.tsx +82 -0
  238. package/publications/threat_intelligence/pictograms/registry.ts +30 -0
  239. package/publications/threat_intelligence/pictograms/system.tsx +305 -0
  240. package/publications/threat_intelligence/seed/seed-edition-content.json +629 -0
  241. package/publications/threat_intelligence/theme.css +1440 -0
  242. package/renderers/markus/index.ts +25 -0
  243. package/renderers/markus/stubs.tsx +33 -0
  244. package/renderers/pretext/article-page.tsx +174 -0
  245. package/renderers/pretext/index.ts +30 -0
  246. package/renderers/pretext/layouts.ts +16 -0
  247. package/renderers/pretext/presentation-shell.tsx +477 -0
  248. package/routes.manifest.json +182 -0
  249. package/scripts/fixtures/pilobol-sample.ast.json +234 -0
  250. package/src/backend.js +1 -0
  251. package/src/backend.ts +3 -0
  252. package/src/sync.mjs +87 -0
  253. package/src/with-papyrus.d.mts +2 -0
  254. package/src/with-papyrus.mjs +47 -0
package/package.json CHANGED
@@ -1 +1,296 @@
1
- {"name":"@anthusai/papyrus","version":"0.0.0","description":"Placeholder; releases are published by GitHub Actions.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/AnthusAI/Papyrus.git"}}
1
+ {
2
+ "name": "@anthusai/papyrus",
3
+ "description": "Papyrus newsroom app, Pretext renderer, theme packs, Amplify Gen 2 backend definition and app-shell CDK constructs (spike build).",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/AnthusAI/Papyrus.git"
8
+ },
9
+ "homepage": "https://github.com/AnthusAI/Papyrus#readme",
10
+ "keywords": [
11
+ "newsroom",
12
+ "publishing",
13
+ "nextjs",
14
+ "pretext",
15
+ "amplify"
16
+ ],
17
+ "type": "module",
18
+ "bin": {
19
+ "papyrus-app": "./bin/papyrus-app.mjs",
20
+ "papyrus-infra": "./bin/papyrus-infra.mjs"
21
+ },
22
+ "exports": {
23
+ ".": "./src/with-papyrus.mjs",
24
+ "./next": {
25
+ "types": "./src/with-papyrus.d.mts",
26
+ "default": "./src/with-papyrus.mjs"
27
+ },
28
+ "./backend": {
29
+ "types": "./src/backend.ts",
30
+ "default": "./src/backend.js"
31
+ },
32
+ "./define-site": {
33
+ "types": "./lib/define-site.ts",
34
+ "default": "./lib/define-site.js"
35
+ },
36
+ "./app/*": [
37
+ "./app/*.tsx",
38
+ "./app/*.ts",
39
+ "./app/*"
40
+ ],
41
+ "./components/*": [
42
+ "./components/*.tsx",
43
+ "./components/*.ts",
44
+ "./components/*"
45
+ ],
46
+ "./lib/*": [
47
+ "./lib/*.tsx",
48
+ "./lib/*.ts",
49
+ "./lib/*"
50
+ ],
51
+ "./renderers/*": [
52
+ "./renderers/*.tsx",
53
+ "./renderers/*.ts",
54
+ "./renderers/*"
55
+ ],
56
+ "./amplify/*": [
57
+ "./amplify/*.ts",
58
+ "./amplify/*"
59
+ ],
60
+ "./routes.manifest.json": "./routes.manifest.json",
61
+ "./package.json": "./package.json",
62
+ "./middleware": "./middleware.ts",
63
+ "./infra": {
64
+ "types": "./infra/amplify-app-shell.ts",
65
+ "default": "./infra/index.js"
66
+ },
67
+ "./components/ai-elements/conversation": "./components/ai-elements/conversation.tsx",
68
+ "./components/ai-elements/message": "./components/ai-elements/message.tsx",
69
+ "./components/ai-elements/model-selector": "./components/ai-elements/model-selector.tsx",
70
+ "./components/ai-elements/prompt-input": "./components/ai-elements/prompt-input.tsx",
71
+ "./components/ai-elements/shimmer": "./components/ai-elements/shimmer.tsx",
72
+ "./components/ai-elements/suggestion": "./components/ai-elements/suggestion.tsx",
73
+ "./components/ai-elements/tool": "./components/ai-elements/tool.tsx",
74
+ "./components/amplify-client-provider": "./components/amplify-client-provider.tsx",
75
+ "./components/archive-grid": "./components/archive-grid.tsx",
76
+ "./components/archive-shell": "./components/archive-shell.tsx",
77
+ "./components/article-video": "./components/article-video.tsx",
78
+ "./components/blog-page-background": "./components/blog-page-background.tsx",
79
+ "./components/dev-sandbox-editor-sign-in": "./components/dev-sandbox-editor-sign-in.tsx",
80
+ "./components/news-desk-client-provider": "./components/news-desk-client-provider.tsx",
81
+ "./components/news-desk-page": "./components/news-desk-page.tsx",
82
+ "./components/news-desk-taxonomy-client": "./components/news-desk-taxonomy-client.ts",
83
+ "./components/newspaper": "./components/newspaper.tsx",
84
+ "./components/newsroom-assignments-view": "./components/newsroom-assignments-view.tsx",
85
+ "./components/newsroom-ops-overview": "./components/newsroom-ops-overview.tsx",
86
+ "./components/newsroom-ops-shell": "./components/newsroom-ops-shell.tsx",
87
+ "./components/newsroom-references-view": "./components/newsroom-references-view.tsx",
88
+ "./components/newsroom-topics-view": "./components/newsroom-topics-view.tsx",
89
+ "./components/papyrus-console-shell": "./components/papyrus-console-shell.tsx",
90
+ "./components/pictogram-figure": "./components/pictogram-figure.tsx",
91
+ "./components/presentation-footer": "./components/presentation-footer.tsx",
92
+ "./components/reader-auth-control": "./components/reader-auth-control.tsx",
93
+ "./components/reader-auth-state": "./components/reader-auth-state.ts",
94
+ "./components/reader-settings": "./components/reader-settings.ts",
95
+ "./components/reader-theme-control": "./components/reader-theme-control.tsx",
96
+ "./components/reference-source-preview": "./components/reference-source-preview.tsx",
97
+ "./components/settings-page": "./components/settings-page.tsx",
98
+ "./components/topic-steering-workspace": "./components/topic-steering-workspace.tsx",
99
+ "./components/ui/badge": "./components/ui/badge.tsx",
100
+ "./components/ui/button-group": "./components/ui/button-group.tsx",
101
+ "./components/ui/button": "./components/ui/button.tsx",
102
+ "./components/ui/card": "./components/ui/card.tsx",
103
+ "./components/ui/command": "./components/ui/command.tsx",
104
+ "./components/ui/dialog": "./components/ui/dialog.tsx",
105
+ "./components/ui/dropdown-menu": "./components/ui/dropdown-menu.tsx",
106
+ "./components/ui/hover-card": "./components/ui/hover-card.tsx",
107
+ "./components/ui/input-group": "./components/ui/input-group.tsx",
108
+ "./components/ui/input": "./components/ui/input.tsx",
109
+ "./components/ui/scroll-area": "./components/ui/scroll-area.tsx",
110
+ "./components/ui/select": "./components/ui/select.tsx",
111
+ "./components/ui/separator": "./components/ui/separator.tsx",
112
+ "./components/ui/sheet": "./components/ui/sheet.tsx",
113
+ "./components/ui/spinner": "./components/ui/spinner.tsx",
114
+ "./components/ui/tabs": "./components/ui/tabs.tsx",
115
+ "./components/ui/textarea": "./components/ui/textarea.tsx",
116
+ "./components/ui/tooltip": "./components/ui/tooltip.tsx",
117
+ "./components/use-resolved-papyrus-theme": "./components/use-resolved-papyrus-theme.ts",
118
+ "./lib/amplify-outputs-guard": "./lib/amplify-outputs-guard.ts",
119
+ "./lib/amplify-outputs-path": "./lib/amplify-outputs-path.ts",
120
+ "./lib/amplify-server-runtime": "./lib/amplify-server-runtime.ts",
121
+ "./lib/archive-data": "./lib/archive-data.ts",
122
+ "./lib/archive-types": "./lib/archive-types.ts",
123
+ "./lib/articles": "./lib/articles.ts",
124
+ "./lib/cached-content-repository": "./lib/cached-content-repository.ts",
125
+ "./lib/category-dashboard": "./lib/category-dashboard.ts",
126
+ "./lib/category-repository": "./lib/category-repository.ts",
127
+ "./lib/console-chat-client": "./lib/console-chat-client.ts",
128
+ "./lib/console-web-context": "./lib/console-web-context.ts",
129
+ "./lib/content-load-timing": "./lib/content-load-timing.ts",
130
+ "./lib/content-repository": "./lib/content-repository.ts",
131
+ "./lib/content-types": "./lib/content-types.ts",
132
+ "./lib/define-site": "./lib/define-site.ts",
133
+ "./lib/demo-amplify-outputs": "./lib/demo-amplify-outputs.ts",
134
+ "./lib/dev-sandbox-editor-auth": "./lib/dev-sandbox-editor-auth.ts",
135
+ "./lib/doctrine": "./lib/doctrine.ts",
136
+ "./lib/edition-routes": "./lib/edition-routes.ts",
137
+ "./lib/edition-sections": "./lib/edition-sections.ts",
138
+ "./lib/empty-edition-layout-plan": "./lib/empty-edition-layout-plan.ts",
139
+ "./lib/excerpts": "./lib/excerpts.ts",
140
+ "./lib/graphql-content-repository": "./lib/graphql-content-repository.ts",
141
+ "./lib/image-url": "./lib/image-url.ts",
142
+ "./lib/layout-plan": "./lib/layout-plan.ts",
143
+ "./lib/layout-scenarios": "./lib/layout-scenarios.ts",
144
+ "./lib/markus-body": "./lib/markus-body.ts",
145
+ "./lib/markus-ir": "./lib/markus-ir.ts",
146
+ "./lib/markus-projection": "./lib/markus-projection.ts",
147
+ "./lib/markus-to-article": "./lib/markus-to-article.ts",
148
+ "./lib/news-desk-session": "./lib/news-desk-session.ts",
149
+ "./lib/newspaper-layout": "./lib/newspaper-layout.ts",
150
+ "./lib/newsroom-assignments": "./lib/newsroom-assignments.ts",
151
+ "./lib/newsroom-base-path": "./lib/newsroom-base-path.ts",
152
+ "./lib/newsroom-card-layout": "./lib/newsroom-card-layout.ts",
153
+ "./lib/newsroom-category-drilldown": "./lib/newsroom-category-drilldown.ts",
154
+ "./lib/newsroom-demo-dashboard": "./lib/newsroom-demo-dashboard.ts",
155
+ "./lib/newsroom-demo-profile": "./lib/newsroom-demo-profile.ts",
156
+ "./lib/newsroom-forum-routes": "./lib/newsroom-forum-routes.ts",
157
+ "./lib/newsroom-index-filters": "./lib/newsroom-index-filters.ts",
158
+ "./lib/newsroom-knowledge-query-request": "./lib/newsroom-knowledge-query-request.ts",
159
+ "./lib/newsroom-list-selection": "./lib/newsroom-list-selection.ts",
160
+ "./lib/newsroom-nav": "./lib/newsroom-nav.ts",
161
+ "./lib/newsroom-references": "./lib/newsroom-references.ts",
162
+ "./lib/newsroom-sections": "./lib/newsroom-sections.ts",
163
+ "./lib/newsroom-topics": "./lib/newsroom-topics.ts",
164
+ "./lib/papyrus-object-kinds": "./lib/papyrus-object-kinds.ts",
165
+ "./lib/papyrus-web-locations": "./lib/papyrus-web-locations.ts",
166
+ "./lib/pilobol-sample": "./lib/pilobol-sample.ts",
167
+ "./lib/presentation-footer": "./lib/presentation-footer.ts",
168
+ "./lib/pretext-layout": "./lib/pretext-layout.ts",
169
+ "./lib/public-placeholder-config": "./lib/public-placeholder-config.ts",
170
+ "./lib/publication-items": "./lib/publication-items.ts",
171
+ "./lib/reader-route-config": "./lib/reader-route-config.ts",
172
+ "./lib/reader-static-params": "./lib/reader-static-params.ts",
173
+ "./lib/reader-storage-url": "./lib/reader-storage-url.ts",
174
+ "./lib/reference-display": "./lib/reference-display.ts",
175
+ "./lib/reference-policy": "./lib/reference-policy.ts",
176
+ "./lib/reference-source-preview": "./lib/reference-source-preview.ts",
177
+ "./lib/renderer-config": "./lib/renderer-config.ts",
178
+ "./lib/renderer": "./lib/renderer.ts",
179
+ "./lib/reporting-story-budget": "./lib/reporting-story-budget.ts",
180
+ "./lib/semantic-graph": "./lib/semantic-graph.ts",
181
+ "./lib/site-brand-tenant": "./lib/site-brand-tenant.ts",
182
+ "./lib/site-brand": "./lib/site-brand.ts",
183
+ "./lib/site-renderer": "./lib/site-renderer.ts",
184
+ "./lib/site-stack": "./lib/site-stack.ts",
185
+ "./lib/themed-image": "./lib/themed-image.ts",
186
+ "./lib/utils": "./lib/utils.ts",
187
+ "./renderers/markus/index": "./renderers/markus/index.ts",
188
+ "./renderers/markus/stubs": "./renderers/markus/stubs.tsx",
189
+ "./renderers/pretext/article-page": "./renderers/pretext/article-page.tsx",
190
+ "./renderers/pretext/index": "./renderers/pretext/index.ts",
191
+ "./renderers/pretext/layouts": "./renderers/pretext/layouts.ts",
192
+ "./renderers/pretext/presentation-shell": "./renderers/pretext/presentation-shell.tsx",
193
+ "./app/[year]/[month]/[day]/[articleSlug]/page": "./app/[year]/[month]/[day]/[articleSlug]/page.tsx",
194
+ "./app/[year]/[month]/[day]/page": "./app/[year]/[month]/[day]/page.tsx",
195
+ "./app/[year]/[month]/[day]/page/[pageNumber]/page": "./app/[year]/[month]/[day]/page/[pageNumber]/page.tsx",
196
+ "./app/[year]/[month]/[day]/section/[sectionKey]/page": "./app/[year]/[month]/[day]/section/[sectionKey]/page.tsx",
197
+ "./app/api/archive/editions/route": "./app/api/archive/editions/route.ts",
198
+ "./app/api/media/[...path]/route": "./app/api/media/[...path]/route.ts",
199
+ "./app/api/revalidate/route": "./app/api/revalidate/route.ts",
200
+ "./app/archive/page": "./app/archive/page.tsx",
201
+ "./app/articles/[slug]/page": "./app/articles/[slug]/page.tsx",
202
+ "./app/layout": "./app/layout.tsx",
203
+ "./app/newsroom/[section]/[...selection]/page": "./app/newsroom/[section]/[...selection]/page.tsx",
204
+ "./app/newsroom/[section]/page": "./app/newsroom/[section]/page.tsx",
205
+ "./app/newsroom/forum/[threadId]/page": "./app/newsroom/forum/[threadId]/page.tsx",
206
+ "./app/newsroom/insights/[threadId]/page": "./app/newsroom/insights/[threadId]/page.tsx",
207
+ "./app/newsroom/insights/page": "./app/newsroom/insights/page.tsx",
208
+ "./app/newsroom/layout": "./app/newsroom/layout.tsx",
209
+ "./app/newsroom/page": "./app/newsroom/page.tsx",
210
+ "./app/newsroom/sections/[sectionId]/page": "./app/newsroom/sections/[sectionId]/page.tsx",
211
+ "./app/page": "./app/page.tsx",
212
+ "./app/settings/page": "./app/settings/page.tsx"
213
+ },
214
+ "files": [
215
+ "app",
216
+ "components",
217
+ "lib",
218
+ "renderers",
219
+ "amplify",
220
+ "publications",
221
+ "scripts",
222
+ "middleware.ts",
223
+ "bin",
224
+ "src",
225
+ "routes.manifest.json",
226
+ "LICENSE",
227
+ "infra"
228
+ ],
229
+ "peerDependencies": {
230
+ "next": "^15.5.18",
231
+ "react": "^19.2.6",
232
+ "react-dom": "^19.2.6",
233
+ "aws-cdk-lib": "^2.257.0",
234
+ "constructs": "^10.4.2",
235
+ "@aws-amplify/backend": "^1.22.0",
236
+ "@aws-amplify/backend-cli": "^1.8.2",
237
+ "@aws-amplify/seed": "^1.1.2"
238
+ },
239
+ "publishConfig": {
240
+ "access": "public"
241
+ },
242
+ "peerDependenciesMeta": {
243
+ "aws-cdk-lib": {
244
+ "optional": true
245
+ },
246
+ "constructs": {
247
+ "optional": true
248
+ },
249
+ "@aws-amplify/backend": {
250
+ "optional": true
251
+ },
252
+ "@aws-amplify/backend-cli": {
253
+ "optional": true
254
+ },
255
+ "@aws-amplify/seed": {
256
+ "optional": true
257
+ }
258
+ },
259
+ "version": "1.0.0-next.2",
260
+ "dependencies": {
261
+ "@aws-amplify/adapter-nextjs": "^1.7.3",
262
+ "@aws-sdk/client-cognito-identity-provider": "3.1045.0",
263
+ "@aws-sdk/client-lambda": "^3.1045.0",
264
+ "@aws-sdk/client-s3": "^3.1045.0",
265
+ "@aws-sdk/client-ssm": "^3.1045.0",
266
+ "@aws-sdk/s3-request-presigner": "^3.1045.0",
267
+ "@base-ui/react": "^1.5.0",
268
+ "@chenglou/pretext": "^0.0.7",
269
+ "@radix-ui/colors": "3.0.0",
270
+ "@streamdown/cjk": "^1.0.3",
271
+ "@streamdown/code": "^1.1.1",
272
+ "@streamdown/math": "^1.0.2",
273
+ "@streamdown/mermaid": "^1.0.2",
274
+ "@tailwindcss/postcss": "^4.3.0",
275
+ "ai": "^6.0.191",
276
+ "anthus-vultus": "github:AnthusAI/Vultus#af98d57",
277
+ "aws-amplify": "^6.17.0",
278
+ "class-variance-authority": "^0.7.1",
279
+ "clsx": "^2.1.1",
280
+ "cmdk": "^1.1.1",
281
+ "gray-matter": "^4.0.3",
282
+ "gsap": "^3.15.0",
283
+ "katex": "^0.17.0",
284
+ "lucide-react": "^1.16.0",
285
+ "motion": "^12.40.0",
286
+ "nanoid": "^5.1.11",
287
+ "shadcn": "^4.8.0",
288
+ "streamdown": "^2.5.0",
289
+ "tailwind-merge": "^3.6.0",
290
+ "tailwindcss": "^4.3.0",
291
+ "tw-animate-css": "^1.4.0",
292
+ "use-stick-to-bottom": "^1.1.4",
293
+ "yaml": "^2.9.0",
294
+ "zod": "^3.25.76"
295
+ }
296
+ }
@@ -0,0 +1,68 @@
1
+ import type { SiteBrand } from "../../lib/site-brand";
2
+ import { ANTH_US_THEME_PACK_TOKENS } from "../../lib/site-stack";
3
+
4
+ /**
5
+ * Site definition for the Anth.us publication on Papyrus.
6
+ *
7
+ * This is the **site**: masthead, theme pack, corpus wiring, deployment
8
+ * metadata. It is a sibling of `publications/anthus/`, which is the
9
+ * **editorial identity** (`style-profile.yml`, `editorial-rewrite-skill.yml`,
10
+ * `reference-samples/`) and is not touched by this file.
11
+ *
12
+ * Every string below is read off the live Gatsby site at `AnthusAI/Anth.us`:
13
+ * `gatsby-config.mjs` `siteMetadata` for the title/description/author,
14
+ * `src/components/header.js` for the wordmark, `gatsby-plugin-manifest` for
15
+ * "Anth.us AI Solutions", and `src/components/seo.js` for the
16
+ * `"<page> | Anthus"` title pattern.
17
+ */
18
+ export const anthUsBrand: SiteBrand = {
19
+ id: "anth-us",
20
+ appTitle: "Anthus",
21
+ appDescription:
22
+ "Anthus builds and operates self-aligning AI systems — custom models, agent harnesses, and evaluation loops with a human in the loop, grounded in 14 years of production operations.",
23
+ // The live header renders the bare word "Anthus" (Jersey 25, weight 900),
24
+ // not a dotted domain wordmark, so this is not "ANTH.US".
25
+ mastheadTitle: "Anthus",
26
+ mastheadSubtitle: "AI Solutions",
27
+ backToHomeLabel: "Back to Anthus",
28
+ articleTitleSuffix: "Anthus",
29
+ placeholderByline: "Ryan Porter",
30
+ // The source site is a blog with a long single-column measure, not a
31
+ // newsprint grid.
32
+ defaultPresentation: "blog",
33
+ textFont:
34
+ '"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif',
35
+ mastheadWordSplit: false,
36
+ mastheadDateFormat: "formatted",
37
+ mastheadSource: "brand",
38
+ sectionLinkStrategy: "route",
39
+ themePack: "anth-us",
40
+ themeTokens: ANTH_US_THEME_PACK_TOKENS,
41
+ renderer: { kind: "markus" },
42
+ hosting: { kind: "amplify-ssr" },
43
+ readerDeployment: {
44
+ kind: "amplify-static",
45
+ repository: "https://github.com/AnthusAI/Anth.us-Papyrus",
46
+ // `domain` and `amplifyAppId` are deliberately unset.
47
+ //
48
+ // This reader is a **staging** port of a live marketing site. Production
49
+ // `anth.us` stays pointed at the existing Gatsby build until the port has
50
+ // been reviewed, so writing `domain: "anth.us"` here would assert a
51
+ // canonical host this build does not serve. Staging runs on whatever
52
+ // hostname Amplify hands out. No DNS or domain association is configured
53
+ // anywhere in this repo for it.
54
+ //
55
+ // The repository is private while the port is half-finished; the URL above
56
+ // will 404 for anyone without access. That is expected, not a typo.
57
+ },
58
+ rootRoute: { kind: "newsroom" },
59
+ newsroomBasePath: "",
60
+ opsChrome: "app",
61
+ corpusKey: "anth-us",
62
+ // Declared paths. The YAML files themselves are not in the repo yet — see
63
+ // README.md "Not wired yet".
64
+ steeringConfigPath: "corpora/anth-us-steering.yml",
65
+ newsroomSectionsConfigPath: "corpora/anth-us-newsroom-sections.yml",
66
+ analysisProfilesPath: "corpora/anth-us-analysis-profiles.yml",
67
+ publicationName: "Anthus",
68
+ };
@@ -0,0 +1,66 @@
1
+ /* Anthus theme pack — colors only.
2
+ Hex values are read off the live Gatsby site at AnthusAI/Anth.us
3
+ (`src/styles/variables.scss` `:root`). That file is not loaded at runtime.
4
+ Shadcn owns typography. Do not set a font stack here.
5
+
6
+ Slot-by-slot provenance (including the three derived values) is documented
7
+ on ANTH_US_THEME_PACK_TOKENS in lib/site-stack.ts — keep the two in sync.
8
+
9
+ NO DARK BLOCK ON PURPOSE. The source site has no dark mode: its only
10
+ `prefers-color-scheme: dark` rule swaps two code-highlight tints. Porting a
11
+ light-only publication means pinning `color-scheme: light` rather than
12
+ inventing a dark palette. If Anthus later designs one, add it here and to
13
+ `ANTH_US_THEME_PACK_TOKENS.dark` together. */
14
+
15
+ :root[data-theme-pack="anth-us"],
16
+ :root[data-site-brand="anth-us"] {
17
+ color-scheme: light;
18
+ --theme-ink: #333333;
19
+ --theme-muted: #5f6b73;
20
+ --theme-paper: #f1f9fe;
21
+ --theme-card: #ffffff;
22
+ --theme-line: #cccccc;
23
+ --theme-moss: #dc5497;
24
+ --theme-ochre: #ff57b4;
25
+ --theme-quote: #9b165d;
26
+ --theme-tip: #0389d7;
27
+ --theme-caution: #e95800;
28
+ --theme-stage: #fedded;
29
+ --background: var(--theme-paper);
30
+ --foreground: var(--theme-ink);
31
+ --foreground-strong: var(--theme-ink);
32
+ --foreground-muted: var(--theme-muted);
33
+ --card: var(--theme-card);
34
+ --card-foreground: var(--theme-ink);
35
+ --popover: var(--theme-card);
36
+ --popover-foreground: var(--theme-ink);
37
+ --primary: var(--theme-moss);
38
+ --primary-foreground: var(--theme-card);
39
+ --secondary: var(--theme-stage);
40
+ --secondary-foreground: var(--theme-ink);
41
+ --muted: var(--theme-stage);
42
+ --muted-foreground: var(--theme-muted);
43
+ --accent: var(--theme-ochre);
44
+ --accent-foreground: var(--theme-card);
45
+ --border: var(--theme-line);
46
+ --input: var(--theme-line);
47
+ --ring: var(--theme-moss);
48
+ --destructive: var(--theme-caution);
49
+ --destructive-foreground: var(--theme-card);
50
+ --danger: var(--theme-caution);
51
+ --danger-foreground: var(--theme-card);
52
+ --surface: var(--theme-card);
53
+ --surface-foreground: var(--theme-ink);
54
+ --paper: var(--theme-paper);
55
+ --ink: var(--theme-ink);
56
+ }
57
+
58
+ /* The source site is light-only, so a dark-preferring browser must not be
59
+ handed a half-dark Anthus. Re-assert the light tokens inside the dark media
60
+ query for parity with how the other packs are structured. */
61
+ @media (prefers-color-scheme: dark) {
62
+ :root[data-theme-pack="anth-us"],
63
+ :root[data-site-brand="anth-us"] {
64
+ color-scheme: light;
65
+ }
66
+ }
@@ -0,0 +1,11 @@
1
+ /* Default Papyrus theme pack.
2
+ Identity mapping: consume the shared Shadcn :root tokens.
3
+ Other publications override --theme-* / --background under their own
4
+ data-theme-pack. Shared ops chrome never names this pack. */
5
+
6
+ :root[data-theme-pack="papyrus"] {
7
+ --theme-paper: var(--background);
8
+ --theme-moss: var(--primary);
9
+ --theme-ochre: var(--accent);
10
+ --theme-ink: var(--foreground);
11
+ }
@@ -0,0 +1,37 @@
1
+ import type { SiteBrand } from "../../lib/site-brand";
2
+ import { PILOBOL_US_THEME_PACK_TOKENS } from "../../lib/site-stack";
3
+
4
+ export const pilobolUsBrand: SiteBrand = {
5
+ id: "pilobol-us",
6
+ appTitle: "Pilobolus",
7
+ appDescription: "Pilobolus publication on Papyrus (Pilobol.us).",
8
+ mastheadTitle: "PILOBOL.US",
9
+ mastheadSubtitle: "Field notes",
10
+ backToHomeLabel: "Back to Pilobolus",
11
+ articleTitleSuffix: "Pilobolus",
12
+ placeholderByline: "Pilobolus",
13
+ defaultPresentation: "magazine",
14
+ textFont: 'ui-sans-serif, system-ui, "Plus Jakarta Sans", sans-serif',
15
+ mastheadWordSplit: false,
16
+ mastheadDateFormat: "formatted",
17
+ mastheadSource: "brand",
18
+ sectionLinkStrategy: "route",
19
+ themePack: "pilobol-us",
20
+ themeTokens: PILOBOL_US_THEME_PACK_TOKENS,
21
+ renderer: { kind: "markus" },
22
+ hosting: { kind: "amplify-ssr" },
23
+ readerDeployment: {
24
+ kind: "amplify-static",
25
+ repository: "https://github.com/AnthusAI/Pilobol.us",
26
+ domain: "pilobol.us",
27
+ amplifyAppId: "d1od6t7lzbwanr",
28
+ },
29
+ rootRoute: { kind: "newsroom" },
30
+ newsroomBasePath: "",
31
+ opsChrome: "app",
32
+ corpusKey: "pilobol-us",
33
+ steeringConfigPath: "corpora/pilobol-us-steering.yml",
34
+ newsroomSectionsConfigPath: "corpora/pilobol-us-newsroom-sections.yml",
35
+ analysisProfilesPath: "corpora/pilobol-us-analysis-profiles.yml",
36
+ publicationName: "Pilobolus",
37
+ };
@@ -0,0 +1,140 @@
1
+ /* Pilobolus theme pack — colors only.
2
+ Hex values are copied from AnthusAI/Pilobol.us `web/css/pilobil-theme-v10.css`
3
+ (`pilobil-` spelling is the live filename; a `pilobol-theme-v10.css` rename
4
+ may follow). That file is not loaded at runtime.
5
+ Shadcn owns typography. Do not set a font stack here. */
6
+
7
+ :root[data-theme-pack="pilobol-us"],
8
+ :root[data-site-brand="pilobol-us"] {
9
+ color-scheme: light;
10
+ --theme-ink: #211d17;
11
+ --theme-muted: #6b6153;
12
+ --theme-paper: #f1ead9;
13
+ --theme-card: #fbf6ea;
14
+ --theme-line: #d7cbb2;
15
+ --theme-moss: #3f5d43;
16
+ --theme-ochre: #a35a2a;
17
+ --theme-quote: #4a3548;
18
+ --theme-tip: #4f6b3a;
19
+ --theme-caution: #8a3324;
20
+ --theme-stage: #ddd4bf;
21
+ --background: var(--theme-paper);
22
+ --foreground: var(--theme-ink);
23
+ --foreground-strong: var(--theme-ink);
24
+ --foreground-muted: var(--theme-muted);
25
+ --card: var(--theme-card);
26
+ --card-foreground: var(--theme-ink);
27
+ --popover: var(--theme-card);
28
+ --popover-foreground: var(--theme-ink);
29
+ --primary: var(--theme-moss);
30
+ --primary-foreground: var(--theme-paper);
31
+ --secondary: var(--theme-stage);
32
+ --secondary-foreground: var(--theme-ink);
33
+ --muted: var(--theme-stage);
34
+ --muted-foreground: var(--theme-muted);
35
+ --accent: var(--theme-ochre);
36
+ --accent-foreground: var(--theme-paper);
37
+ --border: var(--theme-line);
38
+ --input: var(--theme-line);
39
+ --ring: var(--theme-moss);
40
+ --destructive: var(--theme-caution);
41
+ --destructive-foreground: var(--theme-paper);
42
+ --danger: var(--theme-caution);
43
+ --danger-foreground: var(--theme-paper);
44
+ --surface: var(--theme-card);
45
+ --surface-foreground: var(--theme-ink);
46
+ --paper: var(--theme-paper);
47
+ --ink: var(--theme-ink);
48
+ }
49
+
50
+ @media (prefers-color-scheme: dark) {
51
+ :root[data-theme-pack="pilobol-us"]:not([data-papyrus-theme="light"]):not(.light-theme),
52
+ :root[data-site-brand="pilobol-us"]:not([data-papyrus-theme="light"]):not(.light-theme) {
53
+ color-scheme: dark;
54
+ --theme-ink: #dfded0;
55
+ --theme-muted: #8b9184;
56
+ --theme-paper: #14170f;
57
+ --theme-card: #1c2117;
58
+ --theme-line: #333b2a;
59
+ --theme-moss: #b7d18a;
60
+ --theme-ochre: #d0895a;
61
+ --theme-quote: #b7a3c4;
62
+ --theme-tip: #9fce7a;
63
+ --theme-caution: #d17e6e;
64
+ --theme-stage: #0d0f0a;
65
+ --background: var(--theme-paper);
66
+ --foreground: var(--theme-ink);
67
+ --foreground-strong: var(--theme-ink);
68
+ --foreground-muted: var(--theme-muted);
69
+ --card: var(--theme-card);
70
+ --card-foreground: var(--theme-ink);
71
+ --popover: var(--theme-card);
72
+ --popover-foreground: var(--theme-ink);
73
+ --primary: var(--theme-moss);
74
+ --primary-foreground: var(--theme-stage);
75
+ --secondary: var(--theme-card);
76
+ --secondary-foreground: var(--theme-ink);
77
+ --muted: var(--theme-card);
78
+ --muted-foreground: var(--theme-muted);
79
+ --accent: var(--theme-ochre);
80
+ --accent-foreground: var(--theme-stage);
81
+ --border: var(--theme-line);
82
+ --input: var(--theme-line);
83
+ --ring: var(--theme-moss);
84
+ --destructive: var(--theme-caution);
85
+ --destructive-foreground: var(--theme-stage);
86
+ --danger: var(--theme-caution);
87
+ --danger-foreground: var(--theme-stage);
88
+ --surface: var(--theme-card);
89
+ --surface-foreground: var(--theme-ink);
90
+ --paper: var(--theme-paper);
91
+ --ink: var(--theme-ink);
92
+ }
93
+ }
94
+
95
+ :root.dark[data-theme-pack="pilobol-us"],
96
+ :root.dark-theme[data-theme-pack="pilobol-us"],
97
+ :root[data-theme-pack="pilobol-us"][data-papyrus-theme="dark"],
98
+ :root.dark[data-site-brand="pilobol-us"],
99
+ :root.dark-theme[data-site-brand="pilobol-us"],
100
+ :root[data-site-brand="pilobol-us"][data-papyrus-theme="dark"] {
101
+ color-scheme: dark;
102
+ --theme-ink: #dfded0;
103
+ --theme-muted: #8b9184;
104
+ --theme-paper: #14170f;
105
+ --theme-card: #1c2117;
106
+ --theme-line: #333b2a;
107
+ --theme-moss: #b7d18a;
108
+ --theme-ochre: #d0895a;
109
+ --theme-quote: #b7a3c4;
110
+ --theme-tip: #9fce7a;
111
+ --theme-caution: #d17e6e;
112
+ --theme-stage: #0d0f0a;
113
+ --background: var(--theme-paper);
114
+ --foreground: var(--theme-ink);
115
+ --foreground-strong: var(--theme-ink);
116
+ --foreground-muted: var(--theme-muted);
117
+ --card: var(--theme-card);
118
+ --card-foreground: var(--theme-ink);
119
+ --popover: var(--theme-card);
120
+ --popover-foreground: var(--theme-ink);
121
+ --primary: var(--theme-moss);
122
+ --primary-foreground: var(--theme-stage);
123
+ --secondary: var(--theme-card);
124
+ --secondary-foreground: var(--theme-ink);
125
+ --muted: var(--theme-card);
126
+ --muted-foreground: var(--theme-muted);
127
+ --accent: var(--theme-ochre);
128
+ --accent-foreground: var(--theme-stage);
129
+ --border: var(--theme-line);
130
+ --input: var(--theme-line);
131
+ --ring: var(--theme-moss);
132
+ --destructive: var(--theme-caution);
133
+ --destructive-foreground: var(--theme-stage);
134
+ --danger: var(--theme-caution);
135
+ --danger-foreground: var(--theme-stage);
136
+ --surface: var(--theme-card);
137
+ --surface-foreground: var(--theme-ink);
138
+ --paper: var(--theme-paper);
139
+ --ink: var(--theme-ink);
140
+ }