@drawnagency/primitives 0.1.84 → 0.1.87

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 (55) hide show
  1. package/dist/{chunk-665DW3HR.js → chunk-6VOIZP2O.js} +3 -3
  2. package/dist/{chunk-YKOLOZB2.js → chunk-DRCPDOW3.js} +14 -0
  3. package/dist/{chunk-MBJUWOM2.js → chunk-EO7K45GV.js} +1 -1
  4. package/dist/{chunk-DKXISNJ2.js → chunk-NEDOJHHR.js} +2 -2
  5. package/dist/{chunk-DO3ZENLN.js → chunk-OEL57NYV.js} +1 -1
  6. package/dist/{chunk-FDBZZ4AT.js → chunk-PTVY3Q7P.js} +1 -1
  7. package/dist/{chunk-56J4QMF4.js → chunk-VY5V4HBV.js} +7 -7
  8. package/dist/{chunk-EP3LVOXZ.js → chunk-WA3HFN54.js} +1 -1
  9. package/dist/{chunk-Q6LZOH5M.js → chunk-XDG2K6UT.js} +2 -2
  10. package/dist/{chunk-E3MTIMOG.js → chunk-XPUBUR64.js} +10 -0
  11. package/dist/collab/rebase.d.ts +23 -0
  12. package/dist/collab/rebase.d.ts.map +1 -1
  13. package/dist/collab/rebase.js +12 -1
  14. package/dist/components/editor/index.js +7 -7
  15. package/dist/components/primitives/index.js +5 -5
  16. package/dist/components/sections/brand-guide.js +5 -5
  17. package/dist/components/sections/register-schemas.js +8 -8
  18. package/dist/components/sections/register.js +8 -8
  19. package/dist/components/shared/Navigation.d.ts +6 -1
  20. package/dist/components/shared/Navigation.d.ts.map +1 -1
  21. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  22. package/dist/components/shell/{ChatbotConfigModal.d.ts → SiteSettingsChatbot.d.ts} +2 -4
  23. package/dist/components/shell/SiteSettingsChatbot.d.ts.map +1 -0
  24. package/dist/components/shell/SiteSettingsDisplay.d.ts.map +1 -1
  25. package/dist/components/shell/SiteSettingsModal.d.ts +3 -1
  26. package/dist/components/shell/SiteSettingsModal.d.ts.map +1 -1
  27. package/dist/hooks/useMediaPipeline.d.ts +2 -1
  28. package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
  29. package/dist/index.js +6 -4
  30. package/dist/lib/image-refs.d.ts +9 -0
  31. package/dist/lib/image-refs.d.ts.map +1 -1
  32. package/dist/lib/index.js +2 -2
  33. package/dist/media/index.js +4 -2
  34. package/dist/media/resolve.d.ts +25 -0
  35. package/dist/media/resolve.d.ts.map +1 -1
  36. package/dist/schemas/index.js +2 -2
  37. package/dist/schemas/site-config.d.ts +10 -0
  38. package/dist/schemas/site-config.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/collab/rebase.ts +33 -0
  41. package/src/components/editor/ChildBlockWrapper.tsx +1 -1
  42. package/src/components/editor/PagesModal.tsx +39 -31
  43. package/src/components/editor/SectionWrapper.tsx +3 -3
  44. package/src/components/shared/Navigation.tsx +20 -2
  45. package/src/components/shared/Tabs.tsx +1 -1
  46. package/src/components/shell/EditorShell.tsx +29 -76
  47. package/src/components/shell/SiteSettingsChatbot.tsx +188 -0
  48. package/src/components/shell/SiteSettingsDisplay.tsx +106 -0
  49. package/src/components/shell/SiteSettingsModal.tsx +29 -11
  50. package/src/hooks/useMediaPipeline.ts +16 -3
  51. package/src/lib/image-refs.ts +19 -0
  52. package/src/media/resolve.ts +34 -0
  53. package/src/schemas/site-config.ts +13 -0
  54. package/dist/components/shell/ChatbotConfigModal.d.ts.map +0 -1
  55. package/src/components/shell/ChatbotConfigModal.tsx +0 -193
