@drawnagency/primitives 0.1.87 → 0.1.89

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 (87) hide show
  1. package/dist/{chunk-PTVY3Q7P.js → chunk-2QXJ2KGB.js} +1 -1
  2. package/dist/{chunk-DRCPDOW3.js → chunk-CZ3YXGK5.js} +59 -0
  3. package/dist/{chunk-NEDOJHHR.js → chunk-J75XGXYD.js} +2 -2
  4. package/dist/{chunk-6VOIZP2O.js → chunk-L2MAJKKC.js} +220 -207
  5. package/dist/{chunk-VY5V4HBV.js → chunk-MVX4ULYE.js} +6 -6
  6. package/dist/{chunk-EO7K45GV.js → chunk-NV4R6VHN.js} +1 -1
  7. package/dist/{chunk-XDG2K6UT.js → chunk-QFV5TSPO.js} +1 -1
  8. package/dist/{chunk-OEL57NYV.js → chunk-VK5KNH73.js} +25 -1
  9. package/dist/{chunk-XPUBUR64.js → chunk-WCBYXNAG.js} +27 -2
  10. package/dist/{chunk-WA3HFN54.js → chunk-Y24T75HT.js} +1 -1
  11. package/dist/components/brandguide/Colors.d.ts.map +1 -1
  12. package/dist/components/brandguide/ColorsEditable.d.ts +20 -0
  13. package/dist/components/brandguide/ColorsEditable.d.ts.map +1 -0
  14. package/dist/components/brandguide/ColorsView.d.ts +9 -0
  15. package/dist/components/brandguide/ColorsView.d.ts.map +1 -0
  16. package/dist/components/brandguide/colors-shared.d.ts +4 -0
  17. package/dist/components/brandguide/colors-shared.d.ts.map +1 -0
  18. package/dist/components/chat/ChatPanel.d.ts +20 -3
  19. package/dist/components/chat/ChatPanel.d.ts.map +1 -1
  20. package/dist/components/chat/ChatWidget.d.ts +7 -1
  21. package/dist/components/chat/ChatWidget.d.ts.map +1 -1
  22. package/dist/components/chat/chat-history.d.ts +24 -0
  23. package/dist/components/chat/chat-history.d.ts.map +1 -0
  24. package/dist/components/editor/index.js +4 -4
  25. package/dist/components/primitives/index.js +5 -5
  26. package/dist/components/sections/Colors/index.d.ts.map +1 -1
  27. package/dist/components/sections/SectionIsland.d.ts +8 -0
  28. package/dist/components/sections/SectionIsland.d.ts.map +1 -0
  29. package/dist/components/sections/brand-guide.js +5 -5
  30. package/dist/components/sections/register-schemas.js +8 -8
  31. package/dist/components/sections/register.js +8 -8
  32. package/dist/components/shared/Navigation.d.ts +6 -1
  33. package/dist/components/shared/Navigation.d.ts.map +1 -1
  34. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  35. package/dist/components/shell/MediaLibraryContext.d.ts +3 -1
  36. package/dist/components/shell/MediaLibraryContext.d.ts.map +1 -1
  37. package/dist/components/shell/SiteSettingsChatbot.d.ts.map +1 -1
  38. package/dist/hooks/useCollabSession.d.ts.map +1 -1
  39. package/dist/hooks/useMediaPipeline.d.ts +5 -1
  40. package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
  41. package/dist/index.js +14 -4
  42. package/dist/lib/chatbot.d.ts +10 -0
  43. package/dist/lib/chatbot.d.ts.map +1 -0
  44. package/dist/lib/contrast.d.ts +5 -0
  45. package/dist/lib/contrast.d.ts.map +1 -1
  46. package/dist/lib/index.d.ts +2 -1
  47. package/dist/lib/index.d.ts.map +1 -1
  48. package/dist/lib/index.js +10 -2
  49. package/dist/lib/registry.d.ts +7 -0
  50. package/dist/lib/registry.d.ts.map +1 -1
  51. package/dist/media/compose-preview.d.ts +23 -0
  52. package/dist/media/compose-preview.d.ts.map +1 -0
  53. package/dist/media/index.d.ts +1 -0
  54. package/dist/media/index.d.ts.map +1 -1
  55. package/dist/media/index.js +4 -2
  56. package/dist/media/preview-inputs.d.ts +31 -0
  57. package/dist/media/preview-inputs.d.ts.map +1 -0
  58. package/dist/schemas/index.js +2 -2
  59. package/dist/schemas/media.d.ts +2 -0
  60. package/dist/schemas/media.d.ts.map +1 -1
  61. package/dist/schemas/site-config.d.ts +12 -0
  62. package/dist/schemas/site-config.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/components/brandguide/Colors.tsx +2 -275
  65. package/src/components/brandguide/ColorsEditable.tsx +155 -0
  66. package/src/components/brandguide/ColorsView.tsx +100 -0
  67. package/src/components/brandguide/colors-shared.ts +17 -0
  68. package/src/components/chat/ChatPanel.tsx +437 -65
  69. package/src/components/chat/ChatWidget.tsx +90 -32
  70. package/src/components/chat/chat-history.ts +105 -0
  71. package/src/components/sections/Colors/index.tsx +1 -0
  72. package/src/components/sections/SectionIsland.tsx +21 -0
  73. package/src/components/shared/Navigation.tsx +18 -5
  74. package/src/components/shell/EditorShell.tsx +71 -1
  75. package/src/components/shell/MediaLibraryContext.tsx +1 -1
  76. package/src/components/shell/SiteSettingsChatbot.tsx +47 -0
  77. package/src/hooks/useCollabSession.ts +27 -0
  78. package/src/hooks/useMediaPipeline.ts +7 -3
  79. package/src/lib/chatbot.ts +30 -0
  80. package/src/lib/contrast.ts +12 -0
  81. package/src/lib/index.ts +2 -1
  82. package/src/lib/registry.ts +7 -0
  83. package/src/media/compose-preview.ts +90 -0
  84. package/src/media/index.ts +1 -0
  85. package/src/media/preview-inputs.ts +77 -0
  86. package/src/schemas/media.ts +3 -0
  87. package/src/schemas/site-config.ts +26 -1
