@kelet-ai/feedback-ui 1.1.3 → 1.2.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.
@@ -446,7 +446,7 @@
446
446
  }
447
447
  return context;
448
448
  };
449
- const useDefaultFeedbackHandler = () => {
449
+ const useKeletSignal = () => {
450
450
  const context = require$$0$1.useContext(KeletContext);
451
451
  if (!context) {
452
452
  console.warn(
@@ -458,6 +458,7 @@
458
458
  return context.feedback;
459
459
  }
460
460
  };
461
+ const useDefaultFeedbackHandler = useKeletSignal;
461
462
  const KeletProvider = ({ apiKey, project, baseUrl, children }) => {
462
463
  require$$0$1.useEffect(() => {
463
464
  initEventCapture();
@@ -480,18 +481,20 @@
480
481
  const url = `${resolvedBaseUrl}/api/projects/${project}/signal`;
481
482
  const capturedEvent = getLatestEvent();
482
483
  const metadata = {
483
- ...data.extra_metadata ?? {},
484
+ ...data.metadata ?? {},
484
485
  ...capturedEvent && { $dom_event: capturedEvent }
485
486
  };
486
487
  const req = {
487
488
  session_id: data.session_id,
488
- source: data.source || "EXPLICIT",
489
- vote: data.vote,
490
- explanation: data.explanation,
491
- correction: data.correction,
492
- selection: data.selection,
489
+ kind: data.kind,
490
+ source: data.source,
493
491
  trigger_name: data.trigger_name,
494
- metadata: Object.keys(metadata).length > 0 ? metadata : void 0
492
+ score: data.score,
493
+ value: data.value,
494
+ confidence: data.confidence,
495
+ metadata: Object.keys(metadata).length > 0 ? metadata : void 0,
496
+ timestamp: data.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
497
+ trace_id: data.trace_id
495
498
  };
496
499
  const response = await fetch(url, {
497
500
  method: "POST",
@@ -537,9 +540,7 @@
537
540
  }
538
541
  return { ...slotProps, ...overrideProps };
539
542
  };
540
- const VoteFeedbackContext = require$$0$1.createContext(
541
- null
542
- );
543
+ const VoteFeedbackContext = require$$0$1.createContext(null);
543
544
  const useVoteFeedbackContext = () => {
544
545
  const context = require$$0$1.useContext(VoteFeedbackContext);
545
546
  if (!context) {
@@ -554,10 +555,12 @@
554
555
  onFeedback,
555
556
  defaultText = "",
556
557
  session_id: sessionIdProp,
557
- extra_metadata,
558
- trigger_name
558
+ metadata,
559
+ trigger_name: triggerProp,
560
+ trace_id
559
561
  }) => {
560
562
  const session_id = typeof sessionIdProp === "function" ? sessionIdProp() : sessionIdProp;
563
+ const trigger_name = triggerProp || void 0;
561
564
  const [showPopover, setShowPopover] = require$$0$1.useState(false);
562
565
  const [feedbackText, setFeedbackText] = require$$0$1.useState(defaultText);
563
566
  const [isSubmitting, setIsSubmitting] = require$$0$1.useState(false);
@@ -579,9 +582,12 @@
579
582
  setVote("upvote");
580
583
  const data = {
581
584
  session_id,
582
- vote: "upvote",
583
- ...extra_metadata && { extra_metadata },
584
- ...trigger_name && { trigger_name }
585
+ kind: "feedback",
586
+ source: "human",
587
+ trigger_name,
588
+ score: 1,
589
+ ...metadata && { metadata },
590
+ ...trace_id && { trace_id }
585
591
  };
586
592
  try {
587
593
  setIsSubmitting(true);
@@ -589,15 +595,18 @@
589
595
  } finally {
590
596
  setIsSubmitting(false);
591
597
  }
592
- }, [handler, session_id, extra_metadata, trigger_name]);
598
+ }, [handler, session_id, metadata, trigger_name, trace_id]);
593
599
  const handleDownvote = require$$0$1.useCallback(async () => {
594
600
  setVote("downvote");
595
601
  if (handler) {
596
602
  const data = {
597
603
  session_id,
598
- vote: "downvote",
599
- ...extra_metadata && { extra_metadata },
600
- ...trigger_name && { trigger_name }
604
+ kind: "feedback",
605
+ source: "human",
606
+ trigger_name,
607
+ score: 0,
608
+ ...metadata && { metadata },
609
+ ...trace_id && { trace_id }
601
610
  };
602
611
  try {
603
612
  setIsSubmitting(true);
@@ -617,7 +626,7 @@
617
626
  document.body.appendChild(announcement);
618
627
  setTimeout(() => document.body.removeChild(announcement), 1e3);
619
628
  }, 0);
620
- }, [handler, session_id, extra_metadata, trigger_name]);
629
+ }, [handler, session_id, metadata, trigger_name, trace_id]);
621
630
  const handleTextareaChange = require$$0$1.useCallback(
622
631
  (e) => {
623
632
  setFeedbackText(e.target.value);
@@ -629,10 +638,13 @@
629
638
  if (hasText) {
630
639
  const data = {
631
640
  session_id,
632
- vote: "downvote",
633
- explanation: feedbackText,
634
- ...extra_metadata && { extra_metadata },
635
- ...trigger_name && { trigger_name }
641
+ kind: "feedback",
642
+ source: "human",
643
+ trigger_name,
644
+ score: 0,
645
+ value: feedbackText,
646
+ ...metadata && { metadata },
647
+ ...trace_id && { trace_id }
636
648
  };
637
649
  try {
638
650
  setIsSubmitting(true);
@@ -657,8 +669,9 @@
657
669
  feedbackText,
658
670
  defaultText,
659
671
  session_id,
660
- extra_metadata,
661
- trigger_name
672
+ metadata,
673
+ trigger_name,
674
+ trace_id
662
675
  ]);
663
676
  const handleKeyDown = require$$0$1.useCallback(
664
677
  (e) => {
@@ -709,8 +722,9 @@
709
722
  popoverId,
710
723
  triggerId,
711
724
  session_id,
712
- extra_metadata,
713
- trigger_name
725
+ metadata,
726
+ trigger_name,
727
+ trace_id
714
728
  };
715
729
  return /* @__PURE__ */ jsxRuntimeExports.jsx(VoteFeedbackContext.Provider, { value: contextValue, children });
716
730
  };
@@ -1346,223 +1360,6 @@
1346
1360
  return deepDiff$1.exports;
1347
1361
  }
1348
1362
  var deepDiffExports = requireDeepDiff();
1349
- var levenshtein$1 = { exports: {} };
1350
- const peq = new Uint32Array(65536);
1351
- const myers_32 = (a, b) => {
1352
- const n = a.length;
1353
- const m = b.length;
1354
- const lst = 1 << n - 1;
1355
- let pv = -1;
1356
- let mv = 0;
1357
- let sc = n;
1358
- let i = n;
1359
- while (i--) {
1360
- peq[a.charCodeAt(i)] |= 1 << i;
1361
- }
1362
- for (i = 0; i < m; i++) {
1363
- let eq = peq[b.charCodeAt(i)];
1364
- const xv = eq | mv;
1365
- eq |= (eq & pv) + pv ^ pv;
1366
- mv |= ~(eq | pv);
1367
- pv &= eq;
1368
- if (mv & lst) {
1369
- sc++;
1370
- }
1371
- if (pv & lst) {
1372
- sc--;
1373
- }
1374
- mv = mv << 1 | 1;
1375
- pv = pv << 1 | ~(xv | mv);
1376
- mv &= xv;
1377
- }
1378
- i = n;
1379
- while (i--) {
1380
- peq[a.charCodeAt(i)] = 0;
1381
- }
1382
- return sc;
1383
- };
1384
- const myers_x = (b, a) => {
1385
- const n = a.length;
1386
- const m = b.length;
1387
- const mhc = [];
1388
- const phc = [];
1389
- const hsize = Math.ceil(n / 32);
1390
- const vsize = Math.ceil(m / 32);
1391
- for (let i = 0; i < hsize; i++) {
1392
- phc[i] = -1;
1393
- mhc[i] = 0;
1394
- }
1395
- let j = 0;
1396
- for (; j < vsize - 1; j++) {
1397
- let mv2 = 0;
1398
- let pv2 = -1;
1399
- const start2 = j * 32;
1400
- const vlen2 = Math.min(32, m) + start2;
1401
- for (let k = start2; k < vlen2; k++) {
1402
- peq[b.charCodeAt(k)] |= 1 << k;
1403
- }
1404
- for (let i = 0; i < n; i++) {
1405
- const eq = peq[a.charCodeAt(i)];
1406
- const pb = phc[i / 32 | 0] >>> i & 1;
1407
- const mb = mhc[i / 32 | 0] >>> i & 1;
1408
- const xv = eq | mv2;
1409
- const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
1410
- let ph = mv2 | ~(xh | pv2);
1411
- let mh = pv2 & xh;
1412
- if (ph >>> 31 ^ pb) {
1413
- phc[i / 32 | 0] ^= 1 << i;
1414
- }
1415
- if (mh >>> 31 ^ mb) {
1416
- mhc[i / 32 | 0] ^= 1 << i;
1417
- }
1418
- ph = ph << 1 | pb;
1419
- mh = mh << 1 | mb;
1420
- pv2 = mh | ~(xv | ph);
1421
- mv2 = ph & xv;
1422
- }
1423
- for (let k = start2; k < vlen2; k++) {
1424
- peq[b.charCodeAt(k)] = 0;
1425
- }
1426
- }
1427
- let mv = 0;
1428
- let pv = -1;
1429
- const start = j * 32;
1430
- const vlen = Math.min(32, m - start) + start;
1431
- for (let k = start; k < vlen; k++) {
1432
- peq[b.charCodeAt(k)] |= 1 << k;
1433
- }
1434
- let score = m;
1435
- for (let i = 0; i < n; i++) {
1436
- const eq = peq[a.charCodeAt(i)];
1437
- const pb = phc[i / 32 | 0] >>> i & 1;
1438
- const mb = mhc[i / 32 | 0] >>> i & 1;
1439
- const xv = eq | mv;
1440
- const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
1441
- let ph = mv | ~(xh | pv);
1442
- let mh = pv & xh;
1443
- score += ph >>> m - 1 & 1;
1444
- score -= mh >>> m - 1 & 1;
1445
- if (ph >>> 31 ^ pb) {
1446
- phc[i / 32 | 0] ^= 1 << i;
1447
- }
1448
- if (mh >>> 31 ^ mb) {
1449
- mhc[i / 32 | 0] ^= 1 << i;
1450
- }
1451
- ph = ph << 1 | pb;
1452
- mh = mh << 1 | mb;
1453
- pv = mh | ~(xv | ph);
1454
- mv = ph & xv;
1455
- }
1456
- for (let k = start; k < vlen; k++) {
1457
- peq[b.charCodeAt(k)] = 0;
1458
- }
1459
- return score;
1460
- };
1461
- const distance = (a, b) => {
1462
- if (a.length < b.length) {
1463
- const tmp = b;
1464
- b = a;
1465
- a = tmp;
1466
- }
1467
- if (b.length === 0) {
1468
- return a.length;
1469
- }
1470
- if (a.length <= 32) {
1471
- return myers_32(a, b);
1472
- }
1473
- return myers_x(a, b);
1474
- };
1475
- const closest = (str, arr) => {
1476
- let min_distance = Infinity;
1477
- let min_index = 0;
1478
- for (let i = 0; i < arr.length; i++) {
1479
- const dist = distance(str, arr[i]);
1480
- if (dist < min_distance) {
1481
- min_distance = dist;
1482
- min_index = i;
1483
- }
1484
- }
1485
- return arr[min_index];
1486
- };
1487
- const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1488
- __proto__: null,
1489
- closest,
1490
- distance
1491
- }, Symbol.toStringTag, { value: "Module" }));
1492
- const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
1493
- var hasRequiredLevenshtein;
1494
- function requireLevenshtein() {
1495
- if (hasRequiredLevenshtein) return levenshtein$1.exports;
1496
- hasRequiredLevenshtein = 1;
1497
- (function(module2, exports3) {
1498
- (function() {
1499
- var collator;
1500
- try {
1501
- collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
1502
- } catch (err) {
1503
- console.log("Collator could not be initialized and wouldn't be used");
1504
- }
1505
- var levenshtein2 = require$$0;
1506
- var prevRow = [], str2Char = [];
1507
- var Levenshtein = {
1508
- /**
1509
- * Calculate levenshtein distance of the two strings.
1510
- *
1511
- * @param str1 String the first string.
1512
- * @param str2 String the second string.
1513
- * @param [options] Additional options.
1514
- * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
1515
- * @return Integer the levenshtein distance (0 and above).
1516
- */
1517
- get: function(str1, str2, options) {
1518
- var useCollator = options && collator && options.useCollator;
1519
- if (useCollator) {
1520
- var str1Len = str1.length, str2Len = str2.length;
1521
- if (str1Len === 0) return str2Len;
1522
- if (str2Len === 0) return str1Len;
1523
- var curCol, nextCol, i, j, tmp;
1524
- for (i = 0; i < str2Len; ++i) {
1525
- prevRow[i] = i;
1526
- str2Char[i] = str2.charCodeAt(i);
1527
- }
1528
- prevRow[str2Len] = str2Len;
1529
- var strCmp;
1530
- for (i = 0; i < str1Len; ++i) {
1531
- nextCol = i + 1;
1532
- for (j = 0; j < str2Len; ++j) {
1533
- curCol = nextCol;
1534
- strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
1535
- nextCol = prevRow[j] + (strCmp ? 0 : 1);
1536
- tmp = curCol + 1;
1537
- if (nextCol > tmp) {
1538
- nextCol = tmp;
1539
- }
1540
- tmp = prevRow[j + 1] + 1;
1541
- if (nextCol > tmp) {
1542
- nextCol = tmp;
1543
- }
1544
- prevRow[j] = curCol;
1545
- }
1546
- prevRow[j] = nextCol;
1547
- }
1548
- return nextCol;
1549
- }
1550
- return levenshtein2.distance(str1, str2);
1551
- }
1552
- };
1553
- if (module2 !== null && true && module2.exports === exports3) {
1554
- module2.exports = Levenshtein;
1555
- } else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
1556
- self.Levenshtein = Levenshtein;
1557
- } else if (typeof window !== "undefined" && window !== null) {
1558
- window.Levenshtein = Levenshtein;
1559
- }
1560
- })();
1561
- })(levenshtein$1, levenshtein$1.exports);
1562
- return levenshtein$1.exports;
1563
- }
1564
- var levenshteinExports = requireLevenshtein();
1565
- const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
1566
1363
  class Diff {
1567
1364
  diff(oldStr, newStr, options = {}) {
1568
1365
  let callback;
@@ -1972,6 +1769,223 @@
1972
1769
  }
1973
1770
  return result;
1974
1771
  }
