@feathery/react 2.48.1 → 2.49.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 (143) hide show
  1. package/cjs/Form/grid/StyledContainer/utils.d.ts.map +1 -1
  2. package/cjs/elements/basic/ButtonElement.d.ts.map +1 -1
  3. package/cjs/elements/basic/TableElement/EditableCell.d.ts +5 -2
  4. package/cjs/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  5. package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
  6. package/cjs/elements/basic/TableElement/styles.d.ts +0 -23
  7. package/cjs/elements/basic/TableElement/styles.d.ts.map +1 -1
  8. package/cjs/elements/basic/TableElement/types.d.ts +4 -0
  9. package/cjs/elements/basic/TableElement/types.d.ts.map +1 -1
  10. package/cjs/elements/basic/TableElement/useTableMutations.d.ts +0 -1
  11. package/cjs/elements/basic/TableElement/useTableMutations.d.ts.map +1 -1
  12. package/cjs/elements/basic/TableElement/utils.d.ts +14 -0
  13. package/cjs/elements/basic/TableElement/utils.d.ts.map +1 -1
  14. package/cjs/{fthry_AssistantChat.BjyKdtNo.js → fthry_AssistantChat.BuqbKhai.js} +4 -4
  15. package/cjs/{fthry_FormControl.Bjj4gcfs.js → fthry_FormControl.BuMQfeZ1.js} +1 -1
  16. package/cjs/{fthry_InlineTooltip.D5tgdB4g.js → fthry_InlineTooltip.D8PDRhj_.js} +2 -2
  17. package/cjs/{fthry_Overlay.DLteVVAy.js → fthry_Overlay.D-NnFWEe.js} +1 -1
  18. package/cjs/{fthry_PaymentMethodField.Cx5IV_Aw.js → fthry_PaymentMethodField.myalaaOZ.js} +4 -4
  19. package/cjs/{fthry_Placeholder.BeZ9F1hP.js → fthry_Placeholder.UOTZToMt.js} +1 -1
  20. package/cjs/{fthry_ShowEyeIcon.DO1SzK0H.js → fthry_ShowEyeIcon.D8qDJDzZ.js} +1 -1
  21. package/cjs/{fthry_TabsElement.C1KUbyBb.js → fthry_TabsElement.BK0wFYNE.js} +1 -1
  22. package/cjs/{fthry_auto-track.CJBR_dw-.js → fthry_auto-track.B5EtzK5A.js} +2 -2
  23. package/cjs/{fthry_highlighted-body-TPN3WLV5.BdAGVyam.js → fthry_highlighted-body-TPN3WLV5.BEO11ycd.js} +3 -3
  24. package/cjs/{fthry_index.O5z58cdJ.js → fthry_index.7ndzGWiJ.js} +5 -5
  25. package/cjs/{fthry_index.6SblfScs.js → fthry_index.964D9mAK.js} +2 -2
  26. package/cjs/{fthry_index.C78x3b5O.js → fthry_index.B6qHn3Vr.js} +6 -6
  27. package/cjs/{fthry_index.CjM_QMbB.js → fthry_index.BFw_StvJ.js} +2 -2
  28. package/cjs/{fthry_index.C0KW8hya.js → fthry_index.BRo8czXJ.js} +2 -2
  29. package/cjs/{fthry_index.BOexWQ2G.js → fthry_index.BU9fFX-g.js} +1 -1
  30. package/cjs/{fthry_index.BpZi8dM4.js → fthry_index.B_0S-igL.js} +5 -5
  31. package/cjs/{fthry_index.Dhp1zjHK.js → fthry_index.BcfL5ZZY.js} +1 -1
  32. package/cjs/{fthry_index.Bkg_JW4Z.js → fthry_index.BckiEDZJ.js} +5 -5
  33. package/cjs/{fthry_index.SMUP75Ic.js → fthry_index.BmILtMAD.js} +3 -3
  34. package/cjs/{fthry_index.DyPl9RTy.js → fthry_index.BvnQTPSY.js} +1 -1
  35. package/cjs/{fthry_index.CwpWkape.js → fthry_index.C-kN7c0o.js} +38 -41
  36. package/cjs/{fthry_index.foJzYyYX.js → fthry_index.C2vpx_Q9.js} +1 -1
  37. package/cjs/{fthry_index.CeKZIDEV.js → fthry_index.C6ebZNtr.js} +3 -3
  38. package/cjs/{fthry_index.BhoKqCQO.js → fthry_index.C9AIy59J.js} +2 -2
  39. package/cjs/{fthry_index.CeWHxiu2.js → fthry_index.CHLGQEBH.js} +4 -4
  40. package/cjs/{fthry_index.B1e00tAu.js → fthry_index.CP8jeStb.js} +6 -6
  41. package/cjs/{fthry_index.CqC7Lj7F.js → fthry_index.CoZzaKnE.js} +5 -5
  42. package/cjs/{fthry_index.CRXRQpkJ.js → fthry_index.CrgFXYzE.js} +1 -1
  43. package/cjs/{fthry_index.ycfNh9WZ.js → fthry_index.D0My8MmY.js} +1 -1
  44. package/cjs/{fthry_index.duLdHjUv.js → fthry_index.DHx_H1T3.js} +151 -141
  45. package/cjs/{fthry_index.DghgxDID.js → fthry_index.DKv8MgEz.js} +8 -8
  46. package/cjs/{fthry_index.B3VA122M.js → fthry_index.DPIewKZa.js} +1 -1
  47. package/cjs/{fthry_index.CGzU2RS3.js → fthry_index.DTMlYZBn.js} +1 -1
  48. package/cjs/{fthry_index.DRA1vbTd.js → fthry_index.DgGKGO1E.js} +10 -10
  49. package/cjs/{fthry_index.WdgJ-r5S.js → fthry_index.DrrJo2Gf.js} +6 -6
  50. package/cjs/{fthry_index.BWAq_scB.js → fthry_index.OwukJO9-.js} +2 -2
  51. package/cjs/{fthry_index.BbZu0dS9.js → fthry_index.b8IraXmQ.js} +4 -4
  52. package/cjs/{fthry_index.CU2qYyyW.js → fthry_index.cpUxhiq-.js} +2 -2
  53. package/cjs/{fthry_index.BvriCG1q.js → fthry_index.e_GKEQRk.js} +1 -1
  54. package/cjs/{fthry_index.umd.B7oz9tEv.js → fthry_index.umd.YAgbegYu.js} +1 -1
  55. package/cjs/{fthry_index.97eysi95.js → fthry_index.w9-CuoQH.js} +6 -6
  56. package/cjs/{fthry_input.BFEJqFg2.js → fthry_input.D3t8liSW.js} +1 -1
  57. package/cjs/{fthry_mermaid-O7DHMXV3.-sm2XLZv.js → fthry_mermaid-O7DHMXV3.C5wDh0Pr.js} +3 -3
  58. package/cjs/{fthry_script.CrJCYCaD.js → fthry_script.sEVfx6Kl.js} +1 -1
  59. package/cjs/{fthry_styles.CBI9OfcR.js → fthry_styles.CFNJAwLy.js} +1 -1
  60. package/cjs/{fthry_useElementSize.Dq3fkD_k.js → fthry_useElementSize.yeWmUfpM.js} +1 -1
  61. package/cjs/{fthry_useSalesforceSync.DkO47B4_.js → fthry_useSalesforceSync.C_sMWo9m.js} +1 -1
  62. package/cjs/{fthry_webfontloader.BbP2ET0j.js → fthry_webfontloader.DLiAwukX.js} +1 -1
  63. package/cjs/index.js +1 -1
  64. package/cjs/thumbnail-renderer.js +1 -1
  65. package/cjs/types/Form.d.ts +3 -0
  66. package/cjs/types/Form.d.ts.map +1 -1
  67. package/dist/Form/grid/StyledContainer/utils.d.ts.map +1 -1
  68. package/dist/elements/basic/ButtonElement.d.ts.map +1 -1
  69. package/dist/elements/basic/TableElement/EditableCell.d.ts +5 -2
  70. package/dist/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  71. package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
  72. package/dist/elements/basic/TableElement/styles.d.ts +0 -23
  73. package/dist/elements/basic/TableElement/styles.d.ts.map +1 -1
  74. package/dist/elements/basic/TableElement/tests/EditableCell.spec.d.ts +2 -0
  75. package/dist/elements/basic/TableElement/tests/EditableCell.spec.d.ts.map +1 -0
  76. package/dist/elements/basic/TableElement/tests/TableElement.spec.d.ts +2 -0
  77. package/dist/elements/basic/TableElement/tests/TableElement.spec.d.ts.map +1 -0
  78. package/dist/elements/basic/TableElement/tests/tabNavigation.spec.d.ts +2 -0
  79. package/dist/elements/basic/TableElement/tests/tabNavigation.spec.d.ts.map +1 -0
  80. package/dist/elements/basic/TableElement/types.d.ts +4 -0
  81. package/dist/elements/basic/TableElement/types.d.ts.map +1 -1
  82. package/dist/elements/basic/TableElement/useTableMutations.d.ts +0 -1
  83. package/dist/elements/basic/TableElement/useTableMutations.d.ts.map +1 -1
  84. package/dist/elements/basic/TableElement/utils.d.ts +14 -0
  85. package/dist/elements/basic/TableElement/utils.d.ts.map +1 -1
  86. package/dist/{fthry_AssistantChat.h6NTcnjr.js → fthry_AssistantChat.BejpFcyu.js} +4 -4
  87. package/dist/{fthry_FormControl.DQP6LlCL.js → fthry_FormControl.C3pHyJdN.js} +1 -1
  88. package/dist/{fthry_InlineTooltip.DUtqoLti.js → fthry_InlineTooltip.mv-Gc2Xw.js} +2 -2
  89. package/dist/{fthry_Overlay.DjQfEgir.js → fthry_Overlay.CPbgvfMU.js} +1 -1
  90. package/dist/{fthry_PaymentMethodField.DoX9prJ2.js → fthry_PaymentMethodField.D7ElRh4C.js} +4 -4
  91. package/dist/{fthry_Placeholder.DIKXUrCe.js → fthry_Placeholder.CRBysDun.js} +1 -1
  92. package/dist/{fthry_ShowEyeIcon.BsDiRWJb.js → fthry_ShowEyeIcon.Ds0oud66.js} +1 -1
  93. package/dist/{fthry_TabsElement.JCYNaBSd.js → fthry_TabsElement.BCuhzX6e.js} +1 -1
  94. package/dist/{fthry_auto-track.CZcLqilZ.js → fthry_auto-track.Dbu38K5j.js} +2 -2
  95. package/dist/{fthry_highlighted-body-TPN3WLV5.DwNcoR0j.js → fthry_highlighted-body-TPN3WLV5.Cuh_lSww.js} +3 -3
  96. package/dist/{fthry_index.KFRNwcZ_.js → fthry_index.0OEg6H3i.js} +1 -1
  97. package/dist/{fthry_index.CPrLJ4J-.js → fthry_index.5jB_IKHJ.js} +6 -6
  98. package/dist/{fthry_index.DHIhJeBb.js → fthry_index.B-NWpaAl.js} +2 -2
  99. package/dist/{fthry_index.dmme1I7g.js → fthry_index.B0NbPkQc.js} +1 -1
  100. package/dist/{fthry_index.BXqHrLYx.js → fthry_index.B31t0UUz.js} +2 -2
  101. package/dist/{fthry_index.By9XI2Se.js → fthry_index.B8QhrENg.js} +1 -1
  102. package/dist/{fthry_index.BFPFVaWv.js → fthry_index.BEUoZUyK.js} +1 -1
  103. package/dist/{fthry_index.D9kooW59.js → fthry_index.Bb2rQlTP.js} +4 -4
  104. package/dist/{fthry_index.DNmwwxoZ.js → fthry_index.BgljRyhO.js} +10 -10
  105. package/dist/{fthry_index.BKjEGHR_.js → fthry_index.BnWgnMbc.js} +5 -5
  106. package/dist/{fthry_index.C2QdbMzv.js → fthry_index.Bx6S1qZa.js} +2 -2
  107. package/dist/{fthry_index.CuFf_oA3.js → fthry_index.C2TazyZo.js} +1 -1
  108. package/dist/{fthry_index.D48zqV-m.js → fthry_index.C8wcBfv1.js} +1 -1
  109. package/dist/{fthry_index.B4uTV15J.js → fthry_index.CQaO0qYK.js} +1 -1
  110. package/dist/{fthry_index.DZPtLmTA.js → fthry_index.CWSqgxAa.js} +6 -6
  111. package/dist/{fthry_index.k3Hq7wKG.js → fthry_index.CreqHrWa.js} +1 -1
  112. package/dist/{fthry_index.B03qg4WP.js → fthry_index.D4jtsTFt.js} +2 -2
  113. package/dist/{fthry_index.DW4ZEycb.js → fthry_index.DEpC-Z5v.js} +5 -5
  114. package/dist/{fthry_index.CCyrVDsN.js → fthry_index.DJHFwZtE.js} +5 -5
  115. package/dist/{fthry_index.Bfo0vjcQ.js → fthry_index.DJzR8T-r.js} +5 -5
  116. package/dist/{fthry_index.Br_wsbaD.js → fthry_index.DS-rgCeg.js} +6 -6
  117. package/dist/{fthry_index.INdwJAsd.js → fthry_index.DeOBTZSR.js} +2 -2
  118. package/dist/{fthry_index.BkzGvVg2.js → fthry_index.Du_mis5t.js} +3 -3
  119. package/dist/{fthry_index.BgCJlRTN.js → fthry_index.NwQXVZvL.js} +3 -3
  120. package/dist/{fthry_index.C75qxU8Z.js → fthry_index.T_q8o1IJ.js} +1 -1
  121. package/dist/{fthry_index.BD5OtLZc.js → fthry_index.YJH2_M8x.js} +4 -4
  122. package/dist/{fthry_index.CHb07pX6.js → fthry_index.YWCe9xut.js} +8 -8
  123. package/dist/{fthry_index.C9bj3Amt.js → fthry_index._4LdTVJS.js} +2 -2
  124. package/dist/{fthry_index.Bl_YFFMi.js → fthry_index.aL99gjHK.js} +5 -5
  125. package/dist/{fthry_index.B21PnTei.js → fthry_index.cdWJRcXS.js} +38 -41
  126. package/dist/{fthry_index.umd.CNiEdJLO.js → fthry_index.umd.BYgeEgf8.js} +1 -1
  127. package/dist/{fthry_index.mEvi-eyb.js → fthry_index.xZSdf7ry.js} +152 -142
  128. package/dist/{fthry_input.C13Hy41e.js → fthry_input.DbXz6y8m.js} +1 -1
  129. package/dist/fthry_mermaid-O7DHMXV3.BTTUMTMH.js +8 -0
  130. package/dist/{fthry_script.DG-h2qqu.js → fthry_script.BORBdvL8.js} +1 -1
  131. package/dist/{fthry_styles.BbfFntw_.js → fthry_styles.BfxKVFUw.js} +1 -1
  132. package/dist/{fthry_useElementSize.Bvu4QN6c.js → fthry_useElementSize.BIz4pNfw.js} +1 -1
  133. package/dist/{fthry_useSalesforceSync.DxPyrYOH.js → fthry_useSalesforceSync.wO8Y6yIk.js} +1 -1
  134. package/dist/{fthry_webfontloader.BZH4UrSE.js → fthry_webfontloader.D4WGyNNh.js} +1 -1
  135. package/dist/index.js +2 -2
  136. package/dist/thumbnail-renderer.js +1 -1
  137. package/dist/types/Form.d.ts +3 -0
  138. package/dist/types/Form.d.ts.map +1 -1
  139. package/package.json +1 -1
  140. package/umd/TableElement.f51ba6d3b0a6c7835187.js +1 -0
  141. package/umd/index.js +1 -1
  142. package/dist/fthry_mermaid-O7DHMXV3.rQggAcUJ.js +0 -8
  143. package/umd/TableElement.8c0bec8400517f135fe6.js +0 -1
