@feathery/react 2.30.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 (148) hide show
  1. package/cjs/Form/grid/Element/index.d.ts.map +1 -1
  2. package/cjs/Form/index.d.ts.map +1 -1
  3. package/cjs/assistant/index.d.ts +4 -8
  4. package/cjs/assistant/index.d.ts.map +1 -1
  5. package/cjs/assistant/utils.d.ts +23 -0
  6. package/cjs/assistant/utils.d.ts.map +1 -0
  7. package/cjs/elements/basic/TableElement/Actions.d.ts +3 -1
  8. package/cjs/elements/basic/TableElement/Actions.d.ts.map +1 -1
  9. package/cjs/elements/basic/TableElement/DeleteConfirm.d.ts +11 -0
  10. package/cjs/elements/basic/TableElement/DeleteConfirm.d.ts.map +1 -0
  11. package/cjs/elements/basic/TableElement/EditableCell.d.ts +10 -0
  12. package/cjs/elements/basic/TableElement/EditableCell.d.ts.map +1 -0
  13. package/cjs/elements/basic/TableElement/Search.d.ts.map +1 -1
  14. package/cjs/elements/basic/TableElement/index.d.ts +1 -1
  15. package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
  16. package/cjs/elements/basic/TableElement/styles.d.ts +221 -4
  17. package/cjs/elements/basic/TableElement/styles.d.ts.map +1 -1
  18. package/cjs/elements/basic/TableElement/useColumnWidths.d.ts +7 -0
  19. package/cjs/elements/basic/TableElement/useColumnWidths.d.ts.map +1 -0
  20. package/cjs/elements/basic/TableElement/useTableData.d.ts +6 -1
  21. package/cjs/elements/basic/TableElement/useTableData.d.ts.map +1 -1
  22. package/cjs/elements/basic/TableElement/useTableMutations.d.ts +23 -0
  23. package/cjs/elements/basic/TableElement/useTableMutations.d.ts.map +1 -0
  24. package/cjs/elements/components/icons/TrashIcon.d.ts +3 -0
  25. package/cjs/elements/components/icons/TrashIcon.d.ts.map +1 -0
  26. package/cjs/elements/components/icons/index.d.ts +2 -1
  27. package/cjs/elements/components/icons/index.d.ts.map +1 -1
  28. package/cjs/{fthry_FormControl._mBWRKs7.js → fthry_FormControl.BtNu9i-u.js} +1 -1
  29. package/cjs/{fthry_InlineTooltip.Ci88wpmH.js → fthry_InlineTooltip.DuFB8p7w.js} +2 -2
  30. package/cjs/{fthry_Overlay.EZR3dxIp.js → fthry_Overlay.DqGyzI8W.js} +1 -1
  31. package/cjs/{fthry_PaymentMethodField.D1qfT6ml.js → fthry_PaymentMethodField.D0kI1ZxS.js} +4 -4
  32. package/cjs/{fthry_Placeholder.CxuLPsF-.js → fthry_Placeholder.WRNgQX3l.js} +1 -1
  33. package/cjs/{fthry_ShowEyeIcon.B7ZyaGae.js → fthry_ShowEyeIcon.1seA7I1l.js} +1 -1
  34. package/cjs/{fthry_index.DRlPrDHk.js → fthry_index.B96nzeqy.js} +4 -4
  35. package/cjs/{fthry_index.qIj6fG9T.js → fthry_index.BEVaTA54.js} +3 -3
  36. package/cjs/{fthry_index.BS76NJIi.js → fthry_index.BI7CrYad.js} +2 -2
  37. package/cjs/{fthry_index.B29cmrSc.js → fthry_index.BM4ep-AK.js} +5 -5
  38. package/cjs/{fthry_index.Bm1hHYyX.js → fthry_index.BTKf9mxG.js} +1 -1
  39. package/cjs/{fthry_index.D1vI8h-g.js → fthry_index.B_-iRvUH.js} +4 -4
  40. package/cjs/{fthry_index.Dgwh7PEG.js → fthry_index.BccfyVDL.js} +6 -6
  41. package/cjs/{fthry_index.CatPMXS_.js → fthry_index.BhC7LkQw.js} +5 -5
  42. package/cjs/{fthry_index.sxVKbE6v.js → fthry_index.BvkC5P1Q.js} +6 -6
  43. package/cjs/{fthry_index.CA9rB_hE.js → fthry_index.C6CH7RhD.js} +8 -8
  44. package/cjs/{fthry_index.BYHaM6D3.js → fthry_index.C7hxyJ9f.js} +1 -1
  45. package/cjs/{fthry_index.BTEjXAoq.js → fthry_index.CBJimbrX.js} +5 -5
  46. package/cjs/{fthry_index.CUmRx79G.js → fthry_index.CGQA5QkX.js} +3 -3
  47. package/cjs/{fthry_index.DESk4H5E.js → fthry_index.CUO7vSY3.js} +4 -4
  48. package/cjs/{fthry_index.esjf5uCx.js → fthry_index.CiXHBkVl.js} +362 -53
  49. package/cjs/{fthry_index.B87qkPTe.js → fthry_index.D4RrBVB-.js} +1 -1
  50. package/cjs/{fthry_index.YrpKr9cF.js → fthry_index.DbijQ61t.js} +1 -1
  51. package/cjs/{fthry_index.DlbhlY21.js → fthry_index.DloMkPdT.js} +5 -5
  52. package/cjs/{fthry_index.CfL17UCN.js → fthry_index.J4GcA3vx.js} +1 -1
  53. package/cjs/{fthry_index.Cx9wY-d4.js → fthry_index.KbHjZiIM.js} +6 -6
  54. package/cjs/{fthry_index.DmfLe1_p.js → fthry_index.TK6Jx-jy.js} +1 -1
  55. package/cjs/{fthry_index.CJ_xssDe.js → fthry_index.WRjuuH9z.js} +1 -1
  56. package/cjs/{fthry_index.C2Hmw3MN.js → fthry_index.Z6a5kUfj.js} +527 -47
  57. package/cjs/{fthry_index.CZO8LB_A.js → fthry_index.oVFShAC8.js} +2 -2
  58. package/cjs/{fthry_input.DL5PaVNA.js → fthry_input.CUTC1cQr.js} +1 -1
  59. package/cjs/{fthry_script.Dx-T4xgR.js → fthry_script.DRtiXuhL.js} +1 -1
  60. package/cjs/{fthry_styles.lXVAR-s8.js → fthry_styles.MGVgRzzA.js} +1 -1
  61. package/cjs/{fthry_useElementSize.Di0_hIVc.js → fthry_useElementSize.DXcMVgAq.js} +1 -1
  62. package/cjs/{fthry_useSalesforceSync.BRclBQ5F.js → fthry_useSalesforceSync.C87PZunf.js} +1 -1
  63. package/cjs/{fthry_webfontloader.Cpo-BOVP.js → fthry_webfontloader.CVSP2Jc5.js} +1 -1
  64. package/cjs/index.d.ts +0 -1
  65. package/cjs/index.d.ts.map +1 -1
  66. package/cjs/index.js +1 -1
  67. package/dist/Form/grid/Element/index.d.ts.map +1 -1
  68. package/dist/Form/index.d.ts.map +1 -1
  69. package/dist/assistant/index.d.ts +4 -8
  70. package/dist/assistant/index.d.ts.map +1 -1
  71. package/dist/assistant/utils.d.ts +23 -0
  72. package/dist/assistant/utils.d.ts.map +1 -0
  73. package/dist/elements/basic/TableElement/Actions.d.ts +3 -1
  74. package/dist/elements/basic/TableElement/Actions.d.ts.map +1 -1
  75. package/dist/elements/basic/TableElement/DeleteConfirm.d.ts +11 -0
  76. package/dist/elements/basic/TableElement/DeleteConfirm.d.ts.map +1 -0
  77. package/dist/elements/basic/TableElement/EditableCell.d.ts +10 -0
  78. package/dist/elements/basic/TableElement/EditableCell.d.ts.map +1 -0
  79. package/dist/elements/basic/TableElement/Search.d.ts.map +1 -1
  80. package/dist/elements/basic/TableElement/index.d.ts +1 -1
  81. package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
  82. package/dist/elements/basic/TableElement/styles.d.ts +221 -4
  83. package/dist/elements/basic/TableElement/styles.d.ts.map +1 -1
  84. package/dist/elements/basic/TableElement/useColumnWidths.d.ts +7 -0
  85. package/dist/elements/basic/TableElement/useColumnWidths.d.ts.map +1 -0
  86. package/dist/elements/basic/TableElement/useTableData.d.ts +6 -1
  87. package/dist/elements/basic/TableElement/useTableData.d.ts.map +1 -1
  88. package/dist/elements/basic/TableElement/useTableMutations.d.ts +23 -0
  89. package/dist/elements/basic/TableElement/useTableMutations.d.ts.map +1 -0
  90. package/dist/elements/components/icons/TrashIcon.d.ts +3 -0
  91. package/dist/elements/components/icons/TrashIcon.d.ts.map +1 -0
  92. package/dist/elements/components/icons/index.d.ts +2 -1
  93. package/dist/elements/components/icons/index.d.ts.map +1 -1
  94. package/dist/{fthry_FormControl.CGMmdVSc.js → fthry_FormControl.C9K2iuFX.js} +1 -1
  95. package/dist/{fthry_InlineTooltip.DIH2B37d.js → fthry_InlineTooltip.CQ84q5tx.js} +2 -2
  96. package/dist/{fthry_Overlay.Dms5dmjM.js → fthry_Overlay.CaTGHPrf.js} +1 -1
  97. package/dist/{fthry_PaymentMethodField.BnL3H5Wi.js → fthry_PaymentMethodField.CLy4llPE.js} +4 -4
  98. package/dist/{fthry_Placeholder.Iyh2B1Vg.js → fthry_Placeholder.C8DX1xTT.js} +1 -1
  99. package/dist/{fthry_ShowEyeIcon.fhgXiXP4.js → fthry_ShowEyeIcon.CLCEl1M3.js} +1 -1
  100. package/dist/{fthry_index.BYbi4yOb.js → fthry_index.8KDT5i8T.js} +4 -4
  101. package/dist/{fthry_index.C_xgfMIW.js → fthry_index.9-q7smC3.js} +3 -3
  102. package/dist/{fthry_index.BkMppX8l.js → fthry_index.B-oOxFi4.js} +528 -48
  103. package/dist/{fthry_index.B6oCJbWU.js → fthry_index.B260ADJ4.js} +5 -5
  104. package/dist/{fthry_index.BRU7YLIR.js → fthry_index.BZD_DEzj.js} +1 -1
  105. package/dist/{fthry_index.BOaXtIdq.js → fthry_index.BjpHx4_T.js} +5 -5
  106. package/dist/{fthry_index.C2gfdQbg.js → fthry_index.C1_uGweo.js} +1 -1
  107. package/dist/{fthry_index.DgW_Sk0D.js → fthry_index.C5zUlrOm.js} +1 -1
  108. package/dist/{fthry_index.DNgUGj0v.js → fthry_index.CLgjzDTi.js} +1 -1
  109. package/dist/{fthry_index.BB67IaKw.js → fthry_index.CYyOgKWx.js} +8 -8
  110. package/dist/{fthry_index.Cy3JGRX4.js → fthry_index.CeglQZhs.js} +1 -1
  111. package/dist/{fthry_index.DX4rqE80.js → fthry_index.CmpLevaj.js} +6 -6
  112. package/dist/{fthry_index.DOmt6TII.js → fthry_index.CqNn14xm.js} +6 -6
  113. package/dist/{fthry_index.BSFJ3j16.js → fthry_index.DKYX71gD.js} +4 -4
  114. package/dist/{fthry_index.DBZUNt6w.js → fthry_index.DQsvec3-.js} +3 -3
  115. package/dist/{fthry_index.BkscK5im.js → fthry_index.Ddf14JA6.js} +363 -54
  116. package/dist/{fthry_index.C40AmEzu.js → fthry_index.DmcD0QUi.js} +1 -1
  117. package/dist/{fthry_index.CRvWHGpG.js → fthry_index.DoGwIkbA.js} +6 -6
  118. package/dist/{fthry_index.CxmqmKxy.js → fthry_index.DqKZq0Ur.js} +4 -4
  119. package/dist/{fthry_index.B2Y9eDOP.js → fthry_index.WnliJHmX.js} +2 -2
  120. package/dist/{fthry_index.BLyrEbs8.js → fthry_index.hyYvw_PS.js} +1 -1
  121. package/dist/{fthry_index.BtNQk9j_.js → fthry_index.kP74GhA8.js} +5 -5
  122. package/dist/{fthry_index.fnKZHN9M.js → fthry_index.qJQlILVx.js} +5 -5
  123. package/dist/{fthry_index.B5mf0ZCq.js → fthry_index.ty8LJs-R.js} +2 -2
  124. package/dist/{fthry_input.BGGtX-3o.js → fthry_input.DjzutNam.js} +1 -1
  125. package/dist/{fthry_script.Dqr52s2y.js → fthry_script.DO2CsvZO.js} +1 -1
  126. package/dist/{fthry_styles.BY3ne7eH.js → fthry_styles.Ccd48IiB.js} +1 -1
  127. package/dist/{fthry_useElementSize.OjCA2DBM.js → fthry_useElementSize.C-0G4BJy.js} +1 -1
  128. package/dist/{fthry_useSalesforceSync.C09-2TZ5.js → fthry_useSalesforceSync.B6wBqJLI.js} +1 -1
  129. package/dist/{fthry_webfontloader.DIwhNN5h.js → fthry_webfontloader.MZhbLTEd.js} +1 -1
  130. package/dist/index.d.ts +0 -1
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +1 -1
  133. package/package.json +1 -1
  134. package/umd/{277.d9907ecd5dc2117c9171.js → 277.87e6ca5c1cf2a7477992.js} +1 -1
  135. package/umd/{509.a863f8749c28540476bb.js → 509.bca2ff43c66b1dba064f.js} +2 -2
  136. package/umd/{AddressField.ec97334fe233830bc05b.js → AddressField.2d777eda22a67a0ed3a3.js} +1 -1
  137. package/umd/{DateSelectorField.00f321e0b1972feb9d69.js → DateSelectorField.54afc978d2fd9d10b106.js} +1 -1
  138. package/umd/{FileUploadField.ea0067dd62b0454b7c2e.js → FileUploadField.7a5028fb6035d09b3e81.js} +1 -1
  139. package/umd/{PasswordField.1358356d6fbc6880f12a.js → PasswordField.7585ef588333cb4181f7.js} +1 -1
  140. package/umd/{PaymentMethodField.9a8e934f7450eb141217.js → PaymentMethodField.d08bcfa1efb56084572d.js} +1 -1
  141. package/umd/{PhoneField.c526085aaa5ccd25e982.js → PhoneField.19c987f04cfcb60ab07c.js} +1 -1
  142. package/umd/{SignatureField.d710930ca89642eb651c.js → SignatureField.0e7d60fa2fafcb6be554.js} +1 -1
  143. package/umd/TableElement.b9bb3cedf1a75fd2ea01.js +1 -0
  144. package/umd/{TextArea.f566845d458d4c00e0e7.js → TextArea.7cca0d69e618846660c5.js} +1 -1
  145. package/umd/{TextField.5a5296fe3ea60c4459f2.js → TextField.f5cc4a03e69d5872027b.js} +1 -1
  146. package/umd/index.js +1 -1
  147. package/umd/TableElement.ee77e0f53a9ccac846ab.js +0 -1
  148. /package/umd/{509.a863f8749c28540476bb.js.LICENSE.txt → 509.bca2ff43c66b1dba064f.js.LICENSE.txt} +0 -0