@@ -9,13 +9,13 @@ import {
9
9
  MediaBlock,
10
10
  containerGridClass,
11
11
  useEditableCollection
12
- } from "./chunk-DKXISNJ2.js";
12
+ } from "./chunk-NEDOJHHR.js";
13
13
  import {
14
14
  AddIcon,
15
15
  DeleteIcon,
16
16
  DragHandle,
17
17
  IconButton
18
- } from "./chunk-MBJUWOM2.js";
18
+ } from "./chunk-EO7K45GV.js";
19
19
  import {
20
20
  DEFAULT_LINK,
21
21
  LinkValueSchema
@@ -30,7 +30,7 @@ import {
30
30
  import {
31
31
  HexColorSchema,
32
32
  SingleMediaReferenceSchema
33
- } from "./chunk-E3MTIMOG.js";
33
+ } from "./chunk-XPUBUR64.js";
34
34
  import {
35
35
  defineSection
36
36
  } from "./chunk-VKAGMEKE.js";
@@ -229,6 +229,19 @@ function rebindImageRef(ref, imageId) {
229
229
  for (const key of BAKED_MEDIA_KEYS) delete fresh[key];
230
230
  return fresh;
231
231
  }
232
+ function resolveLogo(logo, manifest, provider) {
233
+ if (!logo) return null;
234
+ const light = resolveMedia({ imageId: logo.light.imageId }, manifest, [1], provider);
235
+ if (!light?.src || light.tag === "video") return null;
236
+ const dark = logo.dark ? resolveMedia({ imageId: logo.dark.imageId }, manifest, [1], provider) : null;
237
+ const darkUrl = dark && dark.tag !== "video" ? dark.src : null;
238
+ return {
239
+ lightUrl: light.src,
240
+ darkUrl,
241
+ invertInDark: logo.invertInDark,
242
+ showInNav: logo.showInNav
243
+ };
244
+ }
232
245
 
233
246
  // src/media/videoPoster.ts
234
247
  function generateVideoPoster(blob, quality) {
@@ -324,6 +337,7 @@ export {
324
337
  resolveManifestReferences,
325
338
  BAKED_MEDIA_KEYS,
326
339
  rebindImageRef,
340
+ resolveLogo,
327
341
  generateVideoPoster,
328
342
  setMediaProvider,
329
343
  getMediaProvider
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMediaProvider
3
- } from "./chunk-YKOLOZB2.js";
3
+ } from "./chunk-DRCPDOW3.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-7EOSDFS3.js";
@@ -6,10 +6,10 @@ import {
6
6
  SettingsIcon,
7
7
  useMediaLibrary,
8
8
  useResolvedMedia
9
- } from "./chunk-MBJUWOM2.js";
9
+ } from "./chunk-EO7K45GV.js";
10
10
  import {
11
11
  rebindImageRef
12
- } from "./chunk-YKOLOZB2.js";
12
+ } from "./chunk-DRCPDOW3.js";
13
13
  import {
14
14
  cn
15
15
  } from "./chunk-7EOSDFS3.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-TZQPOR5A.js";
10
10
  import {
11
11
  IndexSchema
12
- } from "./chunk-E3MTIMOG.js";
12
+ } from "./chunk-XPUBUR64.js";
13
13
  import {
14
14
  getAllSchemas
15
15
  } from "./chunk-VKAGMEKE.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EditablePlainText
3
- } from "./chunk-DKXISNJ2.js";
3
+ } from "./chunk-NEDOJHHR.js";
4
4
  import {
5
5
  Button,
6
6
  usePages
@@ -3,7 +3,7 @@ import {
3
3
  pluralize,
4
4
  stripHtmlToPlainText,
5
5
  truncate
6
- } from "./chunk-665DW3HR.js";
6
+ } from "./chunk-6VOIZP2O.js";
7
7
  import {
8
8
  DeleteButton,
9
9
  DragHandle,
@@ -15,11 +15,11 @@ import {
15
15
  buildBlockDropData,
16
16
  canDropBlock,
17
17
  isBlockDragData
18
- } from "./chunk-Q6LZOH5M.js";
18
+ } from "./chunk-XDG2K6UT.js";
19
19
  import {
20
20
  EditableRichText,
21
21
  defineHeadingSection
22
- } from "./chunk-FDBZZ4AT.js";
22
+ } from "./chunk-PTVY3Q7P.js";
23
23
  import {
24
24
  EditablePlainText,
25
25
  ImageDropZone,
@@ -28,11 +28,11 @@ import {
28
28
  colSpanClass,
29
29
  containerGridClass,
30
30
  spacerHiddenClass
31
- } from "./chunk-DKXISNJ2.js";
31
+ } from "./chunk-NEDOJHHR.js";
32
32
  import {
33
33
  useMediaLibrary,
34
34
  useResolvedMedia
35
- } from "./chunk-MBJUWOM2.js";
35
+ } from "./chunk-EO7K45GV.js";
36
36
  import {
37
37
  embedUrl
38
38
  } from "./chunk-Y4JQGO6G.js";