@@ -3,7 +3,7 @@ import {
3
3
  pluralize,
4
4
  stripHtmlToPlainText,
5
5
  truncate
6
- } from "./chunk-6VOIZP2O.js";
6
+ } from "./chunk-L2MAJKKC.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-XDG2K6UT.js";
18
+ } from "./chunk-QFV5TSPO.js";
19
19
  import {
20
20
  EditableRichText,
21
21
  defineHeadingSection
22
- } from "./chunk-PTVY3Q7P.js";
22
+ } from "./chunk-2QXJ2KGB.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-NEDOJHHR.js";
31
+ } from "./chunk-J75XGXYD.js";
32
32
  import {
33
33
  useMediaLibrary,
34
34
  useResolvedMedia
35
- } from "./chunk-EO7K45GV.js";
35
+ } from "./chunk-NV4R6VHN.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-XPUBUR64.js";
54
+ } from "./chunk-WCBYXNAG.js";
55
55
  import {
56
56
  defineSection,
57
57
  getSection
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMediaProvider
3
- } from "./chunk-DRCPDOW3.js";
3
+ } from "./chunk-CZ3YXGK5.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-7EOSDFS3.js";
@@ -14,7 +14,7 @@ import {
14
14
  SettingsIcon,
15
15
  useMediaLibrary,
16
16
  useResolvedMedia
17
- } from "./chunk-EO7K45GV.js";
17
+ } from "./chunk-NV4R6VHN.js";
18
18
  import {
19
19
  cn
20
20
  } from "./chunk-7EOSDFS3.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-TZQPOR5A.js";
10
10
  import {
11
11
  IndexSchema
12
- } from "./chunk-XPUBUR64.js";
12
+ } from "./chunk-WCBYXNAG.js";
13
13
  import {
14
14
  getAllSchemas
15
15
  } from "./chunk-VKAGMEKE.js";
