abdul-react 0.0.34 → 0.0.37

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 (92) hide show
  1. package/lib/ComponentProps/TreeNodeProps.d.ts +1 -0
  2. package/lib/assets/icons/mac_white_icon.svg.js +6 -0
  3. package/lib/assets/icons/mac_white_icon.svg.js.map +1 -0
  4. package/lib/assets/icons/maximize_livetesting.svg.js +6 -0
  5. package/lib/assets/icons/maximize_livetesting.svg.js.map +1 -0
  6. package/lib/assets/icons/minimize_tree.svg.js +6 -0
  7. package/lib/assets/icons/minimize_tree.svg.js.map +1 -0
  8. package/lib/assets/icons/timer_icon.svg.js +6 -0
  9. package/lib/assets/icons/timer_icon.svg.js.map +1 -0
  10. package/lib/assets/icons/view_access_icon.svg.js +1 -1
  11. package/lib/assets/icons/view_access_icon.svg.js.map +1 -1
  12. package/lib/assets/icons/windows_blue_icon.svg.js +6 -0
  13. package/lib/assets/icons/windows_blue_icon.svg.js.map +1 -0
  14. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +53 -13
  15. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  16. package/lib/components/AppHeader/AppHeader.js +36 -3
  17. package/lib/components/AppHeader/AppHeader.js.map +1 -1
  18. package/lib/components/AppHeader/types.d.ts +11 -0
  19. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +17 -5
  20. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  21. package/lib/components/ConditionalDropdown/OptionsDropdown.js +16 -6
  22. package/lib/components/ConditionalDropdown/OptionsDropdown.js.map +1 -1
  23. package/lib/components/ConditionalDropdown/types.d.ts +12 -0
  24. package/lib/components/CreateVariable/CreateVariableSlider.js +3 -2
  25. package/lib/components/CreateVariable/CreateVariableSlider.js.map +1 -1
  26. package/lib/components/CreateVariable/types.d.ts +3 -2
  27. package/lib/components/Drawer/Drawer.js +7 -4
  28. package/lib/components/Drawer/Drawer.js.map +1 -1
  29. package/lib/components/EditLabel/EditLabel.js +2 -2
  30. package/lib/components/EditLabel/EditLabel.js.map +1 -1
  31. package/lib/components/Editor/Editor.js +8 -3
  32. package/lib/components/Editor/Editor.js.map +1 -1
  33. package/lib/components/Editor/VariableDropdown.js +7 -7
  34. package/lib/components/Editor/VariableDropdown.js.map +1 -1
  35. package/lib/components/Editor/types.d.ts +8 -0
  36. package/lib/components/Excel/Data.d.ts +8 -60
  37. package/lib/components/Excel/Data.js +50 -18
  38. package/lib/components/Excel/Data.js.map +1 -1
  39. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js +2 -0
  40. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js.map +1 -1
  41. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Cell.js +2 -1
  42. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Cell.js.map +1 -1
  43. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js +8 -9
  44. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js.map +1 -1
  45. package/lib/components/Excel/ExcelFile/ExcelFileComponents/DataEditor.js +45 -2
  46. package/lib/components/Excel/ExcelFile/ExcelFileComponents/DataEditor.js.map +1 -1
  47. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js +7 -6
  48. package/lib/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.js.map +1 -1
  49. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.d.ts +17 -1
  50. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.js +21 -1
  51. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.js.map +1 -1
  52. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js +380 -27
  53. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js.map +1 -1
  54. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.d.ts +4 -0
  55. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js +43 -1
  56. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js.map +1 -1
  57. package/lib/components/Excel/Types.d.ts +2 -0
  58. package/lib/components/Excel/dataConversion.js +6 -2
  59. package/lib/components/Excel/dataConversion.js.map +1 -1
  60. package/lib/components/Icon/iconList.js +16 -6
  61. package/lib/components/Icon/iconList.js.map +1 -1
  62. package/lib/components/NLPInput/NlpInput.js +1 -1
  63. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js +1 -1
  64. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js.map +1 -1
  65. package/lib/components/Prompt/Prompt.js +2 -1
  66. package/lib/components/Prompt/Prompt.js.map +1 -1
  67. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.js +14 -9
  68. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.js.map +1 -1
  69. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js +92 -69
  70. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js.map +1 -1
  71. package/lib/components/StepsLandingTable/Components/StepInnerTable.d.ts +1 -1
  72. package/lib/components/StepsLandingTable/Components/StepInnerTable.js +187 -15
  73. package/lib/components/StepsLandingTable/Components/StepInnerTable.js.map +1 -1
  74. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js +20 -4
  75. package/lib/components/StepsLandingTable/Components/StepTableMainRow.js.map +1 -1
  76. package/lib/components/StepsLandingTable/Components/Types.d.ts +6 -0
  77. package/lib/components/StepsLandingTable/StepLandingTable.js +7 -3
  78. package/lib/components/StepsLandingTable/StepLandingTable.js.map +1 -1
  79. package/lib/components/StepsLandingTable/types.d.ts +2 -0
  80. package/lib/components/Table/Table.js +184 -42
  81. package/lib/components/Table/Table.js.map +1 -1
  82. package/lib/components/TableWithAccordion/TableWithAccordion.js +4 -3
  83. package/lib/components/TableWithAccordion/TableWithAccordion.js.map +1 -1
  84. package/lib/components/variableSuggestionInputDropDown/OptionsDropdown.js +7 -5
  85. package/lib/components/variableSuggestionInputDropDown/OptionsDropdown.js.map +1 -1
  86. package/lib/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.js +1 -1
  87. package/lib/index.cjs +1189 -243
  88. package/lib/index.cjs.map +1 -1
  89. package/lib/index.d.ts +30 -1
  90. package/lib/styles.css +1 -1
  91. package/lib/styles.css.map +1 -1
  92. package/package.json +1 -1
package/lib/index.cjs CHANGED
@@ -426,7 +426,7 @@ const SvgNoAccessIcon = (props) => /* @__PURE__ */ React__namespace.createElemen
426
426
 
427
427
  const SvgFullAccessIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M14.3023 1.71582C14.0651 1.7172 13.838 1.81245 13.6708 1.98077C13.6708 1.98077 9.91509 5.72922 7.63431 8.00848L6.02693 6.40109C5.67669 6.05175 5.1098 6.05175 4.75956 6.40109C4.41022 6.75132 4.41022 7.31822 4.75956 7.66845L7.00284 9.91173C7.35309 10.261 7.91995 10.261 8.2702 9.91173C10.3923 7.79041 14.9382 3.24814 14.9382 3.24814C15.2875 2.8979 15.2875 2.33101 14.9382 1.98077C14.7699 1.81138 14.5411 1.71603 14.3023 1.71582Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M8.00172 1C4.14578 1.00003 1 4.14236 1 7.99832C1 11.8542 4.14578 15 8.00172 15C11.166 15 13.944 12.8676 14.763 9.8111C14.9214 9.22021 15 8.61007 15 7.99832C15 7.51546 14.6089 7.12387 14.1261 7.12323C13.6432 7.12387 13.2521 7.51546 13.2521 7.99832C13.2521 8.45716 13.1897 8.91556 13.071 9.35875C12.4548 11.6582 10.3823 13.2521 8.00172 13.2522C5.09163 13.2521 2.74786 10.9084 2.74786 7.99832C2.74786 5.08823 5.09162 2.74788 8.00172 2.74788C8.46061 2.74791 8.91551 2.81042 9.35875 2.92902C9.82555 3.05418 10.3054 2.77725 10.4306 2.31044C10.4307 2.31004 10.4308 2.3096 10.4309 2.30919C10.5561 1.84238 10.2791 1.36252 9.81234 1.23736C9.81192 1.23726 9.81152 1.23712 9.8111 1.23702C9.22011 1.07869 8.61357 1.00003 8.00172 1Z", fill: "currentColor" }));
428
428
 
429
- const SvgViewAccessIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M14.911 7.18924C14.786 7.01815 11.806 3 7.99994 3C4.19392 3 1.21377 7.01815 1.08884 7.18907C0.970387 7.35139 0.970387 7.57153 1.08884 7.73385C1.21377 7.90494 4.19392 11.9231 7.99994 11.9231C11.806 11.9231 14.786 7.90491 14.911 7.73398C15.0297 7.5717 15.0297 7.35139 14.911 7.18924ZM7.99994 11C5.1964 11 2.76824 8.33309 2.04946 7.46123C2.76731 6.5886 5.19039 3.92307 7.99994 3.92307C10.8033 3.92307 13.2313 6.58953 13.9504 7.46186C13.2326 8.33445 10.8095 11 7.99994 11Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M7.99996 4.69238C6.47302 4.69238 5.23071 5.9347 5.23071 7.46163C5.23071 8.98856 6.47302 10.2309 7.99996 10.2309C9.52689 10.2309 10.7692 8.98856 10.7692 7.46163C10.7692 5.9347 9.52689 4.69238 7.99996 4.69238ZM7.99996 9.30778C6.98195 9.30778 6.15381 8.47961 6.15381 7.46163C6.15381 6.44365 6.98198 5.61548 7.99996 5.61548C9.01794 5.61548 9.84611 6.44365 9.84611 7.46163C9.84611 8.47961 9.01797 9.30778 7.99996 9.30778Z", fill: "currentColor" }));
429
+ const SvgViewAccessIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14.8985 6.29701C13.5046 8.80023 10.861 10.3552 8.00093 10.3552C5.13896 10.3552 2.49546 8.80023 1.10149 6.29701C0.994127 6.10264 0.994127 5.89717 1.10149 5.70297C2.49546 3.19978 5.13896 1.64494 8.00093 1.64494C10.861 1.64494 13.5045 3.19978 14.8985 5.70297C15.0078 5.89717 15.0078 6.10264 14.8985 6.29701ZM15.789 5.20666C14.2154 2.38043 11.2313 0.624939 8.00093 0.624939C4.76871 0.624939 1.78457 2.38043 0.211039 5.20666C-0.0703464 5.71093 -0.0703464 6.28905 0.211039 6.79295C1.78457 9.61918 4.76871 11.375 8.00093 11.375C11.2313 11.375 14.2154 9.61918 15.789 6.79295C16.0703 6.28909 16.0703 5.71093 15.789 5.20666ZM8.00093 8.09231C9.15424 8.09231 10.0928 7.15375 10.0928 5.99991C10.0928 4.84606 9.15424 3.9075 8.00093 3.9075C6.84576 3.9075 5.9072 4.84606 5.9072 5.99991C5.9072 7.15375 6.8458 8.09231 8.00093 8.09231ZM8.00093 2.88749C6.28299 2.88749 4.8872 4.28386 4.8872 5.99994C4.8872 7.71639 6.28303 9.11218 8.00093 9.11218C9.71701 9.11218 11.1128 7.71636 11.1128 5.99994C11.1128 4.28386 9.71701 2.88749 8.00093 2.88749Z", fill: "currentColor" }));
430
430
 
431
431
  const SvgHideAccessIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.71305 9.66393C5.04428 10.4052 6.50768 10.7961 7.94891 10.7961H8.00016C9.00732 10.803 10.0251 10.6177 11.002 10.2561L12.2785 11.5326C12.3944 11.6486 12.5463 11.7067 12.6985 11.7067C12.8507 11.7067 13.0026 11.6486 13.1185 11.5326C13.3504 11.3008 13.3504 10.9248 13.1185 10.693L2.89276 0.467238C2.66089 0.235367 2.28496 0.235367 2.05308 0.467238C1.82121 0.699108 1.82121 1.07504 2.05308 1.30691L2.82682 2.08064C1.84059 2.78094 0.969356 3.67405 0.272807 4.70528C-0.0909357 5.24433 -0.0909357 5.94088 0.272807 6.48025C1.17123 7.81053 2.36089 8.91145 3.71274 9.66424L3.71305 9.66393ZM7.92234 7.17586C7.10986 7.13617 6.45644 6.48274 6.41675 5.67026L7.92234 7.17586ZM1.25716 5.36933C1.91277 4.39841 2.74182 3.56718 3.68024 2.93375L5.39333 4.64684C5.28583 4.94215 5.2274 5.26027 5.2274 5.59214C5.2274 7.12117 6.47144 8.36521 8.00047 8.36521C8.33234 8.36521 8.65045 8.30646 8.94576 8.19896L10.0629 9.31613C9.3995 9.50894 8.72233 9.60831 8.05203 9.60831H8.00484H7.99672C6.7408 9.61675 5.46083 9.27738 4.29117 8.62645C3.10119 7.96397 2.05215 6.9918 1.25779 5.81557C1.16623 5.67995 1.16623 5.50495 1.25779 5.36964L1.25716 5.36933ZM9.58103 5.47651L10.6163 6.51181C10.7179 6.224 10.7732 5.91463 10.7732 5.59245C10.7732 4.06342 9.52916 2.81938 8.00012 2.81938C7.67794 2.81938 7.36857 2.87469 7.08077 2.97625L8.11606 4.01154C8.89792 4.06842 9.52416 4.69465 9.58103 5.47651ZM12.2875 1.52096C13.6394 2.27376 14.8291 3.37468 15.7275 4.70497L15.7272 4.70465C16.0909 5.2437 16.0909 5.94025 15.7272 6.47931C15.0356 7.50335 14.1716 8.39114 13.1938 9.08925L12.341 8.23646C13.2706 7.60491 14.0922 6.77867 14.7431 5.81494C14.8347 5.67963 14.8347 5.50464 14.7431 5.36901C13.9488 4.19279 12.8997 3.22062 11.7097 2.55813C10.5401 1.90721 9.25854 1.5669 8.00419 1.57628H7.99606H7.94888C7.28764 1.57628 6.61953 1.67284 5.96485 1.86033L5.02393 0.919414C5.97673 0.570046 6.96796 0.3888 7.94888 0.3888H8.00013H8.05137C9.49291 0.3888 10.9563 0.779729 12.2875 1.52096Z", fill: "currentColor" }));
432
432
 
@@ -1936,11 +1936,11 @@ const SvgAdbShell = (props) => /* @__PURE__ */ React__namespace.createElement("s
1936
1936
 
1937
1937
  const SvgUiInspector = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M15.1663 8.33337V3.33337C15.1663 1.95271 14.047 0.833374 12.6663 0.833374C10.149 0.833374 5.85034 0.833374 3.33301 0.833374C1.95234 0.833374 0.833008 1.95271 0.833008 3.33337V12.6667C0.833008 14.0474 1.95234 15.1667 3.33301 15.1667H8.33301C8.60901 15.1667 8.83301 14.9427 8.83301 14.6667C8.83301 14.3907 8.60901 14.1667 8.33301 14.1667H3.33301C2.50434 14.1667 1.83301 13.4954 1.83301 12.6667V3.33337C1.83301 2.50471 2.50434 1.83337 3.33301 1.83337H12.6663C13.495 1.83337 14.1663 2.50471 14.1663 3.33337V8.33337C14.1663 8.60937 14.3903 8.83337 14.6663 8.83337C14.9423 8.83337 15.1663 8.60937 15.1663 8.33337Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14.6663 4.16675H1.33301C1.05701 4.16675 0.833008 4.39075 0.833008 4.66675C0.833008 4.94275 1.05701 5.16675 1.33301 5.16675H14.6663C14.9423 5.16675 15.1663 4.94275 15.1663 4.66675C15.1663 4.39075 14.9423 4.16675 14.6663 4.16675Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M8.5 3.5C8.77614 3.5 9 3.27614 9 3C9 2.72386 8.77614 2.5 8.5 2.5C8.22386 2.5 8 2.72386 8 3C8 3.27614 8.22386 3.5 8.5 3.5Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.333 3.5C10.6092 3.5 10.833 3.27614 10.833 3C10.833 2.72386 10.6092 2.5 10.333 2.5C10.0569 2.5 9.83301 2.72386 9.83301 3C9.83301 3.27614 10.0569 3.5 10.333 3.5Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M12.166 3.5C12.4422 3.5 12.666 3.27614 12.666 3C12.666 2.72386 12.4422 2.5 12.166 2.5C11.8899 2.5 11.666 2.72386 11.666 3C11.666 3.27614 11.8899 3.5 12.166 3.5Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.666 7.16675C8.73402 7.16675 7.16602 8.73475 7.16602 10.6667C7.16602 12.5987 8.73402 14.1667 10.666 14.1667C12.598 14.1667 14.166 12.5987 14.166 10.6667C14.166 8.73475 12.598 7.16675 10.666 7.16675ZM10.666 8.16675C12.046 8.16675 13.166 9.28675 13.166 10.6667C13.166 12.0467 12.046 13.1667 10.666 13.1667C9.28602 13.1667 8.16602 12.0467 8.16602 10.6667C8.16602 9.28675 9.28602 8.16675 10.666 8.16675Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.6465 13.3534L14.3132 15.0201C14.5078 15.2154 14.8252 15.2154 15.0198 15.0201C15.2152 14.8254 15.2152 14.5081 15.0198 14.3134L13.3532 12.6467C13.1585 12.4514 12.8412 12.4514 12.6465 12.6467C12.4512 12.8414 12.4512 13.1587 12.6465 13.3534Z", fill: "currentColor" }));
1938
1938
 
1939
- const SvgRecord = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_20310_13972)" }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8 0C3.5875 0 0 3.5875 0 8C0 12.4125 3.5875 16 8 16C12.4125 16 16 12.4125 16 8C16 3.5875 12.4125 0 8 0ZM5.03125 6.20312H3.78125C3.64375 6.20312 3.53125 6.31563 3.53125 6.45312V8.22812V9.54375C3.53125 9.68125 3.64375 9.79375 3.78125 9.79375C3.91875 9.79375 4.03125 9.68125 4.03125 9.54375V8.47812H4.425L5.34375 9.65C5.39375 9.7125 5.46563 9.74687 5.54063 9.74687C5.59375 9.74687 5.65 9.72813 5.69375 9.69375C5.80312 9.60938 5.82188 9.45 5.7375 9.34375L5.05937 8.48125C5.675 8.46562 6.16875 7.9625 6.16875 7.34375C6.17188 6.71562 5.65938 6.20312 5.03125 6.20312ZM7.30625 6.70312V7.75H9.09375C9.23125 7.75 9.34375 7.8625 9.34375 8C9.34375 8.1375 9.23125 8.25 9.09375 8.25H7.30625V9.29688H9.09375C9.23125 9.29688 9.34375 9.40938 9.34375 9.54688C9.34375 9.68437 9.23125 9.79688 9.09375 9.79688H7.05312C6.91563 9.79688 6.80312 9.68437 6.80312 9.54688V6.45312C6.80312 6.31563 6.91563 6.20312 7.05312 6.20312H9.09375C9.23125 6.20312 9.34375 6.31563 9.34375 6.45312C9.34375 6.59062 9.23125 6.70312 9.09375 6.70312H7.30625ZM10.4312 7.325V8.67188C10.4312 9.01562 10.7094 9.29375 11.0531 9.29375H11.35C11.6875 9.29375 11.9656 9.01875 11.9719 8.68437C11.975 8.54688 12.0875 8.43437 12.2281 8.4375C12.3656 8.44063 12.475 8.55313 12.475 8.69375C12.4625 9.3 11.9594 9.79375 11.3531 9.79375H11.0562C10.4375 9.79375 9.93437 9.29062 9.93437 8.67188V7.325C9.93437 6.70625 10.4375 6.20312 11.0562 6.20312H11.3531C11.9594 6.20312 12.4625 6.69688 12.475 7.30312C12.4781 7.44062 12.3687 7.55625 12.2281 7.55937C12.0875 7.5625 11.975 7.45312 11.9719 7.3125C11.9656 6.975 11.6875 6.70312 11.35 6.70312H11.0531C10.7094 6.70312 10.4312 6.98438 10.4312 7.325ZM5.03125 7.98125H4.03125V6.70625H5.03125C5.38438 6.70625 5.66875 6.99062 5.66875 7.34375C5.66875 7.69375 5.38438 7.98125 5.03125 7.98125Z", fill: "currentColor" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_20310_13972" }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, fill: "white" }))));
1939
+ const SvgTimerIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M14.9827 3.53063L13.3034 1.85125C13.0593 1.60716 12.6635 1.60716 12.4195 1.85125C12.1754 2.09534 12.1754 2.49106 12.4195 2.73513L12.8172 3.13287L12.0015 3.94856C10.9397 3.06275 9.64867 2.528 8.27148 2.40353V1.25H8.83398C9.17917 1.25 9.45898 0.970187 9.45898 0.625C9.45898 0.279813 9.17917 0 8.83398 0H6.45898C6.1138 0 5.83398 0.279813 5.83398 0.625C5.83398 0.970187 6.1138 1.25 6.45898 1.25H7.02148V2.40353C3.59261 2.71341 0.833984 5.59275 0.833984 9.1875C0.833984 12.9526 3.88089 16 7.64648 16C11.4115 16 14.459 12.9531 14.459 9.1875C14.459 7.57778 13.9041 6.05356 12.8854 4.83244L13.7011 4.01675L14.0989 4.4145C14.3429 4.65856 14.7386 4.65859 14.9827 4.4145C15.2268 4.17044 15.2268 3.77472 14.9827 3.53063ZM7.64648 14.75C4.57933 14.75 2.08398 12.2547 2.08398 9.1875C2.08398 6.12034 4.57933 3.625 7.64648 3.625C10.7136 3.625 13.209 6.12034 13.209 9.1875C13.209 12.2547 10.7137 14.75 7.64648 14.75ZM10.8941 9.1875C10.8941 9.53269 10.6143 9.8125 10.2691 9.8125H7.64652C7.30133 9.8125 7.02152 9.53269 7.02152 9.1875V5.51016C7.02152 5.16497 7.30133 4.88516 7.64652 4.88516C7.9917 4.88516 8.27152 5.16497 8.27152 5.51016V8.5625H10.2691C10.6143 8.5625 10.8941 8.84231 10.8941 9.1875Z", fill: "white" }));
1940
1940
 