1772
+ var levenshtein$1 = { exports: {} };
1773
+ const peq = new Uint32Array(65536);
1774
+ const myers_32 = (a, b) => {
1775
+ const n = a.length;
1776
+ const m = b.length;
1777
+ const lst = 1 << n - 1;
1778
+ let pv = -1;
1779
+ let mv = 0;
1780
+ let sc = n;
1781
+ let i = n;
1782
+ while (i--) {
1783
+ peq[a.charCodeAt(i)] |= 1 << i;
1784
+ }
1785
+ for (i = 0; i < m; i++) {
1786
+ let eq = peq[b.charCodeAt(i)];
1787
+ const xv = eq | mv;
1788
+ eq |= (eq & pv) + pv ^ pv;
1789
+ mv |= ~(eq | pv);
1790
+ pv &= eq;
1791
+ if (mv & lst) {
1792
+ sc++;
1793
+ }
1794
+ if (pv & lst) {
1795
+ sc--;
1796
+ }
1797
+ mv = mv << 1 | 1;
1798
+ pv = pv << 1 | ~(xv | mv);
1799
+ mv &= xv;
1800
+ }
1801
+ i = n;
1802
+ while (i--) {
1803
+ peq[a.charCodeAt(i)] = 0;
1804
+ }
1805
+ return sc;
1806
+ };
1807
+ const myers_x = (b, a) => {
1808
+ const n = a.length;
1809
+ const m = b.length;
1810
+ const mhc = [];
1811
+ const phc = [];
1812
+ const hsize = Math.ceil(n / 32);
1813
+ const vsize = Math.ceil(m / 32);
1814
+ for (let i = 0; i < hsize; i++) {
1815
+ phc[i] = -1;
1816
+ mhc[i] = 0;
1817
+ }
1818
+ let j = 0;
1819
+ for (; j < vsize - 1; j++) {
1820
+ let mv2 = 0;
1821
+ let pv2 = -1;
1822
+ const start2 = j * 32;
1823
+ const vlen2 = Math.min(32, m) + start2;
1824
+ for (let k = start2; k < vlen2; k++) {
1825
+ peq[b.charCodeAt(k)] |= 1 << k;
1826
+ }
1827
+ for (let i = 0; i < n; i++) {
1828
+ const eq = peq[a.charCodeAt(i)];
1829
+ const pb = phc[i / 32 | 0] >>> i & 1;
1830
+ const mb = mhc[i / 32 | 0] >>> i & 1;
1831
+ const xv = eq | mv2;
1832
+ const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
1833
+ let ph = mv2 | ~(xh | pv2);
1834
+ let mh = pv2 & xh;
1835
+ if (ph >>> 31 ^ pb) {
1836
+ phc[i / 32 | 0] ^= 1 << i;
1837
+ }
1838
+ if (mh >>> 31 ^ mb) {
1839
+ mhc[i / 32 | 0] ^= 1 << i;
1840
+ }
1841
+ ph = ph << 1 | pb;
1842
+ mh = mh << 1 | mb;
1843
+ pv2 = mh | ~(xv | ph);
1844
+ mv2 = ph & xv;
1845
+ }
1846
+ for (let k = start2; k < vlen2; k++) {
1847
+ peq[b.charCodeAt(k)] = 0;
1848
+ }
1849
+ }
1850
+ let mv = 0;
1851
+ let pv = -1;
1852
+ const start = j * 32;
1853
+ const vlen = Math.min(32, m - start) + start;
1854
+ for (let k = start; k < vlen; k++) {
1855
+ peq[b.charCodeAt(k)] |= 1 << k;
1856
+ }
1857
+ let score = m;
1858
+ for (let i = 0; i < n; i++) {
1859
+ const eq = peq[a.charCodeAt(i)];
1860
+ const pb = phc[i / 32 | 0] >>> i & 1;
1861
+ const mb = mhc[i / 32 | 0] >>> i & 1;
1862
+ const xv = eq | mv;
1863
+ const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
1864
+ let ph = mv | ~(xh | pv);
1865
+ let mh = pv & xh;
1866
+ score += ph >>> m - 1 & 1;
1867
+ score -= mh >>> m - 1 & 1;
1868
+ if (ph >>> 31 ^ pb) {
1869
+ phc[i / 32 | 0] ^= 1 << i;
1870
+ }
1871
+ if (mh >>> 31 ^ mb) {
1872
+ mhc[i / 32 | 0] ^= 1 << i;
1873
+ }
1874
+ ph = ph << 1 | pb;
1875
+ mh = mh << 1 | mb;
1876
+ pv = mh | ~(xv | ph);
1877
+ mv = ph & xv;
1878
+ }
1879
+ for (let k = start; k < vlen; k++) {
1880
+ peq[b.charCodeAt(k)] = 0;
1881
+ }
1882
+ return score;
1883
+ };
1884
+ const distance = (a, b) => {
1885
+ if (a.length < b.length) {
1886
+ const tmp = b;
1887
+ b = a;
1888
+ a = tmp;
1889
+ }
1890
+ if (b.length === 0) {
1891
+ return a.length;
1892
+ }
1893
+ if (a.length <= 32) {
1894
+ return myers_32(a, b);
1895
+ }
1896
+ return myers_x(a, b);
1897
+ };
1898
+ const closest = (str, arr) => {
1899
+ let min_distance = Infinity;
1900
+ let min_index = 0;
1901
+ for (let i = 0; i < arr.length; i++) {
1902
+ const dist = distance(str, arr[i]);
1903
+ if (dist < min_distance) {
1904
+ min_distance = dist;
1905
+ min_index = i;
1906
+ }
1907
+ }
1908
+ return arr[min_index];
1909
+ };
1910
+ const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1911
+ __proto__: null,
1912
+ closest,
1913
+ distance
1914
+ }, Symbol.toStringTag, { value: "Module" }));
1915
+ const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
1916
+ var hasRequiredLevenshtein;
1917
+ function requireLevenshtein() {
1918
+ if (hasRequiredLevenshtein) return levenshtein$1.exports;
1919
+ hasRequiredLevenshtein = 1;
1920
+ (function(module2, exports3) {
1921
+ (function() {
1922
+ var collator;
1923
+ try {
1924
+ collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
1925
+ } catch (err) {
1926
+ console.log("Collator could not be initialized and wouldn't be used");
1927
+ }
1928
+ var levenshtein2 = require$$0;
1929
+ var prevRow = [], str2Char = [];
1930
+ var Levenshtein = {
1931
+ /**
1932
+ * Calculate levenshtein distance of the two strings.
1933
+ *
1934
+ * @param str1 String the first string.
1935
+ * @param str2 String the second string.
1936
+ * @param [options] Additional options.
1937
+ * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
1938
+ * @return Integer the levenshtein distance (0 and above).
1939
+ */
1940
+ get: function(str1, str2, options) {
1941
+ var useCollator = options && collator && options.useCollator;
1942
+ if (useCollator) {
1943
+ var str1Len = str1.length, str2Len = str2.length;
1944
+ if (str1Len === 0) return str2Len;
1945
+ if (str2Len === 0) return str1Len;
1946
+ var curCol, nextCol, i, j, tmp;
1947
+ for (i = 0; i < str2Len; ++i) {
1948
+ prevRow[i] = i;
1949
+ str2Char[i] = str2.charCodeAt(i);
1950
+ }
1951
+ prevRow[str2Len] = str2Len;
1952
+ var strCmp;
1953
+ for (i = 0; i < str1Len; ++i) {
1954
+ nextCol = i + 1;
1955
+ for (j = 0; j < str2Len; ++j) {
1956
+ curCol = nextCol;
1957
+ strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
1958
+ nextCol = prevRow[j] + (strCmp ? 0 : 1);
1959
+ tmp = curCol + 1;
1960
+ if (nextCol > tmp) {
1961
+ nextCol = tmp;
1962
+ }
1963
+ tmp = prevRow[j + 1] + 1;
1964
+ if (nextCol > tmp) {
1965
+ nextCol = tmp;
1966
+ }
1967
+ prevRow[j] = curCol;
1968
+ }
1969
+ prevRow[j] = nextCol;
1970
+ }
1971
+ return nextCol;
1972
+ }
1973
+ return levenshtein2.distance(str1, str2);
1974
+ }
1975
+ };
1976
+ if (module2 !== null && true && module2.exports === exports3) {
1977
+ module2.exports = Levenshtein;
1978
+ } else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
1979
+ self.Levenshtein = Levenshtein;
1980
+ } else if (typeof window !== "undefined" && window !== null) {
1981
+ window.Levenshtein = Levenshtein;
1982
+ }
1983
+ })();
1984
+ })(levenshtein$1, levenshtein$1.exports);
1985
+ return levenshtein$1.exports;
1986
+ }
1987
+ var levenshteinExports = requireLevenshtein();
1988
+ const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
1975
1989
  function formatDiff(oldValue, newValue, diffType = "git", context = 1) {
1976
1990
  switch (diffType) {
1977
1991
  case "git":
@@ -2148,25 +2162,17 @@
2148
2162
  (startState, endState, triggerName) => {
2149
2163
  const diffPercentage = calculateDiffPercentage(startState, endState);
2150
2164
  const diffString = formatDiff(startState, endState, diffType);
2151
- let vote;
2152
- if (options?.vote) {
2153
- if (typeof options.vote === "function") {
2154
- vote = options.vote(startState, endState, diffPercentage);
2155
- } else {
2156
- vote = options.vote;
2157
- }
2158
- } else {
2159
- vote = diffPercentage > 0.5 ? "downvote" : "upvote";
2160
- }
2165
+ const score = typeof options?.score === "function" ? options.score(startState, endState, diffPercentage) : options?.score ?? (diffPercentage > 0.5 ? 0 : 1);
2161
2166
  const idString = typeof session_id === "function" ? session_id(endState) : session_id;
2162
2167
  feedbackHandler({
2163
2168
  session_id: idString,
2164
- vote,
2165
- explanation: `State change with diff percentage: ${(diffPercentage * 100).toFixed(1)}%`,
2166
- correction: diffString,
2167
- source: "IMPLICIT",
2168
- extra_metadata: options?.metadata,
2169
- trigger_name: triggerName
2169
+ kind: "edit",
2170
+ source: "human",
2171
+ trigger_name: triggerName,
2172
+ score,
2173
+ value: diffString,
2174
+ confidence: diffPercentage,
2175
+ metadata: options?.metadata
2170
2176
  });
2171
2177
  },
2172
2178
  [options, session_id, diffType, feedbackHandler]
@@ -2273,6 +2279,7 @@
2273
2279
  exports2.useDefaultFeedbackHandler = useDefaultFeedbackHandler;
2274
2280
  exports2.useFeedbackState = useFeedbackState;
2275
2281
  exports2.useKelet = useKelet;
2282
+ exports2.useKeletSignal = useKeletSignal;
2276
2283
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
2277
2284
  });
2278
2285
  //# sourceMappingURL=feedback-ui.umd.js.map