@@ -51,7 +51,7 @@ import {
51
51
  } from "./chunk-TZQPOR5A.js";
52
52
  import {
53
53
  SingleMediaReferenceSchema
54
- } from "./chunk-E3MTIMOG.js";
54
+ } from "./chunk-XPUBUR64.js";
55
55
  import {
56
56
  defineSection,
57
57
  getSection
@@ -544,7 +544,7 @@ var ChildBlockWrapper = forwardRef(
544
544
  {
545
545
  ref,
546
546
  className: cn(
547
- "group/childblock relative h-full rounded-sm",
547
+ "group/childblock relative h-full rounded-inner",
548
548
  isDragging && "opacity-50",
549
549
  "hover:outline hover:outline-2 hover:outline-primary/30"
550
550
  ),
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HexColorSchema
3
- } from "./chunk-E3MTIMOG.js";
3
+ } from "./chunk-XPUBUR64.js";
4
4
 
5
5
  // src/schemas/audience.ts
6
6
  import { z } from "zod";
@@ -14,7 +14,7 @@ import {
14
14
  SettingsIcon,
15
15
  useMediaLibrary,
16
16
  useResolvedMedia
17
- } from "./chunk-MBJUWOM2.js";
17
+ } from "./chunk-EO7K45GV.js";
18
18
  import {
19
19
  cn
20
20
  } from "./chunk-7EOSDFS3.js";
@@ -376,7 +376,7 @@ function Tabs({ tabs, defaultTabId, activeTabId, onTabChange, fullBleedTabBar })
376
376
  },
377
377
  tab.id
378
378
  )) }) }),
379
- /* @__PURE__ */ jsx8("div", { role: "tabpanel", className: cn("px-px", fullBleedTabBar && "pt-4"), children: activeTab?.content })
379
+ /* @__PURE__ */ jsx8("div", { role: "tabpanel", className: cn("flex min-h-0 flex-1 flex-col px-px", fullBleedTabBar && "pt-4"), children: activeTab?.content })
380
380
  ] });
381
381
  }
382
382
 
