@anthusai/papyrus 1.0.0-next.2 → 1.0.0-next.4
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.
- package/amplify/data/resource.js +26 -0
- package/amplify/data/resource.ts +30 -0
- package/amplify/data/schema.js +26 -0
- package/amplify/data/schema.ts +30 -0
- package/amplify/functions/content-actions/handler.py +107 -0
- package/amplify/functions/content-actions/requirements.txt +4 -0
- package/amplify/functions/content-actions/resource.js +40 -0
- package/amplify/functions/content-actions/resource.ts +54 -0
- package/amplify/functions/shared/python-bundle.js +17 -2
- package/amplify/functions/shared/python-bundle.ts +23 -2
- package/amplify/site-backend.js +10 -0
- package/amplify/site-backend.ts +15 -0
- package/app/[year]/[month]/[day]/[articleSlug]/page.tsx +2 -2
- package/app/globals.css +1 -4
- package/app/layout.tsx +8 -12
- package/app/robots.ts +11 -0
- package/bin/papyrus-infra.mjs +46 -16
- package/components/news-desk-page.tsx +1 -4
- package/components/staging-banner.tsx +11 -0
- package/infra/amplify-app-shell.js +123 -80
- package/infra/amplify-app-shell.ts +139 -113
- package/infra/build-specs.js +86 -0
- package/infra/build-specs.ts +132 -0
- package/infra/index.js +2 -0
- package/infra/site-config.js +125 -0
- package/infra/site-config.ts +163 -0
- package/lib/cached-content-repository.ts +2 -1
- package/lib/content-actions-client.ts +98 -0
- package/lib/content-repository.ts +3 -0
- package/lib/content-source-context.ts +16 -0
- package/lib/empty-theme.css +1 -0
- package/lib/graphql-content-repository.ts +182 -37
- package/lib/layout-scenarios.ts +8 -8
- package/lib/site-brand-tenant.ts +3 -22
- package/lib/site-brand.ts +44 -42
- package/lib/site-env.ts +52 -0
- package/lib/staging-gate.ts +37 -0
- package/middleware.ts +46 -34
- package/package.json +6 -1
- package/renderers/pretext/article-page.tsx +1 -6
- package/renderers/pretext/presentation-shell.tsx +2 -9
- package/routes.manifest.json +1 -1
- package/src/with-papyrus.mjs +15 -2
- package/publications/anth_us/brand.ts +0 -68
- package/publications/anth_us/theme.css +0 -66
- package/publications/pilobol_us/brand.ts +0 -37
- package/publications/pilobol_us/theme.css +0 -140
- package/publications/threat_intelligence/blog-defense/graph.ts +0 -636
- package/publications/threat_intelligence/blog-defense/layout.ts +0 -934
- package/publications/threat_intelligence/blog-defense/page-background.tsx +0 -590
- package/publications/threat_intelligence/brand.ts +0 -40
- package/publications/threat_intelligence/pictograms/art.tsx +0 -608
- package/publications/threat_intelligence/pictograms/figure.tsx +0 -82
- package/publications/threat_intelligence/pictograms/registry.ts +0 -30
- package/publications/threat_intelligence/pictograms/system.tsx +0 -305
- package/publications/threat_intelligence/seed/seed-edition-content.json +0 -629
- package/publications/threat_intelligence/theme.css +0 -1440
- /package/{publications/papyrus/theme.css → app/papyrus-theme.css} +0 -0
|
@@ -1,66 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1,140 +0,0 @@
|
|
|
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
|
-
}
|