@@ -18,6 +18,19 @@ import {
18
18
  blockDepth
19
19
  } from "./chunk-NSCT3AMV.js";
20
20
 
21
+ // src/lib/chatbot.ts
22
+ var DEFAULT_CHATBOT_NAME = "Portal Assistant";
23
+ function resolveChatbotName(chatbot, audience) {
24
+ const perAudience = audience !== null ? chatbot.audienceNames?.[audience] : void 0;
25
+ if (typeof perAudience === "string" && perAudience.trim()) return perAudience.trim();
26
+ if (typeof chatbot.name === "string" && chatbot.name.trim()) return chatbot.name.trim();
27
+ return DEFAULT_CHATBOT_NAME;
28
+ }
29
+ function resolveThinkingPhrases(phrases) {
30
+ const list = (phrases ?? []).filter((p) => typeof p === "string").map((p) => p.trim()).filter(Boolean).map((p) => `${p}\u2026`);
31
+ return list.length > 0 ? list : ["Thinking\u2026"];
32
+ }
33
+
21
34
  // src/lib/contrast.ts
22
35
  function deriveContrast(hex) {
23
36
  const h = hex.replace("#", "");
@@ -28,6 +41,13 @@ function deriveContrast(hex) {
28
41
  const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
29
42
  return luminance >= 0.5 ? "#1a1a1a" : "#f0f0f0";
30
43
  }
44
+ function contrastColor(hex) {
45
+ const h = hex.replace("#", "");
46
+ const r = parseInt(h.slice(0, 2), 16);
47
+ const g = parseInt(h.slice(2, 4), 16);
48
+ const b = parseInt(h.slice(4, 6), 16);
49
+ return (r * 299 + g * 587 + b * 114) / 1e3 > 150 ? "#1a1a1a" : "#ffffff";
50
+ }
31
51
 
32
52
  // src/lib/grid.ts
33
53
  var gridColsClass = {
@@ -139,7 +159,11 @@ async function loadSiteContent(contentDir) {
139
159
  }
140
160
 
141
161
  export {
162
+ DEFAULT_CHATBOT_NAME,
163
+ resolveChatbotName,
164
+ resolveThinkingPhrases,
142
165
  deriveContrast,
166
+ contrastColor,
143
167
  gridColsClass,
144
168
  buildGoogleFontsUrl,
145
169
  formatTimestamp,
@@ -100,7 +100,10 @@ var MediaItemSchema = z2.object({
100
100
  duration: z2.number().positive().optional(),
101
101
  // Display folder (MediaFolderSchema key). Absent = root/unfiled. NOT the
102
102
  // git storage dir — that's `folder` above, which never changes.
103
- folderId: z2.string().optional()
103
+ folderId: z2.string().optional(),
104
+ // System-generated assets (e.g. the Phase 3 social-preview raster) set this
105
+ // so the media-library UI can exclude them. Absent on all user uploads.
106
+ hidden: z2.boolean().optional()
104
107
  });
105
108
  var ImageManifestSchema = z2.object({
106
109
  images: z2.record(z2.string(), MediaItemSchema),
@@ -239,6 +242,15 @@ var ChatbotTaskSchema = z3.object({
239
242
  });
240
243
  var ChatbotConfigSchema = z3.object({
241
244
  enabled: z3.boolean().default(false),
245
+ // Assistant display name shown in the widget header and used in the system
246
+ // prompt. Blank falls back to "Portal Assistant" (resolveChatbotName).
247
+ name: z3.string().max(60).default("Portal Assistant"),
248
+ // Per-audience name overrides, keyed by audience name — same inert-when-
249
+ // deselected semantics as audiencePrompts.
250
+ audienceNames: z3.record(z3.string(), z3.string().max(60)).default({}),
251
+ // Brand-flavored waiting phrases, shown (with "…" appended) while the
252
+ // assistant streams no text yet. Empty = the widget's "Thinking…" default.
253
+ thinkingPhrases: z3.array(z3.string().max(80)).max(30).default([]),
242
254
  systemPrompt: z3.string().max(8e3).default(""),
243
255
  // Audience names the widget is shown to — strict opt-in: [] = no viewer
244
256
  // sees it (editors always can via /edit). Gates: [...slug].astro + /api/chat.
@@ -288,10 +300,23 @@ var SiteConfigSchema = z3.object({
288
300
  showInNav: z3.boolean().default(true)
289
301
  }).nullable().default(null),
290
302
  media: MediaConfigSchema.default(MediaConfigSchema.parse({})),
303
+ // Composed social-preview raster, stored as a media-library reference so it
304
+ // participates in usage tracking + GC protection. Composed client-side at
305
+ // save time (Phase 3). `width`/`height` are the ACTUAL served variant size
306
+ // (the /api/media route only serves exact generated-variant widths), so the
307
+ // og:image URL + dimensions are correct. Defaults null so pre-existing
308
+ // configs keep parsing and sites without a preview emit no og:image tags.
309
+ previewImage: z3.object({
310
+ imageId: z3.string(),
311
+ width: z3.number().int().positive(),
312
+ height: z3.number().int().positive()
313
+ }).nullable().default(null),
314
+ // Optional site description → og:description + <meta name="description">.
315
+ description: z3.string().max(300).nullable().default(null),
291
316
  // Brand chatbot config (editor-owned; the platform kill switch lives in the
292
317
  // sites table, not here). Every field defaults so pre-existing
293
318
  // site-config.json files keep parsing.
294
- chatbot: ChatbotConfigSchema.default({ enabled: false, systemPrompt: "", audiences: [], tasks: [], audiencePrompts: {} })
319
+ chatbot: ChatbotConfigSchema.default({ enabled: false, name: "Portal Assistant", audienceNames: {}, thinkingPhrases: [], systemPrompt: "", audiences: [], tasks: [], audiencePrompts: {} })
295
320
  });
296
321
 
297
322
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HexColorSchema
3
- } from "./chunk-XPUBUR64.js";
3
+ } from "./chunk-WCBYXNAG.js";
4
4
 
5
5
  // src/schemas/audience.ts
6
6
  import { z } from "zod";
@@ -1 +1 @@
1
- {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/components/brandguide/Colors.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,UAAU,KAAK;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAgCD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,OAAW,EAAE,KAAK,EAAE,UAAU,EAAE,SAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAiBhI"}
1
+ {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/components/brandguide/Colors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,UAAU,KAAK;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,OAAW,EAAE,KAAK,EAAE,UAAU,EAAE,SAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAiBhI"}
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ColorItem } from "../sections/Colors/schema";
3
+ import type { SectionContent } from "../../schemas/sections";
4
+ export declare function buildContent(colors: ColorItem[], options: {
5
+ label?: string;
6
+ columns?: number;
7
+ collapsing?: boolean;
8
+ showLabel?: boolean;
9
+ }): SectionContent;
10
+ export default function ColorsEditable({ colors, columns, label, collapsing, showLabel, onChange, openModal, onDelete, }: {
11
+ colors: ColorItem[];
12
+ columns: number;
13
+ label?: string;
14
+ collapsing?: boolean;
15
+ showLabel?: boolean;
16
+ onChange: (content: SectionContent) => void;
17
+ openModal: (title: string, content: ReactNode) => void;
18
+ onDelete?: () => void;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=ColorsEditable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorsEditable.d.ts","sourceRoot":"","sources":["../../../src/components/brandguide/ColorsEditable.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACvF,cAAc,CAShB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAC7E,EAAE;IACD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,2CAqEA"}
@@ -0,0 +1,9 @@
1
+ import type { ColorItem } from "../sections/Colors/schema";
2
+ export default function ColorsView({ colors, columns, label, collapsing, showLabel, }: {
3
+ colors: ColorItem[];
4
+ columns: number;
5
+ label?: string;
6
+ collapsing?: boolean;
7
+ showLabel?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=ColorsView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorsView.d.ts","sourceRoot":"","sources":["../../../src/components/brandguide/ColorsView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAgFA"}
@@ -0,0 +1,4 @@
1
+ import type { ColorItem } from "../sections/Colors/schema";
2
+ export declare function getContrastClass(hex: string | undefined): string;
3
+ export declare const createColorItem: () => ColorItem;
4
+ //# sourceMappingURL=colors-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors-shared.d.ts","sourceRoot":"","sources":["../../../src/components/brandguide/colors-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAShE;AAED,eAAO,MAAM,eAAe,QAAO,SAGjC,CAAC"}
@@ -2,6 +2,11 @@ export interface ChatMessage {
2
2
  role: "user" | "assistant";
3
3
  content: string;
4
4
  }
5
+ /** How the conversation is framed on screen:
6
+ * - "floating": the compact anchored panel (/edit FAB + settings test chat)
7
+ * - "docked": full-height right sidebar (viewer, >=768px)
8
+ * - "sheet": bottom sheet (viewer, phones) */
9
+ export type ChatPanelMode = "floating" | "docked" | "sheet";
5
10
  /** Assistant markdown → sanitized HTML. Callers MUST gate on the sanitizer
6
11
  * having loaded (`mdReady`) — before then sanitizeHtml passes raw HTML
7
12
  * through, and model output is untrusted. Exported for tests. */
@@ -13,7 +18,7 @@ export declare function streamChat(body: {
13
18
  taskId?: string;
14
19
  draftChatbot?: unknown;
15
20
  simulateAudience?: string;
16
- }, onText: (text: string) => void): Promise<{
21
+ }, onText: (text: string) => void, signal?: AbortSignal): Promise<{
17
22
  ok: true;
18
23
  truncated: boolean;
19
24
  } | {
@@ -21,10 +26,14 @@ export declare function streamChat(body: {
21
26
  error: string;
22
27
  retryAfterMs?: number;
23
28
  }>;
24
- export default function ChatPanel({ open, onClose, siteName, tasks, isEditor, draftChatbot, simulateAudience, variant }: {
29
+ export default function ChatPanel({ open, onClose, siteName, botName, thinkingPhrases, tasks, isEditor, draftChatbot, simulateAudience, variant, mode, focusComposer, audience }: {
25
30
  open: boolean;
26
31
  onClose: () => void;
27
32
  siteName: string;
33
+ /** Resolved assistant display name (per-audience, server-side). */
34
+ botName: string;
35
+ /** Raw configured phrases; "…" appending + fallback happen here. */
36
+ thinkingPhrases?: string[];
28
37
  tasks: {
29
38
  id: string;
30
39
  label: string;
@@ -34,7 +43,15 @@ export default function ChatPanel({ open, onClose, siteName, tasks, isEditor, dr
34
43
  draftChatbot?: unknown;
35
44
  /** Configurator test panel only: preview this audience's prompt overlay. */
36
45
  simulateAudience?: string;
37
- /** Anchors the panel above its launcher: viewer corner FAB vs /edit FAB column. */
46
+ /** Floating mode only — anchors the panel above its launcher: viewer corner
47
+ * FAB vs /edit FAB column. */
38
48
  variant?: "viewer" | "editor";
49
+ mode?: ChatPanelMode;
50
+ /** Focus the composer when opened (explicit user open on desktop). Never
51
+ * used for the sheet — autofocusing there pops the keyboard over content. */
52
+ focusComposer?: boolean;
53
+ /** Viewer's audience (null for editor sessions) — tags history entries so
54
+ * the list never shows another audience's transcripts. */
55
+ audience?: string | null;
39
56
  }): import("react/jsx-runtime").JSX.Element | null;
40
57
  //# sourceMappingURL=ChatPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatPanel.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAoB5E;;kEAEkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAcD,8EAA8E;AAC9E,wBAAsB,UAAU,CAC9B,IAAI,EAAE;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,EACxH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCjG;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAkB,EAAE,EAAE;IAClI,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B,kDA8JA"}
1
+ {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatPanel.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAE5E;;;kDAGkD;AAClD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AA8C5D;;kEAEkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAcD,8EAA8E;AAC9E,wBAAsB,UAAU,CAC9B,IAAI,EAAE;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,EACxH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6CjG;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAkB,EAAE,IAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;IACxM,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;mCAC+B;IAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;kFAC8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;+DAC2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,kDA8dA"}
@@ -1,5 +1,9 @@
1
1
  export interface ChatWidgetProps {
2
2
  siteName: string;
3
+ /** Resolved assistant display name (per-audience, resolved server-side). */
4
+ botName: string;
5
+ /** Configured waiting phrases ("…" appended in the panel). */
6
+ thinkingPhrases?: string[];
3
7
  /** Already audience-filtered server-side — never pass unfiltered config tasks. */
4
8
  tasks: {
5
9
  id: string;
@@ -9,6 +13,8 @@ export interface ChatWidgetProps {
9
13
  /** Editor-only: chat against the current (unsaved) chatbot config. */
10
14
  draftChatbot?: unknown;
11
15
  variant?: "viewer" | "editor";
16
+ /** Viewer's audience (null for editor sessions) — tags local chat history. */
17
+ audience?: string | null;
12
18
  }
13
- export default function ChatWidget({ siteName, tasks, isEditor, draftChatbot, variant }: ChatWidgetProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function ChatWidget({ siteName, botName, thinkingPhrases, tasks, isEditor, draftChatbot, variant, audience }: ChatWidgetProps): import("react/jsx-runtime").JSX.Element;
14
20
  //# sourceMappingURL=ChatWidget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatWidget.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAkB,EAAE,EAAE,eAAe,2CA2ClH"}
1
+ {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatWidget.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAkB,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAyFtJ"}
@@ -0,0 +1,24 @@
1
+ import type { ChatMessage } from "./ChatPanel";
2
+ export declare const HISTORY_RETENTION_DAYS = 30;
3
+ export declare const HISTORY_MAX_UNPINNED = 20;
4
+ export interface StoredConversation {
5
+ id: string;
6
+ title: string;
7
+ /** Audience tag ("editor" for editor sessions on viewer pages). */
8
+ audience: string;
9
+ pinned: boolean;
10
+ updatedAt: number;
11
+ messages: ChatMessage[];
12
+ }
13
+ /** Current audience's conversations: pinned first, then newest first. */
14
+ export declare function loadHistory(audience: string, now?: number): StoredConversation[];
15
+ /** Create/refresh a conversation's archive entry (preserves its pinned flag)
16
+ * and apply retention. No-ops on empty transcripts. */
17
+ export declare function upsertConversation(input: {
18
+ id: string;
19
+ audience: string;
20
+ messages: ChatMessage[];
21
+ }, now?: number): void;
22
+ export declare function setConversationPinned(id: string, pinned: boolean): void;
23
+ export declare function removeConversation(id: string): void;
24
+ //# sourceMappingURL=chat-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-history.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-history.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAIvC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAyCD,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,kBAAkB,EAAE,CAKpF;AAED;wDACwD;AACxD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,EAChE,GAAG,SAAa,GACf,IAAI,CAeN;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEnD"}
@@ -11,20 +11,20 @@ import {
11
11
  buildBlockDropData,
12
12
  canDropBlock,
13
13
  isBlockDragData
14
- } from "../../chunk-XDG2K6UT.js";
14
+ } from "../../chunk-QFV5TSPO.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-EO7K45GV.js";
21
- import "../../chunk-DRCPDOW3.js";
20
+ } from "../../chunk-NV4R6VHN.js";
21
+ import "../../chunk-CZ3YXGK5.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-XPUBUR64.js";
27
+ import "../../chunk-WCBYXNAG.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
30
30
 
@@ -2,7 +2,7 @@ import {
2
2
  EditableRichText,
3
3
  LinkPopover,
4
4
  defineHeadingSection
5
- } from "../../chunk-PTVY3Q7P.js";
5
+ } from "../../chunk-2QXJ2KGB.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-NEDOJHHR.js";
13
+ } from "../../chunk-J75XGXYD.js";
14
14
  import "../../chunk-ZSPCE6MZ.js";
15
15
  import {
16
16
  DeleteIcon,
17
17
  DragHandle,
18
18
  IconButton
19
- } from "../../chunk-EO7K45GV.js";
20
- import "../../chunk-DRCPDOW3.js";
19
+ } from "../../chunk-NV4R6VHN.js";
20
+ import "../../chunk-CZ3YXGK5.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-XPUBUR64.js";
26
+ import "../../chunk-WCBYXNAG.js";
27
27
  import "../../chunk-VKAGMEKE.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Colors/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,wBAsCG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Colors/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,wBAuCG"}
@@ -0,0 +1,8 @@
1
+ interface Props {
2
+ type: string;
3
+ content: unknown;
4
+ options?: Record<string, unknown>;
5
+ }
6
+ export default function SectionIsland({ type, content, options }: Props): import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=SectionIsland.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionIsland.d.ts","sourceRoot":"","sources":["../../../src/components/sections/SectionIsland.tsx"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,kDAMtE"}
@@ -2,16 +2,16 @@ import {
2
2
  ColorItemSchema,
3
3
  ColorSpaceSchema,
4
4
  brandGuideSectionDefs
5
- } from "../../chunk-6VOIZP2O.js";
5
+ } from "../../chunk-L2MAJKKC.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-NEDOJHHR.js";
8
- import "../../chunk-EO7K45GV.js";
9
- import "../../chunk-DRCPDOW3.js";
7
+ import "../../chunk-J75XGXYD.js";
8
+ import "../../chunk-NV4R6VHN.js";
9
+ import "../../chunk-CZ3YXGK5.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-XPUBUR64.js";
14
+ import "../../chunk-WCBYXNAG.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-VY5V4HBV.js";
4
- import "../../chunk-6VOIZP2O.js";
5
- import "../../chunk-XDG2K6UT.js";
3
+ } from "../../chunk-MVX4ULYE.js";
4
+ import "../../chunk-L2MAJKKC.js";
5
+ import "../../chunk-QFV5TSPO.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-PTVY3Q7P.js";
8
- import "../../chunk-NEDOJHHR.js";
7
+ import "../../chunk-2QXJ2KGB.js";
8
+ import "../../chunk-J75XGXYD.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-EO7K45GV.js";
10
+ import "../../chunk-NV4R6VHN.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-DRCPDOW3.js";
12
+ import "../../chunk-CZ3YXGK5.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-XPUBUR64.js";
19
+ import "../../chunk-WCBYXNAG.js";
20
20
  import {
21
21
  registerRichText,
22
22
  registerSchema
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  allSectionDefs
3
- } from "../../chunk-VY5V4HBV.js";
4
- import "../../chunk-6VOIZP2O.js";
5
- import "../../chunk-XDG2K6UT.js";
3
+ } from "../../chunk-MVX4ULYE.js";
4
+ import "../../chunk-L2MAJKKC.js";
5
+ import "../../chunk-QFV5TSPO.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-PTVY3Q7P.js";
8
- import "../../chunk-NEDOJHHR.js";
7
+ import "../../chunk-2QXJ2KGB.js";
8
+ import "../../chunk-J75XGXYD.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-EO7K45GV.js";
10
+ import "../../chunk-NV4R6VHN.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-DRCPDOW3.js";
12
+ import "../../chunk-CZ3YXGK5.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-XPUBUR64.js";
19
+ import "../../chunk-WCBYXNAG.js";
20
20
  import {
21
21
  registerSection
22
22
  } from "../../chunk-VKAGMEKE.js";
@@ -10,7 +10,12 @@ interface Props {
10
10
  invertInDark: boolean;
11
11
  } | null;
12
12
  onPageSelect?: (pageId: string) => void;
13
+ /** Viewport width where the drawer becomes a fixed sidebar. Pages that dock
14
+ * the chat sidebar pass "xl" so tablet widths keep the hamburger and give
15
+ * the freed column to chat. Static per page render — deliberately keyed to
16
+ * chat being ENABLED, not open, so the nav never flaps when chat toggles. */
17
+ desktopBreakpoint?: "lg" | "xl";
13
18
  }
14
- export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, logo, onPageSelect }: Props): import("react/jsx-runtime").JSX.Element;
19
+ export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, logo, onPageSelect, desktopBreakpoint }: Props): import("react/jsx-runtime").JSX.Element;
15
20
  export {};
16
21
  //# 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;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
+ {"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;IACxC;;;kFAG8E;IAC9E,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACjC;AAQD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAwB,EAAE,EAAE,KAAK,2CA2P/I"}
@@ -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;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
+ {"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAcjD,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,2CA2lDP;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"}
@@ -3,7 +3,9 @@ import type { SiteConfig } from "../../schemas/site-config";
3
3
  export interface MediaLibraryContextValue {
4
4
  openSelectModal: (onSelect: (imageId: string) => void) => void;
5
5
  uploadFile: (file: File) => void;
6
- uploadFileWithCallback: (file: File, onComplete: (imageId: string) => void) => string;
6
+ uploadFileWithCallback: (file: File, onComplete: (imageId: string) => void, opts?: {
7
+ hidden?: boolean;
8
+ }) => string;
7
9
  reportRejectedUploads: (files: {
8
10
  name: string;
9
11
  reason: "size" | "type";
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC;IACtF,qBAAqB,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACpF,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB,0DAAuD,CAAC;AAExF,wBAAgB,eAAe,IAAI,wBAAwB,GAAG,IAAI,CAEjE"}
1
+ {"version":3,"file":"MediaLibraryContext.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACnH,qBAAqB,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACpF,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,mBAAmB,0DAAuD,CAAC;AAExF,wBAAgB,eAAe,IAAI,wBAAwB,GAAG,IAAI,CAEjE"}
@@ -1 +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
+ {"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;AAcjD,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,2CA4LxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCollabSession.d.ts","sourceRoot":"","sources":["../../src/hooks/useCollabSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAAE,UAAU,EAAE,cAAc,EAAiB,YAAY,EACxE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EACxE,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,mBAAmB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CA6LnF"}
1
+ {"version":3,"file":"useCollabSession.d.ts","sourceRoot":"","sources":["../../src/hooks/useCollabSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAAE,UAAU,EAAE,cAAc,EAAiB,YAAY,EACxE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EACxE,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,mBAAmB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CAiNnF"}
@@ -39,6 +39,7 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
39
39
  url?: string | undefined;
40
40
  duration?: number | undefined;
41
41
  folderId?: string | undefined;
42
+ hidden?: boolean | undefined;
42
43
  }[];
43
44
  setPendingMediaItems: import("react").Dispatch<import("react").SetStateAction<{
44
45
  id: string;
@@ -60,6 +61,7 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
60
61
  url?: string | undefined;
61
62
  duration?: number | undefined;
62
63
  folderId?: string | undefined;
64
+ hidden?: boolean | undefined;
63
65
  }[]>>;
64
66
  pendingLocalUrls: Record<string, string>;
65
67
  setPendingLocalUrls: import("react").Dispatch<import("react").SetStateAction<Record<string, string>>>;
@@ -82,7 +84,9 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
82
84
  }[], currentFolderId: string | null) => Promise<void>;
83
85
  referenceCountMap: Record<string, number>;
84
86
  contextValue: MediaLibraryContextValue;
85
- enqueueFile: (file: File, onComplete?: (imageId: string) => void) => void;
87
+ enqueueFile: (file: File, onComplete?: (imageId: string) => void, opts?: {
88
+ hidden?: boolean;
89
+ }) => void;
86
90
  };
87
91
  export {};
88
92
  //# sourceMappingURL=useMediaPipeline.d.ts.map