@drawnagency/primitives 0.1.88 → 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.
- package/dist/{chunk-PTVY3Q7P.js → chunk-2QXJ2KGB.js} +1 -1
- package/dist/{chunk-DRCPDOW3.js → chunk-CZ3YXGK5.js} +59 -0
- package/dist/{chunk-NEDOJHHR.js → chunk-J75XGXYD.js} +2 -2
- package/dist/{chunk-SK6GGTTO.js → chunk-L2MAJKKC.js} +3 -3
- package/dist/{chunk-H2FENAQH.js → chunk-MVX4ULYE.js} +6 -6
- package/dist/{chunk-EO7K45GV.js → chunk-NV4R6VHN.js} +1 -1
- package/dist/{chunk-XDG2K6UT.js → chunk-QFV5TSPO.js} +1 -1
- package/dist/{chunk-OEL57NYV.js → chunk-VK5KNH73.js} +25 -1
- package/dist/{chunk-XPUBUR64.js → chunk-WCBYXNAG.js} +27 -2
- package/dist/{chunk-WA3HFN54.js → chunk-Y24T75HT.js} +1 -1
- package/dist/components/chat/ChatPanel.d.ts +20 -3
- package/dist/components/chat/ChatPanel.d.ts.map +1 -1
- package/dist/components/chat/ChatWidget.d.ts +7 -1
- package/dist/components/chat/ChatWidget.d.ts.map +1 -1
- package/dist/components/chat/chat-history.d.ts +24 -0
- package/dist/components/chat/chat-history.d.ts.map +1 -0
- package/dist/components/editor/index.js +4 -4
- package/dist/components/primitives/index.js +5 -5
- package/dist/components/sections/brand-guide.js +5 -5
- package/dist/components/sections/register-schemas.js +8 -8
- package/dist/components/sections/register.js +8 -8
- package/dist/components/shared/Navigation.d.ts +6 -1
- package/dist/components/shared/Navigation.d.ts.map +1 -1
- package/dist/components/shell/EditorShell.d.ts.map +1 -1
- package/dist/components/shell/MediaLibraryContext.d.ts +3 -1
- package/dist/components/shell/MediaLibraryContext.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsChatbot.d.ts.map +1 -1
- package/dist/hooks/useMediaPipeline.d.ts +5 -1
- package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/lib/chatbot.d.ts +10 -0
- package/dist/lib/chatbot.d.ts.map +1 -0
- package/dist/lib/contrast.d.ts +5 -0
- package/dist/lib/contrast.d.ts.map +1 -1
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +10 -2
- package/dist/media/compose-preview.d.ts +23 -0
- package/dist/media/compose-preview.d.ts.map +1 -0
- package/dist/media/index.d.ts +1 -0
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +4 -2
- package/dist/media/preview-inputs.d.ts +31 -0
- package/dist/media/preview-inputs.d.ts.map +1 -0
- package/dist/schemas/index.js +2 -2
- package/dist/schemas/media.d.ts +2 -0
- package/dist/schemas/media.d.ts.map +1 -1
- package/dist/schemas/site-config.d.ts +12 -0
- package/dist/schemas/site-config.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/ChatPanel.tsx +437 -65
- package/src/components/chat/ChatWidget.tsx +90 -32
- package/src/components/chat/chat-history.ts +105 -0
- package/src/components/shared/Navigation.tsx +18 -5
- package/src/components/shell/EditorShell.tsx +71 -1
- package/src/components/shell/MediaLibraryContext.tsx +1 -1
- package/src/components/shell/SiteSettingsChatbot.tsx +47 -0
- package/src/hooks/useMediaPipeline.ts +7 -3
- package/src/lib/chatbot.ts +30 -0
- package/src/lib/contrast.ts +12 -0
- package/src/lib/index.ts +2 -1
- package/src/media/compose-preview.ts +90 -0
- package/src/media/index.ts +1 -0
- package/src/media/preview-inputs.ts +77 -0
- package/src/schemas/media.ts +3 -0
- package/src/schemas/site-config.ts +26 -1
|
@@ -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
|
|
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
|
|
@@ -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;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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAqS8B,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,SAAS;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;EAqFjH"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
EXT_TO_MIME,
|
|
18
18
|
MIME_TO_EXT,
|
|
19
19
|
ProcessingQueue,
|
|
20
|
+
composePreviewImage,
|
|
20
21
|
displayFilename,
|
|
21
22
|
displayFilenameExt,
|
|
22
23
|
displayName,
|
|
@@ -31,7 +32,7 @@ import {
|
|
|
31
32
|
resolveMedia,
|
|
32
33
|
sanitizeMediaName,
|
|
33
34
|
setMediaProvider
|
|
34
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-CZ3YXGK5.js";
|
|
35
36
|
import {
|
|
36
37
|
CollabPeerSchema,
|
|
37
38
|
HEARTBEAT_INTERVAL_MS,
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
AudienceNameSchema,
|
|
51
52
|
MediaGridOptionsSchema,
|
|
52
53
|
slugifyAudienceName
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-Y24T75HT.js";
|
|
54
55
|
import {
|
|
55
56
|
AudienceSchema,
|
|
56
57
|
RoleSchema,
|
|
@@ -64,15 +65,19 @@ import {
|
|
|
64
65
|
isSafeHref
|
|
65
66
|
} from "./chunk-PZJL2S3Z.js";
|
|
66
67
|
import {
|
|
68
|
+
DEFAULT_CHATBOT_NAME,
|
|
67
69
|
buildGoogleFontsUrl,
|
|
70
|
+
contrastColor,
|
|
68
71
|
deriveContrast,
|
|
69
72
|
formatTimestamp,
|
|
70
73
|
gridColsClass,
|
|
71
74
|
loadSiteContent,
|
|
72
75
|
loadStaticSiteContent,
|
|
73
76
|
mergeSiteContent,
|
|
77
|
+
resolveChatbotName,
|
|
78
|
+
resolveThinkingPhrases,
|
|
74
79
|
safeRedirect
|
|
75
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-VK5KNH73.js";
|
|
76
81
|
import {
|
|
77
82
|
curatedIcons,
|
|
78
83
|
getIcon
|
|
@@ -125,7 +130,7 @@ import {
|
|
|
125
130
|
TextLineSchema,
|
|
126
131
|
VariantSchema,
|
|
127
132
|
normalizeSiteIndex
|
|
128
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-WCBYXNAG.js";
|
|
129
134
|
import {
|
|
130
135
|
clearRegistry,
|
|
131
136
|
createRegistry,
|
|
@@ -163,6 +168,7 @@ export {
|
|
|
163
168
|
ChatbotConfigSchema,
|
|
164
169
|
ChatbotTaskSchema,
|
|
165
170
|
CollabPeerSchema,
|
|
171
|
+
DEFAULT_CHATBOT_NAME,
|
|
166
172
|
DEFAULT_LINK,
|
|
167
173
|
EXT_TO_MIME,
|
|
168
174
|
FontNameSchema,
|
|
@@ -204,6 +210,8 @@ export {
|
|
|
204
210
|
buildGoogleFontsUrl,
|
|
205
211
|
clearRegistry,
|
|
206
212
|
cn,
|
|
213
|
+
composePreviewImage,
|
|
214
|
+
contrastColor,
|
|
207
215
|
createEvent,
|
|
208
216
|
createRegistry,
|
|
209
217
|
curatedIcons,
|
|
@@ -244,9 +252,11 @@ export {
|
|
|
244
252
|
registerSchema,
|
|
245
253
|
registerSection,
|
|
246
254
|
requireSessionSecret,
|
|
255
|
+
resolveChatbotName,
|
|
247
256
|
resolveLogo,
|
|
248
257
|
resolveManifestReferences,
|
|
249
258
|
resolveMedia,
|
|
259
|
+
resolveThinkingPhrases,
|
|
250
260
|
safeNextPath,
|
|
251
261
|
safeRedirect,
|
|
252
262
|
sanitizeHtml,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ChatbotConfig } from "../schemas/site-config";
|
|
2
|
+
export declare const DEFAULT_CHATBOT_NAME = "Portal Assistant";
|
|
3
|
+
/** Resolve the assistant's display name for an audience (null = base name).
|
|
4
|
+
* Record lookups can hit inherited Object.prototype members ("constructor"
|
|
5
|
+
* is a legal audience name) — anything non-string, and blank strings,
|
|
6
|
+
* behave as absent. */
|
|
7
|
+
export declare function resolveChatbotName(chatbot: Partial<Pick<ChatbotConfig, "name" | "audienceNames">>, audience: string | null): string;
|
|
8
|
+
/** The widget's waiting phrases with "…" appended; falls back to "Thinking…". */
|
|
9
|
+
export declare function resolveThinkingPhrases(phrases: readonly string[] | undefined): string[];
|
|
10
|
+
//# sourceMappingURL=chatbot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../src/lib/chatbot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;wBAGwB;AACxB,wBAAgB,kBAAkB,CAEhC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,EAC/D,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAKR;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAOvF"}
|
package/dist/lib/contrast.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export declare function deriveContrast(hex: string): string;
|
|
2
|
+
/**
|
|
3
|
+
* Perceived-luminance contrast pick (same YIQ formula the admin dashboard
|
|
4
|
+
* uses). Returns near-black for light backgrounds, white for dark ones.
|
|
5
|
+
*/
|
|
6
|
+
export declare function contrastColor(hex: string): "#1a1a1a" | "#ffffff";
|
|
2
7
|
//# sourceMappingURL=contrast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../src/lib/contrast.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD"}
|
|
1
|
+
{"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../src/lib/contrast.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMhE"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { env } from "./env";
|
|
2
2
|
export { cn } from "./cn";
|
|
3
3
|
export { audiencePasses } from "./pages";
|
|
4
|
+
export { resolveChatbotName, resolveThinkingPhrases, DEFAULT_CHATBOT_NAME } from "./chatbot";
|
|
4
5
|
export { generateNavLinks, toSectionId, type NavItem } from "./nav";
|
|
5
|
-
export { deriveContrast } from "./contrast";
|
|
6
|
+
export { deriveContrast, contrastColor } from "./contrast";
|
|
6
7
|
export { sanitizeHtml, ensureSanitizer } from "./sanitize";
|
|
7
8
|
export { gridColsClass } from "./grid";
|
|
8
9
|
export { getIcon, curatedIcons, type IconEntry } from "./icons";
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
+
DEFAULT_CHATBOT_NAME,
|
|
2
3
|
buildGoogleFontsUrl,
|
|
4
|
+
contrastColor,
|
|
3
5
|
deriveContrast,
|
|
4
6
|
formatTimestamp,
|
|
5
7
|
gridColsClass,
|
|
6
8
|
loadSiteContent,
|
|
7
9
|
loadStaticSiteContent,
|
|
8
10
|
mergeSiteContent,
|
|
11
|
+
resolveChatbotName,
|
|
12
|
+
resolveThinkingPhrases,
|
|
9
13
|
safeRedirect
|
|
10
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-VK5KNH73.js";
|
|
11
15
|
import {
|
|
12
16
|
curatedIcons,
|
|
13
17
|
getIcon
|
|
@@ -33,7 +37,7 @@ import {
|
|
|
33
37
|
} from "../chunk-YBVK254P.js";
|
|
34
38
|
import "../chunk-75P6HWPN.js";
|
|
35
39
|
import "../chunk-TZQPOR5A.js";
|
|
36
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-WCBYXNAG.js";
|
|
37
41
|
import {
|
|
38
42
|
clearRegistry,
|
|
39
43
|
createRegistry,
|
|
@@ -52,10 +56,12 @@ import {
|
|
|
52
56
|
} from "../chunk-WKZ7OENC.js";
|
|
53
57
|
import "../chunk-JSBRDJBE.js";
|
|
54
58
|
export {
|
|
59
|
+
DEFAULT_CHATBOT_NAME,
|
|
55
60
|
audiencePasses,
|
|
56
61
|
buildGoogleFontsUrl,
|
|
57
62
|
clearRegistry,
|
|
58
63
|
cn,
|
|
64
|
+
contrastColor,
|
|
59
65
|
createEvent,
|
|
60
66
|
createRegistry,
|
|
61
67
|
curatedIcons,
|
|
@@ -79,6 +85,8 @@ export {
|
|
|
79
85
|
navChangeEvent,
|
|
80
86
|
registerSchema,
|
|
81
87
|
registerSection,
|
|
88
|
+
resolveChatbotName,
|
|
89
|
+
resolveThinkingPhrases,
|
|
82
90
|
safeRedirect,
|
|
83
91
|
sanitizeHtml,
|
|
84
92
|
toSectionId
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface PreviewImageInputs {
|
|
2
|
+
/** "logo" draws the resolved logo centered on a solid black/white bg;
|
|
3
|
+
* "text" draws the site name in the heading font on the solid brand color. */
|
|
4
|
+
mode: "logo" | "text";
|
|
5
|
+
/** Solid background color: black/white for logo mode, brand color for text mode. */
|
|
6
|
+
background: string;
|
|
7
|
+
/** Loadable URL of the chosen logo variant (logo mode only). */
|
|
8
|
+
logoUrl: string | null;
|
|
9
|
+
/** Apply a CSS invert filter to the logo (dark bg + invertInDark, no dark variant). */
|
|
10
|
+
invertLogo: boolean;
|
|
11
|
+
siteName: string;
|
|
12
|
+
headingFont: string;
|
|
13
|
+
/** Computed contrasting text color (text mode). */
|
|
14
|
+
textColor: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Composes the 1200×630 social-preview raster in the browser (Canvas API only,
|
|
18
|
+
* no dependency). Returns a WebP blob. Must run client-side (uses document/Image
|
|
19
|
+
* and, for text mode, document.fonts). Falls back to the text treatment if the
|
|
20
|
+
* logo image fails to load.
|
|
21
|
+
*/
|
|
22
|
+
export declare function composePreviewImage(inputs: PreviewImageInputs): Promise<Blob>;
|
|
23
|
+
//# sourceMappingURL=compose-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-preview.d.ts","sourceRoot":"","sources":["../../src/media/compose-preview.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uFAAuF;IACvF,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDnF"}
|
package/dist/media/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from "./utils";
|
|
|
5
5
|
export * from "./queue";
|
|
6
6
|
export * from "./resolve";
|
|
7
7
|
export { generateVideoPoster } from "./videoPoster";
|
|
8
|
+
export { composePreviewImage, type PreviewImageInputs } from "./compose-preview";
|
|
8
9
|
export declare function setMediaProvider(p: MediaProvider): void;
|
|
9
10
|
export declare function getMediaProvider(): MediaProvider;
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKjF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAEvD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAMhD"}
|
package/dist/media/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
EXT_TO_MIME,
|
|
4
4
|
MIME_TO_EXT,
|
|
5
5
|
ProcessingQueue,
|
|
6
|
+
composePreviewImage,
|
|
6
7
|
displayFilename,
|
|
7
8
|
displayFilenameExt,
|
|
8
9
|
displayName,
|
|
@@ -17,7 +18,7 @@ import {
|
|
|
17
18
|
resolveMedia,
|
|
18
19
|
sanitizeMediaName,
|
|
19
20
|
setMediaProvider
|
|
20
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-CZ3YXGK5.js";
|
|
21
22
|
import "../chunk-YBVK254P.js";
|
|
22
23
|
import {
|
|
23
24
|
ImageManifestSchema,
|
|
@@ -25,7 +26,7 @@ import {
|
|
|
25
26
|
MediaFolderSchema,
|
|
26
27
|
MediaItemSchema,
|
|
27
28
|
VariantSchema
|
|
28
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-WCBYXNAG.js";
|
|
29
30
|
import "../chunk-FM4M4Q2W.js";
|
|
30
31
|
import "../chunk-JSBRDJBE.js";
|
|
31
32
|
export {
|
|
@@ -38,6 +39,7 @@ export {
|
|
|
38
39
|
MediaItemSchema,
|
|
39
40
|
ProcessingQueue,
|
|
40
41
|
VariantSchema,
|
|
42
|
+
composePreviewImage,
|
|
41
43
|
displayFilename,
|
|
42
44
|
displayFilenameExt,
|
|
43
45
|
displayName,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SiteConfig } from "../schemas/site-config";
|
|
2
|
+
import type { PreviewImageInputs } from "./compose-preview";
|
|
3
|
+
/**
|
|
4
|
+
* Derives the canvas composition inputs from a SiteConfig, plus a signature
|
|
5
|
+
* string over only the composition-relevant fields (so the editor recomposes
|
|
6
|
+
* when brand inputs change but not for unrelated edits like `description`).
|
|
7
|
+
*
|
|
8
|
+
* `resolveLogoUrl` maps a logo imageId to a loadable URL (or null if it can't
|
|
9
|
+
* be resolved yet); the caller supplies it so this stays pure/testable.
|
|
10
|
+
*
|
|
11
|
+
* With-logo background/variant rules (static raster; darkMode "optional" bakes
|
|
12
|
+
* the light default since a baked image can't follow the viewer's theme):
|
|
13
|
+
* light | optional -> white bg + light variant
|
|
14
|
+
* dark -> black bg + (dark variant ?? invert(light) if invertInDark ?? light)
|
|
15
|
+
*/
|
|
16
|
+
export declare function derivePreviewInputs(siteConfig: SiteConfig, resolveLogoUrl: (imageId: string) => string | null): {
|
|
17
|
+
inputs: PreviewImageInputs;
|
|
18
|
+
signature: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* The actual largest variant width/height the /api/media route will serve for
|
|
22
|
+
* the 1200×630 preview, mirroring media/worker.ts: variants are generated for
|
|
23
|
+
* each configured size ≤ source width; if none qualify, the source width is
|
|
24
|
+
* used. The route 404s any non-variant width, so URLs must use this width.
|
|
25
|
+
* NOTE: keep in sync with worker.ts's applicableSizes logic.
|
|
26
|
+
*/
|
|
27
|
+
export declare function servedPreviewSize(sizes: number[]): {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=preview-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-inputs.d.ts","sourceRoot":"","sources":["../../src/media/preview-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACjD;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAuCnD;AAKD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKpF"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
AudienceNameSchema,
|
|
4
4
|
MediaGridOptionsSchema,
|
|
5
5
|
slugifyAudienceName
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-Y24T75HT.js";
|
|
7
7
|
import {
|
|
8
8
|
AudienceSchema,
|
|
9
9
|
RoleSchema,
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
TextLineSchema,
|
|
41
41
|
VariantSchema,
|
|
42
42
|
normalizeSiteIndex
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-WCBYXNAG.js";
|
|
44
44
|
import "../chunk-VKAGMEKE.js";
|
|
45
45
|
import "../chunk-FM4M4Q2W.js";
|
|
46
46
|
import "../chunk-NSCT3AMV.js";
|
package/dist/schemas/media.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export declare const MediaItemSchema: z.ZodObject<{
|
|
|
37
37
|
url: z.ZodOptional<z.ZodString>;
|
|
38
38
|
duration: z.ZodOptional<z.ZodNumber>;
|
|
39
39
|
folderId: z.ZodOptional<z.ZodString>;
|
|
40
|
+
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
40
41
|
}, z.core.$strip>;
|
|
41
42
|
export type MediaItem = z.infer<typeof MediaItemSchema>;
|
|
42
43
|
export declare const ImageManifestSchema: z.ZodObject<{
|
|
@@ -67,6 +68,7 @@ export declare const ImageManifestSchema: z.ZodObject<{
|
|
|
67
68
|
url: z.ZodOptional<z.ZodString>;
|
|
68
69
|
duration: z.ZodOptional<z.ZodNumber>;
|
|
69
70
|
folderId: z.ZodOptional<z.ZodString>;
|
|
71
|
+
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
70
72
|
}, z.core.$strip>>;
|
|
71
73
|
folders: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
72
74
|
name: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/schemas/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAIpD,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/schemas/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAIpD,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2B1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;iBAO5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -423,6 +423,9 @@ export declare const ChatbotTaskSchema: z.ZodObject<{
|
|
|
423
423
|
export type ChatbotTask = z.infer<typeof ChatbotTaskSchema>;
|
|
424
424
|
export declare const ChatbotConfigSchema: z.ZodObject<{
|
|
425
425
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
426
|
+
name: z.ZodDefault<z.ZodString>;
|
|
427
|
+
audienceNames: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
428
|
+
thinkingPhrases: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
426
429
|
systemPrompt: z.ZodDefault<z.ZodString>;
|
|
427
430
|
audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
428
431
|
audiencePrompts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -472,8 +475,17 @@ export declare const SiteConfigSchema: z.ZodObject<{
|
|
|
472
475
|
quality: z.ZodDefault<z.ZodNumber>;
|
|
473
476
|
maxAssetSize: z.ZodDefault<z.ZodNumber>;
|
|
474
477
|
}, z.core.$strip>>;
|
|
478
|
+
previewImage: z.ZodDefault<z.ZodNullable<z.ZodObject<{
|
|
479
|
+
imageId: z.ZodString;
|
|
480
|
+
width: z.ZodNumber;
|
|
481
|
+
height: z.ZodNumber;
|
|
482
|
+
}, z.core.$strip>>>;
|
|
483
|
+
description: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
475
484
|
chatbot: z.ZodDefault<z.ZodObject<{
|
|
476
485
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
486
|
+
name: z.ZodDefault<z.ZodString>;
|
|
487
|
+
audienceNames: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
488
|
+
thinkingPhrases: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
477
489
|
systemPrompt: z.ZodDefault<z.ZodString>;
|
|
478
490
|
audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
479
491
|
audiencePrompts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAQ5D,eAAO,MAAM,cAAc,8EAA+E,CAAC;AAW3G,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AA0C9C,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6CtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAMD,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAQ5D,eAAO,MAAM,cAAc,8EAA+E,CAAC;AAW3G,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AA0C9C,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6CtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAMD,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAiC5B,CAAC;AACL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyD3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|