@acms-subir/core 0.3.50 → 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.
@@ -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); }
@@ -1,5 +1,6 @@
1
1
  import { CALENDAR } from '../lib/calendar/config';
2
2
  import type { Occurrence } from '../lib/calendar/events';
3
+ import type { ViewEvent } from '../lib/calendar/data';
3
4
 
4
5
  export { eventUrl } from '../lib/calendar/config';
5
6
 
@@ -31,8 +32,9 @@ export interface UpcomingEventsOptions {
31
32
  * fields except private custom fields. `cancelled` is true when the whole
32
33
  * event or just this date is cancelled. `moved` is set when this date of a
33
34
  * series was moved here: `from` (its old start and end) and staff's `note`.
35
+ * `rooms` are the public rooms this date holds ({ id, slug, name, color }).
34
36
  */
35
- export type UpcomingEvent = Pick<Occurrence, 'event' | 'start' | 'end' | 'allDay' | 'days' | 'cancelled'> & Pick<Partial<Occurrence>, 'moved'>;
37
+ export type UpcomingEvent = Pick<Occurrence, 'event' | 'start' | 'end' | 'allDay' | 'days' | 'cancelled'> & Pick<Partial<Occurrence>, 'moved'> & Pick<ViewEvent, 'rooms'>;
36
38
 
37
39
  /** Server-side helper for Astro templates and endpoints. No repository access needed. */
38
40
  export async function upcomingEvents(
@@ -19,7 +19,7 @@ export interface EventProps { settings: Settings; event: CalEvent; html: string;
19
19
  * `acms theme types <slug>` writes a typed Data interface per section.
20
20
  */
21
21
  export interface SectionProps<D = Record<string, unknown>> { data: D; variant: string; settings: Settings; page: Page }
22
- export type { LinkValue, EventItem, PostItem, PostAuthor, BookingItem } from '../lib/sections';
22
+ export type { LinkValue, EventItem, EventItemRoom, PostItem, PostAuthor, BookingItem } from '../lib/sections';
23
23
  /** Props for templates/header.astro and templates/footer.astro. */
24
24
  export type { SiteChrome, ChromeLink } from '../lib/site-chrome';
25
25
  // core's chrome labels for any language (a template already gets them as site.words)