@feathery/react 2.31.0 → 2.32.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.
Files changed (90) hide show
  1. package/cjs/Form/index.d.ts.map +1 -1
  2. package/cjs/assistant/index.d.ts +4 -8
  3. package/cjs/assistant/index.d.ts.map +1 -1
  4. package/cjs/assistant/utils.d.ts +23 -0
  5. package/cjs/assistant/utils.d.ts.map +1 -0
  6. package/cjs/{fthry_FormControl.WIYoX7l6.js → fthry_FormControl.BtNu9i-u.js} +1 -1
  7. package/cjs/{fthry_InlineTooltip.C6Kf0Ff-.js → fthry_InlineTooltip.DuFB8p7w.js} +2 -2
  8. package/cjs/{fthry_Overlay.JRkHffzB.js → fthry_Overlay.DqGyzI8W.js} +1 -1
  9. package/cjs/{fthry_PaymentMethodField.DvPj_Lup.js → fthry_PaymentMethodField.D0kI1ZxS.js} +4 -4
  10. package/cjs/{fthry_Placeholder.luXrF_m_.js → fthry_Placeholder.WRNgQX3l.js} +1 -1
  11. package/cjs/{fthry_ShowEyeIcon.cWxfPj5A.js → fthry_ShowEyeIcon.1seA7I1l.js} +1 -1
  12. package/cjs/{fthry_index.7lPT7adc.js → fthry_index.B96nzeqy.js} +4 -4
  13. package/cjs/{fthry_index.DtcJ5ShY.js → fthry_index.BEVaTA54.js} +3 -3
  14. package/cjs/{fthry_index.TgxeIOKY.js → fthry_index.BI7CrYad.js} +2 -2
  15. package/cjs/{fthry_index.BS2jEY70.js → fthry_index.BM4ep-AK.js} +5 -5
  16. package/cjs/{fthry_index.C4a2Ic12.js → fthry_index.BTKf9mxG.js} +1 -1
  17. package/cjs/{fthry_index.B1gH_Pb_.js → fthry_index.B_-iRvUH.js} +4 -4
  18. package/cjs/{fthry_index.CcK_Svsf.js → fthry_index.BccfyVDL.js} +6 -6
  19. package/cjs/{fthry_index.BT0N_ojJ.js → fthry_index.BhC7LkQw.js} +5 -5
  20. package/cjs/{fthry_index.Bxz6SYIg.js → fthry_index.BvkC5P1Q.js} +6 -6
  21. package/cjs/{fthry_index.D_RuNzwI.js → fthry_index.C6CH7RhD.js} +8 -8
  22. package/cjs/{fthry_index.DWS39de6.js → fthry_index.C7hxyJ9f.js} +1 -1
  23. package/cjs/{fthry_index.Be2Fs97T.js → fthry_index.CBJimbrX.js} +5 -5
  24. package/cjs/{fthry_index.DtiRdy95.js → fthry_index.CGQA5QkX.js} +3 -3
  25. package/cjs/{fthry_index.W-9IfXEV.js → fthry_index.CUO7vSY3.js} +4 -4
  26. package/cjs/{fthry_index.IHqwZyC3.js → fthry_index.CiXHBkVl.js} +359 -51
  27. package/cjs/{fthry_index.C51tqyoq.js → fthry_index.D4RrBVB-.js} +1 -1
  28. package/cjs/{fthry_index.BAf-75T4.js → fthry_index.DbijQ61t.js} +1 -1
  29. package/cjs/{fthry_index.Caau3hdX.js → fthry_index.DloMkPdT.js} +5 -5
  30. package/cjs/{fthry_index.CmAB9Ar7.js → fthry_index.J4GcA3vx.js} +1 -1
  31. package/cjs/{fthry_index.CfElaaWV.js → fthry_index.KbHjZiIM.js} +6 -6
  32. package/cjs/{fthry_index.Ax4XuQ-W.js → fthry_index.TK6Jx-jy.js} +1 -1
  33. package/cjs/{fthry_index.DdSDwu2Z.js → fthry_index.WRjuuH9z.js} +1 -1
  34. package/cjs/{fthry_index.Io4u55nU.js → fthry_index.Z6a5kUfj.js} +1 -1
  35. package/cjs/{fthry_index.B_WCqLEf.js → fthry_index.oVFShAC8.js} +2 -2
  36. package/cjs/{fthry_input.QMSUSm2J.js → fthry_input.CUTC1cQr.js} +1 -1
  37. package/cjs/{fthry_script.Bnnc8FZ3.js → fthry_script.DRtiXuhL.js} +1 -1
  38. package/cjs/{fthry_styles.MX1EKxvQ.js → fthry_styles.MGVgRzzA.js} +1 -1
  39. package/cjs/{fthry_useElementSize.Dup4Oq53.js → fthry_useElementSize.DXcMVgAq.js} +1 -1
  40. package/cjs/{fthry_useSalesforceSync.D0kLb1UT.js → fthry_useSalesforceSync.C87PZunf.js} +1 -1
  41. package/cjs/{fthry_webfontloader.C-AsnAPa.js → fthry_webfontloader.CVSP2Jc5.js} +1 -1
  42. package/cjs/index.d.ts +0 -1
  43. package/cjs/index.d.ts.map +1 -1
  44. package/cjs/index.js +1 -1
  45. package/dist/Form/index.d.ts.map +1 -1
  46. package/dist/assistant/index.d.ts +4 -8
  47. package/dist/assistant/index.d.ts.map +1 -1
  48. package/dist/assistant/utils.d.ts +23 -0
  49. package/dist/assistant/utils.d.ts.map +1 -0
  50. package/dist/{fthry_FormControl.DEleJ-Vj.js → fthry_FormControl.C9K2iuFX.js} +1 -1
  51. package/dist/{fthry_InlineTooltip.DeG1g5MU.js → fthry_InlineTooltip.CQ84q5tx.js} +2 -2
  52. package/dist/{fthry_Overlay.CtQBdlg7.js → fthry_Overlay.CaTGHPrf.js} +1 -1
  53. package/dist/{fthry_PaymentMethodField.CryiQIpT.js → fthry_PaymentMethodField.CLy4llPE.js} +4 -4
  54. package/dist/{fthry_Placeholder.Bel7e4T4.js → fthry_Placeholder.C8DX1xTT.js} +1 -1
  55. package/dist/{fthry_ShowEyeIcon.BeXoEyvh.js → fthry_ShowEyeIcon.CLCEl1M3.js} +1 -1
  56. package/dist/{fthry_index.D_JQEcg-.js → fthry_index.8KDT5i8T.js} +4 -4
  57. package/dist/{fthry_index.D9GA9x4P.js → fthry_index.9-q7smC3.js} +3 -3
  58. package/dist/{fthry_index.F3kjcuAK.js → fthry_index.B-oOxFi4.js} +1 -1
  59. package/dist/{fthry_index.DclrMlf2.js → fthry_index.B260ADJ4.js} +5 -5
  60. package/dist/{fthry_index.CUF2y3Aa.js → fthry_index.BZD_DEzj.js} +1 -1
  61. package/dist/{fthry_index.Bi8oY0jk.js → fthry_index.BjpHx4_T.js} +5 -5
  62. package/dist/{fthry_index.y9utv2Db.js → fthry_index.C1_uGweo.js} +1 -1
  63. package/dist/{fthry_index.ClSefCHf.js → fthry_index.C5zUlrOm.js} +1 -1
  64. package/dist/{fthry_index.DKiSNQ6p.js → fthry_index.CLgjzDTi.js} +1 -1
  65. package/dist/{fthry_index.CVQd320z.js → fthry_index.CYyOgKWx.js} +8 -8
  66. package/dist/{fthry_index.DtrV_j07.js → fthry_index.CeglQZhs.js} +1 -1
  67. package/dist/{fthry_index.Bk-p0axS.js → fthry_index.CmpLevaj.js} +6 -6
  68. package/dist/{fthry_index.By9Va7yz.js → fthry_index.CqNn14xm.js} +6 -6
  69. package/dist/{fthry_index.DSS7GFbG.js → fthry_index.DKYX71gD.js} +4 -4
  70. package/dist/{fthry_index.Bb9yC_Hb.js → fthry_index.DQsvec3-.js} +3 -3
  71. package/dist/{fthry_index.CMh4cU_z.js → fthry_index.Ddf14JA6.js} +359 -51
  72. package/dist/{fthry_index.0A10yDWO.js → fthry_index.DmcD0QUi.js} +1 -1
  73. package/dist/{fthry_index.C9r-2T-9.js → fthry_index.DoGwIkbA.js} +6 -6
  74. package/dist/{fthry_index.DR8HsKVo.js → fthry_index.DqKZq0Ur.js} +4 -4
  75. package/dist/{fthry_index.Dkg3j5xH.js → fthry_index.WnliJHmX.js} +2 -2
  76. package/dist/{fthry_index.D7lNVIgD.js → fthry_index.hyYvw_PS.js} +1 -1
  77. package/dist/{fthry_index.sWxp-JjY.js → fthry_index.kP74GhA8.js} +5 -5
  78. package/dist/{fthry_index.Dxpjw81y.js → fthry_index.qJQlILVx.js} +5 -5
  79. package/dist/{fthry_index.BNi8VaMz.js → fthry_index.ty8LJs-R.js} +2 -2
  80. package/dist/{fthry_input.DlZicl10.js → fthry_input.DjzutNam.js} +1 -1
  81. package/dist/{fthry_script.BjtIkib6.js → fthry_script.DO2CsvZO.js} +1 -1
  82. package/dist/{fthry_styles.Dxs0EByz.js → fthry_styles.Ccd48IiB.js} +1 -1
  83. package/dist/{fthry_useElementSize.BeQYF72J.js → fthry_useElementSize.C-0G4BJy.js} +1 -1
  84. package/dist/{fthry_useSalesforceSync.DcCcNLS2.js → fthry_useSalesforceSync.B6wBqJLI.js} +1 -1
  85. package/dist/{fthry_webfontloader.B7FGEMJA.js → fthry_webfontloader.MZhbLTEd.js} +1 -1
  86. package/dist/index.d.ts +0 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +1 -1
  89. package/package.json +1 -1
  90. package/umd/index.js +1 -1
