@feathery/react 2.44.0 → 2.45.1

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 (142) hide show
  1. package/cjs/Form/index.d.ts.map +1 -1
  2. package/cjs/Form/tests/testMocks.d.ts.map +1 -1
  3. package/cjs/elements/basic/TableElement/Actions.d.ts.map +1 -1
  4. package/cjs/elements/basic/TableElement/DeleteConfirm.d.ts.map +1 -1
  5. package/cjs/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  6. package/cjs/elements/basic/TableElement/EmptyState.d.ts.map +1 -1
  7. package/cjs/elements/basic/TableElement/Pagination.d.ts.map +1 -1
  8. package/cjs/elements/basic/TableElement/Search.d.ts.map +1 -1
  9. package/cjs/elements/basic/TableElement/Sort.d.ts.map +1 -1
  10. package/cjs/elements/basic/TableElement/classNames.d.ts +27 -0
  11. package/cjs/elements/basic/TableElement/classNames.d.ts.map +1 -0
  12. package/cjs/elements/basic/TableElement/index.d.ts.map +1 -1
  13. package/cjs/{fthry_AssistantChat.CTrXRHYC.js → fthry_AssistantChat.Cxa5rdNF.js} +4 -4
  14. package/cjs/{fthry_FormControl.BoilLJu3.js → fthry_FormControl.quZka1xJ.js} +1 -1
  15. package/cjs/{fthry_InlineTooltip.C3LL7yhx.js → fthry_InlineTooltip.y6-oWSVZ.js} +2 -2
  16. package/cjs/{fthry_Overlay.C_kMTQo_.js → fthry_Overlay.UyeABG84.js} +1 -1
  17. package/cjs/{fthry_PaymentMethodField.B7Y0YcQQ.js → fthry_PaymentMethodField.CuxoGehI.js} +4 -4
  18. package/cjs/{fthry_Placeholder.Ckf5rx3l.js → fthry_Placeholder.CuEfo8VG.js} +1 -1
  19. package/cjs/{fthry_ShowEyeIcon.Dw983jmd.js → fthry_ShowEyeIcon.BcCMpxvv.js} +1 -1
  20. package/cjs/{fthry_auto-track.DdU0wd90.js → fthry_auto-track.CC1cAdjH.js} +2 -2
  21. package/cjs/{fthry_highlighted-body-TPN3WLV5.Dgq3ZfLo.js → fthry_highlighted-body-TPN3WLV5.6Ghg7Q3f.js} +3 -3
  22. package/cjs/{fthry_index.CVnv_Jad.js → fthry_index.B4E5FZ7Y.js} +1 -1
  23. package/cjs/{fthry_index.C3PGeG-p.js → fthry_index.B4VCvBKj.js} +10 -10
  24. package/cjs/{fthry_index.Bv2eS3Vo.js → fthry_index.BGhHAY07.js} +2 -2
  25. package/cjs/{fthry_index.CZEWDsUp.js → fthry_index.BHTUrSkI.js} +2 -2
  26. package/cjs/{fthry_index.Dom24Lwj.js → fthry_index.BKQUmnu5.js} +1 -1
  27. package/cjs/{fthry_index.BfbtecrW.js → fthry_index.BMnE8tC9.js} +1 -1
  28. package/cjs/{fthry_index.kb1SveDj.js → fthry_index.BRdhmaUx.js} +3 -3
  29. package/cjs/{fthry_index.Buv2Sg-R.js → fthry_index.BcLktu2D.js} +5 -5
  30. package/cjs/{fthry_index.D3dqn02k.js → fthry_index.BgKXyZSS.js} +1 -1
  31. package/cjs/{fthry_index.DicGhamJ.js → fthry_index.BiMrWhBX.js} +1 -1
  32. package/cjs/{fthry_index.BvbHMtIp.js → fthry_index.BvbplnGd.js} +5 -5
  33. package/cjs/{fthry_index.D8Red3Ny.js → fthry_index.BwKXpTgl.js} +72 -31
  34. package/cjs/{fthry_index.Dod7JSDp.js → fthry_index.CBTDUDwZ.js} +1 -1
  35. package/cjs/{fthry_index.LV1j0g0M.js → fthry_index.CNM0qgO9.js} +6 -6
  36. package/cjs/{fthry_index.C8F7fXYY.js → fthry_index.CbxH-ZCk.js} +3 -3
  37. package/cjs/{fthry_index.37lEi-Hp.js → fthry_index.CpXIXkG1.js} +1 -1
  38. package/cjs/{fthry_index.LvXa1Omo.js → fthry_index.D1EUsyqA.js} +6 -6
  39. package/cjs/{fthry_index.BHqkdfIz.js → fthry_index.D42hnp_f.js} +5 -5
  40. package/cjs/{fthry_index.B4peckbq.js → fthry_index.D8Dd0vHB.js} +1 -1
  41. package/cjs/{fthry_index.jKKDa77s.js → fthry_index.DFaNyQht.js} +2 -2
  42. package/cjs/{fthry_index.CelZlNgP.js → fthry_index.DGUuHf_s.js} +4 -4
  43. package/cjs/{fthry_index.29ly7g2Z.js → fthry_index.DHd7cGrD.js} +2 -2
  44. package/cjs/{fthry_index.DDPSNVyH.js → fthry_index.DLUH5dHn.js} +1 -1
  45. package/cjs/{fthry_index.BGz622Tq.js → fthry_index.DU4YOg1b.js} +4 -4
  46. package/cjs/{fthry_index.hlvuql4I.js → fthry_index.DflIYuDc.js} +5 -5
  47. package/cjs/{fthry_index.3RtrK8MX.js → fthry_index.Dhs6T2jm.js} +86 -35
  48. package/cjs/{fthry_index.GMymJjG7.js → fthry_index.DjFmBtcB.js} +2 -2
  49. package/cjs/{fthry_index.DzFvroe5.js → fthry_index.cgMT1wF8.js} +6 -6
  50. package/cjs/{fthry_index.BI8F8bA_.js → fthry_index.g1wTMWoh.js} +2 -2
  51. package/cjs/{fthry_index.CKVVzHIN.js → fthry_index.jM9IrUzf.js} +6 -6
  52. package/cjs/{fthry_index.5r0bFZtm.js → fthry_index.niUrMyTP.js} +8 -8
  53. package/cjs/{fthry_index.umd.IVs8gbvz.js → fthry_index.umd.CIUOsrAT.js} +1 -1
  54. package/cjs/{fthry_input.CtQ9PDhT.js → fthry_input.COOOIvlX.js} +1 -1
  55. package/cjs/{fthry_mermaid-O7DHMXV3.OED8wUgR.js → fthry_mermaid-O7DHMXV3.CBY9gF3b.js} +3 -3
  56. package/cjs/{fthry_script.BVZmLSex.js → fthry_script.9_UzZkVO.js} +1 -1
  57. package/cjs/{fthry_styles.D-_UUb_M.js → fthry_styles.CIKtUEGu.js} +1 -1
  58. package/cjs/{fthry_useElementSize.CDRo_Jkc.js → fthry_useElementSize.hOKCjcSe.js} +1 -1
  59. package/cjs/{fthry_useSalesforceSync.Bx08h06s.js → fthry_useSalesforceSync.Vr5Ug2zJ.js} +1 -1
  60. package/cjs/{fthry_webfontloader.BH2uCTmw.js → fthry_webfontloader.A2s9rv8X.js} +1 -1
  61. package/cjs/index.d.ts +1 -1
  62. package/cjs/index.js +1 -1
  63. package/cjs/utils/emotionCache.d.ts +3 -0
  64. package/cjs/utils/emotionCache.d.ts.map +1 -0
  65. package/cjs/utils/formContext.d.ts +1 -1
  66. package/cjs/utils/formContext.d.ts.map +1 -1
  67. package/dist/Form/index.d.ts.map +1 -1
  68. package/dist/Form/tests/testMocks.d.ts.map +1 -1
  69. package/dist/elements/basic/TableElement/Actions.d.ts.map +1 -1
  70. package/dist/elements/basic/TableElement/DeleteConfirm.d.ts.map +1 -1
  71. package/dist/elements/basic/TableElement/EditableCell.d.ts.map +1 -1
  72. package/dist/elements/basic/TableElement/EmptyState.d.ts.map +1 -1
  73. package/dist/elements/basic/TableElement/Pagination.d.ts.map +1 -1
  74. package/dist/elements/basic/TableElement/Search.d.ts.map +1 -1
  75. package/dist/elements/basic/TableElement/Sort.d.ts.map +1 -1
  76. package/dist/elements/basic/TableElement/classNames.d.ts +27 -0
  77. package/dist/elements/basic/TableElement/classNames.d.ts.map +1 -0
  78. package/dist/elements/basic/TableElement/index.d.ts.map +1 -1
  79. package/dist/elements/basic/tests/TableElement.spec.d.ts +2 -0
  80. package/dist/elements/basic/tests/TableElement.spec.d.ts.map +1 -0
  81. package/dist/{fthry_AssistantChat.D97z2Fjs.js → fthry_AssistantChat.CptKI3MJ.js} +4 -4
  82. package/dist/{fthry_FormControl.DJieQaw-.js → fthry_FormControl.CsOU9cE0.js} +1 -1
  83. package/dist/{fthry_InlineTooltip.Chat1FIN.js → fthry_InlineTooltip.EK3gPvwe.js} +2 -2
  84. package/dist/{fthry_Overlay.pCv-XBOA.js → fthry_Overlay.DLfHSitG.js} +1 -1
  85. package/dist/{fthry_PaymentMethodField._G2uJ6Ks.js → fthry_PaymentMethodField.Dlu7xh7R.js} +4 -4
  86. package/dist/{fthry_Placeholder.C7B4adz4.js → fthry_Placeholder.D1RmrK_x.js} +1 -1
  87. package/dist/{fthry_ShowEyeIcon.DrP5GypN.js → fthry_ShowEyeIcon.DIauZsAj.js} +1 -1
  88. package/dist/{fthry_auto-track.Bb7a2GMR.js → fthry_auto-track._kagu7wX.js} +2 -2
  89. package/dist/{fthry_highlighted-body-TPN3WLV5.QeEpdZbH.js → fthry_highlighted-body-TPN3WLV5.B0SIuyN5.js} +3 -3
  90. package/dist/{fthry_index.BMzPHmtX.js → fthry_index.-DIGt7Iz.js} +2 -2
  91. package/dist/{fthry_index.CIlxRQ4S.js → fthry_index.8sovgfvT.js} +5 -5
  92. package/dist/{fthry_index.C5BLw18G.js → fthry_index.B-LrQpqs.js} +6 -6
  93. package/dist/{fthry_index.XG1xyplD.js → fthry_index.B6nKTF21.js} +4 -4
  94. package/dist/{fthry_index.DJRjeQWm.js → fthry_index.B9rPrwAG.js} +5 -5
  95. package/dist/{fthry_index.DdgFKsos.js → fthry_index.BMjfEu0y.js} +1 -1
  96. package/dist/{fthry_index.ChUSP_4k.js → fthry_index.BVtc1Qha.js} +6 -6
  97. package/dist/{fthry_index.CUY_p8do.js → fthry_index.BWCBtRyN.js} +5 -5
  98. package/dist/{fthry_index.DA_5F_7_.js → fthry_index.BWclxwtj.js} +1 -1
  99. package/dist/{fthry_index.0o3T2ouc.js → fthry_index.BWdFbMhj.js} +1 -1
  100. package/dist/{fthry_index.BJKDlrlW.js → fthry_index.BwiTulQu.js} +4 -4
  101. package/dist/{fthry_index.CubzFuFl.js → fthry_index.C8sj4mDj.js} +3 -3
  102. package/dist/{fthry_index.QPKqFn46.js → fthry_index.CB4Y32e_.js} +1 -1
  103. package/dist/{fthry_index.CXn-UnK8.js → fthry_index.CIYDAXjD.js} +3 -3
  104. package/dist/{fthry_index.BZvFWQLR.js → fthry_index.CJWAyFVQ.js} +2 -2
  105. package/dist/{fthry_index.x66JmbiK.js → fthry_index.CQRZTwm-.js} +2 -2
  106. package/dist/{fthry_index.Csz_U1Oc.js → fthry_index.Cg_j3I3Y.js} +5 -5
  107. package/dist/{fthry_index.ClZUnlbG.js → fthry_index.D4tLe_Yt.js} +1 -1
  108. package/dist/{fthry_index.Cqhg3Wmg.js → fthry_index.D7WXkc6s.js} +1 -1
  109. package/dist/{fthry_index.BWH9S7pc.js → fthry_index.DHQdU-Hq.js} +71 -30
  110. package/dist/{fthry_index.DJ7vQ3zt.js → fthry_index.DIx5upln.js} +1 -1
  111. package/dist/{fthry_index.DuRVVFRL.js → fthry_index.DlLRrl91.js} +2 -2
  112. package/dist/{fthry_index.D4pTk5dr.js → fthry_index.DqhzI4MJ.js} +8 -8
  113. package/dist/{fthry_index.1SZZv9d2.js → fthry_index.DtfOhhL6.js} +10 -10
  114. package/dist/{fthry_index.C8LO6uJL.js → fthry_index.DzY7raLN.js} +6 -6
  115. package/dist/{fthry_index.CDuqBBJn.js → fthry_index.Ijv_o9zh.js} +86 -35
  116. package/dist/{fthry_index.BpKf-eNy.js → fthry_index.IqW0lm_M.js} +1 -1
  117. package/dist/{fthry_index.D1iW0N2t.js → fthry_index._3K7F5LE.js} +1 -1
  118. package/dist/{fthry_index.UTYK1bhI.js → fthry_index.uMrzFN7W.js} +2 -2
  119. package/dist/{fthry_index.DG6NlwpO.js → fthry_index.uT2AzoIt.js} +2 -2
  120. package/dist/{fthry_index.umd.DLnl0brp.js → fthry_index.umd.D-4_3WMI.js} +1 -1
  121. package/dist/{fthry_index.B6pEx1zI.js → fthry_index.zjguVlQJ.js} +5 -5
  122. package/dist/{fthry_input.BgzKGmQG.js → fthry_input.D8VQ1Mr4.js} +1 -1
  123. package/dist/{fthry_mermaid-O7DHMXV3.DehdVKQ3.js → fthry_mermaid-O7DHMXV3.C-knn8UL.js} +3 -3
  124. package/dist/{fthry_script.BcdCwqG3.js → fthry_script.Dr86Djze.js} +1 -1
  125. package/dist/{fthry_styles.DNxDElEh.js → fthry_styles.C6abImDN.js} +1 -1
  126. package/dist/{fthry_useElementSize.DvHJBcIE.js → fthry_useElementSize.DMJ4ZQAl.js} +1 -1
  127. package/dist/{fthry_useSalesforceSync.DHWXQkeF.js → fthry_useSalesforceSync.C6WG-TQK.js} +1 -1
  128. package/dist/{fthry_webfontloader.C-DWZTL7.js → fthry_webfontloader.DA1UUTp-.js} +1 -1
  129. package/dist/index.d.ts +1 -1
  130. package/dist/index.js +1 -1
  131. package/dist/utils/emotionCache.d.ts +3 -0
  132. package/dist/utils/emotionCache.d.ts.map +1 -0
  133. package/dist/utils/formContext.d.ts +1 -1
  134. package/dist/utils/formContext.d.ts.map +1 -1
  135. package/dist/utils/tests/emotionCache.spec.d.ts +2 -0
  136. package/dist/utils/tests/emotionCache.spec.d.ts.map +1 -0
  137. package/package.json +3 -2
  138. package/umd/529.eeb27f741d6f4da1315b.js +1 -0
  139. package/umd/TableElement.8c0bec8400517f135fe6.js +1 -0
  140. package/umd/index.js +1 -1
  141. package/umd/529.e7a0a831bf80398fda0f.js +0 -1
  142. package/umd/TableElement.e3da137819e9b84b3b82.js +0 -1
