@feathery/react 2.48.0 → 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 (148) hide show
  1. package/cjs/Form/grid/StyledContainer/utils.d.ts.map +1 -1
  2. package/cjs/assistant/ToolStatus.d.ts.map +1 -1
  3. package/cjs/elements/basic/ButtonElement.d.ts.map +1 -1
  4. package/cjs/elements/basic/TableElement/EditableCell.d.ts +5 -2
  5. package/cjs/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  6. package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
  7. package/cjs/elements/basic/TableElement/styles.d.ts +0 -23
  8. package/cjs/elements/basic/TableElement/styles.d.ts.map +1 -1
  9. package/cjs/elements/basic/TableElement/types.d.ts +4 -0
  10. package/cjs/elements/basic/TableElement/types.d.ts.map +1 -1
  11. package/cjs/elements/basic/TableElement/useTableMutations.d.ts +0 -1
  12. package/cjs/elements/basic/TableElement/useTableMutations.d.ts.map +1 -1
  13. package/cjs/elements/basic/TableElement/utils.d.ts +14 -0
  14. package/cjs/elements/basic/TableElement/utils.d.ts.map +1 -1
  15. package/cjs/{fthry_AssistantChat.D16Y4E74.js → fthry_AssistantChat.BuqbKhai.js} +21 -17
  16. package/cjs/{fthry_FormControl.D2f1BXqB.js → fthry_FormControl.BuMQfeZ1.js} +1 -1
  17. package/cjs/{fthry_InlineTooltip.DEdTUSm4.js → fthry_InlineTooltip.D8PDRhj_.js} +2 -2
  18. package/cjs/{fthry_Overlay.D62XeoXL.js → fthry_Overlay.D-NnFWEe.js} +1 -1
  19. package/cjs/{fthry_PaymentMethodField.BjRyBUqb.js → fthry_PaymentMethodField.myalaaOZ.js} +4 -4
  20. package/cjs/{fthry_Placeholder.DgZkAMLA.js → fthry_Placeholder.UOTZToMt.js} +1 -1
  21. package/cjs/{fthry_ShowEyeIcon.DN_uKizZ.js → fthry_ShowEyeIcon.D8qDJDzZ.js} +1 -1
  22. package/cjs/{fthry_TabsElement.DvCwi960.js → fthry_TabsElement.BK0wFYNE.js} +2 -2
  23. package/cjs/{fthry_auto-track.6jWwlIt0.js → fthry_auto-track.B5EtzK5A.js} +2 -2
  24. package/cjs/{fthry_highlighted-body-TPN3WLV5.BWETzenp.js → fthry_highlighted-body-TPN3WLV5.BEO11ycd.js} +3 -3
  25. package/cjs/{fthry_index.BkhZkLh-.js → fthry_index.7ndzGWiJ.js} +5 -5
  26. package/cjs/{fthry_index.5BeecFlc.js → fthry_index.964D9mAK.js} +2 -2
  27. package/cjs/{fthry_index.D5ysX_Ku.js → fthry_index.B6qHn3Vr.js} +6 -6
  28. package/cjs/{fthry_index.C1_NpVP-.js → fthry_index.BFw_StvJ.js} +2 -2
  29. package/cjs/{fthry_index.Cz0q4X3R.js → fthry_index.BRo8czXJ.js} +2 -2
  30. package/cjs/{fthry_index.DPm7UcNK.js → fthry_index.BU9fFX-g.js} +1 -1
  31. package/cjs/{fthry_index.BpSfRdvi.js → fthry_index.B_0S-igL.js} +5 -5
  32. package/cjs/{fthry_index.B66Sa4U0.js → fthry_index.BcfL5ZZY.js} +1 -1
  33. package/cjs/{fthry_index.bje_1x-I.js → fthry_index.BckiEDZJ.js} +5 -5
  34. package/cjs/{fthry_index.DG6J-zY-.js → fthry_index.BmILtMAD.js} +3 -3
  35. package/cjs/{fthry_index.C-RRAbJm.js → fthry_index.BvnQTPSY.js} +1 -1
  36. package/cjs/{fthry_index.CdGxoWiK.js → fthry_index.C-kN7c0o.js} +39 -42
  37. package/cjs/{fthry_index.C851WNlT.js → fthry_index.C2vpx_Q9.js} +1 -1
  38. package/cjs/{fthry_index.DTxHjfFB.js → fthry_index.C6ebZNtr.js} +3 -3
  39. package/cjs/{fthry_index.BeoPEbf4.js → fthry_index.C9AIy59J.js} +2 -2
  40. package/cjs/{fthry_index.Ck7YQKQF.js → fthry_index.CHLGQEBH.js} +4 -4
  41. package/cjs/{fthry_index.B31MkOC0.js → fthry_index.CP8jeStb.js} +6 -6
  42. package/cjs/{fthry_index.C0ZwSbPD.js → fthry_index.CoZzaKnE.js} +5 -5
  43. package/cjs/{fthry_index.VYffek6q.js → fthry_index.CrgFXYzE.js} +1 -1
  44. package/cjs/{fthry_index.DDfgMZKh.js → fthry_index.D0My8MmY.js} +1 -1
  45. package/cjs/{fthry_index.CYkjnpqJ.js → fthry_index.DHx_H1T3.js} +151 -141
  46. package/cjs/{fthry_index.DTQrAA3Y.js → fthry_index.DKv8MgEz.js} +8 -8
  47. package/cjs/{fthry_index.xkoAL9cS.js → fthry_index.DPIewKZa.js} +1 -1
  48. package/cjs/{fthry_index.CJVXqn1l.js → fthry_index.DTMlYZBn.js} +1 -1
  49. package/cjs/{fthry_index.DhoBBzQ7.js → fthry_index.DgGKGO1E.js} +10 -10
  50. package/cjs/{fthry_index.Brfzpzrh.js → fthry_index.DrrJo2Gf.js} +6 -6
  51. package/cjs/{fthry_index.Ptr3UN8d.js → fthry_index.OwukJO9-.js} +2 -2
  52. package/cjs/{fthry_index.oTQT38C_.js → fthry_index.b8IraXmQ.js} +4 -4
  53. package/cjs/{fthry_index.BS3CuTH8.js → fthry_index.cpUxhiq-.js} +2 -2
  54. package/cjs/{fthry_index.XFPGCehV.js → fthry_index.e_GKEQRk.js} +1 -1
  55. package/cjs/{fthry_index.umd.wy3zwWSj.js → fthry_index.umd.YAgbegYu.js} +1 -1
  56. package/cjs/{fthry_index.Dyh7d2u3.js → fthry_index.w9-CuoQH.js} +6 -6
  57. package/cjs/{fthry_input.7C_cW8iE.js → fthry_input.D3t8liSW.js} +1 -1
  58. package/cjs/{fthry_mermaid-O7DHMXV3.BNo6HbRp.js → fthry_mermaid-O7DHMXV3.C5wDh0Pr.js} +3 -3
  59. package/cjs/{fthry_script.CPZyEEIq.js → fthry_script.sEVfx6Kl.js} +1 -1
  60. package/cjs/{fthry_styles.Dl7lVFJC.js → fthry_styles.CFNJAwLy.js} +1 -1
  61. package/cjs/{fthry_useElementSize.Dh0Bml3S.js → fthry_useElementSize.yeWmUfpM.js} +1 -1
  62. package/cjs/{fthry_useSalesforceSync.ZmjF5jeJ.js → fthry_useSalesforceSync.C_sMWo9m.js} +1 -1
  63. package/cjs/{fthry_webfontloader.DOEIvOUg.js → fthry_webfontloader.DLiAwukX.js} +1 -1
  64. package/cjs/index.js +1 -1
  65. package/cjs/thumbnail-renderer.js +1 -1
  66. package/cjs/types/Form.d.ts +3 -0
  67. package/cjs/types/Form.d.ts.map +1 -1
  68. package/dist/Form/grid/StyledContainer/utils.d.ts.map +1 -1
  69. package/dist/assistant/ToolStatus.d.ts.map +1 -1
  70. package/dist/elements/basic/ButtonElement.d.ts.map +1 -1
  71. package/dist/elements/basic/TableElement/EditableCell.d.ts +5 -2
  72. package/dist/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  73. package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
  74. package/dist/elements/basic/TableElement/styles.d.ts +0 -23
  75. package/dist/elements/basic/TableElement/styles.d.ts.map +1 -1
  76. package/dist/elements/basic/TableElement/tests/EditableCell.spec.d.ts +2 -0
  77. package/dist/elements/basic/TableElement/tests/EditableCell.spec.d.ts.map +1 -0
  78. package/dist/elements/basic/TableElement/tests/TableElement.spec.d.ts +2 -0
  79. package/dist/elements/basic/TableElement/tests/TableElement.spec.d.ts.map +1 -0
  80. package/dist/elements/basic/TableElement/tests/tabNavigation.spec.d.ts +2 -0
  81. package/dist/elements/basic/TableElement/tests/tabNavigation.spec.d.ts.map +1 -0
  82. package/dist/elements/basic/TableElement/types.d.ts +4 -0
  83. package/dist/elements/basic/TableElement/types.d.ts.map +1 -1
  84. package/dist/elements/basic/TableElement/useTableMutations.d.ts +0 -1
  85. package/dist/elements/basic/TableElement/useTableMutations.d.ts.map +1 -1
  86. package/dist/elements/basic/TableElement/utils.d.ts +14 -0
  87. package/dist/elements/basic/TableElement/utils.d.ts.map +1 -1
  88. package/dist/{fthry_AssistantChat.BWukgD5o.js → fthry_AssistantChat.BejpFcyu.js} +21 -17
  89. package/dist/{fthry_FormControl.CVdJuRnk.js → fthry_FormControl.C3pHyJdN.js} +1 -1
  90. package/dist/{fthry_InlineTooltip.CWap-WTM.js → fthry_InlineTooltip.mv-Gc2Xw.js} +2 -2
  91. package/dist/{fthry_Overlay.MAk8YndV.js → fthry_Overlay.CPbgvfMU.js} +1 -1
  92. package/dist/{fthry_PaymentMethodField.DST9Yjtv.js → fthry_PaymentMethodField.D7ElRh4C.js} +4 -4
  93. package/dist/{fthry_Placeholder.CtIwoA5S.js → fthry_Placeholder.CRBysDun.js} +1 -1
  94. package/dist/{fthry_ShowEyeIcon.BGA6FQh0.js → fthry_ShowEyeIcon.Ds0oud66.js} +1 -1
  95. package/dist/{fthry_TabsElement.BuntEz0s.js → fthry_TabsElement.BCuhzX6e.js} +2 -2
  96. package/dist/{fthry_auto-track.BKMbIWyQ.js → fthry_auto-track.Dbu38K5j.js} +2 -2
  97. package/dist/{fthry_highlighted-body-TPN3WLV5.G06YuQ2e.js → fthry_highlighted-body-TPN3WLV5.Cuh_lSww.js} +3 -3
  98. package/dist/{fthry_index.CtAHxgAq.js → fthry_index.0OEg6H3i.js} +1 -1
  99. package/dist/{fthry_index.DPQPFDFJ.js → fthry_index.5jB_IKHJ.js} +6 -6
  100. package/dist/{fthry_index._mp6MQTh.js → fthry_index.B-NWpaAl.js} +2 -2
  101. package/dist/{fthry_index.Dpd5r8Nr.js → fthry_index.B0NbPkQc.js} +1 -1
  102. package/dist/{fthry_index.DGGn9OIp.js → fthry_index.B31t0UUz.js} +2 -2
  103. package/dist/{fthry_index.jGH4DDdr.js → fthry_index.B8QhrENg.js} +1 -1
  104. package/dist/{fthry_index.CYZeDMG0.js → fthry_index.BEUoZUyK.js} +1 -1
  105. package/dist/{fthry_index.LTbpRhuO.js → fthry_index.Bb2rQlTP.js} +4 -4
  106. package/dist/{fthry_index.Cancfzx7.js → fthry_index.BgljRyhO.js} +10 -10
  107. package/dist/{fthry_index.BV5orIbT.js → fthry_index.BnWgnMbc.js} +5 -5
  108. package/dist/{fthry_index.C8dO4ksp.js → fthry_index.Bx6S1qZa.js} +2 -2
  109. package/dist/{fthry_index.BjYD1xpd.js → fthry_index.C2TazyZo.js} +1 -1
  110. package/dist/{fthry_index.CvN4Rhcn.js → fthry_index.C8wcBfv1.js} +1 -1
  111. package/dist/{fthry_index.CEOePdHL.js → fthry_index.CQaO0qYK.js} +1 -1
  112. package/dist/{fthry_index.SBGfC-AB.js → fthry_index.CWSqgxAa.js} +6 -6
  113. package/dist/{fthry_index.Cp9ByOuM.js → fthry_index.CreqHrWa.js} +1 -1
  114. package/dist/{fthry_index.3xvzHOZZ.js → fthry_index.D4jtsTFt.js} +2 -2
  115. package/dist/{fthry_index.Ddv2Wl8U.js → fthry_index.DEpC-Z5v.js} +5 -5
  116. package/dist/{fthry_index.iIuAf_k5.js → fthry_index.DJHFwZtE.js} +5 -5
  117. package/dist/{fthry_index.DS4zbyNr.js → fthry_index.DJzR8T-r.js} +5 -5
  118. package/dist/{fthry_index.D4fPFebv.js → fthry_index.DS-rgCeg.js} +6 -6
  119. package/dist/{fthry_index.DnhhW4As.js → fthry_index.DeOBTZSR.js} +2 -2
  120. package/dist/{fthry_index.CAJeovQO.js → fthry_index.Du_mis5t.js} +3 -3
  121. package/dist/{fthry_index.DKux24gh.js → fthry_index.NwQXVZvL.js} +3 -3
  122. package/dist/{fthry_index.BFJaHnz3.js → fthry_index.T_q8o1IJ.js} +1 -1
  123. package/dist/{fthry_index.C8hE_h0-.js → fthry_index.YJH2_M8x.js} +4 -4
  124. package/dist/{fthry_index.CwAjn-OA.js → fthry_index.YWCe9xut.js} +8 -8
  125. package/dist/{fthry_index.Bjgs69zf.js → fthry_index._4LdTVJS.js} +2 -2
  126. package/dist/{fthry_index.D8fPxN-r.js → fthry_index.aL99gjHK.js} +5 -5
  127. package/dist/{fthry_index.AugcPyKH.js → fthry_index.cdWJRcXS.js} +39 -42
  128. package/dist/{fthry_index.umd.8fDW5-do.js → fthry_index.umd.BYgeEgf8.js} +1 -1
  129. package/dist/{fthry_index.d-sboT23.js → fthry_index.xZSdf7ry.js} +152 -142
  130. package/dist/{fthry_input.Ciomtn44.js → fthry_input.DbXz6y8m.js} +1 -1
  131. package/dist/fthry_mermaid-O7DHMXV3.BTTUMTMH.js +8 -0
  132. package/dist/{fthry_script.D5JCT1ya.js → fthry_script.BORBdvL8.js} +1 -1
  133. package/dist/{fthry_styles.B6dfe-Eo.js → fthry_styles.BfxKVFUw.js} +1 -1
  134. package/dist/{fthry_useElementSize.D-kQCo-4.js → fthry_useElementSize.BIz4pNfw.js} +1 -1
  135. package/dist/{fthry_useSalesforceSync.DpnT6_XK.js → fthry_useSalesforceSync.wO8Y6yIk.js} +1 -1
  136. package/dist/{fthry_webfontloader.BOeyjl7h.js → fthry_webfontloader.D4WGyNNh.js} +1 -1
  137. package/dist/index.js +2 -2
  138. package/dist/thumbnail-renderer.js +1 -1
  139. package/dist/types/Form.d.ts +3 -0
  140. package/dist/types/Form.d.ts.map +1 -1
  141. package/package.json +2 -2
  142. package/umd/AssistantChat.4c90e588cefb3c7dcc90.js +1 -0
  143. package/umd/TableElement.f51ba6d3b0a6c7835187.js +1 -0
  144. package/umd/{TabsElement.2630875c197708900706.js → TabsElement.4120dda5e1b0305ddf59.js} +1 -1
  145. package/umd/index.js +1 -1
  146. package/dist/fthry_mermaid-O7DHMXV3.CjYot5Ez.js +0 -8
  147. package/umd/AssistantChat.f140cc1dcdc7d2e7b6ec.js +0 -1
  148. package/umd/TableElement.8c0bec8400517f135fe6.js +0 -1
