@acms-subir/core 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +87 -0
- package/cli/common.mjs +35 -0
- package/cli/legacy.mjs +317 -0
- package/cli/main.mjs +66 -0
- package/cli/palette.mjs +4 -0
- package/cli/preview.mjs +50 -0
- package/cli/remote.mjs +55 -0
- package/cli/themes.mjs +127 -0
- package/cli.mjs +2 -369
- package/deploy/Caddyfile +8 -0
- package/deploy/Dockerfile +34 -0
- package/deploy/compose.https.yml +21 -0
- package/deploy/compose.yml +46 -0
- package/docs/live-video.md +91 -0
- package/docs/theme-authoring.md +103 -0
- package/email-runner.mjs +32 -0
- package/integration.mjs +189 -2
- package/ops-check.mjs +27 -0
- package/package.json +27 -5
- package/src/actions/index.ts +578 -49
- package/src/components/AiCleaner.tsx +291 -0
- package/src/components/AiSettings.tsx +575 -0
- package/src/components/CommandPalette.tsx +200 -0
- package/src/components/ContentList.astro +246 -0
- package/src/components/DesignAccess.tsx +182 -0
- package/src/components/DesignManager.tsx +418 -46
- package/src/components/EmailSettings.tsx +521 -0
- package/src/components/EventPage.astro +178 -0
- package/src/components/LegalPage.astro +27 -0
- package/src/components/LinksManager.tsx +119 -58
- package/src/components/LiveCard.astro +174 -0
- package/src/components/LiveManager.tsx +910 -0
- package/src/components/NavManager.tsx +42 -43
- package/src/components/ThemeScript.astro +50 -0
- package/src/components/ThemeSections.astro +58 -0
- package/src/components/ThemeSectionsEditor.tsx +513 -0
- package/src/components/WidgetRenderer.astro +3 -0
- package/src/components/booking/BookingFlow.astro +150 -0
- package/src/components/booking/HoursEditor.astro +63 -0
- package/src/components/builder/PageBuilder.tsx +10 -2
- package/src/components/editor/EventPanel.tsx +401 -0
- package/src/components/editor/FormatDock.tsx +81 -0
- package/src/components/editor/LivePane.tsx +122 -0
- package/src/components/editor/MobileToolbar.tsx +93 -0
- package/src/components/editor/PostEditor.tsx +605 -223
- package/src/components/editor/PreviewOverlay.tsx +242 -43
- package/src/components/editor/extensions/calendar.tsx +51 -7
- package/src/components/editor/extensions/events.tsx +153 -0
- package/src/components/editor/extensions/slash.tsx +7 -1
- package/src/components/site/Pager.astro +24 -0
- package/src/components/site/PostCard.astro +64 -0
- package/src/components/site/TagLabel.astro +11 -0
- package/src/layouts/Admin.astro +289 -49
- package/src/layouts/Site.astro +352 -59
- package/src/lib/agent-api.ts +13 -0
- package/src/lib/agent-discovery.ts +40 -0
- package/src/lib/agent.ts +114 -0
- package/src/lib/ai-config.ts +58 -0
- package/src/lib/ai-schema.ts +22 -0
- package/src/lib/ai.ts +90 -0
- package/src/lib/api-keys.ts +65 -0
- package/src/lib/api.ts +56 -0
- package/src/lib/auth.ts +25 -5
- package/src/lib/backup/content.ts +36 -0
- package/src/lib/backup/unzip.ts +12 -1
- package/src/lib/backup/zip.ts +1 -1
- package/src/lib/booking/agent.ts +108 -0
- package/src/lib/booking/availability.ts +221 -0
- package/src/lib/booking/emails.ts +115 -0
- package/src/lib/booking/forms.ts +77 -0
- package/src/lib/booking/service.ts +277 -0
- package/src/lib/booking/view.ts +54 -0
- package/src/lib/calendar/agent-schema.ts +48 -0
- package/src/lib/calendar/agent.ts +136 -0
- package/src/lib/calendar/api.ts +81 -0
- package/src/lib/calendar/cards.ts +102 -0
- package/src/lib/calendar/config.ts +52 -0
- package/src/lib/calendar/data.ts +130 -0
- package/src/lib/calendar/events.ts +261 -0
- package/src/lib/calendar/feeds.ts +43 -0
- package/src/lib/calendar/hooks.ts +38 -0
- package/src/lib/calendar/http.ts +30 -0
- package/src/lib/calendar/ics-write.ts +120 -0
- package/src/lib/calendar/ics.ts +15 -5
- package/src/lib/calendar/import.ts +203 -0
- package/src/lib/calendar/render.ts +120 -37
- package/src/lib/calendar/rrule.ts +149 -0
- package/src/lib/calendar/seo.ts +48 -0
- package/src/lib/design-service.ts +58 -0
- package/src/lib/designDiff.ts +145 -0
- package/src/lib/designPreview.ts +110 -12
- package/src/lib/documents/cleanup.ts +31 -0
- package/src/lib/documents/extract.ts +154 -0
- package/src/lib/documents/vendor.d.ts +4 -0
- package/src/lib/drafts.ts +60 -6
- package/src/lib/dynamicBlocks.ts +40 -8
- package/src/lib/email/accounts.ts +55 -0
- package/src/lib/email/config.ts +86 -0
- package/src/lib/email/migration.ts +24 -0
- package/src/lib/email/providers.ts +89 -0
- package/src/lib/email/service.ts +78 -0
- package/src/lib/email/store.ts +167 -0
- package/src/lib/email/templates.ts +18 -0
- package/src/lib/email/types.ts +32 -0
- package/src/lib/email/webhooks.ts +87 -0
- package/src/lib/email.ts +15 -0
- package/src/lib/env.ts +1 -1
- package/src/lib/legal/index.ts +25 -0
- package/src/lib/live/client.ts +88 -0
- package/src/lib/live/crypto.ts +28 -0
- package/src/lib/live/migration.ts +15 -0
- package/src/lib/live/providers.ts +152 -0
- package/src/lib/live/service.ts +170 -0
- package/src/lib/live/signals.ts +89 -0
- package/src/lib/live/store.ts +49 -0
- package/src/lib/live/types.ts +52 -0
- package/src/lib/live/view.ts +78 -0
- package/src/lib/mobile/bookings.ts +73 -0
- package/src/lib/mobile/calendar.ts +85 -0
- package/src/lib/mobile/content.ts +85 -0
- package/src/lib/mobile/http.ts +63 -0
- package/src/lib/mobile/route.ts +20 -0
- package/src/lib/ops.ts +8 -0
- package/src/lib/preview.ts +21 -1
- package/src/lib/repo/migrations.ts +221 -0
- package/src/lib/repo/sql.ts +907 -68
- package/src/lib/repo/types.ts +125 -5
- package/src/lib/scheduler.ts +27 -0
- package/src/lib/schema.ts +316 -1
- package/src/lib/search-i18n.ts +3 -0
- package/src/lib/socialIcons.ts +32 -0
- package/src/lib/tagColor.ts +11 -0
- package/src/lib/theme.ts +59 -40
- package/src/lib/themeTokens.ts +183 -0
- package/src/lib/umami.ts +108 -0
- package/src/lib/webhook-sql.ts +68 -0
- package/src/lib/webhooks.ts +147 -0
- package/src/lib/widgets.ts +1 -0
- package/src/middleware.ts +45 -3
- package/src/pages/404.astro +23 -0
- package/src/pages/[...slug].astro +14 -5
- package/src/pages/account/[action].astro +53 -0
- package/src/pages/admin/ai.astro +12 -0
- package/src/pages/admin/c/[collection]/[id].astro +4 -1
- package/src/pages/admin/c/[collection]/index.astro +127 -92
- package/src/pages/admin/calendar/bookings.astro +400 -0
- package/src/pages/admin/calendar/calendars.astro +265 -0
- package/src/pages/admin/calendar/events/[id].astro +56 -0
- package/src/pages/admin/calendar/events/index.astro +408 -0
- package/src/pages/admin/calendar/index.ts +4 -0
- package/src/pages/admin/calendar/integrations.astro +4 -0
- package/src/pages/admin/calendar/resources/[id].astro +180 -0
- package/src/pages/admin/calendar/resources/index.astro +106 -0
- package/src/pages/admin/calendar/resources/link.astro +196 -0
- package/src/pages/admin/design.astro +10 -3
- package/src/pages/admin/email.astro +13 -0
- package/src/pages/admin/index.astro +232 -85
- package/src/pages/admin/integrations.astro +237 -0
- package/src/pages/admin/links.astro +3 -3
- package/src/pages/admin/live.astro +12 -0
- package/src/pages/admin/login.astro +14 -10
- package/src/pages/admin/navigation.astro +8 -2
- package/src/pages/admin/pages/[id].astro +4 -1
- package/src/pages/admin/pages/index.astro +41 -48
- package/src/pages/admin/settings.astro +418 -367
- package/src/pages/admin/tags.astro +4 -4
- package/src/pages/admin/users.astro +38 -28
- package/src/pages/api/agent/docs.ts +33 -0
- package/src/pages/api/agent/index.ts +21 -0
- package/src/pages/api/ai/clean.ts +13 -0
- package/src/pages/api/ai/draft.ts +14 -0
- package/src/pages/api/ai/settings.ts +53 -0
- package/src/pages/api/ai/test.ts +12 -0
- package/src/pages/api/backup.ts +8 -21
- package/src/pages/api/calendar/availability.ts +35 -0
- package/src/pages/api/calendar/bookings/[id].ts +49 -0
- package/src/pages/api/calendar/bookings/index.ts +73 -0
- package/src/pages/api/calendar/calendars.ts +35 -0
- package/src/pages/api/calendar/docs.ts +66 -0
- package/src/pages/api/calendar/events/[id].ts +63 -0
- package/src/pages/api/calendar/events/index.ts +112 -0
- package/src/pages/api/calendar/resources.ts +34 -0
- package/src/pages/api/design/capabilities.ts +10 -0
- package/src/pages/api/design/index.ts +58 -0
- package/src/pages/api/design/keys.ts +24 -0
- package/src/pages/api/design/media.ts +32 -0
- package/src/pages/api/email/run.ts +11 -0
- package/src/pages/api/email/settings.ts +61 -0
- package/src/pages/api/email/webhooks/[provider].ts +4 -0
- package/src/pages/api/live/oauth/youtube/callback.ts +19 -0
- package/src/pages/api/live/settings.ts +45 -0
- package/src/pages/api/live/status.ts +7 -0
- package/src/pages/api/live/thumb.ts +48 -0
- package/src/pages/api/mcp.ts +59 -0
- package/src/pages/api/media/upload.ts +2 -2
- package/src/pages/api/ops/status.ts +39 -0
- package/src/pages/api/restore.ts +27 -37
- package/src/pages/api/search.ts +18 -4
- package/src/pages/api/v1/availability.ts +7 -0
- package/src/pages/api/v1/bookings.ts +17 -0
- package/src/pages/api/v1/calendars.ts +7 -0
- package/src/pages/api/v1/content/[id].ts +7 -0
- package/src/pages/api/v1/content/index.ts +7 -0
- package/src/pages/api/v1/events.ts +7 -0
- package/src/pages/api/v1/resources.ts +7 -0
- package/src/pages/api/webhooks/docs.ts +61 -0
- package/src/pages/author/[slug].astro +43 -35
- package/src/pages/blog/[slug].astro +137 -66
- package/src/pages/blog/index.astro +95 -30
- package/src/pages/blog/tag/[slug].astro +45 -40
- package/src/pages/book/[resource]/[link].astro +70 -0
- package/src/pages/book/[resource]/index.astro +63 -0
- package/src/pages/book/[resource].ics.ts +38 -0
- package/src/pages/book/index.astro +47 -0
- package/src/pages/book/manage/[token].astro +108 -0
- package/src/pages/calendar/[slug].ics.ts +27 -0
- package/src/pages/calendar/feed.ics.ts +15 -0
- package/src/pages/calendar/index.astro +191 -0
- package/src/pages/embed/book/[resource]/[link].astro +33 -0
- package/src/pages/embed/calendar/[slug].astro +43 -0
- package/src/pages/events/[slug].astro +74 -0
- package/src/pages/events/[slug].ics.ts +25 -0
- package/src/pages/index.astro +12 -3
- package/src/pages/legal/privacy.astro +4 -0
- package/src/pages/legal/terms.astro +4 -0
- package/src/pages/links.astro +29 -3
- package/src/pages/llms.txt.ts +4 -0
- package/src/pages/preview/[type]/[id].astro +27 -6
- package/src/pages/search.astro +40 -20
- package/src/pages/sitemap.xml.ts +16 -1
- package/src/styles/admin.css +924 -105
- package/src/styles/cards.css +92 -74
- package/src/styles/editor.css +492 -114
- package/src/styles/email-settings.css +117 -0
- package/src/styles/live-admin.css +126 -0
- package/src/styles/live.css +199 -0
- package/src/styles/sections.css +12 -0
- package/src/styles/site.css +938 -281
- package/src/styles/theme-editor.css +135 -0
- package/src/theme-sdk/contract.d.mts +619 -0
- package/src/theme-sdk/contract.mjs +81 -0
- package/src/theme-sdk/index.ts +15 -0
- package/src/theme-sdk/tokens.d.mts +148 -0
- package/src/theme-sdk/tokens.mjs +55 -0
- package/src/themes/editorial/templates/home.astro +4 -4
- package/src/themes/editorial/templates/post-minimal.astro +2 -2
- package/src/themes/editorial/theme.css +27 -37
- package/src/themes/editorial/theme.json +25 -3
- package/src/themes/field/theme.json +27 -9
- package/src/themes/ink/theme.json +30 -12
- package/src/themes/night/theme.css +4 -7
- package/src/themes/night/theme.json +28 -10
- package/src/virtual.d.ts +14 -0
- package/src/worker.ts +5 -1
package/src/styles/cards.css
CHANGED
|
@@ -2,84 +2,90 @@
|
|
|
2
2
|
always wins ties, regardless of bundle order in the built head. */
|
|
3
3
|
@layer base {
|
|
4
4
|
/* Public rendering of editor cards (.pc-*) — loaded by the site layout so
|
|
5
|
-
posts written in the editor look right without any per-page CSS.
|
|
5
|
+
posts written in the editor look right without any per-page CSS. Class
|
|
6
|
+
names are the serialized API: restyle here, never rename. */
|
|
6
7
|
|
|
7
|
-
.pc-image { margin:
|
|
8
|
-
.pc-image img { width: 100%; height: auto; border-radius:
|
|
9
|
-
.pc-image figcaption, .pc-embed figcaption { text-align: center; font-size: 0.82em; color:
|
|
8
|
+
.pc-image { margin: 2em 0; }
|
|
9
|
+
.pc-image img { width: 100%; height: auto; border-radius: var(--r, 16px); display: block; box-shadow: var(--sh-1); }
|
|
10
|
+
.pc-image figcaption, .pc-embed figcaption, .pc-gallery figcaption { text-align: center; font-size: 0.82em; color: var(--muted); margin-top: 10px; }
|
|
10
11
|
|
|
11
|
-
.pc-embed { margin:
|
|
12
|
-
.pc-embed-frame { width: 100%; border-radius:
|
|
12
|
+
.pc-embed { margin: 2em 0; }
|
|
13
|
+
.pc-embed-frame { width: 100%; border-radius: var(--r, 16px); overflow: hidden; background: #0d0e11; box-shadow: var(--sh-2); }
|
|
13
14
|
.pc-embed-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
|
|
14
15
|
|
|
15
|
-
.pc-buttoncard { margin:
|
|
16
|
+
.pc-buttoncard { margin: 2em 0; }
|
|
16
17
|
.pc-btncard {
|
|
17
|
-
display: inline-
|
|
18
|
-
|
|
18
|
+
display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 12px;
|
|
19
|
+
background: var(--btn); color: var(--btn-ink) !important; text-decoration: none !important;
|
|
20
|
+
font: 550 15px/1 var(--font-body); box-shadow: var(--sh-2); transition: transform 0.15s, box-shadow 0.15s;
|
|
19
21
|
}
|
|
20
|
-
.pc-btncard:hover {
|
|
22
|
+
.pc-btncard:hover { transform: translateY(-1px); box-shadow: var(--sh-3); }
|
|
21
23
|
|
|
22
24
|
.pc-callout {
|
|
23
25
|
display: flex; gap: 12px; align-items: flex-start;
|
|
24
|
-
background:
|
|
25
|
-
|
|
26
|
+
background: var(--accent-soft); border-radius: var(--r, 16px); padding: 16px 18px; margin: 2em 0;
|
|
27
|
+
color: var(--ink-2); font-size: 0.95em; line-height: 1.6;
|
|
28
|
+
}
|
|
29
|
+
.pc-callout-emoji {
|
|
30
|
+
flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--panel);
|
|
31
|
+
display: grid; place-items: center; font-size: 15px; line-height: 1; margin-top: -1px;
|
|
26
32
|
}
|
|
27
|
-
.pc-callout-emoji { font-size: 1.2em; line-height: 1.4; }
|
|
28
33
|
.pc-callout-body { flex: 1; min-width: 0; }
|
|
34
|
+
.pc-callout-body > :first-child { margin-top: 0; }
|
|
35
|
+
.pc-callout-body > :last-child { margin-bottom: 0; }
|
|
29
36
|
|
|
30
|
-
.pc-html { margin:
|
|
37
|
+
.pc-html { margin: 2em 0; }
|
|
31
38
|
|
|
32
39
|
/* file / download card */
|
|
33
40
|
.pc-filecard {
|
|
34
|
-
display: flex; align-items: center; gap: 14px; margin:
|
|
35
|
-
border: 1px solid
|
|
36
|
-
text-decoration: none; color: inherit;
|
|
41
|
+
display: flex; align-items: center; gap: 14px; margin: 2em 0; padding: 12px 16px 12px 12px;
|
|
42
|
+
background: var(--panel); border: 1px solid var(--line); border-radius: var(--r, 16px);
|
|
43
|
+
text-decoration: none !important; color: inherit !important; box-shadow: var(--sh-1);
|
|
44
|
+
transition: box-shadow 0.15s, transform 0.15s;
|
|
37
45
|
}
|
|
38
|
-
.pc-filecard:hover {
|
|
46
|
+
.pc-filecard:hover { box-shadow: var(--sh-2); transform: translateY(-1px); }
|
|
39
47
|
.pc-file-icon {
|
|
40
|
-
display:
|
|
41
|
-
|
|
42
|
-
background: rgb(110 123 255 / 12%); color: #6e7bff;
|
|
48
|
+
display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 11px; font-size: 1.05em;
|
|
49
|
+
background: var(--accent-soft); color: var(--accent-text);
|
|
43
50
|
}
|
|
44
51
|
.pc-file-text { display: flex; flex-direction: column; min-width: 0; }
|
|
45
|
-
.pc-file-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
46
|
-
.pc-file-meta { font-size:
|
|
52
|
+
.pc-file-name { font-weight: 600; font-size: 15px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
53
|
+
.pc-file-meta { font-size: 13px; color: var(--muted); }
|
|
47
54
|
|
|
48
55
|
/* gallery card */
|
|
49
|
-
.pc-gallery { margin:
|
|
56
|
+
.pc-gallery { margin: 2em 0; }
|
|
50
57
|
.pc-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
|
|
51
58
|
.pc-gallery-grid[data-count='1'] { grid-template-columns: 1fr; }
|
|
52
59
|
.pc-gallery-grid[data-count='2'], .pc-gallery-grid[data-count='4'] { grid-template-columns: repeat(2, 1fr); }
|
|
53
60
|
.pc-gallery-grid img {
|
|
54
61
|
width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover;
|
|
55
|
-
border-radius:
|
|
62
|
+
border-radius: var(--r-sm, 10px); display: block; cursor: zoom-in; transition: filter 0.2s;
|
|
56
63
|
}
|
|
57
|
-
.pc-gallery
|
|
64
|
+
.pc-gallery-grid img:hover { filter: brightness(0.94); }
|
|
58
65
|
@media (max-width: 560px) { .pc-gallery-grid { grid-template-columns: repeat(2, 1fr); } }
|
|
66
|
+
/* lightbox (Site.astro wires clicks on gallery/figure images) */
|
|
67
|
+
dialog.pc-lightbox { border: 0; padding: 0; background: transparent; max-width: 94vw; max-height: 92vh; overflow: visible; }
|
|
68
|
+
dialog.pc-lightbox::backdrop { background: rgb(8 8 10 / 88%); }
|
|
69
|
+
dialog.pc-lightbox img { display: block; max-width: 94vw; max-height: 88vh; border-radius: var(--r-sm, 10px); }
|
|
70
|
+
dialog.pc-lightbox button {
|
|
71
|
+
position: fixed; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer;
|
|
72
|
+
background: rgb(255 255 255 / 14%); color: #fff; font-size: 18px;
|
|
73
|
+
}
|
|
59
74
|
|
|
60
75
|
/* bookmark card */
|
|
61
76
|
.pc-bookmark {
|
|
62
|
-
display: flex; margin:
|
|
63
|
-
border-radius:
|
|
64
|
-
transition:
|
|
65
|
-
}
|
|
66
|
-
.pc-bookmark:hover {
|
|
67
|
-
.pc-bookmark-content {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
.pc-bookmark-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
.pc-bookmark-desc {
|
|
76
|
-
font-size: 0.85em; opacity: 0.75; line-height: 1.45;
|
|
77
|
-
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
|
|
78
|
-
}
|
|
79
|
-
.pc-bookmark-meta { display: flex; align-items: center; gap: 7px; font-size: 0.78em; opacity: 0.65; margin-top: 2px; }
|
|
80
|
-
.pc-bookmark-favicon { width: 16px; height: 16px; border-radius: 3px; }
|
|
81
|
-
.pc-bookmark-thumb { flex: none; width: 33%; max-width: 240px; }
|
|
82
|
-
.pc-bookmark-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
77
|
+
display: flex; margin: 2em 0; background: var(--panel); border: 1px solid var(--line);
|
|
78
|
+
border-radius: var(--r, 16px); overflow: hidden; text-decoration: none !important; color: inherit !important;
|
|
79
|
+
box-shadow: var(--sh-1); transition: box-shadow 0.2s, transform 0.2s; min-height: 108px;
|
|
80
|
+
}
|
|
81
|
+
.pc-bookmark:hover { box-shadow: var(--sh-2); transform: translateY(-1px); }
|
|
82
|
+
.pc-bookmark-content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; padding: 16px 18px; justify-content: center; }
|
|
83
|
+
.pc-bookmark-title { font-weight: 600; font-size: 15.5px; line-height: 1.35; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
84
|
+
.pc-bookmark-desc { font-size: 14px; color: var(--muted); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
85
|
+
.pc-bookmark-meta { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); margin-top: 4px; }
|
|
86
|
+
.pc-bookmark-favicon { width: 16px; height: 16px; border-radius: 4px; }
|
|
87
|
+
.pc-bookmark-thumb { flex: none; width: 34%; max-width: 220px; background: var(--soft); }
|
|
88
|
+
.pc-bookmark-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
|
|
83
89
|
@media (max-width: 560px) { .pc-bookmark-thumb { display: none; } }
|
|
84
90
|
|
|
85
91
|
}
|
|
@@ -117,9 +123,9 @@ body { overflow-x: clip; }
|
|
|
117
123
|
--info-muted: var(--muted);
|
|
118
124
|
--info-line: var(--line);
|
|
119
125
|
--info-badge: var(--accent);
|
|
120
|
-
--info-badge-ink: var(--
|
|
121
|
-
--info-icon: var(--
|
|
122
|
-
--info-radius:
|
|
126
|
+
--info-badge-ink: var(--accent-text);
|
|
127
|
+
--info-icon: var(--muted);
|
|
128
|
+
--info-radius: var(--r, 16px);
|
|
123
129
|
--info-min: 240px; /* grid column min width */
|
|
124
130
|
--info-gap: 18px;
|
|
125
131
|
display: grid;
|
|
@@ -130,22 +136,24 @@ body { overflow-x: clip; }
|
|
|
130
136
|
.pc-info-card {
|
|
131
137
|
display: flex; flex-direction: column; gap: 8px; min-width: 0;
|
|
132
138
|
background: var(--info-bg); border: 1px solid var(--info-line);
|
|
133
|
-
border-radius: var(--info-radius); padding: 20px 22px;
|
|
139
|
+
border-radius: var(--info-radius); padding: 20px 22px; box-shadow: var(--sh-1);
|
|
134
140
|
color: inherit; text-decoration: none;
|
|
135
141
|
}
|
|
136
|
-
a.pc-info-card { transition:
|
|
137
|
-
a.pc-info-card:hover {
|
|
142
|
+
a.pc-info-card { transition: box-shadow 0.2s, transform 0.2s; }
|
|
143
|
+
a.pc-info-card:hover { box-shadow: var(--sh-2); transform: translateY(-1px); }
|
|
138
144
|
.pc-info-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
|
139
145
|
.pc-info-title {
|
|
140
|
-
font-family: var(--font-heading); font-size:
|
|
141
|
-
letter-spacing: -0.
|
|
146
|
+
font-family: var(--font-heading); font-size: 18px; font-weight: 650;
|
|
147
|
+
letter-spacing: -0.02em; line-height: 1.25; color: var(--info-ink); margin: 0;
|
|
142
148
|
}
|
|
149
|
+
/* badge = marker + text label (never a pill); "filled" = accent marker */
|
|
143
150
|
.pc-info-badge {
|
|
144
|
-
flex: none; font-size:
|
|
145
|
-
|
|
146
|
-
color: var(--info-ink); border: 1px solid var(--info-line); background: transparent;
|
|
151
|
+
flex: none; display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 550; line-height: 1.3;
|
|
152
|
+
white-space: nowrap; color: var(--info-ink);
|
|
147
153
|
}
|
|
148
|
-
.pc-info-badge
|
|
154
|
+
.pc-info-badge::before { content: ''; width: 7px; height: 7px; border-radius: 2px; background: var(--muted); }
|
|
155
|
+
.pc-info-badge.is-filled { color: var(--info-badge-ink); }
|
|
156
|
+
.pc-info-badge.is-filled::before { background: var(--info-badge); }
|
|
149
157
|
.pc-info-desc { color: var(--info-muted); font-size: 14.5px; line-height: 1.55; margin: 0; }
|
|
150
158
|
/* margin-top:auto pins the divider row to the card bottom, so cards in the
|
|
151
159
|
same grid row keep their meta lines aligned regardless of text length */
|
|
@@ -156,7 +164,7 @@ a.pc-info-card:hover { border-color: var(--info-badge); }
|
|
|
156
164
|
.pc-info-card:not(:has(.pc-info-meta)) .pc-info-head { margin-bottom: 0; }
|
|
157
165
|
.pc-info-row {
|
|
158
166
|
display: inline-flex; align-items: center; gap: 8px; min-width: 0;
|
|
159
|
-
font-size: 14px; color: var(--info-ink);
|
|
167
|
+
font-size: 14px; color: var(--ink-2, var(--info-ink));
|
|
160
168
|
}
|
|
161
169
|
.pc-info-row::before {
|
|
162
170
|
content: ''; display: none; flex: none; width: 15px; height: 15px;
|
|
@@ -177,23 +185,33 @@ a.pc-info-card:hover { border-color: var(--info-badge); }
|
|
|
177
185
|
|
|
178
186
|
@layer base {
|
|
179
187
|
/* toggle — collapsible section, native <details> so no JS needed */
|
|
180
|
-
.pc-toggle { border: 1px solid var(--line
|
|
181
|
-
.pc-toggle
|
|
188
|
+
.pc-toggle { border: 1px solid var(--line); border-radius: var(--r-sm, 12px); background: var(--panel); margin: 1em 0; }
|
|
189
|
+
.pc-toggle + .pc-toggle { margin-top: -0.4em; }
|
|
190
|
+
.pc-toggle > summary {
|
|
191
|
+
font-weight: 600; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px;
|
|
192
|
+
padding: 13px 16px; color: var(--ink);
|
|
193
|
+
}
|
|
182
194
|
.pc-toggle > summary::-webkit-details-marker { display: none; }
|
|
183
|
-
.pc-toggle > summary::
|
|
184
|
-
|
|
185
|
-
.
|
|
195
|
+
.pc-toggle > summary::after {
|
|
196
|
+
content: ''; flex: none; width: 16px; height: 16px; background: var(--muted); transition: transform 0.2s ease;
|
|
197
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
|
|
198
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
|
|
199
|
+
}
|
|
200
|
+
.pc-toggle[open] > summary::after { transform: rotate(180deg); }
|
|
201
|
+
.pc-toggle-body { padding: 0 16px 14px; color: var(--ink-2); }
|
|
202
|
+
.pc-toggle-body > :first-child { margin-top: 0; }
|
|
186
203
|
.pc-toggle-body > :last-child { margin-bottom: 0; }
|
|
187
204
|
|
|
188
205
|
/* table of contents — expanded at request time from the body's headings */
|
|
189
206
|
.pc-toc {
|
|
190
|
-
display: flex; flex-direction: column; gap:
|
|
191
|
-
border
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
.pc-toc-
|
|
195
|
-
.pc-toc-link {
|
|
196
|
-
|
|
197
|
-
.pc-toc-link
|
|
198
|
-
.pc-toc-link[data-depth='
|
|
207
|
+
display: flex; flex-direction: column; gap: 1px; counter-reset: toc;
|
|
208
|
+
background: var(--panel); border: 1px solid var(--line); border-radius: var(--r, 16px); padding: 16px 12px; margin: 2em 0;
|
|
209
|
+
}
|
|
210
|
+
.pc-toc-title { font-size: 12.5px; font-weight: 550; color: var(--muted); margin: 0 10px 6px; }
|
|
211
|
+
.pc-toc-link { color: var(--ink-2) !important; text-decoration: none !important; padding: 5px 10px; border-radius: 8px; font-size: 0.95em; line-height: 1.45; }
|
|
212
|
+
.pc-toc-link[data-depth='0'] { counter-increment: toc; }
|
|
213
|
+
.pc-toc-link[data-depth='0']::before { content: counter(toc) '.'; color: var(--muted); margin-right: 8px; font-variant-numeric: tabular-nums; }
|
|
214
|
+
a.pc-toc-link:hover { background: var(--hover); color: var(--ink) !important; }
|
|
215
|
+
.pc-toc-link[data-depth='1'] { padding-left: 32px; font-size: 0.9em; }
|
|
216
|
+
.pc-toc-link[data-depth='2'] { padding-left: 48px; font-size: 0.9em; }
|
|
199
217
|
}
|