@@ -1,4 +1,4 @@
1
- import { j as jsxs, _ as __assign, a as jsx, c as __read, I as isEmptyArray, J as toList, K as useThumbnailData, L as __spreadArray, i as imgMaxSizeStyles, l as __awaiter, m as __generator, M as downloadFile, N as CloseIcon, b as iosScrollOnFocus, F as FORM_Z_INDEX, O as justRemove } from './fthry_index.CDuqBBJn.js';
1
+ import { j as jsxs, _ as __assign, a as jsx, c as __read, I as isEmptyArray, J as toList, K as useThumbnailData, L as __spreadArray, i as imgMaxSizeStyles, l as __awaiter, m as __generator, M as downloadFile, N as CloseIcon, b as iosScrollOnFocus, F as FORM_Z_INDEX, O as justRemove } from './fthry_index.Ijv_o9zh.js';
2
2
  import { useRef, useState, useEffect } from 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react-dom/client';
@@ -1,5 +1,5 @@
1
- import { k as __rest, a as jsx, _ as __assign, j as jsxs, q as Fragment, c as __read, t as featheryDoc, f as fieldValues, z as stringifyWithNull, U as __values, L as __spreadArray } from './fthry_index.CDuqBBJn.js';
2
- import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
1
+ import { k as __rest, a as jsx, _ as __assign, j as jsxs, c as __read, t as featheryDoc, q as Fragment$1, f as fieldValues, z as stringifyWithNull, U as __values, L as __spreadArray } from './fthry_index.Ijv_o9zh.js';
2
+ import { Fragment, useState, useRef, useEffect, useCallback, useMemo } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react-dom/client';
@@ -406,6 +406,39 @@ var confirmDeleteButtonStyle = __assign(__assign({}, buttonStyle), { borderRadiu
406
406
  color: colors.white
407
407
  } });
408
408
 
409
+ // Public, user-targetable class names for the parts of the table element.
410
+ //
411
+ // These are a documented, stable API: form builders write custom CSS against
412
+ // them (e.g. `.feathery-table-cell { ... }`).
413
+ //
414
+ // Treat renames/removals as breaking changes to customer CSS.
415
+ var TABLE_CLASS = {
416
+ container: 'feathery-table-container',
417
+ toolbar: 'feathery-table-toolbar',
418
+ search: 'feathery-table-search',
419
+ searchInput: 'feathery-table-search-input',
420
+ addRowButton: 'feathery-table-add-row-button',
421
+ table: 'feathery-table',
422
+ header: 'feathery-table-header',
423
+ headerCell: 'feathery-table-header-cell',
424
+ sortIcon: 'feathery-table-sort-icon',
425
+ body: 'feathery-table-body',
426
+ row: 'feathery-table-row',
427
+ cell: 'feathery-table-cell',
428
+ editableCell: 'feathery-table-editable-cell',
429
+ cellInput: 'feathery-table-cell-input',
430
+ actionButton: 'feathery-table-action-button',
431
+ actionMenuButton: 'feathery-table-action-menu-button',
432
+ actionMenu: 'feathery-table-action-menu',
433
+ actionMenuItem: 'feathery-table-action-menu-item',
434
+ deleteButton: 'feathery-table-delete-button',
435
+ deleteConfirm: 'feathery-table-delete-confirm',
436
+ pagination: 'feathery-table-pagination',
437
+ pageButton: 'feathery-table-page-button',
438
+ pageSelect: 'feathery-table-page-select',
439
+ empty: 'feathery-table-empty'
440
+ };
441
+
409
442
  function SearchIcon() {
410
443
  return (jsx("svg", __assign({ css: searchIconStyle, fill: 'none', viewBox: '0 0 24 24', stroke: 'currentColor', strokeWidth: 2 }, { children: jsx("path", { strokeLinecap: 'round', d: 'M21 21l-3.5-3.5M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Z' }) })));
411
444
  }
@@ -416,12 +449,12 @@ function Search(_a) {
416
449
  e.preventDefault();
417
450
  }
418
451
  };
419
- return (jsxs("div", __assign({ css: searchWrapperStyle }, { children: [jsx("div", __assign({ css: searchIconWrapperStyle }, { children: jsx(SearchIcon, {}) })), jsx("input", { type: 'text', css: searchInputStyle, placeholder: 'Search', value: searchQuery, onChange: function (e) { return onSearchChange(e.target.value); }, onKeyDown: handleKeyDown })] })));
452
+ return (jsxs("div", __assign({ className: TABLE_CLASS.search, css: searchWrapperStyle }, { children: [jsx("div", __assign({ css: searchIconWrapperStyle }, { children: jsx(SearchIcon, {}) })), jsx("input", { type: 'text', className: TABLE_CLASS.searchInput, css: searchInputStyle, placeholder: 'Search', value: searchQuery, onChange: function (e) { return onSearchChange(e.target.value); }, onKeyDown: handleKeyDown })] })));
420
453
  }
421
454
 
422
455
  function SortIcon(_a) {
423
456
  var isSorted = _a.isSorted, sortDirection = _a.sortDirection;
424
- return (jsxs("svg", __assign({ xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 24 24', fill: 'none', "aria-hidden": 'true' }, { children: [jsx("path", { css: sortArrowStyle, stroke: 'currentColor', "data-active": (isSorted && sortDirection === 'asc') || undefined, strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: 2, d: 'm8 9 4-4 4 4' }), jsx("path", { css: sortArrowStyle, stroke: 'currentColor', "data-active": (isSorted && sortDirection === 'desc') || undefined, strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: 2, d: 'm8 15 4 4 4-4' })] })));
457
+ return (jsxs("svg", __assign({ xmlns: 'http://www.w3.org/2000/svg', className: TABLE_CLASS.sortIcon, viewBox: '0 0 24 24', fill: 'none', "aria-hidden": 'true' }, { children: [jsx("path", { css: sortArrowStyle, stroke: 'currentColor', "data-active": (isSorted && sortDirection === 'asc') || undefined, strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: 2, d: 'm8 9 4-4 4 4' }), jsx("path", { css: sortArrowStyle, stroke: 'currentColor', "data-active": (isSorted && sortDirection === 'desc') || undefined, strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: 2, d: 'm8 15 4 4 4-4' })] })));
425
458
  }
426
459
  function SortHeader(_a) {
427
460
  var columns = _a.columns, enableSort = _a.enableSort, sortColumn = _a.sortColumn, sortDirection = _a.sortDirection, onSort = _a.onSort, styles = _a.styles;
@@ -429,7 +462,7 @@ function SortHeader(_a) {
429
462
  var isSortable = enableSort;
430
463
  var isSorted = sortColumn === column.name;
431
464
  var isFirstColumn = index === 0;
432
- return (jsx("th", __assign({ scope: 'col', onClick: function () { return isSortable && onSort(column.name); }, css: __assign(__assign(__assign(__assign({}, thStyle), (isFirstColumn ? {} : { paddingLeft: 0 })), styles.getTarget('th')), (isSortable ? { cursor: 'pointer' } : {})) }, { children: jsxs("div", __assign({ css: sortHeaderContentStyle }, { children: [jsx("span", { children: column.name }), isSortable && (jsx("span", __assign({ css: sortIconContainerStyle }, { children: jsx(SortIcon, { isSorted: isSorted, sortDirection: sortDirection }) })))] })) }), index));
465
+ return (jsx("th", __assign({ scope: 'col', className: TABLE_CLASS.headerCell, "data-feathery-field": column.field_key, onClick: function () { return isSortable && onSort(column.name); }, css: __assign(__assign(__assign(__assign({}, thStyle), (isFirstColumn ? {} : { paddingLeft: 0 })), styles.getTarget('th')), (isSortable ? { cursor: 'pointer' } : {})) }, { children: jsxs("div", __assign({ css: sortHeaderContentStyle }, { children: [jsx("span", { children: column.name }), isSortable && (jsx("span", __assign({ css: sortIconContainerStyle }, { children: jsx(SortIcon, { isSorted: isSorted, sortDirection: sortDirection }) })))] })) }), index));
433
466
  }) }));
434
467
  }
