@samirify/messenger 0.1.4 → 0.1.6

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/web/ThreadList.tsx","../../src/web/icons.tsx","../../src/web/WebComposer.tsx","../../src/web/Conversation.tsx","../../src/web/ChatPanel.tsx","../../src/web/ChatDock.tsx"],"names":["useMessengerConfig","MessengerI18n","jsxs","jsx","useThreads","useOpenThread","useState","useRef","initials","useThread","useSendMessage","useEffect","Fragment","AnimatePresence","motion","useMessengerUi","useUnreadTotal"],"mappings":"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","file":"index.cjs","sourcesContent":["import React from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useThreads } from \"../hooks/useThreads\";\nimport { useOpenThread } from \"../hooks/useOpenThread\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport type { MessageThread } from \"../types\";\n\nfunction initials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return \"?\";\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction ThreadRow({\n thread,\n onSelect,\n}: {\n thread: MessageThread;\n onSelect: (id: number) => void;\n}) {\n const { user, t, isRtl, theme } = useMessengerConfig();\n const unread = Number(thread.unread_count ?? 0);\n const title =\n user?.role === \"admin\"\n ? thread.client_name ??\n t(MessengerI18n.client.key, MessengerI18n.client.fallback)\n : t(MessengerI18n.yourCoach.key, MessengerI18n.yourCoach.fallback);\n const preview =\n thread.last_body ||\n (thread.last_image_url\n ? t(MessengerI18n.photo.key, MessengerI18n.photo.fallback)\n : t(MessengerI18n.noMessages.key, MessengerI18n.noMessages.fallback));\n\n return (\n <button\n type=\"button\"\n onClick={() => onSelect(thread.id)}\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 12,\n width: \"calc(100% - 16px)\",\n textAlign: isRtl ? \"right\" : \"left\",\n padding: \"12px 14px\",\n margin: \"0 8px\",\n border: \"none\",\n borderRadius: 16,\n background: unread > 0\n ? `color-mix(in srgb, ${theme.accentColor} 8%, transparent)`\n : \"transparent\",\n cursor: \"pointer\",\n color: theme.colors.text,\n transition: \"background 160ms ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = `color-mix(in srgb, ${theme.accentColor} 12%, ${theme.colors.surfaceSecondary})`;\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background =\n unread > 0\n ? `color-mix(in srgb, ${theme.accentColor} 8%, transparent)`\n : \"transparent\";\n }}\n >\n <div\n aria-hidden\n style={{\n width: 44,\n height: 44,\n borderRadius: 14,\n flexShrink: 0,\n display: \"grid\",\n placeItems: \"center\",\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 700,\n fontSize: 13,\n letterSpacing: \"0.02em\",\n color: theme.accentColor,\n background: `\n linear-gradient(145deg,\n color-mix(in srgb, ${theme.accentColor} 22%, ${theme.colors.surface}),\n color-mix(in srgb, ${theme.accentColor} 8%, ${theme.colors.surfaceSecondary})\n )\n `,\n border: `1px solid color-mix(in srgb, ${theme.accentColor} 22%, transparent)`,\n }}\n >\n {initials(title)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"baseline\",\n gap: 8,\n }}\n >\n <div\n style={{\n flex: 1,\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: unread > 0 ? 700 : 600,\n fontSize: 14.5,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {title}\n </div>\n {unread > 0 ? (\n <span\n style={{\n minWidth: 20,\n height: 20,\n borderRadius: 10,\n padding: \"0 6px\",\n background: theme.accentColor,\n color: \"var(--color-text-inverse, #fff)\",\n fontSize: 11,\n fontFamily: theme.fonts.bodySemiBold,\n fontWeight: 700,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n {unread}\n </span>\n ) : null}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 12.5,\n color: unread > 0 ? theme.colors.textSecondary : theme.colors.textMuted,\n marginTop: 3,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontWeight: unread > 0 ? 500 : 400,\n }}\n >\n {preview}\n </div>\n </div>\n </button>\n );\n}\n\nexport function ThreadList({\n onSelectThread,\n}: {\n onSelectThread: (id: number) => void;\n}) {\n const { user, t, theme } = useMessengerConfig();\n const threadsQuery = useThreads();\n const openThread = useOpenThread();\n const threads = threadsQuery.data ?? [];\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n paddingTop: 6,\n paddingBottom: 10,\n }}\n >\n {user?.role === \"client\" && threads.length === 0 && (\n <div style={{ padding: \"8px 16px 4px\" }}>\n <button\n type=\"button\"\n onClick={() => openThread.mutate(undefined)}\n disabled={openThread.isPending}\n style={{\n width: \"100%\",\n padding: \"13px 16px\",\n borderRadius: 14,\n border: \"none\",\n background: `\n linear-gradient(135deg,\n color-mix(in srgb, ${theme.accentColor} 92%, #fff),\n ${theme.accentColor}\n )\n `,\n color: \"var(--color-text-inverse, #fff)\",\n fontFamily: theme.fonts.bodySemiBold,\n fontWeight: 600,\n fontSize: 14,\n cursor: openThread.isPending ? \"default\" : \"pointer\",\n boxShadow: `0 10px 24px color-mix(in srgb, ${theme.accentColor} 32%, transparent)`,\n }}\n >\n {openThread.isPending\n ? \"…\"\n : t(\n MessengerI18n.messageCoach.key,\n MessengerI18n.messageCoach.fallback\n )}\n </button>\n </div>\n )}\n\n {threadsQuery.isLoading && threads.length === 0 ? (\n <div\n style={{\n padding: 48,\n textAlign: \"center\",\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.body,\n }}\n >\n …\n </div>\n ) : threads.length === 0 ? (\n <div\n style={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 32,\n textAlign: \"center\",\n gap: 10,\n }}\n >\n <div\n aria-hidden\n style={{\n width: 56,\n height: 56,\n borderRadius: 18,\n display: \"grid\",\n placeItems: \"center\",\n background: `color-mix(in srgb, ${theme.accentColor} 12%, ${theme.colors.surfaceSecondary})`,\n color: theme.accentColor,\n fontSize: 22,\n marginBottom: 4,\n }}\n >\n ✦\n </div>\n <div\n style={{\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 600,\n fontSize: 15,\n color: theme.colors.text,\n }}\n >\n {t(MessengerI18n.empty.key, MessengerI18n.empty.fallback)}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 13,\n color: theme.colors.textMuted,\n maxWidth: 220,\n lineHeight: 1.45,\n }}\n >\n {t(\n MessengerI18n.startConversation.key,\n MessengerI18n.startConversation.fallback\n )}\n </div>\n </div>\n ) : (\n <div\n style={{\n overflowY: \"auto\",\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n paddingBottom: 8,\n }}\n >\n {threads.map((th) => (\n <ThreadRow key={th.id} thread={th} onSelect={onSelectThread} />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import React from \"react\";\n\n/** Speech-bubble mark — optically centered for a 56×56 FAB. */\nexport function ChatBubbleIcon({ size = 26 }: { size?: number }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden\n style={{ display: \"block\" }}\n >\n <path\n d=\"M5 7.2A3.2 3.2 0 0 1 8.2 4h7.6A3.2 3.2 0 0 1 19 7.2v5.6A3.2 3.2 0 0 1 15.8 16H12.1l-3.55 2.75a.75.75 0 0 1-1.2-.6V16H8.2A3.2 3.2 0 0 1 5 12.8V7.2Z\"\n fill=\"currentColor\"\n />\n <circle cx=\"9.1\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n <circle cx=\"12\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n <circle cx=\"14.9\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n </svg>\n );\n}\n\nexport function CloseIcon({ size = 18 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M6.4 6.4a1 1 0 0 1 1.4 0L12 10.6l4.2-4.2a1 1 0 1 1 1.4 1.4L13.4 12l4.2 4.2a1 1 0 0 1-1.4 1.4L12 13.4l-4.2 4.2a1 1 0 0 1-1.4-1.4L10.6 12 6.4 7.8a1 1 0 0 1 0-1.4Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function BackIcon({ size = 18, flip }: { size?: number; flip?: boolean }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden\n style={{ display: \"block\", transform: flip ? \"scaleX(-1)\" : undefined }}\n >\n <path\n d=\"M14.7 5.3a1 1 0 0 1 0 1.4L9.4 12l5.3 5.3a1 1 0 0 1-1.4 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.4 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function ImageIcon({ size = 18 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M6.5 4h11A2.5 2.5 0 0 1 20 6.5v11A2.5 2.5 0 0 1 17.5 20h-11A2.5 2.5 0 0 1 4 17.5v-11A2.5 2.5 0 0 1 6.5 4Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.7\"\n />\n <circle cx=\"9.2\" cy=\"9\" r=\"1.4\" fill=\"currentColor\" />\n <path\n d=\"M5.5 16.2 9.8 12l2.4 2.3 2.6-3.2 4.2 5.1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.7\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function SendIcon({ size = 16 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M5.2 11.2 19.1 4.4a.8.8 0 0 1 1.1.9l-3.4 14.2a.8.8 0 0 1-1.3.45l-4.2-3.5-2.5 2.4a.7.7 0 0 1-1.2-.45v-4.05l-3.1-1.6a.8.8 0 0 1 .5-1.55Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import React, { useRef, useState } from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport type { PickedImage } from \"../types\";\nimport { ImageIcon, SendIcon } from \"./icons\";\n\nexport function WebComposer({\n sending,\n onSend,\n}: {\n sending: boolean;\n onSend: (body: string, image?: PickedImage | null) => void | Promise<void>;\n}) {\n const { t, isRtl, theme, pickImage } = useMessengerConfig();\n const [body, setBody] = useState(\"\");\n const [focused, setFocused] = useState(false);\n const fileRef = useRef<HTMLInputElement>(null);\n const canSend = Boolean(body.trim()) && !sending;\n\n async function handleSend() {\n if (!body.trim() || sending) return;\n const text = body;\n setBody(\"\");\n await onSend(text, null);\n }\n\n async function handlePick() {\n const fromHost = await pickImage();\n if (fromHost) {\n await onSend(body, fromHost);\n setBody(\"\");\n return;\n }\n fileRef.current?.click();\n }\n\n async function onFileChange(e: React.ChangeEvent<HTMLInputElement>) {\n const file = e.target.files?.[0];\n e.target.value = \"\";\n if (!file) return;\n const uri = URL.createObjectURL(file);\n await onSend(body, {\n uri,\n name: file.name,\n type: file.type,\n file,\n });\n setBody(\"\");\n }\n\n return (\n <div\n style={{\n padding: \"10px 12px 14px\",\n borderTop: `1px solid color-mix(in srgb, ${theme.colors.border} 75%, transparent)`,\n background: `linear-gradient(0deg, ${theme.colors.surface}, color-mix(in srgb, ${theme.colors.surface} 88%, transparent))`,\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"flex-end\",\n gap: 8,\n padding: \"6px 6px 6px 8px\",\n borderRadius: 18,\n border: `1px solid ${\n focused\n ? `color-mix(in srgb, ${theme.accentColor} 45%, ${theme.colors.border})`\n : `color-mix(in srgb, ${theme.colors.border} 85%, transparent)`\n }`,\n background: theme.colors.background,\n boxShadow: focused\n ? `0 0 0 3px color-mix(in srgb, ${theme.accentColor} 16%, transparent)`\n : \"none\",\n transition: \"border-color 160ms ease, box-shadow 160ms ease\",\n }}\n >\n <input\n ref={fileRef}\n type=\"file\"\n accept=\"image/*\"\n hidden\n onChange={onFileChange}\n />\n <button\n type=\"button\"\n onClick={() => void handlePick()}\n disabled={sending}\n aria-label=\"Attach image\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n border: \"none\",\n background: \"transparent\",\n color: theme.colors.textMuted,\n cursor: sending ? \"default\" : \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <ImageIcon size={18} />\n </button>\n <textarea\n value={body}\n onChange={(e) => setBody(e.target.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n void handleSend();\n }\n }}\n placeholder={t(\n MessengerI18n.typeMessage.key,\n MessengerI18n.typeMessage.fallback\n )}\n rows={1}\n style={{\n flex: 1,\n resize: \"none\",\n maxHeight: 96,\n minHeight: 36,\n border: \"none\",\n padding: \"8px 4px\",\n fontFamily: theme.fonts.body,\n fontSize: 14,\n color: theme.colors.text,\n background: \"transparent\",\n textAlign: isRtl ? \"right\" : \"left\",\n outline: \"none\",\n lineHeight: 1.4,\n }}\n />\n <button\n type=\"button\"\n onClick={() => void handleSend()}\n disabled={!canSend}\n aria-label=\"Send\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n border: \"none\",\n background: canSend\n ? `linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 90%, #fff), ${theme.accentColor})`\n : `color-mix(in srgb, ${theme.colors.surfaceSecondary} 90%, transparent)`,\n color: canSend\n ? \"var(--color-text-inverse, #fff)\"\n : theme.colors.textMuted,\n cursor: canSend ? \"pointer\" : \"default\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n boxShadow: canSend\n ? `0 6px 16px color-mix(in srgb, ${theme.accentColor} 35%, transparent)`\n : \"none\",\n transition: \"background 160ms ease, box-shadow 160ms ease\",\n }}\n >\n {sending ? (\n <span style={{ fontSize: 14, lineHeight: 1 }}>…</span>\n ) : (\n <SendIcon size={15} />\n )}\n </button>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useThread } from \"../hooks/useThread\";\nimport { useSendMessage } from \"../hooks/useSendMessage\";\nimport { useThreads } from \"../hooks/useThreads\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { WebComposer } from \"./WebComposer\";\nimport { BackIcon, CloseIcon } from \"./icons\";\nimport type { ChatMessage, PickedImage } from \"../types\";\n\nfunction initials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return \"?\";\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction Bubble({ message }: { message: ChatMessage }) {\n const { user, isRtl, theme } = useMessengerConfig();\n const mine = message.sender_user_id === user?.id;\n const alignEnd = mine !== isRtl;\n\n return (\n <div\n style={{\n alignSelf: alignEnd ? \"flex-end\" : \"flex-start\",\n maxWidth: \"78%\",\n marginBottom: 8,\n padding: \"10px 13px\",\n borderRadius: mine\n ? alignEnd\n ? \"18px 18px 6px 18px\"\n : \"18px 18px 18px 6px\"\n : alignEnd\n ? \"18px 18px 6px 18px\"\n : \"18px 18px 18px 6px\",\n background: mine\n ? `linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 88%, #fff), ${theme.accentColor})`\n : `color-mix(in srgb, ${theme.colors.surfaceSecondary} 92%, ${theme.colors.surface})`,\n color: mine ? \"var(--color-text-inverse, #fff)\" : theme.colors.text,\n fontFamily: theme.fonts.body,\n fontSize: 14,\n lineHeight: 1.45,\n boxShadow: mine\n ? `0 8px 20px color-mix(in srgb, ${theme.accentColor} 28%, transparent)`\n : `0 1px 0 color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n border: mine\n ? \"none\"\n : `1px solid color-mix(in srgb, ${theme.colors.border} 70%, transparent)`,\n }}\n >\n {message.image_url ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={message.image_url}\n alt=\"\"\n style={{\n width: \"100%\",\n maxWidth: 220,\n borderRadius: 12,\n display: \"block\",\n marginBottom: message.body ? 8 : 0,\n }}\n />\n ) : null}\n {message.body ? <div style={{ whiteSpace: \"pre-wrap\" }}>{message.body}</div> : null}\n </div>\n );\n}\n\nexport function Conversation({\n threadId,\n onBack,\n onClose,\n}: {\n threadId: number;\n onBack?: () => void;\n onClose?: () => void;\n}) {\n const { user, t, isRtl, theme } = useMessengerConfig();\n const listRef = useRef<HTMLDivElement>(null);\n const threadQuery = useThread(threadId);\n const threadsQuery = useThreads();\n const sendMutation = useSendMessage(threadId);\n const messages = threadQuery.data?.messages ?? [];\n const threadMeta = threadsQuery.data?.find((th) => th.id === threadId);\n const title =\n user?.role === \"admin\"\n ? threadMeta?.client_name ??\n t(MessengerI18n.client.key, MessengerI18n.client.fallback)\n : t(MessengerI18n.yourCoach.key, MessengerI18n.yourCoach.fallback);\n\n useEffect(() => {\n const el = listRef.current;\n if (el) el.scrollTop = el.scrollHeight;\n }, [messages.length, threadId]);\n\n async function handleSend(body: string, image?: PickedImage | null) {\n if ((!body.trim() && !image) || sendMutation.isPending) return;\n await sendMutation.mutateAsync({ body, image });\n }\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\n <header\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 10,\n padding: \"12px 14px\",\n borderBottom: `1px solid color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n background: `linear-gradient(180deg, color-mix(in srgb, ${theme.colors.surface} 94%, transparent), color-mix(in srgb, ${theme.colors.surface} 72%, transparent))`,\n backdropFilter: \"blur(12px)\",\n }}\n >\n {onBack ? (\n <button\n type=\"button\"\n onClick={onBack}\n aria-label={t(MessengerI18n.back.key, MessengerI18n.back.fallback)}\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 75%, transparent)`,\n color: theme.colors.text,\n cursor: \"pointer\",\n width: 36,\n height: 36,\n borderRadius: 12,\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <BackIcon flip={isRtl} />\n </button>\n ) : null}\n\n <div\n aria-hidden\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n flexShrink: 0,\n display: \"grid\",\n placeItems: \"center\",\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 700,\n fontSize: 12,\n color: theme.accentColor,\n background: `color-mix(in srgb, ${theme.accentColor} 14%, ${theme.colors.surfaceSecondary})`,\n border: `1px solid color-mix(in srgb, ${theme.accentColor} 20%, transparent)`,\n }}\n >\n {initials(title)}\n </div>\n\n <div style={{ flex: 1, minWidth: 0, textAlign: isRtl ? \"right\" : \"left\" }}>\n <div\n style={{\n fontFamily: theme.fonts.displayBold,\n fontWeight: 700,\n fontSize: 15,\n color: theme.colors.text,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {title}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 11.5,\n color: theme.colors.textMuted,\n marginTop: 1,\n }}\n >\n {t(MessengerI18n.chat.key, MessengerI18n.chat.fallback)}\n </div>\n </div>\n\n {onClose ? (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 75%, transparent)`,\n color: theme.colors.textSecondary,\n width: 36,\n height: 36,\n borderRadius: 12,\n cursor: \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <CloseIcon size={16} />\n </button>\n ) : null}\n </header>\n\n <div\n ref={listRef}\n style={{\n flex: 1,\n overflowY: \"auto\",\n padding: \"16px 14px 12px\",\n display: \"flex\",\n flexDirection: \"column\",\n background: `\n radial-gradient(80% 50% at 50% 0%, color-mix(in srgb, ${theme.accentColor} 6%, transparent), transparent 70%),\n ${theme.colors.background}\n `,\n }}\n >\n {threadQuery.isLoading && messages.length === 0 ? (\n <div style={{ color: theme.colors.textMuted, textAlign: \"center\", marginTop: 40 }}>\n …\n </div>\n ) : messages.length === 0 ? (\n <div\n style={{\n color: theme.colors.textMuted,\n textAlign: \"center\",\n marginTop: 48,\n fontFamily: theme.fonts.body,\n fontSize: 13.5,\n lineHeight: 1.5,\n padding: \"0 24px\",\n }}\n >\n {t(\n MessengerI18n.startConversation.key,\n MessengerI18n.startConversation.fallback\n )}\n </div>\n ) : (\n messages.map((m) => <Bubble key={m.id} message={m} />)\n )}\n </div>\n\n <WebComposer sending={sendMutation.isPending} onSend={handleSend} />\n </div>\n );\n}\n","import React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useMessengerConfig } from \"../provider\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { ThreadList } from \"./ThreadList\";\nimport { Conversation } from \"./Conversation\";\nimport { CloseIcon } from \"./icons\";\n\nexport function ChatPanel({\n threadId,\n onSelectThread,\n onBackToList,\n onClose,\n variant = \"dock\",\n}: {\n threadId: number | null;\n onSelectThread: (id: number) => void;\n onBackToList: () => void;\n onClose?: () => void;\n variant?: \"dock\" | \"page\";\n}) {\n const { enabled, t, isRtl, theme, onFeatureOff } = useMessengerConfig();\n\n if (!enabled) {\n if (onFeatureOff) return <>{onFeatureOff()}</>;\n return (\n <div\n style={{\n padding: 32,\n textAlign: \"center\",\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.body,\n }}\n >\n {t(MessengerI18n.off.key, MessengerI18n.off.fallback)}\n </div>\n );\n }\n\n const shell: React.CSSProperties =\n variant === \"page\"\n ? {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"min(70vh, 640px)\",\n maxWidth: 720,\n margin: \"0 auto\",\n borderRadius: 24,\n overflow: \"hidden\",\n border: `1px solid ${theme.colors.border}`,\n background: theme.colors.surface,\n boxShadow: `0 24px 64px color-mix(in srgb, ${theme.colors.text} 14%, transparent)`,\n }\n : {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n background: `\n radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, ${theme.accentColor} 14%, transparent), transparent 55%),\n radial-gradient(90% 60% at 0% 100%, color-mix(in srgb, ${theme.accentColor} 8%, transparent), transparent 50%),\n ${theme.colors.surface}\n `,\n };\n\n const inThread = threadId != null;\n\n return (\n <div style={shell}>\n {!inThread ? (\n <header\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 12,\n padding: \"16px 16px 14px\",\n borderBottom: `1px solid color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n background: `linear-gradient(180deg, color-mix(in srgb, ${theme.colors.surface} 92%, transparent), color-mix(in srgb, ${theme.colors.surface} 70%, transparent))`,\n backdropFilter: \"blur(12px)\",\n }}\n >\n <div style={{ flex: 1, minWidth: 0, textAlign: isRtl ? \"right\" : \"left\" }}>\n <div\n style={{\n fontFamily: theme.fonts.displayBold,\n fontWeight: 700,\n fontSize: 20,\n letterSpacing: \"-0.02em\",\n color: theme.colors.text,\n lineHeight: 1.15,\n }}\n >\n {t(MessengerI18n.messages.key, MessengerI18n.messages.fallback)}\n </div>\n <div\n style={{\n marginTop: 3,\n fontFamily: theme.fonts.body,\n fontSize: 12.5,\n color: theme.colors.textMuted,\n }}\n >\n {t(MessengerI18n.messagesHint.key, MessengerI18n.messagesHint.fallback)}\n </div>\n </div>\n {onClose ? (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 80%, transparent)`,\n color: theme.colors.textSecondary,\n width: 36,\n height: 36,\n borderRadius: 12,\n cursor: \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <CloseIcon size={16} />\n </button>\n ) : null}\n </header>\n ) : null}\n\n <div style={{ flex: 1, minHeight: 0, position: \"relative\" }}>\n <AnimatePresence mode=\"wait\" initial={false}>\n {inThread ? (\n <motion.div\n key={`thread-${threadId}`}\n initial={{ opacity: 0, x: isRtl ? -16 : 16 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: isRtl ? 12 : -12 }}\n transition={{ duration: 0.22, ease: [0.22, 1, 0.36, 1] }}\n style={{ height: \"100%\" }}\n >\n <Conversation\n threadId={threadId}\n onBack={onBackToList}\n onClose={onClose}\n />\n </motion.div>\n ) : (\n <motion.div\n key=\"list\"\n initial={{ opacity: 0, x: isRtl ? 16 : -16 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: isRtl ? -12 : 12 }}\n transition={{ duration: 0.22, ease: [0.22, 1, 0.36, 1] }}\n style={{ height: \"100%\" }}\n >\n <ThreadList onSelectThread={onSelectThread} />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useMessengerUi } from \"../uiController\";\nimport { useUnreadTotal } from \"../hooks/useUnreadTotal\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { ChatPanel } from \"./ChatPanel\";\nimport { ChatBubbleIcon, CloseIcon } from \"./icons\";\n\n/**\n * Floating Intercom-style chat dock. Requires MessengerProvider + MessengerUiProvider.\n */\nexport function ChatDock() {\n const { enabled, isRtl, theme, t } = useMessengerConfig();\n const ui = useMessengerUi();\n const unread = useUnreadTotal({ enabled });\n\n if (!enabled) return null;\n\n const side = isRtl ? \"left\" : \"right\";\n const open = ui.open;\n const label = open\n ? \"Close chat\"\n : t(MessengerI18n.messages.key, MessengerI18n.messages.fallback);\n\n return (\n <div\n style={{\n position: \"fixed\",\n bottom: \"max(20px, env(safe-area-inset-bottom))\",\n [side]: \"max(20px, env(safe-area-inset-right, env(safe-area-inset-left)))\",\n zIndex: 10000,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: isRtl ? \"flex-start\" : \"flex-end\",\n gap: 14,\n pointerEvents: \"none\",\n // Lets SVG dots / text on accent pick up inverse ink\n [\"--gymlium-on-accent\" as string]: \"var(--color-text-inverse, #fff)\",\n }}\n >\n <AnimatePresence>\n {open ? (\n <motion.div\n key=\"panel\"\n initial={{ opacity: 0, y: 28, scale: 0.94, filter: \"blur(6px)\" }}\n animate={{ opacity: 1, y: 0, scale: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, y: 18, scale: 0.96, filter: \"blur(4px)\" }}\n transition={{ duration: 0.32, ease: [0.22, 1, 0.36, 1] }}\n style={{\n width: \"min(380px, calc(100vw - 28px))\",\n height: \"min(440px, calc(100vh - 160px))\",\n maxHeight: 440,\n borderRadius: 24,\n overflow: \"hidden\",\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 85%, transparent)`,\n background: theme.colors.surface,\n boxShadow: `\n 0 0 0 1px color-mix(in srgb, ${theme.accentColor} 12%, transparent),\n 0 28px 80px color-mix(in srgb, ${theme.colors.text} 22%, transparent),\n 0 8px 24px color-mix(in srgb, ${theme.accentColor} 18%, transparent)\n `,\n pointerEvents: \"auto\",\n backdropFilter: \"blur(20px)\",\n }}\n >\n <ChatPanel\n threadId={ui.threadId}\n onSelectThread={ui.openThread}\n onBackToList={ui.openInbox}\n onClose={ui.close}\n variant=\"dock\"\n />\n </motion.div>\n ) : null}\n </AnimatePresence>\n\n <motion.button\n type=\"button\"\n onClick={() => (open ? ui.close() : ui.openInbox())}\n aria-label={label}\n aria-expanded={open}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.94 }}\n transition={{ type: \"spring\", stiffness: 420, damping: 24 }}\n style={{\n pointerEvents: \"auto\",\n width: 58,\n height: 58,\n borderRadius: 20,\n border: \"none\",\n padding: 0,\n background: `\n radial-gradient(120% 120% at 30% 20%, color-mix(in srgb, #fff 28%, transparent), transparent 55%),\n linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 88%, #fff) 0%, ${theme.accentColor} 55%, color-mix(in srgb, ${theme.accentColor} 78%, #000) 100%)\n `,\n color: \"var(--color-text-inverse, #fff)\",\n cursor: \"pointer\",\n boxShadow: `\n 0 14px 36px color-mix(in srgb, ${theme.accentColor} 42%, transparent),\n 0 2px 0 color-mix(in srgb, #fff 22%, transparent) inset\n `,\n position: \"relative\",\n display: \"grid\",\n placeItems: \"center\",\n overflow: \"visible\",\n }}\n >\n {/* Soft aura when unread */}\n {!open && unread.total > 0 ? (\n <motion.span\n aria-hidden\n initial={{ opacity: 0.55, scale: 1 }}\n animate={{ opacity: [0.45, 0.15, 0.45], scale: [1, 1.28, 1] }}\n transition={{ duration: 2.4, repeat: Infinity, ease: \"easeInOut\" }}\n style={{\n position: \"absolute\",\n inset: -6,\n borderRadius: 24,\n background: `color-mix(in srgb, ${theme.accentColor} 35%, transparent)`,\n zIndex: -1,\n }}\n />\n ) : null}\n\n <AnimatePresence mode=\"wait\" initial={false}>\n <motion.span\n key={open ? \"close\" : \"chat\"}\n initial={{ opacity: 0, rotate: open ? -40 : 40, scale: 0.7 }}\n animate={{ opacity: 1, rotate: 0, scale: 1 }}\n exit={{ opacity: 0, rotate: open ? 40 : -40, scale: 0.7 }}\n transition={{ duration: 0.18 }}\n style={{ display: \"grid\", placeItems: \"center\", lineHeight: 0 }}\n >\n {open ? <CloseIcon size={20} /> : <ChatBubbleIcon size={26} />}\n </motion.span>\n </AnimatePresence>\n\n {!open && unread.total > 0 ? (\n <motion.span\n initial={{ scale: 0 }}\n animate={{ scale: 1 }}\n style={{\n position: \"absolute\",\n top: -3,\n [isRtl ? \"left\" : \"right\"]: -3,\n minWidth: 22,\n height: 22,\n borderRadius: 11,\n padding: \"0 6px\",\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: 11,\n fontWeight: 700,\n fontFamily: theme.fonts.bodySemiBold,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: `2px solid ${theme.accentColor}`,\n boxShadow: `0 4px 12px color-mix(in srgb, ${theme.colors.text} 25%, transparent)`,\n }}\n >\n {unread.total > 99 ? \"99+\" : unread.total}\n </motion.span>\n ) : null}\n </motion.button>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/web/ThreadList.tsx","../../src/web/icons.tsx","../../src/web/WebComposer.tsx","../../src/web/Conversation.tsx","../../src/web/ChatPanel.tsx","../../src/web/ChatDock.tsx"],"names":["useMessengerConfig","MessengerI18n","jsxs","jsx","useThreads","useOpenThread","useState","useRef","initials","useThread","useSendMessage","useEffect","Fragment","AnimatePresence","motion","useMessengerUi","useUnreadTotal"],"mappings":"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","file":"index.cjs","sourcesContent":["import React from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useThreads } from \"../hooks/useThreads\";\nimport { useOpenThread } from \"../hooks/useOpenThread\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport type { MessageThread } from \"../types\";\n\nfunction initials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return \"?\";\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction ThreadRow({\n thread,\n onSelect,\n active,\n}: {\n thread: MessageThread;\n onSelect: (id: number) => void;\n active?: boolean;\n}) {\n const { user, t, isRtl, theme } = useMessengerConfig();\n const unread = Number(thread.unread_count ?? 0);\n const title =\n user?.role === \"admin\"\n ? thread.client_name ??\n t(MessengerI18n.client.key, MessengerI18n.client.fallback)\n : t(MessengerI18n.yourCoach.key, MessengerI18n.yourCoach.fallback);\n const preview =\n thread.last_body ||\n (thread.last_image_url\n ? t(MessengerI18n.photo.key, MessengerI18n.photo.fallback)\n : t(MessengerI18n.noMessages.key, MessengerI18n.noMessages.fallback));\n\n return (\n <button\n type=\"button\"\n onClick={() => onSelect(thread.id)}\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 12,\n width: \"calc(100% - 16px)\",\n textAlign: isRtl ? \"right\" : \"left\",\n padding: \"12px 14px\",\n margin: \"0 8px\",\n border: active\n ? `1px solid color-mix(in srgb, ${theme.accentColor} 28%, transparent)`\n : \"1px solid transparent\",\n borderRadius: 16,\n background: active\n ? `color-mix(in srgb, ${theme.accentColor} 14%, ${theme.colors.surface})`\n : unread > 0\n ? `color-mix(in srgb, ${theme.accentColor} 8%, transparent)`\n : \"transparent\",\n cursor: \"pointer\",\n color: theme.colors.text,\n transition: \"background 160ms ease, border-color 160ms ease\",\n }}\n onMouseEnter={(e) => {\n if (active) return;\n e.currentTarget.style.background = `color-mix(in srgb, ${theme.accentColor} 12%, ${theme.colors.surfaceSecondary})`;\n }}\n onMouseLeave={(e) => {\n if (active) return;\n e.currentTarget.style.background =\n unread > 0\n ? `color-mix(in srgb, ${theme.accentColor} 8%, transparent)`\n : \"transparent\";\n }}\n >\n <div\n aria-hidden\n style={{\n width: 44,\n height: 44,\n borderRadius: 14,\n flexShrink: 0,\n display: \"grid\",\n placeItems: \"center\",\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 700,\n fontSize: 13,\n letterSpacing: \"0.02em\",\n color: theme.accentColor,\n background: `\n linear-gradient(145deg,\n color-mix(in srgb, ${theme.accentColor} 22%, ${theme.colors.surface}),\n color-mix(in srgb, ${theme.accentColor} 8%, ${theme.colors.surfaceSecondary})\n )\n `,\n border: `1px solid color-mix(in srgb, ${theme.accentColor} 22%, transparent)`,\n }}\n >\n {initials(title)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"baseline\",\n gap: 8,\n }}\n >\n <div\n style={{\n flex: 1,\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: unread > 0 ? 700 : 600,\n fontSize: 14.5,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {title}\n </div>\n {unread > 0 ? (\n <span\n style={{\n minWidth: 20,\n height: 20,\n borderRadius: 10,\n padding: \"0 6px\",\n background: theme.accentColor,\n color: \"var(--color-text-inverse, #fff)\",\n fontSize: 11,\n fontFamily: theme.fonts.bodySemiBold,\n fontWeight: 700,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n {unread}\n </span>\n ) : null}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 12.5,\n color: unread > 0 ? theme.colors.textSecondary : theme.colors.textMuted,\n marginTop: 3,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontWeight: unread > 0 ? 500 : 400,\n }}\n >\n {preview}\n </div>\n </div>\n </button>\n );\n}\n\nexport function ThreadList({\n onSelectThread,\n activeThreadId,\n}: {\n onSelectThread: (id: number) => void;\n activeThreadId?: number | null;\n}) {\n const { user, t, theme } = useMessengerConfig();\n const threadsQuery = useThreads();\n const openThread = useOpenThread();\n const threads = threadsQuery.data ?? [];\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n paddingTop: 6,\n paddingBottom: 10,\n }}\n >\n {user?.role === \"client\" && threads.length === 0 && (\n <div style={{ padding: \"8px 16px 4px\" }}>\n <button\n type=\"button\"\n onClick={() => openThread.mutate(undefined)}\n disabled={openThread.isPending}\n style={{\n width: \"100%\",\n padding: \"13px 16px\",\n borderRadius: 14,\n border: \"none\",\n background: `\n linear-gradient(135deg,\n color-mix(in srgb, ${theme.accentColor} 92%, #fff),\n ${theme.accentColor}\n )\n `,\n color: \"var(--color-text-inverse, #fff)\",\n fontFamily: theme.fonts.bodySemiBold,\n fontWeight: 600,\n fontSize: 14,\n cursor: openThread.isPending ? \"default\" : \"pointer\",\n boxShadow: `0 10px 24px color-mix(in srgb, ${theme.accentColor} 32%, transparent)`,\n }}\n >\n {openThread.isPending\n ? \"…\"\n : t(\n MessengerI18n.messageCoach.key,\n MessengerI18n.messageCoach.fallback\n )}\n </button>\n </div>\n )}\n\n {threadsQuery.isLoading && threads.length === 0 ? (\n <div\n style={{\n padding: 48,\n textAlign: \"center\",\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.body,\n }}\n >\n …\n </div>\n ) : threads.length === 0 ? (\n <div\n style={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 32,\n textAlign: \"center\",\n gap: 10,\n }}\n >\n <div\n aria-hidden\n style={{\n width: 56,\n height: 56,\n borderRadius: 18,\n display: \"grid\",\n placeItems: \"center\",\n background: `color-mix(in srgb, ${theme.accentColor} 12%, ${theme.colors.surfaceSecondary})`,\n color: theme.accentColor,\n fontSize: 22,\n marginBottom: 4,\n }}\n >\n ✦\n </div>\n <div\n style={{\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 600,\n fontSize: 15,\n color: theme.colors.text,\n }}\n >\n {t(MessengerI18n.empty.key, MessengerI18n.empty.fallback)}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 13,\n color: theme.colors.textMuted,\n maxWidth: 220,\n lineHeight: 1.45,\n }}\n >\n {t(\n MessengerI18n.startConversation.key,\n MessengerI18n.startConversation.fallback\n )}\n </div>\n </div>\n ) : (\n <div\n style={{\n overflowY: \"auto\",\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n paddingBottom: 8,\n }}\n >\n {threads.map((th) => (\n <ThreadRow\n key={th.id}\n thread={th}\n onSelect={onSelectThread}\n active={activeThreadId === th.id}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import React from \"react\";\n\n/** Speech-bubble mark — optically centered for a 56×56 FAB. */\nexport function ChatBubbleIcon({ size = 26 }: { size?: number }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden\n style={{ display: \"block\" }}\n >\n <path\n d=\"M5 7.2A3.2 3.2 0 0 1 8.2 4h7.6A3.2 3.2 0 0 1 19 7.2v5.6A3.2 3.2 0 0 1 15.8 16H12.1l-3.55 2.75a.75.75 0 0 1-1.2-.6V16H8.2A3.2 3.2 0 0 1 5 12.8V7.2Z\"\n fill=\"currentColor\"\n />\n <circle cx=\"9.1\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n <circle cx=\"12\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n <circle cx=\"14.9\" cy=\"10\" r=\"1.05\" fill=\"rgba(0,0,0,0.28)\" />\n </svg>\n );\n}\n\nexport function CloseIcon({ size = 18 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M6.4 6.4a1 1 0 0 1 1.4 0L12 10.6l4.2-4.2a1 1 0 1 1 1.4 1.4L13.4 12l4.2 4.2a1 1 0 0 1-1.4 1.4L12 13.4l-4.2 4.2a1 1 0 0 1-1.4-1.4L10.6 12 6.4 7.8a1 1 0 0 1 0-1.4Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function BackIcon({ size = 18, flip }: { size?: number; flip?: boolean }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden\n style={{ display: \"block\", transform: flip ? \"scaleX(-1)\" : undefined }}\n >\n <path\n d=\"M14.7 5.3a1 1 0 0 1 0 1.4L9.4 12l5.3 5.3a1 1 0 0 1-1.4 1.4l-6-6a1 1 0 0 1 0-1.4l6-6a1 1 0 0 1 1.4 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n\nexport function ImageIcon({ size = 18 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M6.5 4h11A2.5 2.5 0 0 1 20 6.5v11A2.5 2.5 0 0 1 17.5 20h-11A2.5 2.5 0 0 1 4 17.5v-11A2.5 2.5 0 0 1 6.5 4Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.7\"\n />\n <circle cx=\"9.2\" cy=\"9\" r=\"1.4\" fill=\"currentColor\" />\n <path\n d=\"M5.5 16.2 9.8 12l2.4 2.3 2.6-3.2 4.2 5.1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.7\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function SendIcon({ size = 16 }: { size?: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden style={{ display: \"block\" }}>\n <path\n d=\"M5.2 11.2 19.1 4.4a.8.8 0 0 1 1.1.9l-3.4 14.2a.8.8 0 0 1-1.3.45l-4.2-3.5-2.5 2.4a.7.7 0 0 1-1.2-.45v-4.05l-3.1-1.6a.8.8 0 0 1 .5-1.55Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import React, { useRef, useState } from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport type { PickedImage } from \"../types\";\nimport { ImageIcon, SendIcon } from \"./icons\";\n\nexport function WebComposer({\n sending,\n onSend,\n}: {\n sending: boolean;\n onSend: (body: string, image?: PickedImage | null) => void | Promise<void>;\n}) {\n const { t, isRtl, theme, pickImage } = useMessengerConfig();\n const [body, setBody] = useState(\"\");\n const [focused, setFocused] = useState(false);\n const fileRef = useRef<HTMLInputElement>(null);\n const canSend = Boolean(body.trim()) && !sending;\n\n async function handleSend() {\n if (!body.trim() || sending) return;\n const text = body;\n setBody(\"\");\n await onSend(text, null);\n }\n\n async function handlePick() {\n const fromHost = await pickImage();\n if (fromHost) {\n await onSend(body, fromHost);\n setBody(\"\");\n return;\n }\n fileRef.current?.click();\n }\n\n async function onFileChange(e: React.ChangeEvent<HTMLInputElement>) {\n const file = e.target.files?.[0];\n e.target.value = \"\";\n if (!file) return;\n const uri = URL.createObjectURL(file);\n await onSend(body, {\n uri,\n name: file.name,\n type: file.type,\n file,\n });\n setBody(\"\");\n }\n\n return (\n <div\n style={{\n padding: \"10px 12px 14px\",\n borderTop: `1px solid color-mix(in srgb, ${theme.colors.border} 75%, transparent)`,\n background: `linear-gradient(0deg, ${theme.colors.surface}, color-mix(in srgb, ${theme.colors.surface} 88%, transparent))`,\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"flex-end\",\n gap: 8,\n padding: \"6px 6px 6px 8px\",\n borderRadius: 18,\n border: `1px solid ${\n focused\n ? `color-mix(in srgb, ${theme.accentColor} 45%, ${theme.colors.border})`\n : `color-mix(in srgb, ${theme.colors.border} 85%, transparent)`\n }`,\n background: theme.colors.background,\n boxShadow: focused\n ? `0 0 0 3px color-mix(in srgb, ${theme.accentColor} 16%, transparent)`\n : \"none\",\n transition: \"border-color 160ms ease, box-shadow 160ms ease\",\n }}\n >\n <input\n ref={fileRef}\n type=\"file\"\n accept=\"image/*\"\n hidden\n onChange={onFileChange}\n />\n <button\n type=\"button\"\n onClick={() => void handlePick()}\n disabled={sending}\n aria-label=\"Attach image\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n border: \"none\",\n background: \"transparent\",\n color: theme.colors.textMuted,\n cursor: sending ? \"default\" : \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <ImageIcon size={18} />\n </button>\n <textarea\n value={body}\n onChange={(e) => setBody(e.target.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n void handleSend();\n }\n }}\n placeholder={t(\n MessengerI18n.typeMessage.key,\n MessengerI18n.typeMessage.fallback\n )}\n rows={1}\n style={{\n flex: 1,\n resize: \"none\",\n maxHeight: 96,\n minHeight: 36,\n border: \"none\",\n padding: \"8px 4px\",\n fontFamily: theme.fonts.body,\n fontSize: 14,\n color: theme.colors.text,\n background: \"transparent\",\n textAlign: isRtl ? \"right\" : \"left\",\n outline: \"none\",\n lineHeight: 1.4,\n }}\n />\n <button\n type=\"button\"\n onClick={() => void handleSend()}\n disabled={!canSend}\n aria-label=\"Send\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n border: \"none\",\n background: canSend\n ? `linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 90%, #fff), ${theme.accentColor})`\n : `color-mix(in srgb, ${theme.colors.surfaceSecondary} 90%, transparent)`,\n color: canSend\n ? \"var(--color-text-inverse, #fff)\"\n : theme.colors.textMuted,\n cursor: canSend ? \"pointer\" : \"default\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n boxShadow: canSend\n ? `0 6px 16px color-mix(in srgb, ${theme.accentColor} 35%, transparent)`\n : \"none\",\n transition: \"background 160ms ease, box-shadow 160ms ease\",\n }}\n >\n {sending ? (\n <span style={{ fontSize: 14, lineHeight: 1 }}>…</span>\n ) : (\n <SendIcon size={15} />\n )}\n </button>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useThread } from \"../hooks/useThread\";\nimport { useSendMessage } from \"../hooks/useSendMessage\";\nimport { useThreads } from \"../hooks/useThreads\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { WebComposer } from \"./WebComposer\";\nimport { BackIcon, CloseIcon } from \"./icons\";\nimport type { ChatMessage, PickedImage } from \"../types\";\n\nfunction initials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return \"?\";\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction Bubble({ message }: { message: ChatMessage }) {\n const { user, isRtl, theme } = useMessengerConfig();\n const mine = message.sender_user_id === user?.id;\n const alignEnd = mine !== isRtl;\n\n return (\n <div\n style={{\n alignSelf: alignEnd ? \"flex-end\" : \"flex-start\",\n maxWidth: \"78%\",\n marginBottom: 8,\n padding: \"10px 13px\",\n borderRadius: mine\n ? alignEnd\n ? \"18px 18px 6px 18px\"\n : \"18px 18px 18px 6px\"\n : alignEnd\n ? \"18px 18px 6px 18px\"\n : \"18px 18px 18px 6px\",\n background: mine\n ? `linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 88%, #fff), ${theme.accentColor})`\n : `color-mix(in srgb, ${theme.colors.surfaceSecondary} 92%, ${theme.colors.surface})`,\n color: mine ? \"var(--color-text-inverse, #fff)\" : theme.colors.text,\n fontFamily: theme.fonts.body,\n fontSize: 14,\n lineHeight: 1.45,\n boxShadow: mine\n ? `0 8px 20px color-mix(in srgb, ${theme.accentColor} 28%, transparent)`\n : `0 1px 0 color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n border: mine\n ? \"none\"\n : `1px solid color-mix(in srgb, ${theme.colors.border} 70%, transparent)`,\n }}\n >\n {message.image_url ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={message.image_url}\n alt=\"\"\n style={{\n width: \"100%\",\n maxWidth: 220,\n borderRadius: 12,\n display: \"block\",\n marginBottom: message.body ? 8 : 0,\n }}\n />\n ) : null}\n {message.body ? <div style={{ whiteSpace: \"pre-wrap\" }}>{message.body}</div> : null}\n </div>\n );\n}\n\nexport function Conversation({\n threadId,\n onBack,\n onClose,\n}: {\n threadId: number;\n onBack?: () => void;\n onClose?: () => void;\n}) {\n const { user, t, isRtl, theme } = useMessengerConfig();\n const listRef = useRef<HTMLDivElement>(null);\n const threadQuery = useThread(threadId);\n const threadsQuery = useThreads();\n const sendMutation = useSendMessage(threadId);\n const messages = threadQuery.data?.messages ?? [];\n const threadMeta = threadsQuery.data?.find((th) => th.id === threadId);\n const title =\n user?.role === \"admin\"\n ? threadMeta?.client_name ??\n t(MessengerI18n.client.key, MessengerI18n.client.fallback)\n : t(MessengerI18n.yourCoach.key, MessengerI18n.yourCoach.fallback);\n\n useEffect(() => {\n const el = listRef.current;\n if (el) el.scrollTop = el.scrollHeight;\n }, [messages.length, threadId]);\n\n async function handleSend(body: string, image?: PickedImage | null) {\n if ((!body.trim() && !image) || sendMutation.isPending) return;\n await sendMutation.mutateAsync({ body, image });\n }\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\n <header\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 10,\n padding: \"12px 14px\",\n borderBottom: `1px solid color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n background: `linear-gradient(180deg, color-mix(in srgb, ${theme.colors.surface} 94%, transparent), color-mix(in srgb, ${theme.colors.surface} 72%, transparent))`,\n backdropFilter: \"blur(12px)\",\n }}\n >\n {onBack ? (\n <button\n type=\"button\"\n onClick={onBack}\n aria-label={t(MessengerI18n.back.key, MessengerI18n.back.fallback)}\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 75%, transparent)`,\n color: theme.colors.text,\n cursor: \"pointer\",\n width: 36,\n height: 36,\n borderRadius: 12,\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <BackIcon flip={isRtl} />\n </button>\n ) : null}\n\n <div\n aria-hidden\n style={{\n width: 36,\n height: 36,\n borderRadius: 12,\n flexShrink: 0,\n display: \"grid\",\n placeItems: \"center\",\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 700,\n fontSize: 12,\n color: theme.accentColor,\n background: `color-mix(in srgb, ${theme.accentColor} 14%, ${theme.colors.surfaceSecondary})`,\n border: `1px solid color-mix(in srgb, ${theme.accentColor} 20%, transparent)`,\n }}\n >\n {initials(title)}\n </div>\n\n <div style={{ flex: 1, minWidth: 0, textAlign: isRtl ? \"right\" : \"left\" }}>\n <div\n style={{\n fontFamily: theme.fonts.displayBold,\n fontWeight: 700,\n fontSize: 15,\n color: theme.colors.text,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {title}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 11.5,\n color: theme.colors.textMuted,\n marginTop: 1,\n }}\n >\n {t(MessengerI18n.chat.key, MessengerI18n.chat.fallback)}\n </div>\n </div>\n\n {onClose ? (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 75%, transparent)`,\n color: theme.colors.textSecondary,\n width: 36,\n height: 36,\n borderRadius: 12,\n cursor: \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <CloseIcon size={16} />\n </button>\n ) : null}\n </header>\n\n <div\n ref={listRef}\n style={{\n flex: 1,\n overflowY: \"auto\",\n padding: \"16px 14px 12px\",\n display: \"flex\",\n flexDirection: \"column\",\n background: `\n radial-gradient(80% 50% at 50% 0%, color-mix(in srgb, ${theme.accentColor} 6%, transparent), transparent 70%),\n ${theme.colors.background}\n `,\n }}\n >\n {threadQuery.isLoading && messages.length === 0 ? (\n <div style={{ color: theme.colors.textMuted, textAlign: \"center\", marginTop: 40 }}>\n …\n </div>\n ) : messages.length === 0 ? (\n <div\n style={{\n color: theme.colors.textMuted,\n textAlign: \"center\",\n marginTop: 48,\n fontFamily: theme.fonts.body,\n fontSize: 13.5,\n lineHeight: 1.5,\n padding: \"0 24px\",\n }}\n >\n {t(\n MessengerI18n.startConversation.key,\n MessengerI18n.startConversation.fallback\n )}\n </div>\n ) : (\n messages.map((m) => <Bubble key={m.id} message={m} />)\n )}\n </div>\n\n <WebComposer sending={sendMutation.isPending} onSend={handleSend} />\n </div>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useMessengerConfig } from \"../provider\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { ThreadList } from \"./ThreadList\";\nimport { Conversation } from \"./Conversation\";\nimport { CloseIcon } from \"./icons\";\n\nexport function ChatPanel({\n threadId,\n onSelectThread,\n onBackToList,\n onClose,\n variant = \"dock\",\n}: {\n threadId: number | null;\n onSelectThread: (id: number) => void;\n onBackToList: () => void;\n onClose?: () => void;\n variant?: \"dock\" | \"page\";\n}) {\n const { enabled, t, isRtl, theme, onFeatureOff } = useMessengerConfig();\n const [wide, setWide] = useState(false);\n\n useEffect(() => {\n if (variant !== \"page\" || typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(min-width: 768px)\");\n const apply = () => setWide(mq.matches);\n apply();\n mq.addEventListener(\"change\", apply);\n return () => mq.removeEventListener(\"change\", apply);\n }, [variant]);\n\n if (!enabled) {\n if (onFeatureOff) return <>{onFeatureOff()}</>;\n return (\n <div\n style={{\n padding: 32,\n textAlign: \"center\",\n color: theme.colors.textMuted,\n fontFamily: theme.fonts.body,\n }}\n >\n {t(MessengerI18n.off.key, MessengerI18n.off.fallback)}\n </div>\n );\n }\n\n const inThread = threadId != null;\n const pageSplit = variant === \"page\" && wide;\n\n const shell: React.CSSProperties =\n variant === \"page\"\n ? {\n display: \"flex\",\n flexDirection: pageSplit ? (isRtl ? \"row-reverse\" : \"row\") : \"column\",\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n background: theme.colors.surface,\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 85%, transparent)`,\n borderRadius: 0,\n }\n : {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n background: `\n radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, ${theme.accentColor} 14%, transparent), transparent 55%),\n radial-gradient(90% 60% at 0% 100%, color-mix(in srgb, ${theme.accentColor} 8%, transparent), transparent 50%),\n ${theme.colors.surface}\n `,\n };\n\n const listPane = (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n width: pageSplit ? 320 : \"100%\",\n flexShrink: 0,\n borderInlineEnd: pageSplit\n ? `1px solid color-mix(in srgb, ${theme.colors.border} 80%, transparent)`\n : undefined,\n background: pageSplit\n ? `linear-gradient(180deg, color-mix(in srgb, ${theme.colors.surfaceSecondary} 55%, ${theme.colors.surface}), ${theme.colors.surface})`\n : undefined,\n }}\n >\n <header\n style={{\n display: \"flex\",\n flexDirection: isRtl ? \"row-reverse\" : \"row\",\n alignItems: \"center\",\n gap: 12,\n padding: \"16px 16px 14px\",\n borderBottom: `1px solid color-mix(in srgb, ${theme.colors.border} 80%, transparent)`,\n }}\n >\n <div style={{ flex: 1, minWidth: 0, textAlign: isRtl ? \"right\" : \"left\" }}>\n <div\n style={{\n fontFamily: theme.fonts.displayBold,\n fontWeight: 700,\n fontSize: pageSplit ? 18 : 20,\n letterSpacing: \"-0.02em\",\n color: theme.colors.text,\n lineHeight: 1.15,\n }}\n >\n {t(MessengerI18n.messages.key, MessengerI18n.messages.fallback)}\n </div>\n <div\n style={{\n marginTop: 3,\n fontFamily: theme.fonts.body,\n fontSize: 12.5,\n color: theme.colors.textMuted,\n }}\n >\n {t(MessengerI18n.messagesHint.key, MessengerI18n.messagesHint.fallback)}\n </div>\n </div>\n {onClose && !pageSplit ? (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n style={{\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 90%, transparent)`,\n background: `color-mix(in srgb, ${theme.colors.surfaceSecondary} 80%, transparent)`,\n color: theme.colors.textSecondary,\n width: 36,\n height: 36,\n borderRadius: 12,\n cursor: \"pointer\",\n display: \"grid\",\n placeItems: \"center\",\n flexShrink: 0,\n }}\n >\n <CloseIcon size={16} />\n </button>\n ) : null}\n </header>\n <div style={{ flex: 1, minHeight: 0 }}>\n <ThreadList\n onSelectThread={onSelectThread}\n activeThreadId={threadId}\n />\n </div>\n </div>\n );\n\n const emptyPane = (\n <div\n style={{\n flex: 1,\n minWidth: 0,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 10,\n padding: 32,\n background: `\n radial-gradient(80% 60% at 50% 0%, color-mix(in srgb, ${theme.accentColor} 10%, transparent), transparent 60%),\n ${theme.colors.surface}\n `,\n }}\n >\n <div\n aria-hidden\n style={{\n width: 64,\n height: 64,\n borderRadius: 20,\n display: \"grid\",\n placeItems: \"center\",\n background: `color-mix(in srgb, ${theme.accentColor} 12%, ${theme.colors.surfaceSecondary})`,\n color: theme.accentColor,\n fontSize: 26,\n marginBottom: 4,\n }}\n >\n ✦\n </div>\n <div\n style={{\n fontFamily: theme.fonts.displaySemiBold,\n fontWeight: 600,\n fontSize: 16,\n color: theme.colors.text,\n }}\n >\n {t(MessengerI18n.messages.key, MessengerI18n.messages.fallback)}\n </div>\n <div\n style={{\n fontFamily: theme.fonts.body,\n fontSize: 13.5,\n color: theme.colors.textMuted,\n maxWidth: 280,\n textAlign: \"center\",\n lineHeight: 1.45,\n }}\n >\n {t(MessengerI18n.messagesHint.key, MessengerI18n.messagesHint.fallback)}\n </div>\n </div>\n );\n\n if (variant === \"page\" && pageSplit) {\n return (\n <div style={shell}>\n {listPane}\n <div style={{ flex: 1, minWidth: 0, minHeight: 0, height: \"100%\" }}>\n {inThread ? (\n <Conversation threadId={threadId} />\n ) : (\n emptyPane\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div style={shell}>\n {!inThread ? (\n listPane\n ) : (\n <div style={{ flex: 1, minHeight: 0, position: \"relative\", height: \"100%\" }}>\n <AnimatePresence mode=\"wait\" initial={false}>\n <motion.div\n key={`thread-${threadId}`}\n initial={{ opacity: 0, x: isRtl ? -16 : 16 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: isRtl ? 12 : -12 }}\n transition={{ duration: 0.22, ease: [0.22, 1, 0.36, 1] }}\n style={{ height: \"100%\" }}\n >\n <Conversation\n threadId={threadId}\n onBack={onBackToList}\n onClose={onClose}\n />\n </motion.div>\n </AnimatePresence>\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useMessengerConfig } from \"../provider\";\nimport { useMessengerUi } from \"../uiController\";\nimport { useUnreadTotal } from \"../hooks/useUnreadTotal\";\nimport { MessengerI18n } from \"../i18nKeys\";\nimport { ChatPanel } from \"./ChatPanel\";\nimport { ChatBubbleIcon, CloseIcon } from \"./icons\";\n\n/**\n * Floating Intercom-style chat dock. Requires MessengerProvider + MessengerUiProvider.\n */\nexport function ChatDock() {\n const { enabled, isRtl, theme, t } = useMessengerConfig();\n const ui = useMessengerUi();\n const unread = useUnreadTotal({ enabled });\n\n if (!enabled) return null;\n\n const side = isRtl ? \"left\" : \"right\";\n const open = ui.open;\n const label = open\n ? \"Close chat\"\n : t(MessengerI18n.messages.key, MessengerI18n.messages.fallback);\n\n return (\n <div\n style={{\n position: \"fixed\",\n bottom: \"max(20px, env(safe-area-inset-bottom))\",\n [side]: \"max(20px, env(safe-area-inset-right, env(safe-area-inset-left)))\",\n zIndex: 10000,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: isRtl ? \"flex-start\" : \"flex-end\",\n gap: 14,\n pointerEvents: \"none\",\n // Lets SVG dots / text on accent pick up inverse ink\n [\"--gymlium-on-accent\" as string]: \"var(--color-text-inverse, #fff)\",\n }}\n >\n <AnimatePresence>\n {open ? (\n <motion.div\n key=\"panel\"\n initial={{ opacity: 0, y: 28, scale: 0.94, filter: \"blur(6px)\" }}\n animate={{ opacity: 1, y: 0, scale: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, y: 18, scale: 0.96, filter: \"blur(4px)\" }}\n transition={{ duration: 0.32, ease: [0.22, 1, 0.36, 1] }}\n style={{\n width: \"min(380px, calc(100vw - 28px))\",\n height: \"min(440px, calc(100vh - 160px))\",\n maxHeight: 440,\n borderRadius: 24,\n overflow: \"hidden\",\n border: `1px solid color-mix(in srgb, ${theme.colors.border} 85%, transparent)`,\n background: theme.colors.surface,\n boxShadow: `\n 0 0 0 1px color-mix(in srgb, ${theme.accentColor} 12%, transparent),\n 0 28px 80px color-mix(in srgb, ${theme.colors.text} 22%, transparent),\n 0 8px 24px color-mix(in srgb, ${theme.accentColor} 18%, transparent)\n `,\n pointerEvents: \"auto\",\n backdropFilter: \"blur(20px)\",\n }}\n >\n <ChatPanel\n threadId={ui.threadId}\n onSelectThread={ui.openThread}\n onBackToList={ui.openInbox}\n onClose={ui.close}\n variant=\"dock\"\n />\n </motion.div>\n ) : null}\n </AnimatePresence>\n\n <motion.button\n type=\"button\"\n onClick={() => (open ? ui.close() : ui.openInbox())}\n aria-label={label}\n aria-expanded={open}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.94 }}\n transition={{ type: \"spring\", stiffness: 420, damping: 24 }}\n style={{\n pointerEvents: \"auto\",\n width: 58,\n height: 58,\n borderRadius: 20,\n border: \"none\",\n padding: 0,\n background: `\n radial-gradient(120% 120% at 30% 20%, color-mix(in srgb, #fff 28%, transparent), transparent 55%),\n linear-gradient(145deg, color-mix(in srgb, ${theme.accentColor} 88%, #fff) 0%, ${theme.accentColor} 55%, color-mix(in srgb, ${theme.accentColor} 78%, #000) 100%)\n `,\n color: \"var(--color-text-inverse, #fff)\",\n cursor: \"pointer\",\n boxShadow: `\n 0 14px 36px color-mix(in srgb, ${theme.accentColor} 42%, transparent),\n 0 2px 0 color-mix(in srgb, #fff 22%, transparent) inset\n `,\n position: \"relative\",\n display: \"grid\",\n placeItems: \"center\",\n overflow: \"visible\",\n }}\n >\n {/* Soft aura when unread */}\n {!open && unread.total > 0 ? (\n <motion.span\n aria-hidden\n initial={{ opacity: 0.55, scale: 1 }}\n animate={{ opacity: [0.45, 0.15, 0.45], scale: [1, 1.28, 1] }}\n transition={{ duration: 2.4, repeat: Infinity, ease: \"easeInOut\" }}\n style={{\n position: \"absolute\",\n inset: -6,\n borderRadius: 24,\n background: `color-mix(in srgb, ${theme.accentColor} 35%, transparent)`,\n zIndex: -1,\n }}\n />\n ) : null}\n\n <AnimatePresence mode=\"wait\" initial={false}>\n <motion.span\n key={open ? \"close\" : \"chat\"}\n initial={{ opacity: 0, rotate: open ? -40 : 40, scale: 0.7 }}\n animate={{ opacity: 1, rotate: 0, scale: 1 }}\n exit={{ opacity: 0, rotate: open ? 40 : -40, scale: 0.7 }}\n transition={{ duration: 0.18 }}\n style={{ display: \"grid\", placeItems: \"center\", lineHeight: 0 }}\n >\n {open ? <CloseIcon size={20} /> : <ChatBubbleIcon size={26} />}\n </motion.span>\n </AnimatePresence>\n\n {!open && unread.total > 0 ? (\n <motion.span\n initial={{ scale: 0 }}\n animate={{ scale: 1 }}\n style={{\n position: \"absolute\",\n top: -3,\n [isRtl ? \"left\" : \"right\"]: -3,\n minWidth: 22,\n height: 22,\n borderRadius: 11,\n padding: \"0 6px\",\n background: theme.colors.surface,\n color: theme.colors.text,\n fontSize: 11,\n fontWeight: 700,\n fontFamily: theme.fonts.bodySemiBold,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: `2px solid ${theme.accentColor}`,\n boxShadow: `0 4px 12px color-mix(in srgb, ${theme.colors.text} 25%, transparent)`,\n }}\n >\n {unread.total > 99 ? \"99+\" : unread.total}\n </motion.span>\n ) : null}\n </motion.button>\n </div>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { P as PickedImage } from '../types-B7dU_l7c.cjs';
3
- export { M as MessengerProvider, a as MessengerUiProvider, u as useMessengerConfig, b as useMessengerUi, c as useOptionalMessengerConfig, d as useOptionalMessengerUi } from '../uiController-CM_cznOa.cjs';
3
+ export { M as MessengerProvider, a as MessengerUiProvider, u as useMessengerConfig, b as useMessengerUi, c as useOptionalMessengerConfig, d as useOptionalMessengerUi } from '../uiController-COf59SW2.cjs';
4
4
 
5
5
  /**
6
6
  * Floating Intercom-style chat dock. Requires MessengerProvider + MessengerUiProvider.
@@ -15,8 +15,9 @@ declare function ChatPanel({ threadId, onSelectThread, onBackToList, onClose, va
15
15
  variant?: "dock" | "page";
16
16
  }): React.JSX.Element;
17
17
 
18
- declare function ThreadList({ onSelectThread, }: {
18
+ declare function ThreadList({ onSelectThread, activeThreadId, }: {
19
19
  onSelectThread: (id: number) => void;
20
+ activeThreadId?: number | null;
20
21
  }): React.JSX.Element;
21
22
 
22
23
  declare function Conversation({ threadId, onBack, onClose, }: {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { P as PickedImage } from '../types-B7dU_l7c.js';
3
- export { M as MessengerProvider, a as MessengerUiProvider, u as useMessengerConfig, b as useMessengerUi, c as useOptionalMessengerConfig, d as useOptionalMessengerUi } from '../uiController-CNCLZw4I.js';
3
+ export { M as MessengerProvider, a as MessengerUiProvider, u as useMessengerConfig, b as useMessengerUi, c as useOptionalMessengerConfig, d as useOptionalMessengerUi } from '../uiController-Ju0xoRyd.js';
4
4
 
5
5
  /**
6
6
  * Floating Intercom-style chat dock. Requires MessengerProvider + MessengerUiProvider.
@@ -15,8 +15,9 @@ declare function ChatPanel({ threadId, onSelectThread, onBackToList, onClose, va
15
15
  variant?: "dock" | "page";
16
16
  }): React.JSX.Element;
17
17
 
18
- declare function ThreadList({ onSelectThread, }: {
18
+ declare function ThreadList({ onSelectThread, activeThreadId, }: {
19
19
  onSelectThread: (id: number) => void;
20
+ activeThreadId?: number | null;
20
21
  }): React.JSX.Element;
21
22
 
22
23
  declare function Conversation({ threadId, onBack, onClose, }: {