@@ -23014,8 +23014,15 @@ var resizeFitContainer = function (div) {
23014
23014
  var containerMarginLeft = getStylePxValue(containerStyles.marginLeft);
23015
23015
  var containerMarginRight = getStylePxValue(containerStyles.marginRight);
23016
23016
  var totalMargin = containerMarginLeft + containerMarginRight;
23017
- // Set the maxWidth to the calculated width of it's children and the width to 100% - total margin
23018
- div.style.maxWidth = "".concat(childrenWidth, "px");
23017
+ var totalPadding = 0;
23018
+ if (containerStyles.boxSizing === 'border-box') {
23019
+ totalPadding =
23020
+ getStylePxValue(containerStyles.paddingLeft) +
23021
+ getStylePxValue(containerStyles.paddingRight) +
23022
+ getStylePxValue(containerStyles.borderLeftWidth) +
23023
+ getStylePxValue(containerStyles.borderRightWidth);
23024
+ }
23025
+ div.style.maxWidth = "".concat(childrenWidth + totalPadding, "px");
23019
23026
  div.style.width = "calc(100% - ".concat(totalMargin, "px)");
23020
23027
  };
23021
23028
  var whichTransitionEvent = function () {
@@ -41067,7 +41074,7 @@ function useTrackUserInteraction(formRef, activeStep, stepKey, formName) {
41067
41074
  }, [activeStep, stepKey, formName]);