435
468
 
@@ -440,17 +473,17 @@ function PageInfo(_a) {
440
473
  }
441
474
  function PreviousButton(_a) {
442
475
  var disabled = _a.disabled, onClick = _a.onClick;
443
- return (jsx("button", __assign({ type: 'button', onClick: onClick, disabled: disabled, css: __assign(__assign({}, pageButtonPrevStyle), (disabled ? pageButtonDisabledStyle : {})) }, { children: "Previous" })));
476
+ return (jsx("button", __assign({ type: 'button', onClick: onClick, disabled: disabled, className: TABLE_CLASS.pageButton, css: __assign(__assign({}, pageButtonPrevStyle), (disabled ? pageButtonDisabledStyle : {})) }, { children: "Previous" })));
444
477
  }
445
478
  function NextButton(_a) {
446
479
  var disabled = _a.disabled, onClick = _a.onClick;
447
- return (jsx("button", __assign({ type: 'button', onClick: onClick, disabled: disabled, css: __assign(__assign({}, pageButtonNextStyle), (disabled ? pageButtonDisabledStyle : {})) }, { children: "Next" })));
480
+ return (jsx("button", __assign({ type: 'button', onClick: onClick, disabled: disabled, className: TABLE_CLASS.pageButton, css: __assign(__assign({}, pageButtonNextStyle), (disabled ? pageButtonDisabledStyle : {})) }, { children: "Next" })));
448
481
  }
449
482
  function OverflowSelect(_a) {
450
483
  var pages = _a.pages, onPageChange = _a.onPageChange;
451
484
  return (jsxs("select", __assign({ value: '', onChange: function (e) {
452
485
  onPageChange(Number(e.target.value));
453
- }, "aria-label": 'Go to page', css: overflowSelectStyle }, { children: [jsx("option", __assign({ value: '', disabled: true, hidden: true }, { children: "..." })), pages.map(function (page) { return (jsx("option", __assign({ value: page }, { children: page + 1 }), page)); })] })));
486
+ }, "aria-label": 'Go to page', className: TABLE_CLASS.pageSelect, css: overflowSelectStyle }, { children: [jsx("option", __assign({ value: '', disabled: true, hidden: true }, { children: "..." })), pages.map(function (page) { return (jsx("option", __assign({ value: page }, { children: page + 1 }), page)); })] })));
454
487
  }