@@ -39832,9 +39832,15 @@ function Form(_a) {
39832
39832
  var transport = React.useMemo(function () {
39833
39833
  var _a = initInfo(), sdkKey = _a.sdkKey, userId = _a.userId;
39834
39834
  return {
39835
- url: "".concat(API_URL, "ai/assistant/chat/"),
39836
- headers: { Authorization: "Token ".concat(sdkKey) },
39837
- body: { form_id: formId, fuser_key: userId }
39835
+ url: "".concat(API_URL, "ai/assistant/"),
39836
+ headers: function () {
39837
+ var sessionJwt = getCookie('feathery_session_token');
39838
+ return {
39839
+ Authorization: "Token ".concat(sdkKey),
39840
+ 'X-Feathery-Session': sessionJwt
39841
+ };
39842
+ },
39843
+ body: { form_key: formId, fuser_key: userId }
39838
39844
  };
39839
39845
  }, [formId]);
39840
39846
  var extractedSharedCodeInfo = React.useMemo(function () {
@@ -46125,9 +46131,9 @@ function init(sdkKey, options) {
46125
46131
  if (runningInClient()) {
46126
46132
  // Dynamically load libraries that must be client side
46127
46133
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
46128
- /* webpackChunkName: "scriptjs" */ './fthry_script.Bnnc8FZ3.js'); }).then(function (n) { return n.script; });
46134
+ /* webpackChunkName: "scriptjs" */ './fthry_script.DRtiXuhL.js'); }).then(function (n) { return n.script; });
46129
46135
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
46130
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.C-AsnAPa.js'); }).then(function (n) { return n.webfontloader; });
46136
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.CVSP2Jc5.js'); }).then(function (n) { return n.webfontloader; });
46131
46137
  // Client-side tracking logic