@@ -20976,7 +20976,7 @@ var Element$1 = function (_a) {
20976
20976
  var _b, _c, _d, _e, _f, _g;
20977
20977
  var el = _a.node, form = _a.form;
20978
20978
  var type = el.type;
20979
- var userProgress = form.userProgress, curDepth = form.curDepth, maxDepth = form.maxDepth, elementProps = form.elementProps, activeStep = form.activeStep, buttonLoaders = form.buttonLoaders, customClickSelectionState = form.customClickSelectionState, runElementActions = form.runElementActions, buttonOnClick = form.buttonOnClick, tableOnClick = form.tableOnClick, fieldOnChange = form.fieldOnChange, inlineErrors = form.inlineErrors, setInlineErrors = form.setInlineErrors, changeValue = form.changeValue, updateFieldValues = form.updateFieldValues, elementOnView = form.elementOnView, onViewElements = form.onViewElements, formSettings = form.formSettings, formRef = form.formRef, focusRef = form.focusRef, setCardElement = form.setCardElement, visiblePositions = form.visiblePositions, featheryContext = form.featheryContext;
20979
+ var userProgress = form.userProgress, curDepth = form.curDepth, maxDepth = form.maxDepth, elementProps = form.elementProps, activeStep = form.activeStep, buttonLoaders = form.buttonLoaders, customClickSelectionState = form.customClickSelectionState, runElementActions = form.runElementActions, buttonOnClick = form.buttonOnClick, tableOnClick = form.tableOnClick, fieldOnChange = form.fieldOnChange, inlineErrors = form.inlineErrors, setInlineErrors = form.setInlineErrors, changeValue = form.changeValue, updateFieldValues = form.updateFieldValues, submitCustom = form.submitCustom, elementOnView = form.elementOnView, onViewElements = form.onViewElements, formSettings = form.formSettings, formRef = form.formRef, focusRef = form.focusRef, setCardElement = form.setCardElement, visiblePositions = form.visiblePositions, featheryContext = form.featheryContext;
20980
20980
  var readOnly = formSettings.readOnly || initState.collaboratorReview === 'readOnly';
20981
20981
  var basicProps = {
20982
20982
  componentOnly: false,
@@ -20996,7 +20996,7 @@ var Element$1 = function (_a) {
20996
20996
  else if (type === 'video')
20997
20997
  return jsx$1(Elements.VideoElement, exports.__assign({}, basicProps));
20998
20998
  else if (type === 'table')
20999
- return (jsx$1(Elements.TableElement, exports.__assign({}, basicProps, { onClick: function (payload) { return tableOnClick(el, payload); }, buttonLoaders: buttonLoaders })));
20999
+ return (jsx$1(Elements.TableElement, exports.__assign({}, basicProps, { onClick: function (payload) { return tableOnClick(el, payload); }, updateFieldValues: updateFieldValues, submitCustom: submitCustom, buttonLoaders: buttonLoaders })));
21000
21000
  else if (type === 'text')
21001
21001
  return (jsx$1(Elements.TextElement, exports.__assign({ textSpanOnClick: function (textSpanStart, textSpanEnd) {
21002
21002
  var _a;
@@ -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 () {
@@ -42245,6 +42251,7 @@ function Form(_a) {
42245
42251
  return changeFormStep(nextStepKey, activeStep.key, false);
42246
42252
  },
42247
42253
  updateFieldValues: updateFieldValues,
42254
+ submitCustom: function (values) { return client === null || client === void 0 ? void 0 : client.submitCustom(values); },
42248
42255
  elementOnView: elementOnView,
42249
42256
  onViewElements: viewElements,
42250
42257
  formSettings: formSettings,
@@ -46124,9 +46131,9 @@ function init(sdkKey, options) {
46124
46131
  if (runningInClient()) {
46125
46132
  // Dynamically load libraries that must be client side
46126
46133
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
46127
- /* webpackChunkName: "scriptjs" */ './fthry_script.Dx-T4xgR.js'); }).then(function (n) { return n.script; });
46134
+ /* webpackChunkName: "scriptjs" */ './fthry_script.DRtiXuhL.js'); }).then(function (n) { return n.script; });
46128
46135
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
46129
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.Cpo-BOVP.js'); }).then(function (n) { return n.webfontloader; });
46136
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.CVSP2Jc5.js'); }).then(function (n) { return n.webfontloader; });
46130
46137
  // Client-side tracking logic
46131
46138
  if (initState.userTracking === 'cookie') {
46132
46139
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -46272,7 +46279,7 @@ function getFieldValues() {
46272
46279
  return exports.__assign({}, exports.fieldValues);
46273
46280
  }
46274
46281
  function logFeatheryBadge() {
46275
- console.log('%c Feathery %c v' + "2.30.0" + ' ', // replaced with real version during build
46282
+ console.log('%c Feathery %c v' + "2.32.0" + ' ', // replaced with real version during build
46276
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;');
46277
46284
  }
46278
46285
 
@@ -47754,39 +47761,39 @@ breakpoint) {
47754
47761
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
47755
47762
  };
47756
47763
 
47757
- var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.CatPMXS_.js'); }); });
47758
- var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.DRlPrDHk.js'); }); });
47759
- var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.YrpKr9cF.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'); }); });
47760
47767
  var CheckboxGroupField = React.lazy(function () {
47761
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.sxVKbE6v.js'); });
47768
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.BvkC5P1Q.js'); });
47762
47769
  });
47763
- var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.Bm1hHYyX.js'); }); });
47764
- var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.DmfLe1_p.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'); }); });
47765
47772
  var DateSelectorField = React.lazy(function () {
47766
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.Dgwh7PEG.js'); });
47773
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.BccfyVDL.js'); });
47767
47774
  });
47768
- var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.DESk4H5E.js'); }); });
47775
+ var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.CUO7vSY3.js'); }); });
47769
47776
  var DropdownMultiField = React.lazy(function () {
47770
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.B29cmrSc.js'); });
47777
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BM4ep-AK.js'); });
47771
47778
  });
47772
- var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.BYHaM6D3.js'); }); });
47773
- var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.qIj6fG9T.js'); }); });
47774
- var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.BTEjXAoq.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'); }); });
47775
47782
  var PaymentMethodField = React.lazy(function () {
47776
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D1qfT6ml.js'); });
47783
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D0kI1ZxS.js'); });
47777
47784
  });
47778
- var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DlbhlY21.js'); }); });
47779
- var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.B87qkPTe.js'); }); });
47780
- var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.CZO8LB_A.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'); }); });
47781
47788
  var RadioButtonGroupField = React.lazy(function () {
47782
47789
  return Promise.resolve().then(function () { return require(
47783
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.Cx9wY-d4.js'); });
47790
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.KbHjZiIM.js'); });
47784
47791
  });
47785
- var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.CJ_xssDe.js'); }); });
47786
- var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.CUmRx79G.js'); }); });
47787
- var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.BS76NJIi.js'); }); });
47788
- var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.CA9rB_hE.js'); }); });
47789
- var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.D1vI8h-g.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'); }); });
47790
47797
  var Fields = {
47791
47798
  AddressLine1: AddressLine1,
47792
47799
  ButtonGroupField: ButtonGroupField,
@@ -48736,7 +48743,7 @@ function ElementSkeleton(_a) {
48736
48743
  }
48737
48744
  var templateObject_1;
48738
48745
 
48739
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.C2Hmw3MN.js'); }); });
48746
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.Z6a5kUfj.js'); }); });
48740
48747
  var Basic = {
48741
48748
  ImageElement: ImageElement,
48742
48749
  VideoElement: VideoElement,
@@ -58693,34 +58700,261 @@ var MarkdownText = React.memo(function (_a) {
58693
58700
  });
58694
58701
  MarkdownText.displayName = 'MarkdownText';
58695
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
+
58696
58768
  var FAB_SIZE = 56;
58697
58769
  var PANEL_WIDTH = 380;
58698
58770
  var PANEL_HEIGHT = 500;
58699
58771
  var AssistantChat = function (_a) {
58700
- var transport = _a.transport, _b = _a.bottom, bottom = _b === void 0 ? 20 : _b, color = _a.color;
58701
- var _c = __read(React.useState(false), 2), isOpen = _c[0], setIsOpen = _c[1];
58702
- 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];
58703
58779
  var messagesEndRef = React.useRef(null);
58704
58780
  var colors = React.useMemo(function () { return getChatColors(color || DEFAULT_CHAT_COLOR); }, [color]);
58705
- // Memoize transport to avoid recreating on every render
58706
- var chatTransport = React.useMemo(function () {
58707
- return new DefaultChatTransport({
58708
- 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/"),
58709
58786
  headers: transport.headers,
58710
- 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
+ }
58711
58834
  });
58712
- }, [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;
58713
58840
  // @ts-ignore
58714
- var _e = useChat({
58715
- transport: chatTransport
58716
- }), 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;
58717
58844
  // TODO: Implement smooth scroll takeover - stop auto-scroll when user scrolls up
58718
58845
  React.useEffect(function () {
58719
58846
  var _a;
58720
58847
  (_a = messagesEndRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: 'smooth' });
58721
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
+ }); };
58722
58933
  var handleSend = function () {
58723
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
+ }
58724
58958
  sendMessage({ text: input });
58725
58959
  setInput('');
58726
58960
  }
@@ -58732,7 +58966,11 @@ var AssistantChat = function (_a) {
58732
58966
  handleSend();
58733
58967
  }
58734
58968
  };
58969
+ // Only show threads that have had at least one message sent
58970
+ var visibleThreads = threads.filter(function (t) { return t.title; });
58735
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;
58736
58974
  // Collapsed state - show chat bubble
58737
58975
  if (!isOpen) {
58738
58976
  return (jsx$1("button", exports.__assign({ type: 'button', onClick: function () { return setIsOpen(true); }, css: {
@@ -58768,7 +59006,7 @@ var AssistantChat = function (_a) {
58768
59006
  height: "".concat(PANEL_HEIGHT, "px"),
58769
59007
  backgroundColor: 'white',
58770
59008
  borderRadius: '12px',
58771
- boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
59009
+ boxShadow: '0 8px 24px rgba(0, 0, 0, 0.12)',
58772
59010
  border: "1px solid ".concat(GRAY_200),
58773
59011
  display: 'flex',
58774
59012
  flexDirection: 'column',
@@ -58780,8 +59018,21 @@ var AssistantChat = function (_a) {
58780
59018
  justifyContent: 'space-between',
58781
59019
  padding: '12px 16px',
58782
59020
  backgroundColor: colors.primary,
58783
- color: 'white'
58784
- } }, { 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: {
58785
59036
  background: 'none',
58786
59037
  border: 'none',
58787
59038
  color: 'white',
@@ -58794,7 +59045,69 @@ var AssistantChat = function (_a) {
58794
59045
  ':hover': {
58795
59046
  backgroundColor: 'rgba(255, 255, 255, 0.1)'
58796
59047
  }
58797
- } }, { 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: {
58798
59111
  flex: 1,
58799
59112
  overflowY: 'auto',
58800
59113
  padding: '16px',
@@ -58850,7 +59163,7 @@ var AssistantChat = function (_a) {
58850
59163
  }
58851
59164
  return null;
58852
59165
  }) }, message.id));
58853
- }), 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: {
58854
59167
  padding: '10px 14px',
58855
59168
  borderRadius: '12px',
58856
59169
  backgroundColor: colors.light,
@@ -58870,7 +59183,7 @@ var AssistantChat = function (_a) {
58870
59183
  padding: '12px 16px',
58871
59184
  borderTop: "1px solid ".concat(GRAY_200),
58872
59185
  backgroundColor: GRAY_50
58873
- } }, { 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: {
58874
59187
  flex: 1,
58875
59188
  padding: '10px 14px',
58876
59189
  border: "1px solid ".concat(GRAY_200),
@@ -58880,10 +59193,6 @@ var AssistantChat = function (_a) {
58880
59193
  transition: 'border-color 0.2s',
58881
59194
  ':focus': {
58882
59195
  borderColor: colors.primary
58883
- },
58884
- ':disabled': {
58885
- backgroundColor: GRAY_100,
58886
- cursor: 'not-allowed'
58887
59196
  }
58888
59197
  } }), jsx$1("button", exports.__assign({ type: 'button', onClick: handleSend, disabled: isLoading || !input.trim(), css: {
58889
59198
  padding: '10px',
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.esjf5uCx.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.esjf5uCx.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.esjf5uCx.js');
3
+ var index$1 = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
- var Placeholder = require('./fthry_Placeholder.CxuLPsF-.js');
6
- var InlineTooltip = require('./fthry_InlineTooltip.Ci88wpmH.js');
7
- var Overlay = require('./fthry_Overlay.EZR3dxIp.js');
8
- var useElementSize = require('./fthry_useElementSize.Di0_hIVc.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.esjf5uCx.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.esjf5uCx.js');
3
+ var index = require('./fthry_index.CiXHBkVl.js');
4
4
  var React = require('react');
5
- var FormControl = require('./fthry_FormControl._mBWRKs7.js');
6
- var index$1 = require('./fthry_index.YrpKr9cF.js');
7
- var InlineTooltip = require('./fthry_InlineTooltip.Ci88wpmH.js');
8
- var useSalesforceSync = require('./fthry_useSalesforceSync.BRclBQ5F.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.EZR3dxIp.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.esjf5uCx.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');