@@ -277,6 +277,16 @@ var SiteConfigSchema = z3.object({
277
277
  // Favicon stored as a data URL (SVG/PNG, small) so it travels with
278
278
  // site-config.json — no media manifest or CDN round-trip needed.
279
279
  favicon: z3.string().refine((v) => v.startsWith("data:image/"), "Favicon must be an image data URL").nullable().default(null),
280
+ // Optional site logo, stored as media-library references (so it participates
281
+ // in usage tracking + GC protection, and its resolved URL is reusable for the
282
+ // Phase 3 social-preview image). Every field defaults so pre-existing
283
+ // site-config.json files keep parsing.
284
+ logo: z3.object({
285
+ light: z3.object({ imageId: z3.string() }),
286
+ dark: z3.object({ imageId: z3.string() }).nullable().default(null),
287
+ invertInDark: z3.boolean().default(false),
288
+ showInNav: z3.boolean().default(true)
289
+ }).nullable().default(null),
280
290
  media: MediaConfigSchema.default(MediaConfigSchema.parse({})),
281
291
  // Brand chatbot config (editor-owned; the platform kill switch lives in the
282
292
  // sites table, not here). Every field defaults so pre-existing
@@ -33,5 +33,28 @@ export interface RebaseResult {
33
33
  * structure in both branches), and the result partitions: every section in
34
34
  * `sections` is reachable from `index`; a dirty section deleted remotely is
35
35
  * kept, re-linked into the index, and reported in `conflictIds`. */
36
+ /** Fold a peer's live (pre-save) index broadcast under our current index — the
37
+ * live-collab `onRemoteIndexUpdate` path, applied ONLY when we hold no unsaved
38
+ * structural work (so our index equals the last-saved branch: every id in it is
39
+ * a real, branch-backed section).
40
+ *
41
+ * Keep every peer entry whose id our current index already knows; withhold the
42
+ * rest, which is one of:
43
+ * (a) the peer's unsaved ADD — its section file is not on the branch yet, so
44
+ * letting it into our index would poison our next save with a dangling
45
+ * ref the server rejects (its live appearance is deferred to the peer's
46
+ * save event, which arrives via the saved-event sync); or
47
+ * (b) a section WE deleted unsaved — absent from our index; our deletion
48
+ * stands until save-time arbitration.
49
+ *
50
+ * The keep-set is our INDEX's section ids, NOT the section bodies we managed to
51
+ * load. A live, branch-backed section whose body was skipped by the client
52
+ * loader (schema/registry miss, missing file, depth trip) is still in our index
53
+ * and MUST survive — otherwise our next save posts an index missing it and the
54
+ * server rejects with "section … not found in site index" (or the write drops
55
+ * the live section). Taking the whole `localIndex` here, rather than a
56
+ * caller-computed id set, is deliberate: it makes passing the loaded-bodies set
57
+ * (the original bug) unrepresentable. Neither input is mutated. */
58
+ export declare function reconcileRemoteIndex(remoteIndex: SiteIndex, localIndex: SiteIndex): SiteIndex;
36
59
  export declare function rebaseContent(args: RebaseArgs): RebaseResult;
37
60
  //# sourceMappingURL=rebase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebase.d.ts","sourceRoot":"","sources":["../../src/collab/rebase.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,UAAU,EAAE,SAAS,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;;;+EAK2E;IAC3E,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,EAAE,SAAS,CAAC;IAKvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IAIjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;qEAUqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CA2F5D"}
1
+ {"version":3,"file":"rebase.d.ts","sourceRoot":"","sources":["../../src/collab/rebase.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,UAAU,EAAE,SAAS,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;;;+EAK2E;IAC3E,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,EAAE,SAAS,CAAC;IAKvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IAIjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;qEAUqE;AACrE;;;;;;;;;;;;;;;;;;;;;oEAqBoE;AACpE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,GAAG,SAAS,CAS7F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CA2F5D"}
@@ -1,6 +1,16 @@
1
1
  import "../chunk-JSBRDJBE.js";
2
2
 
3
3
  // src/collab/rebase.ts
4
+ function reconcileRemoteIndex(remoteIndex, localIndex) {
5
+ const knownIds = new Set(Object.keys(localIndex.sections));
6
+ return {
7
+ ...remoteIndex,
8
+ pages: remoteIndex.pages.map((p) => ({ ...p, order: p.order.filter((id) => knownIds.has(id)) })),
9
+ sections: Object.fromEntries(
10
+ Object.entries(remoteIndex.sections).filter(([id]) => knownIds.has(id))
11
+ )
12
+ };
13
+ }
4
14
  function rebaseContent(args) {
5
15
  const localById = new Map(args.localSections.map((s) => [s.section.id, s]));
6
16
  const remoteIds = new Set(args.remoteSections.map((s) => s.section.id));
@@ -60,5 +70,6 @@ function rebaseContent(args) {
60
70
  return { sections: merged, index, conflictIds };
61
71
  }
62
72
  export {
63
- rebaseContent
73
+ rebaseContent,
74
+ reconcileRemoteIndex
64
75
  };
@@ -11,20 +11,20 @@ import {
11
11
  buildBlockDropData,
12
12
  canDropBlock,
13
13
  isBlockDragData
14
- } from "../../chunk-Q6LZOH5M.js";
14
+ } from "../../chunk-XDG2K6UT.js";
15
15
  import "../../chunk-5THS4K5D.js";
16
16
  import "../../chunk-ZSPCE6MZ.js";
17
17
  import {
18
18
  AddIcon,
19
19
  IconButton
20
- } from "../../chunk-MBJUWOM2.js";
21
- import "../../chunk-YKOLOZB2.js";
20
+ } from "../../chunk-EO7K45GV.js";
21
+ import "../../chunk-DRCPDOW3.js";
22
22
  import "../../chunk-677NTHAZ.js";
23
23
  import {
24
24
  cn
25
25
  } from "../../chunk-7EOSDFS3.js";
26
26
  import "../../chunk-YBVK254P.js";
27
- import "../../chunk-E3MTIMOG.js";
27
+ import "../../chunk-XPUBUR64.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
30
30
 
@@ -569,9 +569,9 @@ function SectionWrapper({
569
569
  "relative",
570
570
  isDragging && "opacity-50",
571
571
  isLocked && "opacity-60",
572
- isActive && "outline outline-2 outline-primary/50 rounded-sm",
573
- !isActive && showAllChrome && "outline outline-2 outline-primary/20 rounded-sm",
574
- !alwaysShow && "group-hover:outline group-hover:outline-2 group-hover:outline-primary/20 group-hover:rounded-sm"
572
+ isActive && "outline outline-2 outline-primary/50 rounded-outer",
573
+ !isActive && showAllChrome && "outline outline-2 outline-primary/20 rounded-outer",
574
+ !alwaysShow && "group-hover:outline group-hover:outline-2 group-hover:outline-primary/20 group-hover:rounded-outer"
575
575
  ),
576
576
  "data-section-id": sectionId,
577
577
  "data-section-type": sectionType,
@@ -2,7 +2,7 @@ import {
2
2
  EditableRichText,
3
3
  LinkPopover,
4
4
  defineHeadingSection
5
- } from "../../chunk-FDBZZ4AT.js";
5
+ } from "../../chunk-PTVY3Q7P.js";
6
6
  import {
7
7
  EditableGrid,
8
8
  EditablePlainText,
@@ -10,20 +10,20 @@ import {
10
10
  MediaBlock,
11
11
  ResolvedMedia,
12
12
  useEditableCollection
13
- } from "../../chunk-DKXISNJ2.js";
13
+ } from "../../chunk-NEDOJHHR.js";
14
14
  import "../../chunk-ZSPCE6MZ.js";
15
15
  import {
16
16
  DeleteIcon,
17
17
  DragHandle,
18
18
  IconButton
19
- } from "../../chunk-MBJUWOM2.js";
20
- import "../../chunk-YKOLOZB2.js";
19
+ } from "../../chunk-EO7K45GV.js";
20
+ import "../../chunk-DRCPDOW3.js";
21
21
  import "../../chunk-53DKVAB6.js";
22
22
  import {
23
23
  cn
24
24
  } from "../../chunk-7EOSDFS3.js";
25
25
  import "../../chunk-YBVK254P.js";
26
- import "../../chunk-E3MTIMOG.js";
26
+ import "../../chunk-XPUBUR64.js";
27
27
  import "../../chunk-VKAGMEKE.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
@@ -2,16 +2,16 @@ import {
2
2
  ColorItemSchema,
3
3
  ColorSpaceSchema,
4
4
  brandGuideSectionDefs
5
- } from "../../chunk-665DW3HR.js";
5
+ } from "../../chunk-6VOIZP2O.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-DKXISNJ2.js";
8
- import "../../chunk-MBJUWOM2.js";
9
- import "../../chunk-YKOLOZB2.js";
7
+ import "../../chunk-NEDOJHHR.js";
8
+ import "../../chunk-EO7K45GV.js";
9
+ import "../../chunk-DRCPDOW3.js";
10
10
  import "../../chunk-PZJL2S3Z.js";
