@akropolys/kiku 1.7.0 → 1.7.2
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 +103 -176
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +103 -176
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +230 -294
- 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,7 +1349,25 @@ function AtPickerMenu({ onSelect, onDismiss }) {
|
|
|
1377
1349
|
}
|
|
1378
1350
|
);
|
|
1379
1351
|
}
|
|
1380
|
-
function
|
|
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
|
+
}
|
|
1370
|
+
function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClick, referencedIds = [], compact = false }) {
|
|
1381
1371
|
const client = (0, import_sdk6.useAkropolysContext)();
|
|
1382
1372
|
const isProperty = client?.vertical === "property";
|
|
1383
1373
|
const railRef = (0, import_react5.useRef)(null);
|
|
@@ -1405,7 +1395,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
|
|
|
1405
1395
|
};
|
|
1406
1396
|
const display = sources.filter((s) => s.id && referencedIds.includes(s.id));
|
|
1407
1397
|
if (display.length === 0) return null;
|
|
1408
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-sources-wrap", children: [
|
|
1398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: cn("hsk-cb-sources-wrap", compact && "hsk-cb-sources-wrap--compact"), children: [
|
|
1409
1399
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-sources", ref: railRef, children: display.map((src, si) => {
|
|
1410
1400
|
const isReferenced = !!(src.id && referencedIds.includes(src.id));
|
|
1411
1401
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
@@ -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
|
{
|
|
@@ -2093,7 +2076,8 @@ function ChatModal({
|
|
|
2093
2076
|
defaultCurrency,
|
|
2094
2077
|
onSelectSource: handleSourceClick,
|
|
2095
2078
|
onImageClick: setLightboxSrc,
|
|
2096
|
-
referencedIds: msgReferencedIds
|
|
2079
|
+
referencedIds: msgReferencedIds,
|
|
2080
|
+
compact: !!msg.visualization
|
|
2097
2081
|
}
|
|
2098
2082
|
);
|
|
2099
2083
|
})(),
|
|
@@ -2131,22 +2115,20 @@ function ChatModal({
|
|
|
2131
2115
|
]
|
|
2132
2116
|
}
|
|
2133
2117
|
),
|
|
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
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
] })
|
|
2149
|
-
] })
|
|
2118
|
+
loading && !streaming && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-typing-row", style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
|
|
2119
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-thinking-icon", children: [
|
|
2120
|
+
/* @__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" }) }),
|
|
2121
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { className: "hsk-brand-mark hsk-brand-mark--sheen", 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" }) }),
|
|
2122
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-orbit", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "hsk-handle-ring", children: [
|
|
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
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" }),
|
|
2127
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-ball" })
|
|
2128
|
+
] }) }),
|
|
2129
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-handle-rest" })
|
|
2130
|
+
] }),
|
|
2131
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-cb-thinking-text", children: "Thinking\u2026" })
|
|
2150
2132
|
] }),
|
|
2151
2133
|
error && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-error", children: getFriendlyError(error) }),
|
|
2152
2134
|
keyPhase === "prompt_key" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-ai-msg", children: [
|
|
@@ -2301,7 +2283,7 @@ function ChatModal({
|
|
|
2301
2283
|
}
|
|
2302
2284
|
)
|
|
2303
2285
|
] }),
|
|
2304
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-hint", children: "
|
|
2286
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-hint", children: "kiku \xB7 searches the whole catalogue in real time" })
|
|
2305
2287
|
] })
|
|
2306
2288
|
] })
|
|
2307
2289
|
]
|
|
@@ -2408,74 +2390,19 @@ var import_react6 = require("react");
|
|
|
2408
2390
|
var import_react_dom2 = require("react-dom");
|
|
2409
2391
|
var import_sdk7 = require("@akropolys/sdk");
|
|
2410
2392
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2411
|
-
var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime8.
|
|
2393
|
+
var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2412
2394
|
"svg",
|
|
2413
2395
|
{
|
|
2414
|
-
className: cn("hsk-brand-
|
|
2396
|
+
className: cn("hsk-brand-mark", className),
|
|
2415
2397
|
width: size,
|
|
2416
2398
|
height: size,
|
|
2417
|
-
viewBox: "0 0
|
|
2418
|
-
fill: "none",
|
|
2399
|
+
viewBox: "0 0 100 100",
|
|
2419
2400
|
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
|
-
]
|
|
2401
|
+
"aria-label": "kiku",
|
|
2402
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("g", { transform: "translate(22.7 19) scale(0.62)", fill: "currentColor", fillRule: "evenodd", children: [
|
|
2403
|
+
/* @__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" }),
|
|
2404
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("circle", { cx: "55", cy: "82", r: "3.4" })
|
|
2405
|
+
] })
|
|
2479
2406
|
}
|
|
2480
2407
|
);
|
|
2481
2408
|
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 +2564,7 @@ Question: ${q}`;
|
|
|
2637
2564
|
}
|
|
2638
2565
|
)
|
|
2639
2566
|
] }),
|
|
2640
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "hsk-sp-header-sub", children: "
|
|
2567
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "hsk-sp-header-sub", children: "kiku" })
|
|
2641
2568
|
] }),
|
|
2642
2569
|
/* @__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
2570
|
] }),
|