41068
41075
  }
41069
41076
 
41070
- var LazyAssistantChat = lazy(function () { return import(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.h6NTcnjr.js').then(function (n) { return n.A; }); });
41077
+ var LazyAssistantChat = lazy(function () { return import(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.BejpFcyu.js').then(function (n) { return n.A; }); });
41071
41078
  var AssistantChat = function (props) { return (jsx$1(Suspense, __assign({ fallback: null }, { children: jsx$1(LazyAssistantChat, __assign({}, props)) }))); };
41072
41079
 
41073
41080
  var AssistantClient = /** @class */ (function () {
@@ -45108,7 +45115,7 @@ function loadSegment(segmentConfig, queue) {
45108
45115
  case 0:
45109
45116
  _a.trys.push([0, 2, , 3]);
45110
45117
  return [4 /*yield*/, import(
45111
- /* webpackChunkName: "segment" */ './fthry_index.DNmwwxoZ.js').then(function (n) { return n.q; })];
45118
+ /* webpackChunkName: "segment" */ './fthry_index.BgljRyhO.js').then(function (n) { return n.q; })];
45112
45119
  case 1:
45113
45120
  (AnalyticsBrowserClass = (_a.sent()).AnalyticsBrowser);
45114
45121
  return [3 /*break*/, 3];
@@ -47743,9 +47750,9 @@ function init(sdkKey, options) {
47743
47750
  if (runningInClient()) {
47744
47751
  // Dynamically load libraries that must be client side
47745
47752
  global.scriptjsLoadPromise = import(
47746
- /* webpackChunkName: "scriptjs" */ './fthry_script.DG-h2qqu.js').then(function (n) { return n.s; });
47753
+ /* webpackChunkName: "scriptjs" */ './fthry_script.BORBdvL8.js').then(function (n) { return n.s; });
47747
47754
  global.webfontloaderPromise = import(
47748
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BZH4UrSE.js').then(function (n) { return n.w; });
47755
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.D4WGyNNh.js').then(function (n) { return n.w; });
47749
47756
  // Client-side tracking logic
47750
47757
  if (initState.userTracking === 'cookie') {
47751
47758
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -47932,7 +47939,7 @@ function loadCompletedSteps(client) {
47932
47939
  });
47933
47940
  }
47934
47941
  function logFeatheryBadge() {
47935
- console.log('%c Feathery %c v' + "2.48.1" + ' ', // replaced with real version during build
47942
+ console.log('%c Feathery %c v' + "2.49.0" + ' ', // replaced with real version during build
47936
47943
  '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;');
47937
47944
  }
47938
47945
 
@@ -49528,64 +49535,64 @@ function resolveLabelStyle(style, opts) {
49528
49535
 
49529
49536
  var fieldLoaders = {
49530
49537
  AddressLine1: function () {
49531
- return import(/* webpackChunkName: "AddressField" */ './fthry_index.BKjEGHR_.js');
49538
+ return import(/* webpackChunkName: "AddressField" */ './fthry_index.BnWgnMbc.js');
49532
49539
  },
49533
49540
  ButtonGroupField: function () {
49534
- return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.BD5OtLZc.js');
49541
+ return import(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.YJH2_M8x.js');
49535
49542
  },
49536
49543
  CheckboxField: function () {
49537
- return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.C75qxU8Z.js');
49544
+ return import(/* webpackChunkName: "CheckboxField" */ './fthry_index.T_q8o1IJ.js');
49538
49545
  },
49539
49546
  CheckboxGroupField: function () {
49540
- return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.DZPtLmTA.js');
49547
+ return import(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.CWSqgxAa.js');
49541
49548
  },
49542
49549
  ColorPickerField: function () {
49543
- return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.k3Hq7wKG.js');
49550
+ return import(/* webpackChunkName: "ColorPickerField" */ './fthry_index.CreqHrWa.js');
49544
49551
  },
49545
49552
  CustomField: function () {
49546
- return import(/* webpackChunkName: "CustomField" */ './fthry_index.B4uTV15J.js');
49553
+ return import(/* webpackChunkName: "CustomField" */ './fthry_index.CQaO0qYK.js');
49547
49554
  },
49548
49555
  DateSelectorField: function () {
49549
- return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.Br_wsbaD.js');
49556
+ return import(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DS-rgCeg.js');
49550
49557
  },
49551
49558
  DropdownField: function () {
49552
- return import(/* webpackChunkName: "DropdownField" */ './fthry_index.DW4ZEycb.js');
49559
+ return import(/* webpackChunkName: "DropdownField" */ './fthry_index.DEpC-Z5v.js');
49553
49560
  },
49554
49561
  DropdownMultiField: function () {
49555
- return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.CCyrVDsN.js');
49562
+ return import(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.DJHFwZtE.js');
49556
49563
  },
49557
49564
  FileUploadField: function () {
49558
- return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.BFPFVaWv.js');
49565
+ return import(/* webpackChunkName: "FileUploadField" */ './fthry_index.BEUoZUyK.js');
49559
49566
  },
49560
49567
  MatrixField: function () {
49561
- return import(/* webpackChunkName: "MatrixField" */ './fthry_index.BkzGvVg2.js');
49568
+ return import(/* webpackChunkName: "MatrixField" */ './fthry_index.Du_mis5t.js');
49562
49569
  },
49563
49570
  PasswordField: function () {
49564
- return import(/* webpackChunkName: "PasswordField" */ './fthry_index.Bl_YFFMi.js');
49571
+ return import(/* webpackChunkName: "PasswordField" */ './fthry_index.aL99gjHK.js');
49565
49572
  },
49566
49573
  PaymentMethodField: function () {
49567
- return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.DoX9prJ2.js');
49574
+ return import(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D7ElRh4C.js');
49568
49575
  },
49569
- PhoneField: function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.Bfo0vjcQ.js'); },
49576
+ PhoneField: function () { return import(/* webpackChunkName: "PhoneField" */ './fthry_index.DJzR8T-r.js'); },
49570
49577
  PinInputField: function () {
49571
- return import(/* webpackChunkName: "PinInputField" */ './fthry_index.D48zqV-m.js');
49578
+ return import(/* webpackChunkName: "PinInputField" */ './fthry_index.C8wcBfv1.js');
49572
49579
  },
49573
- QRScanner: function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.INdwJAsd.js'); },
49580
+ QRScanner: function () { return import(/* webpackChunkName: "QRScanner" */ './fthry_index.DeOBTZSR.js'); },
49574
49581
  RadioButtonGroupField: function () {
49575
49582
  return import(
49576
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CPrLJ4J-.js');
49583
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.5jB_IKHJ.js');
49577
49584
  },
49578
49585
  RatingField: function () {
49579
- return import(/* webpackChunkName: "RatingField" */ './fthry_index.KFRNwcZ_.js');
49586
+ return import(/* webpackChunkName: "RatingField" */ './fthry_index.0OEg6H3i.js');
49580
49587
  },
49581
49588
  SignatureField: function () {
49582
- return import(/* webpackChunkName: "SignatureField" */ './fthry_index.BgCJlRTN.js');
49589
+ return import(/* webpackChunkName: "SignatureField" */ './fthry_index.NwQXVZvL.js');
49583
49590
  },
49584
49591
  SliderField: function () {
49585
- return import(/* webpackChunkName: "SliderField" */ './fthry_index.C2QdbMzv.js');
49592
+ return import(/* webpackChunkName: "SliderField" */ './fthry_index.Bx6S1qZa.js');
49586
49593
  },
49587
- TextField: function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.CHb07pX6.js'); },
49588
- TextArea: function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.D9kooW59.js'); }
49594
+ TextField: function () { return import(/* webpackChunkName: "TextField" */ './fthry_index.YWCe9xut.js'); },
49595
+ TextArea: function () { return import(/* webpackChunkName: "TextArea" */ './fthry_index.Bb2rQlTP.js'); }
49589
49596
  };
49590
49597
  var getPositionKey = function (element) { var _a; return ((_a = element.position) === null || _a === void 0 ? void 0 : _a.join(',')) || 'root'; };
49591
49598
  // Share the resolved component between preload and render. A separate
@@ -50344,16 +50351,6 @@ function applyButtonStyles(element, responsiveStyles) {
50344
50351
  return {};
50345
50352
  });
50346
50353
  responsiveStyles.applyTextAlign('buttonLabel');
50347
- // Fit-width buttons shrink to their text and padding, so prevent the
50348
- // text from wrapping
50349
- responsiveStyles.apply('buttonLabel', 'width_unit', function (unit) {
50350
- if (!isFit(unit))
50351
- return {};
50352
- return {
50353
- whiteSpace: 'nowrap',
50354
- 'span, a': { whiteSpace: 'pre' }
50355
- };
50356
- });
50357
50354
  responsiveStyles.apply('button', [
50358
50355
  'uploader_padding_top',
50359
50356
  'uploader_padding_right',
@@ -50847,8 +50844,8 @@ function ElementSkeleton(_a) {
50847
50844
  }
50848
50845
  var templateObject_1;
50849
50846
 
50850
- var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.mEvi-eyb.js'); });
50851
- var TabsElement = lazy(function () { return import(/* webpackChunkName: "TabsElement" */ './fthry_TabsElement.JCYNaBSd.js'); });
50847
+ var TableElement = lazy(function () { return import(/* webpackChunkName: "TableElement" */ './fthry_index.xZSdf7ry.js'); });
50848
+ var TabsElement = lazy(function () { return import(/* webpackChunkName: "TabsElement" */ './fthry_TabsElement.BCuhzX6e.js'); });
50852
50849
  var Basic = {
50853
50850
  ImageElement: ImageElement,
50854
50851
  VideoElement: VideoElement,
@@ -1,4 +1,4 @@
1
- import { M as getDefaultExportFromCjs } from './fthry_index.B21PnTei.js';
1
+ import { M as getDefaultExportFromCjs } from './fthry_index.cdWJRcXS.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -1,5 +1,5 @@
1
- import { q as __rest, j as jsx, _ as __assign, b as jsxs, e as __read, z as featheryDoc, x as Fragment$1, f as fieldValues, J as stringifyWithNull, $ as __values, R as __spreadArray } from './fthry_index.B21PnTei.js';
2
- import { Fragment, useState, useRef, useEffect, useCallback, useMemo } from 'react';
1
+ import { q as __rest, j as jsx, _ as __assign, b as jsxs, e as __read, z as featheryDoc, x as Fragment$1, f as fieldValues, J as stringifyWithNull, $ as __values, R as __spreadArray } from './fthry_index.cdWJRcXS.js';
2
+ import { Fragment, useState, useRef, useEffect, useMemo, useCallback } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import 'react/jsx-runtime';
5
5
  import 'jszip';
@@ -330,29 +330,6 @@ var editingCellInputStyle = {
330
330
  inset: 0,
331
331
  height: '100%'
332
332
  };
333
- var overflowIconStyle = {
334
- display: 'flex',
335
- alignItems: 'center',
336
- justifyContent: 'center',
337
- width: '24px',
338
- height: '24px',
339
- borderRadius: '4px',
340
- border: 'none',
341
- backgroundColor: 'transparent',
342
- color: colors.gray400,
343
- cursor: 'pointer',
344
- opacity: 0,
345
- transition: 'opacity 0.15s',
346
- flexShrink: 0,
347
- padding: 0,
348
- 'tr:hover &, &[aria-expanded="true"]': {
349
- opacity: 1
350
- },
351
- '&:hover': {
352
- backgroundColor: colors.gray100,
353
- color: colors.gray600
354
- }
355
- };
356
333
  var deleteColumnStyle = {
357
334
  width: '40px',
358
335
  padding: '0 8px'
@@ -643,132 +620,69 @@ function EmptyState(_a) {
643
620
  }, fill: 'none', viewBox: '0 0 24 24', stroke: 'currentColor', strokeWidth: 1.5 }, { children: jsx("path", { strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z' }) }))), jsx("p", __assign({ css: emptyStateTextStyle }, { children: hasSearchQuery ? 'No results found' : 'No data available' })), hasSearchQuery && (jsx("p", __assign({ css: __assign(__assign({}, emptyStateTextStyle), { fontSize: '14px', marginTop: '8px' }) }, { children: "Try adjusting your search query" })))] })));
644
621
  }
645
622
 
646
- function DeleteConfirm(_a) {
647
- var anchorEl = _a.anchorEl, onConfirm = _a.onConfirm, onCancel = _a.onCancel, _b = _a.message, message = _b === void 0 ? 'Delete this row?' : _b, _c = _a.confirmLabel, confirmLabel = _c === void 0 ? 'Delete' : _c;
648
- var popoverRef = useRef(null);
649
- if (!anchorEl)
650
- return null;
651
- var anchorRect = anchorEl.getBoundingClientRect();
652
- var top = anchorRect.bottom + 4;
653
- var left = anchorRect.right;
654
- useEffect(function () {
655
- var handleClickOutside = function (event) {
656
- if (popoverRef.current &&
657
- !popoverRef.current.contains(event.target) &&
658
- anchorEl &&
659
- !anchorEl.contains(event.target)) {
660
- onCancel();
661
- }
662
- };
663
- var handleScroll = function () { return onCancel(); };
664
- var handleKeyDown = function (event) {
665
- if (event.key === 'Escape')
666
- onCancel();
667
- };
668
- var doc = featheryDoc();
669
- doc.addEventListener('mousedown', handleClickOutside);
670
- doc.addEventListener('scroll', handleScroll, true);
671
- doc.addEventListener('keydown', handleKeyDown);
672
- return function () {
673
- doc.removeEventListener('mousedown', handleClickOutside);
674
- doc.removeEventListener('scroll', handleScroll, true);
675
- doc.removeEventListener('keydown', handleKeyDown);
676
- };
677
- }, [onCancel, anchorEl]);
678
- return createPortal(jsxs("div", __assign({ ref: popoverRef, role: 'alertdialog', "aria-label": message, className: TABLE_CLASS.deleteConfirm, css: __assign(__assign({}, confirmPopoverStyle), { top: "".concat(top, "px"), left: "".concat(left, "px"), transform: 'translateX(-100%)' }) }, { children: [jsx("p", __assign({ css: confirmTextStyle }, { children: message })), jsxs("div", __assign({ css: confirmButtonRowStyle }, { children: [jsx("button", __assign({ type: 'button', css: confirmCancelButtonStyle, onClick: function (e) {
679
- e.stopPropagation();
680
- onCancel();
681
- } }, { children: "Cancel" })), jsx("button", __assign({ type: 'button', css: confirmDeleteButtonStyle, onClick: function (e) {
682
- e.stopPropagation();
683
- onConfirm();
684
- } }, { children: confirmLabel }))] }))] })), featheryDoc().body);
685
- }
686
-
687
- function OverflowIcon() {
688
- return (jsxs("svg", __assign({ width: '16', height: '16', fill: 'currentColor', viewBox: '0 0 24 24' }, { children: [jsx("circle", { cx: '12', cy: '5', r: '2' }), jsx("circle", { cx: '12', cy: '12', r: '2' }), jsx("circle", { cx: '12', cy: '19', r: '2' })] })));
689
- }
690
623
  function EditableCell(_a) {
691
624
  var _b;
692
- var value = _a.value, fieldKey = _a.fieldKey, rowIndex = _a.rowIndex, onEdit = _a.onEdit, onClear = _a.onClear;
693
- var _c = __read(useState(false), 2), isEditing = _c[0], setIsEditing = _c[1];
694
- var _d = __read(useState(''), 2), editValue = _d[0], setEditValue = _d[1];
695
- var _e = __read(useState(false), 2), isMenuOpen = _e[0], setIsMenuOpen = _e[1];
696
- var _f = __read(useState(false), 2), showClearConfirm = _f[0], setShowClearConfirm = _f[1];
697
- var _g = __read(useState({ top: 0, left: 0 }), 2), menuPosition = _g[0], setMenuPosition = _g[1];
625
+ var value = _a.value, fieldKey = _a.fieldKey, rowIndex = _a.rowIndex, isEditing = _a.isEditing, onEdit = _a.onEdit, onStartEdit = _a.onStartEdit, onStopEdit = _a.onStopEdit, onNavigate = _a.onNavigate;
626
+ var _c = __read(useState(''), 2), editValue = _c[0], setEditValue = _c[1];
698
627
  var inputRef = useRef(null);
699
- var menuButtonRef = useRef(null);
700
- var menuRef = useRef(null);
701
628
  var shouldSaveRef = useRef(true);
702
- var closeClearConfirm = useCallback(function () { return setShowClearConfirm(false); }, []);
629
+ // Suppresses the blur that fires when focus moves to the next cell during Tab
630
+ // navigation, so it does not re-save or clear the freshly-set editing cell.
631
+ var skipBlurRef = useRef(false);
703
632
  var displayValue = (_b = stringifyWithNull(value)) !== null && _b !== void 0 ? _b : '';
704
633
  var isEmpty = displayValue === '';
634
+ // Seed the draft value the moment this cell becomes the active editor, before
635
+ // paint, so the textarea shows the right content on first render (no flash).
636
+ var prevEditingRef = useRef(false);
637
+ if (isEditing && !prevEditingRef.current)
638
+ setEditValue(displayValue);
639
+ prevEditingRef.current = isEditing;
705
640
  useEffect(function () {
706
641
  if (isEditing && inputRef.current) {
707
642
  inputRef.current.focus();
643
+ inputRef.current.select();
708
644
  }
709
645
  }, [isEditing]);
710
- useEffect(function () {
711
- if (!isMenuOpen)
712
- return;
713
- var handleClickOutside = function (event) {
714
- if (menuRef.current &&
715
- !menuRef.current.contains(event.target) &&
716
- menuButtonRef.current &&
717
- !menuButtonRef.current.contains(event.target)) {
718
- setIsMenuOpen(false);
719
- }
720
- };
721
- var handleScroll = function () { return setIsMenuOpen(false); };
722
- var doc = featheryDoc();
723
- doc.addEventListener('mousedown', handleClickOutside);
724
- doc.addEventListener('scroll', handleScroll, true);
725
- return function () {
726
- doc.removeEventListener('mousedown', handleClickOutside);
727
- doc.removeEventListener('scroll', handleScroll, true);
728
- };
729
- }, [isMenuOpen]);
730
646
  var startEditing = function () {
731
- setEditValue(displayValue);
732
- setIsEditing(true);
733
- setIsMenuOpen(false);
647
+ // Force any other cell that is mid-edit to commit and close via its own
648
+ // blur handler before opening this one. Clicking a cell's (non-focusable)
649
+ var active = featheryDoc().activeElement;
650
+ if (active && active !== inputRef.current)
651
+ active.blur();
652
+ onStartEdit();
734
653
  };
735
- var saveEdit = function () {
654
+ var saveValue = function () {
736
655
  if (editValue !== displayValue) {
737
656
  onEdit(fieldKey, rowIndex, editValue);
738
657
  }
739
- setIsEditing(false);
740
- };
741
- var cancelEdit = function () {
742
- shouldSaveRef.current = false;
743
- setIsEditing(false);
744
658
  };
745
659
  var handleBlur = function () {
660
+ if (skipBlurRef.current) {
661
+ skipBlurRef.current = false;
662
+ return;
663
+ }
746
664
  if (shouldSaveRef.current)
747
- saveEdit();
665
+ saveValue();
748
666
  shouldSaveRef.current = true;
667
+ onStopEdit();
749
668
  };
750
669
  var handleKeyDown = function (e) {
751
- if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') {
670
+ var _a, _b;
671
+ if (e.key === 'Enter' && !e.shiftKey) {
752
672
  e.preventDefault();
753
- shouldSaveRef.current = false;
754
- saveEdit();
673
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
755
674
  }
756
675
  else if (e.key === 'Escape') {
757
676
  e.preventDefault();
758
- cancelEdit();
759
- }
760
- else if (e.key === 'Tab') {
761
677
  shouldSaveRef.current = false;
762
- saveEdit();
678
+ (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.blur();
763
679
  }
764
- };
765
- var handleMenuToggle = function (e) {
766
- e.stopPropagation();
767
- if (!isMenuOpen && menuButtonRef.current) {
768
- var rect = menuButtonRef.current.getBoundingClientRect();
769
- setMenuPosition({ top: rect.bottom + 4, left: rect.right });
680
+ else if (e.key === 'Tab') {
681
+ e.preventDefault();
682
+ skipBlurRef.current = true;
683
+ saveValue();
684
+ onNavigate(e.shiftKey);
770
685
  }
771
- setIsMenuOpen(!isMenuOpen);
772
686
  };
773
687
  if (isEditing) {
774
688
  return (jsxs("div", __assign({ className: TABLE_CLASS.editableCell, css: editingCellContentStyle }, { children: [jsx("div", __assign({ css: editingCellSizerStyle }, { children: "".concat(editValue, "\u200B") })), jsx("textarea", { ref: inputRef, value: editValue, onChange: function (e) { return setEditValue(e.target.value); }, onBlur: handleBlur, onKeyDown: handleKeyDown, className: TABLE_CLASS.cellInput, css: __assign(__assign({}, cellInputStyle), editingCellInputStyle), onClick: function (e) { return e.stopPropagation(); } })] })));
@@ -776,18 +690,7 @@ function EditableCell(_a) {
776
690
  if (isEmpty) {
777
691
  return (jsx("span", __assign({ className: TABLE_CLASS.editableCell, css: clickToEditStyle, onClick: startEditing }, { children: "Click to edit" })));
778
692
  }
779
- return (jsxs("div", __assign({ className: TABLE_CLASS.editableCell, css: editableCellContentStyle }, { children: [jsx("span", __assign({ css: editableCellTextStyle }, { children: displayValue })), jsx("button", __assign({ ref: menuButtonRef, type: 'button', "aria-expanded": isMenuOpen, "aria-haspopup": 'menu', css: overflowIconStyle, onClick: handleMenuToggle }, { children: jsx(OverflowIcon, {}) })), isMenuOpen &&
780
- createPortal(jsxs("div", __assign({ ref: menuRef, role: 'menu', css: __assign(__assign({}, actionMenuStyle), { top: "".concat(menuPosition.top, "px"), left: "".concat(menuPosition.left, "px"), transform: 'translateX(-100%)' }) }, { children: [jsx("button", __assign({ type: 'button', role: 'menuitem', css: actionMenuItemStyle, onClick: function (e) {
781
- e.stopPropagation();
782
- startEditing();
783
- } }, { children: "Edit Value" })), jsx("button", __assign({ type: 'button', role: 'menuitem', css: actionMenuItemStyle, onClick: function (e) {
784
- e.stopPropagation();
785
- setIsMenuOpen(false);
786
- setShowClearConfirm(true);
787
- } }, { children: "Clear Field" }))] })), featheryDoc().body), showClearConfirm && (jsx(DeleteConfirm, { anchorEl: menuButtonRef.current, message: 'Clear this field?', confirmLabel: 'Clear', onConfirm: function () {
788
- closeClearConfirm();
789
- onClear(fieldKey, rowIndex);
790
- }, onCancel: closeClearConfirm }))] })));
693
+ return (jsx("div", __assign({ className: TABLE_CLASS.editableCell, css: editableCellContentStyle }, { children: jsx("span", __assign({ css: __assign(__assign({}, editableCellTextStyle), { cursor: 'pointer' }), onClick: startEditing }, { children: displayValue })) })));
791
694
  }
792
695
 
793
696
  // Utility functions for sorting strings as numbers and dates
@@ -877,6 +780,88 @@ function compareSortableValues(a, b) {
877
780
  }
878
781
  // Fall back to string comparison
879
782
  return a.asString.localeCompare(b.asString);
783
+ }
784
+ /**
785
+ * Compute the next/previous editable cell for Tab navigation.
786
+ *
787
+ * In non-transposed editable tables every column is editable, so the grid is
788
+ * simply `rowIndices` (the visible rows, in display order) by `columnCount`.
789
+ *
790
+ * Forward (Tab): move one column right; at the end of a row wrap to the first
791
+ * column of the next visible row. Backward (Shift+Tab): mirror that.
792
+ *
793
+ * Returns `null` past the last editable cell (forward) or before the first one
794
+ * (backward) so the caller can commit-and-stay instead of wrapping around.
795
+ */
796
+ function getNextEditableCell(rowIndices, columnCount, current, backward) {
797
+ if (columnCount <= 0)
798
+ return null;
799
+ var rowPos = rowIndices.indexOf(current.rowIndex);
800
+ if (rowPos === -1)
801
+ return null;
802
+ var lastCol = columnCount - 1;
803
+ var colIndex = current.colIndex;
804
+ var pos = rowPos;
805
+ if (backward) {
806
+ colIndex -= 1;
807
+ if (colIndex < 0) {
808
+ colIndex = lastCol;
809
+ pos -= 1;
810
+ }
811
+ if (pos < 0)
812
+ return null;
813
+ }
814
+ else {
815
+ colIndex += 1;
816
+ if (colIndex > lastCol) {
817
+ colIndex = 0;
818
+ pos += 1;
819
+ }
820
+ if (pos > rowIndices.length - 1)
821
+ return null;
822
+ }
823
+ return { rowIndex: rowIndices[pos], colIndex: colIndex };
824
+ }
825
+
826
+ function DeleteConfirm(_a) {
827
+ var anchorEl = _a.anchorEl, onConfirm = _a.onConfirm, onCancel = _a.onCancel, _b = _a.message, message = _b === void 0 ? 'Delete this row?' : _b, _c = _a.confirmLabel, confirmLabel = _c === void 0 ? 'Delete' : _c;
828
+ var popoverRef = useRef(null);
829
+ if (!anchorEl)
830
+ return null;
831
+ var anchorRect = anchorEl.getBoundingClientRect();
832
+ var top = anchorRect.bottom + 4;
833
+ var left = anchorRect.right;
834
+ useEffect(function () {
835
+ var handleClickOutside = function (event) {
836
+ if (popoverRef.current &&
837
+ !popoverRef.current.contains(event.target) &&
838
+ anchorEl &&
839
+ !anchorEl.contains(event.target)) {
840
+ onCancel();
841
+ }
842
+ };
843
+ var handleScroll = function () { return onCancel(); };
844
+ var handleKeyDown = function (event) {
845
+ if (event.key === 'Escape')
846
+ onCancel();
847
+ };
848
+ var doc = featheryDoc();
849
+ doc.addEventListener('mousedown', handleClickOutside);
850
+ doc.addEventListener('scroll', handleScroll, true);
851
+ doc.addEventListener('keydown', handleKeyDown);
852
+ return function () {
853
+ doc.removeEventListener('mousedown', handleClickOutside);
854
+ doc.removeEventListener('scroll', handleScroll, true);
855
+ doc.removeEventListener('keydown', handleKeyDown);
856
+ };
857
+ }, [onCancel, anchorEl]);
858
+ return createPortal(jsxs("div", __assign({ ref: popoverRef, role: 'alertdialog', "aria-label": message, className: TABLE_CLASS.deleteConfirm, css: __assign(__assign({}, confirmPopoverStyle), { top: "".concat(top, "px"), left: "".concat(left, "px"), transform: 'translateX(-100%)' }) }, { children: [jsx("p", __assign({ css: confirmTextStyle }, { children: message })), jsxs("div", __assign({ css: confirmButtonRowStyle }, { children: [jsx("button", __assign({ type: 'button', css: confirmCancelButtonStyle, onClick: function (e) {
859
+ e.stopPropagation();
860
+ onCancel();
861
+ } }, { children: "Cancel" })), jsx("button", __assign({ type: 'button', css: confirmDeleteButtonStyle, onClick: function (e) {
862
+ e.stopPropagation();
863
+ onConfirm();
864
+ } }, { children: confirmLabel }))] }))] })), featheryDoc().body);
880
865
  }
881
866
 
882
867
  function generateExampleData(columns, numRows) {
@@ -1375,15 +1360,11 @@ function useTableMutations(_a) {
1375
1360
  submitCustom(values);
1376
1361
  onMutate();
1377
1362
  }, [getFieldArray, updateFieldValues, submitCustom, editMode, onMutate]);
1378
- var handleCellClear = useCallback(function (fieldKey, rowIndex) {
1379
- handleCellEdit(fieldKey, rowIndex, '');
1380
- }, [handleCellEdit]);
1381
1363
  return {
1382
1364
  handleAddRow: handleAddRow,
1383
1365
  handleDeleteRow: handleDeleteRow,
1384
1366
  handleRemoveRowLocal: handleRemoveRowLocal,
1385
- handleCellEdit: handleCellEdit,
1386
- handleCellClear: handleCellClear
1367
+ handleCellEdit: handleCellEdit
1387
1368
  };
1388
1369
  }
1389
1370
 
@@ -1418,7 +1399,7 @@ function TableElement(_a) {
1418
1399
  setSearchQuery: setSearchQuery,
1419
1400
  searchQuery: searchQuery,
1420
1401
  onMutate: onMutate
1421
- }), handleAddRow = _j.handleAddRow, handleDeleteRow = _j.handleDeleteRow, handleCellEdit = _j.handleCellEdit, handleCellClear = _j.handleCellClear;
1402
+ }), handleAddRow = _j.handleAddRow, handleDeleteRow = _j.handleDeleteRow, handleCellEdit = _j.handleCellEdit;
1422
1403
  var tableId = element === null || element === void 0 ? void 0 : element.id;
1423
1404
  var canEdit = enableEditing && !isTransposed;
1424
1405
  var showAddRow = canEdit && enableAddDeleteRows;
@@ -1439,11 +1420,21 @@ function TableElement(_a) {
1439
1420
  handleCellEdit(fieldKey, rowIndex, newValue);
1440
1421
  }, [handleCellEdit]);
1441
1422
  var _l = __read(useState(null), 2), deleteRowIndex = _l[0], setDeleteRowIndex = _l[1];
1423
+ var _m = __read(useState(null), 2), editingCell = _m[0], setEditingCell = _m[1];
1442
1424
  var prevPageRef = useRef(currentPage);
1443
1425
  if (prevPageRef.current !== currentPage) {
1444
1426
  prevPageRef.current = currentPage;
1445
1427
  setDeleteRowIndex(null);
1428
+ // A coordinate from the previous page would point at an off-page row.
1429
+ setEditingCell(null);
1446
1430
  }
1431
+ var requestEdit = useCallback(function (rowIndex, colIndex) {
1432
+ return setEditingCell({ rowIndex: rowIndex, colIndex: colIndex });
1433
+ }, []);
1434
+ var stopEdit = useCallback(function () { return setEditingCell(null); }, []);
1435
+ var navigateEdit = useCallback(function (rowIndex, colIndex, backward) {
1436
+ setEditingCell(getNextEditableCell(paginatedRowIndices, columns.length, { rowIndex: rowIndex, colIndex: colIndex }, backward));
1437
+ }, [paginatedRowIndices, columns.length]);
1447
1438
  var handleCancelDelete = useCallback(function () { return setDeleteRowIndex(null); }, []);
1448
1439
  var deleteIconRefs = useRef(new Map());
1449
1440
  var actionCellRefs = useRef(new Map());
@@ -1540,9 +1531,23 @@ function TableElement(_a) {
1540
1531
  : fValue;
1541
1532
  originalRowData_1[col.name] = cValue;
1542
1533
  });
1534
+ var originalColumn = baseColumns[rowIndex];
1543
1535
  onClick({
1544
1536
  rowIndex: originalRowIndex,
1545
- rowData: originalRowData_1
1537
+ rowData: originalRowData_1,
1538
+ columnIndex: rowIndex,
1539
+ columnKey: originalColumn === null || originalColumn === void 0 ? void 0 : originalColumn.field_key,
1540
+ columnName: originalColumn === null || originalColumn === void 0 ? void 0 : originalColumn.name
1541
+ });
1542
+ }
1543
+ else if (!isTransposed && !canEdit) {
1544
+ e.stopPropagation();
1545
+ onClick({
1546
+ rowIndex: rowIndex,
1547
+ rowData: rowData,
1548
+ columnIndex: colIndex,
1549
+ columnKey: column.field_key,
1550
+ columnName: column.name
1546
1551
  });
1547
1552
  }
1548
1553
  };
@@ -1554,7 +1559,12 @@ function TableElement(_a) {
1554
1559
  : column.field_key;
1555
1560
  return (jsx(CellElement, __assign({ className: isFirstColInTranspose
1556
1561
  ? TABLE_CLASS.headerCell
1557
- : TABLE_CLASS.cell, "data-feathery-field": cellFieldKey, css: cellCss, onClick: handleCellClick }, (isFirstColInTranspose ? { scope: 'row' } : {}), { children: isFirstColInTranspose && isSortable ? (jsxs("div", __assign({ css: __assign(__assign({}, sortHeaderContentStyle), { justifyContent: 'space-between' }) }, { children: [jsx("span", { children: (_b = stringifyWithNull(cellValue)) !== null && _b !== void 0 ? _b : '' }), jsx("span", __assign({ css: sortIconContainerStyle }, { children: jsx(SortIcon, { isSorted: isSorted, sortDirection: sortDirection }) }))] }))) : canEdit ? (jsx(EditableCell, { value: cellValue, fieldKey: column.field_key, rowIndex: rowIndex, onEdit: wrappedHandleCellEdit, onClear: handleCellClear })) : ((_c = stringifyWithNull(cellValue)) !== null && _c !== void 0 ? _c : '') }), colIndex));
1562
+ : TABLE_CLASS.cell, "data-feathery-field": cellFieldKey, css: cellCss, onClick: handleCellClick }, (isFirstColInTranspose ? { scope: 'row' } : {}), { children: isFirstColInTranspose && isSortable ? (jsxs("div", __assign({ css: __assign(__assign({}, sortHeaderContentStyle), { justifyContent: 'space-between' }) }, { children: [jsx("span", { children: (_b = stringifyWithNull(cellValue)) !== null && _b !== void 0 ? _b : '' }), jsx("span", __assign({ css: sortIconContainerStyle }, { children: jsx(SortIcon, { isSorted: isSorted, sortDirection: sortDirection }) }))] }))) : canEdit ? (jsx(EditableCell, { value: cellValue, fieldKey: column.field_key, rowIndex: rowIndex, isEditing: (editingCell === null || editingCell === void 0 ? void 0 : editingCell.rowIndex) === rowIndex &&
1563
+ (editingCell === null || editingCell === void 0 ? void 0 : editingCell.colIndex) === colIndex, onEdit: wrappedHandleCellEdit, onStartEdit: function () {
1564
+ return requestEdit(rowIndex, colIndex);
1565
+ }, onStopEdit: stopEdit, onNavigate: function (backward) {
1566
+ return navigateEdit(rowIndex, colIndex, backward);
1567
+ } })) : ((_c = stringifyWithNull(cellValue)) !== null && _c !== void 0 ? _c : '') }), colIndex));
1558
1568
  }), !isTransposed && actions.length > 0 && (jsxs("td", __assign({ ref: function (el) {
1559
1569
  if (el)
1560
1570
  actionCellRefs.current.set(rowIndex, el);
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import { P as PropTypes } from './fthry_index.By9XI2Se.js';
2
+ import { P as PropTypes } from './fthry_index.B8QhrENg.js';
3
3
 
4
4
  /** Checks if value is string */
5
5
  function isString(str) {
@@ -0,0 +1,8 @@
1
+ export { u as Mermaid } from './fthry_AssistantChat.BejpFcyu.js';
2
+ import './fthry_index.cdWJRcXS.js';
3
+ import 'react/jsx-runtime';
4
+ import 'react';
5
+ import 'jszip';
6
+ import 'react-dom';
7
+ import './fthry_clsx.ChV9xqsO.js';
8
+ import './fthry_index.C2TazyZo.js';
@@ -1,4 +1,4 @@
1
- import { M as getDefaultExportFromCjs } from './fthry_index.B21PnTei.js';
1
+ import { M as getDefaultExportFromCjs } from './fthry_index.cdWJRcXS.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useState, useMemo } from 'react';
3
- import { M as getDefaultExportFromCjs, b as jsxs, x as Fragment, j as jsx, o as Global, l as css, m as __makeTemplateObject } from './fthry_index.B21PnTei.js';
3
+ import { M as getDefaultExportFromCjs, b as jsxs, x as Fragment, j as jsx, o as Global, l as css, m as __makeTemplateObject } from './fthry_index.cdWJRcXS.js';
4
4
  import { flushSync } from 'react-dom';
5
5
 
6
6
  function canUseDom() {
@@ -1,4 +1,4 @@
1
- import { e as __read, w as featheryWindow } from './fthry_index.B21PnTei.js';
1
+ import { e as __read, w as featheryWindow } from './fthry_index.cdWJRcXS.js';
2
2
  import { useState, useLayoutEffect } from 'react';
3
3
 
4
4
  function useElementSize(anchorRef) {
@@ -1,4 +1,4 @@
1
- import { e as __read, s as __awaiter, t as __generator, v as FeatheryClient } from './fthry_index.B21PnTei.js';
1
+ import { e as __read, s as __awaiter, t as __generator, v as FeatheryClient } from './fthry_index.cdWJRcXS.js';
2
2
  import { useState, useEffect } from 'react';
3
3
 
4
4
  function useSalesforceSync(salesforceSync, editMode) {
@@ -1,4 +1,4 @@
1
- import { M as getDefaultExportFromCjs } from './fthry_index.B21PnTei.js';
1
+ import { M as getDefaultExportFromCjs } from './fthry_index.cdWJRcXS.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {