abdul-react 0.0.29 → 0.0.30

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 (71) hide show
  1. package/lib/ComponentProps/TreeNodeProps.d.ts +1 -0
  2. package/lib/_virtual/index10.js +2 -2
  3. package/lib/_virtual/index9.js +2 -2
  4. package/lib/assets/icons/access_key.svg.js +6 -0
  5. package/lib/assets/icons/access_key.svg.js.map +1 -0
  6. package/lib/assets/icons/jSON_code_icon.svg.js +6 -0
  7. package/lib/assets/icons/jSON_code_icon.svg.js.map +1 -0
  8. package/lib/assets/icons/list_icon.svg.js +6 -0
  9. package/lib/assets/icons/list_icon.svg.js.map +1 -0
  10. package/lib/components/AppHeader/AppHeader.js +9 -6
  11. package/lib/components/AppHeader/AppHeader.js.map +1 -1
  12. package/lib/components/ChatModalAi/ChatModalAi.js +7 -2
  13. package/lib/components/ChatModalAi/ChatModalAi.js.map +1 -1
  14. package/lib/components/ChatModalAi/types.d.ts +1 -0
  15. package/lib/components/DatePicker/DatePicker.js +20 -3
  16. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  17. package/lib/components/DatePicker/types.d.ts +5 -1
  18. package/lib/components/Excel/ExcelFile/ExcelFile.d.ts +5 -0
  19. package/lib/components/Excel/ExcelFile/ExcelFile.js +9 -2
  20. package/lib/components/Excel/ExcelFile/ExcelFile.js.map +1 -1
  21. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.d.ts +5 -0
  22. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js +14 -4
  23. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js.map +1 -1
  24. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js +10 -2
  25. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js.map +1 -1
  26. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Copied.d.ts +9 -1
  27. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Copied.js +26 -7
  28. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Copied.js.map +1 -1
  29. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js +14 -6
  30. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js.map +1 -1
  31. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Selected.d.ts +4 -0
  32. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Selected.js +15 -20
  33. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Selected.js.map +1 -1
  34. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.d.ts +7 -1
  35. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.js +69 -31
  36. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.js.map +1 -1
  37. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js +23 -19
  38. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js.map +1 -1
  39. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.js +3 -3
  40. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.js.map +1 -1
  41. package/lib/components/Excel/ExcelFile/ExcelFileComponents/types.d.ts +12 -0
  42. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.d.ts +1 -0
  43. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js +33 -44
  44. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js.map +1 -1
  45. package/lib/components/Icon/iconList.js +6 -0
  46. package/lib/components/Icon/iconList.js.map +1 -1
  47. package/lib/components/MobileSkin/MobileSkin.js +22 -2
  48. package/lib/components/MobileSkin/MobileSkin.js.map +1 -1
  49. package/lib/components/MobileSkin/MobileSkinInterface.d.ts +1 -1
  50. package/lib/components/Prompt/Prompt.js +4 -2
  51. package/lib/components/Prompt/Prompt.js.map +1 -1
  52. package/lib/components/Prompt/types.d.ts +1 -0
  53. package/lib/components/PromptContainer/PromptContainer.js +4 -2
  54. package/lib/components/PromptContainer/PromptContainer.js.map +1 -1
  55. package/lib/components/PromptContainer/types.d.ts +1 -0
  56. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.js +1 -1
  57. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.js.map +1 -1
  58. package/lib/components/TableTreeFn/Components/TableHead.js +12 -1
  59. package/lib/components/TableTreeFn/Components/TableHead.js.map +1 -1
  60. package/lib/index.cjs +299 -153
  61. package/lib/index.cjs.map +1 -1
  62. package/lib/index.d.ts +22 -2
  63. package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
  64. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  65. package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
  66. package/lib/node_modules/js-beautify/js/src/javascript/beautifier.js +1 -1
  67. package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
  68. package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
  69. package/lib/styles.css +1 -1
  70. package/lib/styles.css.map +1 -1
  71. package/package.json +1 -1
package/lib/index.cjs CHANGED
@@ -1118,6 +1118,12 @@ const SvgPromptSlider = (props) => /* @__PURE__ */ React__namespace.createElemen
1118
1118
 