11
11
  import "../../chunk-WDSVHKAH.js";
12
12
  import "../../chunk-7EOSDFS3.js";
13
13
  import "../../chunk-YBVK254P.js";
14
- import "../../chunk-E3MTIMOG.js";
14
+ import "../../chunk-XPUBUR64.js";
15
15
  import "../../chunk-VKAGMEKE.js";
16
16
  import "../../chunk-FM4M4Q2W.js";
17
17
  import "../../chunk-JSBRDJBE.js";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  allSectionDefs
3
- } from "../../chunk-56J4QMF4.js";
4
- import "../../chunk-665DW3HR.js";
5
- import "../../chunk-Q6LZOH5M.js";
3
+ } from "../../chunk-VY5V4HBV.js";
4
+ import "../../chunk-6VOIZP2O.js";
5
+ import "../../chunk-XDG2K6UT.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-FDBZZ4AT.js";
8
- import "../../chunk-DKXISNJ2.js";
7
+ import "../../chunk-PTVY3Q7P.js";
8
+ import "../../chunk-NEDOJHHR.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-MBJUWOM2.js";
10
+ import "../../chunk-EO7K45GV.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-YKOLOZB2.js";
12
+ import "../../chunk-DRCPDOW3.js";
13
13
  import "../../chunk-PZJL2S3Z.js";
