@wexio/messenger-widget-react 1.0.0
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/LICENSE +21 -0
- package/README.md +133 -0
- package/dist/widget-react-AgErOR36.js +325 -0
- package/dist/widget-react-AgErOR36.js.map +1 -0
- package/dist/widget-react-BAOIDvhV.js +4250 -0
- package/dist/widget-react-BAOIDvhV.js.map +1 -0
- package/dist/widget-react-BfPdgAQ-.js +5767 -0
- package/dist/widget-react-BfPdgAQ-.js.map +1 -0
- package/dist/widget-react-BxvW64LH.js +4429 -0
- package/dist/widget-react-BxvW64LH.js.map +1 -0
- package/dist/widget-react-C5COLy3m.js +23847 -0
- package/dist/widget-react-C5COLy3m.js.map +1 -0
- package/dist/widget-react-CAWxn8I0.js +247 -0
- package/dist/widget-react-CAWxn8I0.js.map +1 -0
- package/dist/widget-react-CDPzwV1i.js +11685 -0
- package/dist/widget-react-CDPzwV1i.js.map +1 -0
- package/dist/widget-react-CPYwD6FR.js +498 -0
- package/dist/widget-react-CPYwD6FR.js.map +1 -0
- package/dist/widget-react-CUBFPjaV.js +23 -0
- package/dist/widget-react-CUBFPjaV.js.map +1 -0
- package/dist/widget-react-CUuKGDZN.js +355 -0
- package/dist/widget-react-CUuKGDZN.js.map +1 -0
- package/dist/widget-react-CZs0xRrr.js +1336 -0
- package/dist/widget-react-CZs0xRrr.js.map +1 -0
- package/dist/widget-react-Cj_zbk_F.js +325 -0
- package/dist/widget-react-Cj_zbk_F.js.map +1 -0
- package/dist/widget-react-D-QrEVpv.js +125 -0
- package/dist/widget-react-D-QrEVpv.js.map +1 -0
- package/dist/widget-react-D8TPnM9r.js +26 -0
- package/dist/widget-react-D8TPnM9r.js.map +1 -0
- package/dist/widget-react-DE7AVrCo.js +5737 -0
- package/dist/widget-react-DE7AVrCo.js.map +1 -0
- package/dist/widget-react-DOX6j7_Q.js +30 -0
- package/dist/widget-react-DOX6j7_Q.js.map +1 -0
- package/dist/widget-react-DSw03RG7.js +262 -0
- package/dist/widget-react-DSw03RG7.js.map +1 -0
- package/dist/widget-react-Dew7YaLU.js +16 -0
- package/dist/widget-react-Dew7YaLU.js.map +1 -0
- package/dist/widget-react-DtOeNw5z.js +325 -0
- package/dist/widget-react-DtOeNw5z.js.map +1 -0
- package/dist/widget-react-DwL_rsx_.js +630 -0
- package/dist/widget-react-DwL_rsx_.js.map +1 -0
- package/dist/widget-react.d.ts +301 -0
- package/dist/widget-react.js +22285 -0
- package/dist/widget-react.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import "react-dom";
|
|
3
|
+
import "react/jsx-runtime";
|
|
4
|
+
import "react-dom/client";
|
|
5
|
+
import { t as e } from "./widget-react-BxvW64LH.js";
|
|
6
|
+
var t = e("loader-circle", [["path", {
|
|
7
|
+
d: "M21 12a9 9 0 1 1-6.219-8.56",
|
|
8
|
+
key: "13zald"
|
|
9
|
+
}]]), n = e("pause", [["rect", {
|
|
10
|
+
x: "14",
|
|
11
|
+
y: "3",
|
|
12
|
+
width: "5",
|
|
13
|
+
height: "18",
|
|
14
|
+
rx: "1",
|
|
15
|
+
key: "kaeet6"
|
|
16
|
+
}], ["rect", {
|
|
17
|
+
x: "5",
|
|
18
|
+
y: "3",
|
|
19
|
+
width: "5",
|
|
20
|
+
height: "18",
|
|
21
|
+
rx: "1",
|
|
22
|
+
key: "1wsw3u"
|
|
23
|
+
}]]), r = e("play", [["path", {
|
|
24
|
+
d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
|
|
25
|
+
key: "10ikf1"
|
|
26
|
+
}]]);
|
|
27
|
+
//#endregion
|
|
28
|
+
export { n, t as r, r as t };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=widget-react-DOX6j7_Q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-react-DOX6j7_Q.js","names":["__iconNode","__iconNode"],"sources":["../node_modules/lucide-react/dist/esm/icons/loader-circle.mjs","../node_modules/lucide-react/dist/esm/icons/pause.mjs","../node_modules/lucide-react/dist/esm/icons/play.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.14.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.mjs.map\n","/**\n * @license lucide-react v1.14.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { x: \"14\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"kaeet6\" }],\n [\"rect\", { x: \"5\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"1wsw3u\" }]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode);\n\nexport { __iconNode, Pause as default };\n//# sourceMappingURL=pause.mjs.map\n","/**\n * @license lucide-react v1.14.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.mjs.map\n"],"x_google_ignoreList":[0,1,2],"mappings":";;;;;AAUA,IAAM,IAAe,EAAiB,iBAAiBA,CADnC,CAAC,QAAQ;CAAE,GAAG;CAA+B,KAAK;CAAU,CAAC,CAC1BA,CAAW,ECG5D,IAAQ,EAAiB,SAASC,CAHtC,CAAC,QAAQ;CAAE,GAAG;CAAM,GAAG;CAAK,OAAO;CAAK,QAAQ;CAAM,IAAI;CAAK,KAAK;CAAU,CAAC,EAC/E,CAAC,QAAQ;CAAE,GAAG;CAAK,GAAG;CAAK,OAAO;CAAK,QAAQ;CAAM,IAAI;CAAK,KAAK;CAAU,CAAC,CAExCA,CAAW,ECK7C,IAAO,EAAiB,QAAQ,CARpC,CACE,QACA;CACE,GAAG;CACH,KAAK;CACN,CACF,CAEmC,CAAW"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import "react-dom";
|
|
3
|
+
import "react/jsx-runtime";
|
|
4
|
+
import "react-dom/client";
|
|
5
|
+
import { x as e } from "./widget-react-DE7AVrCo.js";
|
|
6
|
+
//#region messages/demo.en.json
|
|
7
|
+
var t = /* @__PURE__ */ e({
|
|
8
|
+
conversation: () => a,
|
|
9
|
+
default: () => s,
|
|
10
|
+
help: () => i,
|
|
11
|
+
messenger: () => o,
|
|
12
|
+
news: () => r,
|
|
13
|
+
recentMessage: () => n
|
|
14
|
+
}), n = {
|
|
15
|
+
sender: "Gaia",
|
|
16
|
+
preview: "Hi there π Thanks for reaching out. I'll get back to you shortlyβ¦",
|
|
17
|
+
ageLabel: "4h"
|
|
18
|
+
}, r = {
|
|
19
|
+
"demo-news-1": {
|
|
20
|
+
title: "Pioneer 2026: save the date",
|
|
21
|
+
excerpt: "We're back in San Francisco on October 8. Doors at 9, keynote at 10.",
|
|
22
|
+
body: "## What to expect\n\nThis year's keynote is all about what we shipped in the open and what's coming next. Live demos, not slides.\n\n- **The Gaia roadmap** - where our AI is headed over the next two quarters.\n- **Customer stories** - three teams share how they halved first-response time.\n- **Hands-on labs** - bring a laptop and build a flow with our engineers.\n\n## Getting there\n\nThe venue is the Pier 27 Cruise Terminal, right on the Embarcadero. Closest BART stop is Embarcadero, a 12-minute walk along the water.\n\n## Tickets\n\nEarly-bird seats are limited and go live next week. Existing customers get first dibs, so keep an eye on your inbox.\n\n> Can't make it in person? The keynote streams live and the recordings land here the same evening."
|
|
23
|
+
},
|
|
24
|
+
"demo-news-2": {
|
|
25
|
+
title: "What shipped in April",
|
|
26
|
+
excerpt: "Three new automation triggers and a much faster inbox search.",
|
|
27
|
+
body: "<p>April was a big month. Here's everything that shipped, at a glance:</p>\n<table>\n<thead><tr><th>Area</th><th>What changed</th><th>Why it matters</th></tr></thead>\n<tbody>\n<tr><td>Inbox search</td><td>Instant, as-you-type results</td><td>50k conversations, under 100ms</td></tr>\n<tr><td>Automation</td><td>Three new triggers</td><td>Cart abandoned, page revisited, quiet visitor</td></tr>\n<tr><td>Composer</td><td>Draft survives a tab switch</td><td>No more lost half-typed replies</td></tr>\n<tr><td>Dark mode</td><td>No white flash on first paint</td><td>Cleaner load on dark sites</td></tr>\n</tbody>\n</table>\n<p>Here's the new search in action - results land before you finish typing:</p>\n<img src=\"https://picsum.photos/seed/wexio-search/1024/576\" alt=\"Inbox search returning results instantly\" />\n<p>Tap the image to take a closer look. Got a request? Reply here - we read every one.</p>"
|
|
28
|
+
},
|
|
29
|
+
"demo-news-3": {
|
|
30
|
+
title: "Gaia now speaks 28 languages",
|
|
31
|
+
excerpt: "Auto-detect the visitor's language or pin one. No extra setup.",
|
|
32
|
+
body: "<p>Gaia now replies in 28 languages, detected automatically from the visitor's first message. The questions we hear most:</p>\n<details><summary>How does language detection work?</summary><p>Gaia reads the opening message and replies in the same language. If your help articles exist in that language it cites them; otherwise it answers from the closest match and flags the gap to you.</p></details>\n<details><summary>Can I force a single language?</summary><p>Yes. Pin one in <strong>Settings β AI β Language</strong> and Gaia sticks to it no matter what the visitor types.</p></details>\n<details><summary>What do operators see?</summary><p>Transcripts stay in your team's language, with the original message kept alongside the translation.</p></details>\n<p>A quick look at Gaia switching languages mid-thread:</p>\n<img src=\"https://picsum.photos/seed/wexio-lang/1024/576\" alt=\"Gaia replying across several languages\" />"
|
|
33
|
+
},
|
|
34
|
+
"demo-news-4": {
|
|
35
|
+
title: "Pipe conversations straight into Slack",
|
|
36
|
+
excerpt: "Connect any incoming webhook to a Slack channel. No glue code.",
|
|
37
|
+
body: "## Connect in two clicks\n\nHead to **Integrations β Slack**, hit *Connect*, and approve the scopes. Pick the channel new conversations should land in - most teams use `#support`.\n\n## What you get\n\n- A Slack message the moment a chat starts, with a link back to the inbox.\n- Operator replies threaded under the original message.\n- Reply right from Slack and we post it back to the visitor in real time.\n\n## Webhooks too\n\nAlready pushing events from your own systems? Point any webhook at your Slack channel and skip the custom integration entirely."
|
|
38
|
+
},
|
|
39
|
+
"demo-news-5": {
|
|
40
|
+
title: "Inbox 2.0: triage without the mouse",
|
|
41
|
+
excerpt: "New shortcuts for assigning, snoozing, and resolving - all from the keyboard.",
|
|
42
|
+
body: "<p>Inbox 2.0 is keyboard-first. Here's the cheat sheet, grouped by what you're doing:</p>\n<div data-type=\"tabs\">\n<div data-type=\"tab\"><div data-tab-label>Navigate</div><ul><li><code>j</code> / <code>k</code> - next / previous conversation</li><li><code>g</code> then <code>i</code> - jump to the inbox</li></ul></div>\n<div data-type=\"tab\"><div data-tab-label>Act</div><ul><li><code>e</code> - resolve</li><li><code>a</code> - assign to me</li><li><code>s</code> - snooze</li></ul></div>\n<div data-type=\"tab\"><div data-tab-label>Compose</div><ul><li><code>Cmd+Enter</code> - send</li><li><code>/</code> - saved replies</li><li><code>Cmd+K</code> - command palette</li></ul></div>\n</div>\n<p>The redesigned inbox - everything within a key's reach:</p>\n<img src=\"https://picsum.photos/seed/wexio-inbox/1024/576\" alt=\"The redesigned keyboard-first inbox\" />"
|
|
43
|
+
},
|
|
44
|
+
"demo-news-6": {
|
|
45
|
+
title: "Self-serve data exports and deletion",
|
|
46
|
+
excerpt: "Handle visitor data requests in a click. GDPR-ready out of the box.",
|
|
47
|
+
body: "## Export\n\nFrom any visitor's profile, hit **Export data** to generate a JSON bundle of every message, event, and attribute we hold for them. It downloads instantly and logs the request for your records.\n\n## Delete\n\n**Delete data** removes the visitor and scrubs their messages from the inbox, search, and any connected CRM through the same webhook bridge. The action is logged and irreversible.\n\n## For your DPO\n\n- Every export and deletion is timestamped and attributed.\n- Retention windows are configurable per workspace.\n- A data-processing agreement is available on request."
|
|
48
|
+
},
|
|
49
|
+
"demo-news-7": {
|
|
50
|
+
title: "Mobile SDK beta: iOS and Android",
|
|
51
|
+
excerpt: "Bring the same conversation into your native app. Beta seats open now.",
|
|
52
|
+
body: "## One conversation, every surface\n\nA visitor who starts a chat on your website can pick it up in your app, signed in, with full history. Same Gaia, same operators, same inbox.\n\n## What's in the beta\n\n- Native launcher for SwiftUI and Jetpack Compose.\n- Push notifications for new replies.\n- Offline queue, so messages send when the connection comes back.\n\n## Join\n\nWe're onboarding a handful of teams each week. Reply here with your platform and rough monthly active users and we'll send you a key.\n\n> Beta means rough edges. We ship fixes weekly and read every bug report."
|
|
53
|
+
},
|
|
54
|
+
"demo-news-8": {
|
|
55
|
+
title: "See which AI answers actually worked",
|
|
56
|
+
excerpt: "Track whether each Gaia reply led to a resolution, a handoff, or a bounce.",
|
|
57
|
+
body: "## The new view\n\n**Analytics β AI outcomes** breaks down every Gaia reply by what happened next:\n\n- **Resolved** - the visitor got what they needed and left happy.\n- **Handed off** - Gaia passed the conversation to a human.\n- **Bounced** - the visitor closed the widget without resolving.\n\n## Per-article insight\n\nDrill into any help article to see how often Gaia cites it and whether those citations resolve. Low resolution on a high-traffic article usually means the content needs a rewrite, not the AI.\n\n## Act on it\n\nSort by bounce rate to find the questions Gaia struggles with most, then add a flow or a sharper article to close the gap."
|
|
58
|
+
},
|
|
59
|
+
tags: {
|
|
60
|
+
events: "Events",
|
|
61
|
+
product: "Product",
|
|
62
|
+
release: "Release",
|
|
63
|
+
ai: "AI",
|
|
64
|
+
languages: "Languages",
|
|
65
|
+
integrations: "Integrations",
|
|
66
|
+
slack: "Slack",
|
|
67
|
+
inbox: "Inbox",
|
|
68
|
+
privacy: "Privacy",
|
|
69
|
+
security: "Security",
|
|
70
|
+
mobile: "Mobile",
|
|
71
|
+
beta: "Beta",
|
|
72
|
+
analytics: "Analytics"
|
|
73
|
+
},
|
|
74
|
+
categories: {
|
|
75
|
+
company: "Company",
|
|
76
|
+
product: "Product",
|
|
77
|
+
engineering: "Engineering"
|
|
78
|
+
}
|
|
79
|
+
}, i = {
|
|
80
|
+
categories: {
|
|
81
|
+
"demo-cat-getting-started": {
|
|
82
|
+
title: "Getting started",
|
|
83
|
+
description: "Install the widget and configure your first conversation."
|
|
84
|
+
},
|
|
85
|
+
"demo-cat-automation": {
|
|
86
|
+
title: "Automation",
|
|
87
|
+
description: "Flows, triggers, and the AI auto-reply."
|
|
88
|
+
},
|
|
89
|
+
"demo-cat-integrations": {
|
|
90
|
+
title: "Integrations",
|
|
91
|
+
description: "Connect your CRM, Slack, and CMS."
|
|
92
|
+
},
|
|
93
|
+
"demo-cat-billing": {
|
|
94
|
+
title: "Billing & plans",
|
|
95
|
+
description: "Pricing tiers, invoices, and seat management."
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
articles: {
|
|
99
|
+
"demo-article-install": {
|
|
100
|
+
title: "Install the Wexio widget on your site",
|
|
101
|
+
excerpt: "A 30-second snippet you paste before the closing </body> tag.",
|
|
102
|
+
body: "## Add the loader script\n\nPaste this snippet into every page where you want the widget to appear:\n\n```html\n<script\n src=\"https://cdn.wexio.io/loader.js\"\n data-public-key=\"pk_live_YOUR_KEY\"\n><\/script>\n```\n\nThe loader injects a floating launcher in the bottom-right corner. Click it to open the chat panel.\n\n## Verify the install\n\n- Visit a page that includes the snippet.\n- Open the browser console.\n- You should see `[wexio] widget mounted`.\n\n## Customise the look\n\nThe widget reads brand colours from your dashboard. Update them in **Settings β Brand**.\n\n> Need a hand? Tap \"Still need help? Message us\" below and we'll walk you through it."
|
|
103
|
+
},
|
|
104
|
+
"demo-article-flows": {
|
|
105
|
+
title: "Build your first automation flow",
|
|
106
|
+
excerpt: "Drag, drop, and ship a welcome bot in under five minutes.",
|
|
107
|
+
body: "## What's a flow?\n\nA flow is a tiny tree of conversation steps - questions, replies, and conditions - that runs whenever a visitor matches a trigger.\n\n## Three trigger types\n\n1. **Visitor opened the widget** - greet first-timers.\n2. **Visitor asked a question** - Gaia (AI) tries to answer; if it can't, the flow takes over.\n3. **Webhook received** - your CMS or e-commerce platform pushes an event; the flow kicks off in the right chat.\n\n## Best practices\n\n- Keep first replies under 80 characters.\n- Offer 2-3 quick-reply chips, not a free-text question.\n- Always provide an escape hatch - *\"Talk to a human\"*."
|
|
108
|
+
},
|
|
109
|
+
"demo-article-slack": {
|
|
110
|
+
title: "Forward chats to Slack",
|
|
111
|
+
excerpt: "Mirror every new conversation into a Slack channel of your choice.",
|
|
112
|
+
body: "## Connect your workspace\n\nIn **Integrations β Slack** click *Connect*. You'll be redirected to Slack's OAuth screen - approve the requested scopes (`chat:write`, `channels:read`).\n\n## Pick a channel\n\nAfter authorising, choose the target channel (or create a new one like `#support`).\n\n## What gets forwarded\n\n- The opening message, with a deeplink back to the wexio inbox.\n- Operator replies as threaded messages.\n- Visitor replies in real time via the SSE bridge.\n\n## Reverse direction\n\nOperators can reply *from* Slack - wexio listens for Slack thread replies and posts them back to the widget."
|
|
113
|
+
},
|
|
114
|
+
"demo-article-billing": {
|
|
115
|
+
title: "Update your plan and billing details",
|
|
116
|
+
excerpt: "Switch tiers, change card, or download invoices.",
|
|
117
|
+
body: "## Plans\n\n- **Free** - 1 widget, basic features, \"Powered by Wexio\" badge.\n- **Standard** - unlimited widgets, automations, integrations.\n- **Enterprise** - white-label, SLA, dedicated support.\n\n## Change plan\n\n**Settings β Billing β Change plan**. Upgrades take effect immediately; downgrades apply at the end of the current cycle.\n\n## Invoices\n\nDownload every invoice as PDF from **Billing β History**. We also email a copy on each renewal."
|
|
118
|
+
},
|
|
119
|
+
"demo-article-theme": {
|
|
120
|
+
title: "Customise the widget theme",
|
|
121
|
+
excerpt: "Match the widget to your brand - colours, radii, dark mode.",
|
|
122
|
+
body: "## Brand colours\n\nIn **Settings β Brand**, set:\n\n- **Primary** - drives the launcher, send button, focus rings.\n- **Background** - the panel surface (light) and dark-mode pair.\n\n## Radii\n\nPick from `sm`, `md`, `lg` for a tighter or softer look. The change applies live to every widget on every page.\n\n## Dark mode\n\nDefault = follow the visitor's system preference. Pin to **always light** or **always dark** if your site doesn't support dark mode itself."
|
|
123
|
+
},
|
|
124
|
+
"demo-article-handoff": {
|
|
125
|
+
title: "Hand off from Gaia to a human operator",
|
|
126
|
+
excerpt: "When AI isn't enough - route the visitor to a teammate.",
|
|
127
|
+
body: "## Triggers\n\nGaia hands off automatically when:\n\n- The visitor types *\"talk to a human\"* (or any localised variant).\n- The same question is asked twice with no resolution.\n- The visitor's intent matches a routing rule (e.g., billing β finance team).\n\n## Routing\n\nSet up **Routing β Rules** to direct certain intents to specific teams or operators. Round-robin and least-loaded are both supported.\n\n## Out-of-hours\n\nIf no operator is online, Gaia offers a callback or email-handoff form instead of pretending someone's available."
|
|
128
|
+
},
|
|
129
|
+
"demo-article-crm": {
|
|
130
|
+
title: "Sync conversations to your CRM",
|
|
131
|
+
excerpt: "Push every chat into HubSpot, Salesforce, or Pipedrive.",
|
|
132
|
+
body: "## Supported CRMs\n\n- HubSpot (OAuth)\n- Salesforce (OAuth)\n- Pipedrive (API token)\n- Custom via webhooks\n\n## What syncs\n\n- New conversations create a contact (if not already present) and a note.\n- Operator replies append to the contact timeline.\n- Tags applied in wexio mirror to the CRM.\n\n## Two-way\n\nOperator notes added in the CRM can post back to wexio via the webhook receiver - see *Integrations β Webhooks β Inbound*."
|
|
133
|
+
},
|
|
134
|
+
"demo-article-shortcuts": {
|
|
135
|
+
title: "Operator keyboard shortcuts",
|
|
136
|
+
excerpt: "Triage twice as fast - no mouse required.",
|
|
137
|
+
body: "## Inbox navigation\n\n- `j` / `k` - next / previous conversation\n- `e` - resolve\n- `a` - assign to me\n- `s` - snooze\n\n## Composer\n\n- `Cmd+Enter` - send\n- `/` - open saved-reply picker\n- `Cmd+K` - command palette (everything)\n\n## Tip\n\nHover any button in the dashboard - the tooltip shows its shortcut."
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
tags: {
|
|
141
|
+
setup: "Setup",
|
|
142
|
+
install: "Install",
|
|
143
|
+
automation: "Automation",
|
|
144
|
+
flows: "Flows",
|
|
145
|
+
integrations: "Integrations",
|
|
146
|
+
slack: "Slack",
|
|
147
|
+
billing: "Billing",
|
|
148
|
+
plans: "Plans",
|
|
149
|
+
design: "Design",
|
|
150
|
+
ai: "AI",
|
|
151
|
+
crm: "CRM",
|
|
152
|
+
productivity: "Productivity",
|
|
153
|
+
inbox: "Inbox"
|
|
154
|
+
}
|
|
155
|
+
}, a = {
|
|
156
|
+
visitorName: "You",
|
|
157
|
+
messages: {
|
|
158
|
+
"m-demo-1": {
|
|
159
|
+
text: "Hi there π Thanks for reaching out. I'm Gaia, the wexio AI - happy to help.",
|
|
160
|
+
ageLabel: "4h",
|
|
161
|
+
buttons: [
|
|
162
|
+
"How does pricing work?",
|
|
163
|
+
"What is Gaia?",
|
|
164
|
+
"Talk to a human"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
"m-demo-2": {
|
|
168
|
+
text: "I'm evaluating the widget for our docs site - does it support dark mode out of the box?",
|
|
169
|
+
ageLabel: "4h"
|
|
170
|
+
},
|
|
171
|
+
"m-demo-3": {
|
|
172
|
+
text: "Yes - the widget follows your visitors' system preference by default, and operators can pin to light or dark from the dashboard.",
|
|
173
|
+
ageLabel: "4h"
|
|
174
|
+
},
|
|
175
|
+
"m-demo-4": {
|
|
176
|
+
text: "Here's a screenshot of the dashboard theme controls π",
|
|
177
|
+
ageLabel: "4h",
|
|
178
|
+
mediaAlts: ["Dashboard theme controls"]
|
|
179
|
+
},
|
|
180
|
+
"m-demo-gallery-captioned": {
|
|
181
|
+
text: "Three real installs we shipped last week - different industries, same setup time.",
|
|
182
|
+
ageLabel: "4h",
|
|
183
|
+
mediaAlts: [
|
|
184
|
+
"SaaS dashboard install",
|
|
185
|
+
"E-commerce checkout install",
|
|
186
|
+
"Docs site install"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
"m-demo-gallery-bare": {
|
|
190
|
+
text: "",
|
|
191
|
+
ageLabel: "4h",
|
|
192
|
+
mediaAlts: [
|
|
193
|
+
"My setup, frame 1",
|
|
194
|
+
"My setup, frame 2",
|
|
195
|
+
"My setup, frame 3",
|
|
196
|
+
"My setup, frame 4"
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
"m-demo-5": {
|
|
200
|
+
text: "Want a 30-second tour of how visitors interact with the widget? Tap play π",
|
|
201
|
+
ageLabel: "4h",
|
|
202
|
+
mediaAlts: ["Widget walkthrough"]
|
|
203
|
+
},
|
|
204
|
+
"m-demo-6": {
|
|
205
|
+
text: "Neat. And the docs?",
|
|
206
|
+
ageLabel: "3h"
|
|
207
|
+
},
|
|
208
|
+
"m-demo-7": {
|
|
209
|
+
text: "Here's the full integration guide as a PDF - start with Β§2 if you've already got a Wexio account.",
|
|
210
|
+
ageLabel: "3h",
|
|
211
|
+
mediaAlts: ["Wexio integration guide.pdf"]
|
|
212
|
+
},
|
|
213
|
+
"m-demo-8": {
|
|
214
|
+
text: "And a quick voice note explaining the auth flow - easier than typing it out:",
|
|
215
|
+
ageLabel: "3h",
|
|
216
|
+
mediaAlts: ["Auth flow voice note"]
|
|
217
|
+
},
|
|
218
|
+
"m-demo-9": {
|
|
219
|
+
text: "Perfect. One more - what's the easiest way to get started?",
|
|
220
|
+
ageLabel: "2h"
|
|
221
|
+
},
|
|
222
|
+
"m-demo-10": {
|
|
223
|
+
text: "Pick the path that fits - we can spin up a sandbox, send the install snippet, or jump on a 10-minute call:",
|
|
224
|
+
ageLabel: "2h",
|
|
225
|
+
buttons: [
|
|
226
|
+
"π¦ Start a sandbox project",
|
|
227
|
+
"π Send me the install snippet",
|
|
228
|
+
"π Book a 10-min call",
|
|
229
|
+
"π¬ Keep chatting here"
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}, o = {
|
|
234
|
+
welcome: {
|
|
235
|
+
system: "You're now chatting with Gaia, our AI assistant.",
|
|
236
|
+
hint: "Tip: attach a file or record a voice note any time.",
|
|
237
|
+
greeting: "Hi there π I'm Gaia, the Wexio AI. Ask me anything, or pick a quick action to get started."
|
|
238
|
+
},
|
|
239
|
+
replies: {
|
|
240
|
+
pricing: {
|
|
241
|
+
text: "Wexio is free for one widget; paid plans start at $39/mo and unlock automations, integrations, and white-label.",
|
|
242
|
+
planBtn: "Show plan tiers",
|
|
243
|
+
salesBtn: "Talk to sales"
|
|
244
|
+
},
|
|
245
|
+
gaia: {
|
|
246
|
+
text: "Gaia is the AI agent that answers visitor questions instantly. It learns from your help articles and hands off to a human when it can't help.",
|
|
247
|
+
handoffBtn: "How does handoff work?"
|
|
248
|
+
},
|
|
249
|
+
human: { text: "Of course - looping in Alex from the team. They'll respond within a few minutes during business hours." },
|
|
250
|
+
fallback: { text: "Got it - let me check on that and circle back in a moment." }
|
|
251
|
+
}
|
|
252
|
+
}, s = {
|
|
253
|
+
recentMessage: n,
|
|
254
|
+
news: r,
|
|
255
|
+
help: i,
|
|
256
|
+
conversation: a,
|
|
257
|
+
messenger: o
|
|
258
|
+
};
|
|
259
|
+
//#endregion
|
|
260
|
+
export { t as n, s as t };
|
|
261
|
+
|
|
262
|
+
//# sourceMappingURL=widget-react-DSw03RG7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-react-DSw03RG7.js","names":[],"sources":["../messages/demo.en.json"],"sourcesContent":["{\n \"recentMessage\": {\n \"sender\": \"Gaia\",\n \"preview\": \"Hi there π Thanks for reaching out. I'll get back to you shortlyβ¦\",\n \"ageLabel\": \"4h\"\n },\n \"news\": {\n \"demo-news-1\": {\n \"title\": \"Pioneer 2026: save the date\",\n \"excerpt\": \"We're back in San Francisco on October 8. Doors at 9, keynote at 10.\",\n \"body\": \"## What to expect\\n\\nThis year's keynote is all about what we shipped in the open and what's coming next. Live demos, not slides.\\n\\n- **The Gaia roadmap** - where our AI is headed over the next two quarters.\\n- **Customer stories** - three teams share how they halved first-response time.\\n- **Hands-on labs** - bring a laptop and build a flow with our engineers.\\n\\n## Getting there\\n\\nThe venue is the Pier 27 Cruise Terminal, right on the Embarcadero. Closest BART stop is Embarcadero, a 12-minute walk along the water.\\n\\n## Tickets\\n\\nEarly-bird seats are limited and go live next week. Existing customers get first dibs, so keep an eye on your inbox.\\n\\n> Can't make it in person? The keynote streams live and the recordings land here the same evening.\"\n },\n \"demo-news-2\": {\n \"title\": \"What shipped in April\",\n \"excerpt\": \"Three new automation triggers and a much faster inbox search.\",\n \"body\": \"<p>April was a big month. Here's everything that shipped, at a glance:</p>\\n<table>\\n<thead><tr><th>Area</th><th>What changed</th><th>Why it matters</th></tr></thead>\\n<tbody>\\n<tr><td>Inbox search</td><td>Instant, as-you-type results</td><td>50k conversations, under 100ms</td></tr>\\n<tr><td>Automation</td><td>Three new triggers</td><td>Cart abandoned, page revisited, quiet visitor</td></tr>\\n<tr><td>Composer</td><td>Draft survives a tab switch</td><td>No more lost half-typed replies</td></tr>\\n<tr><td>Dark mode</td><td>No white flash on first paint</td><td>Cleaner load on dark sites</td></tr>\\n</tbody>\\n</table>\\n<p>Here's the new search in action - results land before you finish typing:</p>\\n<img src=\\\"https://picsum.photos/seed/wexio-search/1024/576\\\" alt=\\\"Inbox search returning results instantly\\\" />\\n<p>Tap the image to take a closer look. Got a request? Reply here - we read every one.</p>\"\n },\n \"demo-news-3\": {\n \"title\": \"Gaia now speaks 28 languages\",\n \"excerpt\": \"Auto-detect the visitor's language or pin one. No extra setup.\",\n \"body\": \"<p>Gaia now replies in 28 languages, detected automatically from the visitor's first message. The questions we hear most:</p>\\n<details><summary>How does language detection work?</summary><p>Gaia reads the opening message and replies in the same language. If your help articles exist in that language it cites them; otherwise it answers from the closest match and flags the gap to you.</p></details>\\n<details><summary>Can I force a single language?</summary><p>Yes. Pin one in <strong>Settings β AI β Language</strong> and Gaia sticks to it no matter what the visitor types.</p></details>\\n<details><summary>What do operators see?</summary><p>Transcripts stay in your team's language, with the original message kept alongside the translation.</p></details>\\n<p>A quick look at Gaia switching languages mid-thread:</p>\\n<img src=\\\"https://picsum.photos/seed/wexio-lang/1024/576\\\" alt=\\\"Gaia replying across several languages\\\" />\"\n },\n \"demo-news-4\": {\n \"title\": \"Pipe conversations straight into Slack\",\n \"excerpt\": \"Connect any incoming webhook to a Slack channel. No glue code.\",\n \"body\": \"## Connect in two clicks\\n\\nHead to **Integrations β Slack**, hit *Connect*, and approve the scopes. Pick the channel new conversations should land in - most teams use `#support`.\\n\\n## What you get\\n\\n- A Slack message the moment a chat starts, with a link back to the inbox.\\n- Operator replies threaded under the original message.\\n- Reply right from Slack and we post it back to the visitor in real time.\\n\\n## Webhooks too\\n\\nAlready pushing events from your own systems? Point any webhook at your Slack channel and skip the custom integration entirely.\"\n },\n \"demo-news-5\": {\n \"title\": \"Inbox 2.0: triage without the mouse\",\n \"excerpt\": \"New shortcuts for assigning, snoozing, and resolving - all from the keyboard.\",\n \"body\": \"<p>Inbox 2.0 is keyboard-first. Here's the cheat sheet, grouped by what you're doing:</p>\\n<div data-type=\\\"tabs\\\">\\n<div data-type=\\\"tab\\\"><div data-tab-label>Navigate</div><ul><li><code>j</code> / <code>k</code> - next / previous conversation</li><li><code>g</code> then <code>i</code> - jump to the inbox</li></ul></div>\\n<div data-type=\\\"tab\\\"><div data-tab-label>Act</div><ul><li><code>e</code> - resolve</li><li><code>a</code> - assign to me</li><li><code>s</code> - snooze</li></ul></div>\\n<div data-type=\\\"tab\\\"><div data-tab-label>Compose</div><ul><li><code>Cmd+Enter</code> - send</li><li><code>/</code> - saved replies</li><li><code>Cmd+K</code> - command palette</li></ul></div>\\n</div>\\n<p>The redesigned inbox - everything within a key's reach:</p>\\n<img src=\\\"https://picsum.photos/seed/wexio-inbox/1024/576\\\" alt=\\\"The redesigned keyboard-first inbox\\\" />\"\n },\n \"demo-news-6\": {\n \"title\": \"Self-serve data exports and deletion\",\n \"excerpt\": \"Handle visitor data requests in a click. GDPR-ready out of the box.\",\n \"body\": \"## Export\\n\\nFrom any visitor's profile, hit **Export data** to generate a JSON bundle of every message, event, and attribute we hold for them. It downloads instantly and logs the request for your records.\\n\\n## Delete\\n\\n**Delete data** removes the visitor and scrubs their messages from the inbox, search, and any connected CRM through the same webhook bridge. The action is logged and irreversible.\\n\\n## For your DPO\\n\\n- Every export and deletion is timestamped and attributed.\\n- Retention windows are configurable per workspace.\\n- A data-processing agreement is available on request.\"\n },\n \"demo-news-7\": {\n \"title\": \"Mobile SDK beta: iOS and Android\",\n \"excerpt\": \"Bring the same conversation into your native app. Beta seats open now.\",\n \"body\": \"## One conversation, every surface\\n\\nA visitor who starts a chat on your website can pick it up in your app, signed in, with full history. Same Gaia, same operators, same inbox.\\n\\n## What's in the beta\\n\\n- Native launcher for SwiftUI and Jetpack Compose.\\n- Push notifications for new replies.\\n- Offline queue, so messages send when the connection comes back.\\n\\n## Join\\n\\nWe're onboarding a handful of teams each week. Reply here with your platform and rough monthly active users and we'll send you a key.\\n\\n> Beta means rough edges. We ship fixes weekly and read every bug report.\"\n },\n \"demo-news-8\": {\n \"title\": \"See which AI answers actually worked\",\n \"excerpt\": \"Track whether each Gaia reply led to a resolution, a handoff, or a bounce.\",\n \"body\": \"## The new view\\n\\n**Analytics β AI outcomes** breaks down every Gaia reply by what happened next:\\n\\n- **Resolved** - the visitor got what they needed and left happy.\\n- **Handed off** - Gaia passed the conversation to a human.\\n- **Bounced** - the visitor closed the widget without resolving.\\n\\n## Per-article insight\\n\\nDrill into any help article to see how often Gaia cites it and whether those citations resolve. Low resolution on a high-traffic article usually means the content needs a rewrite, not the AI.\\n\\n## Act on it\\n\\nSort by bounce rate to find the questions Gaia struggles with most, then add a flow or a sharper article to close the gap.\"\n },\n \"tags\": {\n \"events\": \"Events\",\n \"product\": \"Product\",\n \"release\": \"Release\",\n \"ai\": \"AI\",\n \"languages\": \"Languages\",\n \"integrations\": \"Integrations\",\n \"slack\": \"Slack\",\n \"inbox\": \"Inbox\",\n \"privacy\": \"Privacy\",\n \"security\": \"Security\",\n \"mobile\": \"Mobile\",\n \"beta\": \"Beta\",\n \"analytics\": \"Analytics\"\n },\n \"categories\": {\n \"company\": \"Company\",\n \"product\": \"Product\",\n \"engineering\": \"Engineering\"\n }\n },\n \"help\": {\n \"categories\": {\n \"demo-cat-getting-started\": {\n \"title\": \"Getting started\",\n \"description\": \"Install the widget and configure your first conversation.\"\n },\n \"demo-cat-automation\": {\n \"title\": \"Automation\",\n \"description\": \"Flows, triggers, and the AI auto-reply.\"\n },\n \"demo-cat-integrations\": {\n \"title\": \"Integrations\",\n \"description\": \"Connect your CRM, Slack, and CMS.\"\n },\n \"demo-cat-billing\": {\n \"title\": \"Billing & plans\",\n \"description\": \"Pricing tiers, invoices, and seat management.\"\n }\n },\n \"articles\": {\n \"demo-article-install\": {\n \"title\": \"Install the Wexio widget on your site\",\n \"excerpt\": \"A 30-second snippet you paste before the closing </body> tag.\",\n \"body\": \"## Add the loader script\\n\\nPaste this snippet into every page where you want the widget to appear:\\n\\n```html\\n<script\\n src=\\\"https://cdn.wexio.io/loader.js\\\"\\n data-public-key=\\\"pk_live_YOUR_KEY\\\"\\n></script>\\n```\\n\\nThe loader injects a floating launcher in the bottom-right corner. Click it to open the chat panel.\\n\\n## Verify the install\\n\\n- Visit a page that includes the snippet.\\n- Open the browser console.\\n- You should see `[wexio] widget mounted`.\\n\\n## Customise the look\\n\\nThe widget reads brand colours from your dashboard. Update them in **Settings β Brand**.\\n\\n> Need a hand? Tap \\\"Still need help? Message us\\\" below and we'll walk you through it.\"\n },\n \"demo-article-flows\": {\n \"title\": \"Build your first automation flow\",\n \"excerpt\": \"Drag, drop, and ship a welcome bot in under five minutes.\",\n \"body\": \"## What's a flow?\\n\\nA flow is a tiny tree of conversation steps - questions, replies, and conditions - that runs whenever a visitor matches a trigger.\\n\\n## Three trigger types\\n\\n1. **Visitor opened the widget** - greet first-timers.\\n2. **Visitor asked a question** - Gaia (AI) tries to answer; if it can't, the flow takes over.\\n3. **Webhook received** - your CMS or e-commerce platform pushes an event; the flow kicks off in the right chat.\\n\\n## Best practices\\n\\n- Keep first replies under 80 characters.\\n- Offer 2-3 quick-reply chips, not a free-text question.\\n- Always provide an escape hatch - *\\\"Talk to a human\\\"*.\"\n },\n \"demo-article-slack\": {\n \"title\": \"Forward chats to Slack\",\n \"excerpt\": \"Mirror every new conversation into a Slack channel of your choice.\",\n \"body\": \"## Connect your workspace\\n\\nIn **Integrations β Slack** click *Connect*. You'll be redirected to Slack's OAuth screen - approve the requested scopes (`chat:write`, `channels:read`).\\n\\n## Pick a channel\\n\\nAfter authorising, choose the target channel (or create a new one like `#support`).\\n\\n## What gets forwarded\\n\\n- The opening message, with a deeplink back to the wexio inbox.\\n- Operator replies as threaded messages.\\n- Visitor replies in real time via the SSE bridge.\\n\\n## Reverse direction\\n\\nOperators can reply *from* Slack - wexio listens for Slack thread replies and posts them back to the widget.\"\n },\n \"demo-article-billing\": {\n \"title\": \"Update your plan and billing details\",\n \"excerpt\": \"Switch tiers, change card, or download invoices.\",\n \"body\": \"## Plans\\n\\n- **Free** - 1 widget, basic features, \\\"Powered by Wexio\\\" badge.\\n- **Standard** - unlimited widgets, automations, integrations.\\n- **Enterprise** - white-label, SLA, dedicated support.\\n\\n## Change plan\\n\\n**Settings β Billing β Change plan**. Upgrades take effect immediately; downgrades apply at the end of the current cycle.\\n\\n## Invoices\\n\\nDownload every invoice as PDF from **Billing β History**. We also email a copy on each renewal.\"\n },\n \"demo-article-theme\": {\n \"title\": \"Customise the widget theme\",\n \"excerpt\": \"Match the widget to your brand - colours, radii, dark mode.\",\n \"body\": \"## Brand colours\\n\\nIn **Settings β Brand**, set:\\n\\n- **Primary** - drives the launcher, send button, focus rings.\\n- **Background** - the panel surface (light) and dark-mode pair.\\n\\n## Radii\\n\\nPick from `sm`, `md`, `lg` for a tighter or softer look. The change applies live to every widget on every page.\\n\\n## Dark mode\\n\\nDefault = follow the visitor's system preference. Pin to **always light** or **always dark** if your site doesn't support dark mode itself.\"\n },\n \"demo-article-handoff\": {\n \"title\": \"Hand off from Gaia to a human operator\",\n \"excerpt\": \"When AI isn't enough - route the visitor to a teammate.\",\n \"body\": \"## Triggers\\n\\nGaia hands off automatically when:\\n\\n- The visitor types *\\\"talk to a human\\\"* (or any localised variant).\\n- The same question is asked twice with no resolution.\\n- The visitor's intent matches a routing rule (e.g., billing β finance team).\\n\\n## Routing\\n\\nSet up **Routing β Rules** to direct certain intents to specific teams or operators. Round-robin and least-loaded are both supported.\\n\\n## Out-of-hours\\n\\nIf no operator is online, Gaia offers a callback or email-handoff form instead of pretending someone's available.\"\n },\n \"demo-article-crm\": {\n \"title\": \"Sync conversations to your CRM\",\n \"excerpt\": \"Push every chat into HubSpot, Salesforce, or Pipedrive.\",\n \"body\": \"## Supported CRMs\\n\\n- HubSpot (OAuth)\\n- Salesforce (OAuth)\\n- Pipedrive (API token)\\n- Custom via webhooks\\n\\n## What syncs\\n\\n- New conversations create a contact (if not already present) and a note.\\n- Operator replies append to the contact timeline.\\n- Tags applied in wexio mirror to the CRM.\\n\\n## Two-way\\n\\nOperator notes added in the CRM can post back to wexio via the webhook receiver - see *Integrations β Webhooks β Inbound*.\"\n },\n \"demo-article-shortcuts\": {\n \"title\": \"Operator keyboard shortcuts\",\n \"excerpt\": \"Triage twice as fast - no mouse required.\",\n \"body\": \"## Inbox navigation\\n\\n- `j` / `k` - next / previous conversation\\n- `e` - resolve\\n- `a` - assign to me\\n- `s` - snooze\\n\\n## Composer\\n\\n- `Cmd+Enter` - send\\n- `/` - open saved-reply picker\\n- `Cmd+K` - command palette (everything)\\n\\n## Tip\\n\\nHover any button in the dashboard - the tooltip shows its shortcut.\"\n }\n },\n \"tags\": {\n \"setup\": \"Setup\",\n \"install\": \"Install\",\n \"automation\": \"Automation\",\n \"flows\": \"Flows\",\n \"integrations\": \"Integrations\",\n \"slack\": \"Slack\",\n \"billing\": \"Billing\",\n \"plans\": \"Plans\",\n \"design\": \"Design\",\n \"ai\": \"AI\",\n \"crm\": \"CRM\",\n \"productivity\": \"Productivity\",\n \"inbox\": \"Inbox\"\n }\n },\n \"conversation\": {\n \"visitorName\": \"You\",\n \"messages\": {\n \"m-demo-1\": {\n \"text\": \"Hi there π Thanks for reaching out. I'm Gaia, the wexio AI - happy to help.\",\n \"ageLabel\": \"4h\",\n \"buttons\": [\"How does pricing work?\", \"What is Gaia?\", \"Talk to a human\"]\n },\n \"m-demo-2\": {\n \"text\": \"I'm evaluating the widget for our docs site - does it support dark mode out of the box?\",\n \"ageLabel\": \"4h\"\n },\n \"m-demo-3\": {\n \"text\": \"Yes - the widget follows your visitors' system preference by default, and operators can pin to light or dark from the dashboard.\",\n \"ageLabel\": \"4h\"\n },\n \"m-demo-4\": {\n \"text\": \"Here's a screenshot of the dashboard theme controls π\",\n \"ageLabel\": \"4h\",\n \"mediaAlts\": [\"Dashboard theme controls\"]\n },\n \"m-demo-gallery-captioned\": {\n \"text\": \"Three real installs we shipped last week - different industries, same setup time.\",\n \"ageLabel\": \"4h\",\n \"mediaAlts\": [\"SaaS dashboard install\", \"E-commerce checkout install\", \"Docs site install\"]\n },\n \"m-demo-gallery-bare\": {\n \"text\": \"\",\n \"ageLabel\": \"4h\",\n \"mediaAlts\": [\n \"My setup, frame 1\",\n \"My setup, frame 2\",\n \"My setup, frame 3\",\n \"My setup, frame 4\"\n ]\n },\n \"m-demo-5\": {\n \"text\": \"Want a 30-second tour of how visitors interact with the widget? Tap play π\",\n \"ageLabel\": \"4h\",\n \"mediaAlts\": [\"Widget walkthrough\"]\n },\n \"m-demo-6\": {\n \"text\": \"Neat. And the docs?\",\n \"ageLabel\": \"3h\"\n },\n \"m-demo-7\": {\n \"text\": \"Here's the full integration guide as a PDF - start with Β§2 if you've already got a Wexio account.\",\n \"ageLabel\": \"3h\",\n \"mediaAlts\": [\"Wexio integration guide.pdf\"]\n },\n \"m-demo-8\": {\n \"text\": \"And a quick voice note explaining the auth flow - easier than typing it out:\",\n \"ageLabel\": \"3h\",\n \"mediaAlts\": [\"Auth flow voice note\"]\n },\n \"m-demo-9\": {\n \"text\": \"Perfect. One more - what's the easiest way to get started?\",\n \"ageLabel\": \"2h\"\n },\n \"m-demo-10\": {\n \"text\": \"Pick the path that fits - we can spin up a sandbox, send the install snippet, or jump on a 10-minute call:\",\n \"ageLabel\": \"2h\",\n \"buttons\": [\n \"π¦ Start a sandbox project\",\n \"π Send me the install snippet\",\n \"π Book a 10-min call\",\n \"π¬ Keep chatting here\"\n ]\n }\n }\n },\n \"messenger\": {\n \"welcome\": {\n \"system\": \"You're now chatting with Gaia, our AI assistant.\",\n \"hint\": \"Tip: attach a file or record a voice note any time.\",\n \"greeting\": \"Hi there π I'm Gaia, the Wexio AI. Ask me anything, or pick a quick action to get started.\"\n },\n \"replies\": {\n \"pricing\": {\n \"text\": \"Wexio is free for one widget; paid plans start at $39/mo and unlock automations, integrations, and white-label.\",\n \"planBtn\": \"Show plan tiers\",\n \"salesBtn\": \"Talk to sales\"\n },\n \"gaia\": {\n \"text\": \"Gaia is the AI agent that answers visitor questions instantly. It learns from your help articles and hands off to a human when it can't help.\",\n \"handoffBtn\": \"How does handoff work?\"\n },\n \"human\": {\n \"text\": \"Of course - looping in Alex from the team. They'll respond within a few minutes during business hours.\"\n },\n \"fallback\": {\n \"text\": \"Got it - let me check on that and circle back in a moment.\"\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import "react-dom";
|
|
3
|
+
import "react/jsx-runtime";
|
|
4
|
+
import "react-dom/client";
|
|
5
|
+
import { t as e } from "./widget-react-BxvW64LH.js";
|
|
6
|
+
var t = e("send", [["path", {
|
|
7
|
+
d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
|
|
8
|
+
key: "1ffxy3"
|
|
9
|
+
}], ["path", {
|
|
10
|
+
d: "m21.854 2.147-10.94 10.939",
|
|
11
|
+
key: "12cjpa"
|
|
12
|
+
}]]);
|
|
13
|
+
//#endregion
|
|
14
|
+
export { t };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=widget-react-Dew7YaLU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-react-Dew7YaLU.js","names":[],"sources":["../node_modules/lucide-react/dist/esm/icons/send.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.14.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n];\nconst Send = createLucideIcon(\"send\", __iconNode);\n\nexport { __iconNode, Send as default };\n//# sourceMappingURL=send.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;;;;AAmBA,IAAM,IAAO,EAAiB,QAAQ,CATpC,CACE,QACA;CACE,GAAG;CACH,KAAK;CACN,CACF,EACD,CAAC,QAAQ;CAAE,GAAG;CAA8B,KAAK;CAAU,CAAC,CAExB,CAAW"}
|