@sonordev/site-kit 6.0.1 → 6.1.1
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/README.md +11 -0
- package/agent-manifest.json +8 -1
- package/dist/{AnalyticsProvider-YU6QANW5.mjs → AnalyticsProvider-33L4E6LO.mjs} +6 -6
- package/dist/{AnalyticsProvider-YU6QANW5.mjs.map → AnalyticsProvider-33L4E6LO.mjs.map} +1 -1
- package/dist/{AnalyticsProvider-4RLYTVWO.js → AnalyticsProvider-5G5AFHZN.js} +10 -10
- package/dist/{AnalyticsProvider-4RLYTVWO.js.map → AnalyticsProvider-5G5AFHZN.js.map} +1 -1
- package/dist/{ArticleViewTracker-OQB2VT73.js → ArticleViewTracker-U2KFUSZF.js} +6 -6
- package/dist/{ArticleViewTracker-OQB2VT73.js.map → ArticleViewTracker-U2KFUSZF.js.map} +1 -1
- package/dist/{ArticleViewTracker-LI44SA4T.mjs → ArticleViewTracker-VZRMPK4S.mjs} +5 -5
- package/dist/{ArticleViewTracker-LI44SA4T.mjs.map → ArticleViewTracker-VZRMPK4S.mjs.map} +1 -1
- package/dist/ChatWidget-LH3QZYKR.mjs +16 -0
- package/dist/{ChatWidget-56SW5ITH.mjs.map → ChatWidget-LH3QZYKR.mjs.map} +1 -1
- package/dist/ChatWidget-RUCQMCMN.js +25 -0
- package/dist/{ChatWidget-HR3OC3WA.js.map → ChatWidget-RUCQMCMN.js.map} +1 -1
- package/dist/EngageWidget-34BQXU7K.mjs +12 -0
- package/dist/{EngageWidget-L4X35N2B.mjs.map → EngageWidget-34BQXU7K.mjs.map} +1 -1
- package/dist/EngageWidget-X2CBW7DV.js +21 -0
- package/dist/{EngageWidget-HXGI3ZKG.js.map → EngageWidget-X2CBW7DV.js.map} +1 -1
- package/dist/{FileField-N2P6E2PN.js → FileField-2MMV53BG.js} +6 -6
- package/dist/{FileField-N2P6E2PN.js.map → FileField-2MMV53BG.js.map} +1 -1
- package/dist/{FileField-GSTLU42O.mjs → FileField-REUU36RJ.mjs} +5 -5
- package/dist/{FileField-GSTLU42O.mjs.map → FileField-REUU36RJ.mjs.map} +1 -1
- package/dist/{FormSpotlight-QLXOS5LN.js → FormSpotlight-Y27TPQ4G.js} +9 -9
- package/dist/{FormSpotlight-QLXOS5LN.js.map → FormSpotlight-Y27TPQ4G.js.map} +1 -1
- package/dist/{FormSpotlight-UFATQTN3.mjs → FormSpotlight-ZV3IS66K.mjs} +3 -3
- package/dist/{FormSpotlight-UFATQTN3.mjs.map → FormSpotlight-ZV3IS66K.mjs.map} +1 -1
- package/dist/{FormStage-SYOKD5TJ.mjs → FormStage-6NUGCDJR.mjs} +3 -3
- package/dist/{FormStage-SYOKD5TJ.mjs.map → FormStage-6NUGCDJR.mjs.map} +1 -1
- package/dist/{FormStage-4HYDMCYU.js → FormStage-K7Z6IEPM.js} +9 -9
- package/dist/{FormStage-4HYDMCYU.js.map → FormStage-K7Z6IEPM.js.map} +1 -1
- package/dist/ManagedForm-EUDKMS5G.mjs +16 -0
- package/dist/{ManagedForm-3TDSIRCM.mjs.map → ManagedForm-EUDKMS5G.mjs.map} +1 -1
- package/dist/ManagedForm-O67ILXN7.js +25 -0
- package/dist/{ManagedForm-TUSGW5EH.js.map → ManagedForm-O67ILXN7.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-CNGCBA2N.mjs → ManagedNewsletterForm-IGWTZW7X.mjs} +7 -7
- package/dist/{ManagedNewsletterForm-CNGCBA2N.mjs.map → ManagedNewsletterForm-IGWTZW7X.mjs.map} +1 -1
- package/dist/{ManagedNewsletterForm-XJEPVJRM.js → ManagedNewsletterForm-QBJODAIA.js} +8 -8
- package/dist/{ManagedNewsletterForm-XJEPVJRM.js.map → ManagedNewsletterForm-QBJODAIA.js.map} +1 -1
- package/dist/{SignalCore-AXK6RCR4.js → SignalCore-KQDRH44V.js} +11 -11
- package/dist/{SignalCore-AXK6RCR4.js.map → SignalCore-KQDRH44V.js.map} +1 -1
- package/dist/{SignalCore-ARRVP6F7.mjs → SignalCore-UR4KVU5X.mjs} +5 -5
- package/dist/{SignalCore-ARRVP6F7.mjs.map → SignalCore-UR4KVU5X.mjs.map} +1 -1
- package/dist/SitemapSync-DQALPBTR.js +18 -0
- package/dist/{SitemapSync-GAGREAX6.js.map → SitemapSync-DQALPBTR.js.map} +1 -1
- package/dist/SitemapSync-QYV3X5LH.mjs +9 -0
- package/dist/{SitemapSync-42VKJUOU.mjs.map → SitemapSync-QYV3X5LH.mjs.map} +1 -1
- package/dist/analytics/index.js +9 -9
- package/dist/analytics/index.mjs +4 -4
- package/dist/articles/index.js +2 -2
- package/dist/articles/index.mjs +2 -2
- package/dist/articles/server-ui.js +1 -1
- package/dist/articles/server-ui.mjs +1 -1
- package/dist/{chunk-NVWUXCUQ.mjs → chunk-22KPMJIQ.mjs} +3 -3
- package/dist/{chunk-NVWUXCUQ.mjs.map → chunk-22KPMJIQ.mjs.map} +1 -1
- package/dist/{chunk-QXPGIOU7.mjs → chunk-3E7ZXPOB.mjs} +3 -3
- package/dist/{chunk-QXPGIOU7.mjs.map → chunk-3E7ZXPOB.mjs.map} +1 -1
- package/dist/{chunk-6ZOMIPU5.js → chunk-3H3DTYFQ.js} +8 -8
- package/dist/{chunk-6ZOMIPU5.js.map → chunk-3H3DTYFQ.js.map} +1 -1
- package/dist/{chunk-NYNL6UQV.mjs → chunk-3SHAY7PK.mjs} +69 -49
- package/dist/chunk-3SHAY7PK.mjs.map +1 -0
- package/dist/{chunk-AQMQOH7V.js → chunk-46GMNQWN.js} +3 -3
- package/dist/{chunk-AQMQOH7V.js.map → chunk-46GMNQWN.js.map} +1 -1
- package/dist/{chunk-6YEPFH3Q.js → chunk-6K3YRSYN.js} +10 -10
- package/dist/{chunk-6YEPFH3Q.js.map → chunk-6K3YRSYN.js.map} +1 -1
- package/dist/{chunk-SU42KCQD.mjs → chunk-6ZMEJSNX.mjs} +4 -4
- package/dist/{chunk-SU42KCQD.mjs.map → chunk-6ZMEJSNX.mjs.map} +1 -1
- package/dist/{chunk-WLCPBZOS.mjs → chunk-7DMAVD7W.mjs} +3 -3
- package/dist/{chunk-WLCPBZOS.mjs.map → chunk-7DMAVD7W.mjs.map} +1 -1
- package/dist/{chunk-BWSYPQ5E.js → chunk-7IM7VG4E.js} +6 -6
- package/dist/{chunk-BWSYPQ5E.js.map → chunk-7IM7VG4E.js.map} +1 -1
- package/dist/{chunk-QJ3SMLND.mjs → chunk-7PCXI25T.mjs} +3 -3
- package/dist/{chunk-QJ3SMLND.mjs.map → chunk-7PCXI25T.mjs.map} +1 -1
- package/dist/{chunk-6URNNS3V.mjs → chunk-AG7MWWGP.mjs} +4 -4
- package/dist/{chunk-6URNNS3V.mjs.map → chunk-AG7MWWGP.mjs.map} +1 -1
- package/dist/{chunk-XWKY46NU.js → chunk-BRED7YSL.js} +11 -11
- package/dist/{chunk-XWKY46NU.js.map → chunk-BRED7YSL.js.map} +1 -1
- package/dist/chunk-BZR6RUIN.mjs +128 -0
- package/dist/chunk-BZR6RUIN.mjs.map +1 -0
- package/dist/{chunk-U6F6AN23.mjs → chunk-CJ5YPYAE.mjs} +4 -4
- package/dist/{chunk-U6F6AN23.mjs.map → chunk-CJ5YPYAE.mjs.map} +1 -1
- package/dist/{chunk-FKFVN3GT.js → chunk-D6VMDDQR.js} +8 -8
- package/dist/{chunk-FKFVN3GT.js.map → chunk-D6VMDDQR.js.map} +1 -1
- package/dist/{chunk-GKPVGVHY.mjs → chunk-DGWFHL35.mjs} +3 -3
- package/dist/{chunk-GKPVGVHY.mjs.map → chunk-DGWFHL35.mjs.map} +1 -1
- package/dist/{chunk-4NBJDP6Y.js → chunk-EF7QCYLF.js} +4 -4
- package/dist/{chunk-4NBJDP6Y.js.map → chunk-EF7QCYLF.js.map} +1 -1
- package/dist/{chunk-BMH2D2EP.mjs → chunk-GZLMMX76.mjs} +3 -3
- package/dist/{chunk-BMH2D2EP.mjs.map → chunk-GZLMMX76.mjs.map} +1 -1
- package/dist/{chunk-NVOYCK2S.js → chunk-HH5EMIXK.js} +14 -14
- package/dist/{chunk-NVOYCK2S.js.map → chunk-HH5EMIXK.js.map} +1 -1
- package/dist/chunk-HQWPCX3N.mjs +6 -0
- package/dist/{chunk-7MAHP735.mjs.map → chunk-HQWPCX3N.mjs.map} +1 -1
- package/dist/{chunk-TC3JSQUS.js → chunk-IPGIFBRN.js} +4 -4
- package/dist/{chunk-TC3JSQUS.js.map → chunk-IPGIFBRN.js.map} +1 -1
- package/dist/chunk-IWSN4DGG.js +132 -0
- package/dist/chunk-IWSN4DGG.js.map +1 -0
- package/dist/{chunk-P2HOVWJW.js → chunk-JZCG25XK.js} +14 -14
- package/dist/{chunk-P2HOVWJW.js.map → chunk-JZCG25XK.js.map} +1 -1
- package/dist/{chunk-ZRWIMNQF.js → chunk-ME5636V6.js} +3 -3
- package/dist/{chunk-ZRWIMNQF.js.map → chunk-ME5636V6.js.map} +1 -1
- package/dist/{chunk-UCBBZXJI.js → chunk-MJTHYT3D.js} +4 -4
- package/dist/{chunk-UCBBZXJI.js.map → chunk-MJTHYT3D.js.map} +1 -1
- package/dist/{chunk-IDOHDP7D.mjs → chunk-MSSFRRXJ.mjs} +4 -4
- package/dist/{chunk-IDOHDP7D.mjs.map → chunk-MSSFRRXJ.mjs.map} +1 -1
- package/dist/{chunk-QP56JXMH.mjs → chunk-MWX6QO7A.mjs} +3 -3
- package/dist/{chunk-QP56JXMH.mjs.map → chunk-MWX6QO7A.mjs.map} +1 -1
- package/dist/chunk-NBOBOYMT.js +52 -0
- package/dist/chunk-NBOBOYMT.js.map +1 -0
- package/dist/{chunk-R6UE6MC5.js → chunk-NJSD5QY6.js} +7 -7
- package/dist/{chunk-R6UE6MC5.js.map → chunk-NJSD5QY6.js.map} +1 -1
- package/dist/{chunk-QD4BNYMM.js → chunk-NK7ZWPAO.js} +18 -18
- package/dist/{chunk-QD4BNYMM.js.map → chunk-NK7ZWPAO.js.map} +1 -1
- package/dist/{chunk-4VCR6TXK.js → chunk-OB7K6EFK.js} +5 -5
- package/dist/{chunk-4VCR6TXK.js.map → chunk-OB7K6EFK.js.map} +1 -1
- package/dist/chunk-OBKS3CPP.mjs +50 -0
- package/dist/chunk-OBKS3CPP.mjs.map +1 -0
- package/dist/{chunk-NNQG25M2.mjs → chunk-OP42HO3Z.mjs} +3 -3
- package/dist/{chunk-NNQG25M2.mjs.map → chunk-OP42HO3Z.mjs.map} +1 -1
- package/dist/{chunk-UILVPI2R.js → chunk-OTCJRVFJ.js} +3 -3
- package/dist/{chunk-UILVPI2R.js.map → chunk-OTCJRVFJ.js.map} +1 -1
- package/dist/{chunk-ZYJYBE5G.js → chunk-OUZQL5PV.js} +4 -4
- package/dist/{chunk-ZYJYBE5G.js.map → chunk-OUZQL5PV.js.map} +1 -1
- package/dist/chunk-QWUDHOUE.js +8 -0
- package/dist/{chunk-F3EAAAZ3.js.map → chunk-QWUDHOUE.js.map} +1 -1
- package/dist/{chunk-LZPICBND.js → chunk-QYRJ4IQD.js} +80 -60
- package/dist/chunk-QYRJ4IQD.js.map +1 -0
- package/dist/{chunk-XLFTZV34.mjs → chunk-R2BHRDPZ.mjs} +3 -3
- package/dist/{chunk-XLFTZV34.mjs.map → chunk-R2BHRDPZ.mjs.map} +1 -1
- package/dist/{chunk-PKZMNDZJ.js → chunk-S24WZNFP.js} +5 -5
- package/dist/{chunk-PKZMNDZJ.js.map → chunk-S24WZNFP.js.map} +1 -1
- package/dist/{chunk-RX4TVHSN.mjs → chunk-U2DWXE2A.mjs} +3 -3
- package/dist/{chunk-RX4TVHSN.mjs.map → chunk-U2DWXE2A.mjs.map} +1 -1
- package/dist/{chunk-BIU234TJ.mjs → chunk-U3SQBAUQ.mjs} +8 -8
- package/dist/{chunk-BIU234TJ.mjs.map → chunk-U3SQBAUQ.mjs.map} +1 -1
- package/dist/{chunk-GJCQVVO3.mjs → chunk-U577PJLH.mjs} +7 -7
- package/dist/{chunk-GJCQVVO3.mjs.map → chunk-U577PJLH.mjs.map} +1 -1
- package/dist/{chunk-5ABTBPPK.js → chunk-VNJTU6LG.js} +15 -15
- package/dist/{chunk-5ABTBPPK.js.map → chunk-VNJTU6LG.js.map} +1 -1
- package/dist/{chunk-LCYODFNY.mjs → chunk-VNSV5SY7.mjs} +3 -3
- package/dist/{chunk-LCYODFNY.mjs.map → chunk-VNSV5SY7.mjs.map} +1 -1
- package/dist/{chunk-YTJKVWHY.mjs → chunk-VPZUQXZV.mjs} +4 -4
- package/dist/{chunk-YTJKVWHY.mjs.map → chunk-VPZUQXZV.mjs.map} +1 -1
- package/dist/{chunk-LFASEDBO.mjs → chunk-WVNUOUQI.mjs} +3 -3
- package/dist/{chunk-LFASEDBO.mjs.map → chunk-WVNUOUQI.mjs.map} +1 -1
- package/dist/{chunk-ULSFOC3J.js → chunk-WWJQGMMN.js} +12 -12
- package/dist/{chunk-ULSFOC3J.js.map → chunk-WWJQGMMN.js.map} +1 -1
- package/dist/{chunk-GCZHKHEH.js → chunk-Y4A4G5XJ.js} +5 -5
- package/dist/{chunk-GCZHKHEH.js.map → chunk-Y4A4G5XJ.js.map} +1 -1
- package/dist/{chunk-L63DFM4R.mjs → chunk-YCA4KCRF.mjs} +3 -3
- package/dist/{chunk-L63DFM4R.mjs.map → chunk-YCA4KCRF.mjs.map} +1 -1
- package/dist/{chunk-KUHMHKG5.mjs → chunk-YZMI7QQ2.mjs} +4 -4
- package/dist/{chunk-KUHMHKG5.mjs.map → chunk-YZMI7QQ2.mjs.map} +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.mjs +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/commerce/index.js +57 -57
- package/dist/commerce/index.mjs +5 -5
- package/dist/cta-bar/CtaBar.d.ts +74 -0
- package/dist/cta-bar/CtaBar.d.ts.map +1 -0
- package/dist/cta-bar/CtaBarBehavior.d.ts +46 -0
- package/dist/cta-bar/CtaBarBehavior.d.ts.map +1 -0
- package/dist/cta-bar/client.d.ts +46 -0
- package/dist/cta-bar/client.d.ts.map +1 -0
- package/dist/cta-bar/client.js +23 -0
- package/dist/cta-bar/client.js.map +1 -0
- package/dist/cta-bar/client.mjs +6 -0
- package/dist/cta-bar/client.mjs.map +1 -0
- package/dist/cta-bar/index.d.ts +12 -0
- package/dist/cta-bar/index.d.ts.map +1 -0
- package/dist/cta-bar/index.js +233 -0
- package/dist/cta-bar/index.js.map +1 -0
- package/dist/cta-bar/index.mjs +227 -0
- package/dist/cta-bar/index.mjs.map +1 -0
- package/dist/cta-bar/styles.d.ts +46 -0
- package/dist/cta-bar/styles.d.ts.map +1 -0
- package/dist/engage/ChatWidget.d.ts.map +1 -1
- package/dist/engage/EchoUiActions.d.ts.map +1 -1
- package/dist/engage/index.js +14 -13
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +8 -7
- package/dist/engage/index.mjs.map +1 -1
- package/dist/fleet/index.js +8 -8
- package/dist/fleet/index.mjs +4 -4
- package/dist/forms/index.js +22 -22
- package/dist/forms/index.mjs +9 -9
- package/dist/forms/server.js +10 -10
- package/dist/forms/server.mjs +8 -8
- package/dist/forms/static.js +7 -7
- package/dist/forms/static.mjs +6 -6
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +63 -63
- package/dist/index.mjs +9 -9
- package/dist/layout/client.js +8 -8
- package/dist/layout/client.mjs +7 -7
- package/dist/layout/index.js +10 -10
- package/dist/layout/index.mjs +8 -8
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/search/index.js +4 -4
- package/dist/search/index.mjs +3 -3
- package/dist/seo/client.js +5 -5
- package/dist/seo/client.mjs +4 -4
- package/dist/seo/index.js +5 -5
- package/dist/seo/index.mjs +4 -4
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/shared/build-entries.d.ts +4 -1
- package/dist/shared/build-entries.d.ts.map +1 -1
- package/dist/shared/glass.d.ts +51 -0
- package/dist/shared/glass.d.ts.map +1 -0
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sync/index.js +17 -17
- package/dist/sync/index.mjs +4 -4
- package/package.json +6 -1
- package/skills/site-kit/SKILL.md +7 -0
- package/dist/ChatWidget-56SW5ITH.mjs +0 -15
- package/dist/ChatWidget-HR3OC3WA.js +0 -24
- package/dist/EngageWidget-HXGI3ZKG.js +0 -21
- package/dist/EngageWidget-L4X35N2B.mjs +0 -12
- package/dist/ManagedForm-3TDSIRCM.mjs +0 -16
- package/dist/ManagedForm-TUSGW5EH.js +0 -25
- package/dist/SitemapSync-42VKJUOU.mjs +0 -9
- package/dist/SitemapSync-GAGREAX6.js +0 -18
- package/dist/chunk-7MAHP735.mjs +0 -6
- package/dist/chunk-F3EAAAZ3.js +0 -8
- package/dist/chunk-LZPICBND.js.map +0 -1
- package/dist/chunk-NYNL6UQV.mjs.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { chatLauncherStyles } from './chunk-4U5NCKQY.mjs';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { GlassStyles } from './chunk-OBKS3CPP.mjs';
|
|
4
|
+
import { useForm } from './chunk-YZMI7QQ2.mjs';
|
|
5
|
+
import { sonorFetch } from './chunk-6ZMEJSNX.mjs';
|
|
5
6
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
6
7
|
import ReactMarkdown from 'react-markdown';
|
|
7
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -60,7 +61,9 @@ function InlineManagedForm({ slug, prefill, primaryColor, primaryRgb }) {
|
|
|
60
61
|
borderColor: "var(--sk-border, #e5e7eb)",
|
|
61
62
|
backgroundColor: "var(--sk-bg, #ffffff)",
|
|
62
63
|
color: "var(--sk-text-primary, #111827)",
|
|
63
|
-
|
|
64
|
+
// 16px, not smaller: iOS Safari zooms the whole page into any focused
|
|
65
|
+
// field under 16px, which throws the visitor out of the chat window.
|
|
66
|
+
fontSize: 16,
|
|
64
67
|
boxSizing: "border-box",
|
|
65
68
|
outline: "none"
|
|
66
69
|
};
|
|
@@ -295,13 +298,17 @@ function userRequestedHandoff(text) {
|
|
|
295
298
|
];
|
|
296
299
|
return patterns.some((p) => p.test(lower));
|
|
297
300
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
301
|
+
var BUBBLE_BG = "color-mix(in srgb, var(--sk-bg, #ffffff) 94%, transparent)";
|
|
302
|
+
var HAIRLINE = "1px solid color-mix(in srgb, var(--sk-text-primary, #111827) 9%, transparent)";
|
|
303
|
+
var ECHO_STYLE_HREF = "sk-echo";
|
|
304
|
+
var ECHO_CSS = `
|
|
305
|
+
@media print {
|
|
306
|
+
[data-sk-echo-launcher], [data-sk-echo-panel] { display: none !important; }
|
|
307
|
+
}
|
|
308
|
+
@media (prefers-reduced-motion: reduce) {
|
|
309
|
+
[data-sk-echo-panel] { animation: none !important; }
|
|
304
310
|
}
|
|
311
|
+
`;
|
|
305
312
|
function isLightColor(hex) {
|
|
306
313
|
const num = parseInt(hex.replace("#", ""), 16);
|
|
307
314
|
const r = num >> 16;
|
|
@@ -1059,11 +1066,13 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1059
1066
|
if (availability && availability.agentsOnline > 0) return { dot: "#22c55e", text: "Online" };
|
|
1060
1067
|
return { dot: "var(--sk-text-tertiary, #9ca3af)", text: "We'll respond soon" };
|
|
1061
1068
|
})();
|
|
1069
|
+
const launcherIcon = isLightColor(primaryColor) ? "#1a1a1a" : "white";
|
|
1062
1070
|
const ChatButton = /* @__PURE__ */ jsx(
|
|
1063
1071
|
"button",
|
|
1064
1072
|
{
|
|
1065
1073
|
type: "button",
|
|
1066
1074
|
"data-sk-echo-launcher": true,
|
|
1075
|
+
className: "sk-glass sk-glass--brand",
|
|
1067
1076
|
onClick: handleToggle,
|
|
1068
1077
|
"aria-label": isOpen ? "Close chat" : "Open chat",
|
|
1069
1078
|
style: {
|
|
@@ -1072,37 +1081,34 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1072
1081
|
width: "60px",
|
|
1073
1082
|
height: "60px",
|
|
1074
1083
|
borderRadius: "50%",
|
|
1075
|
-
|
|
1076
|
-
border: "none",
|
|
1084
|
+
["--sk-glass-brand"]: primaryColor,
|
|
1077
1085
|
display: "flex",
|
|
1078
1086
|
alignItems: "center",
|
|
1079
1087
|
justifyContent: "center",
|
|
1080
1088
|
cursor: "pointer",
|
|
1081
|
-
|
|
1082
|
-
transition: "transform 0.2s, box-shadow 0.2s",
|
|
1089
|
+
transition: "transform 0.2s, bottom 0.35s cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
1083
1090
|
zIndex: placement.zIndex.launcher
|
|
1084
1091
|
},
|
|
1085
1092
|
onMouseEnter: (e) => {
|
|
1086
1093
|
e.currentTarget.style.transform = "scale(1.05)";
|
|
1087
|
-
e.currentTarget.style.boxShadow = "0 6px 16px rgba(0, 0, 0, 0.3)";
|
|
1088
1094
|
},
|
|
1089
1095
|
onMouseLeave: (e) => {
|
|
1090
1096
|
e.currentTarget.style.transform = "scale(1)";
|
|
1091
|
-
e.currentTarget.style.boxShadow = "0 4px 12px rgba(0, 0, 0, 0.25)";
|
|
1092
1097
|
},
|
|
1093
|
-
children: isOpen ? /* @__PURE__ */ jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1098
|
+
children: isOpen ? /* @__PURE__ */ jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: launcherIcon, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
1094
1099
|
/* @__PURE__ */ jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
1095
1100
|
/* @__PURE__ */ jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
1096
|
-
] }) : /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1101
|
+
] }) : /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", stroke: launcherIcon, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) })
|
|
1097
1102
|
}
|
|
1098
1103
|
);
|
|
1099
1104
|
const Header = /* @__PURE__ */ jsxs(
|
|
1100
1105
|
"div",
|
|
1101
1106
|
{
|
|
1102
1107
|
style: {
|
|
1103
|
-
padding: "16px
|
|
1104
|
-
background: `linear-gradient(
|
|
1105
|
-
|
|
1108
|
+
padding: "16px 18px 14px",
|
|
1109
|
+
background: `linear-gradient(180deg, color-mix(in srgb, ${primaryColor} 16%, transparent), transparent)`,
|
|
1110
|
+
borderBottom: "1px solid color-mix(in srgb, var(--sk-text-primary, #111827) 8%, transparent)",
|
|
1111
|
+
color: "var(--sk-text-primary, #111827)",
|
|
1106
1112
|
display: "flex",
|
|
1107
1113
|
alignItems: "center",
|
|
1108
1114
|
gap: 12
|
|
@@ -1115,7 +1121,9 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1115
1121
|
width: 40,
|
|
1116
1122
|
height: 40,
|
|
1117
1123
|
borderRadius: "50%",
|
|
1118
|
-
backgroundColor:
|
|
1124
|
+
backgroundColor: primaryColor,
|
|
1125
|
+
color: launcherIcon,
|
|
1126
|
+
boxShadow: "inset 0 1px 0 color-mix(in srgb, #ffffff 30%, transparent), 0 2px 6px rgba(0, 0, 0, 0.12)",
|
|
1119
1127
|
display: "flex",
|
|
1120
1128
|
alignItems: "center",
|
|
1121
1129
|
justifyContent: "center",
|
|
@@ -1127,12 +1135,12 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1127
1135
|
),
|
|
1128
1136
|
/* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1129
1137
|
/* @__PURE__ */ jsx("div", { style: { fontWeight: 600, fontSize: 16, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: showOfflineForm ? offlineHeading : businessName }),
|
|
1130
|
-
statusLabel && /* @__PURE__ */ jsxs("div", { style: { fontSize: 13,
|
|
1138
|
+
statusLabel && /* @__PURE__ */ jsxs("div", { style: { fontSize: 13, color: "var(--sk-text-secondary, #6b7280)", display: "flex", alignItems: "center", gap: 6, marginTop: 2 }, children: [
|
|
1131
1139
|
statusLabel.dot && /* @__PURE__ */ jsx("span", { style: { width: 8, height: 8, borderRadius: "50%", backgroundColor: statusLabel.dot, flexShrink: 0 } }),
|
|
1132
1140
|
statusLabel.text
|
|
1133
1141
|
] })
|
|
1134
1142
|
] }),
|
|
1135
|
-
connectionStatus === "connecting" && !showWelcome && !showOfflineForm && /* @__PURE__ */ jsxs("div", { style: { fontSize: 11,
|
|
1143
|
+
connectionStatus === "connecting" && !showWelcome && !showOfflineForm && /* @__PURE__ */ jsxs("div", { style: { fontSize: 11, color: "var(--sk-text-secondary, #6b7280)", display: "flex", alignItems: "center", gap: 4 }, children: [
|
|
1136
1144
|
/* @__PURE__ */ jsx("span", { style: { animation: "chatDot 1s infinite ease-in-out" }, children: "\u25CF" }),
|
|
1137
1145
|
"Connecting"
|
|
1138
1146
|
] })
|
|
@@ -1213,7 +1221,7 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1213
1221
|
value: offlineForm[field.name],
|
|
1214
1222
|
onChange: (e) => setOfflineForm((prev) => ({ ...prev, [field.name]: e.target.value })),
|
|
1215
1223
|
required: field.required,
|
|
1216
|
-
style: { width: "100%", padding: "10px 12px", borderRadius: 8, border: "1px solid var(--sk-border, #e5e7eb)", fontSize:
|
|
1224
|
+
style: { width: "100%", padding: "10px 12px", borderRadius: 8, border: "1px solid var(--sk-border, #e5e7eb)", fontSize: 16, outline: "none", boxSizing: "border-box" },
|
|
1217
1225
|
onFocus: (e) => e.currentTarget.style.borderColor = primaryColor,
|
|
1218
1226
|
onBlur: (e) => e.currentTarget.style.borderColor = "var(--sk-border, #e5e7eb)"
|
|
1219
1227
|
}
|
|
@@ -1226,7 +1234,7 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1226
1234
|
onChange: (e) => setOfflineForm((prev) => ({ ...prev, message: e.target.value })),
|
|
1227
1235
|
required: true,
|
|
1228
1236
|
rows: 4,
|
|
1229
|
-
style: { width: "100%", padding: "10px 12px", borderRadius: 8, border: "1px solid var(--sk-border, #e5e7eb)", fontSize:
|
|
1237
|
+
style: { width: "100%", padding: "10px 12px", borderRadius: 8, border: "1px solid var(--sk-border, #e5e7eb)", fontSize: 16, outline: "none", resize: "vertical", boxSizing: "border-box" },
|
|
1230
1238
|
onFocus: (e) => e.currentTarget.style.borderColor = primaryColor,
|
|
1231
1239
|
onBlur: (e) => e.currentTarget.style.borderColor = "var(--sk-border, #e5e7eb)"
|
|
1232
1240
|
}
|
|
@@ -1326,7 +1334,7 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1326
1334
|
/* @__PURE__ */ jsxs(
|
|
1327
1335
|
"div",
|
|
1328
1336
|
{
|
|
1329
|
-
style: { flex: 1, overflowY: "auto", padding: 16, display: "flex", flexDirection: "column", gap: 12, backgroundColor: "
|
|
1337
|
+
style: { flex: 1, overflowY: "auto", padding: 16, display: "flex", flexDirection: "column", gap: 12, backgroundColor: "transparent" },
|
|
1330
1338
|
children: [
|
|
1331
1339
|
messages.map((message) => {
|
|
1332
1340
|
const isAssistant = message.role === "assistant" || message.role === "agent";
|
|
@@ -1336,17 +1344,19 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1336
1344
|
style: {
|
|
1337
1345
|
maxWidth: "80%",
|
|
1338
1346
|
padding: message.role === "system" ? "8px 12px" : isAssistant ? "12px 16px" : "10px 14px",
|
|
1339
|
-
borderRadius: message.role === "user" ? "
|
|
1340
|
-
|
|
1347
|
+
borderRadius: message.role === "user" ? "18px 18px 6px 18px" : message.role === "system" ? "10px" : "18px 18px 18px 6px",
|
|
1348
|
+
// Bubbles on glass stay near-opaque: the glass behind them
|
|
1349
|
+
// is for depth, never for the text to read against.
|
|
1350
|
+
backgroundColor: message.role === "user" ? primaryColor : message.role === "system" ? "color-mix(in srgb, var(--sk-text-primary, #111827) 7%, transparent)" : BUBBLE_BG,
|
|
1341
1351
|
color: message.role === "user" ? isLightColor(primaryColor) ? "#1a1a1a" : "white" : message.role === "system" ? "var(--sk-text-secondary, #6b7280)" : "var(--sk-text-primary, #111827)",
|
|
1342
|
-
|
|
1352
|
+
border: message.role === "user" || message.role === "system" ? "none" : HAIRLINE,
|
|
1353
|
+
boxShadow: message.role === "system" ? "none" : message.role === "user" ? "inset 0 1px 0 color-mix(in srgb, #ffffff 22%, transparent), 0 1px 2px rgba(0,0,0,0.10)" : "0 1px 2px rgba(0,0,0,0.06)",
|
|
1343
1354
|
fontSize: message.role === "system" ? 13 : 14,
|
|
1344
1355
|
fontStyle: message.role === "system" ? "italic" : "normal",
|
|
1345
1356
|
lineHeight: isAssistant ? 1.6 : 1.5,
|
|
1346
1357
|
whiteSpace: isAssistant ? "normal" : "pre-wrap",
|
|
1347
1358
|
wordBreak: "break-word",
|
|
1348
|
-
textAlign: isAssistant ? "left" : void 0
|
|
1349
|
-
borderLeft: isAssistant ? `3px solid ${hexAlpha("--sk-primary-rgb", 0.2, primaryRgb)}` : void 0
|
|
1359
|
+
textAlign: isAssistant ? "left" : void 0
|
|
1350
1360
|
},
|
|
1351
1361
|
children: [
|
|
1352
1362
|
message.agentName && message.role === "agent" && /* @__PURE__ */ jsx("div", { style: { fontSize: 12, opacity: 0.6, marginBottom: 4 }, children: message.agentName }),
|
|
@@ -1473,9 +1483,10 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1473
1483
|
{
|
|
1474
1484
|
style: {
|
|
1475
1485
|
padding: "10px 14px",
|
|
1476
|
-
borderRadius: "
|
|
1477
|
-
backgroundColor:
|
|
1478
|
-
|
|
1486
|
+
borderRadius: "18px 18px 18px 6px",
|
|
1487
|
+
backgroundColor: BUBBLE_BG,
|
|
1488
|
+
border: HAIRLINE,
|
|
1489
|
+
boxShadow: "0 1px 2px rgba(0,0,0,0.06)",
|
|
1479
1490
|
display: "flex",
|
|
1480
1491
|
gap: 4,
|
|
1481
1492
|
color: "var(--sk-text-tertiary, #9ca3af)"
|
|
@@ -1495,7 +1506,7 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1495
1506
|
/* @__PURE__ */ jsx("span", { style: { fontSize: 13, color: "var(--sk-error, #dc2626)" }, children: "Failed to send" }),
|
|
1496
1507
|
/* @__PURE__ */ jsx("button", { type: "button", onClick: retryFailedSend, style: { padding: "4px 10px", borderRadius: 6, border: "1px solid var(--sk-error, #dc2626)", background: "var(--sk-bg, #fff)", color: "var(--sk-error, #dc2626)", fontSize: 12, cursor: "pointer" }, children: "Retry" })
|
|
1497
1508
|
] }),
|
|
1498
|
-
/* @__PURE__ */ jsx("form", { onSubmit: handleSubmit, style: { padding:
|
|
1509
|
+
/* @__PURE__ */ jsx("form", { onSubmit: handleSubmit, style: { padding: "10px 12px 12px", backgroundColor: "transparent" }, children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [
|
|
1499
1510
|
/* @__PURE__ */ jsx(
|
|
1500
1511
|
"input",
|
|
1501
1512
|
{
|
|
@@ -1511,15 +1522,20 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1511
1522
|
disabled: isLoading,
|
|
1512
1523
|
style: {
|
|
1513
1524
|
flex: 1,
|
|
1514
|
-
|
|
1525
|
+
minWidth: 0,
|
|
1526
|
+
padding: "10px 16px",
|
|
1515
1527
|
borderRadius: 24,
|
|
1516
|
-
border:
|
|
1517
|
-
|
|
1528
|
+
border: HAIRLINE,
|
|
1529
|
+
backgroundColor: BUBBLE_BG,
|
|
1530
|
+
color: "var(--sk-text-primary, #111827)",
|
|
1531
|
+
// 16px: iOS Safari zooms the page into any focused field under 16px.
|
|
1532
|
+
fontSize: 16,
|
|
1518
1533
|
outline: "none",
|
|
1534
|
+
boxShadow: "inset 0 1px 2px rgba(0,0,0,0.04)",
|
|
1519
1535
|
transition: "border-color 0.2s"
|
|
1520
1536
|
},
|
|
1521
1537
|
onFocus: (e) => e.currentTarget.style.borderColor = primaryColor,
|
|
1522
|
-
onBlur: (e) => e.currentTarget.style.borderColor = "
|
|
1538
|
+
onBlur: (e) => e.currentTarget.style.borderColor = ""
|
|
1523
1539
|
}
|
|
1524
1540
|
),
|
|
1525
1541
|
/* @__PURE__ */ jsx(
|
|
@@ -1549,33 +1565,35 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1549
1565
|
const ChatPopup = isOpen && /* @__PURE__ */ jsxs(
|
|
1550
1566
|
"div",
|
|
1551
1567
|
{
|
|
1568
|
+
"data-sk-echo-panel": true,
|
|
1569
|
+
className: "sk-glass sk-glass--panel",
|
|
1552
1570
|
style: {
|
|
1553
1571
|
position: "fixed",
|
|
1554
1572
|
...placement.popup,
|
|
1555
1573
|
width: "380px",
|
|
1556
1574
|
maxWidth: "calc(100vw - 40px)",
|
|
1557
1575
|
height: "520px",
|
|
1558
|
-
|
|
1559
|
-
borderRadius: "
|
|
1560
|
-
boxShadow: "0 8px 32px rgba(0, 0, 0, 0.2)",
|
|
1576
|
+
color: "var(--sk-text-primary, #111827)",
|
|
1577
|
+
borderRadius: "24px",
|
|
1561
1578
|
display: "flex",
|
|
1562
1579
|
flexDirection: "column",
|
|
1563
1580
|
overflow: "hidden",
|
|
1564
1581
|
zIndex: placement.zIndex.popup,
|
|
1565
|
-
|
|
1582
|
+
transformOrigin: position === "bottom-left" ? "bottom left" : "bottom right",
|
|
1583
|
+
animation: "chatGlassIn 0.34s cubic-bezier(0.2, 0.9, 0.3, 1.05)"
|
|
1566
1584
|
},
|
|
1567
1585
|
children: [
|
|
1568
1586
|
Header,
|
|
1569
1587
|
checkingAvailability || checkingHandoff ? CheckingScreen : showOfflineForm ? OfflineFormView : showWelcome && welcomeEnabled && messages.length === 0 ? WelcomeScreen : MessagesView,
|
|
1570
|
-
showPoweredBy && /* @__PURE__ */ jsxs("div", { style: { padding: "
|
|
1588
|
+
showPoweredBy && /* @__PURE__ */ jsxs("div", { style: { padding: "0 0 8px", textAlign: "center", fontSize: 11, color: "var(--sk-text-tertiary, #9ca3af)", backgroundColor: "transparent" }, children: [
|
|
1571
1589
|
"Powered by",
|
|
1572
1590
|
" ",
|
|
1573
1591
|
/* @__PURE__ */ jsx("a", { href: "https://sonor.io", target: "_blank", rel: "noopener noreferrer", style: { color: "var(--sk-text-secondary, #6b7280)", textDecoration: "none", fontWeight: 500 }, children: "Sonor" })
|
|
1574
1592
|
] }),
|
|
1575
1593
|
/* @__PURE__ */ jsx("style", { children: `
|
|
1576
|
-
@keyframes
|
|
1577
|
-
from { opacity: 0; transform: translateY(
|
|
1578
|
-
to { opacity: 1; transform: translateY(0); }
|
|
1594
|
+
@keyframes chatGlassIn {
|
|
1595
|
+
from { opacity: 0; transform: translateY(12px) scale(0.94); }
|
|
1596
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
1579
1597
|
}
|
|
1580
1598
|
@keyframes chatDot {
|
|
1581
1599
|
0%, 80%, 100% { opacity: 0.3; }
|
|
@@ -1602,11 +1620,13 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
|
|
|
1602
1620
|
}
|
|
1603
1621
|
);
|
|
1604
1622
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1623
|
+
/* @__PURE__ */ jsx(GlassStyles, {}),
|
|
1624
|
+
/* @__PURE__ */ jsx("style", { href: ECHO_STYLE_HREF, precedence: "default", children: ECHO_CSS }),
|
|
1605
1625
|
ChatPopup,
|
|
1606
1626
|
ChatButton
|
|
1607
1627
|
] });
|
|
1608
1628
|
}
|
|
1609
1629
|
|
|
1610
1630
|
export { ChatWidget };
|
|
1611
|
-
//# sourceMappingURL=chunk-
|
|
1612
|
-
//# sourceMappingURL=chunk-
|
|
1631
|
+
//# sourceMappingURL=chunk-3SHAY7PK.mjs.map
|
|
1632
|
+
//# sourceMappingURL=chunk-3SHAY7PK.mjs.map
|