14
14
  import "../../chunk-WDSVHKAH.js";
15
15
  import "../../chunk-53DKVAB6.js";
16
16
  import "../../chunk-7EOSDFS3.js";
17
17
  import "../../chunk-YBVK254P.js";
18
18
  import "../../chunk-TZQPOR5A.js";
19
- import "../../chunk-E3MTIMOG.js";
19
+ import "../../chunk-XPUBUR64.js";
20
20
  import {
21
21
  registerRichText,
22
22
  registerSchema
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  allSectionDefs
3
- } from "../../chunk-56J4QMF4.js";
4
- import "../../chunk-665DW3HR.js";
5
- import "../../chunk-Q6LZOH5M.js";
3
+ } from "../../chunk-VY5V4HBV.js";
4
+ import "../../chunk-6VOIZP2O.js";
5
+ import "../../chunk-XDG2K6UT.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-FDBZZ4AT.js";
8
- import "../../chunk-DKXISNJ2.js";
7
+ import "../../chunk-PTVY3Q7P.js";
8
+ import "../../chunk-NEDOJHHR.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-MBJUWOM2.js";
10
+ import "../../chunk-EO7K45GV.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-YKOLOZB2.js";
12
+ import "../../chunk-DRCPDOW3.js";
13
13
  import "../../chunk-PZJL2S3Z.js";
14
14
  import "../../chunk-WDSVHKAH.js";
15
15
  import "../../chunk-53DKVAB6.js";
16
16
  import "../../chunk-7EOSDFS3.js";
17
17
  import "../../chunk-YBVK254P.js";
18
18
  import "../../chunk-TZQPOR5A.js";
19
- import "../../chunk-E3MTIMOG.js";
19
+ import "../../chunk-XPUBUR64.js";
20
20
  import {
21
21
  registerSection
22
22
  } from "../../chunk-VKAGMEKE.js";
@@ -4,8 +4,13 @@ interface Props {
4
4
  siteName: string;
5
5
  darkMode: "light" | "dark" | "optional";
6
6
  lastUpdated: string | null;
7
+ logo?: {
8
+ lightUrl: string;
9
+ darkUrl: string | null;
10
+ invertInDark: boolean;
11
+ } | null;
7
12
  onPageSelect?: (pageId: string) => void;
8
13
  }
9
- export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, onPageSelect }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, logo, onPageSelect }: Props): import("react/jsx-runtime").JSX.Element;
10
15
  export {};
11
16
  //# sourceMappingURL=Navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,2CAwO/G"}
1
+ {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAGlF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,2CAyPrH"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwDtF,OAAO,KAAK,EAAE,eAAe,EAA2D,MAAM,oBAAoB,CAAC;AAmCnH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoBxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAIhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAIhE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKjC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,EACX,sBAA8B,EAC9B,eAAe,GAChB,EAAE,KAAK,2CAsiDP;AAuED;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,EACvC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,EAAE,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B"}
1
+ {"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuDtF,OAAO,KAAK,EAAE,eAAe,EAA2D,MAAM,oBAAoB,CAAC;AAmCnH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoBxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAIhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAIhE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKjC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,EACX,sBAA8B,EAC9B,eAAe,GAChB,EAAE,KAAK,2CA0hDP;AAuED;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,EACvC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,EAAE,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B"}
@@ -1,13 +1,11 @@
1
1
  import type { SiteConfig } from "../../schemas/site-config";
2
2
  import type { Audience } from "../../auth/types";
3
3
  interface Props {
4
- isOpen: boolean;
5
- onClose: () => void;
6
4
  siteConfig: SiteConfig;
7
5
  onSiteConfigChange: (config: SiteConfig) => void;
8
6
  audiences: Audience[];
9
7
  platformEnabled: boolean;
10
8
  }
11
- export declare function ChatbotConfigModal({ isOpen, onClose, siteConfig, onSiteConfigChange, audiences, platformEnabled }: Props): import("react/jsx-runtime").JSX.Element;
9
+ export declare function SiteSettingsChatbot({ siteConfig, onSiteConfigChange, audiences, platformEnabled }: Props): import("react/jsx-runtime").JSX.Element;
12
10
  export {};