1119
1119
  const SvgSendPrompt = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.2121 17.0818L1.79324 14.7317C0.415403 13.9989 0.398933 12.0304 1.76432 11.2747L20.3297 0.99879C21.7646 0.204609 23.4845 1.41198 23.2242 3.03154L20.2405 21.5944C20.0264 22.9262 18.5657 23.652 17.3749 23.0186L13.2778 20.8396L12.026 22.0913C10.9194 23.1977 9.02629 22.6316 8.70919 21.0991L8.10664 18.1872L14.625 10.125L6.2121 17.0818Z", fill: "url(#paint0_linear_536_25608)" }), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("linearGradient", { id: "paint0_linear_536_25608", x1: 29.4923, y1: 27.7972, x2: 9.5325, y2: 4.44898, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ React__namespace.createElement("stop", { offset: 265844e-8, stopColor: "#FF37DF" }), /* @__PURE__ */ React__namespace.createElement("stop", { offset: 1, stopColor: "#6E00FF" }))));
1120
1120
 
1121
+ const SvgAccessKey = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_3902_42568)" }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip1_3902_42568)" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M18.459 5.54089C17.5953 4.67748 16.4581 4.14136 15.2425 4.02443C14.0268 3.9075 12.8084 4.21704 11.7959 4.89999C10.7835 5.58295 10.0401 6.59679 9.6932 7.76775C9.34631 8.93871 9.4175 10.1939 9.89458 11.3181C7.90552 13.0585 6.03051 14.925 4.28114 16.9062C4.07802 17.1353 3.98021 17.4531 4.00333 17.7771C4.03854 18.2732 4.06489 18.7599 4.08239 19.2371C4.0869 19.4162 4.16006 19.5867 4.28674 19.7134C4.41342 19.8401 4.58393 19.9133 4.76302 19.9178C5.23927 19.934 5.72677 19.9615 6.22271 19.9965C6.54677 20.0196 6.86458 19.9215 7.09489 19.7181C7.20448 19.6212 7.31375 19.524 7.42271 19.4265C7.50553 19.3526 7.559 19.2513 7.57333 19.1412C7.60979 18.8725 7.64385 18.601 7.67552 18.3268C7.72396 17.9081 8.10364 17.6346 8.54521 17.7153C9.35552 17.8646 9.99302 17.2434 9.84677 16.434V16.4278C9.76802 15.9865 10.0446 15.609 10.469 15.5671C10.7427 15.5399 11.0149 15.5111 11.2855 15.4809C11.3974 15.4692 11.5013 15.4172 11.5777 15.3346C11.9515 14.9303 12.3198 14.5207 12.6827 14.1059C13.807 14.5828 15.0621 14.6539 16.2331 14.3069C17.404 13.9599 18.4177 13.2164 19.1006 12.2039C19.7834 11.1913 20.0928 9.97284 19.9758 8.75721C19.8587 7.54157 19.3225 6.4045 18.459 5.54089ZM17.0936 8.96433C16.8901 9.16775 16.6309 9.30627 16.3486 9.36236C16.0664 9.41845 15.7739 9.3896 15.5081 9.27945C15.2422 9.16931 15.015 8.98282 14.8552 8.74356C14.6953 8.5043 14.61 8.22301 14.61 7.93527C14.61 7.64752 14.6953 7.36624 14.8552 7.12698C15.015 6.88772 15.2422 6.70123 15.5081 6.59108C15.7739 6.48094 16.0664 6.45209 16.3486 6.50818C16.6309 6.56427 16.8901 6.70278 17.0936 6.90621C17.2288 7.04132 17.336 7.20175 17.4092 7.37832C17.4824 7.55489 17.52 7.74414 17.52 7.93527C17.52 8.1264 17.4824 8.31565 17.4092 8.49222C17.336 8.66879 17.2288 8.82921 17.0936 8.96433Z", fill: "#71347B" }))), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_3902_42568" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M0 4C0 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V4Z", fill: "white" })), /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip1_3902_42568" }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, fill: "white", transform: "translate(4 4)" }))));
1122
+
1123
+ const SvgListIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M12.8605 13.3488H1.13953C0.837424 13.3485 0.547792 13.2283 0.334167 13.0147C0.120543 12.801 0.000367042 12.5114 0 12.2093V1.79069C0.000367042 1.48858 0.120543 1.19895 0.334167 0.985321C0.547792 0.771696 0.837424 0.651521 1.13953 0.651154H12.8605C13.1626 0.651521 13.4522 0.771696 13.6658 0.985321C13.8795 1.19895 13.9996 1.48858 14 1.79069V12.2093C13.9996 12.5114 13.8795 12.801 13.6658 13.0147C13.4522 13.2283 13.1626 13.3485 12.8605 13.3488ZM1.13953 1.6279C1.09639 1.62798 1.05503 1.64516 1.02452 1.67567C0.994005 1.70618 0.976827 1.74754 0.976744 1.79069V12.2093C0.976827 12.2524 0.994005 12.2938 1.02452 12.3243C1.05503 12.3548 1.09639 12.372 1.13953 12.3721H12.8605C12.9036 12.372 12.945 12.3548 12.9755 12.3243C13.006 12.2938 13.0232 12.2524 13.0233 12.2093V1.79069C13.0232 1.74754 13.006 1.70618 12.9755 1.67567C12.945 1.64516 12.9036 1.62798 12.8605 1.6279H1.13953Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.9065 10.0931H5.04599C4.91646 10.0931 4.79225 10.0416 4.70066 9.95005C4.60907 9.85846 4.55762 9.73424 4.55762 9.60472C4.55762 9.4752 4.60907 9.35098 4.70066 9.25939C4.79225 9.1678 4.91646 9.11635 5.04599 9.11635H10.9065C11.036 9.11635 11.1602 9.1678 11.2518 9.25939C11.3434 9.35098 11.3948 9.4752 11.3948 9.60472C11.3948 9.73424 11.3434 9.85846 11.2518 9.95005C11.1602 10.0416 11.036 10.0931 10.9065 10.0931Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M3.09257 10.2558C3.4522 10.2558 3.74373 9.96427 3.74373 9.60464C3.74373 9.24501 3.4522 8.95348 3.09257 8.95348C2.73294 8.95348 2.44141 9.24501 2.44141 9.60464C2.44141 9.96427 2.73294 10.2558 3.09257 10.2558Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.9065 7.48836H5.04599C4.91646 7.48836 4.79225 7.4369 4.70066 7.34532C4.60907 7.25373 4.55762 7.12951 4.55762 6.99998C4.55762 6.87046 4.60907 6.74624 4.70066 6.65465C4.79225 6.56307 4.91646 6.51161 5.04599 6.51161H10.9065C11.036 6.51161 11.1602 6.56307 11.2518 6.65465C11.3434 6.74624 11.3948 6.87046 11.3948 6.99998C11.3948 7.12951 11.3434 7.25373 11.2518 7.34532C11.1602 7.4369 11.036 7.48836 10.9065 7.48836Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M3.09257 7.65108C3.4522 7.65108 3.74373 7.35954 3.74373 6.99992C3.74373 6.64029 3.4522 6.34875 3.09257 6.34875C2.73294 6.34875 2.44141 6.64029 2.44141 6.99992C2.44141 7.35954 2.73294 7.65108 3.09257 7.65108Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.9065 4.88364H5.04599C4.91646 4.88364 4.79225 4.83218 4.70066 4.74059C4.60907 4.64901 4.55762 4.52479 4.55762 4.39526C4.55762 4.26574 4.60907 4.14152 4.70066 4.04993C4.79225 3.95834 4.91646 3.90689 5.04599 3.90689H10.9065C11.036 3.90689 11.1602 3.95834 11.2518 4.04993C11.3434 4.14152 11.3948 4.26574 11.3948 4.39526C11.3948 4.52479 11.3434 4.64901 11.2518 4.74059C11.1602 4.83218 11.036 4.88364 10.9065 4.88364Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M3.09257 5.04659C3.4522 5.04659 3.74373 4.75505 3.74373 4.39543C3.74373 4.0358 3.4522 3.74426 3.09257 3.74426C2.73294 3.74426 2.44141 4.0358 2.44141 4.39543C2.44141 4.75505 2.73294 5.04659 3.09257 5.04659Z", fill: "currentColor" }));
1124
+
1125
+ const SvgJSonCodeIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.4186 4.88372V9.40692C10.4522 9.4299 10.48 9.45998 10.5124 9.48442C10.6811 9.25574 10.9217 9.08075 11.2103 9.00086C11.2718 8.98377 11.3335 8.98473 11.3953 8.97686V4.28374C11.3953 3.80523 11.209 3.35565 10.8707 3.01735L8.378 0.524616C8.03971 0.186317 7.59012 0 7.11192 0H1.7907C0.803144 0 0 0.803145 0 1.7907V11.0168C0.207584 10.9284 0.435791 10.8862 0.670242 10.9194C0.554511 10.7251 0.488372 10.4981 0.488372 10.2558C0.488372 9.84634 0.681247 9.48555 0.976744 9.24676V1.79069C0.976744 1.34175 1.34175 0.976738 1.7907 0.976738H6.51163V3.09302C6.51163 4.08057 7.31477 4.88372 8.30233 4.88372H10.4186ZM7.48837 3.09302V1.08249C7.55911 1.12005 7.63038 1.15805 7.68741 1.2152L10.1801 3.70793C10.2381 3.76592 10.276 3.83662 10.3135 3.90697H8.30232C7.85338 3.90697 7.48837 3.54196 7.48837 3.09302ZM4.88372 11.0698C4.88372 11.2462 4.99564 11.3953 5.12791 11.3953H5.61628C6.2897 11.3953 6.83721 11.9794 6.83721 12.6977C6.83721 13.4159 6.2897 14 5.61628 14H4.39535C4.12573 14 3.90698 13.7812 3.90698 13.5116C3.90698 13.242 4.12573 13.0233 4.39535 13.0233H5.61628C5.74854 13.0233 5.86047 12.8741 5.86047 12.6977C5.86047 12.5212 5.74854 12.3721 5.61628 12.3721H5.12791C4.45449 12.3721 3.90698 11.788 3.90698 11.0698C3.90698 10.3515 4.45449 9.76744 5.12791 9.76744H6.34884C6.61846 9.76744 6.83721 9.98619 6.83721 10.2558C6.83721 10.5254 6.61846 10.7442 6.34884 10.7442H5.12791C4.99564 10.7442 4.88372 10.8933 4.88372 11.0698ZM8.95349 9.76744C7.96594 9.76744 7.16279 10.5706 7.16279 11.5581V12.2093C7.16279 13.1969 7.96594 14 8.95349 14C9.94104 14 10.7442 13.1969 10.7442 12.2093V11.5581C10.7442 10.5706 9.94104 9.76744 8.95349 9.76744ZM9.76744 12.2093C9.76744 12.6582 9.40243 13.0233 8.95349 13.0233C8.50454 13.0233 8.13953 12.6582 8.13953 12.2093V11.5581C8.13953 11.1092 8.50454 10.7442 8.95349 10.7442C9.40243 10.7442 9.76744 11.1092 9.76744 11.5581V12.2093ZM14 10.2558V13.5116C14 13.731 13.8537 13.9237 13.642 13.9822C13.5987 13.9943 13.5549 14 13.5116 14C13.3431 14 13.1829 13.9126 13.0926 13.7628L12.0465 12.0188V13.5116C12.0465 13.7812 11.8278 14 11.5581 14C11.2885 14 11.0698 13.7812 11.0698 13.5116V10.2558C11.0698 10.0364 11.216 9.84375 11.4278 9.78524C11.6402 9.72642 11.864 9.8164 11.9772 10.0046L13.0233 11.7486V10.2558C13.0233 9.98619 13.242 9.76743 13.5116 9.76743C13.7812 9.76743 14 9.98619 14 10.2558ZM3.5814 10.2558V12.2093C3.5814 13.1969 2.77825 14 1.7907 14C0.803144 14 0 13.1969 0 12.2093C0 11.9397 0.218752 11.7209 0.488372 11.7209C0.757993 11.7209 0.976744 11.9397 0.976744 12.2093C0.976744 12.6582 1.34175 13.0233 1.7907 13.0233C2.23964 13.0233 2.60465 12.6582 2.60465 12.2093V10.7442H1.7907C1.52108 10.7442 1.30233 10.5254 1.30233 10.2558C1.30233 9.98619 1.52108 9.76744 1.7907 9.76744H3.09302C3.36264 9.76744 3.5814 9.98619 3.5814 10.2558Z", fill: "currentColor" }));
1126
+
1121
1127
  let Components = {};
