@akropolys/kiku 1.7.0 → 1.7.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/dist/index.js +98 -173
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +98 -173
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +183 -282
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -254,8 +254,25 @@ var parseInline = (text, keyPrefix) => {
|
|
|
254
254
|
return part;
|
|
255
255
|
});
|
|
256
256
|
};
|
|
257
|
-
function
|
|
257
|
+
function isTableLine(line, inTable) {
|
|
258
|
+
const t = line.trim();
|
|
259
|
+
if (inTable) return t.includes("|");
|
|
260
|
+
return t.startsWith("|");
|
|
261
|
+
}
|
|
262
|
+
function splitTableCells(rowLine) {
|
|
263
|
+
let t = rowLine.trim();
|
|
264
|
+
if (t.startsWith("|")) t = t.slice(1);
|
|
265
|
+
if (t.endsWith("|")) t = t.slice(0, -1);
|
|
266
|
+
return t.split("|").map((c) => c.trim());
|
|
267
|
+
}
|
|
268
|
+
function renderMarkdown(content, streaming = false) {
|
|
258
269
|
const lines = content.split("\n");
|
|
270
|
+
if (streaming && lines.length > 0) {
|
|
271
|
+
const last = lines[lines.length - 1];
|
|
272
|
+
if (last.trim().startsWith("|") && !last.trim().endsWith("|")) {
|
|
273
|
+
lines.pop();
|
|
274
|
+
}
|
|
275
|
+
}
|
|
259
276
|
const elements = [];
|
|
260
277
|
let i = 0;
|
|
261
278
|
while (i < lines.length) {
|
|
@@ -307,17 +324,27 @@ function renderMarkdown(content) {
|
|
|
307
324
|
elements.push(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ul", { className: "hsk-markdown-list", children: listItems }, `ul-${key}`));
|
|
308
325
|
continue;
|
|
309
326
|
}
|
|
310
|
-
if (line.
|
|
327
|
+
if (line.match(/^\d+[.)]\s+/)) {
|
|
328
|
+
const listItems = [];
|
|
329
|
+
while (i < lines.length && lines[i].match(/^\d+[.)]\s+/)) {
|
|
330
|
+
const itemText = lines[i].replace(/^\d+[.)]\s+/, "");
|
|
331
|
+
listItems.push(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: parseInline(itemText, `li-${i}`) }, `li-${i}`));
|
|
332
|
+
i++;
|
|
333
|
+
}
|
|
334
|
+
elements.push(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ol", { className: "hsk-markdown-list", children: listItems }, `ol-${key}`));
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
if (isTableLine(line, false)) {
|
|
311
338
|
const tableRows = [];
|
|
312
339
|
let isHeader = true;
|
|
313
|
-
while (i < lines.length && lines[i]
|
|
340
|
+
while (i < lines.length && isTableLine(lines[i], true)) {
|
|
314
341
|
const rowLine = lines[i].trim();
|
|
315
|
-
if (rowLine.match(
|
|
342
|
+
if (rowLine.match(/^\|?[-:| ]+\|?$/) && rowLine.includes("-")) {
|
|
316
343
|
i++;
|
|
317
344
|
isHeader = false;
|
|
318
345
|
continue;
|
|
319
346
|
}
|
|
320
|
-
const cells = rowLine
|
|
347
|
+
const cells = splitTableCells(rowLine);
|
|
321
348
|
const Tag = isHeader ? "th" : "td";
|
|
322
349
|
tableRows.push(
|
|
323
350
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { children: cells.map((cell, cIdx) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Tag, { children: parseInline(cell, `td-${i}-${cIdx}`) }, `td-${i}-${cIdx}`)) }, `tr-${i}`)
|
|
@@ -503,7 +530,7 @@ function SourceCard({
|
|
|
503
530
|
);
|
|
504
531
|
}
|
|
505
532
|
function ChatWidget({
|
|
506
|
-
title = "
|
|
533
|
+
title = "kiku",
|
|
507
534
|
placeholder = "Ask about anything in our store\u2026",
|
|
508
535
|
emptyStateText = "Ask me anything about our products",
|
|
509
536
|
emptyStateSuggestions = '"Find me headphones under KSh 5,000" \xB7 "Gift ideas"',
|
|
@@ -1114,77 +1141,22 @@ function ComparisonMatrix({ sources, defaultCurrency = "KES", displayConfig }) {
|
|
|
1114
1141
|
|
|
1115
1142
|
// src/components/KikuButton.tsx
|
|
1116
1143
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1117
|
-
var
|
|
1144
|
+
var KikuIcon = ({ className, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1118
1145
|
"svg",
|
|
1119
1146
|
{
|
|
1120
|
-
className: cn("hsk-brand-
|
|
1147
|
+
className: cn("hsk-brand-mark", className),
|
|
1121
1148
|
width: size,
|
|
1122
1149
|
height: size,
|
|
1123
|
-
viewBox: "0 0
|
|
1124
|
-
fill: "none",
|
|
1150
|
+
viewBox: "0 0 100 100",
|
|
1125
1151
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1126
|
-
"aria-label": "
|
|
1127
|
-
children: [
|
|
1128
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
d: "M14.5 4.5 L6.5 25",
|
|
1132
|
-
stroke: "currentColor",
|
|
1133
|
-
strokeWidth: "2.2",
|
|
1134
|
-
strokeLinecap: "round"
|
|
1135
|
-
}
|
|
1136
|
-
),
|
|
1137
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1138
|
-
"path",
|
|
1139
|
-
{
|
|
1140
|
-
d: "M14.5 4.5 L22.5 25",
|
|
1141
|
-
stroke: "currentColor",
|
|
1142
|
-
strokeWidth: "4.2",
|
|
1143
|
-
strokeLinecap: "round"
|
|
1144
|
-
}
|
|
1145
|
-
),
|
|
1146
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1147
|
-
"path",
|
|
1148
|
-
{
|
|
1149
|
-
d: "M9.5 17 H19.5",
|
|
1150
|
-
stroke: "currentColor",
|
|
1151
|
-
strokeWidth: "2",
|
|
1152
|
-
strokeLinecap: "round"
|
|
1153
|
-
}
|
|
1154
|
-
),
|
|
1155
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1156
|
-
"path",
|
|
1157
|
-
{
|
|
1158
|
-
d: "M3 25 H10",
|
|
1159
|
-
stroke: "currentColor",
|
|
1160
|
-
strokeWidth: "2",
|
|
1161
|
-
strokeLinecap: "round"
|
|
1162
|
-
}
|
|
1163
|
-
),
|
|
1164
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1165
|
-
"path",
|
|
1166
|
-
{
|
|
1167
|
-
d: "M19 25 H26",
|
|
1168
|
-
stroke: "currentColor",
|
|
1169
|
-
strokeWidth: "2.5",
|
|
1170
|
-
strokeLinecap: "round"
|
|
1171
|
-
}
|
|
1172
|
-
),
|
|
1173
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1174
|
-
"path",
|
|
1175
|
-
{
|
|
1176
|
-
d: "M8.5 2.5 C10 2.5, 11 3.5, 11 5 C11 7, 8.5 8.5, 7.5 9.5",
|
|
1177
|
-
stroke: "currentColor",
|
|
1178
|
-
strokeWidth: "2",
|
|
1179
|
-
strokeLinecap: "round",
|
|
1180
|
-
fill: "none",
|
|
1181
|
-
className: "hsk-akr-breath"
|
|
1182
|
-
}
|
|
1183
|
-
)
|
|
1184
|
-
]
|
|
1152
|
+
"aria-label": "kiku",
|
|
1153
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("g", { transform: "translate(22.7 19) scale(0.62)", fill: "currentColor", fillRule: "evenodd", children: [
|
|
1154
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M39.4 10.4 Q44 0 48.6 10.4 L86.1 95.8 Q88 100 83.4 100 L4.6 100 Q0 100 1.9 95.8 Z M24 100 L24 65 Q24 60 27.4 56.3 Q44 38 60.6 56.3 Q64 60 64 65 L64 100 Z" }),
|
|
1155
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("circle", { cx: "55", cy: "82", r: "3.4" })
|
|
1156
|
+
] })
|
|
1185
1157
|
}
|
|
1186
1158
|
);
|
|
1187
|
-
var SparkleIcon2 =
|
|
1159
|
+
var SparkleIcon2 = KikuIcon;
|
|
1188
1160
|
var ArrowUpIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
1189
1161
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "m5 12 7-7 7 7" }),
|
|
1190
1162
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M12 19V5" })
|
|
@@ -1377,6 +1349,24 @@ function AtPickerMenu({ onSelect, onDismiss }) {
|
|
|
1377
1349
|
}
|
|
1378
1350
|
);
|
|
1379
1351
|
}
|
|
1352
|
+
function SourceImg({ src, alt, onImageClick }) {
|
|
1353
|
+
const [failed, setFailed] = (0, import_react5.useState)(false);
|
|
1354
|
+
if (failed) {
|
|
1355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { width: "100%", height: "100%", display: "flex", alignItems: "center", justifyContent: "center", background: "var(--hsk-chat-source-bg, rgba(0,0,0,.04))", color: "var(--hsk-chat-muted, #888)" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SparkleIcon2, {}) });
|
|
1356
|
+
}
|
|
1357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1358
|
+
"img",
|
|
1359
|
+
{
|
|
1360
|
+
src,
|
|
1361
|
+
alt: alt ?? "",
|
|
1362
|
+
onError: () => setFailed(true),
|
|
1363
|
+
onClick: onImageClick ? (e) => {
|
|
1364
|
+
e.stopPropagation();
|
|
1365
|
+
onImageClick(src);
|
|
1366
|
+
} : void 0
|
|
1367
|
+
}
|
|
1368
|
+
);
|
|
1369
|
+
}
|
|
1380
1370
|
function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClick, referencedIds = [] }) {
|
|
1381
1371
|
const client = (0, import_sdk6.useAkropolysContext)();
|
|
1382
1372
|
const isProperty = client?.vertical === "property";
|
|
@@ -1416,18 +1406,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
|
|
|
1416
1406
|
onClick: () => onSelectSource?.(src),
|
|
1417
1407
|
children: [
|
|
1418
1408
|
src.image ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-src-imgwrap", style: { position: "relative" }, children: [
|
|
1419
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1420
|
-
"img",
|
|
1421
|
-
{
|
|
1422
|
-
src: src.image,
|
|
1423
|
-
alt: src.name,
|
|
1424
|
-
loading: "lazy",
|
|
1425
|
-
onClick: onImageClick ? (e) => {
|
|
1426
|
-
e.stopPropagation();
|
|
1427
|
-
onImageClick(src.image);
|
|
1428
|
-
} : void 0
|
|
1429
|
-
}
|
|
1430
|
-
),
|
|
1409
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SourceImg, { src: src.image, alt: src.name, onImageClick }),
|
|
1431
1410
|
isReferenced && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-source-ref-badge", title: "Featured in response", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SparkleIcon2, { size: 10 }) }),
|
|
1432
1411
|
isProperty && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: {
|
|
1433
1412
|
position: "absolute",
|
|
@@ -1459,7 +1438,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
|
|
|
1459
1438
|
] })
|
|
1460
1439
|
]
|
|
1461
1440
|
},
|
|
1462
|
-
si
|
|
1441
|
+
src.id ?? si
|
|
1463
1442
|
);
|
|
1464
1443
|
}) }),
|
|
1465
1444
|
showNext && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
@@ -1684,7 +1663,7 @@ var PROPERTY_CHIPS = [
|
|
|
1684
1663
|
"Studio apartments with pool"
|
|
1685
1664
|
];
|
|
1686
1665
|
function ChatModal({
|
|
1687
|
-
title = "
|
|
1666
|
+
title = "kiku",
|
|
1688
1667
|
placeholder = "Ask me anything \u2014 gifts, budget, use case\u2026",
|
|
1689
1668
|
backdropColor,
|
|
1690
1669
|
backdropBlur,
|
|
@@ -1772,7 +1751,7 @@ function ChatModal({
|
|
|
1772
1751
|
}, []);
|
|
1773
1752
|
const isProperty = client.vertical === "property";
|
|
1774
1753
|
const activeChips = chips === DEFAULT_CHIPS && isProperty ? PROPERTY_CHIPS : chips;
|
|
1775
|
-
const activeTitle = title
|
|
1754
|
+
const activeTitle = title;
|
|
1776
1755
|
const activePlaceholder = placeholder === "Ask me anything \u2014 gifts, budget, use case\u2026" && isProperty ? "Ask me anything \u2014 location, budget, bedrooms\u2026" : placeholder;
|
|
1777
1756
|
const [selectedProduct, setSelectedProduct] = (0, import_react5.useState)(null);
|
|
1778
1757
|
const [lightboxSrc, setLightboxSrc] = (0, import_react5.useState)(null);
|
|
@@ -2051,10 +2030,10 @@ function ChatModal({
|
|
|
2051
2030
|
messageRefs.current[idx] = el;
|
|
2052
2031
|
}, children: isUser ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-user-msg", children: [
|
|
2053
2032
|
msg.images && msg.images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-user-imgs", children: msg.images.map((img, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: img, alt: `attachment ${i + 1}`, className: "hsk-cb-user-img-thumb" }, i)) }),
|
|
2054
|
-
msg.content && /* @__PURE__ */ (0, import_jsx_runtime7.
|
|
2055
|
-
|
|
2056
|
-
msg.content
|
|
2057
|
-
] })
|
|
2033
|
+
msg.content && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-user-bubble", children: /^@kiku\b/i.test(msg.content) ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
2034
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-kiku-badge", children: "@kiku" }),
|
|
2035
|
+
msg.content.replace(/^@kiku\s*/i, "")
|
|
2036
|
+
] }) : msg.content })
|
|
2058
2037
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-ai-msg", children: [
|
|
2059
2038
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-ai-icon", style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SparkleIcon2, {}) }),
|
|
2060
2039
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-ai-body", children: [
|
|
@@ -2063,7 +2042,7 @@ function ChatModal({
|
|
|
2063
2042
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
2064
2043
|
thinking && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ThinkingBlock, { text: thinking, isComplete }),
|
|
2065
2044
|
content && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-ai-text", children: [
|
|
2066
|
-
renderMarkdown(content),
|
|
2045
|
+
renderMarkdown(content, isLast && streaming),
|
|
2067
2046
|
isLast && streaming && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { display: "inline-block", width: "0.5em", height: "1.05em", marginLeft: "2px", verticalAlign: "text-bottom", background: "currentColor", opacity: 0.55, borderRadius: "1px" } })
|
|
2068
2047
|
] })
|
|
2069
2048
|
] });
|
|
@@ -2078,14 +2057,18 @@ function ChatModal({
|
|
|
2078
2057
|
src: msg.visualization,
|
|
2079
2058
|
alt: "Product visualized in your photo",
|
|
2080
2059
|
className: "hsk-markdown-img",
|
|
2081
|
-
|
|
2060
|
+
onError: (e) => {
|
|
2061
|
+
e.target.style.display = "none";
|
|
2062
|
+
}
|
|
2082
2063
|
}
|
|
2083
2064
|
) }),
|
|
2084
2065
|
isLast && lastIntent === "compare" && sources.length >= 2 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ComparisonMatrix, { sources, defaultCurrency }),
|
|
2085
2066
|
(() => {
|
|
2086
2067
|
const msgReferencedIds = isLast ? referencedIds : msg.referencedIds ?? [];
|
|
2087
2068
|
const msgSources = isLast ? sources : msg.sources ?? [];
|
|
2088
|
-
const
|
|
2069
|
+
const msgIntent = isLast ? lastIntent : msg.intent;
|
|
2070
|
+
const hiddenIntent = msgIntent === "compare" || msgIntent === "capture" || msgIntent === "capture_all" || msgIntent === "delete" || msgIntent === "view_history";
|
|
2071
|
+
const showCarousel = msgReferencedIds.length > 0 && !hiddenIntent && (!isLast || lastAction?.type !== "request_kiku_key");
|
|
2089
2072
|
return showCarousel && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2090
2073
|
SourcesCarousel,
|
|
2091
2074
|
{
|
|
@@ -2131,22 +2114,19 @@ function ChatModal({
|
|
|
2131
2114
|
]
|
|
2132
2115
|
}
|
|
2133
2116
|
),
|
|
2134
|
-
loading && !streaming && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-typing-row", style: { display: "flex", alignItems: "
|
|
2135
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.
|
|
2136
|
-
|
|
2137
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("
|
|
2138
|
-
|
|
2139
|
-
0
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-dot" })
|
|
2148
|
-
] })
|
|
2149
|
-
] })
|
|
2117
|
+
loading && !streaming && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-typing-row", style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
|
|
2118
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-thinking-icon", children: [
|
|
2119
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { className: "hsk-brand-mark", viewBox: "0 0 100 100", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M39.4 10.4 Q44 0 48.6 10.4 L86.1 95.8 Q88 100 83.4 100 L4.6 100 Q0 100 1.9 95.8 Z M24 100 L24 65 Q24 60 27.4 56.3 Q44 38 60.6 56.3 Q64 60 64 65 L64 100 Z", transform: "translate(22.7 19) scale(0.62)", fillRule: "evenodd" }) }),
|
|
2120
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-orbit", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "hsk-handle-ring", children: [
|
|
2121
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" }),
|
|
2122
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" }),
|
|
2123
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" }),
|
|
2124
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" }),
|
|
2125
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" })
|
|
2126
|
+
] }) }),
|
|
2127
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-rest" })
|
|
2128
|
+
] }),
|
|
2129
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-cb-thinking-text", children: "Thinking\u2026" })
|
|
2150
2130
|
] }),
|
|
2151
2131
|
error && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-error", children: getFriendlyError(error) }),
|
|
2152
2132
|
keyPhase === "prompt_key" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-ai-msg", children: [
|
|
@@ -2301,7 +2281,7 @@ function ChatModal({
|
|
|
2301
2281
|
}
|
|
2302
2282
|
)
|
|
2303
2283
|
] }),
|
|
2304
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-hint", children: "
|
|
2284
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-hint", children: "kiku \xB7 searches the whole catalogue in real time" })
|
|
2305
2285
|
] })
|
|
2306
2286
|
] })
|
|
2307
2287
|
]
|
|
@@ -2408,74 +2388,19 @@ var import_react6 = require("react");
|
|
|
2408
2388
|
var import_react_dom2 = require("react-dom");
|
|
2409
2389
|
var import_sdk7 = require("@akropolys/sdk");
|
|
2410
2390
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2411
|
-
var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime8.
|
|
2391
|
+
var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2412
2392
|
"svg",
|
|
2413
2393
|
{
|
|
2414
|
-
className: cn("hsk-brand-
|
|
2394
|
+
className: cn("hsk-brand-mark", className),
|
|
2415
2395
|
width: size,
|
|
2416
2396
|
height: size,
|
|
2417
|
-
viewBox: "0 0
|
|
2418
|
-
fill: "none",
|
|
2397
|
+
viewBox: "0 0 100 100",
|
|
2419
2398
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2420
|
-
"aria-label": "
|
|
2421
|
-
children: [
|
|
2422
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
d: "M14.5 4.5 L6.5 25",
|
|
2426
|
-
stroke: "currentColor",
|
|
2427
|
-
strokeWidth: "2.2",
|
|
2428
|
-
strokeLinecap: "round"
|
|
2429
|
-
}
|
|
2430
|
-
),
|
|
2431
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2432
|
-
"path",
|
|
2433
|
-
{
|
|
2434
|
-
d: "M14.5 4.5 L22.5 25",
|
|
2435
|
-
stroke: "currentColor",
|
|
2436
|
-
strokeWidth: "4.2",
|
|
2437
|
-
strokeLinecap: "round"
|
|
2438
|
-
}
|
|
2439
|
-
),
|
|
2440
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2441
|
-
"path",
|
|
2442
|
-
{
|
|
2443
|
-
d: "M9.5 17 H19.5",
|
|
2444
|
-
stroke: "currentColor",
|
|
2445
|
-
strokeWidth: "2",
|
|
2446
|
-
strokeLinecap: "round"
|
|
2447
|
-
}
|
|
2448
|
-
),
|
|
2449
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2450
|
-
"path",
|
|
2451
|
-
{
|
|
2452
|
-
d: "M3 25 H10",
|
|
2453
|
-
stroke: "currentColor",
|
|
2454
|
-
strokeWidth: "2",
|
|
2455
|
-
strokeLinecap: "round"
|
|
2456
|
-
}
|
|
2457
|
-
),
|
|
2458
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2459
|
-
"path",
|
|
2460
|
-
{
|
|
2461
|
-
d: "M19 25 H26",
|
|
2462
|
-
stroke: "currentColor",
|
|
2463
|
-
strokeWidth: "2.5",
|
|
2464
|
-
strokeLinecap: "round"
|
|
2465
|
-
}
|
|
2466
|
-
),
|
|
2467
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2468
|
-
"path",
|
|
2469
|
-
{
|
|
2470
|
-
d: "M8.5 2.5 C10 2.5, 11 3.5, 11 5 C11 7, 8.5 8.5, 7.5 9.5",
|
|
2471
|
-
stroke: "currentColor",
|
|
2472
|
-
strokeWidth: "2",
|
|
2473
|
-
strokeLinecap: "round",
|
|
2474
|
-
fill: "none",
|
|
2475
|
-
className: "hsk-akr-breath"
|
|
2476
|
-
}
|
|
2477
|
-
)
|
|
2478
|
-
]
|
|
2399
|
+
"aria-label": "kiku",
|
|
2400
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("g", { transform: "translate(22.7 19) scale(0.62)", fill: "currentColor", fillRule: "evenodd", children: [
|
|
2401
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("path", { d: "M39.4 10.4 Q44 0 48.6 10.4 L86.1 95.8 Q88 100 83.4 100 L4.6 100 Q0 100 1.9 95.8 Z M24 100 L24 65 Q24 60 27.4 56.3 Q44 38 60.6 56.3 Q64 60 64 65 L64 100 Z" }),
|
|
2402
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("circle", { cx: "55", cy: "82", r: "3.4" })
|
|
2403
|
+
] })
|
|
2479
2404
|
}
|
|
2480
2405
|
);
|
|
2481
2406
|
var CloseIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
@@ -2637,7 +2562,7 @@ Question: ${q}`;
|
|
|
2637
2562
|
}
|
|
2638
2563
|
)
|
|
2639
2564
|
] }),
|
|
2640
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "hsk-sp-header-sub", children: "
|
|
2565
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "hsk-sp-header-sub", children: "kiku" })
|
|
2641
2566
|
] }),
|
|
2642
2567
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { className: "hsk-sp-close", onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CloseIcon2, {}) })
|
|
2643
2568
|
] }),
|