@@ -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.AugcPyKH.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.jGH4DDdr.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.AugcPyKH.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.AugcPyKH.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.AugcPyKH.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.AugcPyKH.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.AugcPyKH.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) {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { a3 as AuthContext, a4 as getFieldValues, a5 as setFieldValues, a6 as updateTheme, a7 as updateUserId, a8 as init, a9 as Elements, aa as ReactForm, z as featheryDoc, ab as v4, _ as __assign, j as jsx, ac as LoginForm, ad as JSForm, ae as getFormContext } from './fthry_index.AugcPyKH.js';
2
- export { ag as AssistantChat, ah as StyledContainer, af as resolveLabelStyle } from './fthry_index.AugcPyKH.js';
1
+ import { a3 as AuthContext, a4 as getFieldValues, a5 as setFieldValues, a6 as updateTheme, a7 as updateUserId, a8 as init, a9 as Elements, aa as ReactForm, z as featheryDoc, ab as v4, _ as __assign, j as jsx, ac as LoginForm, ad as JSForm, ae as getFormContext } from './fthry_index.cdWJRcXS.js';
2
+ export { ag as AssistantChat, ah as StyledContainer, af as resolveLabelStyle } from './fthry_index.cdWJRcXS.js';
3
3
  import { createRoot } from 'react-dom/client';
4
4
  import { useContext } from 'react';
5
5
  import 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { _ as __assign, D as DEFAULT_MOBILE_BREAKPOINT, g as getVisiblePositions, c as calculateStepCSS, a as calculateGlobalCSS, j as jsx, G as Grid, F as FeatheryCacheProvider, f as fieldValues } from './fthry_index.AugcPyKH.js';
1
+ import { _ as __assign, D as DEFAULT_MOBILE_BREAKPOINT, g as getVisiblePositions, c as calculateStepCSS, a as calculateGlobalCSS, j as jsx, G as Grid, F as FeatheryCacheProvider, f as fieldValues } from './fthry_index.cdWJRcXS.js';
2
2
  import { useRef, useMemo } from 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import 'jszip';
@@ -18,6 +18,9 @@ export declare type Trigger = {
18
18
  rowIndex?: number;
19
19
  action?: string;
20
20
  rowData?: Record<string, any>;
21
+ columnIndex?: number;
22
+ columnKey?: string;
23
+ columnName?: string;
21
24
  };
22
25
  export declare type FieldData = {
23
26
  [fieldKey: string]: {
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/types/Form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/types/Form.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feathery/react",
3
- "version": "2.48.0",
3
+ "version": "2.49.0",
4
4
  "description": "React library for Feathery",
5
5
  "author": "Boyang Dun",
6
6
  "license": "MIT",
@@ -120,7 +120,7 @@
120
120
  "@emotion/babel-preset-css-prop": "11.12.0",
121
121
  "@emotion/cache": "^11.14.0",
122
122
  "@emotion/react": "11.14.0",
123
- "@feathery/client-utils": "0.17.0",
123
+ "@feathery/client-utils": "0.18.0",
124
124
  "@fingerprintjs/fingerprintjs": "5.1.0",
125
125
  "@rc-component/slider": "^1.0.0",
126
126
  "@segment/analytics-next": "^1.84.0",