46132
46138
  if (initState.userTracking === 'cookie') {
46133
46139
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -46273,7 +46279,7 @@ function getFieldValues() {
46273
46279
  return exports.__assign({}, exports.fieldValues);
46274
46280
  }
46275
46281
  function logFeatheryBadge() {
46276
- console.log('%c Feathery %c v' + "2.31.0" + ' ', // replaced with real version during build
46282
+ console.log('%c Feathery %c v' + "2.32.0" + ' ', // replaced with real version during build
46277
46283
  'background: #e2626e; color: white; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;', 'background: #fce7e9; color: #c5495a; padding: 2px 6px; border-radius: 0 3px 3px 0;');
46278
46284
  }
46279
46285
 
@@ -47755,39 +47761,39 @@ breakpoint) {
47755
47761
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
47756
47762
  };
47757
47763
 
47758
- var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BT0N_ojJ.js'); }); });
47759
- var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.7lPT7adc.js'); }); });
47760
- var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.BAf-75T4.js'); }); });
47764
+ var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BhC7LkQw.js'); }); });
47765
+ var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.B96nzeqy.js'); }); });
47766
+ var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.DbijQ61t.js'); }); });
47761
47767
  var CheckboxGroupField = React.lazy(function () {
47762
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Bxz6SYIg.js'); });
47768
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.BvkC5P1Q.js'); });
47763
47769
  });
47764
- var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.C4a2Ic12.js'); }); });
47765
- var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.Ax4XuQ-W.js'); }); });
47770
+ var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.BTKf9mxG.js'); }); });
47771
+ var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.TK6Jx-jy.js'); }); });
47766
47772
  var DateSelectorField = React.lazy(function () {
47767
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.CcK_Svsf.js'); });
47773
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.BccfyVDL.js'); });
47768
47774
  });
47769
- var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.W-9IfXEV.js'); }); });
47775
+ var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.CUO7vSY3.js'); }); });
47770
47776
  var DropdownMultiField = React.lazy(function () {
47771
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BS2jEY70.js'); });
47777
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BM4ep-AK.js'); });
47772
47778
  });
47773
- var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.DWS39de6.js'); }); });
47774
- var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.DtcJ5ShY.js'); }); });
47775
- var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.Be2Fs97T.js'); }); });
47779
+ var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.C7hxyJ9f.js'); }); });
47780
+ var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.BEVaTA54.js'); }); });
47781
+ var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.CBJimbrX.js'); }); });
47776
47782
  var PaymentMethodField = React.lazy(function () {
47777
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.DvPj_Lup.js'); });
47783
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D0kI1ZxS.js'); });
47778
47784
  });
47779
- var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.Caau3hdX.js'); }); });
47780
- var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.C51tqyoq.js'); }); });
47781
- var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.B_WCqLEf.js'); }); });
47785
+ var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DloMkPdT.js'); }); });
47786
+ var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.D4RrBVB-.js'); }); });
47787
+ var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.oVFShAC8.js'); }); });
47782
47788
  var RadioButtonGroupField = React.lazy(function () {
47783
47789
  return Promise.resolve().then(function () { return require(
47784
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CfElaaWV.js'); });
47790
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.KbHjZiIM.js'); });
47785
47791
  });
47786
- var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.DdSDwu2Z.js'); }); });
47787
- var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.DtiRdy95.js'); }); });
47788
- var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.TgxeIOKY.js'); }); });
47789
- var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.D_RuNzwI.js'); }); });
47790
- var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.B1gH_Pb_.js'); }); });
47792
+ var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.WRjuuH9z.js'); }); });
47793
+ var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.CGQA5QkX.js'); }); });
47794
+ var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.BI7CrYad.js'); }); });
47795
+ var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.C6CH7RhD.js'); }); });
47796
+ var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.B_-iRvUH.js'); }); });
47791
47797
  var Fields = {
47792
47798
  AddressLine1: AddressLine1,
47793
47799
  ButtonGroupField: ButtonGroupField,
@@ -48737,7 +48743,7 @@ function ElementSkeleton(_a) {
48737
48743
  }
48738
48744
  var templateObject_1;
48739
48745
 
48740
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.Io4u55nU.js'); }); });
48746
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.Z6a5kUfj.js'); }); });
48741
48747
  var Basic = {
48742
48748
  ImageElement: ImageElement,
48743
48749
  VideoElement: VideoElement,
@@ -58694,34 +58700,261 @@ var MarkdownText = React.memo(function (_a) {
58694
58700
  });
58695
58701
  MarkdownText.displayName = 'MarkdownText';
58696
58702
 
58703
+ var toQueryString = function (params) {
58704
+ var filtered = Object.entries(params)
58705
+ .filter(function (_a) {
58706
+ var _b = __read(_a, 2), v = _b[1];
58707
+ return v !== undefined && v !== null;
58708
+ })
58709
+ .map(function (_a) {
58710
+ var _b = __read(_a, 2), k = _b[0], v = _b[1];
58711
+ return [k, String(v)];
58712
+ });
58713
+ if (!filtered.length)
58714
+ return '';
58715
+ return '?' + new URLSearchParams(filtered).toString();
58716
+ };
58717
+ var getThreadList = function (transport) { return __awaiter$2(void 0, void 0, void 0, function () {
58718
+ var threadsUrl, res;
58719
+ return __generator(this, function (_a) {
58720
+ switch (_a.label) {
58721
+ case 0:
58722
+ threadsUrl = "".concat(transport.url, "threads/").concat(toQueryString(transport.body));
58723
+ return [4 /*yield*/, fetch(threadsUrl, {
58724
+ headers: transport.headers()
58725
+ })];
58726
+ case 1:
58727
+ res = _a.sent();
58728
+ if (!res.ok)
58729
+ return [2 /*return*/, null];
58730
+ return [2 /*return*/, res.json()];
58731
+ }
58732
+ });
58733
+ }); };
58734
+ var getThreadDetail = function (transport, threadId) { return __awaiter$2(void 0, void 0, void 0, function () {
58735
+ var threadsUrl, res;
58736
+ return __generator(this, function (_a) {
58737
+ switch (_a.label) {
58738
+ case 0:
58739
+ threadsUrl = "".concat(transport.url, "threads/").concat(threadId, "/").concat(toQueryString(transport.body));
58740
+ return [4 /*yield*/, fetch(threadsUrl, {
58741
+ headers: transport.headers()
58742
+ })];
58743
+ case 1:
58744
+ res = _a.sent();
58745
+ if (!res.ok)
58746
+ return [2 /*return*/, null];
58747
+ return [2 /*return*/, res.json()];
58748
+ }
58749
+ });
58750
+ }); };
58751
+ var deleteThread = function (transport, threadId) { return __awaiter$2(void 0, void 0, void 0, function () {
58752
+ var threadsUrl;
58753
+ return __generator(this, function (_a) {
58754
+ switch (_a.label) {
58755
+ case 0:
58756
+ threadsUrl = "".concat(transport.url, "threads/").concat(threadId, "/").concat(toQueryString(transport.body));
58757
+ return [4 /*yield*/, fetch(threadsUrl, {
58758
+ method: 'DELETE',
58759
+ headers: transport.headers()
58760
+ })];
58761
+ case 1:
58762
+ _a.sent();
58763
+ return [2 /*return*/];
58764
+ }
58765
+ });
58766
+ }); };
58767
+
58697
58768
  var FAB_SIZE = 56;
58698
58769
  var PANEL_WIDTH = 380;
58699
58770
  var PANEL_HEIGHT = 500;
58700
58771
  var AssistantChat = function (_a) {
58701
- var transport = _a.transport, _b = _a.bottom, bottom = _b === void 0 ? 20 : _b, color = _a.color;
58702
- var _c = __read(React.useState(false), 2), isOpen = _c[0], setIsOpen = _c[1];
58703
- var _d = __read(React.useState(''), 2), input = _d[0], setInput = _d[1];
58772
+ var _b, _c;
58773
+ var transport = _a.transport, _d = _a.bottom, bottom = _d === void 0 ? 20 : _d, color = _a.color;
58774
+ var _e = __read(React.useState(false), 2), isOpen = _e[0], setIsOpen = _e[1];
58775
+ var _f = __read(React.useState(''), 2), input = _f[0], setInput = _f[1];
58776
+ var _g = __read(React.useState([]), 2), threads = _g[0], setThreads = _g[1];
58777
+ var _h = __read(React.useState(null), 2), activeThreadId = _h[0], setActiveThreadId = _h[1];
58778
+ var _j = __read(React.useState(false), 2), isDropdownOpen = _j[0], setIsDropdownOpen = _j[1];
58704
58779
  var messagesEndRef = React.useRef(null);
58705
58780
  var colors = React.useMemo(function () { return getChatColors(color || DEFAULT_CHAT_COLOR); }, [color]);
58706
- // Memoize transport to avoid recreating on every render
58707
- var chatTransport = React.useMemo(function () {
58708
- return new DefaultChatTransport({
58709
- api: transport.url,
58781
+ var makeChat = function (threadId, initialMessages) {
58782
+ if (initialMessages === void 0) { initialMessages = []; }
58783
+ var resolvedThreadId = threadId;
58784
+ var chatTransport = new DefaultChatTransport({
58785
+ api: "".concat(transport.url, "chat/"),
58710
58786
  headers: transport.headers,
58711
- body: transport.body
58787
+ body: function () { return (exports.__assign(exports.__assign({}, transport.body), { thread_id: resolvedThreadId || null })); },
58788
+ fetch: function (url, init) { return __awaiter$2(void 0, void 0, void 0, function () {
58789
+ var res, threadId;
58790
+ return __generator(this, function (_a) {
58791
+ switch (_a.label) {
58792
+ case 0: return [4 /*yield*/, fetch(url, init)];
58793
+ case 1:
58794
+ res = _a.sent();
58795
+ threadId = res.headers.get('X-Thread-Id');
58796
+ if (threadId && !resolvedThreadId) {
58797
+ resolvedThreadId = threadId;
58798
+ setThreads(function (prev) {
58799
+ return prev.map(function (t) {
58800
+ return t.chat === chat ? exports.__assign(exports.__assign({}, t), { id: threadId, isTemporary: false }) : t;
58801
+ });
58802
+ });
58803
+ setActiveThreadId(threadId);
58804
+ getThreadDetail(transport, threadId).then(function (t) {
58805
+ if (t)
58806
+ setThreads(function (prev) {
58807
+ return prev.map(function (thread) {
58808
+ return thread.id === threadId ? exports.__assign(exports.__assign({}, t), { chat: chat }) : thread;
58809
+ });
58810
+ });
58811
+ });
58812
+ }
58813
+ return [2 /*return*/, res];
58814
+ }
58815
+ });
58816
+ }); }
58817
+ });
58818
+ var chat = new Chat({
58819
+ transport: chatTransport,
58820
+ messages: initialMessages,
58821
+ onFinish: function (_a) {
58822
+ var isAbort = _a.isAbort, isError = _a.isError;
58823
+ if (isAbort || isError || !resolvedThreadId)
58824
+ return;
58825
+ setThreads(function (prev) {
58826
+ var thread = prev.find(function (t) { return t.id === resolvedThreadId; });
58827
+ if (!thread)
58828
+ return prev;
58829
+ return __spreadArray([
58830
+ exports.__assign(exports.__assign({}, thread), { updated_at: new Date().toISOString() })
58831
+ ], __read(prev.filter(function (t) { return t.id !== resolvedThreadId; })), false);
58832
+ });
58833
+ }
58712
58834
  });
58713
- }, [transport]);
58835
+ return chat;
58836
+ };
58837
+ var readyChat = React.useMemo(function () { return makeChat(null); }, [transport]);
58838
+ var activeThread = threads.find(function (t) { return t.id === activeThreadId; });
58839
+ var activeChat = (_b = activeThread === null || activeThread === void 0 ? void 0 : activeThread.chat) !== null && _b !== void 0 ? _b : readyChat;
58714
58840
  // @ts-ignore
58715
- var _e = useChat({
58716
- transport: chatTransport
58717
- }), messages = _e.messages, sendMessage = _e.sendMessage, status = _e.status, error = _e.error;
58841
+ var _k = useChat({
58842
+ chat: activeChat
58843
+ }), messages = _k.messages, sendMessage = _k.sendMessage, status = _k.status, error = _k.error;
58718
58844
  // TODO: Implement smooth scroll takeover - stop auto-scroll when user scrolls up
58719
58845
  React.useEffect(function () {
58720
58846
  var _a;
58721
58847
  (_a = messagesEndRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: 'smooth' });
58722
58848
  }, [messages]);
58849
+ var fetchThreads = React.useCallback(function () { return __awaiter$2(void 0, void 0, void 0, function () {
58850
+ var data;
58851
+ return __generator(this, function (_a) {
58852
+ switch (_a.label) {
58853
+ case 0: return [4 /*yield*/, getThreadList(transport)];
58854
+ case 1:
58855
+ data = _a.sent();
58856
+ if (!data)
58857
+ return [2 /*return*/];
58858
+ setThreads(function (prev) { return __spreadArray(__spreadArray([], __read(data.map(function (d) {
58859
+ var _a;
58860
+ return (exports.__assign(exports.__assign({}, d), { chat: (_a = prev.find(function (p) { return p.id === d.id; })) === null || _a === void 0 ? void 0 : _a.chat }));
58861
+ })), false), __read(prev.filter(function (p) { return !data.find(function (d) { return d.id === p.id; }); })), false); });
58862
+ return [2 /*return*/];
58863
+ }
58864
+ });
58865
+ }); }, [transport]);
58866
+ React.useEffect(function () {
58867
+ if (isOpen)
58868
+ fetchThreads();
58869
+ }, [isOpen, fetchThreads]);
58870
+ var handleNewThread = function () {
58871
+ var id = v4$1();
58872
+ var now = new Date().toISOString();
58873
+ var chat = makeChat(null);
58874
+ setThreads(function (prev) { return __spreadArray([
58875
+ {
58876
+ id: id,
58877
+ title: '',
58878
+ created_at: now,
58879
+ updated_at: now,
58880
+ isTemporary: true,
58881
+ chat: chat
58882
+ }
58883
+ ], __read(prev.filter(function (t) { return !t.isTemporary || t.title; })), false); });
58884
+ setActiveThreadId(id);
58885
+ setIsDropdownOpen(false);
58886
+ };
58887
+ var handleSelectThread = function (id) { return __awaiter$2(void 0, void 0, void 0, function () {
58888
+ var thread, chat;
58889
+ var _a, _b;
58890
+ return __generator(this, function (_c) {
58891
+ switch (_c.label) {
58892
+ case 0:
58893
+ if ((_a = threads.find(function (t) { return t.id === id; })) === null || _a === void 0 ? void 0 : _a.chat) {
58894
+ setActiveThreadId(id);
58895
+ setIsDropdownOpen(false);
58896
+ return [2 /*return*/];
58897
+ }
58898
+ return [4 /*yield*/, getThreadDetail(transport, id)];
58899
+ case 1:
58900
+ thread = _c.sent();
58901
+ if (!thread)
58902
+ return [2 /*return*/];
58903
+ chat = makeChat(id, (_b = thread.messages) !== null && _b !== void 0 ? _b : []);
58904
+ setThreads(function (prev) {
58905
+ return prev.map(function (t) { return (t.id === id ? exports.__assign(exports.__assign({}, thread), { chat: chat }) : t); });
58906
+ });
58907
+ setActiveThreadId(id);
58908
+ setIsDropdownOpen(false);
58909
+ return [2 /*return*/];
58910
+ }
58911
+ });
58912
+ }); };
58913
+ var handleDeleteThread = function (id, e) { return __awaiter$2(void 0, void 0, void 0, function () {
58914
+ var thread;
58915
+ return __generator(this, function (_a) {
58916
+ switch (_a.label) {
58917
+ case 0:
58918
+ e.stopPropagation();
58919
+ thread = threads.find(function (t) { return t.id === id; });
58920
+ if (!!(thread === null || thread === void 0 ? void 0 : thread.isTemporary)) return [3 /*break*/, 2];
58921
+ return [4 /*yield*/, deleteThread(transport, id)];
58922
+ case 1:
58923
+ _a.sent();
58924
+ _a.label = 2;
58925
+ case 2:
58926
+ setThreads(function (prev) { return prev.filter(function (t) { return t.id !== id; }); });
58927
+ if (activeThreadId === id)
58928
+ handleNewThread();
58929
+ return [2 /*return*/];
58930
+ }
58931
+ });
58932
+ }); };
58723
58933
  var handleSend = function () {
58724
58934
  if (input.trim() && status === 'ready') {
58935
+ var now_1 = new Date().toISOString();
58936
+ if (!activeThreadId) {
58937
+ // First send, register readyChat as a real thread entry
58938
+ var id_1 = v4$1();
58939
+ setThreads(function (prev) { return __spreadArray([
58940
+ {
58941
+ id: id_1,
58942
+ title: input.trim().slice(0, 60),
58943
+ created_at: now_1,
58944
+ updated_at: now_1,
58945
+ isTemporary: true,
58946
+ chat: activeChat
58947
+ }
58948
+ ], __read(prev), false); });
58949
+ setActiveThreadId(id_1);
58950
+ }
58951
+ else {
58952
+ if (activeThread && !activeThread.title) {
58953
+ setThreads(function (prev) { return __spreadArray([
58954
+ exports.__assign(exports.__assign({}, activeThread), { title: input.trim().slice(0, 60), updated_at: now_1 })
58955
+ ], __read(prev.filter(function (t) { return t.id !== activeThreadId; })), false); });
58956
+ }
58957
+ }
58725
58958
  sendMessage({ text: input });
58726
58959
  setInput('');
58727
58960
  }
@@ -58733,7 +58966,11 @@ var AssistantChat = function (_a) {
58733
58966
  handleSend();
58734
58967
  }
58735
58968
  };
58969
+ // Only show threads that have had at least one message sent
58970
+ var visibleThreads = threads.filter(function (t) { return t.title; });
58736
58971
  var isLoading = status === 'submitted' || status === 'streaming';
58972
+ var hasAssistantMessage = ((_c = messages[messages.length - 1]) === null || _c === void 0 ? void 0 : _c.role) === 'assistant' &&
58973
+ messages[messages.length - 1].parts.length > 0;
58737
58974
  // Collapsed state - show chat bubble
58738
58975
  if (!isOpen) {
58739
58976
  return (jsx$1("button", exports.__assign({ type: 'button', onClick: function () { return setIsOpen(true); }, css: {
@@ -58769,7 +59006,7 @@ var AssistantChat = function (_a) {
58769
59006
  height: "".concat(PANEL_HEIGHT, "px"),
58770
59007
  backgroundColor: 'white',
58771
59008
  borderRadius: '12px',
58772
- boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
59009
+ boxShadow: '0 8px 24px rgba(0, 0, 0, 0.12)',
58773
59010
  border: "1px solid ".concat(GRAY_200),
58774
59011
  display: 'flex',
58775
59012
  flexDirection: 'column',
@@ -58781,8 +59018,21 @@ var AssistantChat = function (_a) {
58781
59018
  justifyContent: 'space-between',
58782
59019
  padding: '12px 16px',
58783
59020
  backgroundColor: colors.primary,
58784
- color: 'white'
58785
- } }, { children: [jsxs("div", exports.__assign({ css: { display: 'flex', alignItems: 'center', gap: '8px' } }, { children: [jsx$1(ChatIcon, {}), jsx$1("span", exports.__assign({ css: { fontWeight: 600, fontSize: '14px' } }, { children: "AI Assistant" }))] })), jsx$1("button", exports.__assign({ type: 'button', onClick: function () { return setIsOpen(false); }, css: {
59021
+ color: 'white',
59022
+ position: 'relative'
59023
+ } }, { children: [jsxs("div", exports.__assign({ css: { display: 'flex', alignItems: 'center', gap: '8px' } }, { children: [jsx$1(ChatIcon, {}), jsxs("button", exports.__assign({ type: 'button', onClick: function () { return setIsDropdownOpen(function (prev) { return !prev; }); }, css: {
59024
+ background: 'none',
59025
+ border: 'none',
59026
+ color: 'white',
59027
+ cursor: 'pointer',
59028
+ fontWeight: 600,
59029
+ fontSize: '14px',
59030
+ padding: '0',
59031
+ display: 'flex',
59032
+ alignItems: 'center',
59033
+ gap: '4px',
59034
+ ':hover': { opacity: 0.85 }
59035
+ } }, { children: [(activeThread === null || activeThread === void 0 ? void 0 : activeThread.title) || 'AI Assistant', jsx$1("span", exports.__assign({ css: { fontSize: '10px', opacity: 0.8 } }, { children: "\u25BE" }))] }))] })), jsx$1("button", exports.__assign({ type: 'button', onClick: function () { return setIsOpen(false); }, css: {
58786
59036
  background: 'none',
58787
59037
  border: 'none',
58788
59038
  color: 'white',
@@ -58795,7 +59045,69 @@ var AssistantChat = function (_a) {
58795
59045
  ':hover': {
58796
59046
  backgroundColor: 'rgba(255, 255, 255, 0.1)'
58797
59047
  }
58798
- } }, { children: jsx$1(MinimizeIcon, {}) }))] })), jsxs("div", exports.__assign({ css: {
59048
+ } }, { children: jsx$1(MinimizeIcon, {}) })), isDropdownOpen && (jsxs(Fragment, { children: [jsx$1("div", { css: { position: 'fixed', inset: 0, zIndex: 1000 }, onClick: function () { return setIsDropdownOpen(false); } }), jsxs("div", exports.__assign({ css: {
59049
+ position: 'absolute',
59050
+ top: '100%',
59051
+ left: 0,
59052
+ width: '100%',
59053
+ backgroundColor: 'white',
59054
+ border: "1px solid ".concat(GRAY_200),
59055
+ borderTop: 'none',
59056
+ borderRadius: '0 0 8px 8px',
59057
+ boxShadow: '0 8px 16px rgba(0,0,0,0.12)',
59058
+ zIndex: 1001,
59059
+ maxHeight: '240px',
59060
+ overflowY: 'auto'
59061
+ } }, { children: [jsx$1("button", exports.__assign({ type: 'button', onClick: handleNewThread, css: {
59062
+ width: '100%',
59063
+ padding: '10px 14px',
59064
+ background: 'none',
59065
+ border: 'none',
59066
+ borderBottom: "1px solid ".concat(GRAY_100),
59067
+ cursor: 'pointer',
59068
+ fontSize: '13px',
59069
+ fontWeight: 600,
59070
+ color: colors.primary,
59071
+ textAlign: 'left',
59072
+ ':hover': { backgroundColor: GRAY_50 }
59073
+ } }, { children: "+ New Thread" })), visibleThreads.length === 0 && (jsx$1("div", exports.__assign({ css: {
59074
+ padding: '12px 14px',
59075
+ fontSize: '13px',
59076
+ color: GRAY_400
59077
+ } }, { children: "No threads yet" }))), visibleThreads.map(function (thread) { return (jsxs("div", exports.__assign({ onClick: function () { return handleSelectThread(thread.id); }, css: {
59078
+ display: 'flex',
59079
+ alignItems: 'center',
59080
+ justifyContent: 'space-between',
59081
+ padding: '10px 14px',
59082
+ cursor: 'pointer',
59083
+ backgroundColor: thread.id === activeThreadId ? colors.light : 'white',
59084
+ ':hover': { backgroundColor: GRAY_50 }
59085
+ } }, { children: [jsxs("div", exports.__assign({ css: { flex: 1, minWidth: 0 } }, { children: [jsx$1("div", exports.__assign({ css: {
59086
+ fontSize: '13px',
59087
+ fontWeight: 500,
59088
+ color: GRAY_800,
59089
+ overflow: 'hidden',
59090
+ textOverflow: 'ellipsis',
59091
+ whiteSpace: 'nowrap'
59092
+ } }, { children: thread.title || 'Untitled conversation' })), jsx$1("div", exports.__assign({ css: {
59093
+ fontSize: '11px',
59094
+ color: GRAY_400,
59095
+ marginTop: '2px'
59096
+ } }, { children: new Date(thread.updated_at).toLocaleDateString() }))] })), jsx$1("button", exports.__assign({ type: 'button', onClick: function (e) { return handleDeleteThread(thread.id, e); }, css: {
59097
+ background: 'none',
59098
+ border: 'none',
59099
+ cursor: 'pointer',
59100
+ color: GRAY_400,
59101
+ fontSize: '16px',
59102
+ padding: '2px 6px',
59103
+ marginLeft: '8px',
59104
+ borderRadius: '4px',
59105
+ lineHeight: 1,
59106
+ ':hover': {
59107
+ color: '#dc2626',
59108
+ backgroundColor: '#fef2f2'
59109
+ }
59110
+ } }, { children: "\u00D7" }))] }), thread.id)); })] }))] }))] })), jsxs("div", exports.__assign({ css: {
58799
59111
  flex: 1,
58800
59112
  overflowY: 'auto',
58801
59113
  padding: '16px',
@@ -58851,7 +59163,7 @@ var AssistantChat = function (_a) {
58851
59163
  }
58852
59164
  return null;
58853
59165
  }) }, message.id));
58854
- }), status === 'submitted' && (jsx$1("div", exports.__assign({ css: { display: 'flex', justifyContent: 'flex-start' } }, { children: jsxs("div", exports.__assign({ css: {
59166
+ }), isLoading && !hasAssistantMessage && (jsx$1("div", exports.__assign({ css: { display: 'flex', justifyContent: 'flex-start' } }, { children: jsxs("div", exports.__assign({ css: {
58855
59167
  padding: '10px 14px',
58856
59168
  borderRadius: '12px',
58857
59169
  backgroundColor: colors.light,
@@ -58871,7 +59183,7 @@ var AssistantChat = function (_a) {
58871
59183
  padding: '12px 16px',
58872
59184
  borderTop: "1px solid ".concat(GRAY_200),
58873
59185
  backgroundColor: GRAY_50
58874
- } }, { children: [jsx$1("input", { type: 'text', value: input, onChange: function (e) { return setInput(e.target.value); }, onKeyDown: handleKeyDown, placeholder: 'Type a message...', disabled: isLoading, css: {
59186
+ } }, { children: [jsx$1("input", { type: 'text', value: input, onChange: function (e) { return setInput(e.target.value); }, onKeyDown: handleKeyDown, placeholder: 'Type a message...', css: {
58875
59187
  flex: 1,
58876
59188
  padding: '10px 14px',
58877
59189
  border: "1px solid ".concat(GRAY_200),
@@ -58881,10 +59193,6 @@ var AssistantChat = function (_a) {
58881
59193
  transition: 'border-color 0.2s',
58882
59194
  ':focus': {
58883
59195
  borderColor: colors.primary
58884
- },
58885
- ':disabled': {
58886
- backgroundColor: GRAY_100,
58887
- cursor: 'not-allowed'
58888
59196
  }
58889
59197
  } }), jsx$1("button", exports.__assign({ type: 'button', onClick: handleSend, disabled: isLoading || !input.trim(), css: {
58890
59198
  padding: '10px',
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./fthry_index.IHqwZyC3.js');
3
+ var index$1 = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
- var Placeholder = require('./fthry_Placeholder.luXrF_m_.js');
6
- var InlineTooltip = require('./fthry_InlineTooltip.C6Kf0Ff-.js');
7
- var Overlay = require('./fthry_Overlay.JRkHffzB.js');
8
- var useElementSize = require('./fthry_useElementSize.Dup4Oq53.js');
5
+ var Placeholder = require('./fthry_Placeholder.WRNgQX3l.js');
6
+ var InlineTooltip = require('./fthry_InlineTooltip.DuFB8p7w.js');
7
+ var Overlay = require('./fthry_Overlay.DqGyzI8W.js');
8
+ var useElementSize = require('./fthry_useElementSize.DXcMVgAq.js');
9
9
  require('react/jsx-runtime');
10
10
  require('react-dom/client');
11
11
  require('jszip');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
 
5
5
  var propTypes = {exports: {}};
6
6
 
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
- var FormControl = require('./fthry_FormControl.WIYoX7l6.js');
6
- var index$1 = require('./fthry_index.BAf-75T4.js');
7
- var InlineTooltip = require('./fthry_InlineTooltip.C6Kf0Ff-.js');
8
- var useSalesforceSync = require('./fthry_useSalesforceSync.D0kLb1UT.js');
5
+ var FormControl = require('./fthry_FormControl.BtNu9i-u.js');
6
+ var index$1 = require('./fthry_index.DbijQ61t.js');
7
+ var InlineTooltip = require('./fthry_InlineTooltip.DuFB8p7w.js');
8
+ var useSalesforceSync = require('./fthry_useSalesforceSync.C87PZunf.js');
9
9
  require('react/jsx-runtime');
10
10
  require('react-dom/client');
11
11
  require('jszip');
12
12
  require('react-dom');
13
- require('./fthry_Overlay.JRkHffzB.js');
13
+ require('./fthry_Overlay.DqGyzI8W.js');
14
14
 
15
15
  var applyRadioGroupStyles = function (element, responsiveStyles) {
16
16
  responsiveStyles.addTargets('radioGroup');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./fthry_index.IHqwZyC3.js');
3
+ var index$1 = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.IHqwZyC3.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  require('react/jsx-runtime');