1941
- const SvgAddElement = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, rx: 8, fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M8 2C4.6863 2 2 4.68627 2 8C2 11.3137 4.6863 14 8 14C11.3137 14 14 11.3137 14 8C14 4.68627 11.3137 2 8 2ZM10.0537 11.15H5.94644V4.85002H9.97758V6.35024H7.67444V7.27779H9.74365V8.70142H7.67444V9.64463H10.0538L10.0537 11.15Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("mask", { id: "path-3-outside-1_20264_6770", maskUnits: "userSpaceOnUse", x: 2.80005, y: 5.2002, width: 6, height: 6, fill: "black" }, /* @__PURE__ */ React__namespace.createElement("rect", { fill: "white", x: 2.80005, y: 5.2002, width: 6, height: 6 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M5.89966 7.2002C5.89966 7.61441 6.23544 7.9502 6.64966 7.9502H7.04956C7.24291 7.9502 7.39966 8.10694 7.39966 8.30029C7.39966 8.49365 7.24291 8.65039 7.04956 8.65039H6.64966C6.23544 8.65039 5.89966 8.98618 5.89966 9.40039V10.1006C5.89966 10.2662 5.76543 10.4004 5.59985 10.4004C5.43428 10.4004 5.30005 10.2662 5.30005 10.1006V9.40039C5.30005 8.98618 4.96426 8.65039 4.55005 8.65039H4.15015C3.95679 8.65039 3.80005 8.49365 3.80005 8.30029C3.80005 8.10694 3.95679 7.9502 4.15015 7.9502H4.55005C4.96426 7.9502 5.30005 7.61441 5.30005 7.2002V6.5C5.30005 6.33442 5.43428 6.2002 5.59985 6.2002C5.76543 6.2002 5.89966 6.33442 5.89966 6.5V7.2002Z" })), /* @__PURE__ */ React__namespace.createElement("path", { d: "M5.89966 7.2002C5.89966 7.61441 6.23544 7.9502 6.64966 7.9502H7.04956C7.24291 7.9502 7.39966 8.10694 7.39966 8.30029C7.39966 8.49365 7.24291 8.65039 7.04956 8.65039H6.64966C6.23544 8.65039 5.89966 8.98618 5.89966 9.40039V10.1006C5.89966 10.2662 5.76543 10.4004 5.59985 10.4004C5.43428 10.4004 5.30005 10.2662 5.30005 10.1006V9.40039C5.30005 8.98618 4.96426 8.65039 4.55005 8.65039H4.15015C3.95679 8.65039 3.80005 8.49365 3.80005 8.30029C3.80005 8.10694 3.95679 7.9502 4.15015 7.9502H4.55005C4.96426 7.9502 5.30005 7.61441 5.30005 7.2002V6.5C5.30005 6.33442 5.43428 6.2002 5.59985 6.2002C5.76543 6.2002 5.89966 6.33442 5.89966 6.5V7.2002Z", fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.64966 7.9502V8.4502H7.04956V7.9502V7.4502H6.64966V7.9502ZM7.04956 8.65039V8.15039H6.64966V8.65039V9.15039H7.04956V8.65039ZM5.89966 9.40039H5.39966V10.1006H5.89966H6.39966V9.40039H5.89966ZM5.30005 10.1006H5.80005V9.40039H5.30005H4.80005V10.1006H5.30005ZM4.55005 8.65039V8.15039H4.15015V8.65039V9.15039H4.55005V8.65039ZM4.15015 7.9502V8.4502H4.55005V7.9502V7.4502H4.15015V7.9502ZM5.30005 7.2002H5.80005V6.5H5.30005H4.80005V7.2002H5.30005ZM5.89966 6.5H5.39966V7.2002H5.89966H6.39966V6.5H5.89966ZM5.59985 6.2002V6.7002C5.48929 6.7002 5.39966 6.61056 5.39966 6.5H5.89966H6.39966C6.39966 6.05828 6.04157 5.7002 5.59985 5.7002V6.2002ZM5.30005 6.5H5.80005C5.80005 6.61056 5.71042 6.7002 5.59985 6.7002V6.2002V5.7002C5.15813 5.7002 4.80005 6.05828 4.80005 6.5H5.30005ZM4.55005 7.9502V8.4502C5.2404 8.4502 5.80005 7.89055 5.80005 7.2002H5.30005H4.80005C4.80005 7.33827 4.68812 7.4502 4.55005 7.4502V7.9502ZM3.80005 8.30029H4.30005C4.30005 8.38308 4.23294 8.4502 4.15015 8.4502V7.9502V7.4502C3.68065 7.4502 3.30005 7.8308 3.30005 8.30029H3.80005ZM4.15015 8.65039V8.15039C4.23294 8.15039 4.30005 8.2175 4.30005 8.30029H3.80005H3.30005C3.30005 8.76979 3.68065 9.15039 4.15015 9.15039V8.65039ZM5.30005 9.40039H5.80005C5.80005 8.71003 5.2404 8.15039 4.55005 8.15039V8.65039V9.15039C4.68812 9.15039 4.80005 9.26232 4.80005 9.40039H5.30005ZM5.59985 10.4004V9.90039C5.71042 9.90039 5.80005 9.99002 5.80005 10.1006H5.30005H4.80005C4.80005 10.5423 5.15813 10.9004 5.59985 10.9004V10.4004ZM5.89966 10.1006H5.39966C5.39966 9.99002 5.48929 9.90039 5.59985 9.90039V10.4004V10.9004C6.04157 10.9004 6.39966 10.5423 6.39966 10.1006H5.89966ZM6.64966 8.65039V8.15039C5.9593 8.15039 5.39966 8.71003 5.39966 9.40039H5.89966H6.39966C6.39966 9.26232 6.51159 9.15039 6.64966 9.15039V8.65039ZM7.39966 8.30029H6.89966C6.89966 8.2175 6.96677 8.15039 7.04956 8.15039V8.65039V9.15039C7.51906 9.15039 7.89966 8.76979 7.89966 8.30029H7.39966ZM7.04956 7.9502V8.4502C6.96677 8.4502 6.89966 8.38308 6.89966 8.30029H7.39966H7.89966C7.89966 7.8308 7.51906 7.4502 7.04956 7.4502V7.9502ZM6.64966 7.9502V7.4502C6.51159 7.4502 6.39966 7.33827 6.39966 7.2002H5.89966H5.39966C5.39966 7.89055 5.9593 8.4502 6.64966 8.4502V7.9502Z", fill: "currentColor", mask: "url(#path-3-outside-1_20264_6770)" }));
1941
+ const SvgMaximizeLivetesting = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M16.418 0.900391C16.463 0.900408 16.5078 0.904749 16.5508 0.913086H16.5518C16.5655 0.915934 16.578 0.919968 16.5869 0.922852C16.5974 0.926251 16.6025 0.928007 16.6084 0.929688L16.6787 0.952148L16.6777 0.953125L16.7432 0.985352L16.7637 0.996094C16.772 1.00039 16.7831 1.00675 16.7949 1.01465C16.87 1.06446 16.9347 1.12881 16.9844 1.20312C16.9925 1.21517 16.9986 1.22697 17.0029 1.23535L17.0127 1.25488L17.0137 1.25586C17.0204 1.26803 17.0362 1.29485 17.0469 1.32031L17.0479 1.32129C17.0582 1.34671 17.0655 1.37669 17.0693 1.38965L17.0859 1.44824V1.44922C17.0942 1.49237 17.0996 1.53688 17.0996 1.58203V5.07227C17.0996 5.44854 16.7946 5.75475 16.418 5.75488C16.0416 5.75488 15.7363 5.44866 15.7363 5.07227V3.22656L11.6631 7.2998C11.5301 7.43308 11.3559 7.49993 11.1816 7.5C11.0508 7.5 10.9192 7.4628 10.8057 7.3877L10.6992 7.2998C10.4332 7.03353 10.4331 6.6021 10.6992 6.33594L14.7715 2.26367H12.9268C12.5505 2.26364 12.2452 1.95831 12.2451 1.58203C12.2451 1.20566 12.5504 0.900419 12.9268 0.900391H16.418Z", fill: "white", stroke: "white", strokeWidth: 0.2 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.33594 10.6995C6.60181 10.4333 7.03381 10.4335 7.2998 10.6995C7.56606 10.9657 7.56606 11.3971 7.2998 11.6633L3.22656 15.7366H5.07227C5.44866 15.7366 5.75488 16.0418 5.75488 16.4182C5.75475 16.7945 5.44857 17.0999 5.07227 17.0999H1.58203C1.53681 17.0999 1.49193 17.0949 1.44824 17.0862V17.0852C1.42485 17.0806 1.39347 17.0707 1.38965 17.0696C1.37703 17.0659 1.34651 17.0584 1.32129 17.0481L1.32031 17.0471C1.29496 17.0364 1.26737 17.0202 1.25586 17.0139V17.0129C1.24872 17.0093 1.22091 16.9966 1.20312 16.9846C1.16572 16.9597 1.13109 16.9312 1.09961 16.8997L1.01465 16.7961C1.00656 16.7841 1.00042 16.7724 0.996094 16.7639L0.986328 16.7444C0.979286 16.7317 0.963078 16.7051 0.952148 16.679V16.678C0.941952 16.653 0.934497 16.6238 0.930664 16.6106L0.913086 16.55L0.914062 16.5491C0.90563 16.5062 0.900408 16.4626 0.900391 16.4182V12.927C0.900419 12.5507 1.20533 12.2454 1.58203 12.2454C1.95863 12.2455 2.26364 12.5507 2.26367 12.927V14.7717L6.33594 10.6995Z", fill: "white", stroke: "white", strokeWidth: 0.2 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M5.07227 0.900391C5.44866 0.900391 5.75488 1.20564 5.75488 1.58203C5.75477 1.95833 5.44859 2.26367 5.07227 2.26367H3.22754L7.2998 6.33594C7.56593 6.6022 7.56602 7.03359 7.2998 7.2998C7.1667 7.43257 6.99228 7.4989 6.81836 7.49902C6.64404 7.49902 6.46894 7.43281 6.33594 7.2998L2.26367 3.22754V5.07227C2.26367 5.44855 1.95865 5.75477 1.58203 5.75488C1.20532 5.75488 0.900391 5.44863 0.900391 5.07227V1.58203C0.900391 1.5371 0.905435 1.49264 0.914062 1.44922C0.918491 1.42575 0.929166 1.3946 0.930664 1.38965L0.952148 1.32129V1.32031C0.96291 1.29466 0.979683 1.26797 0.986328 1.25586V1.25488C0.989195 1.24976 0.990971 1.24535 0.996094 1.23535C1.00039 1.22696 1.00649 1.21525 1.01465 1.20312C1.03947 1.16593 1.06801 1.13123 1.09961 1.09961L1.2041 1.01465C1.22329 1.00182 1.25315 0.987348 1.25684 0.985352L1.25781 0.984375C1.26587 0.980073 1.29557 0.963447 1.32031 0.953125C1.34656 0.942156 1.37716 0.933567 1.39062 0.929688H1.3916C1.39739 0.928029 1.40179 0.926199 1.41211 0.922852C1.42101 0.919966 1.43338 0.91597 1.44727 0.913086H1.44922C1.49235 0.904811 1.53692 0.900391 1.58203 0.900391H5.07227Z", fill: "white", stroke: "white", strokeWidth: 0.2 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M10.6992 10.6995C10.9655 10.4332 11.3978 10.4332 11.6641 10.6995L15.7363 14.7717V12.927C15.7365 12.5508 16.0417 12.2454 16.418 12.2454C16.7946 12.2454 17.0994 12.5508 17.0996 12.927V16.4182C17.0996 16.4634 17.0952 16.5079 17.0869 16.551V16.552L17.0693 16.6106L17.0479 16.679C17.0368 16.7053 17.0206 16.7328 17.0137 16.7454C17.0108 16.7506 17.0088 16.7543 17.0039 16.7639C16.9996 16.7723 16.9923 16.7833 16.9844 16.7952L16.9854 16.7961C16.9356 16.8707 16.8712 16.9357 16.7959 16.9856C16.7767 16.9984 16.7471 17.0128 16.7432 17.0149L16.7422 17.0139C16.7302 17.0206 16.7043 17.0376 16.6797 17.0481H16.6787C16.6532 17.0585 16.6217 17.065 16.6094 17.0686L16.6104 17.0696C16.6065 17.0707 16.5743 17.0827 16.5508 17.0872L16.5498 17.0862C16.5066 17.0947 16.4626 17.0999 16.418 17.0999H12.9268C12.5505 17.0997 12.2451 16.7945 12.2451 16.4182C12.2451 16.042 12.5505 15.7368 12.9268 15.7366H14.7715L10.6992 11.6643C10.433 11.3981 10.433 10.9657 10.6992 10.6995Z", fill: "white", stroke: "white", strokeWidth: 0.2 }));
1942
1942
 
1943
- const SvgElementSlider = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, rx: 8, fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M7.99994 2C4.68623 2 1.99994 4.68627 1.99994 8C1.99994 11.3137 4.68623 14 7.99994 14C11.3136 14 13.9999 11.3137 13.9999 8C13.9999 4.68627 11.3136 2 7.99994 2Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.05737 4.3999C9.1964 4.3999 9.30911 4.50735 9.30911 4.6399V5.2399H9.58604C9.8067 5.2399 10.0133 5.24651 10.2027 5.27201C10.6976 5.32459 11.0802 5.47008 11.3176 5.81369C11.5406 6.13661 11.6 6.58969 11.6 7.1599V8.8399C11.6 9.41011 11.5406 9.8632 11.3176 10.1861C11.0802 10.5297 10.6976 10.6752 10.2027 10.7278C10.0133 10.7533 9.8067 10.7599 9.58604 10.7599H9.30911V11.3599C9.30911 11.4925 9.1964 11.5999 9.05737 11.5999C8.91833 11.5999 8.80562 11.4925 8.80562 11.3599V4.6399C8.80562 4.50735 8.91833 4.3999 9.05737 4.3999ZM9.30911 10.2799H9.58604C9.80085 10.2799 9.98062 10.2732 10.1355 10.2521L10.1435 10.2511C10.5736 10.2059 10.7782 10.0942 10.897 9.92213C11.0308 9.72845 11.0965 9.40537 11.0965 8.8399V7.1599C11.0965 6.59443 11.0308 6.27136 10.897 6.07768C10.7782 5.9056 10.5736 5.79391 10.1435 5.7487L10.1355 5.74773C9.98062 5.72663 9.80085 5.7199 9.58604 5.7199H9.30911V10.2799ZM6.41401 5.7199C6.1992 5.7199 6.01945 5.72663 5.86456 5.74773L5.85655 5.7487C5.42643 5.79391 5.22188 5.9056 5.10301 6.07768C4.96923 6.27136 4.90352 6.59443 4.90352 7.1599V8.8399C4.90352 9.40537 4.96923 9.72845 5.10301 9.92212C5.22188 10.0942 5.42643 10.2059 5.85655 10.2511L5.86456 10.2521C6.01945 10.2732 6.1992 10.2799 6.41401 10.2799H7.65463C7.79367 10.2799 7.90638 10.3874 7.90638 10.5199C7.90638 10.6525 7.79367 10.7599 7.65463 10.7599H6.41401C6.19335 10.7599 5.98678 10.7533 5.79737 10.7278C5.30248 10.6752 4.91986 10.5297 4.68251 10.1861C4.45944 9.8632 4.40002 9.41011 4.40002 8.8399V7.1599C4.40002 6.58969 4.45944 6.13661 4.68251 5.81368C4.91986 5.47008 5.30249 5.32459 5.79738 5.27201C5.98679 5.24651 6.19335 5.2399 6.41401 5.2399H7.63349C7.77252 5.2399 7.88523 5.34735 7.88523 5.4799C7.88523 5.61245 7.77252 5.7199 7.63349 5.7199H6.41401Z", fill: "white" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.51232 7.20682V7.71802H7.37707V8.19322H6.51232V8.74762H7.49036V9.24082H5.86658V6.71362H7.49036V7.20682H6.51232Z", fill: "white" }));
1943
+ const SvgMacWhiteIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 14 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.90345 4.81948C7.79923 4.81948 8.58506 4.4701 9.26091 3.77134C9.93677 3.07257 10.2747 2.26003 10.2747 1.33372C10.2747 1.23198 10.2667 1.08741 10.2506 0.9C10.1326 0.916063 10.0441 0.92945 9.98506 0.940159C9.15901 1.05796 8.43218 1.46222 7.80459 2.15294C7.17701 2.84368 6.86323 3.5826 6.86323 4.36972C6.86323 4.46073 6.87663 4.61067 6.90345 4.81948ZM10.1138 17.1C10.7521 17.1 11.4575 16.6636 12.2299 15.7908C13.0023 14.918 13.5923 13.8927 14 12.7147C12.482 11.9329 11.723 10.8112 11.723 9.34937C11.723 8.12856 12.3372 7.08444 13.5655 6.21701C12.7126 5.15146 11.5862 4.61868 10.1862 4.61868C9.59616 4.61868 9.0571 4.70703 8.56897 4.88373L8.26323 4.99618L7.85287 5.15681C7.58467 5.25855 7.34061 5.30943 7.12069 5.30943C6.94904 5.30943 6.72374 5.25052 6.44483 5.13272L6.13103 5.00421L5.83334 4.88373C5.39884 4.70168 4.93218 4.61065 4.43334 4.61065C3.0977 4.61065 2.02491 5.06043 1.21494 5.95999C0.404976 6.85954 0 8.04556 0 9.51804C0 11.5902 0.649037 13.5045 1.94713 15.2607C2.84828 16.4869 3.67165 17.1 4.41724 17.1C4.73372 17.1 5.04751 17.0384 5.35862 16.9153L5.75287 16.7546L6.06668 16.6422C6.50652 16.4869 6.91149 16.4093 7.2816 16.4093C7.67318 16.4093 8.12376 16.5083 8.63334 16.7064L8.88276 16.8028C9.40305 17.0009 9.81342 17.1 10.1138 17.1Z", fill: "white" }));
1944
1944
 
1945
1945
  const SvgAzureIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 36 28", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M19.6227 0L9.30269 8.97083L0.499817 24.8156H8.43836L19.6227 0ZM20.9952 2.09862L16.5914 14.5423L25.0344 25.1781L8.65282 28H35.4998L20.9952 2.09862Z", fill: "#0072C6" }));
1946
1946
 
