@acms-subir/core 0.3.51 → 0.3.52
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 +16 -0
- package/cli/migrations.generated.mjs +16 -1
- package/docs/calendar.md +24 -10
- package/integration.mjs +5 -0
- package/package.json +1 -1
- package/src/components/display/ScreensManager.tsx +481 -0
- package/src/layouts/Admin.astro +2 -0
- package/src/lib/backup/content.ts +10 -1
- package/src/lib/display/board.ts +4 -3
- package/src/lib/display/screens.ts +111 -0
- package/src/lib/display/store.ts +113 -0
- package/src/lib/display/words.ts +16 -6
- package/src/lib/repo/migrations.ts +3 -0
- package/src/lib/repo/sql.ts +5 -0
- package/src/lib/repo/types.ts +5 -0
- package/src/pages/admin/calendar/screens/index.astro +24 -0
- package/src/pages/admin/calendar/screens/preview.astro +36 -0
- package/src/pages/api/calendar/screens.ts +30 -0
- package/src/pages/display/s/[key].astro +48 -0
- package/src/styles/display.css +2 -1
- package/src/styles/screens-admin.css +53 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* Admin → Calendar → Screens (components/display/ScreensManager.tsx) */
|
|
2
|
+
.sc { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 16px; align-items: start; }
|
|
3
|
+
.sc .card + .card { margin-top: 0; }
|
|
4
|
+
@media (max-width: 1100px) { .sc { grid-template-columns: minmax(0, 1fr); } }
|
|
5
|
+
.sc-skel { color: var(--muted); }
|
|
6
|
+
.sc-list { overflow: hidden; }
|
|
7
|
+
.sc-list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
|
|
8
|
+
.sc-list-actions { display: flex; gap: 6px; }
|
|
9
|
+
.sc-empty { padding: 26px 16px; }
|
|
10
|
+
.sc-rows { list-style: none; margin: 0; padding: 0; }
|
|
11
|
+
.sc-rows li + li { border-top: 1px solid var(--line); }
|
|
12
|
+
.sc-row { display: flex; flex-direction: column; gap: 3px; width: 100%; text-align: left; padding: 11px 14px; background: none; border: 0; font: inherit; color: var(--text); cursor: pointer; }
|
|
13
|
+
.sc-row:hover { background: var(--hover); }
|
|
14
|
+
.sc-row.on { background: var(--sel); }
|
|
15
|
+
.sc-row-name { font-weight: 600; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
|
|
16
|
+
.sc-row-sum { font-size: 12px; color: var(--muted); }
|
|
17
|
+
.sc-seen { font-size: 12px; color: var(--faint); }
|
|
18
|
+
.sc-seen.ok { color: var(--green); }
|
|
19
|
+
.sc-seen.stale { color: var(--amber); }
|
|
20
|
+
.pill.sc-private { background: var(--amber-soft); color: var(--amber); }
|
|
21
|
+
.sc-intro h2, .sc-h { font-size: 16px; margin: 0 0 8px; }
|
|
22
|
+
.sc-intro p { color: var(--text-2); font-size: 13.5px; line-height: 1.55; margin: 0 0 10px; }
|
|
23
|
+
.sc-steps { margin: 0 0 12px; padding-left: 18px; color: var(--text-2); font-size: 13.5px; line-height: 1.55; }
|
|
24
|
+
.sc-editor { padding: 16px 18px; }
|
|
25
|
+
.sc-editor-grid { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(320px, 1.25fr); gap: 20px; align-items: start; }
|
|
26
|
+
@media (max-width: 1380px) { .sc-editor-grid { grid-template-columns: minmax(0, 1fr); } .sc-side { order: -1; position: static; } }
|
|
27
|
+
.sc-side { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; }
|
|
28
|
+
.sc-fs { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
|
|
29
|
+
.sc-fs legend { font-size: 12px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); font-weight: 600; padding: 0; margin-bottom: 8px; }
|
|
30
|
+
.sc-fs > .hint { margin: 0 0 6px; }
|
|
31
|
+
.seg.sc-seg { flex-wrap: wrap; }
|
|
32
|
+
.seg.sc-seg > button { border: 0; background: none; font: inherit; font-size: 12.5px; font-weight: 600; padding: 5px 10px; border-radius: 7px; color: var(--muted); cursor: pointer; }
|
|
33
|
+
.sc-look { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
|
|
34
|
+
.sc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
|
|
35
|
+
.sc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-full); font-size: 12.5px; cursor: pointer; }
|
|
36
|
+
.sc-chip input { accent-color: var(--accent); margin: 0; }
|
|
37
|
+
.sc-checks { max-height: 200px; overflow: auto; }
|
|
38
|
+
.sc-checks .check-row { margin: 4px 0; align-items: center; }
|
|
39
|
+
.sc-off { opacity: 0.6; }
|
|
40
|
+
.sc-swatch { display: inline-block; width: 11px; height: 11px; border-radius: 3px; flex: none; }
|
|
41
|
+
.sc-order { display: inline-grid; place-items: center; min-width: 18px; height: 18px; border-radius: 9px; background: var(--accent-soft); color: var(--accent-deep); font-size: 11px; font-weight: 700; }
|
|
42
|
+
.sc-tags-label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 5px; font-weight: 500; }
|
|
43
|
+
.sc-tag-list { border: 1px solid var(--line); border-radius: var(--r-md); padding: 4px 10px; max-height: 150px; }
|
|
44
|
+
.sc-inline { display: flex; gap: 6px; }
|
|
45
|
+
.sc-private { background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px 12px 6px; }
|
|
46
|
+
.sc-private legend { padding-top: 2px; }
|
|
47
|
+
.sc-private .hint { margin: 0 0 6px 23px; }
|
|
48
|
+
.sc-preview { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r-md); background: #000; border: 1px solid var(--line); }
|
|
49
|
+
.sc-preview iframe { position: absolute; top: 0; left: 0; border: 0; transform-origin: 0 0; pointer-events: none; }
|
|
50
|
+
.sc-link .field { margin-bottom: 6px; }
|
|
51
|
+
.sc-link input[readonly] { font-family: ui-monospace, 'SF Mono', monospace; font-size: 12px; }
|
|
52
|
+
.sc-link .form-actions { margin-top: 6px; }
|
|
53
|
+
.sc-save { margin-top: 0; padding-top: 12px; border-top: 1px solid var(--line); }
|