13
- //# sourceMappingURL=ChatbotConfigModal.d.ts.map
11
+ //# sourceMappingURL=SiteSettingsChatbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteSettingsChatbot.d.ts","sourceRoot":"","sources":["../../../src/components/shell/SiteSettingsChatbot.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAA8B,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,UAAU,KAAK;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsBD,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,KAAK,2CAwJxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"SiteSettingsDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/shell/SiteSettingsDisplay.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,UAAU,KAAK;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAkBD,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA6KlE"}
1
+ {"version":3,"file":"SiteSettingsDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/shell/SiteSettingsDisplay.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,UAAU,KAAK;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AA4BD,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA2QlE"}
@@ -6,6 +6,8 @@ interface Props {
6
6
  siteConfig: SiteConfig;
7
7
  onSiteConfigChange: (config: SiteConfig) => void;
8
8
  onAudiencesChange: (audiences: Audience[]) => void;
9
+ audiences: Audience[];
10
+ chatbotPlatformEnabled: boolean;
9
11
  capabilities: {
10
12
  oauth: boolean;
11
13
  emailPassword: boolean;
@@ -19,6 +21,6 @@ interface Props {
19
21
  role: "owner" | "editor";
20
22
  } | null;
21
23
  }
22
- export declare function SiteSettingsModal({ isOpen, onClose, siteConfig, onSiteConfigChange, onAudiencesChange, capabilities, currentUser }: Props): import("react/jsx-runtime").JSX.Element;
24
+ export declare function SiteSettingsModal({ isOpen, onClose, siteConfig, onSiteConfigChange, onAudiencesChange, audiences, chatbotPlatformEnabled, capabilities, currentUser }: Props): import("react/jsx-runtime").JSX.Element;
23
25
  export {};
24
26
  //# sourceMappingURL=SiteSettingsModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SiteSettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/SiteSettingsModal.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,UAAU,KAAK;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,iBAAiB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,2CA2FzI"}
1
+ {"version":3,"file":"SiteSettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/SiteSettingsModal.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,UAAU,KAAK;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,iBAAiB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,2CA0G5K"}
@@ -15,8 +15,9 @@ interface UseMediaPipelineInput {
15
15
  markSectionDirty: (sectionId: string, content: SectionContent) => void;
16
16
  onUploadError?: (message: string) => void;
17
17
  onUploadNotice?: (message: string) => void;
18
+ onSiteConfigChange?: (updater: (prev: SiteConfig) => SiteConfig) => void;
18
19
  }
19
- export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaManifest, sections, setSections, setLocalChangesExist, setDirtySectionIds, markSectionDirty, onUploadError, onUploadNotice, }: UseMediaPipelineInput): {
20
+ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaManifest, sections, setSections, setLocalChangesExist, setDirtySectionIds, markSectionDirty, onUploadError, onUploadNotice, onSiteConfigChange, }: UseMediaPipelineInput): {
20
21
  processingItems: QueueItem[];
21
22
  pendingMediaItems: {
22
23
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAexF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAIvE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAkS8B,IAAI,EAAE,mBAAkB,MAAM,GAAG,IAAI;6BAyDvC,MAAM,EAAE;+BA+CZ,MAAM,OAAO,MAAM;+BAiBnB,MAAM,YAAY,MAAM,GAAG,IAAI,KAAG,MAAM;6BAW1C,MAAM,QAAQ,MAAM;2BAWtB,MAAM,YAAY,MAAM,GAAG,IAAI;6BA4BvB,MAAM,YAAY,MAAM,GAAG,QAAQ;2BAd3C,MAAM,EAAE,YAAY,MAAM,GAAG,IAAI;kCA4DhE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,mBAC9B,MAAM,GAAG,IAAI;;;wBAiCO,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;EAoFpF"}
1
+ {"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAexF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAIvE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAI3C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;CAC1E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAkS8B,IAAI,EAAE,mBAAkB,MAAM,GAAG,IAAI;6BAyDvC,MAAM,EAAE;+BAsDZ,MAAM,OAAO,MAAM;+BAiBnB,MAAM,YAAY,MAAM,GAAG,IAAI,KAAG,MAAM;6BAW1C,MAAM,QAAQ,MAAM;2BAWtB,MAAM,YAAY,MAAM,GAAG,IAAI;6BA4BvB,MAAM,YAAY,MAAM,GAAG,QAAQ;2BAd3C,MAAM,EAAE,YAAY,MAAM,GAAG,IAAI;kCA4DhE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,mBAC9B,MAAM,GAAG,IAAI;;;wBAkCO,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;EAoFpF"}
package/dist/index.js CHANGED
@@ -26,11 +26,12 @@ import {
26
26
  hashFileBuffer,
27
27
  mimeToExt,
28
28
  rebindImageRef,
29
+ resolveLogo,
29
30
  resolveManifestReferences,
30
31
  resolveMedia,
31
32
  sanitizeMediaName,
32
33
  setMediaProvider
33
- } from "./chunk-YKOLOZB2.js";
34
+ } from "./chunk-DRCPDOW3.js";
34
35
  import {
35
36
  CollabPeerSchema,
36
37
  HEARTBEAT_INTERVAL_MS,
@@ -49,7 +50,7 @@ import {
49
50
  AudienceNameSchema,
50
51
  MediaGridOptionsSchema,
51
52
  slugifyAudienceName
52
- } from "./chunk-EP3LVOXZ.js";
53
+ } from "./chunk-WA3HFN54.js";
53
54
  import {
54
55
  AudienceSchema,
55
56
  RoleSchema,
@@ -71,7 +72,7 @@ import {
71
72
  loadStaticSiteContent,
72
73
  mergeSiteContent,
73
74
  safeRedirect
74
- } from "./chunk-DO3ZENLN.js";
75
+ } from "./chunk-OEL57NYV.js";
75
76
  import {
76
77
  curatedIcons,
77
78
  getIcon
@@ -124,7 +125,7 @@ import {
124
125
  TextLineSchema,
125
126
  VariantSchema,
126
127
  normalizeSiteIndex
127
- } from "./chunk-E3MTIMOG.js";
128
+ } from "./chunk-XPUBUR64.js";
128
129
  import {
129
130
  clearRegistry,
130
131
  createRegistry,
@@ -243,6 +244,7 @@ export {
243
244
  registerSchema,
244
245
  registerSection,
245
246
  requireSessionSecret,
247
+ resolveLogo,
246
248
  resolveManifestReferences,
247
249
  resolveMedia,
248
250
  safeNextPath,
@@ -1,3 +1,4 @@
1
+ import type { SiteConfig } from "../schemas/site-config";
1
2
  /**
2
3
  * Structural walkers over section content for `imageId` references.
3
4
  *
@@ -18,4 +19,12 @@ export declare function collectImageIds(value: unknown): Set<string>;
18
19
  * including arrays and nesting, is preserved unchanged.
19
20
  */
20
21
  export declare function clearImageIds(value: unknown, ids: Set<string>): unknown;
22
+ /**
23
+ * Applies a media-deletion id set to a site logo config, granularly: deleting
24
+ * the light variant's backing asset removes the logo entirely (no light = no
25
+ * logo to show), while deleting only the dark variant's asset keeps the
26
+ * light logo + flags and drops just the dark override. Returns the same
27
+ * `logo` reference unchanged when neither id was deleted.
28
+ */
29
+ export declare function applyLogoDeletion(logo: SiteConfig["logo"], deletedIds: Set<string>): SiteConfig["logo"];
21
30
  //# sourceMappingURL=image-refs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-refs.d.ts","sourceRoot":"","sources":["../../src/lib/image-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1G;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAevE"}
1
+ {"version":3,"file":"image-refs.d.ts","sourceRoot":"","sources":["../../src/lib/image-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1G;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAevE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,UAAU,CAAC,MAAM,CAAC,CAKpB"}
package/dist/lib/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  loadStaticSiteContent,
8
8
  mergeSiteContent,
9
9
  safeRedirect
10
- } from "../chunk-DO3ZENLN.js";
10
+ } from "../chunk-OEL57NYV.js";
11
11
  import {
12
12
  curatedIcons,
13
13
  getIcon
@@ -33,7 +33,7 @@ import {
33
33
  } from "../chunk-YBVK254P.js";
34
34
  import "../chunk-75P6HWPN.js";
35
35
  import "../chunk-TZQPOR5A.js";
36
- import "../chunk-E3MTIMOG.js";
36
+ import "../chunk-XPUBUR64.js";
37
37
  import {
38
38
  clearRegistry,
39
39
  createRegistry,