@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 CHANGED
@@ -254,8 +254,25 @@ var parseInline = (text, keyPrefix) => {
254
254
  return part;
255
255
  });
256
256
  };
257
- function renderMarkdown(content) {
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.trim().startsWith("|")) {
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].trim().startsWith("|")) {
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.split("|").slice(1, -1).map((c) => c.trim());
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 = "AI Shopping Assistant",
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 AkropolysAIcon = ({ className, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1144
+ var KikuIcon = ({ className, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1118
1145
  "svg",
1119
1146
  {
1120
- className: cn("hsk-brand-a", className),
1147
+ className: cn("hsk-brand-mark", className),
1121
1148
  width: size,
1122
1149
  height: size,
1123
- viewBox: "0 0 28 30",
1124
- fill: "none",
1150
+ viewBox: "0 0 100 100",
1125
1151
  xmlns: "http://www.w3.org/2000/svg",
1126
- "aria-label": "Akropolys",
1127
- children: [
1128
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1129
- "path",
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 = AkropolysAIcon;
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 = "Shopping Assistant",
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 === "Shopping Assistant" && isProperty ? "Property Assistant" : 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.jsxs)("div", { className: "hsk-cb-user-bubble", children: [
2055
- /^@kiku\b/i.test(msg.content) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "hsk-kiku-badge", children: "@kiku" }),
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
- loading: "lazy"
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 showCarousel = msgReferencedIds.length > 0 && (isLast ? lastIntent !== "compare" : msg.intent !== "compare") && lastAction?.type !== "request_kiku_key" && lastAction?.type !== "capture" && lastAction?.type !== "delete" && lastAction?.type !== "view_history";
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: "flex-start", gap: "10px" }, children: [
2135
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-ai-icon", style: { display: "flex", alignItems: "center", marginTop: "4px" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SparkleIcon2, {}) }),
2136
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: [
2137
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("style", { children: `
2138
- @keyframes hsk-pulse {
2139
- 0%, 100% { opacity: 0.6; }
2140
- 50% { opacity: 1; }
2141
- }
2142
- ` }),
2143
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: "0.85rem", color: "#6b7280", fontStyle: "italic", animation: "hsk-pulse 1.5s infinite ease-in-out" }, children: "Thinking\u2026" }),
2144
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "hsk-cb-typing", style: { margin: 0, alignSelf: "flex-start" }, children: [
2145
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-dot" }),
2146
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "hsk-cb-dot" }),
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: "Akropolys AI \xB7 searches the whole catalogue in real time" })
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.jsxs)(
2391
+ var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2412
2392
  "svg",
2413
2393
  {
2414
- className: cn("hsk-brand-a", className),
2394
+ className: cn("hsk-brand-mark", className),
2415
2395
  width: size,
2416
2396
  height: size,
2417
- viewBox: "0 0 28 30",
2418
- fill: "none",
2397
+ viewBox: "0 0 100 100",
2419
2398
  xmlns: "http://www.w3.org/2000/svg",
2420
- "aria-label": "Akropolys",
2421
- children: [
2422
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2423
- "path",
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: "Akropolys AI Shopping Assistant" })
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
  ] }),