@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.mjs CHANGED
@@ -222,8 +222,25 @@ var parseInline = (text, keyPrefix) => {
222
222
  return part;
223
223
  });
224
224
  };
225
- function renderMarkdown(content) {
225
+ function isTableLine(line, inTable) {
226
+ const t = line.trim();
227
+ if (inTable) return t.includes("|");
228
+ return t.startsWith("|");
229
+ }
230
+ function splitTableCells(rowLine) {
231
+ let t = rowLine.trim();
232
+ if (t.startsWith("|")) t = t.slice(1);
233
+ if (t.endsWith("|")) t = t.slice(0, -1);
234
+ return t.split("|").map((c) => c.trim());
235
+ }
236
+ function renderMarkdown(content, streaming = false) {
226
237
  const lines = content.split("\n");
238
+ if (streaming && lines.length > 0) {
239
+ const last = lines[lines.length - 1];
240
+ if (last.trim().startsWith("|") && !last.trim().endsWith("|")) {
241
+ lines.pop();
242
+ }
243
+ }
227
244
  const elements = [];
228
245
  let i = 0;
229
246
  while (i < lines.length) {
@@ -275,17 +292,27 @@ function renderMarkdown(content) {
275
292
  elements.push(/* @__PURE__ */ jsx2("ul", { className: "hsk-markdown-list", children: listItems }, `ul-${key}`));
276
293
  continue;
277
294
  }
278
- if (line.trim().startsWith("|")) {
295
+ if (line.match(/^\d+[.)]\s+/)) {
296
+ const listItems = [];
297
+ while (i < lines.length && lines[i].match(/^\d+[.)]\s+/)) {
298
+ const itemText = lines[i].replace(/^\d+[.)]\s+/, "");
299
+ listItems.push(/* @__PURE__ */ jsx2("li", { children: parseInline(itemText, `li-${i}`) }, `li-${i}`));
300
+ i++;
301
+ }
302
+ elements.push(/* @__PURE__ */ jsx2("ol", { className: "hsk-markdown-list", children: listItems }, `ol-${key}`));
303
+ continue;
304
+ }
305
+ if (isTableLine(line, false)) {
279
306
  const tableRows = [];
280
307
  let isHeader = true;
281
- while (i < lines.length && lines[i].trim().startsWith("|")) {
308
+ while (i < lines.length && isTableLine(lines[i], true)) {
282
309
  const rowLine = lines[i].trim();
283
- if (rowLine.match(/^\|[-:| ]+\|$/)) {
310
+ if (rowLine.match(/^\|?[-:| ]+\|?$/) && rowLine.includes("-")) {
284
311
  i++;
285
312
  isHeader = false;
286
313
  continue;
287
314
  }
288
- const cells = rowLine.split("|").slice(1, -1).map((c) => c.trim());
315
+ const cells = splitTableCells(rowLine);
289
316
  const Tag = isHeader ? "th" : "td";
290
317
  tableRows.push(
291
318
  /* @__PURE__ */ jsx2("tr", { children: cells.map((cell, cIdx) => /* @__PURE__ */ jsx2(Tag, { children: parseInline(cell, `td-${i}-${cIdx}`) }, `td-${i}-${cIdx}`)) }, `tr-${i}`)
@@ -471,7 +498,7 @@ function SourceCard({
471
498
  );
472
499
  }
473
500
  function ChatWidget({
474
- title = "AI Shopping Assistant",
501
+ title = "kiku",
475
502
  placeholder = "Ask about anything in our store\u2026",
476
503
  emptyStateText = "Ask me anything about our products",
477
504
  emptyStateSuggestions = '"Find me headphones under KSh 5,000" \xB7 "Gift ideas"',
@@ -1082,77 +1109,22 @@ function ComparisonMatrix({ sources, defaultCurrency = "KES", displayConfig }) {
1082
1109
 
1083
1110
  // src/components/KikuButton.tsx
1084
1111
  import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1085
- var AkropolysAIcon = ({ className, size = 18 }) => /* @__PURE__ */ jsxs6(
1112
+ var KikuIcon = ({ className, size = 18 }) => /* @__PURE__ */ jsx7(
1086
1113
  "svg",
1087
1114
  {
1088
- className: cn("hsk-brand-a", className),
1115
+ className: cn("hsk-brand-mark", className),
1089
1116
  width: size,
1090
1117
  height: size,
1091
- viewBox: "0 0 28 30",
1092
- fill: "none",
1118
+ viewBox: "0 0 100 100",
1093
1119
  xmlns: "http://www.w3.org/2000/svg",
1094
- "aria-label": "Akropolys",
1095
- children: [
1096
- /* @__PURE__ */ jsx7(
1097
- "path",
1098
- {
1099
- d: "M14.5 4.5 L6.5 25",
1100
- stroke: "currentColor",
1101
- strokeWidth: "2.2",
1102
- strokeLinecap: "round"
1103
- }
1104
- ),
1105
- /* @__PURE__ */ jsx7(
1106
- "path",
1107
- {
1108
- d: "M14.5 4.5 L22.5 25",
1109
- stroke: "currentColor",
1110
- strokeWidth: "4.2",
1111
- strokeLinecap: "round"
1112
- }
1113
- ),
1114
- /* @__PURE__ */ jsx7(
1115
- "path",
1116
- {
1117
- d: "M9.5 17 H19.5",
1118
- stroke: "currentColor",
1119
- strokeWidth: "2",
1120
- strokeLinecap: "round"
1121
- }
1122
- ),
1123
- /* @__PURE__ */ jsx7(
1124
- "path",
1125
- {
1126
- d: "M3 25 H10",
1127
- stroke: "currentColor",
1128
- strokeWidth: "2",
1129
- strokeLinecap: "round"
1130
- }
1131
- ),
1132
- /* @__PURE__ */ jsx7(
1133
- "path",
1134
- {
1135
- d: "M19 25 H26",
1136
- stroke: "currentColor",
1137
- strokeWidth: "2.5",
1138
- strokeLinecap: "round"
1139
- }
1140
- ),
1141
- /* @__PURE__ */ jsx7(
1142
- "path",
1143
- {
1144
- d: "M8.5 2.5 C10 2.5, 11 3.5, 11 5 C11 7, 8.5 8.5, 7.5 9.5",
1145
- stroke: "currentColor",
1146
- strokeWidth: "2",
1147
- strokeLinecap: "round",
1148
- fill: "none",
1149
- className: "hsk-akr-breath"
1150
- }
1151
- )
1152
- ]
1120
+ "aria-label": "kiku",
1121
+ children: /* @__PURE__ */ jsxs6("g", { transform: "translate(22.7 19) scale(0.62)", fill: "currentColor", fillRule: "evenodd", children: [
1122
+ /* @__PURE__ */ jsx7("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" }),
1123
+ /* @__PURE__ */ jsx7("circle", { cx: "55", cy: "82", r: "3.4" })
1124
+ ] })
1153
1125
  }
1154
1126
  );
1155
- var SparkleIcon2 = AkropolysAIcon;
1127
+ var SparkleIcon2 = KikuIcon;
1156
1128
  var ArrowUpIcon2 = () => /* @__PURE__ */ jsxs6("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
1157
1129
  /* @__PURE__ */ jsx7("path", { d: "m5 12 7-7 7 7" }),
1158
1130
  /* @__PURE__ */ jsx7("path", { d: "M12 19V5" })
@@ -1345,7 +1317,25 @@ function AtPickerMenu({ onSelect, onDismiss }) {
1345
1317
  }
1346
1318
  );
1347
1319
  }
1348
- function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClick, referencedIds = [] }) {
1320
+ function SourceImg({ src, alt, onImageClick }) {
1321
+ const [failed, setFailed] = useState5(false);
1322
+ if (failed) {
1323
+ return /* @__PURE__ */ jsx7("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__ */ jsx7(SparkleIcon2, {}) });
1324
+ }
1325
+ return /* @__PURE__ */ jsx7(
1326
+ "img",
1327
+ {
1328
+ src,
1329
+ alt: alt ?? "",
1330
+ onError: () => setFailed(true),
1331
+ onClick: onImageClick ? (e) => {
1332
+ e.stopPropagation();
1333
+ onImageClick(src);
1334
+ } : void 0
1335
+ }
1336
+ );
1337
+ }
1338
+ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClick, referencedIds = [], compact = false }) {
1349
1339
  const client = useAkropolysContext3();
1350
1340
  const isProperty = client?.vertical === "property";
1351
1341
  const railRef = useRef5(null);
@@ -1373,7 +1363,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
1373
1363
  };
1374
1364
  const display = sources.filter((s) => s.id && referencedIds.includes(s.id));
1375
1365
  if (display.length === 0) return null;
1376
- return /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-sources-wrap", children: [
1366
+ return /* @__PURE__ */ jsxs6("div", { className: cn("hsk-cb-sources-wrap", compact && "hsk-cb-sources-wrap--compact"), children: [
1377
1367
  /* @__PURE__ */ jsx7("div", { className: "hsk-cb-sources", ref: railRef, children: display.map((src, si) => {
1378
1368
  const isReferenced = !!(src.id && referencedIds.includes(src.id));
1379
1369
  return /* @__PURE__ */ jsxs6(
@@ -1384,18 +1374,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
1384
1374
  onClick: () => onSelectSource?.(src),
1385
1375
  children: [
1386
1376
  src.image ? /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-src-imgwrap", style: { position: "relative" }, children: [
1387
- /* @__PURE__ */ jsx7(
1388
- "img",
1389
- {
1390
- src: src.image,
1391
- alt: src.name,
1392
- loading: "lazy",
1393
- onClick: onImageClick ? (e) => {
1394
- e.stopPropagation();
1395
- onImageClick(src.image);
1396
- } : void 0
1397
- }
1398
- ),
1377
+ /* @__PURE__ */ jsx7(SourceImg, { src: src.image, alt: src.name, onImageClick }),
1399
1378
  isReferenced && /* @__PURE__ */ jsx7("div", { className: "hsk-cb-source-ref-badge", title: "Featured in response", children: /* @__PURE__ */ jsx7(SparkleIcon2, { size: 10 }) }),
1400
1379
  isProperty && /* @__PURE__ */ jsx7("div", { style: {
1401
1380
  position: "absolute",
@@ -1427,7 +1406,7 @@ function SourcesCarousel({ sources, defaultCurrency, onSelectSource, onImageClic
1427
1406
  ] })
1428
1407
  ]
1429
1408
  },
1430
- si
1409
+ src.id ?? si
1431
1410
  );
1432
1411
  }) }),
1433
1412
  showNext && /* @__PURE__ */ jsxs6(Fragment3, { children: [
@@ -1652,7 +1631,7 @@ var PROPERTY_CHIPS = [
1652
1631
  "Studio apartments with pool"
1653
1632
  ];
1654
1633
  function ChatModal({
1655
- title = "Shopping Assistant",
1634
+ title = "kiku",
1656
1635
  placeholder = "Ask me anything \u2014 gifts, budget, use case\u2026",
1657
1636
  backdropColor,
1658
1637
  backdropBlur,
@@ -1740,7 +1719,7 @@ function ChatModal({
1740
1719
  }, []);
1741
1720
  const isProperty = client.vertical === "property";
1742
1721
  const activeChips = chips === DEFAULT_CHIPS && isProperty ? PROPERTY_CHIPS : chips;
1743
- const activeTitle = title === "Shopping Assistant" && isProperty ? "Property Assistant" : title;
1722
+ const activeTitle = title;
1744
1723
  const activePlaceholder = placeholder === "Ask me anything \u2014 gifts, budget, use case\u2026" && isProperty ? "Ask me anything \u2014 location, budget, bedrooms\u2026" : placeholder;
1745
1724
  const [selectedProduct, setSelectedProduct] = useState5(null);
1746
1725
  const [lightboxSrc, setLightboxSrc] = useState5(null);
@@ -2019,10 +1998,10 @@ function ChatModal({
2019
1998
  messageRefs.current[idx] = el;
2020
1999
  }, children: isUser ? /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-user-msg", children: [
2021
2000
  msg.images && msg.images.length > 0 && /* @__PURE__ */ jsx7("div", { className: "hsk-cb-user-imgs", children: msg.images.map((img, i) => /* @__PURE__ */ jsx7("img", { src: img, alt: `attachment ${i + 1}`, className: "hsk-cb-user-img-thumb" }, i)) }),
2022
- msg.content && /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-user-bubble", children: [
2023
- /^@kiku\b/i.test(msg.content) && /* @__PURE__ */ jsx7("span", { className: "hsk-kiku-badge", children: "@kiku" }),
2024
- msg.content
2025
- ] })
2001
+ msg.content && /* @__PURE__ */ jsx7("div", { className: "hsk-cb-user-bubble", children: /^@kiku\b/i.test(msg.content) ? /* @__PURE__ */ jsxs6(Fragment3, { children: [
2002
+ /* @__PURE__ */ jsx7("span", { className: "hsk-kiku-badge", children: "@kiku" }),
2003
+ msg.content.replace(/^@kiku\s*/i, "")
2004
+ ] }) : msg.content })
2026
2005
  ] }) : /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-ai-msg", children: [
2027
2006
  /* @__PURE__ */ jsx7("div", { className: "hsk-cb-ai-icon", style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx7(SparkleIcon2, {}) }),
2028
2007
  /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-ai-body", children: [
@@ -2031,7 +2010,7 @@ function ChatModal({
2031
2010
  return /* @__PURE__ */ jsxs6(Fragment3, { children: [
2032
2011
  thinking && /* @__PURE__ */ jsx7(ThinkingBlock, { text: thinking, isComplete }),
2033
2012
  content && /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-ai-text", children: [
2034
- renderMarkdown(content),
2013
+ renderMarkdown(content, isLast && streaming),
2035
2014
  isLast && streaming && /* @__PURE__ */ jsx7("span", { style: { display: "inline-block", width: "0.5em", height: "1.05em", marginLeft: "2px", verticalAlign: "text-bottom", background: "currentColor", opacity: 0.55, borderRadius: "1px" } })
2036
2015
  ] })
2037
2016
  ] });
@@ -2046,14 +2025,18 @@ function ChatModal({
2046
2025
  src: msg.visualization,
2047
2026
  alt: "Product visualized in your photo",
2048
2027
  className: "hsk-markdown-img",
2049
- loading: "lazy"
2028
+ onError: (e) => {
2029
+ e.target.style.display = "none";
2030
+ }
2050
2031
  }
2051
2032
  ) }),
2052
2033
  isLast && lastIntent === "compare" && sources.length >= 2 && /* @__PURE__ */ jsx7(ComparisonMatrix, { sources, defaultCurrency }),
2053
2034
  (() => {
2054
2035
  const msgReferencedIds = isLast ? referencedIds : msg.referencedIds ?? [];
2055
2036
  const msgSources = isLast ? sources : msg.sources ?? [];
2056
- 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";
2037
+ const msgIntent = isLast ? lastIntent : msg.intent;
2038
+ const hiddenIntent = msgIntent === "compare" || msgIntent === "capture" || msgIntent === "capture_all" || msgIntent === "delete" || msgIntent === "view_history";
2039
+ const showCarousel = msgReferencedIds.length > 0 && !hiddenIntent && (!isLast || lastAction?.type !== "request_kiku_key");
2057
2040
  return showCarousel && /* @__PURE__ */ jsx7(
2058
2041
  SourcesCarousel,
2059
2042
  {
@@ -2061,7 +2044,8 @@ function ChatModal({
2061
2044
  defaultCurrency,
2062
2045
  onSelectSource: handleSourceClick,
2063
2046
  onImageClick: setLightboxSrc,
2064
- referencedIds: msgReferencedIds
2047
+ referencedIds: msgReferencedIds,
2048
+ compact: !!msg.visualization
2065
2049
  }
2066
2050
  );
2067
2051
  })(),
@@ -2099,22 +2083,20 @@ function ChatModal({
2099
2083
  ]
2100
2084
  }
2101
2085
  ),
2102
- loading && !streaming && /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-typing-row", style: { display: "flex", alignItems: "flex-start", gap: "10px" }, children: [
2103
- /* @__PURE__ */ jsx7("div", { className: "hsk-cb-ai-icon", style: { display: "flex", alignItems: "center", marginTop: "4px" }, children: /* @__PURE__ */ jsx7(SparkleIcon2, {}) }),
2104
- /* @__PURE__ */ jsxs6("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: [
2105
- /* @__PURE__ */ jsx7("style", { children: `
2106
- @keyframes hsk-pulse {
2107
- 0%, 100% { opacity: 0.6; }
2108
- 50% { opacity: 1; }
2109
- }
2110
- ` }),
2111
- /* @__PURE__ */ jsx7("div", { style: { fontSize: "0.85rem", color: "#6b7280", fontStyle: "italic", animation: "hsk-pulse 1.5s infinite ease-in-out" }, children: "Thinking\u2026" }),
2112
- /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-typing", style: { margin: 0, alignSelf: "flex-start" }, children: [
2113
- /* @__PURE__ */ jsx7("div", { className: "hsk-cb-dot" }),
2114
- /* @__PURE__ */ jsx7("div", { className: "hsk-cb-dot" }),
2115
- /* @__PURE__ */ jsx7("div", { className: "hsk-cb-dot" })
2116
- ] })
2117
- ] })
2086
+ loading && !streaming && /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-typing-row", style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
2087
+ /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-thinking-icon", children: [
2088
+ /* @__PURE__ */ jsx7("svg", { className: "hsk-brand-mark", viewBox: "0 0 100 100", "aria-hidden": "true", children: /* @__PURE__ */ jsx7("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" }) }),
2089
+ /* @__PURE__ */ jsx7("svg", { className: "hsk-brand-mark hsk-brand-mark--sheen", viewBox: "0 0 100 100", "aria-hidden": "true", children: /* @__PURE__ */ jsx7("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" }) }),
2090
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-orbit", children: /* @__PURE__ */ jsxs6("span", { className: "hsk-handle-ring", children: [
2091
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-ball" }),
2092
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-ball" }),
2093
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-ball" }),
2094
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-ball" }),
2095
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-ball" })
2096
+ ] }) }),
2097
+ /* @__PURE__ */ jsx7("span", { className: "hsk-handle-rest" })
2098
+ ] }),
2099
+ /* @__PURE__ */ jsx7("span", { className: "hsk-cb-thinking-text", children: "Thinking\u2026" })
2118
2100
  ] }),