@@ -1948,6 +1948,8 @@ const SvgOktaIcon = (props) => /* @__PURE__ */ React__namespace.createElement("s
1948
1948
 
1949
1949
  const SvgGenerateCommand = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M11.9999 9.3335H10.6666V6.66683H11.9999C13.4726 6.66683 14.6666 5.47283 14.6666 4.00016C14.6666 2.5275 13.4726 1.3335 11.9999 1.3335C10.5271 1.3335 9.33325 2.5275 9.33325 4.00016V5.3335H6.66658V4.00016C6.66658 2.5275 5.47259 1.3335 3.99992 1.3335C2.52725 1.3335 1.33325 2.5275 1.33325 4.00016C1.33325 5.47283 2.52725 6.66683 3.99992 6.66683H5.33325V9.3335H3.99992C2.52725 9.3335 1.33325 10.5275 1.33325 12.0002C1.33325 13.4728 2.52725 14.6668 3.99992 14.6668C5.47275 14.6668 6.66658 13.4728 6.66658 12.0002V10.6668H9.33325V11.9968L9.33309 12.0002C9.33309 13.4728 10.5271 14.6668 11.9998 14.6668C13.4724 14.6668 14.6664 13.4728 14.6664 12.0002C14.6664 10.5275 13.4726 9.33383 11.9999 9.3335ZM11.9999 2.66683C12.3535 2.66683 12.6927 2.80731 12.9427 3.05735C13.1928 3.3074 13.3333 3.64654 13.3333 4.00016C13.3333 4.35378 13.1928 4.69292 12.9427 4.94297C12.6927 5.19302 12.3535 5.3335 11.9999 5.3335H10.6666V4.00016C10.6666 3.64654 10.8071 3.3074 11.0571 3.05735C11.3072 2.80731 11.6463 2.66683 11.9999 2.66683ZM2.66659 4.00016C2.66659 3.64654 2.80706 3.3074 3.05711 3.05735C3.30716 2.80731 3.6463 2.66683 3.99992 2.66683C4.35354 2.66683 4.69268 2.80731 4.94273 3.05735C5.19278 3.3074 5.33325 3.64654 5.33325 4.00016V5.3335H3.99992C3.26359 5.3335 2.66659 4.73633 2.66659 4.00016ZM3.99992 13.3335C3.6463 13.3335 3.30716 13.193 3.05711 12.943C2.80706 12.6929 2.66659 12.3538 2.66659 12.0002C2.66659 11.6465 2.80706 11.3074 3.05711 11.0574C3.30716 10.8073 3.6463 10.6668 3.99992 10.6668H5.33325V12.0002C5.33325 12.3538 5.19278 12.6929 4.94273 12.943C4.69268 13.193 4.35354 13.3335 3.99992 13.3335ZM6.66658 9.3335V6.66683H9.33325V9.3335H6.66658ZM11.9999 13.3335C11.6463 13.3335 11.3072 13.193 11.0571 12.943C10.8071 12.6929 10.6666 12.3538 10.6666 12.0002V10.6668H11.9998C12.3534 10.6668 12.6925 10.8073 12.9426 11.0573C13.1926 11.3073 13.3331 11.6465 13.3332 12.0001C13.3332 12.3537 13.1927 12.6928 12.9427 12.9429C12.6927 13.193 12.3535 13.3335 11.9999 13.3335Z", fill: "#301349" }));
1950
1950
 
1951
+ const SvgWindowsBlueIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M16 15L8 14V8H16V15ZM7 8V13.875L0 13V8H7ZM7 7H0V2L7 1.125V7ZM16 7H8V1L16 0V7Z", fill: "#00BCD4" }));
1952
+
1951
1953
  const SvgCopyIconFilled = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 25 23", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_2166_3137)" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M0.303711 4.54669C0.303711 2.33755 2.09457 0.546692 4.30371 0.546692H20.0762C22.2853 0.546692 24.0762 2.33755 24.0762 4.54669V18.3067C24.0762 20.5158 22.2853 22.3067 20.0762 22.3067H4.30371C2.09458 22.3067 0.303711 20.5158 0.303711 18.3067V4.54669Z", fill: "#F7ECF8" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.7828 5.69026C10.43 6.04306 10.1876 6.67337 10.1876 7.86153V7.88218H11.6534C12.9943 7.88218 14.1343 8.14561 14.9195 8.93087C15.7048 9.71613 15.9682 10.8561 15.9682 12.197V13.6628H15.9889C17.177 13.6628 17.8073 13.4204 18.1601 13.0676C18.5129 12.7148 18.7553 12.0845 18.7553 10.8964V7.86153C18.7553 6.67337 18.5129 6.04306 18.1601 5.69026C17.8073 5.33745 17.177 5.09508 15.9889 5.09508H12.954C11.7659 5.09508 11.1356 5.33745 10.7828 5.69026ZM15.9682 15.2112H15.9889C17.3297 15.2112 18.4698 14.9478 19.255 14.1625C20.0403 13.3773 20.3037 12.2372 20.3037 10.8964V7.86153C20.3037 6.52066 20.0403 5.38064 19.255 4.59538C18.4698 3.81013 17.3297 3.54669 15.9889 3.54669H12.954C11.6132 3.54669 10.4731 3.81013 9.68789 4.59538C8.90263 5.38064 8.63919 6.52066 8.63919 7.86153V7.88218H8.61855C7.27768 7.88218 6.13766 8.14561 5.3524 8.93087C4.56714 9.71613 4.30371 10.8561 4.30371 12.197V15.2319C4.30371 16.5727 4.56714 17.7127 5.3524 18.498C6.13766 19.2833 7.27768 19.5467 8.61855 19.5467H11.6534C12.9943 19.5467 14.1343 19.2833 14.9195 18.498C15.7048 17.7127 15.9682 16.5727 15.9682 15.2319V15.2112ZM14.4198 12.197C14.4198 11.0089 14.1775 10.3785 13.8247 10.0257C13.4719 9.67294 12.8415 9.43056 11.6534 9.43056H8.61855C7.43039 9.43056 6.80008 9.67294 6.44728 10.0257C6.09447 10.3785 5.8521 11.0089 5.8521 12.197V15.2319C5.8521 16.42 6.09447 17.0503 6.44728 17.4031C6.80008 17.7559 7.43039 17.9983 8.61855 17.9983H11.6534C12.8415 17.9983 13.4719 17.7559 13.8247 17.4031C14.1775 17.0503 14.4198 16.42 14.4198 15.2319V12.197Z", fill: "#71347B" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_2166_3137" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M0.303711 4.54669C0.303711 2.33755 2.09457 0.546692 4.30371 0.546692H20.0762C22.2853 0.546692 24.0762 2.33755 24.0762 4.54669V18.3067C24.0762 20.5158 22.2853 22.3067 20.0762 22.3067H4.30371C2.09458 22.3067 0.303711 20.5158 0.303711 18.3067V4.54669Z", fill: "white" }))));
1952
1954
 
1953
1955
  const SvgGenerateCommandLogo = (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: "M0 7C0 3.13401 3.13401 0 7 0H17C20.866 0 24 3.13401 24 7V17C24 20.866 20.866 24 17 24H7C3.13401 24 0 20.866 0 17V7Z", fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.78395 5.78395C6.71109 4.8568 8.10069 4.5 9.9 4.5H14.1C15.8993 4.5 17.2889 4.8568 18.2161 5.78395C19.1432 6.71109 19.5 8.10069 19.5 9.9V14.1C19.5 15.8993 19.1432 17.2889 18.2161 18.2161C17.2889 19.1432 15.8993 19.5 14.1 19.5H9.9C8.10069 19.5 6.71109 19.1432 5.78395 18.2161C4.8568 17.2889 4.5 15.8993 4.5 14.1V9.9C4.5 8.10069 4.8568 6.71109 5.78395 5.78395ZM6.49105 6.49105C5.8432 7.13891 5.5 8.19931 5.5 9.9V14.1C5.5 15.8007 5.8432 16.8611 6.49105 17.5089C7.13891 18.1568 8.19931 18.5 9.9 18.5H14.1C15.8007 18.5 16.8611 18.1568 17.5089 17.5089C18.1568 16.8611 18.5 15.8007 18.5 14.1V9.9C18.5 8.19931 18.1568 7.13891 17.5089 6.49105C16.8611 5.8432 15.8007 5.5 14.1 5.5H9.9C8.19931 5.5 7.13891 5.8432 6.49105 6.49105Z", fill: "#71347B" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M11.6367 12.0586V14.2734C11.5534 14.3802 11.4219 14.4961 11.2422 14.6211C11.0651 14.7461 10.8333 14.8542 10.5469 14.9453C10.2604 15.0339 9.90885 15.0781 9.49219 15.0781C9.13021 15.0781 8.79948 15.0182 8.5 14.8984C8.20052 14.776 7.94271 14.5977 7.72656 14.3633C7.51042 14.1289 7.34375 13.8424 7.22656 13.5039C7.10938 13.1654 7.05078 12.7786 7.05078 12.3438V11.9688C7.05078 11.5339 7.10547 11.1471 7.21484 10.8086C7.32682 10.4701 7.48568 10.1836 7.69141 9.94922C7.89974 9.71484 8.14844 9.53646 8.4375 9.41406C8.72917 9.29167 9.05469 9.23047 9.41406 9.23047C9.89583 9.23047 10.2917 9.3099 10.6016 9.46875C10.9141 9.6276 11.1536 9.84635 11.3203 10.125C11.487 10.401 11.5911 10.7188 11.6328 11.0781H10.5859C10.5573 10.8802 10.5 10.707 10.4141 10.5586C10.3281 10.4076 10.2057 10.2904 10.0469 10.207C9.89062 10.1211 9.6875 10.0781 9.4375 10.0781C9.22656 10.0781 9.04036 10.1198 8.87891 10.2031C8.71745 10.2865 8.58203 10.4076 8.47266 10.5664C8.36328 10.7253 8.27995 10.9219 8.22266 11.1562C8.16797 11.3906 8.14062 11.6589 8.14062 11.9609V12.3438C8.14062 12.6484 8.17188 12.9193 8.23438 13.1562C8.29688 13.3906 8.38672 13.5885 8.50391 13.75C8.6237 13.9089 8.77083 14.0299 8.94531 14.1133C9.1224 14.194 9.32292 14.2344 9.54688 14.2344C9.75 14.2344 9.91797 14.2174 10.0508 14.1836C10.1862 14.1471 10.2943 14.1042 10.375 14.0547C10.4557 14.0052 10.5182 13.957 10.5625 13.9102V12.8438H9.43359V12.0586H11.6367ZM15.9805 13.1289H17.0547C17.026 13.5091 16.9206 13.8464 16.7383 14.1406C16.556 14.4323 16.3021 14.6615 15.9766 14.8281C15.651 14.9948 15.2565 15.0781 14.793 15.0781C14.4362 15.0781 14.1146 15.0156 13.8281 14.8906C13.5443 14.763 13.3008 14.582 13.0977 14.3477C12.8971 14.1107 12.7435 13.8268 12.6367 13.4961C12.5299 13.1628 12.4766 12.7891 12.4766 12.375V11.9414C12.4766 11.5273 12.5312 11.1536 12.6406 10.8203C12.75 10.487 12.9062 10.2031 13.1094 9.96875C13.3151 9.73177 13.5612 9.54948 13.8477 9.42188C14.1367 9.29427 14.4596 9.23047 14.8164 9.23047C15.2799 9.23047 15.6719 9.31641 15.9922 9.48828C16.3125 9.65755 16.5612 9.89062 16.7383 10.1875C16.9154 10.4844 17.0221 10.8255 17.0586 11.2109H15.9844C15.9635 10.9714 15.9115 10.7682 15.8281 10.6016C15.7474 10.4349 15.625 10.3086 15.4609 10.2227C15.2995 10.1341 15.0846 10.0898 14.8164 10.0898C14.6081 10.0898 14.4245 10.1289 14.2656 10.207C14.1094 10.2852 13.9792 10.4023 13.875 10.5586C13.7708 10.7122 13.6927 10.9049 13.6406 11.1367C13.5885 11.3659 13.5625 11.6315 13.5625 11.9336V12.375C13.5625 12.6641 13.5859 12.9232 13.6328 13.1523C13.6797 13.3815 13.7526 13.5755 13.8516 13.7344C13.9505 13.8932 14.0781 14.0143 14.2344 14.0977C14.3906 14.181 14.5768 14.2227 14.793 14.2227C15.056 14.2227 15.2695 14.181 15.4336 14.0977C15.6003 14.0143 15.7266 13.8919 15.8125 13.7305C15.901 13.569 15.957 13.3685 15.9805 13.1289Z", fill: "#71347B" }));
@@ -1978,6 +1980,14 @@ const SvgRealmeIcon = (props) => /* @__PURE__ */ React__namespace.createElement(
1978
1980
 
1979
1981
  const SvgVivoIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 5", fill: "none", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", ...props }, /* @__PURE__ */ React__namespace.createElement("rect", { y: 0.784546, width: 16, height: 4, fill: "url(#pattern0_6138_26160)" }), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("pattern", { id: "pattern0_6138_26160", patternContentUnits: "objectBoundingBox", width: 1, height: 1 }, /* @__PURE__ */ React__namespace.createElement("use", { xlinkHref: "#image0_6138_26160", transform: "matrix(0.0078125 0 0 0.03125 0 -0.03125)" })), /* @__PURE__ */ React__namespace.createElement("image", { id: "image0_6138_26160", width: 128, height: 34, preserveAspectRatio: "none", xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAiCAMAAACgNCEcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACQ1BMVEUAAABJbf9BX/9BX/9AYP9VVf9BX/9BX/9AYP9VVf9AX/9BX/9BX/88Wv9BXv9AX/9AXP9BX/9BX/9AQP8+YP9CX/9EZv9BXf9AVf9EYv9AYP9NZv9AYP8+Xf8zZv9CY/8+Yf89Yf+AgP9AYP9BX/9AX/9BX/9BX/9BX/9BX/9BX/9AX/9AX/9AYP8AAP9BX/9CX/9CX/9CX/9DZP9BX/9BX/9AXv9BX/9BX/9BYP9BX/9CX/9AXv9BYP9BYP9BX/9CYP9CYP89XP9AX/9DXv9BXv9BX/9AWf9BX/9BXv9JW/9BX/9BX/9DXv9BX/9BXv9BXv9CXv9BYv9CYP9BYP9BX/9BX/9GXf9BX/9BX/9BX/9CX/9BX/9DXv9BX/87Yv9BX/9BXv9CXv9BX/9BX/9BX/9DYP9BYP9AX/9BYP9BX/9BX/9AXv9DYf9BX/9BX/9CX/9BXv9AYP9AX/9CYf9BX/9AX/9CYP85Vf9BX/9AXf9CX/9AX/8+Xf9BX/9BXv9AXv9AXv9BXv9BX/9EXv9BX/9BX/9BX/9BX/9BX/9AYP9AYP9BX/9BXv9CYP9BXv9BXf9BXf9BX/9BX/9BXv9DXv9BX/9CXv9AX/9CYP9CX/9BX/9BX/9BYP9AW/9BX/9BYP9AXv9CX/9BX/9HY/9AX/9BYP9BX/9AX/9CX/9BX/9AYP9BX/9CX/9AXv9BX/9BX/9BX/9BX/9AXv9CX/9AXv9BXv9CYP9CYf9AXv9AXv9BYP9BX/9CX/9CYf9BX/////8RtggjAAAAv3RSTlMAB6TsWAax/WADskPjEeCTJOSqBCWjDzcMIiAKECEFHx0VAkCJut7u/PvbtoM4AeeEs9oX+vZczIZi3NJUmEp+ZXgZxial/hS/rQ7h5S75vXobJ02V18cLnsv0dHET3w28mklmw/VFWsqwmaFEKviU1oIYwkKcc3AJuyx8jyn3xUyHtfEebvO3O91IKMlybaJHP8RLkjmWbGtVRnbBoBwryGeb6xJjwOqXPl4I5lk88NPveVcjb2qIMl93dYFhOqBvFloAAAABYktHRMATYd/4AAAAB3RJTUUH6QccCRo4wo6tFwAAA69JREFUWMPdmOk/VFEYx48lExlLKGNvMEbLlGwJIVshkmrKEiqTbFkqLdIiFUkoFSVaaNG+ab//Wvc+z70zd+49Z3g3n0/Pq/M8z3nO+Tnf+9xzByFLNxdXN3fiRFvmwXGa5c7b39OL403jvDNYwYF5O02A1gcE+DqPgZ8/v//KACc+hYE+XJCnM9uArFpN/kML1ul0IaHsfBifD4/AA9DpInGk5YNRLuyiNXw+Ui/1b3RMrCHOyFktPm7tuvUbTGJ6oxAybmKsFOABJQnQh/H8aLPwECQmCcHkFFa/pELRFnBMaVs5qqVn4OxMdLfR18rCbLYwzoHhdmHRXBgm59GL8iFbEC2MC3dwTNsZLMwoKganREtbalcpJMvguHbDuFwY7kmGcS61Jypw+b2w/z7Oge03w8kWgHOABuAgpCp1RCGAVOEK1ZSiGoDKHarlx/o6zqHlQ0U9OoeZAI4QlQD9UXAaApkALML4mPTYNR5vsllzWYmkoMUhhNY2GQB7AWwIIoAT8Py34/YdnYpJeks6TusC9yRCOOUQgEIAOY0rdCu71t8GgLTAOKmFAurMWaw/5wDCeTsASgEMCK4yAKQHnCxqq9TEQTKHyCD4h8lnXOi1A6AUIEG4qJcXXZIBIATeBw1F9Ga9DDOvEDmEejmARgj1XSUMARKEfhYAYromONcZr6sbMHVA9BBCwSBRbIevILoAfZcKQhBENNHiW15+GirrxGrRU0G4iQDqTGwBJE8JQQQgfbNowYthXULYIZIrQsiULpAhJQCKAHILNxyWbmtvcA3Boh8Ba95mCMiDyW5WvwkhjKCXowJAEyBB8EO3GQGMWvNwrO0MASkwe8jqmwcg4FPLAEATQHSVEBsDCHdQ9F1bOgEC43QBdcqXjwjhnvCXjakBUAWQatz0PgUAbw/wj6R+OExgZYYsJEKYJOQhBQBdgP6RFcKUEgAhj5Ow12vU+7vj2fXVymJF+N1dPD2CAGJNiwsggQ0QnYl6ogLA21MMPuuZbH2utVr5+OyceBnZfwiJEERTAGAIIN1296scAG8hlY6v4xeKs3kpT86SJQkQIaAZXymyrwsc7R8/qJg+n6r8VlhcAOl8YyvKURX1a9j7t71VTQ83SMm50KUKIO/eS0VTJvXTZjGw9v9A+5WR6AWKe30prZMNl7tZnZiegQU/fjJR/6uQ1mVU714a+5nxI+9LStXXiUJaZv7bwkKHhVr0/cfP4Qoz+7fFaNqvjgWr/a7689fafv8AZtmTKdjpF7oAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjUtMDctMjhUMDk6MjY6NTUrMDA6MDBiO/dcAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTA3LTI4VDA5OjI2OjU1KzAwOjAwE2ZP4AAAAABJRU5ErkJggg==" })));
1980
1982
 
1983
+ const SvgMinimizeTree = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M0.257713 8.62399C-0.0859044 8.28038 -0.0859044 7.71952 0.257713 7.37591L6.98841 0.645442C7.33256 0.301292 7.89238 0.301292 8.23649 0.645442L8.61298 1.02193C8.95743 1.36638 8.95751 1.9259 8.61302 2.27043L3.5072 7.37575C3.16267 7.72021 3.16267 8.27985 3.5072 8.6243L8.61298 13.7297C8.95751 14.0741 8.95747 14.6336 8.61294 14.9781L8.23646 15.3546C7.89284 15.6982 7.33198 15.6982 6.98837 15.3546L0.257713 8.62399ZM14.1172 15.3547C14.4612 15.6987 15.0216 15.6986 15.3655 15.3547L15.742 14.9782C16.0858 14.6344 16.0859 14.0735 15.742 13.7297L10.6365 8.6243C10.292 8.27981 10.292 7.72025 10.6365 7.37575L15.742 2.2704C16.086 1.92647 16.086 1.36581 15.742 1.02189L15.3656 0.645404C15.0214 0.301292 14.4614 0.301254 14.1173 0.645404L7.98445 6.77842C6.26412 5.0598 6.69928 5.49564 7.9832 6.77968L7.38701 7.37591C7.04316 7.71975 7.0432 8.28019 7.38701 8.62403L14.1172 15.3547Z", fill: "#71347B" }));
1984
+
1985
+ const SvgRecord = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_20310_13972)" }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8 0C3.5875 0 0 3.5875 0 8C0 12.4125 3.5875 16 8 16C12.4125 16 16 12.4125 16 8C16 3.5875 12.4125 0 8 0ZM5.03125 6.20312H3.78125C3.64375 6.20312 3.53125 6.31563 3.53125 6.45312V8.22812V9.54375C3.53125 9.68125 3.64375 9.79375 3.78125 9.79375C3.91875 9.79375 4.03125 9.68125 4.03125 9.54375V8.47812H4.425L5.34375 9.65C5.39375 9.7125 5.46563 9.74687 5.54063 9.74687C5.59375 9.74687 5.65 9.72813 5.69375 9.69375C5.80312 9.60938 5.82188 9.45 5.7375 9.34375L5.05937 8.48125C5.675 8.46562 6.16875 7.9625 6.16875 7.34375C6.17188 6.71562 5.65938 6.20312 5.03125 6.20312ZM7.30625 6.70312V7.75H9.09375C9.23125 7.75 9.34375 7.8625 9.34375 8C9.34375 8.1375 9.23125 8.25 9.09375 8.25H7.30625V9.29688H9.09375C9.23125 9.29688 9.34375 9.40938 9.34375 9.54688C9.34375 9.68437 9.23125 9.79688 9.09375 9.79688H7.05312C6.91563 9.79688 6.80312 9.68437 6.80312 9.54688V6.45312C6.80312 6.31563 6.91563 6.20312 7.05312 6.20312H9.09375C9.23125 6.20312 9.34375 6.31563 9.34375 6.45312C9.34375 6.59062 9.23125 6.70312 9.09375 6.70312H7.30625ZM10.4312 7.325V8.67188C10.4312 9.01562 10.7094 9.29375 11.0531 9.29375H11.35C11.6875 9.29375 11.9656 9.01875 11.9719 8.68437C11.975 8.54688 12.0875 8.43437 12.2281 8.4375C12.3656 8.44063 12.475 8.55313 12.475 8.69375C12.4625 9.3 11.9594 9.79375 11.3531 9.79375H11.0562C10.4375 9.79375 9.93437 9.29062 9.93437 8.67188V7.325C9.93437 6.70625 10.4375 6.20312 11.0562 6.20312H11.3531C11.9594 6.20312 12.4625 6.69688 12.475 7.30312C12.4781 7.44062 12.3687 7.55625 12.2281 7.55937C12.0875 7.5625 11.975 7.45312 11.9719 7.3125C11.9656 6.975 11.6875 6.70312 11.35 6.70312H11.0531C10.7094 6.70312 10.4312 6.98438 10.4312 7.325ZM5.03125 7.98125H4.03125V6.70625H5.03125C5.38438 6.70625 5.66875 6.99062 5.66875 7.34375C5.66875 7.69375 5.38438 7.98125 5.03125 7.98125Z", fill: "currentColor" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_20310_13972" }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, fill: "white" }))));
1986
+
1987
+ const SvgAddElement = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, rx: 8, fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M8 2C4.6863 2 2 4.68627 2 8C2 11.3137 4.6863 14 8 14C11.3137 14 14 11.3137 14 8C14 4.68627 11.3137 2 8 2ZM10.0537 11.15H5.94644V4.85002H9.97758V6.35024H7.67444V7.27779H9.74365V8.70142H7.67444V9.64463H10.0538L10.0537 11.15Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("mask", { id: "path-3-outside-1_20264_6770", maskUnits: "userSpaceOnUse", x: 2.80005, y: 5.2002, width: 6, height: 6, fill: "black" }, /* @__PURE__ */ React__namespace.createElement("rect", { fill: "white", x: 2.80005, y: 5.2002, width: 6, height: 6 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M5.89966 7.2002C5.89966 7.61441 6.23544 7.9502 6.64966 7.9502H7.04956C7.24291 7.9502 7.39966 8.10694 7.39966 8.30029C7.39966 8.49365 7.24291 8.65039 7.04956 8.65039H6.64966C6.23544 8.65039 5.89966 8.98618 5.89966 9.40039V10.1006C5.89966 10.2662 5.76543 10.4004 5.59985 10.4004C5.43428 10.4004 5.30005 10.2662 5.30005 10.1006V9.40039C5.30005 8.98618 4.96426 8.65039 4.55005 8.65039H4.15015C3.95679 8.65039 3.80005 8.49365 3.80005 8.30029C3.80005 8.10694 3.95679 7.9502 4.15015 7.9502H4.55005C4.96426 7.9502 5.30005 7.61441 5.30005 7.2002V6.5C5.30005 6.33442 5.43428 6.2002 5.59985 6.2002C5.76543 6.2002 5.89966 6.33442 5.89966 6.5V7.2002Z" })), /* @__PURE__ */ React__namespace.createElement("path", { d: "M5.89966 7.2002C5.89966 7.61441 6.23544 7.9502 6.64966 7.9502H7.04956C7.24291 7.9502 7.39966 8.10694 7.39966 8.30029C7.39966 8.49365 7.24291 8.65039 7.04956 8.65039H6.64966C6.23544 8.65039 5.89966 8.98618 5.89966 9.40039V10.1006C5.89966 10.2662 5.76543 10.4004 5.59985 10.4004C5.43428 10.4004 5.30005 10.2662 5.30005 10.1006V9.40039C5.30005 8.98618 4.96426 8.65039 4.55005 8.65039H4.15015C3.95679 8.65039 3.80005 8.49365 3.80005 8.30029C3.80005 8.10694 3.95679 7.9502 4.15015 7.9502H4.55005C4.96426 7.9502 5.30005 7.61441 5.30005 7.2002V6.5C5.30005 6.33442 5.43428 6.2002 5.59985 6.2002C5.76543 6.2002 5.89966 6.33442 5.89966 6.5V7.2002Z", fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.64966 7.9502V8.4502H7.04956V7.9502V7.4502H6.64966V7.9502ZM7.04956 8.65039V8.15039H6.64966V8.65039V9.15039H7.04956V8.65039ZM5.89966 9.40039H5.39966V10.1006H5.89966H6.39966V9.40039H5.89966ZM5.30005 10.1006H5.80005V9.40039H5.30005H4.80005V10.1006H5.30005ZM4.55005 8.65039V8.15039H4.15015V8.65039V9.15039H4.55005V8.65039ZM4.15015 7.9502V8.4502H4.55005V7.9502V7.4502H4.15015V7.9502ZM5.30005 7.2002H5.80005V6.5H5.30005H4.80005V7.2002H5.30005ZM5.89966 6.5H5.39966V7.2002H5.89966H6.39966V6.5H5.89966ZM5.59985 6.2002V6.7002C5.48929 6.7002 5.39966 6.61056 5.39966 6.5H5.89966H6.39966C6.39966 6.05828 6.04157 5.7002 5.59985 5.7002V6.2002ZM5.30005 6.5H5.80005C5.80005 6.61056 5.71042 6.7002 5.59985 6.7002V6.2002V5.7002C5.15813 5.7002 4.80005 6.05828 4.80005 6.5H5.30005ZM4.55005 7.9502V8.4502C5.2404 8.4502 5.80005 7.89055 5.80005 7.2002H5.30005H4.80005C4.80005 7.33827 4.68812 7.4502 4.55005 7.4502V7.9502ZM3.80005 8.30029H4.30005C4.30005 8.38308 4.23294 8.4502 4.15015 8.4502V7.9502V7.4502C3.68065 7.4502 3.30005 7.8308 3.30005 8.30029H3.80005ZM4.15015 8.65039V8.15039C4.23294 8.15039 4.30005 8.2175 4.30005 8.30029H3.80005H3.30005C3.30005 8.76979 3.68065 9.15039 4.15015 9.15039V8.65039ZM5.30005 9.40039H5.80005C5.80005 8.71003 5.2404 8.15039 4.55005 8.15039V8.65039V9.15039C4.68812 9.15039 4.80005 9.26232 4.80005 9.40039H5.30005ZM5.59985 10.4004V9.90039C5.71042 9.90039 5.80005 9.99002 5.80005 10.1006H5.30005H4.80005C4.80005 10.5423 5.15813 10.9004 5.59985 10.9004V10.4004ZM5.89966 10.1006H5.39966C5.39966 9.99002 5.48929 9.90039 5.59985 9.90039V10.4004V10.9004C6.04157 10.9004 6.39966 10.5423 6.39966 10.1006H5.89966ZM6.64966 8.65039V8.15039C5.9593 8.15039 5.39966 8.71003 5.39966 9.40039H5.89966H6.39966C6.39966 9.26232 6.51159 9.15039 6.64966 9.15039V8.65039ZM7.39966 8.30029H6.89966C6.89966 8.2175 6.96677 8.15039 7.04956 8.15039V8.65039V9.15039C7.51906 9.15039 7.89966 8.76979 7.89966 8.30029H7.39966ZM7.04956 7.9502V8.4502C6.96677 8.4502 6.89966 8.38308 6.89966 8.30029H7.39966H7.89966C7.89966 7.8308 7.51906 7.4502 7.04956 7.4502V7.9502ZM6.64966 7.9502V7.4502C6.51159 7.4502 6.39966 7.33827 6.39966 7.2002H5.89966H5.39966C5.39966 7.89055 5.9593 8.4502 6.64966 8.4502V7.9502Z", fill: "currentColor", mask: "url(#path-3-outside-1_20264_6770)" }));
1988
+
1989
+ const SvgElementSlider = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 16, height: 16, rx: 8, fill: "#F7EBFF" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M7.99994 2C4.68623 2 1.99994 4.68627 1.99994 8C1.99994 11.3137 4.68623 14 7.99994 14C11.3136 14 13.9999 11.3137 13.9999 8C13.9999 4.68627 11.3136 2 7.99994 2Z", fill: "currentColor" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.05737 4.3999C9.1964 4.3999 9.30911 4.50735 9.30911 4.6399V5.2399H9.58604C9.8067 5.2399 10.0133 5.24651 10.2027 5.27201C10.6976 5.32459 11.0802 5.47008 11.3176 5.81369C11.5406 6.13661 11.6 6.58969 11.6 7.1599V8.8399C11.6 9.41011 11.5406 9.8632 11.3176 10.1861C11.0802 10.5297 10.6976 10.6752 10.2027 10.7278C10.0133 10.7533 9.8067 10.7599 9.58604 10.7599H9.30911V11.3599C9.30911 11.4925 9.1964 11.5999 9.05737 11.5999C8.91833 11.5999 8.80562 11.4925 8.80562 11.3599V4.6399C8.80562 4.50735 8.91833 4.3999 9.05737 4.3999ZM9.30911 10.2799H9.58604C9.80085 10.2799 9.98062 10.2732 10.1355 10.2521L10.1435 10.2511C10.5736 10.2059 10.7782 10.0942 10.897 9.92213C11.0308 9.72845 11.0965 9.40537 11.0965 8.8399V7.1599C11.0965 6.59443 11.0308 6.27136 10.897 6.07768C10.7782 5.9056 10.5736 5.79391 10.1435 5.7487L10.1355 5.74773C9.98062 5.72663 9.80085 5.7199 9.58604 5.7199H9.30911V10.2799ZM6.41401 5.7199C6.1992 5.7199 6.01945 5.72663 5.86456 5.74773L5.85655 5.7487C5.42643 5.79391 5.22188 5.9056 5.10301 6.07768C4.96923 6.27136 4.90352 6.59443 4.90352 7.1599V8.8399C4.90352 9.40537 4.96923 9.72845 5.10301 9.92212C5.22188 10.0942 5.42643 10.2059 5.85655 10.2511L5.86456 10.2521C6.01945 10.2732 6.1992 10.2799 6.41401 10.2799H7.65463C7.79367 10.2799 7.90638 10.3874 7.90638 10.5199C7.90638 10.6525 7.79367 10.7599 7.65463 10.7599H6.41401C6.19335 10.7599 5.98678 10.7533 5.79737 10.7278C5.30248 10.6752 4.91986 10.5297 4.68251 10.1861C4.45944 9.8632 4.40002 9.41011 4.40002 8.8399V7.1599C4.40002 6.58969 4.45944 6.13661 4.68251 5.81368C4.91986 5.47008 5.30249 5.32459 5.79738 5.27201C5.98679 5.24651 6.19335 5.2399 6.41401 5.2399H7.63349C7.77252 5.2399 7.88523 5.34735 7.88523 5.4799C7.88523 5.61245 7.77252 5.7199 7.63349 5.7199H6.41401Z", fill: "white" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.51232 7.20682V7.71802H7.37707V8.19322H6.51232V8.74762H7.49036V9.24082H5.86658V6.71362H7.49036V7.20682H6.51232Z", fill: "white" }));
1990
+
1981
1991
  let Components = {};
1982
1992
  Components['success'] = SvgSuccess;
1983
1993
  Components['setting_icon'] = SvgSettingIcon;
@@ -2445,9 +2455,9 @@ Components['huawei_icon'] = SvgHuaweiIcon;
2445
2455
  Components['amazon_icon'] = SvgAmazonIcon;
2446
2456
  Components['scripts'] = SvgScripts;
2447
2457
  Components['dialog_info'] = SvgDialogInfo;
2448
- Components['record'] = SvgRecord;
2449
- Components['add_element'] = SvgAddElement;
2450
- Components['element_slider'] = SvgElementSlider;
2458
+ Components['timer_icon'] = SvgTimerIcon;
2459
+ Components['maximize_livetesting'] = SvgMaximizeLivetesting;
2460
+ Components['mac_white_icon'] = SvgMacWhiteIcon;
2451
2461
  Components['ADB_Shell'] = SvgAdbShell; // Newly Added icon
2452
2462
  Components['UI_Inspector'] = SvgUiInspector; // Newly Added icon
2453
2463
  Components['azure_icon'] = SvgAzureIcon; // Newly Added icon
@@ -2468,6 +2478,11 @@ Components['motorola_icon'] = SvgMotorolaIcon; // Newly Added icon
2468
2478
  Components['oppo_icon'] = SvgOppoIcon; // Newly Added icon
2469
2479
  Components['realme_icon'] = SvgRealmeIcon; // Newly Added icon
2470
2480
  Components['vivo_icon'] = SvgVivoIcon; // Newly Added icon
2481
+ Components['windows_blue_icon'] = SvgWindowsBlueIcon;
2482
+ Components['minimize_tree'] = SvgMinimizeTree;
2483
+ Components['record'] = SvgRecord;
2484
+ Components['add_element'] = SvgAddElement;
2485
+ Components['element_slider'] = SvgElementSlider;
2471
2486
 
2472
2487
  const Icon = /*#__PURE__*/React.forwardRef(({
2473
2488
  name,
@@ -3063,13 +3078,15 @@ const Drawer = ({
3063
3078
  }), _isExpanded && jsxRuntime.jsx(Tooltip, {
3064
3079
  title: isExpanded ? 'Minimize' : 'Maximize',
3065
3080
  placement: "bottom",
3066
- children: jsxRuntime.jsx("button", {
3081
+ children: jsxRuntime.jsx("div", {
3067
3082
  className: "ff-expand-collapse-button",
3068
3083
  onClick: toggleExpand,
3069
3084
  children: jsxRuntime.jsx(Icon, {
3070
- name: isExpanded ? 'minimize_script' : 'maximize_icon',
3085
+ name: isExpanded ? 'maximize_tree' : 'minimize_tree',
3071
3086
  height: 16,
3072
- width: 16
3087
+ width: 16,
3088
+ hoverEffect: true,
3089
+ cursorType: "pointer"
3073
3090
  })
3074
3091
  })
3075
3092
  }), isBackButtonVisible && (backButtonIcon || jsxRuntime.jsx(Tooltip, {
@@ -3094,7 +3111,8 @@ const Drawer = ({
3094
3111
  onClick: onCloseIconClick || onClose,
3095
3112
  height: 16,
3096
3113
  width: 16,
3097
- color: "var(--tabs-label-active-color)"
3114
+ color: "var(--tabs-label-active-color)",
3115
+ cursorType: "pointer"
3098
3116
  })
3099
3117
  })
3100
3118
  })]
@@ -12788,6 +12806,9 @@ var DNDSortable = /*#__PURE__*/Object.freeze({
12788
12806
  verticalListSortingStrategy: verticalListSortingStrategy
12789
12807
  });
12790
12808
 
12809
+ // Add these constants near the top of the file
12810
+ const DEFAULT_ROW_HEIGHT = 50; // Estimated row height
12811
+ const BUFFER_SIZE = 5; // Number of extra rows to render above/below visible area
12791
12812
  const getColumnLeftPosition = (index, columns, freezeColumns) => {
12792
12813
  if (index === 0) return '0px';
12793
12814
  // Calculate cumulative width of all previous columns including padding
@@ -12824,7 +12845,9 @@ const SortableRow = ({
12824
12845
  isRowCheckBoxDisable,
12825
12846
  isRowDisabled = true,
12826
12847
  freezeColumns,
12827
- displayCard
12848
+ displayCard,
12849
+ updateRowHeight,
12850
+ index
12828
12851
  }) => {
12829
12852
  const {
12830
12853
  attributes,
@@ -12836,6 +12859,13 @@ const SortableRow = ({
12836
12859
  id: row?._id || row?.id,
12837
12860
  disabled: row.disabled || !!editMode
12838
12861
  });
12862
+ const rowRef = React.useRef(null);
12863
+ React.useEffect(() => {
12864
+ if (rowRef.current && updateRowHeight) {
12865
+ const height = rowRef.current.getBoundingClientRect().height;
12866
+ updateRowHeight(index, height);
12867
+ }
12868
+ }, [index, updateRowHeight]);
12839
12869
  const style = {
12840
12870
  transform: CSS.Transform.toString(transform),
12841
12871
  transition
@@ -12856,7 +12886,7 @@ const SortableRow = ({
12856
12886
  style: {
12857
12887
  position: isFrozen ? 'sticky' : 'static',
12858
12888
  left: isFrozen ? getColumnLeftPosition(index, columns, freezeColumns) : 'auto',
12859
- zIndex: isFrozen ? 120 : 'auto',
12889
+ zIndex: isFrozen ? 99 : 'auto',
12860
12890
  backgroundColor: isFrozen ? 'var(--input-label-bg-color)' : 'transparent',
12861
12891
  width: column.width ? `${column.width}px` : 'auto',
12862
12892
  padding: '7px 8px',
@@ -12944,6 +12974,104 @@ const Table$1 = ({
12944
12974
  freezeColumns
12945
12975
  }) => {
12946
12976
  const observerRef = React.useRef(null);
12977
+ // Add virtualization state
12978
+ const containerRef = React.useRef(null);
12979
+ const setContainerRef = node => {
12980
+ // 1. Set internal ref
12981
+ containerRef.current = node;
12982
+ // 2. Handle forwarded ref
12983
+ if (tableRef) {
12984
+ if (typeof tableRef === 'function') {
12985
+ // Handle callback refs
12986
+ tableRef(node);
12987
+ } else if (typeof tableRef === 'object' && 'current' in tableRef) {
12988
+ // Handle mutable ref objects only
12989
+ tableRef.current = node;
12990
+ }
12991
+ // Read-only RefObjects are safely ignored
12992
+ }
12993
+ };
12994
+ const [scrollTop, setScrollTop] = React.useState(0);
12995
+ const [containerHeight, setContainerHeight] = React.useState(0);
12996
+ const [rowHeights, setRowHeights] = React.useState([]);
12997
+ // Initialize container height and row heights
12998
+ React.useEffect(() => {
12999
+ if (containerRef.current) {
13000
+ setContainerHeight(containerRef.current.clientHeight);
13001
+ }
13002
+ // Initialize with estimated heights
13003
+ setRowHeights(new Array(data.length).fill(DEFAULT_ROW_HEIGHT));
13004
+ }, [data]);
13005
+ // Handle scroll events
13006
+ const handleScroll = React.useCallback(e => {
13007
+ setScrollTop(e.currentTarget.scrollTop);
13008
+ }, []);
13009
+ // Update row height callback
13010
+ const updateRowHeight = React.useCallback((index, height) => {
13011
+ setRowHeights(prev => {
13012
+ const newHeights = [...prev];
13013
+ if (index < newHeights.length) {
13014
+ const currentHeight = newHeights[index] ?? DEFAULT_ROW_HEIGHT; // Fallback
13015
+ if (Math.abs(currentHeight - height) > 1) {
13016
+ newHeights[index] = height;
13017
+ return newHeights;
13018
+ }
13019
+ }
13020
+ return prev;
13021
+ });
13022
+ }, []);
13023
+ // Calculate visible rows
13024
+ const calculateVisibleRows = () => {
13025
+ let startIndex = 0;
13026
+ let endIndex = data.length - 1;
13027
+ let paddingTop = 0;
13028
+ let paddingBottom = 0;
13029
+ if (rowHeights.length === data.length && containerHeight > 0) {
13030
+ // Calculate based on actual row heights
13031
+ let cumulativeHeight = 0;
13032
+ // Find start index
13033
+ for (let i = 0; i < data.length; i++) {
13034
+ if (cumulativeHeight <= scrollTop) {
13035
+ startIndex = i;
13036
+ }
13037
+ cumulativeHeight += rowHeights[i] || DEFAULT_ROW_HEIGHT;
13038
+ }
13039
+ // Find end index
13040
+ cumulativeHeight = 0;
13041
+ for (let i = 0; i < data.length; i++) {
13042
+ cumulativeHeight += rowHeights[i] || DEFAULT_ROW_HEIGHT;
13043
+ if (cumulativeHeight >= scrollTop + containerHeight && endIndex === data.length - 1) {
13044
+ endIndex = i;
13045
+ break;
13046
+ }
13047
+ }
13048
+ // Apply buffer
13049
+ startIndex = Math.max(0, startIndex - BUFFER_SIZE);
13050
+ endIndex = Math.min(data.length - 1, endIndex + BUFFER_SIZE);
13051
+ // Calculate padding
13052
+ paddingTop = rowHeights.slice(0, startIndex).reduce((sum, height) => sum + height, 0);
13053
+ paddingBottom = rowHeights.slice(endIndex + 1).reduce((sum, height) => sum + height, 0);
13054
+ } else {
13055
+ // Fallback to estimated calculation
13056
+ startIndex = Math.max(0, Math.floor(scrollTop / DEFAULT_ROW_HEIGHT) - BUFFER_SIZE);
13057
+ endIndex = Math.min(data.length - 1, startIndex + Math.ceil(containerHeight / DEFAULT_ROW_HEIGHT) + BUFFER_SIZE);
13058
+ paddingTop = startIndex * DEFAULT_ROW_HEIGHT;
13059
+ paddingBottom = (data.length - endIndex - 1) * DEFAULT_ROW_HEIGHT;
13060
+ }
13061
+ return {
13062
+ startIndex,
13063
+ endIndex,
13064
+ paddingTop,
13065
+ paddingBottom,
13066
+ visibleRows: data.slice(startIndex, endIndex + 1)
13067
+ };
13068
+ };
13069
+ const {
13070
+ startIndex,
13071
+ paddingTop,
13072
+ paddingBottom,
13073
+ visibleRows
13074
+ } = calculateVisibleRows();
12947
13075
  let frozenWidth = 0;
12948
13076
  if (freezeColumns) {
12949
13077
  frozenWidth = calculateFrozenWidth(columns, freezeColumns);
@@ -13000,6 +13128,43 @@ const Table$1 = ({
13000
13128
  if (oldIndex === -1 || newIndex === -1) return;
13001
13129
  if (onDragEnd) onDragEnd(oldIndex, newIndex);
13002
13130
  };
13131
+ const renderRow = (row, absoluteIndex) => {
13132
+ const isOpen = getAccordionStatus(row?.id || row?._id || row?.scriptId);
13133
+ if (editMode === row._id || editMode === row.id) {
13134
+ return jsxRuntime.jsx("tr", {
13135
+ className: "edit-row",
13136
+ children: jsxRuntime.jsx("td", {
13137
+ colSpan: columns.length,
13138
+ style: {
13139
+ padding: '0px'
13140
+ },
13141
+ children: /*#__PURE__*/React.isValidElement(editComponent) && /*#__PURE__*/React.cloneElement(editComponent, {
13142
+ rowData: row,
13143
+ rowIndex: absoluteIndex + 1
13144
+ })
13145
+ })
13146
+ }, `edit-${row._id}`);
13147
+ }
13148
+ return jsxRuntime.jsx(SortableRow, {
13149
+ row: row,
13150
+ index: absoluteIndex,
13151
+ serialNumber: absoluteIndex + 1,
13152
+ columns: columns,
13153
+ tableBodyRowClass: tableBodyRowClass,
13154
+ handleOnclick: handleOnclick,
13155
+ tableDataTextColor: tableDataTextColor,
13156
+ withCheckbox: withCheckbox,
13157
+ onSelectClick: onSelectClick,
13158
+ draggable: draggable,
13159
+ isAccordionOpen: isOpen,
13160
+ accordionContent: accordionContent,
13161
+ isRowCheckBoxDisable: isRowCheckBoxDisable,
13162
+ isRowDisabled: isRowDisabled,
13163
+ freezeColumns: freezeColumns,
13164
+ frozenWidth: frozenWidth,
13165
+ updateRowHeight: updateRowHeight
13166
+ });
13167
+ };
13003
13168
  return jsxRuntime.jsx(DndContext, {
13004
13169
  collisionDetection: closestCorners,
13005
13170
  onDragEnd: handleDragEnd,
@@ -13008,8 +13173,11 @@ const Table$1 = ({
13008
13173
  items: data?.map(row => row._id || row.id),
13009
13174
  strategy: verticalListSortingStrategy,
13010
13175
  children: jsxRuntime.jsxs("div", {
13176
+ ref: setContainerRef,
13011
13177
  style: {
13012
- height: height,
13178
+ height,
13179
+ overflow: 'auto',
13180
+ position: 'relative',
13013
13181
  scrollbarWidth: draggable ? 'none' : 'auto',
13014
13182
  '--frozen-column-width': freezeColumns ? `${frozenWidth}px` : '0px'
13015
13183
  },
@@ -13018,7 +13186,7 @@ const Table$1 = ({
13018
13186
  'ff-table-fixed-header': withFixedHeader,
13019
13187
  'ff-table-container--border-radius': borderWithRadius
13020
13188
  }, className),
13021
- ref: tableRef,
13189
+ onScroll: handleScroll,
13022
13190
  children: [jsxRuntime.jsxs("table", {
13023
13191
  className: "ff-table-container",
13024
13192
  cellSpacing: 0,
@@ -13077,46 +13245,38 @@ const Table$1 = ({
13077
13245
  })
13078
13246
  })
13079
13247
  }), jsxRuntime.jsxs("tbody", {
13248
+ className: "ff-fixed-header-table",
13080
13249
  children: [jsxRuntime.jsx("tr", {
13081
- id: "ff-table-first-node"
13082
- }), data?.length > 0 && data?.map((row, index) => {
13083
- const isOpen = getAccordionStatus(row?.id || row?._id || row?.scriptId);
13250
+ id: "ff-table-first-node",
13251
+ style: {
13252
+ display: 'none'
13253
+ }
13254
+ }), paddingTop > 0 && jsxRuntime.jsx("tr", {
13255
+ children: jsxRuntime.jsx("td", {
13256
+ style: {
13257
+ height: paddingTop,
13258
+ padding: 0
13259
+ },
13260
+ colSpan: columns.length
13261
+ })
13262
+ }), visibleRows.map((row, index) => {
13263
+ const absoluteIndex = startIndex + index;
13084
13264
  return jsxRuntime.jsx(React.Fragment, {
13085
- children: editMode === row._id || editMode === row.id ? jsxRuntime.jsx("tr", {
13086
- className: classNames('ff-table-data-row', 'ff-table-edit-row', tableBodyRowClass, {
13087
- 'ff-table-disabled': row.disabled && isRowDisabled
13088
- }),
13089
- children: jsxRuntime.jsx("td", {
13090
- className: "ff-table-data-cell",
13091
- colSpan: columns.length,
13092
- style: {
13093
- padding: '0px'
13094
- },
13095
- children: editMode && /*#__PURE__*/React.isValidElement(editComponent) && /*#__PURE__*/React.cloneElement(editComponent, {
13096
- rowData: row,
13097
- rowIndex: index + 1
13098
- })
13099
- })
13100
- }, row?._id || index) : jsxRuntime.jsx(SortableRow, {
13101
- row: row,
13102
- serialNumber: index + 1,
13103
- columns: columns,
13104
- tableBodyRowClass: tableBodyRowClass,
13105
- handleOnclick: handleOnclick,
13106
- tableDataTextColor: tableDataTextColor,
13107
- withCheckbox: withCheckbox,
13108
- onSelectClick: onSelectClick,
13109
- draggable: draggable,
13110
- isAccordionOpen: isOpen,
13111
- accordionContent: accordionContent,
13112
- isRowCheckBoxDisable: isRowCheckBoxDisable,
13113
- isRowDisabled: isRowDisabled,
13114
- freezeColumns: freezeColumns,
13115
- frozenWidth: frozenWidth
13116
- })
13117
- }, row?._id || index);
13265
+ children: renderRow(row, absoluteIndex)
13266
+ }, row._id || absoluteIndex);
13267
+ }), paddingBottom > 0 && jsxRuntime.jsx("tr", {
13268
+ children: jsxRuntime.jsx("td", {
13269
+ style: {
13270
+ height: paddingBottom,
13271
+ padding: 0
13272
+ },
13273
+ colSpan: columns.length
13274
+ })
13118
13275
  }), jsxRuntime.jsx("tr", {
13119
- id: "ff-table-last-node"
13276
+ id: "ff-table-last-node",
13277
+ style: {
13278
+ display: 'none'
13279
+ }
13120
13280
  })]
13121
13281
  })]
13122
13282
  }), data?.length <= 0 && jsxRuntime.jsx("div", {
@@ -17978,7 +18138,7 @@ const EditLabel = ({
17978
18138
  return window;
17979
18139
  };
17980
18140
  React.useEffect(() => {
17981
- if (!containerRef.current) return;
18141
+ if (!containerRef.current || !isEditing) return;
17982
18142
  const scrollableParent = getScrollableParent(containerRef.current);
17983
18143
  const handleScroll = () => {
17984
18144
  handleCancel();
@@ -17989,7 +18149,7 @@ const EditLabel = ({
17989
18149
  return () => {
17990
18150
  scrollableParent.removeEventListener('scroll', handleScroll);
17991
18151
  };
17992
- }, []);
18152
+ }, [isEditing]);
17993
18153
  React.useEffect(() => {
17994
18154
  if (value) {
17995
18155
  setText(value);
@@ -31101,27 +31261,55 @@ const AllProjectsDropdown = ({
31101
31261
  disabled = false
31102
31262
  }) => {
31103
31263
  const [showOptions, setShowOptions] = React.useState(false);
31264
+ const [showClicked, setShowClicked] = React.useState(false);
31104
31265
  const [selectedOptions, setSelectedOptions] = React.useState(selectedOption);
31105
31266
  const optionsRef = React.useRef(null);
31106
31267
  const [optionsList, setOptionsList] = React.useState(options);
31107
31268
  const [closeTimeout, setCloseTimeout] = React.useState(null);
31269
+ const containerRef = React.useRef(null);
31270
+ const [searchValue, setSearchValue] = React.useState('');
31271
+ const [isSecondClickFromOtherTab, setIsSecondClickFromOtherTab] = React.useState(selected);
31108
31272
  React.useEffect(() => {
31109
31273
  if (optionsList !== options) {
31110
31274
  setOptionsList(options);
31111
31275
  }
31112
31276
  }, [options]);
31277
+ React.useEffect(() => {
31278
+ if (!selected) {
31279
+ setIsSecondClickFromOtherTab(false);
31280
+ }
31281
+ }, [selected]);
31113
31282
  React.useEffect(() => {
31114
31283
  if (selectedOption) {
31115
31284
  setSelectedOptions(selectedOption);
31116
31285
  }
31117
31286
  }, [selectedOption]);
31118
31287
  const closeOptions = () => {
31119
- setShowOptions(false);
31120
- setSearchValue('');
31121
- setOptionsList(options);
31288
+ if (showOptions) {
31289
+ setShowOptions(false);
31290
+ }
31122
31291
  };
31123
31292
  const handleMouseEnter = () => {
31124
- if (!disabled) setShowOptions(true);
31293
+ if (!disabled) {
31294
+ setShowOptions(true);
31295
+ }
31296
+ if (!disabled && !selected) {
31297
+ setShowOptions(true);
31298
+ }
31299
+ };
31300
+ const handleClick = () => {
31301
+ if (!disabled) {
31302
+ if (showOptions) {
31303
+ setShowOptions(false);
31304
+ }
31305
+ if (!isSecondClickFromOtherTab) {
31306
+ setIsSecondClickFromOtherTab(true);
31307
+ } else {
31308
+ setShowClicked(!showClicked);
31309
+ }
31310
+ }
31311
+ setSearchValue('');
31312
+ setOptionsList(options);
31125
31313
  };
31126
31314
  const handleMouseLeave = () => {
31127
31315
  if (!disabled) {
@@ -31145,8 +31333,9 @@ const AllProjectsDropdown = ({
31145
31333
  setSearchValue('');
31146
31334
  setOptionsList(options);
31147
31335
  }
31336
+ setShowClicked(false);
31337
+ setShowOptions(false);
31148
31338
  };
31149
- const [searchValue, setSearchValue] = React.useState('');
31150
31339
  const handleSearch = query => {
31151
31340
  if (!disabled) {
31152
31341
  setSearchValue(query);
@@ -31164,11 +31353,13 @@ const AllProjectsDropdown = ({
31164
31353
  }
31165
31354
  }
31166
31355
  };
31167
- useClickOutside(optionsRef, closeOptions);
31356
+ useClickOutside(optionsRef, () => setShowClicked(false), [containerRef]);
31168
31357
  return jsxRuntime.jsxs("div", {
31169
31358
  className: classNames('ff-all-project', {
31170
31359
  'ff-all-project--disabled': disabled
31171
31360
  }),
31361
+ ref: containerRef,
31362
+ onClick: handleClick,
31172
31363
  onMouseEnter: handleMouseEnter,
31173
31364
  onMouseLeave: handleMouseLeave,
31174
31365
  children: [jsxRuntime.jsx("div", {
@@ -31186,23 +31377,26 @@ const AllProjectsDropdown = ({
31186
31377
  className: classNames('projects-label'),
31187
31378
  onClick: onMenuClick,
31188
31379
  children: selectedOptions.label.length <= 12 ? selectedOptions.label : truncateText(selectedOptions?.label, 12)
31189
- }), jsxRuntime.jsx("div", {
31380
+ }), jsxRuntime.jsxs("div", {
31190
31381
  className: classNames('label-icon'),
31191
- children: jsxRuntime.jsx(Icon, {
31192
- name: showOptions ? 'arrows_top_icon' : 'arrows_down_icon',
31382
+ children: [jsxRuntime.jsx("div", {
31383
+ className: "icon-click-layer"
31384
+ }), jsxRuntime.jsx(Icon, {
31385
+ name: showOptions || showClicked ? 'arrows_top_icon' : 'arrows_down_icon',
31193
31386
  color: disabled ? 'var(--disabled-icon-color)' : 'var(--primary-icon-color)',
31194
31387
  height: 8,
31195
31388
  width: 8,
31196
31389
  hoverEffect: false
31197
- })
31390
+ })]
31198
31391
  })]
31199
31392
  })
31200
- }), showOptions && !disabled && jsxRuntime.jsxs("div", {
31393
+ }), (showOptions || showClicked) && !disabled && jsxRuntime.jsxs("div", {
31201
31394
  className: classNames('ff-projects-dropdown'),
31202
31395
  ref: optionsRef,
31203
31396
  onMouseEnter: dropDownMouseEnter,
31204
31397
  children: [jsxRuntime.jsx("div", {
31205
31398
  className: "ff-dropdown-search-container",
31399
+ onClick: e => e.stopPropagation(),
31206
31400
  children: jsxRuntime.jsx(Search, {
31207
31401
  onSearch: handleSearch,
31208
31402
  value: searchValue,
@@ -31217,7 +31411,10 @@ const AllProjectsDropdown = ({
31217
31411
  }), jsxRuntime.jsx("div", {
31218
31412
  className: classNames('option-card'),
31219
31413
  children: optionsList.map((option, index) => index === 0 && jsxRuntime.jsxs("div", {
31220
- onClick: () => handleSelectOption(option),
31414
+ onClick: e => {
31415
+ e.stopPropagation();
31416
+ handleSelectOption(option);
31417
+ },
31221
31418
  className: classNames('ff-projects-options', {
31222
31419
  ['ff-selected-option']: selectedOption.label === option.label,
31223
31420
  ['ff-option-disabled']: disabled
@@ -31244,7 +31441,10 @@ const AllProjectsDropdown = ({
31244
31441
  }), jsxRuntime.jsx("div", {
31245
31442
  className: classNames('option-card', `${optionsList.length > 4 ? 'scroll' : ''}`),
31246
31443
  children: optionsList.map((option, index) => index > 0 && jsxRuntime.jsxs("div", {
31247
- onClick: () => handleSelectOption(option),
31444
+ onClick: e => {
31445
+ e.stopPropagation();
31446
+ handleSelectOption(option);
31447
+ },
31248
31448
  className: classNames('ff-projects-options', {
31249
31449
  ['ff-selected-option']: selectedOption.label === option.label,
31250
31450
  ['ff-option-disabled']: disabled
@@ -31624,7 +31824,9 @@ const AppHeader = ({
31624
31824
  disabled = false,
31625
31825
  isClient = false,
31626
31826
  hideNavbar = false,
31627
- scriptId
31827
+ scriptId,
31828
+ centerInfoItems = [],
31829
+ rightButtons = []
31628
31830
  }) => {
31629
31831
  const hiddenMenuRef = React.useRef(null);
31630
31832
  const hiddenQuickMenuRef = React.useRef(null);
@@ -31777,7 +31979,9 @@ const AppHeader = ({
31777
31979
  children: leftContent
31778
31980
  })]
31779
31981
  }), jsxRuntime.jsxs("div", {
31780
- className: "ff-app-header-nav-bar",
31982
+ className: classNames('ff-app-header-nav-bar', {
31983
+ 'ff-app-header-nav-bar--with-center-info': !checkEmpty(centerInfoItems) && !checkEmpty(rightButtons)
31984
+ }),
31781
31985
  style: {
31782
31986
  width: width,
31783
31987
  visibility: checkEmpty(appHeaderMenuItems) && projectDetails?.id === 'All Projects' || hideNavbar ? 'hidden' : 'visible',
@@ -31785,7 +31989,36 @@ const AppHeader = ({
31785
31989
  zIndex: 1
31786
31990
  },
31787
31991
  ref: menuContainerRef,
31788
- children: [projectArrayList && !checkEmpty(projectArrayList) && jsxRuntime.jsx("div", {
31992
+ children: [jsxRuntime.jsx("div", {
31993
+ className: classNames('ff-app-header-center-info', {
31994
+ 'ff-app-header-center-info--no-right': checkEmpty(rightButtons)
31995
+ }),
31996
+ children: centerInfoItems.map((item, idx) => jsxRuntime.jsxs("div", {
31997
+ className: "ff-app-header-center-info-item",
31998
+ children: [jsxRuntime.jsx(Icon, {
31999
+ name: item.iconName
32000
+ }), jsxRuntime.jsx(Typography, {
32001
+ children: item.label
32002
+ })]
32003
+ }, idx))
32004
+ }), !checkEmpty(rightButtons) && jsxRuntime.jsx("div", {
32005
+ className: "ff-app-header-right-buttons",
32006
+ children: rightButtons.map((btn, index) => jsxRuntime.jsxs("button", {
32007
+ className: "ff-app-header-right-button",
32008
+ style: {
32009
+ color: btn.color,
32010
+ backgroundColor: btn.backgroundColor
32011
+ },
32012
+ onClick: btn.onClick,
32013
+ children: [btn.iconName && jsxRuntime.jsx(Icon, {
32014
+ name: btn.iconName
32015
+ }), jsxRuntime.jsx(Typography, {
32016
+ fontSize: 10,
32017
+ fontWeight: "semi-bold",
32018
+ children: btn.label
32019
+ })]
32020
+ }, index))
32021
+ }), projectArrayList && !checkEmpty(projectArrayList) && jsxRuntime.jsx("div", {
31789
32022
  children: jsxRuntime.jsx(AllProjectsDropdown, {
31790
32023
  onClick: handleProjectMenuClick,
31791
32024
  options: projectArrayList,
@@ -34891,7 +35124,7 @@ const NlpDropdown = ({
34891
35124
  const updateDropdownPosition = () => {
34892
35125
  let dropdownContainerHeight;
34893
35126
  if (checkEmpty(options)) {
34894
- dropdownContainerHeight = optionHeight + 2 * dropDownWrapperPadding;
35127
+ dropdownContainerHeight = 5 * optionHeight + 2 * dropDownWrapperPadding;
34895
35128
  } else if (options.length > 0) {
34896
35129
  dropdownContainerHeight = 5 * optionHeight + 2 * dropDownWrapperPadding;
34897
35130
  } else {
@@ -35604,7 +35837,7 @@ const NlpInput = ({
35604
35837
  }),
35605
35838
  style: {
35606
35839
  zIndex: optionZIndex,
35607
- paddingLeft: '10px'
35840
+ paddingLeft: '32px'
35608
35841
  },
35609
35842
  onFocus: () => handleSelectAction('FOCUS_INPUT'),
35610
35843
  onChange: onSelectInputChange,
@@ -36293,6 +36526,7 @@ const SequentialConnectingBranch = ({
36293
36526
  return Object.fromEntries(Object.entries(obj).filter(([key]) => !key.includes(substring)));
36294
36527
  };
36295
36528
  const filteredDataSetValues = removeKeysContainingSubstring(dataSetValues, 'Id');
36529
+ const showBranchPoint = readOnly && !isMachineInstances || !readOnly && isMachineInstances || !readOnly && !isMachineInstances;
36296
36530
  return jsxRuntime.jsx(EnvironmentVariableMapsContext.Provider, {
36297
36531
  value: environmentVariableMaps,
36298
36532
  children: jsxRuntime.jsxs("div", {
@@ -36319,16 +36553,16 @@ const SequentialConnectingBranch = ({
36319
36553
  'ff-select-branch-arrow': isMachineInstances,
36320
36554
  'ff-select-branch-arrow-down': !isMachineInstances
36321
36555
  }),
36322
- children: [jsxRuntime.jsx("div", {
36556
+ children: [showBranchPoint && jsxRuntime.jsx("div", {
36323
36557
  className: "ff-select-branch-point"
36324
36558
  }), jsxRuntime.jsxs("div", {
36325
36559
  className: "ff-select-branch-arrow",
36326
- children: [jsxRuntime.jsx("div", {
36560
+ children: [!readOnly && jsxRuntime.jsx("div", {
36327
36561
  className: "ff-branch-arrow-wrapper",
36328
36562
  children: isMachineInstances && jsxRuntime.jsx("div", {
36329
36563
  className: "ff-branch-arrow"
36330
36564
  })
36331
- }), isMachineInstances && jsxRuntime.jsx(jsxRuntime.Fragment, {
36565
+ }), isMachineInstances && !readOnly && jsxRuntime.jsx(jsxRuntime.Fragment, {
36332
36566
  children: jsxRuntime.jsx(Button$1, {
36333
36567
  variant: "tertiary",
36334
36568
  label: scriptType === 'Manual' ? '+ Machine' : '+ Environment',
@@ -36381,12 +36615,16 @@ const SequentialConnectingBranch = ({
36381
36615
  children: "Data Set List"
36382
36616
  })]
36383
36617
  })
36384
- }), !readOnly && jsxRuntime.jsx(Icon, {
36385
- name: "delete",
36386
- className: "ff-run-delete-icon",
36387
- color: "var(--ff-connecting-branch-delete-color)",
36388
- onClick: onDeleteMachineInstance,
36389
- hoverEffect: true
36618
+ }), !readOnly && jsxRuntime.jsx(Tooltip, {
36619
+ title: "Delete",
36620
+ placement: "bottom",
36621
+ children: jsxRuntime.jsx(Icon, {
36622
+ name: "delete",
36623
+ className: "ff-run-delete-icon",
36624
+ color: "var(--ff-connecting-branch-delete-color)",
36625
+ onClick: onDeleteMachineInstance,
36626
+ hoverEffect: true
36627
+ })
36390
36628
  })]
36391
36629
  })]
36392
36630
  })]
@@ -37145,10 +37383,12 @@ const ADD_COLUMN_RIGHT = 'ADD_COLUMN_RIGHT';
37145
37383
  const DELETE_ROW = 'DELETE_ROW';
37146
37384
  const DELETE_COLUMN = 'DELETE_COLUMN';
37147
37385
  const SET_ROW_HEIGHT = 'SET_ROW_HEIGHT';
37386
+ const SET_COLUMN_WIDTH = 'SET_COLUMN_WIDTH';
37148
37387
  const SET_COLUMN_POSITION = 'SET_COLUMN_POSITION';
37149
37388
  const SET_AUTO_FILL = 'SET_AUTO_FILL';
37150
37389
  const SET_EDITABLE = 'SET_EDITABLE';
37151
37390
  const ON_MOUSE_UP = 'ON_MOUSE_UP';
37391
+ const BATCH_RESIZE = 'BATCH_RESIZE';
37152
37392
  function onMouseUp(point) {
37153
37393
  return {
37154
37394
  type: ON_MOUSE_UP,
@@ -37182,6 +37422,15 @@ function setRowHeight(row, height) {
37182
37422
  }
37183
37423
  };
37184
37424
  }
37425
+ function setColumnWidth(column, width) {
37426
+ return {
37427
+ type: SET_COLUMN_WIDTH,
37428
+ payload: {
37429
+ column,
37430
+ width
37431
+ }
37432
+ };
37433
+ }
37185
37434
  function setColumnPosition(column, width) {
37186
37435
  return {
37187
37436
  type: SET_COLUMN_POSITION,
@@ -37459,6 +37708,15 @@ function view$1() {
37459
37708
  type: VIEW
37460
37709
  };
37461
37710
  }
37711
+ function batchResize(rows, columns) {
37712
+ return {
37713
+ type: BATCH_RESIZE,
37714
+ payload: {
37715
+ rows,
37716
+ columns
37717
+ }
37718
+ };
37719
+ }
37462
37720
  function blur$1() {
37463
37721
  return {
37464
37722
  type: BLUR
@@ -38353,6 +38611,48 @@ function getMatrixDimensions(matrixData) {
38353
38611
  columnCount
38354
38612
  };
38355
38613
  }
38614
+ const textMeasurementCache = new Map();
38615
+ const getFontString = cell => {
38616
+ const style = cell?.style || {};
38617
+ const fontWeight = style.fontWeight || 'normal';
38618
+ const fontStyle = style.fontStyle || 'normal';
38619
+ const fontSize = style.fontSize || '11px';
38620
+ const fontFamily = style.fontFamily || 'Times New Roman';
38621
+ return `${fontStyle} ${fontWeight} ${fontSize} ${fontFamily}`;
38622
+ };
38623
+ const measureText = (text, font) => {
38624
+ const cacheKey = `${text}|${font}`;
38625
+ if (textMeasurementCache.has(cacheKey)) {
38626
+ return textMeasurementCache.get(cacheKey);
38627
+ }
38628
+ const canvas = document.createElement('canvas');
38629
+ const context = canvas.getContext('2d');
38630
+ if (!context) {
38631
+ // Fallback calculation
38632
+ const fallbackWidth = text.length * 8;
38633
+ textMeasurementCache.set(cacheKey, fallbackWidth);
38634
+ return fallbackWidth;
38635
+ }
38636
+ context.font = font;
38637
+ const lines = text.split('\n');
38638
+ let maxWidth = 0;
38639
+ lines.forEach(line => {
38640
+ const metrics = context.measureText(line);
38641
+ maxWidth = Math.max(maxWidth, metrics.width);
38642
+ });
38643
+ textMeasurementCache.set(cacheKey, maxWidth);
38644
+ return maxWidth;
38645
+ };
38646
+ const resizeDebounceTimers = new Map();
38647
+ const debouncedResize = (key, callback, delay = 100) => {
38648
+ if (resizeDebounceTimers.has(key)) {
38649
+ clearTimeout(resizeDebounceTimers.get(key));
38650
+ }
38651
+ resizeDebounceTimers.set(key, setTimeout(() => {
38652
+ callback();
38653
+ resizeDebounceTimers.delete(key);
38654
+ }, delay));
38655
+ };
38356
38656
 
38357
38657
  const FORMULA_VALUE_PREFIX = '=';
38358
38658
  /** Returns whether given value is a formula */
@@ -39902,9 +40202,59 @@ function reducer(state, action) {
39902
40202
  } = action.payload;
39903
40203
  const selectedRange = state.selected.toRange(state.model.data);
39904
40204
  const updatedData = applyFontSize(state.model.data, selectedRange, value, state.editable);
40205
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40206
+ // Auto-resize all rows and columns on initial load
40207
+ let newRowDimensions = {
40208
+ ...state.rowDimensions
40209
+ };
40210
+ let newColumnDimensions = {
40211
+ ...state.columnDimensions
40212
+ };
40213
+ // Auto-resize all rows
40214
+ updatedData.forEach((rowData, rowIndex) => {
40215
+ let maxHeight = 32; // Default row height
40216
+ rowData.forEach((cell, _colIndex) => {
40217
+ if (cell && cell.value) {
40218
+ const fontSize = cell.style?.fontSize ? parseInt(cell.style.fontSize.toString().replace('px', '')) : 11;
40219
+ const lineHeight = Math.max(fontSize * 1.2, 18);
40220
+ const lines = String(cell.value).split('\n').length;
40221
+ const cellHeight = lineHeight * lines + 10;
40222
+ maxHeight = Math.max(Number(cell?.style?.height) ?? maxHeight, cellHeight);
40223
+ }
40224
+ });
40225
+ newRowDimensions[rowIndex] = {
40226
+ ...(newRowDimensions[rowIndex] || {
40227
+ top: 0,
40228
+ height: 32
40229
+ }),
40230
+ height: maxHeight
40231
+ };
40232
+ });
40233
+ // Auto-resize all columns
40234
+ const columnCount = updatedData[0] ? updatedData[0].length : 0;
40235
+ for (let col = 0; col < columnCount; col++) {
40236
+ let maxWidth = 100; // Default column width
40237
+ updatedData.forEach((rowData, _rowIndex) => {
40238
+ const cell = rowData[col];
40239
+ if (cell && cell.value && !['file'].includes(cell?.inputType?.type ?? 'text')) {
40240
+ const font = getFontString(cell);
40241
+ const textWidth = measureText(String(cell.value), font) + 20;
40242
+ maxWidth = Math.max(Number(cell?.style?.width) ?? maxWidth, textWidth);
40243
+ }
40244
+ });
40245
+ newColumnDimensions[col] = {
40246
+ ...(newColumnDimensions[col] || {
40247
+ left: 0,
40248
+ width: 100
40249
+ }),
40250
+ width: maxWidth
40251
+ };
40252
+ }
39905
40253
  return {
39906
40254
  ...state,
39907
- model: new Model(state.model.createFormulaParser, updatedData)
40255
+ model: updatedModel,
40256
+ rowDimensions: newRowDimensions,
40257
+ columnDimensions: newColumnDimensions
39908
40258
  };
39909
40259
  }
39910
40260
  case FONT_FAMILY:
@@ -39993,11 +40343,61 @@ function reducer(state, action) {
39993
40343
  } = action.payload;
39994
40344
  const nextActive = state.active && has$1(state.active, data) ? state.active : null;
39995
40345
  const nextSelected = state.selected.normalizeTo(data);
40346
+ const updatedModel = new Model(state.model.createFormulaParser, data);
40347
+ // Auto-resize all rows and columns on initial load
40348
+ let newRowDimensions = {
40349
+ ...state.rowDimensions
40350
+ };
40351
+ let newColumnDimensions = {
40352
+ ...state.columnDimensions
40353
+ };
40354
+ // Auto-resize all rows
40355
+ data.forEach((rowData, rowIndex) => {
40356
+ let maxHeight = 32; // Default row height
40357
+ rowData.forEach((cell, _colIndex) => {
40358
+ if (cell && cell.value) {
40359
+ const fontSize = cell.style?.fontSize ? parseInt(cell.style.fontSize.toString().replace('px', '')) : 11;
40360
+ const lineHeight = Math.max(fontSize * 1.2, 18);
40361
+ const lines = String(cell.value).split('\n').length;
40362
+ const cellHeight = lineHeight * lines + 10;
40363
+ maxHeight = Math.max(Number(cell?.style?.height) ?? maxHeight, cellHeight);
40364
+ }
40365
+ });
40366
+ newRowDimensions[rowIndex] = {
40367
+ ...(newRowDimensions[rowIndex] || {
40368
+ top: 0,
40369
+ height: 32
40370
+ }),
40371
+ height: maxHeight
40372
+ };
40373
+ });
40374
+ // Auto-resize all columns
40375
+ const columnCount = data[0] ? data[0].length : 0;
40376
+ for (let col = 0; col < columnCount; col++) {
40377
+ let maxWidth = 100; // Default column width
40378
+ data.forEach((rowData, _rowIndex) => {
40379
+ const cell = rowData[col];
40380
+ if (cell && cell.value && !['file'].includes(cell?.inputType?.type ?? 'text')) {
40381
+ const font = getFontString(cell);
40382
+ const textWidth = measureText(String(cell.value), font) + 20;
40383
+ maxWidth = Math.max(Number(cell?.style?.width) ?? maxWidth, textWidth);
40384
+ }
40385
+ });
40386
+ newColumnDimensions[col] = {
40387
+ ...(newColumnDimensions[col] || {
40388
+ left: 0,
40389
+ width: 100
40390
+ }),
40391
+ width: maxWidth
40392
+ };
40393
+ }
39996
40394
  return {
39997
40395
  ...state,
39998
- model: new Model(state.model.createFormulaParser, data),
40396
+ model: updatedModel,
39999
40397
  active: nextActive,
40000
- selected: nextSelected
40398
+ selected: nextSelected,
40399
+ rowDimensions: newRowDimensions,
40400
+ columnDimensions: newColumnDimensions
40001
40401
  };
40002
40402
  }
40003
40403
  case SET_CREATE_FORMULA_PARSER:
@@ -40114,9 +40514,64 @@ function reducer(state, action) {
40114
40514
  if (isActiveReadOnly(state) || !state.editable) {
40115
40515
  return state;
40116
40516
  }
40517
+ const updatedModel = updateCellValue(state.model, active, cellData);
40518
+ // Only auto-resize if the cell value actually changed
40519
+ const previousCell = get$1(active, state.model.data);
40520
+ const valueChanged = previousCell?.value !== cellData.value;
40521
+ let newRowDimensions = {
40522
+ ...state.rowDimensions
40523
+ };
40524
+ let newColumnDimensions = {
40525
+ ...state.columnDimensions
40526
+ };
40527
+ if (valueChanged) {
40528
+ debouncedResize(`resize-${active.row}-${active.column}`, () => {
40529
+ // Auto-resize row
40530
+ const rowData = updatedModel.data[active.row] || [];
40531
+ let maxRowHeight = 32; // Default row height
40532
+ // Only check this row's cells for height calculation
40533
+ rowData.forEach((cell, _colIndex) => {
40534
+ if (cell && cell.value) {
40535
+ const fontSize = cell.style?.fontSize ? parseInt(cell.style.fontSize.toString().replace('px', '')) : 11;
40536
+ const lineHeight = Math.max(fontSize * 1.2, 18);
40537
+ const lines = String(cell.value).split('\n').length;
40538
+ const cellHeight = lineHeight * lines + 10;
40539
+ maxRowHeight = Math.max(Number(cell?.style?.height) ?? maxRowHeight, cellHeight);
40540
+ }
40541
+ });
40542
+ newRowDimensions[active.row] = {
40543
+ ...(newRowDimensions[active.row] || {
40544
+ top: 0,
40545
+ height: 32
40546
+ }),
40547
+ height: maxRowHeight
40548
+ };
40549
+ // Auto-resize column
40550
+ let maxColWidth = 100; // Default column width
40551
+ // Only check this column's cells for width calculation
40552
+ updatedModel.data.forEach((rowData, _rowIndex) => {
40553
+ const cell = rowData[active.column];
40554
+ if (cell && cell.value && !['file'].includes(cell?.inputType?.type ?? 'text')) {
40555
+ const font = getFontString(cell);
40556
+ const textWidth = measureText(String(cell.value), font) + 20;
40557
+ maxColWidth = Math.max(Number(cell?.style?.width) ?? maxColWidth, textWidth);
40558
+ }
40559
+ });
40560
+ newColumnDimensions[active.column] = {
40561
+ ...(newColumnDimensions[active.column] || {
40562
+ left: 0,
40563
+ width: 100
40564
+ }),
40565
+ width: maxColWidth
40566
+ };
40567
+ }, 300 // 300ms delay
40568
+ );
40569
+ }
40117
40570
  return {
40118
40571
  ...state,
40119
- model: updateCellValue(state.model, active, cellData),
40572
+ model: updatedModel,
40573
+ rowDimensions: newRowDimensions,
40574
+ columnDimensions: newColumnDimensions,
40120
40575
  lastChanged: active
40121
40576
  };
40122
40577
  }
@@ -40126,28 +40581,61 @@ function reducer(state, action) {
40126
40581
  point,
40127
40582
  dimensions
40128
40583
  } = action.payload;
40129
- const prevRowDimensions = state.rowDimensions[point.row];
40130
- const prevColumnDimensions = state.columnDimensions[point.column];
40131
- if (prevRowDimensions && prevColumnDimensions && prevRowDimensions.top === dimensions.top && prevRowDimensions.height === dimensions.height && prevColumnDimensions.left === dimensions.left && prevColumnDimensions.width === dimensions.width) {
40132
- return state;
40133
- }
40134
- return {
40135
- ...state,
40136
- rowDimensions: {
40137
- ...state.rowDimensions,
40138
- [point.row]: {
40139
- top: dimensions.top,
40140
- height: dimensions.height
40584
+ let newState = {
40585
+ ...state
40586
+ };
40587
+ let updatedData = state.model.data;
40588
+ const cell = get$1(point, updatedData) || EmptyCell;
40589
+ const newStyle = {
40590
+ ...cell.style
40591
+ };
40592
+ let styleChanged = false;
40593
+ if (dimensions.width !== undefined) {
40594
+ newStyle.width = dimensions.width;
40595
+ styleChanged = true;
40596
+ }
40597
+ if (dimensions.height !== undefined) {
40598
+ newStyle.height = dimensions.height;
40599
+ styleChanged = true;
40600
+ }
40601
+ if (styleChanged) {
40602
+ const newCell = {
40603
+ ...cell,
40604
+ style: newStyle
40605
+ };
40606
+ updatedData = set$1(point, newCell, updatedData);
40607
+ }
40608
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40609
+ // Update column dimensions if width/left provided
40610
+ if (dimensions.width !== undefined && dimensions.left !== undefined) {
40611
+ newState = {
40612
+ ...newState,
40613
+ columnDimensions: {
40614
+ ...state.columnDimensions,
40615
+ [point.column]: {
40616
+ left: dimensions.left,
40617
+ width: dimensions.width
40618
+ }
40141
40619
  }
40142
- },
40143
- columnDimensions: {
40144
- ...state.columnDimensions,
40145
- [point.column]: {
40146
- left: dimensions.left,
40147
- width: dimensions.width
40620
+ };
40621
+ }
40622
+ // Update row dimensions if height/top provided
40623
+ if (dimensions.top !== undefined && dimensions.height !== undefined) {
40624
+ newState = {
40625
+ ...newState,
40626
+ rowDimensions: {
40627
+ ...state.rowDimensions,
40628
+ [point.row]: {
40629
+ top: dimensions.top,
40630
+ height: dimensions.height
40631
+ }
40148
40632
  }
40149
- }
40150
- };
40633
+ };
40634
+ }
40635
+ return {
40636
+ ...newState,
40637
+ model: updatedModel
40638
+ }; // Include updated model
40151
40639
  }
40152
40640
  case COPY:
40153
40641
  case CUT:
@@ -40277,9 +40765,36 @@ function reducer(state, action) {
40277
40765
  {
40278
40766
  return view(state);
40279
40767
  }
40768
+ // In reducer.ts, update the CLEAR action for better performance
40280
40769
  case CLEAR:
40281
40770
  {
40282
- return clear(state);
40771
+ const selectedRange = state.selected.toRange(state.model.data);
40772
+ if (!selectedRange || !state.editable) {
40773
+ return state;
40774
+ }
40775
+ let updatedData = state.model.data;
40776
+ const commit = [];
40777
+ // Track which rows and columns were cleared
40778
+ const clearedRows = new Set();
40779
+ const clearedColumns = new Set();
40780
+ for (const point of selectedRange) {
40781
+ const cell = get$1(point, updatedData) || null;
40782
+ commit.push({
40783
+ prevCell: cell,
40784
+ nextCell: null
40785
+ });
40786
+ updatedData = set$1(point, EmptyCell, updatedData);
40787
+ // Track cleared rows and columns
40788
+ clearedRows.add(point.row);
40789
+ clearedColumns.add(point.column);
40790
+ }
40791
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40792
+ // Use batch resize for better performance
40793
+ return reducer({
40794
+ ...state,
40795
+ model: updatedModel,
40796
+ lastCommit: commit
40797
+ }, batchResize(Array.from(clearedRows), Array.from(clearedColumns)));
40283
40798
  }
40284
40799
  case BLUR:
40285
40800
  {
@@ -40333,6 +40848,28 @@ function reducer(state, action) {
40333
40848
  } = action.payload;
40334
40849
  const prevDimensions = state.rowDimensions[row] || {
40335
40850
  top: 0};
40851
+ let updatedData = state.model.data; // Start with original data
40852
+ // Update all cells in the row with style.height
40853
+ if (updatedData[row]) {
40854
+ // Check if row exists
40855
+ const len = updatedData?.[row]?.length;
40856
+ for (let col = 0; col < len; col++) {
40857
+ const point = {
40858
+ row,
40859
+ column: col
40860
+ };
40861
+ const cell = get$1(point, updatedData) || EmptyCell;
40862
+ const newCell = {
40863
+ ...cell,
40864
+ style: {
40865
+ ...cell.style,
40866
+ height // Set the new height in cell style
40867
+ }
40868
+ };
40869
+ updatedData = set$1(point, newCell, updatedData); // Immutable set
40870
+ }
40871
+ }
40872
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40336
40873
  return {
40337
40874
  ...state,
40338
40875
  rowDimensions: {
@@ -40341,7 +40878,60 @@ function reducer(state, action) {
40341
40878
  top: prevDimensions.top,
40342
40879
  height
40343
40880
  }
40881
+ },
40882
+ model: updatedModel
40883
+ };
40884
+ }
40885
+ case SET_COLUMN_WIDTH:
40886
+ {
40887
+ const {
40888
+ column,
40889
+ width
40890
+ } = action.payload;
40891
+ const prevDimensions = state.columnDimensions[column] || {
40892
+ left: 0};
40893
+ // Narrow first
40894
+ if (!state.model.data) {
40895
+ return {
40896
+ ...state,
40897
+ columnDimensions: {
40898
+ ...state.columnDimensions,
40899
+ [column]: {
40900
+ left: prevDimensions.left,
40901
+ width
40902
+ }
40903
+ }
40904
+ };
40905
+ }
40906
+ let updatedData = state.model.data ?? [];
40907
+ for (let r = 0; r < updatedData.length; r++) {
40908
+ if (updatedData[r] && updatedData?.[r]?.length > column) {
40909
+ const point = {
40910
+ row: r,
40911
+ column
40912
+ };
40913
+ const cell = get$1(point, updatedData) ?? EmptyCell;
40914
+ const newCell = {
40915
+ ...cell,
40916
+ style: {
40917
+ ...(cell.style ?? {}),
40918
+ width
40919
+ }
40920
+ };
40921
+ updatedData = set$1(point, newCell, updatedData);
40344
40922
  }
40923
+ }
40924
+ const updatedModel = new Model(state.model.createFormulaParser, updatedData);
40925
+ return {
40926
+ ...state,
40927
+ columnDimensions: {
40928
+ ...state.columnDimensions,
40929
+ [column]: {
40930
+ left: prevDimensions.left,
40931
+ width
40932
+ }
40933
+ },
40934
+ model: updatedModel
40345
40935
  };
40346
40936
  }
40347
40937
  case SET_COLUMN_POSITION:
@@ -40479,6 +41069,69 @@ function reducer(state, action) {
40479
41069
  ...commit(changes)
40480
41070
  };
40481
41071
  }
41072
+ case BATCH_RESIZE:
41073
+ {
41074
+ const {
41075
+ rows,
41076
+ columns
41077
+ } = action.payload;
41078
+ const {
41079
+ model,
41080
+ rowDimensions,
41081
+ columnDimensions
41082
+ } = state;
41083
+ let newRowDimensions = {
41084
+ ...rowDimensions
41085
+ };
41086
+ let newColumnDimensions = {
41087
+ ...columnDimensions
41088
+ };
41089
+ // Resize specified rows
41090
+ rows.forEach(row => {
41091
+ const rowData = model.data[row] || [];
41092
+ let maxHeight = 32;
41093
+ rowData.forEach((cell, _colIndex) => {
41094
+ if (cell && cell.value) {
41095
+ const fontSize = cell.style?.fontSize ? parseInt(cell.style.fontSize.toString().replace('px', '')) : 11;
41096
+ const lineHeight = Math.max(fontSize * 1.2, 18);
41097
+ const lines = String(cell.value).split('\n').length;
41098
+ const cellHeight = lineHeight * lines + 10;
41099
+ maxHeight = Math.max(Number(cell?.style?.height) ?? maxHeight, cellHeight);
41100
+ }
41101
+ });
41102
+ newRowDimensions[row] = {
41103
+ ...(newRowDimensions[row] || {
41104
+ top: 0,
41105
+ height: 32
41106
+ }),
41107
+ height: maxHeight
41108
+ };
41109
+ });
41110
+ // Resize specified columns
41111
+ columns.forEach(col => {
41112
+ let maxWidth = 100;
41113
+ model.data.forEach((rowData, _rowIndex) => {
41114
+ const cell = rowData[col];
41115
+ if (cell && cell.value && !['file'].includes(cell?.inputType?.type ?? 'text')) {
41116
+ const font = getFontString(cell);
41117
+ const textWidth = measureText(String(cell.value), font) + 20;
41118
+ maxWidth = Math.max(Number(cell?.style?.width) ?? maxWidth, textWidth);
41119
+ }
41120
+ });
41121
+ newColumnDimensions[col] = {
41122
+ ...(newColumnDimensions[col] || {
41123
+ left: 0,
41124
+ width: 100
41125
+ }),
41126
+ width: maxWidth
41127
+ };
41128
+ });
41129
+ return {
41130
+ ...state,
41131
+ rowDimensions: newRowDimensions,
41132
+ columnDimensions: newColumnDimensions
41133
+ };
41134
+ }
40482
41135
  default:
40483
41136
  throw new Error('Unknown action');
40484
41137
  }
@@ -41831,8 +42484,7 @@ const ColumnIndicator = ({
41831
42484
  const dispatch = useDispatch();
41832
42485
  const excelData = useSelector(state => state.model.data);
41833
42486
  const activeCell = useSelector(state => state.active);
41834
- const minColumnWidth = minimumColumnWidth;
41835
- const columnWidth = useSelector(state => state.columnDimensions[column]?.width || minColumnWidth);
42487
+ const minColumnWidth = minimumColumnWidth ?? 100;
41836
42488
  const matrixData = useSelector(state => state.model.data);
41837
42489
  const {
41838
42490
  columnCount
@@ -41861,6 +42513,7 @@ const ColumnIndicator = ({
41861
42513
  return value;
41862
42514
  });
41863
42515
  };
42516
+ const columnWidth = useSelector(state => state.columnDimensions[column]?.width ?? minColumnWidth);
41864
42517
  const options = React.useMemo(() => {
41865
42518
  const checkVisible = cell?.contextDisable?.['Delete Column'] && isCellDataChanged();
41866
42519
  return [{
@@ -41901,15 +42554,17 @@ const ColumnIndicator = ({
41901
42554
  disable: false
41902
42555
  }] : [])];
41903
42556
  }, [selectedColumn, cell, addColumnLeft, addColumnRight, deleteColumn, minColumnWidth, columnCount, maxColLimit, disableDeleteOption, onAddColumn, onDeleteColumn, column, isCellDataChanged]);
42557
+ const MIN_COLUMN_WIDTH = minimumColumnWidth || 100;
41904
42558
  const onMouseDrag = React__namespace.useCallback((event, isRight) => {
41905
42559
  const getTargetColumn = isRight ? column - 1 : column;
41906
42560
  const targetColumn = Math.max(getTargetColumn, 0);
41907
42561
  onSelect(targetColumn, event.shiftKey);
41908
42562
  const startX = event.clientX;
41909
- const initialWidth = columnWidth;
42563
+ const initialWidth = Number(columnWidth);
41910
42564
  const onMouseMove = moveEvent => {
41911
- const newWidth = Math.max(minColumnWidth, initialWidth + (moveEvent.clientX - startX));
41912
- dispatch(setColumnPosition(targetColumn, newWidth));
42565
+ const delta = moveEvent.clientX - startX;
42566
+ const newWidth = Math.max(MIN_COLUMN_WIDTH, initialWidth + delta);
42567
+ dispatch(setColumnWidth(targetColumn, newWidth));
41913
42568
  };
41914
42569
  const onMouseUp = () => {
41915
42570
  document.removeEventListener('mousemove', onMouseMove);
@@ -41946,9 +42601,6 @@ const ColumnIndicator = ({
41946
42601
  className: classNames('ff-spreadsheet-header', {
41947
42602
  'ff-spreadsheet-header--selected': selected
41948
42603
  }),
41949
- style: {
41950
- minWidth: `${columnWidth}px`
41951
- },
41952
42604
  onClick: handleClick,
41953
42605
  onContextMenu: contextClick,
41954
42606
  tabIndex: 0,
@@ -42074,6 +42726,7 @@ const RowIndicator = ({
42074
42726
  disable: false
42075
42727
  }] : [])];
42076
42728
  }, [selectedRow, row]);
42729
+ const MIN_ROW_HEIGHT = 32;
42077
42730
  const handleMouseDrag = React__namespace.useCallback((event, isUp) => {
42078
42731
  const getTargetRow = isUp ? row : row - 1;
42079
42732
  const targetRow = Math.max(getTargetRow, 0);
@@ -42081,17 +42734,17 @@ const RowIndicator = ({
42081
42734
  const startY = event.clientY;
42082
42735
  const initialHeight = rowHeight;
42083
42736
  const onMouseMove = moveEvent => {
42084
- const newHeight = Math.max(32, initialHeight + (moveEvent.clientY - startY));
42737
+ const delta = moveEvent.clientY - startY;
42738
+ const newHeight = Math.max(MIN_ROW_HEIGHT, initialHeight + delta);
42085
42739
  dispatch(setRowHeight(targetRow, newHeight));
42086
42740
  };
42087
42741
  const onMouseUp = () => {
42088
42742
  document.removeEventListener('mousemove', onMouseMove);
42089
42743
  document.removeEventListener('mouseup', onMouseUp);
42090
- dispatch(dragEnd());
42744
+ dispatch(dragEnd()); // only at end
42091
42745
  };
42092
42746
  document.addEventListener('mousemove', onMouseMove);
42093
42747
  document.addEventListener('mouseup', onMouseUp);
42094
- dispatch(dragEnd());
42095
42748
  }, [rowHeight, row]);
42096
42749
  const activate$1 = React__namespace.useCallback(point => dispatch(activate(point)), [dispatch]);
42097
42750
  const handleClick = React__namespace.useCallback(event => {
@@ -42132,7 +42785,7 @@ const RowIndicator = ({
42132
42785
  }), jsxRuntime.jsx("div", {
42133
42786
  className: "drag-row-selector drag-row-down",
42134
42787
  onMouseDown: e => handleMouseDrag(e, true),
42135
- onDoubleClick: () => dispatch(setRowHeight(row, 32)),
42788
+ onDoubleClick: () => dispatch(setRowHeight(row, rowHeight)),
42136
42789
  onClick: () => activate$1({
42137
42790
  row,
42138
42791
  column: -1
@@ -42140,7 +42793,7 @@ const RowIndicator = ({
42140
42793
  }), jsxRuntime.jsx("div", {
42141
42794
  className: "drag-row-selector drag-row-up",
42142
42795
  onMouseDown: e => handleMouseDrag(e, false),
42143
- onDoubleClick: () => dispatch(setRowHeight(row, 32)),
42796
+ onDoubleClick: () => dispatch(setRowHeight(row, rowHeight)),
42144
42797
  onClick: () => activate$1({
42145
42798
  row,
42146
42799
  column: -1
@@ -42207,13 +42860,14 @@ const Cell = ({
42207
42860
  const root = rootRef.current;
42208
42861
  if (!root) return;
42209
42862
  const updateDimensions = () => {
42863
+ if (dragging) return;
42210
42864
  setCellDimensions(point, getOffsetRect(root));
42211
42865
  };
42212
42866
  updateDimensions();
42213
42867
  const observer = new ResizeObserver(updateDimensions);
42214
42868
  observer.observe(root);
42215
42869
  return () => observer.disconnect();
42216
- }, [setCellDimensions, point]);
42870
+ }, [setCellDimensions, point, dragging]);
42217
42871
  if (data && data.DataViewer) {
42218
42872
  DataViewer = data.DataViewer;
42219
42873
  }
@@ -42354,21 +43008,64 @@ const DataEditor = ({
42354
43008
  }
42355
43009
  });
42356
43010
  }, [onChange, cell]);
43011
+ const handleKeyDown = React__namespace.useCallback(event => {
43012
+ if (event.key === 'Delete' || event.key === 'Backspace') {
43013
+ event.stopPropagation();
43014
+ requestAnimationFrame(() => {
43015
+ if (inputRef.current) {
43016
+ const textarea = inputRef.current;
43017
+ textarea.style.height = 'auto';
43018
+ textarea.style.height = `${textarea.scrollHeight}px`;
43019
+ }
43020
+ });
43021
+ }
43022
+ if (event.key === 'Enter' && event.altKey) {
43023
+ event.preventDefault();
43024
+ event.stopPropagation();
43025
+ const textarea = event.currentTarget;
43026
+ const {
43027
+ selectionStart,
43028
+ selectionEnd,
43029
+ value
43030
+ } = textarea;
43031
+ const newValue = value.substring(0, selectionStart) + '\n' + value.substring(selectionEnd);
43032
+ onChange({
43033
+ ...cell,
43034
+ value: newValue,
43035
+ style: cell?.style,
43036
+ inputType: cell?.inputType ?? {
43037
+ type: 'text'
43038
+ }
43039
+ });
43040
+ requestAnimationFrame(() => {
43041
+ textarea.selectionStart = textarea.selectionEnd = selectionStart + 1;
43042
+ textarea.style.height = 'auto';
43043
+ textarea.style.height = `${textarea.scrollHeight}px`;
43044
+ });
43045
+ }
43046
+ }, [onChange, cell]);
42357
43047
  React__namespace.useEffect(() => {
42358
43048
  if (inputRef.current) {
42359
43049
  moveCursorToEnd(inputRef.current);
42360
43050
  }
42361
- }, [inputRef]);
43051
+ }, []);
42362
43052
  const value = cell?.value ?? '';
42363
43053
  return jsxRuntime.jsx("div", {
42364
43054
  className: "ff-spreadsheet-data-editor",
42365
43055
  children: jsxRuntime.jsx("textarea", {
42366
43056
  className: "ff-spreadsheet-cell-textarea",
42367
43057
  style: {
42368
- ...cell?.style
43058
+ ...cell?.style,
43059
+ width: '100%',
43060
+ height: '100%',
43061
+ borderTop: '',
43062
+ borderBottom: '',
43063
+ borderLeft: '',
43064
+ borderRight: ''
42369
43065
  },
42370
43066
  ref: inputRef,
42371
43067
  onChange: handleChange,
43068
+ onKeyDown: handleKeyDown,
42372
43069
  value: value,
42373
43070
  autoFocus: true,
42374
43071
  disabled: cell?.readOnly
@@ -42837,6 +43534,8 @@ const ActiveCell = props => {
42837
43534
  className: "ff-spreadsheet-cell-textarea",
42838
43535
  style: {
42839
43536
  ...cell?.style,
43537
+ height: '100%',
43538
+ width: '100%',
42840
43539
  textDecoration: cell?.style?.textDecoration === 'underline' ? 'underline' : 'none',
42841
43540
  backgroundColor: isDragged ? '#1e161f00' : cell?.style?.backgroundColor,
42842
43541
  pointerEvents: 'none',
@@ -43068,7 +43767,9 @@ function convertStyleToFrontend(backendStyle) {
43068
43767
  borderBottom: borderBottom,
43069
43768
  borderLeft: borderLeft,
43070
43769
  textAlign: getTextAlignment(backendStyle.alignment.horizontal),
43071
- alignContent: getTextAlignment(backendStyle.alignment.vertical)
43770
+ alignContent: getTextAlignment(backendStyle.alignment.vertical),
43771
+ height: backendStyle.height ?? 32,
43772
+ width: backendStyle.width ?? 150
43072
43773
  };
43073
43774
  }
43074
43775
  const getBorderStyle = border => {
@@ -43104,7 +43805,9 @@ const convertStyleToBackend = frontendStyle => {
43104
43805
  horizontal: getTextAlignmentBack(frontendStyle.textAlign),
43105
43806
  vertical: getTextAlignmentBack(frontendStyle.alignContent),
43106
43807
  wrapText: false
43107
- }
43808
+ },
43809
+ width: frontendStyle.width || 150,
43810
+ height: frontendStyle.height || 32
43108
43811
  };
43109
43812
  };
43110
43813
 
@@ -48278,7 +48981,7 @@ const VariableDropdown = ({
48278
48981
  dropdownPosition,
48279
48982
  position = 'relative',
48280
48983
  width,
48281
- height = '100px',
48984
+ height = '160px',
48282
48985
  zIndex = 9999
48283
48986
  }) => {
48284
48987
  const VARIABLE_ICON_MAP = {
@@ -48308,12 +49011,12 @@ const VariableDropdown = ({
48308
49011
  return 212;
48309
49012
  }
48310
49013
  // Calculate item height based on width type
48311
- const itemHeight = width.endsWith('px') ? 40 : 32;
49014
+ const itemHeight = 32;
48312
49015
  const renderItem = index => {
48313
49016
  const option = optionsList[index];
48314
49017
  if (!option) return null;
48315
49018
  return jsxRuntime.jsx("div", {
48316
- className: width.endsWith('px') ? 'ff-variable-option' : 'ff-variable-data',
49019
+ className: 'ff-variable-data',
48317
49020
  onMouseDown: () => onSelectVariable(option),
48318
49021
  children: width.endsWith('px') ? jsxRuntime.jsxs(jsxRuntime.Fragment, {
48319
49022
  children: [jsxRuntime.jsx(Tooltip, {
@@ -48329,8 +49032,8 @@ const VariableDropdown = ({
48329
49032
  })
48330
49033
  }), jsxRuntime.jsx(Icon, {
48331
49034
  name: getVariableIcon(option),
48332
- height: 16,
48333
- width: 16,
49035
+ height: 24,
49036
+ width: 24,
48334
49037
  hoverEffect: true
48335
49038
  })]
48336
49039
  }) : jsxRuntime.jsx(DynamicWidthTooltip, {
@@ -48355,8 +49058,8 @@ const VariableDropdown = ({
48355
49058
  totalCount: optionsList.length,
48356
49059
  itemContent: renderItem,
48357
49060
  style: {
48358
- height: '100%',
48359
- fontSize: "12px"
49061
+ height,
49062
+ fontSize: '12px'
48360
49063
  },
48361
49064
  overscan: 10,
48362
49065
  fixedItemHeight: itemHeight
@@ -48999,10 +49702,11 @@ const OptionsDropdown$1 = ({
48999
49702
  return jsxRuntime.jsx("div", {
49000
49703
  className: "ff-variable-option",
49001
49704
  onMouseDown: () => onSelectVariable(option),
49002
- children: jsxRuntime.jsx(Typography, {
49003
- as: "span",
49004
- fontSize: 14,
49005
- children: truncateText(option?.name, truncateTextValue)
49705
+ children: jsxRuntime.jsx(Tooltip, {
49706
+ title: isTextTruncated(option?.name, truncateTextValue, 'pixel') ? option?.name : '',
49707
+ children: jsxRuntime.jsx(Typography, {
49708
+ children: truncateText(option?.name, truncateTextValue, 'pixel')
49709
+ })
49006
49710
  })
49007
49711
  }, option?.id);
49008
49712
  }) : jsxRuntime.jsx("div", {
@@ -49028,7 +49732,7 @@ const VariableSuggestionInputDropDown = /*#__PURE__*/React.forwardRef(({
49028
49732
  handleClearInput,
49029
49733
  value = '',
49030
49734
  dropdownWidth = '100%',
49031
- dropdownHeight = '150px',
49735
+ dropdownHeight = '160px',
49032
49736
  isHash = false,
49033
49737
  isOnlyHash = false,
49034
49738
  dataFiles = [],
@@ -49302,7 +50006,8 @@ const CreateVariableSlider = ({
49302
50006
  handleSubmit,
49303
50007
  mode = 'create',
49304
50008
  disabled,
49305
- dataFiles = []
50009
+ dataFiles = [],
50010
+ truncateTextValue = 34
49306
50011
  }) => {
49307
50012
  const [error, setError] = React.useState(false);
49308
50013
  const [helperText, setHelperText] = React.useState('');
@@ -49438,7 +50143,7 @@ const CreateVariableSlider = ({
49438
50143
  isHash: true,
49439
50144
  isOnlyHash: true,
49440
50145
  zIndex: 99999,
49441
- truncateTextValue: 34,
50146
+ truncateTextValue: truncateTextValue,
49442
50147
  dataFiles: dataFiles,
49443
50148
  dropdownWidth: "100%",
49444
50149
  setHashInputValue: setHashInputValue,
@@ -49574,8 +50279,8 @@ const TableWithAccordion = ({
49574
50279
  children: [jsxRuntime.jsx("div", {
49575
50280
  className: "ff-display-flex",
49576
50281
  children: jsxRuntime.jsx(Tooltip, {
49577
- title: row.disable ? row?.disableInfoMessage : '',
49578
- placement: 'bottom-start',
50282
+ title: row.disable ? row?.disableInfoMessage : typeof row.title === 'string' && isTextTruncated(row.title, tableMeta[0]?.width, 'pixel') ? row.title : '',
50283
+ placement: "bottom-start",
49579
50284
  children: jsxRuntime.jsxs("div", {
49580
50285
  className: `accordion-header ${row.disable && 'accordion-header--disabled'}`,
49581
50286
  children: [jsxRuntime.jsx("div", {
@@ -49583,7 +50288,7 @@ const TableWithAccordion = ({
49583
50288
  children: jsxRuntime.jsx("span", {
49584
50289
  children: jsxRuntime.jsx(Typography, {
49585
50290
  children: jsxRuntime.jsx(HighlightText, {
49586
- text: row.title,
50291
+ text: truncateText(row.title, tableMeta[0]?.width, 'pixel'),
49587
50292
  highlight: highlightText
49588
50293
  })
49589
50294
  })
@@ -50062,7 +50767,7 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
50062
50767
  additionalIconName,
50063
50768
  additionIconToolTip,
50064
50769
  onAdditionalIconClick
50065
- }) => {
50770
+ }, ref) => {
50066
50771
  const containerRef = React.useRef(null);
50067
50772
  useKeyboardActions([{
50068
50773
  key: 'Enter',
@@ -50099,6 +50804,7 @@ const Prompt = /*#__PURE__*/React.forwardRef(({
50099
50804
  disabled: checkEmpty(value)
50100
50805
  })
50101
50806
  }), jsxRuntime.jsx("input", {
50807
+ ref: ref,
50102
50808
  className: "ff-prompt-input",
50103
50809
  type: "text",
50104
50810
  placeholder: placeholder,
@@ -63932,11 +64638,13 @@ var jsExports = requireJs();
63932
64638
  const Editor = /*#__PURE__*/React.forwardRef(({
63933
64639
  width = '100%',
63934
64640
  height = '100%',
64641
+ VariableDropdownHeight = '160px',
63935
64642
  readOnly = false,
63936
64643
  value = '',
63937
64644
  handleChange,
63938
64645
  setValue,
63939
64646
  variableOptionsList = [],
64647
+ addForloopPrefix = false,
63940
64648
  language = 'json',
63941
64649
  theme = 'light',
63942
64650
  isRequisiteType = false,
@@ -63986,7 +64694,10 @@ const Editor = /*#__PURE__*/React.forwardRef(({
63986
64694
  varRef.current = columnIndex;
63987
64695
  }
63988
64696
  filterVarRef.current = currentLineContent.slice(varRef.current + 1, columnIndex);
63989
- const filteredVariable = variableOptionsList.filter(e => e?.name.toLowerCase().includes(filterVarRef.current?.toLowerCase()));
64697
+ const filteredVariable = variableOptionsList.filter(e => {
64698
+ const variableName = e.type === '_startforloop' && addForloopPrefix ? `FLV_for:${e.name}` : e.name;
64699
+ return variableName.toLowerCase().includes(filterVarRef.current?.toLowerCase());
64700
+ });
63990
64701
  if (filteredVariable.length) {
63991
64702
  setFilteredVariableOptions(filteredVariable);
63992
64703
  } else {
@@ -64010,7 +64721,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
64010
64721
  let dropdownTop = top;
64011
64722
  let dropdownLeft = left;
64012
64723
  if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 100) {
64013
- dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight + 25;
64724
+ dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight - 25;
64014
64725
  } else {
64015
64726
  dropdownTop -= 5;
64016
64727
  }
@@ -64269,7 +64980,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
64269
64980
  }), showDropdown && dropdownPosition && showVariableDropdown && jsxRuntime.jsx(VariableDropdown, {
64270
64981
  position: "absolute",
64271
64982
  width: "300px",
64272
- height: "210px",
64983
+ height: VariableDropdownHeight,
64273
64984
  optionsList: filteredVariableOptions,
64274
64985
  onSelectVariable: handleSelectVariable,
64275
64986
  dropdownPosition: dropdownPosition
@@ -66960,7 +67671,10 @@ const OptionsDropdown = ({
66960
67671
  filteredOptions = [],
66961
67672
  position = 'relative',
66962
67673
  width = '300px',
66963
- zIndex = 1000
67674
+ zIndex = 1000,
67675
+ height = '160px',
67676
+ truncateTextValue = 34,
67677
+ isTruncateText = false
66964
67678
  }) => {
66965
67679
  return jsxRuntime.jsxs("div", {
66966
67680
  className: classNames('ff-variable-dropdown', position),
@@ -66972,16 +67686,21 @@ const OptionsDropdown = ({
66972
67686
  } : {
66973
67687
  width,
66974
67688
  zIndex,
66975
- height: '350px'
67689
+ height: height
66976
67690
  },
66977
67691
  children: [filteredOptions?.map(option => {
67692
+ const displayText = isTruncateText ? truncateText(option?.name, truncateTextValue, 'pixel') : option?.name;
67693
+ const shouldShowTooltip = isTruncateText ? isTextTruncated(option?.name, truncateTextValue, 'pixel') : false;
66978
67694
  return jsxRuntime.jsx("div", {
66979
67695
  className: "ff-variable-option",
66980
67696
  onClick: () => onSelectVariable(option),
66981
- children: jsxRuntime.jsx(Typography, {
66982
- as: "span",
66983
- fontSize: 14,
66984
- children: option?.name
67697
+ children: isTruncateText ? jsxRuntime.jsx(Tooltip, {
67698
+ title: shouldShowTooltip ? option?.name : '',
67699
+ children: jsxRuntime.jsx(Typography, {
67700
+ children: displayText
67701
+ })
67702
+ }) : jsxRuntime.jsx(Typography, {
67703
+ children: displayText
66985
67704
  })
66986
67705
  }, option?.id);
66987
67706
  }), filteredOptions?.length === 0 && jsxRuntime.jsx("div", {
@@ -67000,6 +67719,7 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67000
67719
  hashInputValue = '',
67001
67720
  setHashInputValue,
67002
67721
  variableList = [],
67722
+ addForloopPrefix = false,
67003
67723
  placeholder = 'Enter text',
67004
67724
  onChange,
67005
67725
  onCreateVariableClick,
@@ -67019,7 +67739,9 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67019
67739
  onFocus,
67020
67740
  onBlur,
67021
67741
  readOnly = false,
67022
- height = '165px',
67742
+ height = '160px',
67743
+ truncateTextValue = 34,
67744
+ isTruncateText = false,
67023
67745
  ...props
67024
67746
  }, ref) => {
67025
67747
  const [showDropdown, setShowDropdown] = React.useState(false);
@@ -67147,7 +67869,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67147
67869
  searchString = '';
67148
67870
  }
67149
67871
  if (searchString) {
67150
- const isInVariableList = variableList.some(file => file.name.toLowerCase().includes(searchString.toLowerCase()));
67872
+ const isInVariableList = variableList.some(file => {
67873
+ const searchableName = file.type === '_startforloop' && addForloopPrefix ? `FLV_for:${file.name}` : file.name;
67874
+ return searchableName.toLowerCase().includes(searchString.toLowerCase());
67875
+ });
67151
67876
  if (!isInVariableList) {
67152
67877
  showDropdown = false;
67153
67878
  searchString = '';
@@ -67216,7 +67941,7 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67216
67941
  className: "ff-password-icon",
67217
67942
  children: jsxRuntime.jsx(Icon, {
67218
67943
  onClick: togglePasswordVisibility,
67219
- name: showPassword ? 'view_icon' : 'hide_icon',
67944
+ name: !showPassword ? 'view_access_icon' : 'hide_access_icon',
67220
67945
  width: 16,
67221
67946
  height: 16,
67222
67947
  hoverEffect: true
@@ -67235,7 +67960,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67235
67960
  }), result?.showDropdown && isFocused && jsxRuntime.jsx(VariableDropdown, {
67236
67961
  position: "absolute",
67237
67962
  width: dropdownWidth,
67238
- optionsList: variableList.filter(file => file.name.toLowerCase().includes(result?.searchString.toLowerCase())),
67963
+ optionsList: variableList.filter(file => {
67964
+ const searchableName = file.type === '_startforloop' && addForloopPrefix ? `FLV_for:${file.name}` : file.name;
67965
+ return searchableName.toLowerCase().includes(result?.searchString.toLowerCase());
67966
+ }),
67239
67967
  onSelectVariable: handleDropdownClick,
67240
67968
  height: height
67241
67969
  }), showDropdown && (isHash || onlyDropdown) && jsxRuntime.jsx(OptionsDropdown, {
@@ -67243,7 +67971,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
67243
67971
  width: dropdownWidth,
67244
67972
  filteredOptions: filteredOptions,
67245
67973
  zIndex: 2000,
67246
- onSelectVariable: handleDropdownClick
67974
+ onSelectVariable: handleDropdownClick,
67975
+ height: height,
67976
+ isTruncateText: isTruncateText,
67977
+ truncateTextValue: truncateTextValue
67247
67978
  })]
67248
67979
  });
67249
67980
  });
@@ -80904,84 +81635,107 @@ const StepGroupAccordions = /*#__PURE__*/React.memo(({
80904
81635
  handleStepGroupExpand,
80905
81636
  isStepGroupExpanded,
80906
81637
  isViewPrivilegeMode,
80907
- columns = []
81638
+ columns = [],
81639
+ parentIndex,
81640
+ updateRowHeight
80908
81641
  }) => {
81642
+ const rowRefs = React.useRef([]);
80909
81643
  const typeSet = new Set(['Group', 'PRE', 'POST', 'Script']);
80910
81644
  const getPadding = type => typeSet.has(type) ? '6px 8px' : '7px 8px';
80911
81645
  const indent = level + 8;
81646
+ // Measure and report height when expanded
81647
+ React.useEffect(() => {
81648
+ if (!updateRowHeight) return;
81649
+ let totalHeight = 0;
81650
+ rowRefs.current.forEach(ref => {
81651
+ if (ref) {
81652
+ totalHeight += ref.getBoundingClientRect().height;
81653
+ }
81654
+ });
81655
+ if (totalHeight > 0) {
81656
+ updateRowHeight(parentIndex ?? 0, totalHeight);
81657
+ }
81658
+ }, [data, updateRowHeight, parentIndex, isStepGroupExpanded]);
80912
81659
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
80913
- children: data?.map(item => jsxRuntime.jsxs(React.Fragment, {
80914
- children: [viewModeId === item?.stepId ? jsxRuntime.jsx("tr", {
80915
- className: "steps-edit-row",
80916
- id: "getInFocus",
80917
- children: jsxRuntime.jsx("td", {
80918
- colSpan: columnCount,
80919
- children: jsxRuntime.jsx("div", {
80920
- style: {
80921
- marginLeft: `${indent}px`
80922
- },
80923
- children: ViewComponent && jsxRuntime.jsx(ViewComponent, {})
80924
- })
80925
- })
80926
- }) : jsxRuntime.jsx("tr", {
80927
- children: columns.map((col, idx) => jsxRuntime.jsx("td", {
80928
- style: {
80929
- maxWidth: col.width,
80930
- padding: getPadding(item.type)
80931
- },
80932
- children: jsxRuntime.jsxs(Typography, {
80933
- as: "div",
80934
- className: "ff-data-checkbox-container",
80935
- children: [jsxRuntime.jsxs("div", {
80936
- className: "ff-data-checkbox-container-content",
81660
+ children: data?.map((item, itemIndex) => {
81661
+ const absoluteIndex = parentIndex ?? 0 + itemIndex + 1;
81662
+ return jsxRuntime.jsxs(React.Fragment, {
81663
+ children: [viewModeId === item?.stepId ? jsxRuntime.jsx("tr", {
81664
+ ref: el => rowRefs.current[itemIndex] = el,
81665
+ className: "steps-edit-row",
81666
+ id: "getInFocus",
81667
+ children: jsxRuntime.jsx("td", {
81668
+ colSpan: columnCount,
81669
+ children: jsxRuntime.jsx("div", {
80937
81670
  style: {
80938
- marginLeft: idx === 0 ? `${indent}px` : 0
81671
+ marginLeft: `${indent}px`
80939
81672
  },
80940
- onClick: () => {
80941
- const isClickable = idx === 0 && !item?.displayName?.includes('End') && !item?.isDisabled;
80942
- if (isClickable) handleClick?.({
80943
- ...item,
80944
- tableType
80945
- });
80946
- },
80947
- children: [!isViewPrivilegeMode && idx === 0 && jsxRuntime.jsx("div", {
81673
+ children: ViewComponent && jsxRuntime.jsx(ViewComponent, {})
81674
+ })
81675
+ })
81676
+ }) : jsxRuntime.jsx("tr", {
81677
+ ref: el => rowRefs.current[itemIndex] = el,
81678
+ children: columns.map((col, idx) => jsxRuntime.jsx("td", {
81679
+ style: {
81680
+ maxWidth: col.width,
81681
+ padding: getPadding(item.type)
81682
+ },
81683
+ children: jsxRuntime.jsxs(Typography, {
81684
+ as: "div",
81685
+ className: "ff-data-checkbox-container",
81686
+ children: [jsxRuntime.jsxs("div", {
81687
+ className: "ff-data-checkbox-container-content",
80948
81688
  style: {
80949
- padding: '4px 18px'
80950
- }
80951
- }), prepareData({
80952
- ...item,
80953
- marginLeft: indent
80954
- }, col)]
80955
- }), idx === 0 && ['Group', 'PRE', 'POST', 'Script'].includes(item.type) && jsxRuntime.jsx("div", {
80956
- className: `ff-accordion-arrow ${isStepGroupExpanded?.(item.stepId) ? 'expanded' : ''}`,
80957
- children: jsxRuntime.jsx(Icon, {
80958
- name: "arrow_right",
80959
- color: isStepGroupExpanded?.(item.stepId) ? 'var(--brand-color)' : 'var(--default-color)',
80960
- className: "steps-arrow-svg",
80961
- width: 12,
80962
- height: 12,
80963
- onClick: () => handleStepGroupExpand?.({
81689
+ marginLeft: idx === 0 ? `${indent}px` : 0
81690
+ },
81691
+ onClick: () => {
81692
+ const isClickable = idx === 0 && !item?.displayName?.includes('End') && !item?.isDisabled;
81693
+ if (isClickable) handleClick?.({
81694
+ ...item,
81695
+ tableType
81696
+ });
81697
+ },
81698
+ children: [!isViewPrivilegeMode && idx === 0 && jsxRuntime.jsx("div", {
81699
+ style: {
81700
+ padding: '4px 18px'
81701
+ }
81702
+ }), prepareData({
80964
81703
  ...item,
80965
- tableType
81704
+ marginLeft: indent
81705
+ }, col)]
81706
+ }), idx === 0 && ['Group', 'PRE', 'POST', 'Script'].includes(item.type) && jsxRuntime.jsx("div", {
81707
+ className: `ff-accordion-arrow ${isStepGroupExpanded?.(item.stepId) ? 'expanded' : ''}`,
81708
+ children: jsxRuntime.jsx(Icon, {
81709
+ name: "arrow_right",
81710
+ color: isStepGroupExpanded?.(item.stepId) ? 'var(--brand-color)' : 'var(--default-color)',
81711
+ className: "steps-arrow-svg",
81712
+ width: 12,
81713
+ height: 12,
81714
+ onClick: () => handleStepGroupExpand?.({
81715
+ ...item,
81716
+ tableType
81717
+ })
80966
81718
  })
80967
- })
80968
- })]
80969
- })
80970
- }, `${item.stepId}-${idx}`))
80971
- }), isStepGroupExpanded?.(item.stepId) && jsxRuntime.jsx(StepGroupAccordions, {
80972
- data: item.data,
80973
- level: indent,
80974
- columnCount: columnCount,
80975
- viewModeId: viewModeId,
80976
- ViewComponent: ViewComponent,
80977
- handleClick: handleClick,
80978
- tableType: tableType,
80979
- handleStepGroupExpand: handleStepGroupExpand,
80980
- isStepGroupExpanded: isStepGroupExpanded,
80981
- isViewPrivilegeMode: isViewPrivilegeMode,
80982
- columns: columns
80983
- })]
80984
- }, item.stepId))
81719
+ })]
81720
+ })
81721
+ }, `${item.stepId}-${idx}`))
81722
+ }), isStepGroupExpanded?.(item.stepId) && jsxRuntime.jsx(StepGroupAccordions, {
81723
+ data: item.data,
81724
+ level: indent,
81725
+ columnCount: columnCount,
81726
+ viewModeId: viewModeId,
81727
+ ViewComponent: ViewComponent,
81728
+ handleClick: handleClick,
81729
+ tableType: tableType,
81730
+ handleStepGroupExpand: handleStepGroupExpand,
81731
+ isStepGroupExpanded: isStepGroupExpanded,
81732
+ isViewPrivilegeMode: isViewPrivilegeMode,
81733
+ columns: columns,
81734
+ parentIndex: absoluteIndex,
81735
+ updateRowHeight: updateRowHeight
81736
+ })]
81737
+ }, item.stepId);
81738
+ })
80985
81739
  });
80986
81740
  });
80987
81741
  StepGroupAccordions.displayName = 'StepGroupAccordions';
@@ -81006,8 +81760,11 @@ const StepTableMainRow = ({
81006
81760
  dataLength,
81007
81761
  stepPartialSelect,
81008
81762
  isViewPrivilegeMode,
81009
- isClientSide
81763
+ isClientSide,
81764
+ updateRowHeight,
81765
+ rowId
81010
81766
  }) => {
81767
+ const rowRef = React.useRef(null);
81011
81768
  const isDisabled = React.useMemo(() => row?.isDisabled || (dataLength ?? 0) <= 1 || row.isSpecialNlp, [row, dataLength]);
81012
81769
  let serialNumber = (indexNumber + 1).toString();
81013
81770
  const {
@@ -81025,6 +81782,13 @@ const StepTableMainRow = ({
81025
81782
  transition
81026
81783
  }), [transform, transition]);
81027
81784
  const key = row?._id || row?.stepId;
81785
+ // Measure row height and report to parent
81786
+ React.useEffect(() => {
81787
+ if (rowRef.current && updateRowHeight) {
81788
+ const height = rowRef.current.getBoundingClientRect().height;
81789
+ updateRowHeight(indexNumber, height);
81790
+ }
81791
+ }, [row, updateRowHeight, indexNumber, isStepGroupExpanded?.(row?.stepId)]);
81028
81792
  const getPadding = index => {
81029
81793
  if (isViewPrivilegeMode || isClientSide) {
81030
81794
  if (['Group', 'PRE', 'POST', 'Script'].includes(row.type) && index === 0) {
@@ -81075,7 +81839,11 @@ const StepTableMainRow = ({
81075
81839
  });
81076
81840
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
81077
81841
  children: [jsxRuntime.jsx("tr", {
81078
- ref: setNodeRef,
81842
+ "data-rowid": rowId,
81843
+ ref: el => {
81844
+ rowRef.current = el;
81845
+ setNodeRef(el);
81846
+ },
81079
81847
  style: style,
81080
81848
  className: classNames(tableBodyRowClass, {
81081
81849
  'disabled-inner-row': isDisabled
@@ -81119,7 +81887,9 @@ const StepTableMainRow = ({
81119
81887
  isStepGroupExpanded: isStepGroupExpanded,
81120
81888
  level: row?.marginLeft,
81121
81889
  isViewPrivilegeMode: isViewPrivilegeMode,
81122
- columns: columns
81890
+ columns: columns,
81891
+ parentIndex: indexNumber,
81892
+ updateRowHeight: updateRowHeight
81123
81893
  })]
81124
81894
  });
81125
81895
  };
@@ -81156,14 +81926,156 @@ const StepInnerTable = ({
81156
81926
  isStepGroupExpanded,
81157
81927
  stepPartialSelect,
81158
81928
  isViewPrivilegeMode,
81159
- isClientSide
81929
+ isClientSide,
81930
+ highlightKey,
81931
+ onHighlightComplete
81160
81932
  }) => {
81161
81933
  const observerRef = React.useRef(null);
81934
+ const containerRef = React.useRef(null);
81935
+ const [scrollTop, setScrollTop] = React.useState(0);
81936
+ const [containerHeight, setContainerHeight] = React.useState(0);
81937
+ const [rowHeights, setRowHeights] = React.useState([]);
81938
+ const [focusRowId, setFocusRowId] = React.useState(null);
81939
+ const buffer = 5;
81940
+ const estimatedRowHeight = 50;
81941
+ const scrollTopBeforeReset = React.useRef(0); // Add this ref
81162
81942
  React.useEffect(() => {
81163
- const scrollContainer = document.getElementById('ff-table-scroll-container');
81943
+ if (containerRef.current) {
81944
+ setContainerHeight(containerRef.current.clientHeight);
81945
+ }
81946
+ const fullData = appendNewRow(data, AddNlp ?? {});
81947
+ setRowHeights(prev => {
81948
+ const next = [...prev];
81949
+ while (next.length < fullData.length) next.push(estimatedRowHeight);
81950
+ if (next.length > fullData.length) next.length = fullData.length;
81951
+ return next;
81952
+ });
81953
+ }, [data, AddNlp]);
81954
+ React.useEffect(() => {
81955
+ if (scrollTopBeforeReset.current > 0 && containerRef.current) {
81956
+ containerRef.current.scrollTop = scrollTopBeforeReset.current;
81957
+ scrollTopBeforeReset.current = 0;
81958
+ }
81959
+ }, [rowHeights]);
81960
+ // Track focus row for edit/new rows
81961
+ React.useEffect(() => {
81962
+ // Prioritize highlightKey over other states
81963
+ if (!checkEmpty(highlightKey)) {
81964
+ setFocusRowId(highlightKey);
81965
+ } else if (editMode) {
81966
+ setFocusRowId(editMode);
81967
+ } else if (AddNlp && Object.keys(AddNlp).length > 0) {
81968
+ const newRow = appendNewRow(data, AddNlp).find(row => row.isNew);
81969
+ if (newRow) {
81970
+ setFocusRowId(newRow.stepId || 'new-row');
81971
+ }
81972
+ } else {
81973
+ setFocusRowId(null);
81974
+ }
81975
+ }, [editMode, AddNlp, data, highlightKey]);
81976
+ // Update scroll effect
81977
+ React.useEffect(() => {
81978
+ if (focusRowId && containerRef.current) {
81979
+ const timer = setTimeout(() => {
81980
+ const focusElement = containerRef.current?.querySelector(`[data-rowid="${focusRowId}"]`);
81981
+ if (focusElement) {
81982
+ focusElement.scrollIntoView({
81983
+ behavior: 'smooth',
81984
+ block: 'nearest'
81985
+ });
81986
+ // ADD THIS: Reset highlight after scroll completes
81987
+ setTimeout(() => {
81988
+ if (!checkEmpty(highlightKey)) {
81989
+ onHighlightComplete?.();
81990
+ }
81991
+ }, 300); // Match scroll duration
81992
+ }
81993
+ }, 100);
81994
+ return () => clearTimeout(timer);
81995
+ }
81996
+ return undefined;
81997
+ }, [focusRowId, rowHeights, highlightKey, onHighlightComplete]);
81998
+ // Handle scroll
81999
+ const handleScroll = e => {
82000
+ setScrollTop(e.currentTarget.scrollTop);
82001
+ };
82002
+ // Update row height callback
82003
+ const updateRowHeight = React.useCallback((index, height) => {
82004
+ setRowHeights(prev => {
82005
+ const newHeights = [...prev];
82006
+ if (index < newHeights.length && newHeights[index] !== height) {
82007
+ newHeights[index] = height;
82008
+ return newHeights;
82009
+ }
82010
+ return prev;
82011
+ });
82012
+ }, []);
82013
+ // Calculate visible rows
82014
+ const fullData = appendNewRow(data, AddNlp ?? {});
82015
+ const totalRows = fullData.length;
82016
+ let startIndex = 0;
82017
+ let endIndex = totalRows - 1;
82018
+ let paddingTop = 0;
82019
+ let paddingBottom = 0;
82020
+ if (rowHeights.length === totalRows && containerHeight > 0) {
82021
+ let cumulativeHeight = 0;
82022
+ // Find start index
82023
+ for (let i = 0; i < totalRows; i++) {
82024
+ if (cumulativeHeight <= scrollTop) {
82025
+ startIndex = i;
82026
+ }
82027
+ cumulativeHeight += rowHeights[i] ?? 0;
82028
+ }
82029
+ // Find end index
82030
+ cumulativeHeight = 0;
82031
+ for (let i = 0; i < totalRows; i++) {
82032
+ cumulativeHeight += rowHeights[i] ?? 0;
82033
+ if (cumulativeHeight >= scrollTop + containerHeight && endIndex === totalRows - 1) {
82034
+ endIndex = i;
82035
+ break;
82036
+ }
82037
+ }
82038
+ // Apply buffer
82039
+ startIndex = Math.max(0, startIndex - buffer);
82040
+ endIndex = Math.min(totalRows - 1, endIndex + buffer);
82041
+ // Expand range to include focus row if needed
82042
+ if (focusRowId) {
82043
+ const focusIndex = fullData.findIndex(row => row.stepId === focusRowId || row.isNew && focusRowId === 'new-row');
82044
+ if (focusIndex >= 0) {
82045
+ if (focusIndex < startIndex) {
82046
+ startIndex = focusIndex;
82047
+ } else if (focusIndex > endIndex) {
82048
+ endIndex = focusIndex;
82049
+ }
82050
+ }
82051
+ }
82052
+ // Calculate padding
82053
+ paddingTop = rowHeights.slice(0, startIndex).reduce((sum, height) => sum + height, 0);
82054
+ paddingBottom = rowHeights.slice(endIndex + 1).reduce((sum, height) => sum + height, 0);
82055
+ } else {
82056
+ // Fallback to estimated virtualization
82057
+ startIndex = Math.max(0, Math.floor(scrollTop / estimatedRowHeight) - buffer);
82058
+ endIndex = Math.min(totalRows - 1, startIndex + Math.ceil(containerHeight / estimatedRowHeight) + buffer);
82059
+ // Expand range to include focus row if needed
82060
+ if (focusRowId) {
82061
+ const focusIndex = fullData.findIndex(row => row.stepId === focusRowId || row.isNew && focusRowId === 'new-row');
82062
+ if (focusIndex >= 0) {
82063
+ if (focusIndex < startIndex) {
82064
+ startIndex = focusIndex;
82065
+ } else if (focusIndex > endIndex) {
82066
+ endIndex = focusIndex;
82067
+ }
82068
+ }
82069
+ }
82070
+ paddingTop = startIndex * estimatedRowHeight;
82071
+ paddingBottom = (totalRows - endIndex - 1) * estimatedRowHeight;
82072
+ }
82073
+ const visibleRows = fullData.slice(startIndex, endIndex + 1);
82074
+ // Infinite scroll observer
82075
+ React.useEffect(() => {
82076
+ const scrollContainer = containerRef.current;
81164
82077
  const firstNode = document.getElementById('ff-table-first-node');
81165
82078
  const lastNode = document.getElementById('ff-table-last-node');
81166
- // Exit early if data is empty or elements are missing
81167
82079
  if (!scrollContainer || !firstNode || !lastNode || !data?.length) {
81168
82080
  return;
81169
82081
  }
@@ -81182,7 +82094,6 @@ const StepInnerTable = ({
81182
82094
  observerRef.current.observe(firstNode);
81183
82095
  observerRef.current.observe(lastNode);
81184
82096
  return () => {
81185
- // Cleanup observer
81186
82097
  observerRef.current?.disconnect();
81187
82098
  };
81188
82099
  }, [data, loadMore]);
@@ -81221,15 +82132,18 @@ const StepInnerTable = ({
81221
82132
  items: data?.map(row => row._id || row.stepId),
81222
82133
  strategy: verticalListSortingStrategy,
81223
82134
  children: jsxRuntime.jsxs("div", {
82135
+ ref: containerRef,
81224
82136
  style: {
81225
82137
  height: height,
81226
- position: 'relative'
82138
+ position: 'relative',
82139
+ overflow: 'auto'
81227
82140
  },
81228
82141
  id: "ff-table-scroll-container",
81229
82142
  className: classNames(className, {
81230
82143
  'ff-fixed-header-steps-table': withFixedHeader,
81231
82144
  'steps-border-borderRadius': borderWithRadius
81232
82145
  }),
82146
+ onScroll: handleScroll,
81233
82147
  children: [jsxRuntime.jsxs("table", {
81234
82148
  className: classNames(`ff-table-steps`),
81235
82149
  cellSpacing: 0,
@@ -81246,30 +82160,45 @@ const StepInnerTable = ({
81246
82160
  }), jsxRuntime.jsxs("tbody", {
81247
82161
  className: "ff-steps-tbody",
81248
82162
  children: [jsxRuntime.jsx("tr", {
81249
- id: "ff-table-first-node"
81250
- }), appendNewRow(data, AddNlp ?? {})?.map((row, index) => {
82163
+ id: "ff-table-first-node",
82164
+ style: {
82165
+ display: 'none'
82166
+ }
82167
+ }), paddingTop > 0 && jsxRuntime.jsx("tr", {
82168
+ children: jsxRuntime.jsx("td", {
82169
+ style: {
82170
+ height: paddingTop,
82171
+ padding: 0
82172
+ },
82173
+ colSpan: columns.length
82174
+ })
82175
+ }), visibleRows.map((row, index) => {
82176
+ const absoluteIndex = startIndex + index;
81251
82177
  const isEdit = editMode === row.stepId;
81252
82178
  const isEditOrNew = isEdit || row.isNew;
82179
+ const isFocusRow = isEdit && row.stepId === focusRowId || row.isNew && focusRowId === 'new-row';
81253
82180
  const renderEditableRow = () => jsxRuntime.jsxs("tr", {
81254
82181
  className: "steps-edit-row",
81255
- id: "getInFocus",
82182
+ id: isFocusRow ? 'getInFocus' : undefined,
82183
+ "data-rowid": row.stepId || 'new-row',
81256
82184
  children: [isEdit && /*#__PURE__*/React.isValidElement(editComponent) && jsxRuntime.jsx("td", {
81257
82185
  colSpan: columns.length,
81258
82186
  children: /*#__PURE__*/React.cloneElement(editComponent, {
81259
82187
  rowData: row,
81260
- rowIndex: index + 1
82188
+ rowIndex: absoluteIndex + 1
81261
82189
  })
81262
82190
  }), row.isNew && !isEdit && /*#__PURE__*/React.isValidElement(NlpComponent) && jsxRuntime.jsx("td", {
81263
82191
  colSpan: columns.length,
81264
82192
  children: /*#__PURE__*/React.cloneElement(NlpComponent, {
81265
- rowIndex: index,
82193
+ rowIndex: absoluteIndex,
81266
82194
  rowData: row
81267
82195
  })
81268
82196
  })]
81269
- }, row.stepId || index);
82197
+ }, row.stepId || absoluteIndex);
81270
82198
  const renderSortableRow = () => jsxRuntime.jsx(StepTableMainRow$1, {
82199
+ rowId: row.stepId,
81271
82200
  row: row,
81272
- indexNumber: index,
82201
+ indexNumber: absoluteIndex,
81273
82202
  columns: columns,
81274
82203
  tableBodyRowClass: tableBodyRowClass,
81275
82204
  handleOnclick: handleOnclick,
@@ -81287,11 +82216,23 @@ const StepInnerTable = ({
81287
82216
  dataLength: data?.length,
81288
82217
  stepPartialSelect: stepPartialSelect,
81289
82218
  isViewPrivilegeMode: isViewPrivilegeMode,
81290
- isClientSide: isClientSide
82219
+ isClientSide: isClientSide,
82220
+ updateRowHeight: updateRowHeight
81291
82221
  });
81292
82222
  return isEditOrNew ? renderEditableRow() : renderSortableRow();
82223
+ }), paddingBottom > 0 && jsxRuntime.jsx("tr", {
82224
+ children: jsxRuntime.jsx("td", {
82225
+ style: {
82226
+ height: paddingBottom,
82227
+ padding: 0
82228
+ },
82229
+ colSpan: columns.length
82230
+ })
81293
82231
  }), jsxRuntime.jsx("tr", {
81294
- id: "ff-table-last-node"
82232
+ id: "ff-table-last-node",
82233
+ style: {
82234
+ display: 'none'
82235
+ }
81295
82236
  })]
81296
82237
  })]
81297
82238
  }), data?.length <= 0 && jsxRuntime.jsx("div", {
@@ -81878,7 +82819,9 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
81878
82819
  isViewPrivilegeMode = false,
81879
82820
  defaultExpanded = 'Steps',
81880
82821
  isHeaderRequired = true,
81881
- isClientSide = false
82822
+ isClientSide = false,
82823
+ highlightKey,
82824
+ onHighlightComplete
81882
82825
  }, ref) => {
81883
82826
  const [ViewComponent, setViewComponent] = React.useState(null);
81884
82827
  const [viewModeId, setViewModeId] = React.useState(null);
@@ -81986,6 +82929,8 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
81986
82929
  const getAccordionTableContent = rows => {
81987
82930
  if (rows.title === 'Steps' && !isViewPrivilegeMode) {
81988
82931
  return jsxRuntime.jsx(StepInnerTable, {
82932
+ onHighlightComplete: onHighlightComplete,
82933
+ highlightKey: highlightKey,
81989
82934
  draggable: true,
81990
82935
  columns: tableMeta,
81991
82936
  onDragEnd: onDragEnd,
@@ -82015,6 +82960,8 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
82015
82960
  });
82016
82961
  } else {
82017
82962
  return jsxRuntime.jsx(StepInnerTable, {
82963
+ onHighlightComplete: onHighlightComplete,
82964
+ highlightKey: highlightKey,
82018
82965
  editMode: editMode,
82019
82966
  withCheckbox: !isViewPrivilegeMode,
82020
82967
  editComponent: editComponent,
@@ -82058,7 +83005,6 @@ const StepLandingTable = /*#__PURE__*/React.forwardRef(({
82058
83005
  }
82059
83006
  }));
82060
83007
  React.useEffect(() => {
82061
- scrollToView('getInFocus');
82062
83008
  if (!checkEmpty(AddNlp)) {
82063
83009
  setViewComponent(() => null);
82064
83010
  setViewModeId(null);