1122
1128
  Components['success'] = SvgSuccess;
1123
1129
  Components['setting_icon'] = SvgSettingIcon;
@@ -1598,6 +1604,9 @@ Components['prompt_slider'] = SvgPromptSlider; // Newly Added icon
1598
1604
  Components['send_prompt'] = SvgSendPrompt; // Newly Added icon
1599
1605
  Components['copy_icon_filled'] = SvgCopyIconFilled; // Newly Added icon
1600
1606
  Components['generate_command_logo'] = SvgGenerateCommandLogo; // Newly Added icon
1607
+ Components[`access_key`] = SvgAccessKey; // Newly Added icon
1608
+ Components['list_icon'] = SvgListIcon;
1609
+ Components['json_icon'] = SvgJSonCodeIcon;
1601
1610
 
1602
1611
  const Icon = /*#__PURE__*/React.forwardRef(({
1603
1612
  name,
@@ -29125,7 +29134,8 @@ const CustomDatePicker = /*#__PURE__*/React.forwardRef(({
29125
29134
  zIndex = 10,
29126
29135
  isFilterDatePicker = false,
29127
29136
  isSelectableDate = false,
29128
- onBlur
29137
+ onBlur,
29138
+ withOutDateFormat = false
29129
29139
  }, ref) => {
29130
29140
  const [timeValue, setTimeValue] = React.useState('');
29131
29141
  const [selectedDate, setSelectedDate] = React.useState();
@@ -29213,7 +29223,14 @@ const CustomDatePicker = /*#__PURE__*/React.forwardRef(({
29213
29223
  if (dateOnly) {
29214
29224
  if (!isSelectableDate || date) {
29215
29225
  setSelectedDate(date);
29216
- onChange(date);
29226
+ if (withOutDateFormat && date) {
29227
+ const formatted = format$2(date, dateFormat, {
29228
+ timeZone: timezone
29229
+ });
29230
+ onChange(date, formatted);
29231
+ } else {
29232
+ onChange(date);
29233
+ }
29217
29234
  }
29218
29235
  resetAndCloseDatePicker();
29219
29236
  } else {
@@ -29231,7 +29248,16 @@ const CustomDatePicker = /*#__PURE__*/React.forwardRef(({
29231
29248
  }
29232
29249
  };
29233
29250
  const handleSave = () => {
29234
- onChange(selectedDateRef.current);
29251
+ if (selectedDateRef.current) {
29252
+ if (withOutDateFormat) {
29253
+ const formatted = format$2(selectedDateRef.current, dateFormat, {
29254
+ timeZone: timezone
29255
+ });
29256
+ onChange(selectedDateRef.current, formatted);
29257
+ } else {
29258
+ onChange(selectedDateRef.current);
29259
+ }
29260
+ }
29235
29261
  resetAndCloseDatePicker();
29236
29262
  };
29237
29263
  const handleDateInputClick = () => {
@@ -30716,12 +30742,15 @@ const AppHeader = ({
30716
30742
  borderStartStartRadius: borderRadius,
30717
30743
  borderStartEndRadius: borderRadius
30718
30744
  },
30719
- children: [jsxRuntime.jsx("div", {
30720
- className: "ff-app-header-logo-icon",
30721
- children: logo
30722
- }), leftContent && jsxRuntime.jsx("div", {
30723
- className: "ff-app-header-left-content",
30724
- children: leftContent
30745
+ children: [jsxRuntime.jsxs("div", {
30746
+ className: "ff-app-header-left-container",
30747
+ children: [jsxRuntime.jsx("div", {
30748
+ className: "ff-app-header-logo-icon",
30749
+ children: logo
30750
+ }), leftContent && jsxRuntime.jsx("div", {
30751
+ className: "ff-app-header-left-content",
30752
+ children: leftContent
30753
+ })]
30725
30754
  }), jsxRuntime.jsxs("div", {
30726
30755
  className: "ff-app-header-nav-bar",
30727
30756
  style: {
@@ -34926,7 +34955,7 @@ const Branches = ({
34926
34955
  if (device?.name) {
34927
34956
  acc.push({
34928
34957
  label: device?.name,
34929
- type: device?.platform,
34958
+ type: scriptType.toLowerCase() === 'manual' ? 'android' : device?.platform,
34930
34959
  version: scriptType?.toLowerCase() === 'manual' ? device?.version : ''
34931
34960
  });
34932
34961
  }
@@ -37107,49 +37136,6 @@ function getCellDimensions(point, rowDimensions, columnDimensions) {
37107
37136
  width
37108
37137
  };
37109
37138
  }
37110
- /** Get the dimensions of customized cell at point from state */
37111
- function getScrollCellDimensions(point, rowDimensions, columnDimensions) {
37112
- const DEFAULT_ROW_HEIGHT = 32;
37113
- const DEFAULT_COLUMN_WIDTH = 100; // Use your minimumColumnWidth or a default value
37114
- const HEADER_HEIGHT = 32; // Adjust as needed
37115
- const ROW_INDICATOR_WIDTH = 60;
37116
- let top = HEADER_HEIGHT + 4000; // Preserve your fixed top for scrolling, but add header offset
37117
- for (let r = 0; r < point.row; r++) {
37118
- top += (rowDimensions?.[r] ? rowDimensions?.[r]?.height : DEFAULT_ROW_HEIGHT) || DEFAULT_ROW_HEIGHT;
37119
- }
37120
- const height = (rowDimensions?.[point.row] ? rowDimensions?.[point.row]?.height : DEFAULT_ROW_HEIGHT) || DEFAULT_ROW_HEIGHT;
37121
- let left = ROW_INDICATOR_WIDTH;
37122
- for (let c = 0; c < point.column; c++) {
37123
- left += (columnDimensions?.[c] ? columnDimensions?.[c]?.width : DEFAULT_COLUMN_WIDTH) || DEFAULT_COLUMN_WIDTH;
37124
- }
37125
- const width = (columnDimensions?.[point.column] ? columnDimensions?.[point.column]?.width : DEFAULT_COLUMN_WIDTH) || DEFAULT_COLUMN_WIDTH;
37126
- return {
37127
- top,
37128
- height,
37129
- left,
37130
- width
37131
- };
37132
- }
37133
- /** Get the dimensions of a range of cells */
37134
- function getRangeDimensions(rowDimensions, columnDimensions, range) {
37135
- const startDimensions = getCellDimensions(range.start, rowDimensions, columnDimensions);
37136
- let endDimensions = getCellDimensions(range.end, rowDimensions, columnDimensions);
37137
- if (endDimensions === undefined) {
37138
- endDimensions = getScrollCellDimensions(range.end, rowDimensions, columnDimensions);
37139
- }
37140
- return startDimensions && endDimensions && {
37141
- width: endDimensions.left + endDimensions.width - startDimensions.left,
37142
- height: endDimensions.top + endDimensions.height - startDimensions.top,
37143
- top: startDimensions.top + 1,
37144
- // Note: +1 Because of Active cell width is 2px
37145
- left: startDimensions.left + 1 // Note: +1 Because of Active cell width is 2px
37146
- };
37147
- }
37148
- /** Get the dimensions of selected */
37149
- function getSelectedDimensions(rowDimensions, columnDimensions, data, selected) {
37150
- const range = selected.toRange(data);
37151
- return range ? getRangeDimensions(rowDimensions, columnDimensions, range) : undefined;
37152
- }
37153
37139
  /** Get given data as CSV */
37154
37140
  function getCSV(data) {
37155
37141
  const valueMatrix = map(cell => cell?.value || '', data);
@@ -37295,6 +37281,38 @@ function getMatrixDimensions(matrixData) {
37295
37281
  columnCount
37296
37282
  };
37297
37283
  }
37284
+ function getVisibleRangeDimensions(fullRange, visibleRange, rowDimensions, columnDimensions) {
37285
+ const DEFAULT_ROW_HEIGHT = 32;
37286
+ const DEFAULT_COLUMN_WIDTH = 100;
37287
+ if (!fullRange) return undefined;
37288
+ const clippedStartRow = Math.max(fullRange?.start?.row, visibleRange?.start);
37289
+ const clippedEndRow = Math.min(fullRange?.end?.row, visibleRange?.end - 1);
37290
+ if (clippedStartRow > clippedEndRow) {
37291
+ return undefined;
37292
+ }
37293
+ let top = 0;
37294
+ for (let r = visibleRange?.start; r < clippedStartRow; r++) {
37295
+ top += rowDimensions?.[r]?.height || DEFAULT_ROW_HEIGHT;
37296
+ }
37297
+ let height = 0;
37298
+ for (let r = clippedStartRow; r <= clippedEndRow; r++) {
37299
+ height += rowDimensions?.[r]?.height || DEFAULT_ROW_HEIGHT;
37300
+ }
37301
+ let left = 0;
37302
+ for (let c = 0; c < fullRange?.start?.column; c++) {
37303
+ left += columnDimensions?.[c]?.width || DEFAULT_COLUMN_WIDTH;
37304
+ }
37305
+ let width = 0;
37306
+ for (let c = fullRange?.start?.column; c <= fullRange?.end?.column; c++) {
37307
+ width += columnDimensions?.[c]?.width || DEFAULT_COLUMN_WIDTH;
37308
+ }
37309
+ return {
37310
+ top,
37311
+ left,
37312
+ width,
37313
+ height
37314
+ };
37315
+ }
37298
37316
 
37299
37317
  const FORMULA_VALUE_PREFIX = '=';
37300
37318
  /** Returns whether given value is a formula */
@@ -38184,7 +38202,7 @@ function dragEndAutoFill(currentData, selectedRange, cellValue, activeCell, cont
38184
38202
  }
38185
38203
  let updatedData = currentData;
38186
38204
  const baseValue = String(cellValue.value ?? '');
38187
- const matches = [...baseValue.matchAll(/(\d+)/g)];
38205
+ const matches = [...baseValue.matchAll(/(-?\d+)/g)];
38188
38206
  for (let row = startPoint.row; row <= endPoint.row; row++) {
38189
38207
  for (let col = startPoint.column; col <= endPoint.column; col++) {
38190
38208
  const currentCell = get$1({
@@ -38203,10 +38221,10 @@ function dragEndAutoFill(currentData, selectedRange, cellValue, activeCell, cont
38203
38221
  step = col - (activeCell?.column ?? startPoint.column);
38204
38222
  }
38205
38223
  let index = 0;
38206
- newValue = newValue.replace(/(\d+)/g, () => {
38224
+ newValue = newValue.replace(/(-?\d+)/g, () => {
38207
38225
  const match = matches[index++];
38208
38226
  if (!match) return '';
38209
- const originalNum = parseInt(match[0], 10);
38227
+ const originalNum = parseInt(match?.[1] ?? '', 10);
38210
38228
  return (originalNum + step).toString();
38211
38229
  });
38212
38230
  }
@@ -38926,13 +38944,15 @@ function reducer(state, action) {
38926
38944
  const {
38927
38945
  active
38928
38946
  } = state;
38947
+ const newSelected = extend && active ? new EntireRowsSelection(active.row, row) : new EntireRowsSelection(row, row);
38948
+ const newActive = extend && active ? active : {
38949
+ ...ORIGIN,
38950
+ row
38951
+ };
38929
38952
  return {
38930
38953
  ...state,
38931
- selected: extend && active ? new EntireRowsSelection(active.row, row) : new EntireRowsSelection(row, row),
38932
- active: extend && active ? active : {
38933
- ...ORIGIN,
38934
- row
38935
- },
38954
+ selected: newSelected,
38955
+ active: newActive,
38936
38956
  mode: 'view',
38937
38957
  selectedColumn: null,
38938
38958
  selectedRow: row
@@ -38947,13 +38967,15 @@ function reducer(state, action) {
38947
38967
  const {
38948
38968
  active
38949
38969
  } = state;
38970
+ const newSelected = extend && active ? new EntireColumnsSelection(active.column, column) : new EntireColumnsSelection(column, column);
38971
+ const newActive = extend && active ? active : {
38972
+ ...ORIGIN,
38973
+ column
38974
+ };
38950
38975
  return {
38951
38976
  ...state,
38952
- selected: extend && active ? new EntireColumnsSelection(active.column, column) : new EntireColumnsSelection(column, column),
38953
- active: extend && active ? active : {
38954
- ...ORIGIN,
38955
- column
38956
- },
38977
+ selected: newSelected,
38978
+ active: newActive,
38957
38979
  mode: 'view',
38958
38980
  selectedColumn: column,
38959
38981
  selectedRow: null
@@ -39317,23 +39339,23 @@ function reducer(state, action) {
39317
39339
  row: 0,
39318
39340
  column: 0
39319
39341
  };
39320
- if (rowCount > columnCount) {
39342
+ if (Math.abs(rowCount) > Math.abs(columnCount)) {
39321
39343
  startPoint = {
39322
- row: activeCell?.row ?? 0,
39323
- column: start.column
39344
+ row: Math.min(start.row, end.row),
39345
+ column: activeCell?.column ?? 0
39324
39346
  };
39325
39347
  endPoint = {
39326
- row: activeCell?.row ?? 0,
39327
- column: end.column
39348
+ row: Math.max(start.row, end.row),
39349
+ column: activeCell?.column ?? 0
39328
39350
  };
39329
39351
  } else {
39330
39352
  startPoint = {
39331
- row: start.row,
39332
- column: activeCell?.column ?? 0
39353
+ row: activeCell?.row ?? 0,
39354
+ column: Math.min(start.column, end.column)
39333
39355
  };
39334
39356
  endPoint = {
39335
- row: end.row,
39336
- column: activeCell?.column ?? 0
39357
+ row: activeCell?.row ?? 0,
39358
+ column: Math.max(start.column, end.column)
39337
39359
  };
39338
39360
  }
39339
39361
  return {
@@ -40730,7 +40752,8 @@ const ColumnIndicator = ({
40730
40752
  disableDeleteOption,
40731
40753
  contextMenu,
40732
40754
  onAddColumn,
40733
- onDeleteColumn
40755
+ onDeleteColumn,
40756
+ scrollToColumn
40734
40757
  }) => {
40735
40758
  const dispatch = useDispatch();
40736
40759
  const minColumnWidth = minimumColumnWidth;
@@ -40747,6 +40770,9 @@ const ColumnIndicator = ({
40747
40770
  action: () => {
40748
40771
  addColumnLeft(minColumnWidth);
40749
40772
  onAddColumn?.(selectedColumn ?? column, true);
40773
+ if (column === columnCount - 1) {
40774
+ scrollToColumn(column); // Scroll to the new column
40775
+ }
40750
40776
  },
40751
40777
  disableTooltip: 'Column limit reached',
40752
40778
  visible: cell?.contextDisable?.['Add Column Left'] ?? false,
@@ -40758,6 +40784,9 @@ const ColumnIndicator = ({
40758
40784
  action: () => {
40759
40785
  addColumnRight(minColumnWidth);
40760
40786
  onAddColumn?.(selectedColumn ?? column, false);
40787
+ if (column === columnCount - 1) {
40788
+ scrollToColumn(column + 1); // Scroll to the new column
40789
+ }
40761
40790
  },
40762
40791
  disableTooltip: 'Column limit reached',
40763
40792
  visible: cell?.contextDisable?.['Add Column Right'] ?? false,
@@ -40860,7 +40889,8 @@ const enhance$2 = ColumnIndicatorComponent => {
40860
40889
  cell: cell,
40861
40890
  selected: selected,
40862
40891
  selectedColumn: selectedColumn,
40863
- onSelect: selectEntireColumn$1
40892
+ onSelect: selectEntireColumn$1,
40893
+ scrollToColumn: props.scrollToColumn
40864
40894
  });
40865
40895
  };
40866
40896
  };
@@ -40890,7 +40920,8 @@ const RowIndicator = ({
40890
40920
  maxRowLimit,
40891
40921
  disableDeleteOption,
40892
40922
  contextMenu,
40893
- setVisibleRange
40923
+ setVisibleRange,
40924
+ scrollToRow
40894
40925
  }) => {
40895
40926
  const dispatch = useDispatch();
40896
40927
  const rowHeight = useSelector(state => state.rowDimensions[row]?.height || 32);
@@ -40899,10 +40930,16 @@ const RowIndicator = ({
40899
40930
  rowCount
40900
40931
  } = getMatrixDimensions(matrixData);
40901
40932
  const updateVisibleRangeEnd = action => {
40902
- setVisibleRange(prev => ({
40903
- ...prev,
40904
- end: action === 'increment' ? prev.end + 1 : prev.end - 1
40905
- }));
40933
+ setVisibleRange(prev => {
40934
+ const value = {
40935
+ ...prev,
40936
+ end: action === 'increment' ? prev.end + 1 : prev.end - 1
40937
+ };
40938
+ if (row === rowCount - 1) {
40939
+ scrollToRow(row, value);
40940
+ }
40941
+ return value;
40942
+ });
40906
40943
  };
40907
40944
  const options = React__namespace.useMemo(() => {
40908
40945
  return [{
@@ -41026,7 +41063,8 @@ const enhance$1 = RowIndicatorComponent => {
41026
41063
  selected: selected,
41027
41064
  cell: cell,
41028
41065
  selectedRow: selectedRow,
41029
- onSelect: selectEntireRow$1
41066
+ onSelect: selectEntireRow$1,
41067
+ scrollToRow: props.scrollToRow
41030
41068
  });
41031
41069
  };
41032
41070
  };
@@ -41274,7 +41312,7 @@ const ActiveCell = props => {
41274
41312
  top: dimensions.top - offset
41275
41313
  };
41276
41314
  }, [dimensions, offset]);
41277
- const hidden = React__namespace.useMemo(() => !active || !dimensions, [active, dimensions]);
41315
+ const hidden = React__namespace.useMemo(() => !active || !dimensions || active.row < props.visibleRange.start || active.row >= props.visibleRange.end, [active, dimensions, props.visibleRange]);
41278
41316
  const initialCellRef = React__namespace.useRef(undefined);
41279
41317
  const prevActiveRef = React__namespace.useRef(null);
41280
41318
  const prevCellRef = React__namespace.useRef(undefined);
@@ -41555,9 +41593,17 @@ const ActiveCell = props => {
41555
41593
  }
41556
41594
  };
41557
41595
  React__namespace.useEffect(() => {
41596
+ if (cell && active) {
41597
+ props.getActiveCell({
41598
+ value: cell.value,
41599
+ active: active
41600
+ });
41601
+ }
41558
41602
  const root = rootRef.current;
41559
41603
  if (!hidden && root) {
41560
- root.focus();
41604
+ root.focus({
41605
+ preventScroll: true
41606
+ });
41561
41607
  if (cell?.inputType?.type === 'file' && cell?.value) {
41562
41608
  try {
41563
41609
  const parsedFiles = JSON.parse(cell.value).map(file => new File([new Blob()], file.name.split('*')[0] ?? 'default'));
@@ -41633,7 +41679,9 @@ const ActiveCell = props => {
41633
41679
  }, [props]);
41634
41680
  return jsxRuntime.jsxs("div", {
41635
41681
  ref: rootRef,
41636
- className: classNames('ff-spreadsheet-active-cell', `ff-spreadsheet-active-cell--${mode}`),
41682
+ className: classNames('ff-spreadsheet-active-cell', `ff-spreadsheet-active-cell--${mode}`, {
41683
+ 'ff-spreadsheet-active-cell--hidden': hidden
41684
+ }),
41637
41685
  style: adjustedDimensions,
41638
41686
  onContextMenu: contextClick,
41639
41687
  onClick: mode === 'view' && !readOnly ? edit : undefined,
@@ -41687,7 +41735,7 @@ const ActiveCell = props => {
41687
41735
  className: "ff-spreadsheet-cell-textarea",
41688
41736
  style: {
41689
41737
  ...cell?.style,
41690
- textDecoration: 'normal',
41738
+ textDecoration: cell?.style?.textDecoration === 'underline' ? 'underline' : 'none',
41691
41739
  pointerEvents: 'none',
41692
41740
  borderTop: '',
41693
41741
  borderBottom: '',
@@ -41747,49 +41795,62 @@ const FloatingRect = ({
41747
41795
  };
41748
41796
 
41749
41797
  const Selected = ({
41750
- visibleRange
41798
+ visibleRange,
41799
+ scrollPos = {
41800
+ top: 0,
41801
+ left: 0
41802
+ }
41751
41803
  }) => {
41752
- const selected = useSelector(state => state.selected);
41753
41804
  const rowDimensions = useSelector(state => state.rowDimensions);
41805
+ const columnDimensions = useSelector(state => state.columnDimensions);
41754
41806
  const dragging = useSelector(state => state.dragging);
41755
41807
  const hidden = useSelector(state => state.selected.size(state.model.data) < 2);
41756
- const dimensions = useSelector(state => {
41757
- return selected && getSelectedDimensions(state.rowDimensions, state.columnDimensions, state.model.data, state.selected);
41758
- });
41759
- const offset = React__namespace.useMemo(() => {
41760
- let sum = 0;
41761
- const DEFAULT_ROW_HEIGHT = 32;
41762
- for (let r = 0; r < visibleRange.start; r++) {
41763
- sum += rowDimensions[r]?.height || DEFAULT_ROW_HEIGHT;
41764
- }
41765
- return sum;
41766
- }, [rowDimensions, visibleRange.start]);
41808
+ const fullRange = useSelector(state => state.selected.toRange(state.model.data));
41809
+ const dimensions = React__namespace.useMemo(() => getVisibleRangeDimensions(fullRange, visibleRange, rowDimensions, columnDimensions), [fullRange, rowDimensions, columnDimensions, visibleRange]);
41767
41810
  const adjustedDimensions = React__namespace.useMemo(() => {
41768
41811
  if (!dimensions) return undefined;
41769
41812
  return {
41770
41813
  ...dimensions,
41771
- top: dimensions.top - offset - 1,
41772
- left: dimensions.left - 1,
41773
- height: dimensions.height + 2,
41774
- width: dimensions.width + 2
41814
+ top: dimensions.top + 32,
41815
+ left: dimensions.left + 60,
41816
+ height: dimensions.height - 1,
41817
+ width: dimensions.width - 1
41775
41818
  };
41776
- }, [dimensions, offset]);
41819
+ }, [dimensions, scrollPos]);
41777
41820
  return jsxRuntime.jsx(FloatingRect, {
41778
41821
  variant: "selected",
41779
41822
  dimensions: adjustedDimensions,
41780
41823
  dragging: dragging,
41781
- hidden: hidden
41824
+ hidden: hidden || !dimensions
41782
41825
  });
41783
41826
  };
41784
41827
 
41785
- const Copied = () => {
41786
- const range = useSelector(state => state.copied);
41787
- const dimensions = useSelector(state => range && getRangeDimensions(state.rowDimensions, state.columnDimensions, range));
41788
- const hidden = range === null;
41828
+ const Copied = ({
41829
+ visibleRange,
41830
+ scrollPos = {
41831
+ top: 0,
41832
+ left: 0
41833
+ }
41834
+ }) => {
41835
+ const rowDimensions = useSelector(state => state.rowDimensions);
41836
+ const columnDimensions = useSelector(state => state.columnDimensions);
41837
+ const fullRange = useSelector(state => state.copied);
41838
+ const hidden = fullRange === null;
41839
+ const dimensions = React__namespace.useMemo(() => getVisibleRangeDimensions(fullRange, visibleRange, rowDimensions, columnDimensions), [fullRange, rowDimensions, columnDimensions, visibleRange]);
41840
+ const adjustedDimensions = React__namespace.useMemo(() => {
41841
+ if (!dimensions) return undefined;
41842
+ return {
41843
+ ...dimensions,
41844
+ top: dimensions.top + 32,
41845
+ left: dimensions.left + 60,
41846
+ height: dimensions.height - 1,
41847
+ width: dimensions.width - 1
41848
+ };
41849
+ }, [dimensions, scrollPos]);
41789
41850
  return jsxRuntime.jsx(FloatingRect, {
41790
41851
  variant: "copied",
41791
- dimensions: dimensions,
41792
- hidden: hidden,
41852
+ dimensions: adjustedDimensions,
41853
+ hidden: hidden || !dimensions,
41793
41854
  dragging: false
41794
41855
  });
41795
41856
  };
@@ -42305,7 +42366,7 @@ const throttle = (func, limit) => {
42305
42366
  /**
42306
42367
  * The Spreadsheet component
42307
42368
  */
42308
- const Spreadsheet = props => {
42369
+ const Spreadsheet = /*#__PURE__*/React__namespace.forwardRef(function Spreadsheet(props, ref) {
42309
42370
  const {
42310
42371
  className,
42311
42372
  columnLabels,
@@ -42332,13 +42393,17 @@ const Spreadsheet = props => {
42332
42393
  maxColLimit,
42333
42394
  disableDeleteOption,
42334
42395
  contextMenu,
42396
+ getActiveCell,
42335
42397
  onAddColumn,
42336
42398
  onDeleteColumn
42337
42399
  } = props;
42338
42400
  const [sheetChange, setSheetChange] = React__namespace.useState(false);
42339
42401
  const [maxWidth, setMaxWidth] = React__namespace.useState(0);
42340
42402
  const [maxHeight, setMaxHeight] = React__namespace.useState(0);
42341
- const [renderReady, setRenderReady] = React__namespace.useState(true);
42403
+ const [scrollPos, setScrollPos] = React__namespace.useState({
42404
+ top: 0,
42405
+ left: 0
42406
+ });
42342
42407
  const resizeObserver = new ResizeObserver(entries => {
42343
42408
  const entry = entries[0];
42344
42409
  if (entry && rootRef.current) {
@@ -42353,7 +42418,6 @@ const Spreadsheet = props => {
42353
42418
  setMaxWidth(Math.min(rootRef.current.clientWidth, clientWidth));
42354
42419
  }
42355
42420
  }
42356
- removeSelect();
42357
42421
  }
42358
42422
  });
42359
42423
  const scrollOption = props.scroller;
@@ -42412,6 +42476,10 @@ const Spreadsheet = props => {
42412
42476
  const addColumnRight$1 = useAction(addColumnRight);
42413
42477
  const deleteRow$1 = useAction(deleteRow);
42414
42478
  const deleteColumn$1 = useAction(deleteColumn);
42479
+ // Expose removeSelect
42480
+ React__namespace.useImperativeHandle(ref, () => ({
42481
+ removeSelect
42482
+ }));
42415
42483
  // Track active
42416
42484
  const prevActiveRef = React__namespace.useRef(state.active);
42417
42485
  React__namespace.useEffect(() => {
@@ -42518,17 +42586,6 @@ const Spreadsheet = props => {
42518
42586
  onKeyDownAction(event);
42519
42587
  }
42520
42588
  }, [state, onKeyDown, onKeyDownAction]);
42521
- React__namespace.useEffect(() => {
42522
- const handleDocumentClick = event => {
42523
- if (workRef.current && !workRef.current.contains(event.target)) {
42524
- removeSelect();
42525
- }
42526
- };
42527
- document.addEventListener('click', handleDocumentClick);
42528
- return () => {
42529
- document.removeEventListener('click', handleDocumentClick);
42530
- };
42531
- }, [workRef]);
42532
42589
  const handleClick = React__namespace.useCallback(() => {
42533
42590
  if (state.formattedStyle.open && state.active) {
42534
42591
  formateClick(state.active);
@@ -42566,11 +42623,6 @@ const Spreadsheet = props => {
42566
42623
  if (!table) return;
42567
42624
  resizeObserver.observe(table);
42568
42625
  };
42569
- const removeSelection = () => {
42570
- if ((state.selectedColumn === null || state.selectedRow === null) && !state.autoFill.open) {
42571
- removeSelect();
42572
- }
42573
- };
42574
42626
  const updateVisibleRange = (newStart, newEnd, newScrollCount) => {
42575
42627
  setScrollCount(newScrollCount);
42576
42628
  setVisibleRange({
@@ -42586,10 +42638,8 @@ const Spreadsheet = props => {
42586
42638
  });
42587
42639
  });
42588
42640
  }
42589
- removeSelection();
42590
42641
  };
42591
42642
  const throttledHandleScroll = React__namespace.useMemo(() => throttle(e => {
42592
- setRenderReady(false);
42593
42643
  requestAnimationFrame(() => {
42594
42644
  const {
42595
42645
  scrollTop,
@@ -42615,7 +42665,6 @@ const Spreadsheet = props => {
42615
42665
  updateVisibleRange((scrollCount + 1) * rowHeight, size.rows, scrollCount + 1);
42616
42666
  setScrollCount(scrollCount + 1);
42617
42667
  }
42618
- setRenderReady(true);
42619
42668
  });
42620
42669
  setContextMenu({
42621
42670
  open: false,
@@ -42638,6 +42687,42 @@ const Spreadsheet = props => {
42638
42687
  return range(size.rows);
42639
42688
  }
42640
42689
  };
42690
+ const scrollToRow = (row, visibleRangeValue) => {
42691
+ if (!scrollOption || !rootRef.current) return;
42692
+ requestAnimationFrame(() => {
42693
+ const DEFAULT_ROW_HEIGHT = 32;
42694
+ let scrollTop = 0;
42695
+ for (let r = 0; r <= row; r++) {
42696
+ scrollTop += state.rowDimensions?.[r]?.height || DEFAULT_ROW_HEIGHT;
42697
+ }
42698
+ if (row >= visibleRange.end - 1) {
42699
+ setVisibleRange(prev => ({
42700
+ ...prev,
42701
+ start: visibleRangeValue?.start,
42702
+ end: visibleRangeValue?.end
42703
+ }));
42704
+ rootRef.current?.scrollTo({
42705
+ top: scrollTop + DEFAULT_ROW_HEIGHT,
42706
+ behavior: 'smooth'
42707
+ });
42708
+ }
42709
+ });
42710
+ };
42711
+ const scrollToColumn = column => {
42712
+ requestAnimationFrame(() => {
42713
+ const columnWidth = minimumColumnWidth;
42714
+ const scrollLeft = column * columnWidth;
42715
+ requestAnimationFrame(() => {
42716
+ if (!rootRef.current) return;
42717
+ if (column >= size.columns - 1) {
42718
+ rootRef.current.scrollTo({
42719
+ left: scrollLeft,
42720
+ behavior: 'smooth'
42721
+ });
42722
+ }
42723
+ });
42724
+ });
42725
+ };
42641
42726
  const tableNode = React__namespace.useMemo(() => jsxRuntime.jsxs(Table$1, {
42642
42727
  columns: size.columns,
42643
42728
  hideColumnIndicators: false,
@@ -42656,7 +42741,8 @@ const Spreadsheet = props => {
42656
42741
  disableDeleteOption: disableDeleteOption,
42657
42742
  contextMenu: contextMenu,
42658
42743
  onAddColumn: onAddColumn,
42659
- onDeleteColumn: onDeleteColumn
42744
+ onDeleteColumn: onDeleteColumn,
42745
+ scrollToColumn: scrollToColumn
42660
42746
  }, columnNumber) : jsxRuntime.jsx(ColumnIndicator, {
42661
42747
  column: columnNumber,
42662
42748
  minimumColumnWidth: minimumColumnWidth,
@@ -42669,9 +42755,10 @@ const Spreadsheet = props => {
42669
42755
  disableDeleteOption: disableDeleteOption,
42670
42756
  contextMenu: contextMenu,
42671
42757
  onAddColumn: onAddColumn,
42672
- onDeleteColumn: onDeleteColumn
42758
+ onDeleteColumn: onDeleteColumn,
42759
+ scrollToColumn: scrollToColumn
42673
42760
  }, columnNumber))]
42674
- }), renderReady && scrollerFunction().map(rowNumber => jsxRuntime.jsxs(Row$1, {
42761
+ }), scrollerFunction().map(rowNumber => jsxRuntime.jsxs(Row$1, {
42675
42762
  row: rowNumber,
42676
42763
  children: [rowLabels ? jsxRuntime.jsx(RowIndicator$1, {
42677
42764
  label: rowNumber in rowLabels ? rowLabels[rowNumber] : null,
@@ -42684,7 +42771,8 @@ const Spreadsheet = props => {
42684
42771
  maxRowLimit: maxRowLimit,
42685
42772
  disableDeleteOption: disableDeleteOption,
42686
42773
  contextMenu: contextMenu,
42687
- setVisibleRange: setVisibleRange
42774
+ setVisibleRange: setVisibleRange,
42775
+ scrollToRow: scrollToRow
42688
42776
  }, rowNumber) : jsxRuntime.jsx(RowIndicator$1, {
42689
42777
  row: rowNumber,
42690
42778
  addRowTop: addRowTop$1,
@@ -42695,7 +42783,8 @@ const Spreadsheet = props => {
42695
42783
  maxRowLimit: maxRowLimit,
42696
42784
  disableDeleteOption: disableDeleteOption,
42697
42785
  contextMenu: contextMenu,
42698
- setVisibleRange: setVisibleRange
42786
+ setVisibleRange: setVisibleRange,
42787
+ scrollToRow: scrollToRow
42699
42788
  }, rowNumber), range(size.columns).map(columnNumber => jsxRuntime.jsx(Cell$1, {
42700
42789
  row: rowNumber,
42701
42790
  column: columnNumber,
@@ -42708,6 +42797,7 @@ const Spreadsheet = props => {
42708
42797
  const activeCellNode = React__namespace.useMemo(() => jsxRuntime.jsx(ActiveCell, {
42709
42798
  attachmentAction: attachmentAction,
42710
42799
  contextOption: contextOption,
42800
+ getActiveCell: getActiveCell,
42711
42801
  setContextMenu: props.setContextMenu,
42712
42802
  // @ts-ignore
42713
42803
  DataEditor: DataEditor$1,
@@ -42758,6 +42848,11 @@ const Spreadsheet = props => {
42758
42848
  onClick: handleClick,
42759
42849
  onMouseMove: handleMouseMove,
42760
42850
  onScroll: e => {
42851
+ const target = e.target;
42852
+ setScrollPos({
42853
+ top: target.scrollTop,
42854
+ left: target.scrollLeft
42855
+ });
42761
42856
  scrollOption && throttledHandleScroll(e);
42762
42857
  setContextMenu({
42763
42858
  open: false,
@@ -42774,15 +42869,19 @@ const Spreadsheet = props => {
42774
42869
  });
42775
42870
  },
42776
42871
  children: [tableNode, activeCellNode, jsxRuntime.jsx(Selected, {
42777
- visibleRange: visibleRange
42778
- }), jsxRuntime.jsx(Copied, {})]
42872
+ visibleRange: visibleRange,
42873
+ scrollPos: scrollPos
42874
+ }), jsxRuntime.jsx(Copied, {
42875
+ visibleRange: visibleRange,
42876
+ scrollPos: scrollPos
42877
+ })]
42779
42878
  })]
42780
42879
  }), [className, onKeyPress, handleKeyDown, handleMouseMove, tableNode, activeCellNode, maxWidth]);
42781
42880
  return jsxRuntime.jsx(context.Provider, {
42782
42881
  value: reducerElements,
42783
42882
  children: rootNode
42784
42883
  });
42785
- };
42884
+ });
42786
42885
 
42787
42886
  const ExcelContextMenu = ({
42788
42887
  contextMenu,
@@ -42881,7 +42980,8 @@ const ExcelFile = ({
42881
42980
  showHider = true,
42882
42981
  maxRowLimit = Infinity,
42883
42982
  maxColLimit = Infinity,
42884
- maxSheetLimit = Infinity
42983
+ maxSheetLimit = Infinity,
42984
+ getActiveCell = () => {}
42885
42985
  }) => {
42886
42986
  const [sheetNames, setSheetNames] = React.useState([]);
42887
42987
  const [saveInfo, setSaveInfo] = React.useState('');
@@ -42914,6 +43014,7 @@ const ExcelFile = ({
42914
43014
  const pageRef = React.useRef('');
42915
43015
  const workRef = React.useRef(null);
42916
43016
  const sheetRef = React.useRef(null);
43017
+ const spreadsheetRef = React.useRef(null);
42917
43018
  const checkVal = val => {
42918
43019
  if (val === undefined || val === null) {
42919
43020
  return null;
@@ -43418,6 +43519,9 @@ const ExcelFile = ({
43418
43519
  });
43419
43520
  }
43420
43521
  };
43522
+ React.useEffect(() => {
43523
+ spreadsheetRef.current?.removeSelect();
43524
+ }, [selectedSheet.name]);
43421
43525
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
43422
43526
  children: sheetNames.length > 0 && jsxRuntime.jsxs("div", {
43423
43527
  ref: workRef,
@@ -43428,6 +43532,7 @@ const ExcelFile = ({
43428
43532
  ref: sheetRef,
43429
43533
  className: "ff-excel-sheet",
43430
43534
  children: jsxRuntime.jsx(Spreadsheet, {
43535
+ ref: spreadsheetRef,
43431
43536
  editable: editable,
43432
43537
  attachmentAction: attachmentAction,
43433
43538
  toolbar: toolbar,
@@ -43446,9 +43551,10 @@ const ExcelFile = ({
43446
43551
  maxColLimit: maxColLimit,
43447
43552
  disableDeleteOption: disableDeleteOption,
43448
43553
  contextMenu: contextMenu,
43554
+ getActiveCell: getActiveCell,
43449
43555
  onAddColumn: handleAddColumn,
43450
43556
  onDeleteColumn: handleDeleteColumn
43451
- })
43557
+ }, selectedSheet.name)
43452
43558
  }), sheetBar !== 'hide' && jsxRuntime.jsxs("div", {
43453
43559
  className: "ff-excel-sheet-bar",
43454
43560
  children: [sheetBar === 'show' && jsxRuntime.jsx("div", {
@@ -48711,8 +48817,9 @@ const MobileSkin = ({
48711
48817
  const containerWidth = isPortrait ? mobileWidth : mobileHeight;
48712
48818
  const hasTopNav = UtilityBar && navBarPosition === 'top';
48713
48819
  const hasBottomNav = UtilityBar && navBarPosition === 'bottom';
48820
+ const hasSideNav = UtilityBar && navBarPosition === 'left';
48714
48821
  return jsxRuntime.jsxs("div", {
48715
- className: `ff-mobileskin-wrapper ${isPortrait ? 'portrait' : 'landscape'} ${hasTopNav && 'navbar-top'}`,
48822
+ className: ['ff-mobileskin-wrapper', isPortrait ? 'portrait' : 'landscape', hasSideNav ? 'ff-side-nav-left' : '', hasTopNav ? 'navbar-top' : '', hasBottomNav ? 'navbar-bottom' : ''].filter(Boolean).join(' '),
48716
48823
  children: [hasTopNav && jsxRuntime.jsx("div", {
48717
48824
  className: "ff-nav-bar top-nav-bar",
48718
48825
  children: navBarIcons.map(({
@@ -48721,6 +48828,7 @@ const MobileSkin = ({
48721
48828
  className,
48722
48829
  ...iconProps
48723
48830
  }, index) => {
48831
+ const key = tooltip?.[name] ?? index;
48724
48832
  const tooltipTitle = tooltip?.[name] || '';
48725
48833
  return jsxRuntime.jsx(Tooltip, {
48726
48834
  title: tooltipTitle,
@@ -48732,7 +48840,7 @@ const MobileSkin = ({
48732
48840
  ...iconProps
48733
48841
  })
48734
48842
  })
48735
- }, tooltipTitle);
48843
+ }, key);
48736
48844
  })
48737
48845
  }), jsxRuntime.jsx("div", {
48738
48846
  className: "ff-mobileskin-container",
@@ -48776,6 +48884,24 @@ const MobileSkin = ({
48776
48884
  })
48777
48885
  }, index);
48778
48886
  })
48887
+ }), UtilityBar && hasSideNav && jsxRuntime.jsx("div", {
48888
+ className: "ff-side-nav-bar",
48889
+ children: navBarIcons?.map((icon, index) => {
48890
+ const {
48891
+ title,
48892
+ ...iconProps
48893
+ } = icon;
48894
+ return jsxRuntime.jsx("div", {
48895
+ className: `ff-sidebar ${icon?.className || ''} ${index === navBarIcons.length - 1 ? 'last-icon' : ''}`,
48896
+ children: jsxRuntime.jsx(Tooltip, {
48897
+ title: title,
48898
+ placement: "bottom",
48899
+ children: jsxRuntime.jsx(Icon, {
48900
+ ...iconProps
48901
+ })
48902
+ })
48903
+ }, index);
48904
+ })
48779
48905
  })]
48780
48906
  });
48781
48907
  };
@@ -48796,7 +48922,8 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
48796
48922
  submitPrompt,
48797
48923
  onPromptChange,
48798
48924
  onBlur,
48799
- onFocus
48925
+ onFocus,
48926
+ disableInput
48800
48927
  }) => {
48801
48928
  const containerRef = React.useRef(null);
48802
48929
  useKeyboardActions([{
@@ -48841,7 +48968,8 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
48841
48968
  onChange: onPromptChange,
48842
48969
  onFocus: onFocus,
48843
48970
  onBlur: onBlur,
48844
- value: value
48971
+ value: value,
48972
+ readOnly: disableInput
48845
48973
  })]
48846
48974
  });
48847
48975
  });
@@ -49045,7 +49173,8 @@ const ChatModalAi = /*#__PURE__*/React.forwardRef(({
49045
49173
  footerContent = 'Footer Content',
49046
49174
  iconWidth,
49047
49175
  iconHeight,
49048
- children
49176
+ children,
49177
+ onVisibilityChange
49049
49178
  }, ref) => {
49050
49179
  const [isOpen, setIsOpen] = React.useState(false);
49051
49180
  const [isVisible, setIsVisible] = React.useState(false);
@@ -49053,12 +49182,16 @@ const ChatModalAi = /*#__PURE__*/React.forwardRef(({
49053
49182
  const openModal = () => {
49054
49183
  if (timerRef.current) clearTimeout(timerRef.current);
49055
49184
  setIsVisible(prev => !prev);
49185
+ onVisibilityChange?.(!isVisible);
49056
49186
  timerRef.current = setTimeout(() => setIsOpen(prev => !prev), 10);
49057
49187
  };
49058
49188
  const closeModal = () => {
49059
49189
  if (timerRef.current) clearTimeout(timerRef.current);
49060
49190
  setIsOpen(false);
49061
- timerRef.current = setTimeout(() => setIsVisible(false), 300);
49191
+ timerRef.current = setTimeout(() => {
49192
+ setIsVisible(false);
49193
+ onVisibilityChange?.(false);
49194
+ }, 300);
49062
49195
  };
49063
49196
  React.useImperativeHandle(ref, () => ({
49064
49197
  closeModal
@@ -49290,11 +49423,13 @@ const PromptContainer = ({
49290
49423
  disabled,
49291
49424
  isEditAccess,
49292
49425
  versionsLength,
49293
- count
49426
+ count,
49427
+ hiddenActions = []
49294
49428
  }) => {
49295
49429
  const [isExpanded, setIsExpanded] = React.useState(false);
49296
49430
  const [showReadMore, setShowReadMore] = React.useState(false);
49297
49431
  const contentRef = React.useRef(null);
49432
+ const hiddenListIcons = Array.isArray(hiddenActions) ? hiddenActions : hiddenActions ? [hiddenActions] : [];
49298
49433
  const actions = [{
49299
49434
  action: 'delete',
49300
49435
  title: 'Delete',
@@ -49381,7 +49516,7 @@ const PromptContainer = ({
49381
49516
  className: "ff-prompt-icons",
49382
49517
  children: [jsxRuntime.jsx("div", {
49383
49518
  className: "ff-prompt-icons-leftside",
49384
- children: actions.map((act, index) => {
49519
+ children: actions.filter(act => !hiddenListIcons.includes(act.action)).map((act, index) => {
49385
49520
  const isDelete = act?.action === 'delete';
49386
49521
  const isRegenerate = act?.action === 'regenerate';
49387
49522
  const shouldDisableIcon = isEditAccess && isDelete || isRegenerate && (versionsLength ?? 0) >= 3 || disabled;
@@ -50281,11 +50416,22 @@ const TableHead = /*#__PURE__*/React.memo(({
50281
50416
  // );
50282
50417
  const rootNodeRowRef = React.useRef(null);
50283
50418
  const [isMounted, setIsMounted] = React.useState(false);
50419
+ const [didMouseEntered, setDidMouseEntered] = React.useState(false);
50420
+ const handleMouseEnter = e => {
50421
+ e.stopPropagation();
50422
+ setDidMouseEntered(true);
50423
+ };
50424
+ const handleMouseLeave = e => {
50425
+ e.stopPropagation();
50426
+ setDidMouseEntered(false);
50427
+ };
50284
50428
  React.useEffect(() => {
50285
50429
  setIsMounted(true);
50286
50430
  }, []);
50287
50431
  return jsxRuntime.jsxs("thead", {
50288
50432
  className: "ff-table-tree-head",
50433
+ onMouseEnter: handleMouseEnter,
50434
+ onMouseLeave: handleMouseLeave,
50289
50435
  children: [jsxRuntime.jsx("tr", {
50290
50436
  className: "ff-table-tree-row no-hover",
50291
50437
  children: columnsData.map(({
@@ -50330,7 +50476,7 @@ const TableHead = /*#__PURE__*/React.memo(({
50330
50476
  return rootNode.cell(rootNode.node);
50331
50477
  })()
50332
50478
  })]
50333
- }), rootNode.actions && index === 0 && isMounted && rootNodeRowRef.current && jsxRuntime.jsx("div", {
50479
+ }), didMouseEntered && rootNode.actions && index === 0 && isMounted && rootNodeRowRef.current && jsxRuntime.jsx("div", {
50334
50480
  className: "table-tree-row-action",
50335
50481
  children: (() => {
50336
50482
  return rootNode.actions(rootNode.node, rootNodeRowRef);