2119
2101
  error && /* @__PURE__ */ jsx7("div", { className: "hsk-cb-error", children: getFriendlyError(error) }),
2120
2102
  keyPhase === "prompt_key" && /* @__PURE__ */ jsxs6("div", { className: "hsk-cb-ai-msg", children: [
@@ -2269,7 +2251,7 @@ function ChatModal({
2269
2251
  }
2270
2252
  )
2271
2253
  ] }),
2272
- /* @__PURE__ */ jsx7("div", { className: "hsk-cb-hint", children: "Akropolys AI \xB7 searches the whole catalogue in real time" })
2254
+ /* @__PURE__ */ jsx7("div", { className: "hsk-cb-hint", children: "kiku \xB7 searches the whole catalogue in real time" })
2273
2255
  ] })
2274
2256
  ] })
2275
2257
  ]
@@ -2376,74 +2358,19 @@ import { useState as useState6, useEffect as useEffect4, useRef as useRef6 } fro
2376
2358
  import { createPortal as createPortal2 } from "react-dom";
2377
2359
  import { useSearch as useSearch2, useKiku as useKiku3, useAkropolysContext as useAkropolysContext4 } from "@akropolys/sdk";
2378
2360
  import { Fragment as Fragment4, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2379
- var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ jsxs7(
2361
+ var SparkleIcon3 = ({ className, size = 16 }) => /* @__PURE__ */ jsx8(
2380
2362
  "svg",
2381
2363
  {
2382
- className: cn("hsk-brand-a", className),
2364
+ className: cn("hsk-brand-mark", className),
2383
2365
  width: size,
2384
2366
  height: size,
2385
- viewBox: "0 0 28 30",
2386
- fill: "none",
2367
+ viewBox: "0 0 100 100",
2387
2368
  xmlns: "http://www.w3.org/2000/svg",
2388
- "aria-label": "Akropolys",
2389
- children: [
2390
- /* @__PURE__ */ jsx8(
2391
- "path",
2392
- {
2393
- d: "M14.5 4.5 L6.5 25",
2394
- stroke: "currentColor",
2395
- strokeWidth: "2.2",
2396
- strokeLinecap: "round"
2397
- }
2398
- ),
2399
- /* @__PURE__ */ jsx8(
2400
- "path",
2401
- {
2402
- d: "M14.5 4.5 L22.5 25",
2403
- stroke: "currentColor",
2404
- strokeWidth: "4.2",
2405
- strokeLinecap: "round"
2406
- }
2407
- ),
2408
- /* @__PURE__ */ jsx8(
2409
- "path",
2410
- {
2411
- d: "M9.5 17 H19.5",
2412
- stroke: "currentColor",
2413
- strokeWidth: "2",
2414
- strokeLinecap: "round"
2415
- }
2416
- ),
2417
- /* @__PURE__ */ jsx8(
2418
- "path",
2419
- {
2420
- d: "M3 25 H10",
2421
- stroke: "currentColor",
2422
- strokeWidth: "2",
2423
- strokeLinecap: "round"
2424
- }
2425
- ),
2426
- /* @__PURE__ */ jsx8(
2427
- "path",
2428
- {
2429
- d: "M19 25 H26",
2430
- stroke: "currentColor",
2431
- strokeWidth: "2.5",
2432
- strokeLinecap: "round"
2433
- }
2434
- ),
2435
- /* @__PURE__ */ jsx8(
2436
- "path",
2437
- {
2438
- d: "M8.5 2.5 C10 2.5, 11 3.5, 11 5 C11 7, 8.5 8.5, 7.5 9.5",
2439
- stroke: "currentColor",
2440
- strokeWidth: "2",
2441
- strokeLinecap: "round",
2442
- fill: "none",
2443
- className: "hsk-akr-breath"
2444
- }
2445
- )
2446
- ]
2369
+ "aria-label": "kiku",
2370
+ children: /* @__PURE__ */ jsxs7("g", { transform: "translate(22.7 19) scale(0.62)", fill: "currentColor", fillRule: "evenodd", children: [
2371
+ /* @__PURE__ */ jsx8("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" }),
2372
+ /* @__PURE__ */ jsx8("circle", { cx: "55", cy: "82", r: "3.4" })
2373
+ ] })
2447
2374
  }
2448
2375
  );
2449
2376
  var CloseIcon2 = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
@@ -2605,7 +2532,7 @@ Question: ${q}`;
2605
2532
  }
2606
2533
  )
2607
2534
  ] }),
2608
- /* @__PURE__ */ jsx8("div", { className: "hsk-sp-header-sub", children: "Akropolys AI Shopping Assistant" })
2535
+ /* @__PURE__ */ jsx8("div", { className: "hsk-sp-header-sub", children: "kiku" })
2609
2536
  ] }),
2610
2537
  /* @__PURE__ */ jsx8("button", { className: "hsk-sp-close", onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ jsx8(CloseIcon2, {}) })
2611
2538
  ] }),