455
488
  function PageNumbers(_a) {
456
489
  var currentPage = _a.currentPage, totalPages = _a.totalPages, onPageChange = _a.onPageChange;
@@ -477,12 +510,12 @@ function PageNumbers(_a) {
477
510
  return (jsx(Fragment, { children: items.map(function (item, idx) {
478
511
  if (item.type === 'overflow') {
479
512
  if (item.pages.length === 1) {
480
- return (jsx("li", { children: jsx("button", __assign({ type: 'button', onClick: function () { return onPageChange(item.pages[0]); }, css: pageButtonStyle }, { children: item.pages[0] + 1 })) }, "overflow-".concat(idx)));
513
+ return (jsx("li", { children: jsx("button", __assign({ type: 'button', onClick: function () { return onPageChange(item.pages[0]); }, className: TABLE_CLASS.pageButton, css: pageButtonStyle }, { children: item.pages[0] + 1 })) }, "overflow-".concat(idx)));
481
514
  }
482
515
  return (jsx("li", { children: jsx(OverflowSelect, { pages: item.pages, onPageChange: onPageChange }) }, "overflow-".concat(idx)));
483
516
  }
484
517
  var isActive = item.page === currentPage;
485
- return (jsx("li", { children: jsx("button", __assign({ type: 'button', onClick: function () { return onPageChange(item.page); }, "aria-current": isActive ? 'page' : undefined, css: isActive
518
+ return (jsx("li", { children: jsx("button", __assign({ type: 'button', onClick: function () { return onPageChange(item.page); }, "aria-current": isActive ? 'page' : undefined, className: TABLE_CLASS.pageButton, css: isActive
486
519
  ? pageButtonActiveStyle
487
520
  : pageButtonStyle }, { children: item.page + 1 })) }, item.page));
488
521
  }) }));
@@ -491,7 +524,7 @@ function Pagination(_a) {
491
524
  var currentPage = _a.currentPage, totalPages = _a.totalPages, totalItems = _a.totalItems, rowsPerPage = _a.rowsPerPage, onPageChange = _a.onPageChange;
492
525
  if (totalPages <= 1)
493
526
  return null;
494
- return (jsxs("nav", __assign({ css: navStyle, "aria-label": 'Table navigation' }, { children: [jsx(PageInfo, { currentPage: currentPage, totalItems: totalItems, rowsPerPage: rowsPerPage }), jsxs("ul", __assign({ css: paginationListStyle }, { children: [jsx("li", { children: jsx(PreviousButton, { disabled: currentPage === 0, onClick: function () { return onPageChange(Math.max(0, currentPage - 1)); } }) }), jsx(PageNumbers, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange }), jsx("li", { children: jsx(NextButton, { disabled: currentPage >= totalPages - 1, onClick: function () {
527
+ return (jsxs("nav", __assign({ className: TABLE_CLASS.pagination, css: navStyle, "aria-label": 'Table navigation' }, { children: [jsx(PageInfo, { currentPage: currentPage, totalItems: totalItems, rowsPerPage: rowsPerPage }), jsxs("ul", __assign({ css: paginationListStyle }, { children: [jsx("li", { children: jsx(PreviousButton, { disabled: currentPage === 0, onClick: function () { return onPageChange(Math.max(0, currentPage - 1)); } }) }), jsx(PageNumbers, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange }), jsx("li", { children: jsx(NextButton, { disabled: currentPage >= totalPages - 1, onClick: function () {
495
528
  onPageChange(Math.min(totalPages - 1, currentPage + 1));
496
529
  } }) })] }))] })));
497
530
  }
@@ -565,24 +598,24 @@ function ActionButtons(_a) {
565
598
  return (jsx("div", __assign({ ref: containerRef, css: actionContainerStyle }, { children: useOverflow ? (jsxs(Fragment, { children: [jsx("button", __assign({ ref: menuButtonRef, type: 'button', disabled: overflowLoader, onClick: function (e) {
566
599
  e.stopPropagation();
567
600
  handleMenuToggle();
568
- }, css: actionIconButtonStyle }, { children: overflowLoader ? (jsx("div", __assign({ style: {
601
+ }, className: TABLE_CLASS.actionMenuButton, css: actionIconButtonStyle }, { children: overflowLoader ? (jsx("div", __assign({ style: {
569
602
  height: '16px',
570
603
  width: '16px',
571
604
  display: 'flex',
572
605
  alignItems: 'center',
573
606
  justifyContent: 'center'
574
607
  } }, { children: overflowLoader }))) : (jsx(MenuIcon, {})) })), isMenuOpen &&
575
- createPortal(jsxs("div", __assign({ ref: menuRef, css: __assign(__assign({}, actionMenuStyle), { top: "".concat(menuPosition.top, "px"), left: "".concat(menuPosition.left, "px"), transform: 'translateX(-100%)' }) }, { children: [actions.map(function (action, index) {
608
+ createPortal(jsxs("div", __assign({ ref: menuRef, className: TABLE_CLASS.actionMenu, css: __assign(__assign({}, actionMenuStyle), { top: "".concat(menuPosition.top, "px"), left: "".concat(menuPosition.left, "px"), transform: 'translateX(-100%)' }) }, { children: [actions.map(function (action, index) {
576
609
  var disabled = Object.keys(buttonLoaders).length > 0;
577
610
  return (jsx("button", __assign({ type: 'button', onClick: function (e) {
578
611
  e.stopPropagation();
579
612
  handleActionClick(action);
580
- }, css: actionMenuItemStyle, disabled: disabled }, { children: action.label }), index));
581
- }), canDeleteRows && onDeleteRow && (jsxs(Fragment, { children: [jsx("div", { css: actionMenuSeparatorStyle }), jsx("button", __assign({ type: 'button', onClick: function (e) {
613
+ }, className: TABLE_CLASS.actionMenuItem, css: actionMenuItemStyle, disabled: disabled }, { children: action.label }), index));
614
+ }), canDeleteRows && onDeleteRow && (jsxs(Fragment$1, { children: [jsx("div", { css: actionMenuSeparatorStyle }), jsx("button", __assign({ type: 'button', onClick: function (e) {
582
615
  e.stopPropagation();
583
616
  setIsMenuOpen(false);
584
617
  onDeleteRow(rowIndex);
585
- }, css: actionMenuDeleteItemStyle }, { children: "Delete" }))] }))] })), featheryDoc().body)] })) : (actions.map(function (action, index) {
618
+ }, className: TABLE_CLASS.actionMenuItem, css: actionMenuDeleteItemStyle }, { children: "Delete" }))] }))] })), featheryDoc().body)] })) : (actions.map(function (action, index) {
586
619
  var _a;
587
620
  var buttonKey = "".concat(tableId, "_").concat(rowIndex, "_").concat(action.label);
588
621
  var loader = (_a = buttonLoaders[buttonKey]) === null || _a === void 0 ? void 0 : _a.loader;
@@ -590,7 +623,7 @@ function ActionButtons(_a) {
590
623
  return (jsxs("button", __assign({ type: 'button', onClick: function (e) {
591
624
  e.stopPropagation();
592
625
  handleActionClick(action);
593
- }, css: actionButtonStyle, disabled: disabled }, { children: [jsx("span", __assign({ style: { visibility: loader ? 'hidden' : 'visible' } }, { children: action.label })), loader && (jsx("div", __assign({ style: {
626
+ }, className: TABLE_CLASS.actionButton, css: actionButtonStyle, disabled: disabled }, { children: [jsx("span", __assign({ style: { visibility: loader ? 'hidden' : 'visible' } }, { children: action.label })), loader && (jsx("div", __assign({ style: {
594
627
  position: 'absolute',
595
628
  top: '50%',
596
629
  left: '50%',
@@ -603,7 +636,7 @@ function ActionButtons(_a) {
603
636
 
604
637
  function EmptyState(_a) {
605
638
  var hasSearchQuery = _a.hasSearchQuery;
606
- return (jsxs("div", __assign({ css: emptyStateContainerStyle }, { children: [hasSearchQuery && (jsx("svg", __assign({ css: {
639
+ return (jsxs("div", __assign({ className: TABLE_CLASS.empty, css: emptyStateContainerStyle }, { children: [hasSearchQuery && (jsx("svg", __assign({ css: {
607
640
  width: '48px',
608
641
  height: '48px',
609
642
  color: '#9ca3af',
@@ -643,7 +676,7 @@ function DeleteConfirm(_a) {
643
676
  doc.removeEventListener('keydown', handleKeyDown);
644
677
  };
645
678
  }, [onCancel, anchorEl]);
646
- return createPortal(jsxs("div", __assign({ ref: popoverRef, role: 'alertdialog', "aria-label": message, 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
+ 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) {
647
680
  e.stopPropagation();
648
681
  onCancel();
649
682
  } }, { children: "Cancel" })), jsx("button", __assign({ type: 'button', css: confirmDeleteButtonStyle, onClick: function (e) {
@@ -739,12 +772,12 @@ function EditableCell(_a) {
739
772
  setIsMenuOpen(!isMenuOpen);
740
773
  };
741
774
  if (isEditing) {
742
- return (jsxs("div", __assign({ 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, css: __assign(__assign({}, cellInputStyle), editingCellInputStyle), onClick: function (e) { return e.stopPropagation(); } })] })));
775
+ 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(); } })] })));
743
776
  }
744
777
  if (isEmpty) {
745
- return (jsx("span", __assign({ css: clickToEditStyle, onClick: startEditing }, { children: "Click to edit" })));
778
+ return (jsx("span", __assign({ className: TABLE_CLASS.editableCell, css: clickToEditStyle, onClick: startEditing }, { children: "Click to edit" })));
746
779
  }
747
- return (jsxs("div", __assign({ 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
+ 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 &&
748
781
  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) {
749
782
  e.stopPropagation();
750
783
  startEditing();
@@ -1448,7 +1481,7 @@ function TableElement(_a) {
1448
1481
  ]);
1449
1482
  var showEmptyState = !hasData || !hasSearchResults;
1450
1483
  var showToolbar = enableSearch || showAddRow;
1451
- return (jsxs("div", __assign({ css: __assign(__assign({}, containerStyle), styles.getTarget('container')) }, { children: [showToolbar && (jsxs("div", __assign({ css: toolbarStyle }, { children: [enableSearch ? (jsx(Search, { searchQuery: searchQuery, onSearchChange: setSearchQuery })) : (jsx("div", {})), showAddRow && (jsx("button", __assign({ type: 'button', css: addRowButtonStyle, onClick: wrappedHandleAddRow }, { children: "+ Add Row" })))] }))), showEmptyState ? (jsx(EmptyState, { hasSearchQuery: searchQuery.trim().length > 0 })) : (jsx("div", __assign({ css: { overflowX: 'auto' } }, { children: jsxs("table", __assign({ css: __assign(__assign({}, tableStyle), styles.getTarget('table')) }, { children: [!isTransposed && (jsx("thead", __assign({ css: theadStyle }, { children: jsxs("tr", { children: [jsx(SortHeader, { columns: columns, enableSort: enableSort, sortColumn: sortColumn, sortDirection: sortDirection, onSort: handleSort, styles: styles }), actions.length > 0 && (jsx("th", { scope: 'col', css: __assign(__assign(__assign({}, thStyle), { paddingLeft: 0 }), styles.getTarget('th')) })), showStandaloneDeleteColumn && (jsx("th", { scope: 'col', css: __assign(__assign(__assign({}, thStyle), deleteColumnStyle), styles.getTarget('th')) }))] }) }))), jsxs("tbody", __assign({ css: styles.getTarget('tbody') }, { children: [paginatedRowIndices.map(function (rowIndex) {
1484
+ return (jsxs("div", __assign({ className: TABLE_CLASS.container, css: __assign(__assign({}, containerStyle), styles.getTarget('container')) }, { children: [showToolbar && (jsxs("div", __assign({ className: TABLE_CLASS.toolbar, css: toolbarStyle }, { children: [enableSearch ? (jsx(Search, { searchQuery: searchQuery, onSearchChange: setSearchQuery })) : (jsx("div", {})), showAddRow && (jsx("button", __assign({ type: 'button', className: TABLE_CLASS.addRowButton, css: addRowButtonStyle, onClick: wrappedHandleAddRow }, { children: "+ Add Row" })))] }))), showEmptyState ? (jsx(EmptyState, { hasSearchQuery: searchQuery.trim().length > 0 })) : (jsx("div", __assign({ css: { overflowX: 'auto' } }, { children: jsxs("table", __assign({ className: TABLE_CLASS.table, css: __assign(__assign({}, tableStyle), styles.getTarget('table')) }, { children: [!isTransposed && (jsx("thead", __assign({ className: TABLE_CLASS.header, css: theadStyle }, { children: jsxs("tr", { children: [jsx(SortHeader, { columns: columns, enableSort: enableSort, sortColumn: sortColumn, sortDirection: sortDirection, onSort: handleSort, styles: styles }), actions.length > 0 && (jsx("th", { scope: 'col', className: TABLE_CLASS.headerCell, css: __assign(__assign(__assign({}, thStyle), { paddingLeft: 0 }), styles.getTarget('th')) })), showStandaloneDeleteColumn && (jsx("th", { scope: 'col', className: TABLE_CLASS.headerCell, css: __assign(__assign(__assign({}, thStyle), deleteColumnStyle), styles.getTarget('th')) }))] }) }))), jsxs("tbody", __assign({ className: TABLE_CLASS.body, css: styles.getTarget('tbody') }, { children: [paginatedRowIndices.map(function (rowIndex) {
1452
1485
  var _a, _b;
1453
1486
  var rowData = {};
1454
1487
  if (!isTransposed) {
@@ -1468,8 +1501,8 @@ function TableElement(_a) {
1468
1501
  });
1469
1502
  }
1470
1503
  };
1471
- return (jsxs("tr", __assign({ css: __assign(__assign({}, rowStyle), styles.getTarget('tr')), onClick: handleRowClick }, { children: [columns.map(function (column, colIndex) {
1472
- var _a, _b;
1504
+ return (jsxs("tr", __assign({ className: TABLE_CLASS.row, css: __assign(__assign({}, rowStyle), styles.getTarget('tr')), onClick: handleRowClick }, { children: [columns.map(function (column, colIndex) {
1505
+ var _a, _b, _c;
1473
1506
  var fieldValue = activeFieldValues[column.field_key];
1474
1507
  var cellValue = Array.isArray(fieldValue)
1475
1508
  ? fieldValue[rowIndex]
@@ -1514,26 +1547,34 @@ function TableElement(_a) {
1514
1547
  });
1515
1548
  }
1516
1549
  };
1517
- return (jsx(CellElement, __assign({ css: cellCss, onClick: handleCellClick }, (isFirstColInTranspose ? { scope: 'row' } : {}), { children: isFirstColInTranspose && isSortable ? (jsxs("div", __assign({ css: __assign(__assign({}, sortHeaderContentStyle), { justifyContent: 'space-between' }) }, { children: [jsx("span", { children: (_a = stringifyWithNull(cellValue)) !== null && _a !== void 0 ? _a : '' }), 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 })) : ((_b = stringifyWithNull(cellValue)) !== null && _b !== void 0 ? _b : '') }), colIndex));
1550
+ // In transposed mode each rendered row holds one
1551
+ // original field, so every cell in it belongs to
1552
+ // baseColumns[rowIndex]
1553
+ var cellFieldKey = isTransposed
1554
+ ? (_a = baseColumns[rowIndex]) === null || _a === void 0 ? void 0 : _a.field_key
1555
+ : column.field_key;
1556
+ return (jsx(CellElement, __assign({ className: isFirstColInTranspose
1557
+ ? TABLE_CLASS.headerCell
1558
+ : 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));
1518
1559
  }), !isTransposed && actions.length > 0 && (jsxs("td", __assign({ ref: function (el) {
1519
1560
  if (el)
1520
1561
  actionCellRefs.current.set(rowIndex, el);
1521
1562
  else
1522
1563
  actionCellRefs.current.delete(rowIndex);
1523
- }, css: __assign(__assign(__assign({}, cellStyle), { paddingLeft: 0 }), styles.getTarget('td')) }, { children: [jsx(ActionButtons, { actions: actions, rowIndex: rowIndex, columnData: baseColumns, fieldValues: baseFieldValues, onClick: onClick, tableId: element.id, buttonLoaders: buttonLoaders, canDeleteRows: canDeleteRows && hasOverflowMenu, onDeleteRow: function (ri) { return setDeleteRowIndex(ri); } }), hasOverflowMenu &&
1564
+ }, className: TABLE_CLASS.cell, css: __assign(__assign(__assign({}, cellStyle), { paddingLeft: 0 }), styles.getTarget('td')) }, { children: [jsx(ActionButtons, { actions: actions, rowIndex: rowIndex, columnData: baseColumns, fieldValues: baseFieldValues, onClick: onClick, tableId: element.id, buttonLoaders: buttonLoaders, canDeleteRows: canDeleteRows && hasOverflowMenu, onDeleteRow: function (ri) { return setDeleteRowIndex(ri); } }), hasOverflowMenu &&
1524
1565
  canDeleteRows &&
1525
- deleteRowIndex === rowIndex && (jsx(DeleteConfirm, { anchorEl: (_a = actionCellRefs.current.get(rowIndex)) !== null && _a !== void 0 ? _a : null, onConfirm: function () { return wrappedHandleDeleteRow(rowIndex); }, onCancel: handleCancelDelete }))] }))), showStandaloneDeleteColumn && (jsxs("td", __assign({ css: __assign(__assign({}, deleteColumnStyle), styles.getTarget('td')) }, { children: [jsx("button", __assign({ type: 'button', ref: function (el) {
1566
+ deleteRowIndex === rowIndex && (jsx(DeleteConfirm, { anchorEl: (_a = actionCellRefs.current.get(rowIndex)) !== null && _a !== void 0 ? _a : null, onConfirm: function () { return wrappedHandleDeleteRow(rowIndex); }, onCancel: handleCancelDelete }))] }))), showStandaloneDeleteColumn && (jsxs("td", __assign({ className: TABLE_CLASS.cell, css: __assign(__assign({}, deleteColumnStyle), styles.getTarget('td')) }, { children: [jsx("button", __assign({ type: 'button', ref: function (el) {
1526
1567
  if (el)
1527
1568
  deleteIconRefs.current.set(rowIndex, el);
1528
1569
  else
1529
1570
  deleteIconRefs.current.delete(rowIndex);
1530
- }, css: __assign(__assign({}, deleteIconStyle), (deleteRowIndex === rowIndex && {
1571
+ }, className: TABLE_CLASS.deleteButton, css: __assign(__assign({}, deleteIconStyle), (deleteRowIndex === rowIndex && {
1531
1572
  opacity: 1
1532
1573
  })), onClick: function (e) {
1533
1574
  e.stopPropagation();
1534
1575
  setDeleteRowIndex(deleteRowIndex === rowIndex ? null : rowIndex);
1535
1576
  } }, { children: jsx(TrashIcon, {}) })), deleteRowIndex === rowIndex && (jsx(DeleteConfirm, { anchorEl: (_b = deleteIconRefs.current.get(rowIndex)) !== null && _b !== void 0 ? _b : null, onConfirm: function () { return wrappedHandleDeleteRow(rowIndex); }, onCancel: handleCancelDelete }))] })))] }), rowIndex));
1536
- }), isTransposed && actions.length > 0 && (jsxs("tr", __assign({ css: __assign(__assign({}, rowStyle), styles.getTarget('tr')) }, { children: [jsx("th", { scope: 'row', css: __assign(__assign(__assign({}, thStyle), { backgroundColor: '#f9fafb', borderRight: '1px solid #e5e7eb', width: '1px', whiteSpace: 'nowrap' }), styles.getTarget('th')) }), transposedRowIndices.map(function (originalRowIndex, idx) { return (jsx("td", __assign({ css: __assign(__assign(__assign({}, cellStyle), (idx === 0 ? {} : { paddingLeft: 0 })), styles.getTarget('td')) }, { children: jsx("div", __assign({ css: { display: 'flex', justifyContent: 'flex-start' } }, { children: jsx(ActionButtons, { actions: actions, rowIndex: originalRowIndex, columnData: baseColumns, fieldValues: baseFieldValues, onClick: onClick, forceInlineButtons: true, tableId: element.id, buttonLoaders: buttonLoaders }) })) }), originalRowIndex)); })] })))] }))] })) }))), !showEmptyState && enablePagination && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, totalItems: totalRows, rowsPerPage: rowsPerPage, onPageChange: setCurrentPage }))] })));
1577
+ }), isTransposed && actions.length > 0 && (jsxs("tr", __assign({ className: TABLE_CLASS.row, css: __assign(__assign({}, rowStyle), styles.getTarget('tr')) }, { children: [jsx("th", { scope: 'row', className: TABLE_CLASS.headerCell, css: __assign(__assign(__assign({}, thStyle), { backgroundColor: '#f9fafb', borderRight: '1px solid #e5e7eb', width: '1px', whiteSpace: 'nowrap' }), styles.getTarget('th')) }), transposedRowIndices.map(function (originalRowIndex, idx) { return (jsx("td", __assign({ className: TABLE_CLASS.cell, css: __assign(__assign(__assign({}, cellStyle), (idx === 0 ? {} : { paddingLeft: 0 })), styles.getTarget('td')) }, { children: jsx("div", __assign({ css: { display: 'flex', justifyContent: 'flex-start' } }, { children: jsx(ActionButtons, { actions: actions, rowIndex: originalRowIndex, columnData: baseColumns, fieldValues: baseFieldValues, onClick: onClick, forceInlineButtons: true, tableId: element.id, buttonLoaders: buttonLoaders }) })) }), originalRowIndex)); })] })))] }))] })) }))), !showEmptyState && enablePagination && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, totalItems: totalRows, rowsPerPage: rowsPerPage, onPageChange: setCurrentPage }))] })));
1537
1578
  }
1538
1579
 
1539
1580
  export { TableElement as default };
@@ -1,4 +1,4 @@
1
- import { _ as __assign } from './fthry_index.CDuqBBJn.js';
1
+ import { _ as __assign } from './fthry_index.Ijv_o9zh.js';
2
2
  import { i as isPlanEventEnabled } from './fthry_is-plan-event-enabled.mXX0dwl-.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
@@ -1,6 +1,6 @@
1
- import { l as __awaiter, m as __generator, L as __spreadArray, c as __read, U as __values, p as featheryWindow, V as loadQRScanner, W as throttle, a as jsx, j as jsxs, _ as __assign, q as Fragment, E as ErrorInput, X as qrPromise } from './fthry_index.CDuqBBJn.js';
1
+ import { l as __awaiter, m as __generator, L as __spreadArray, c as __read, U as __values, p as featheryWindow, V as loadQRScanner, W as throttle, a as jsx, j as jsxs, _ as __assign, q as Fragment, E as ErrorInput, X as qrPromise } from './fthry_index.Ijv_o9zh.js';
2
2
  import React__default, { useEffect, useCallback } from 'react';
3
- import { S as SliderStyles, a as Slider } from './fthry_styles.DNxDElEh.js';
3
+ import { S as SliderStyles, a as Slider } from './fthry_styles.C6abImDN.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react-dom/client';
6
6
  import 'jszip';
@@ -1,16 +1,16 @@
1
- import { j as jsxs, _ as __assign, a as jsx, D as DROPDOWN_Z_INDEX, c as __read, u as useBorder, y as getFieldValue, z as stringifyWithNull, h as hoverStylesGuard, b as iosScrollOnFocus, F as FORM_Z_INDEX, r as resetStyles, A as emailPatternStr } from './fthry_index.CDuqBBJn.js';
1
+ import { j as jsxs, _ as __assign, a as jsx, D as DROPDOWN_Z_INDEX, c as __read, u as useBorder, y as getFieldValue, z as stringifyWithNull, h as hoverStylesGuard, b as iosScrollOnFocus, F as FORM_Z_INDEX, r as resetStyles, A as emailPatternStr } from './fthry_index.Ijv_o9zh.js';
2
2
  import { memo, useRef, useState } from 'react';
3
- import { P as Placeholder } from './fthry_Placeholder.C7B4adz4.js';
4
- import { I as InlineTooltip } from './fthry_InlineTooltip.Chat1FIN.js';
5
- import { O as Overlay } from './fthry_Overlay.pCv-XBOA.js';
6
- import { u as useElementSize } from './fthry_useElementSize.DvHJBcIE.js';
7
- import { S as ShowEyeIcon, a as ShowEyeIcon$1 } from './fthry_ShowEyeIcon.DrP5GypN.js';
8
- import { I as IMaskInput } from './fthry_input.BgzKGmQG.js';
3
+ import { P as Placeholder } from './fthry_Placeholder.D1RmrK_x.js';
4
+ import { I as InlineTooltip } from './fthry_InlineTooltip.EK3gPvwe.js';
5
+ import { O as Overlay } from './fthry_Overlay.DLfHSitG.js';
6
+ import { u as useElementSize } from './fthry_useElementSize.DMJ4ZQAl.js';
7
+ import { S as ShowEyeIcon, a as ShowEyeIcon$1 } from './fthry_ShowEyeIcon.DIauZsAj.js';
8
+ import { I as IMaskInput } from './fthry_input.D8VQ1Mr4.js';
9
9
  import 'react/jsx-runtime';
10
10
  import 'react-dom/client';
11
11
  import 'jszip';
12
12
  import 'react-dom';
13
- import './fthry_index.DA_5F_7_.js';
13
+ import './fthry_index.BWclxwtj.js';
14
14
 
15
15
  function TextAutocomplete(_a) {
16
16
  var _b = _a.allOptions, allOptions = _b === void 0 ? [] : _b, showOptions = _a.showOptions, _c = _a.onSelect, onSelect = _c === void 0 ? function () { } : _c, _d = _a.onHide, onHide = _d === void 0 ? function () { } : _d, _e = _a.onInputFocus, onInputFocus = _e === void 0 ? function () { } : _e, _f = _a.value, value = _f === void 0 ? '' : _f, containerRef = _a.containerRef, responsiveStyles = _a.responsiveStyles, listItemRef = _a.listItemRef, children = _a.children;
@@ -1,4 +1,4 @@
1
- import { au as __extends, _ as __assign, k as __rest, L as __spreadArray, l as __awaiter, m as __generator } from './fthry_index.CDuqBBJn.js';
1
+ import { au as __extends, _ as __assign, k as __rest, L as __spreadArray, l as __awaiter, m as __generator } from './fthry_index.Ijv_o9zh.js';
2
2
 
3
3
  function dset(obj, keys, val) {
4
4
  keys.split && (keys=keys.split('.'));
@@ -5352,7 +5352,7 @@ var Analytics = /** @class */ (function (_super) {
5352
5352
  return __generator(this, function (_b) {
5353
5353
  switch (_b.label) {
5354
5354
  case 0: return [4 /*yield*/, import(
5355
- /* webpackChunkName: "auto-track" */ './fthry_auto-track.Bb7a2GMR.js')];
5355
+ /* webpackChunkName: "auto-track" */ './fthry_auto-track._kagu7wX.js')];
5356
5356
  case 1:
5357
5357
  autotrack = _b.sent();
5358
5358
  return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];
@@ -5371,7 +5371,7 @@ var Analytics = /** @class */ (function (_super) {
5371
5371
  return __generator(this, function (_b) {
5372
5372
  switch (_b.label) {
5373
5373
  case 0: return [4 /*yield*/, import(
5374
- /* webpackChunkName: "auto-track" */ './fthry_auto-track.Bb7a2GMR.js')];
5374
+ /* webpackChunkName: "auto-track" */ './fthry_auto-track._kagu7wX.js')];
5375
5375
  case 1:
5376
5376
  autotrack = _b.sent();
5377
5377
  return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];
@@ -5390,7 +5390,7 @@ var Analytics = /** @class */ (function (_super) {
5390
5390
  return __generator(this, function (_b) {
5391
5391
  switch (_b.label) {
5392
5392
  case 0: return [4 /*yield*/, import(
5393
- /* webpackChunkName: "auto-track" */ './fthry_auto-track.Bb7a2GMR.js')];
5393
+ /* webpackChunkName: "auto-track" */ './fthry_auto-track._kagu7wX.js')];
5394
5394
  case 1:
5395
5395
  autotrack = _b.sent();
5396
5396
  return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];
@@ -5409,7 +5409,7 @@ var Analytics = /** @class */ (function (_super) {
5409
5409
  return __generator(this, function (_b) {
5410
5410
  switch (_b.label) {
5411
5411
  case 0: return [4 /*yield*/, import(
5412
- /* webpackChunkName: "auto-track" */ './fthry_auto-track.Bb7a2GMR.js')];
5412
+ /* webpackChunkName: "auto-track" */ './fthry_auto-track._kagu7wX.js')];
5413
5413
  case 1:
5414
5414
  autotrack = _b.sent();
5415
5415
  return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];
@@ -5564,7 +5564,7 @@ var Analytics = /** @class */ (function (_super) {
5564
5564
  return [2 /*return*/, []];
5565
5565
  }
5566
5566
  return [4 /*yield*/, import(
5567
- /* webpackChunkName: "queryString" */ './fthry_index.DG6NlwpO.js')];
5567
+ /* webpackChunkName: "queryString" */ './fthry_index.uT2AzoIt.js')];
5568
5568
  case 1:
5569
5569
  queryString = (_a.sent()).queryString;
5570
5570
  return [2 /*return*/, queryString(this, query)];
@@ -6607,7 +6607,7 @@ function registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes,
6607
6607
  tsubMiddleware = _d;
6608
6608
  if (!(hasLegacyDestinations(cdnSettings) || legacyIntegrationSources.length > 0)) return [3 /*break*/, 5];
6609
6609
  return [4 /*yield*/, import(
6610
- /* webpackChunkName: "ajs-destination" */ './fthry_index.UTYK1bhI.js').then(function (mod) {
6610
+ /* webpackChunkName: "ajs-destination" */ './fthry_index.uMrzFN7W.js').then(function (mod) {
6611
6611
  return mod.ajsDestinations(writeKey, cdnSettings, analytics.integrations, options, tsubMiddleware, legacyIntegrationSources);
6612
6612
  })];
6613
6613
  case 4:
@@ -6620,7 +6620,7 @@ function registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes,
6620
6620
  legacyDestinations = _e;
6621
6621
  if (!cdnSettings.legacyVideoPluginsEnabled) return [3 /*break*/, 8];
6622
6622
  return [4 /*yield*/, import(
6623
- /* webpackChunkName: "legacyVideos" */ './fthry_index.x66JmbiK.js').then(function (mod) {
6623
+ /* webpackChunkName: "legacyVideos" */ './fthry_index.CQRZTwm-.js').then(function (mod) {
6624
6624
  return mod.loadLegacyVideoPlugins(analytics);
6625
6625
  })];
6626
6626
  case 7:
@@ -6629,7 +6629,7 @@ function registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes,
6629
6629
  case 8:
6630
6630
  if (!((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track)) return [3 /*break*/, 10];
6631
6631
  return [4 /*yield*/, import(
6632
- /* webpackChunkName: "schemaFilter" */ './fthry_index.DJ7vQ3zt.js').then(function (mod) {
6632
+ /* webpackChunkName: "schemaFilter" */ './fthry_index.DIx5upln.js').then(function (mod) {
6633
6633
  var _a;
6634
6634
  return mod.schemaFilter((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track, cdnSettings);
6635
6635
  })];
@@ -6674,7 +6674,7 @@ function registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes,
6674
6674
  return enabled;
6675
6675
  })) return [3 /*break*/, 18];
6676
6676
  return [4 /*yield*/, import(
6677
- /* webpackChunkName: "remoteMiddleware" */ './fthry_index.BZvFWQLR.js').then(function (_a) {
6677
+ /* webpackChunkName: "remoteMiddleware" */ './fthry_index.CJWAyFVQ.js').then(function (_a) {
6678
6678
  var remoteMiddlewares = _a.remoteMiddlewares;
6679
6679
  return __awaiter(_this, void 0, void 0, function () {
6680
6680
  var middleware, promises;
@@ -1,14 +1,14 @@
1
- import { j as jsxs, _ as __assign, a as jsx, b as iosScrollOnFocus, r as resetStyles } from './fthry_index.CDuqBBJn.js';
1
+ import { j as jsxs, _ as __assign, a as jsx, b as iosScrollOnFocus, r as resetStyles } from './fthry_index.Ijv_o9zh.js';
2
2
  import { useRef, useMemo, useEffect } from 'react';
3
- import { F as FormControl } from './fthry_FormControl.DJieQaw-.js';
4
- import { applyCheckableInputStyles, composeCheckableInputStyle, applyHeightWidthMarginByFontSize } from './fthry_index.DdgFKsos.js';
5
- import { I as InlineTooltip } from './fthry_InlineTooltip.Chat1FIN.js';
6
- import { u as useSalesforceSync } from './fthry_useSalesforceSync.DHWXQkeF.js';
3
+ import { F as FormControl } from './fthry_FormControl.CsOU9cE0.js';
4
+ import { applyCheckableInputStyles, composeCheckableInputStyle, applyHeightWidthMarginByFontSize } from './fthry_index.BMjfEu0y.js';
5
+ import { I as InlineTooltip } from './fthry_InlineTooltip.EK3gPvwe.js';
6
+ import { u as useSalesforceSync } from './fthry_useSalesforceSync.C6WG-TQK.js';
7
7
  import 'react/jsx-runtime';
8
8
  import 'react-dom/client';
9
9
  import 'jszip';
10
10
  import 'react-dom';
11
- import './fthry_Overlay.pCv-XBOA.js';
11
+ import './fthry_Overlay.DLfHSitG.js';
12
12
 
13
13
  var applyCheckboxGroupStyles = function (element, responsiveStyles) {
14
14
  responsiveStyles.addTargets('checkboxGroup');